Merge "Mouseover explanations for interlanguage links in native language"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 4 Oct 2013 17:49:32 +0000 (17:49 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 4 Oct 2013 17:49:32 +0000 (17:49 +0000)
207 files changed:
.jshintignore
README
RELEASE-NOTES-1.22
docs/hooks.txt
includes/AutoLoader.php
includes/DefaultSettings.php
includes/EditPage.php
includes/GlobalFunctions.php
includes/OutputPage.php
includes/SiteStats.php
includes/SpecialPage.php
includes/Timestamp.php
includes/Title.php
includes/User.php
includes/WebRequest.php
includes/Wiki.php
includes/WikiPage.php
includes/api/ApiBase.php
includes/api/ApiPurge.php
includes/api/ApiQuery.php
includes/api/ApiQueryFileRepoInfo.php [new file with mode: 0644]
includes/api/ApiQuerySiteinfo.php
includes/api/ApiUpload.php
includes/content/ContentHandler.php
includes/content/WikitextContentHandler.php
includes/db/Database.php
includes/filebackend/FileBackendStore.php
includes/filebackend/SwiftFileBackend.php
includes/filerepo/FileRepo.php
includes/filerepo/ForeignAPIRepo.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignDBFile.php
includes/filerepo/file/LocalFile.php
includes/installer/Installer.i18n.php
includes/installer/Installer.php
includes/installer/WebInstallerOutput.php
includes/job/JobQueue.php
includes/job/JobQueueDB.php
includes/job/JobQueueFederated.php
includes/job/JobQueueGroup.php
includes/job/JobQueueRedis.php
includes/libs/CSSJanus.php
includes/libs/lessc.inc.php
includes/logging/LogPager.php
includes/media/Bitmap.php
includes/media/ImageHandler.php
includes/media/Jpeg.php
includes/media/MediaHandler.php
includes/media/SVG.php
includes/parser/ParserCache.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderLESSFunctions.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/search/SearchUpdate.php
includes/specials/SpecialContributions.php
includes/specials/SpecialDeletedContributions.php
includes/specials/SpecialListusers.php
includes/specials/SpecialTags.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.php
includes/upload/UploadBase.php
index.php
languages/Language.php
languages/classes/LanguageCu.php
languages/classes/LanguageHi.php [deleted file]
languages/classes/LanguageMg.php [deleted file]
languages/classes/LanguageMt.php [deleted file]
languages/classes/LanguagePl.php
languages/classes/LanguageSh.php [deleted file]
languages/classes/LanguageSk.php [deleted file]
languages/classes/LanguageTi.php [deleted file]
languages/classes/LanguageTl.php [deleted file]
languages/classes/LanguageWa.php
languages/messages/MessagesAf.php
languages/messages/MessagesAng.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAz.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBr.php
languages/messages/MessagesCa.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGl.php
languages/messages/MessagesGu.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIg.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKw.php
languages/messages/MessagesKy.php
languages/messages/MessagesLa.php
languages/messages/MessagesLb.php
languages/messages/MessagesLv.php
languages/messages/MessagesMai.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMy.php
languages/messages/MessagesNb.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOr.php
languages/messages/MessagesPa.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnb.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRm.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesSi.php
languages/messages/MessagesSl.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesTa.php
languages/messages/MessagesTru.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesVi.php
languages/messages/MessagesVo.php
languages/messages/MessagesWar.php
languages/messages/MessagesWuu.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/Maintenance.php
maintenance/checkLess.php [new file with mode: 0644]
maintenance/cleanupUploadStash.php
maintenance/generateSitemap.php
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/refreshLinks.php
maintenance/tables.sql
resources/Resources.php
resources/jquery/jquery.textSelection.js
resources/mediawiki/mediawiki.Title.js
resources/mediawiki/mediawiki.js
skins/Vector.php
skins/common/IEFixes.js
skins/common/config.js
skins/common/shared.css
skins/vector/collapsibleNav.css [new file with mode: 0644]
skins/vector/collapsibleNav.js [new file with mode: 0644]
skins/vector/images/arrow-collapsed-ltr.png [new file with mode: 0644]
skins/vector/images/arrow-collapsed-ltr.svg [new file with mode: 0644]
skins/vector/images/arrow-collapsed-rtl.png [new file with mode: 0644]
skins/vector/images/arrow-collapsed-rtl.svg [new file with mode: 0644]
skins/vector/images/arrow-expanded.png [new file with mode: 0644]
skins/vector/images/arrow-expanded.svg [new file with mode: 0644]
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/phpunit/includes/TimestampTest.php
tests/phpunit/includes/TitleTest.php
tests/phpunit/includes/libs/CSSJanusTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/languages/LanguageClassesTestCase.php
tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
thumb.php

index bc10ad8..f740f13 100644 (file)
@@ -25,9 +25,5 @@ resources/jquery.ui/
 resources/mediawiki.libs/
 resources/jquery.chosen/chosen.jquery.js
 
-# legacy scripts
-skins/common/IEFixes.js
-skins/common/config.js
-
 # github.com/jshint/jshint/issues/729
 tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js
diff --git a/README b/README
index 4f4bc29..a4185ba 100644 (file)
--- a/README
+++ b/README
@@ -1,10 +1,10 @@
 == MediaWiki ==
 
 MediaWiki is a popular and free, open-source wiki software package written in
-PHP. It serves as the platform for Wikipedia and its sister projects, which
-deliver content in over 280 languages to more than half a billion people each
-month. MediaWiki's reliability and robust feature set have earned it a large
-and vibrant community of third-party users and developers.
+PHP. It serves as the platform for Wikipedia and the other projects of the Wikimedia
+Foundation, which deliver content in over 280 languages to more than half a billion
+people each month. MediaWiki's reliability and robust feature set have earned it a
+large and vibrant community of third-party users and developers.
 
 MediaWiki is:
 
@@ -30,4 +30,4 @@ RELEASE-NOTES, INSTALL, and UPGRADE.
 MediaWiki is the result of global collaboration and cooperation. The CREDITS
 file lists technical contributors to the project. The COPYING file explains
 MediaWiki's copyright and license (GNU General Public License, version 2 or
-later). Many thanks to the Wikimedia regulars for testing and suggestions.
+later). Many thanks to the Wikimedia community for testing and suggestions.
index 957ee64..7933e06 100644 (file)
@@ -56,6 +56,8 @@ production.
   multiple destinations to be specified.
 * (bug 53862) portal-url, currentevents-url and helppage have been removed from the
   default Sidebar.
+* The 'vector-simplesearch' preference is now enabled by default. Previously
+  it was only enabled if the Vector extension was installed.
 
 === New features in 1.22 ===
 * (bug 44525) mediawiki.jqueryMsg can now parse (whitelisted) HTML elements and attributes.
@@ -232,6 +234,8 @@ production.
    for more details regarding custom functions.
 ** $wgResourceLoaderLESSImportPaths is an array of file system paths. Files
    referenced in LESS '@import' statements are looked up here first.
+* Added meta=filerepoinfo API module for getting information about foreign
+  image repositories, and related ForeignAPIRepo methods getInfo and getApiUrl.
 
 === Bug fixes in 1.22 ===
 * Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
@@ -314,6 +318,8 @@ production.
 * (bug 6200) line breaks in <blockquote> are handled like they are in <div>
 * (bug 14931) Default character set now set to 'utf8' when a new MySQL
   database is created.
+* (bug 47191) Fixed "Column 'si_title' cannot be part of FULLTEXT index"
+  MySQL error when installing using the binary character set option.
 
 === API changes in 1.22 ===
 * (bug 25553) The JSON output formatter now leaves forward slashes unescaped
@@ -472,6 +478,10 @@ changes to languages because of Bugzilla reports.
   The skins/common/wikiprintable.css file no longer exists. Return value of
   Skin#commonPrintStylesheet is ignored. Please use the 'mediawiki.legacy.commonPrint'
   module instead or base your skin on SkinTemplate.
+* (bug 49629) The hook ExtractThumbParamaters has been deprecated in favour
+  of media handler overriding MediaHandler::parseParamString.
+* (bug 46512) The collapsibleNav feature from the Vector extension has been moved
+  to the Vector skin in core.
 
 == Compatibility ==
 
index 5d6a6e4..2d1001b 100644 (file)
@@ -1077,6 +1077,7 @@ change the tables headers.
 
 'ExtractThumbParameters': Called when extracting thumbnail parameters from a
 thumbnail file name.
+DEPRECATED: Media handler should override MediaHandler::parseParamString instead.
 $thumbname: the base name of the thumbnail file
 &$params: the currently extracted params (has source name, temp or archived zone)
 
@@ -1222,6 +1223,16 @@ $out: OutputPage object (to check what type of page the user is on)
 $user: User whose preferences are being modified.
 &$preferences: Preferences description array, to be fed to an HTMLForm object
 
+'GetRelativeTimestamp': Pre-emptively override the relative timestamp generated
+by MWTimestamp::getRelativeTimestamp(). Return false in this hook to use the custom
+output.
+&$output: string for the output timestamp
+&$diff: DateInterval representing the difference between the timestamps
+$timestamp: MWTimestamp object of the current (user-adjusted) timestamp
+$relativeTo: MWTimestamp object of the relative (user-adjusted) timestamp
+$user: User whose preferences are being used to make timestamp
+$lang: Language that will be used to render the timestamp
+
 'getUserPermissionsErrors': Add a permissions error when permissions errors are
 checked for. Use instead of userCan for most cases. Return false if the user
 can't do it, and populate $result with the reason in the form of
@@ -1879,6 +1890,7 @@ $action : Action being performed
 &$result : Whether or not the action should be prevented
 Change $result and return false to give a definitive answer, otherwise
 the built-in rate limiting checks are used, if enabled.
+$incrBy: Amount to increment counter by
 
 'PlaceNewSection': Override placement of new sections. Return false and put the
 merged text into $text to override the default behavior.
index 54bffab..8d571ad 100644 (file)
@@ -414,6 +414,7 @@ $wgAutoloadLocalClasses = array(
        'ApiQueryQueryPage' => 'includes/api/ApiQueryQueryPage.php',
        'ApiQueryRandom' => 'includes/api/ApiQueryRandom.php',
        'ApiQueryRecentChanges' => 'includes/api/ApiQueryRecentChanges.php',
+       'ApiQueryFileRepoInfo' => 'includes/api/ApiQueryFileRepoInfo.php',
        'ApiQueryRevisions' => 'includes/api/ApiQueryRevisions.php',
        'ApiQuerySearch' => 'includes/api/ApiQuerySearch.php',
        'ApiQuerySiteinfo' => 'includes/api/ApiQuerySiteinfo.php',
@@ -857,6 +858,7 @@ $wgAutoloadLocalClasses = array(
        'ResourceLoaderContext' => 'includes/resourceloader/ResourceLoaderContext.php',
        'ResourceLoaderFileModule' => 'includes/resourceloader/ResourceLoaderFileModule.php',
        'ResourceLoaderFilePageModule' => 'includes/resourceloader/ResourceLoaderFilePageModule.php',
+       'ResourceLoaderLESSFunctions' => 'includes/resourceloader/ResourceLoaderLESSFunctions.php',
        'ResourceLoaderModule' => 'includes/resourceloader/ResourceLoaderModule.php',
        'ResourceLoaderNoscriptModule' => 'includes/resourceloader/ResourceLoaderNoscriptModule.php',
        'ResourceLoaderSiteModule' => 'includes/resourceloader/ResourceLoaderSiteModule.php',
index 7a1eb22..19b2f41 100644 (file)
@@ -1623,7 +1623,6 @@ $wgSharedTables = array( 'user', 'user_properties' );
  *                  - DBO_DEFAULT -- turns on DBO_TRX only if !$wgCommandLineMode (recommended)
  *                  - DBO_DEBUG -- equivalent of $wgDebugDumpSql
  *                  - DBO_TRX -- wrap entire request in a transaction
- *                  - DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
  *                  - DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)
  *                  - DBO_PERSISTENT -- enables persistent database connections
  *                  - DBO_SSL -- uses SSL/TLS encryption in database connections, if available
@@ -3314,50 +3313,8 @@ $wgResourceLoaderLESSVars = array();
  * @since 1.22
  */
 $wgResourceLoaderLESSFunctions = array(
-       /**
-        * Check if an image file reference is suitable for embedding.
-        * An image is embeddable if it (a) exists, (b) has a suitable MIME-type,
-        * (c) does not exceed IE<9 size limit of 32kb. This is a LESS predicate
-        * function; it returns a LESS boolean value and can thus be used as a
-        * mixin guard.
-        *
-        * @par Example:
-        * @code
-        *   .background-image(@url) when(embeddable(@url)) {
-        *       background-image: url(@url) !ie;
-        *   }
-        * @endcode
-        */
-       'embeddable' => function( $frame, $less ) {
-               $base = pathinfo( $less->parser->sourceName, PATHINFO_DIRNAME );
-               $url = $frame[2][0];
-               $file = realpath( $base . '/' . $url );
-               $embeddable = ( $file
-                       && strpos( $url, '//' ) === false
-                       && filesize( $file ) < CSSMin::EMBED_SIZE_LIMIT
-                       && CSSMin::getMimeType( $file ) !== false ) ? 'true' : 'false';
-               return array( 'keyword', $embeddable );
-       },
-
-       /**
-        * Convert an image URI to a base64-encoded data URI.
-        *
-        * @par Example:
-        * @code
-        *   .fancy-button {
-        *       background-image: embed('../images/button-bg.png');
-        *   }
-        * @endcode
-        */
-       'embed' => function( $frame, $less ) {
-               $base = pathinfo( $less->parser->sourceName, PATHINFO_DIRNAME );
-               $url = $frame[2][0];
-               $file = realpath( $base . '/' . $url );
-
-               $data = CSSMin::encodeImageAsDataURI( $file );
-               $less->embeddedImages[ $file ] = filemtime( $file );
-               return 'url(' . $data . ')';
-       },
+       'embeddable' => 'ResourceLoaderLESSFunctions::embeddable',
+       'embed' => 'ResourceLoaderLESSFunctions::embed',
 );
 
 /**
@@ -4047,6 +4004,7 @@ $wgDefaultUserOptions = array(
        'underline' => 2,
        'uselivepreview' => 0,
        'usenewrc' => 0,
+       'vector-simplesearch' => 1,
        'watchcreations' => 0,
        'watchdefault' => 0,
        'watchdeletion' => 0,
@@ -4695,6 +4653,13 @@ $wgRateLimits = array(
        'emailuser' => array(
                'user' => null,
        ),
+       'linkpurge' => array(
+               'anon' => null,
+               'user' => null,
+               'newbie' => null,
+               'ip' => null,
+               'subnet' => null,
+       ),
 );
 
 /**
index 63e3e66..12cd4b3 100644 (file)
@@ -1493,7 +1493,7 @@ class EditPage {
                        wfProfileOut( __METHOD__ );
                        return $status;
                }
-               if ( $wgUser->pingLimiter() ) {
+               if ( $wgUser->pingLimiter() || $wgUser->pingLimiter( 'linkpurge', 0 ) ) {
                        $status->fatal( 'actionthrottledtext' );
                        $status->value = self::AS_RATE_LIMITED;
                        wfProfileOut( __METHOD__ . '-checks' );
@@ -1771,6 +1771,10 @@ class EditPage {
                }
 
                $result['nullEdit'] = $doEditStatus->hasMessage( 'edit-no-change' );
+               if ( $result['nullEdit'] ) {
+                       // We don't know if it was a null edit until now, so increment here
+                       $wgUser->pingLimiter( 'linkpurge' );
+               }
                $result['redirect'] = $content->isRedirect();
                $this->updateWatchlist();
                wfProfileOut( __METHOD__ );
index 414c822..b11bce9 100644 (file)
@@ -118,12 +118,12 @@ function wfArrayDiff2( $a, $b ) {
 }
 
 /**
- * @param $a
- * @param $b
+ * @param $a array|string
+ * @param $b array|string
  * @return int
  */
 function wfArrayDiff2_cmp( $a, $b ) {
-       if ( !is_array( $a ) ) {
+       if ( is_string( $a ) && is_string( $b ) ) {
                return strcmp( $a, $b );
        } elseif ( count( $a ) !== count( $b ) ) {
                return count( $a ) < count( $b ) ? -1 : 1;
@@ -1703,10 +1703,12 @@ function wfEmptyMsg( $key ) {
  * Throw a debugging exception. This function previously once exited the process,
  * but now throws an exception instead, with similar results.
  *
+ * @deprecated since 1.22; just throw an MWException yourself
  * @param string $msg message shown when dying.
  * @throws MWException
  */
 function wfDebugDieBacktrace( $msg = '' ) {
+       wfDeprecated( __FUNCTION__, '1.22' );
        throw new MWException( $msg );
 }
 
@@ -1949,23 +1951,6 @@ function wfViewPrevNext( $offset, $limit, $link, $query = '', $atend = false ) {
        return $wgLang->viewPrevNext( $title, $offset, $limit, $query, $atend );
 }
 
-/**
- * Make a list item, used by various special pages
- *
- * @param string $page Page link
- * @param string $details Text between brackets
- * @param $oppositedm Boolean  Add the direction mark opposite to your
- *                                                             language, to display text properly
- * @return String
- * @deprecated since 1.19; use Language::specialList() instead
- */
-function wfSpecialList( $page, $details, $oppositedm = true ) {
-       wfDeprecated( __METHOD__, '1.19' );
-
-       global $wgLang;
-       return $wgLang->specialList( $page, $details, $oppositedm );
-}
-
 /**
  * @todo document
  * @todo FIXME: We may want to blacklist some broken browsers
@@ -2474,7 +2459,7 @@ function wfIsWindows() {
  * @return Bool
  */
 function wfIsHipHop() {
-       return function_exists( 'hphp_thread_set_warmup_enabled' );
+       return defined( 'HPHP_VERSION' );
 }
 
 /**
@@ -2780,9 +2765,11 @@ function wfShellExecDisabled() {
  *                 added to the executed command environment.
  * @param array $limits optional array with limits(filesize, memory, time, walltime)
  *                 this overwrites the global wgShellMax* limits.
- * @return string collected stdout as a string (trailing newlines stripped)
+ * @param array $options Array of options. Only one is "duplicateStderr" => true, which
+ *                 Which duplicates stderr to stdout, including errors from limit.sh
+ * @return string collected stdout as a string
  */
-function wfShellExec( $cmd, &$retval = null, $environ = array(), $limits = array() ) {
+function wfShellExec( $cmd, &$retval = null, $environ = array(), $limits = array(), $options = array() ) {
        global $IP, $wgMaxShellMemory, $wgMaxShellFileSize, $wgMaxShellTime,
                $wgMaxShellWallClockTime, $wgShellCgroup;
 
@@ -2794,6 +2781,8 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(), $limits = array
                        'Unable to run external programs, passthru() is disabled.';
        }
 
+       $includeStderr = isset( $options['duplicateStderr'] ) && $options['duplicateStderr'];
+
        wfInitShellLocale();
 
        $envcmd = '';
@@ -2816,6 +2805,10 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(), $limits = array
        $cmd = $envcmd . $cmd;
 
        if ( php_uname( 's' ) == 'Linux' ) {
+               $stderrDuplication = '';
+               if ( $includeStderr ) {
+                       $stderrDuplication = 'exec 2>&1; ';
+               }
                $time = intval ( isset( $limits['time'] ) ? $limits['time'] : $wgMaxShellTime );
                if ( isset( $limits['walltime'] ) ) {
                        $wallTime = intval( $limits['walltime'] );
@@ -2831,17 +2824,25 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(), $limits = array
                        $cmd = '/bin/bash ' . escapeshellarg( "$IP/includes/limit.sh" ) . ' ' .
                                escapeshellarg( $cmd ) . ' ' .
                                escapeshellarg(
+                                       $stderrDuplication .
                                        "MW_CPU_LIMIT=$time; " .
                                        'MW_CGROUP=' . escapeshellarg( $wgShellCgroup ) . '; ' .
                                        "MW_MEM_LIMIT=$mem; " .
                                        "MW_FILE_SIZE_LIMIT=$filesize; " .
                                        "MW_WALL_CLOCK_LIMIT=$wallTime"
                                );
+               } else {
+                       $cmd .= ' 2>&1';
                }
+       } elseif ( $includeStderr ) {
+               $cmd .= ' 2>&1';
        }
        wfDebug( "wfShellExec: $cmd\n" );
 
-       $retval = 1; // error by default?
+       // Default to an unusual value that shouldn't happen naturally,
+       // so in the unlikely event of a weird php bug, it would be
+       // more obvious what happened.
+       $retval = 200;
        ob_start();
        passthru( $cmd, $retval );
        $output = ob_get_contents();
@@ -2853,6 +2854,24 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(), $limits = array
        return $output;
 }
 
+/**
+ * Execute a shell command, returning both stdout and stderr. Convenience
+ * function, as all the arguments to wfShellExec can become unwieldy.
+ *
+ * @note This also includes errors from limit.sh, e.g. if $wgMaxShellFileSize is exceeded.
+ * @param string $cmd Command line, properly escaped for shell.
+ * @param &$retval null|Mixed optional, will receive the program's exit code.
+ *                 (non-zero is usually failure)
+ * @param array $environ optional environment variables which should be
+ *                 added to the executed command environment.
+ * @param array $limits optional array with limits(filesize, memory, time, walltime)
+ *                 this overwrites the global wgShellMax* limits.
+ * @return string collected stdout and stderr as a string
+ */
+function wfShellExecWithStderr( $cmd, &$retval = null, $environ = array(), $limits = array() ) {
+       return wfShellExec( $cmd, $retval, $environ, $limits, array( 'duplicateStderr' => true ) );
+}
+
 /**
  * Workaround for http://bugs.php.net/bug.php?id=45132
  * escapeshellarg() destroys non-ASCII characters if LANG is not a UTF-8 locale
index 1d0c930..cc3f9b3 100644 (file)
@@ -1721,6 +1721,7 @@ class OutputPage extends ContextSource {
                                array(
                                        "{$wgCookiePrefix}Token",
                                        "{$wgCookiePrefix}LoggedOut",
+                                       "forceHTTPS",
                                        session_name()
                                ),
                                $wgCacheVaryCookies
@@ -2965,24 +2966,24 @@ $templates
        public function getJSVars() {
                global $wgContLang;
 
-               $latestRevID = 0;
-               $pageID = 0;
-               $canonicalName = false; # bug 21115
+               $curRevisionId = 0;
+               $articleId = 0;
+               $canonicalSpecialPageName = false; # bug 21115
 
                $title = $this->getTitle();
                $ns = $title->getNamespace();
-               $nsname = MWNamespace::exists( $ns ) ? MWNamespace::getCanonicalName( $ns ) : $title->getNsText();
+               $canonicalNamespace = MWNamespace::exists( $ns ) ? MWNamespace::getCanonicalName( $ns ) : $title->getNsText();
 
                // Get the relevant title so that AJAX features can use the correct page name
                // when making API requests from certain special pages (bug 34972).
                $relevantTitle = $this->getSkin()->getRelevantTitle();
 
                if ( $ns == NS_SPECIAL ) {
-                       list( $canonicalName, /*...*/ ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
+                       list( $canonicalSpecialPageName, /*...*/ ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
                } elseif ( $this->canUseWikiPage() ) {
                        $wikiPage = $this->getWikiPage();
-                       $latestRevID = $wikiPage->getLatest();
-                       $pageID = $wikiPage->getId();
+                       $curRevisionId = $wikiPage->getLatest();
+                       $articleId = $wikiPage->getId();
                }
 
                $lang = $title->getPageLanguage();
@@ -3004,13 +3005,14 @@ $templates
                $user = $this->getUser();
 
                $vars = array(
-                       'wgCanonicalNamespace' => $nsname,
-                       'wgCanonicalSpecialPageName' => $canonicalName,
+                       'wgCanonicalNamespace' => $canonicalNamespace,
+                       'wgCanonicalSpecialPageName' => $canonicalSpecialPageName,
                        'wgNamespaceNumber' => $title->getNamespace(),
                        'wgPageName' => $title->getPrefixedDBkey(),
                        'wgTitle' => $title->getText(),
-                       'wgCurRevisionId' => $latestRevID,
-                       'wgArticleId' => $pageID,
+                       'wgCurRevisionId' => $curRevisionId,
+                       'wgRevisionId' => (int)$this->getRevisionId(),
+                       'wgArticleId' => $articleId,
                        'wgIsArticle' => $this->isArticle(),
                        'wgIsRedirect' => $title->isRedirect(),
                        'wgAction' => Action::getActionName( $this->getContext() ),
index 6e2359a..355993c 100644 (file)
@@ -189,7 +189,7 @@ class SiteStats {
        static function jobs() {
                if ( !isset( self::$jobs ) ) {
                        $dbr = wfGetDB( DB_SLAVE );
-                       self::$jobs = $dbr->estimateRowCount( 'job' );
+                       self::$jobs = array_sum( JobQueueGroup::singleton()->getQueueSizes() );
                        /* Zero rows still do single row read for row that doesn't exist, but people are annoyed by that */
                        if ( self::$jobs == 1 ) {
                                self::$jobs = 0;
index 94782db..61630a9 100644 (file)
@@ -1229,6 +1229,15 @@ class SpecialCreateAccount extends SpecialRedirectToSpecial {
        function __construct() {
                parent::__construct( 'CreateAccount', 'Userlogin', 'signup', array( 'uselang' ) );
        }
+
+       // No reason to hide this link on Special:Specialpages
+       public function isListed() {
+               return true;
+       }
+
+       protected function getGroupName() {
+               return 'login';
+       }
 }
 /**
  * SpecialMypage, SpecialMytalk and SpecialMycontributions special pages
index 48d972c..edcd6a8 100644 (file)
@@ -270,6 +270,44 @@ class MWTimestamp {
                return $interval;
        }
 
+       /**
+        * Generate a purely relative timestamp, i.e., represent the time elapsed between
+        * the given base timestamp and this object.
+        *
+        * @param MWTimestamp $relativeTo Relative base timestamp (defaults to now)
+        * @param User $user Use to use offset for
+        * @param Language $lang Language to use
+        * @param array $chosenIntervals Intervals to use to represent it
+        * @return string Relative timestamp
+        */
+       public function getRelativeTimestamp(
+               MWTimestamp $relativeTo = null,
+               User $user = null,
+               Language $lang = null,
+               array $chosenIntervals = array()
+       ) {
+               if ( $relativeTo === null ) {
+                       $relativeTo = new self;
+               }
+               if ( $user === null ) {
+                       $user = RequestContext::getMain()->getUser();
+               }
+               if ( $lang === null ) {
+                       $lang = RequestContext::getMain()->getLanguage();
+               }
+
+               $ts = '';
+               $diff = $this->diff( $relativeTo );
+               if ( wfRunHooks( 'GetRelativeTimestamp', array( &$ts, &$diff, $this, $relativeTo, $user, $lang ) ) ) {
+                       $seconds = ( ( ( $diff->days * 24 + $diff->h ) * 60 + $diff->i ) * 60 + $diff->s );
+                       $ts = wfMessage( 'ago', $lang->formatDuration( $seconds, $chosenIntervals ) )
+                               ->inLanguage( $lang )
+                               ->text();
+               }
+
+               return $ts;
+       }
+
        /**
         * @since 1.20
         *
index 13350cf..56e9b44 100644 (file)
@@ -491,6 +491,108 @@ class Title {
                return $rxTc;
        }
 
+       /**
+        * Utility method for converting a character sequence from bytes to Unicode.
+        *
+        * Primary usecase being converting $wgLegalTitleChars to a sequence usable in
+        * javascript, as PHP uses UTF-8 bytes where javascript uses Unicode code units.
+        *
+        * @param string $byteClass
+        * @return string
+        */
+       public static function convertByteClassToUnicodeClass( $byteClass ) {
+               $length = strlen( $byteClass );
+               // Input token queue
+               $x0 = $x1 = $x2 = '';
+               // Decoded queue
+               $d0 = $d1 = $d2 = '';
+               // Decoded integer codepoints
+               $ord0 = $ord1 = $ord2 = 0;
+               // Re-encoded queue
+               $r0 = $r1 = $r2 = '';
+               // Output
+               $out = '';
+               // Flags
+               $allowUnicode = false;
+               for ( $pos = 0; $pos < $length; $pos++ ) {
+                       // Shift the queues down
+                       $x2 = $x1;
+                       $x1 = $x0;
+                       $d2 = $d1;
+                       $d1 = $d0;
+                       $ord2 = $ord1;
+                       $ord1 = $ord0;
+                       $r2 = $r1;
+                       $r1 = $r0;
+                       // Load the current input token and decoded values
+                       $inChar = $byteClass[$pos];
+                       if ( $inChar == '\\' ) {
+                               if ( preg_match( '/x([0-9a-fA-F]{2})/A', $byteClass, $m, 0, $pos + 1 ) ) {
+                                       $x0 = $inChar . $m[0];
+                                       $d0 = chr( hexdec( $m[1] ) );
+                                       $pos += strlen( $m[0] );
+                               } elseif ( preg_match( '/[0-7]{3}/A', $byteClass, $m, 0, $pos + 1 ) ) {
+                                       $x0 = $inChar . $m[0];
+                                       $d0 = chr( octdec( $m[0] ) );
+                                       $pos += strlen( $m[0] );
+                               } elseif ( $pos + 1 >= $length ) {
+                                       $x0 = $d0 = '\\';
+                               } else {
+                                       $d0 = $byteClass[$pos + 1];
+                                       $x0 = $inChar . $d0;
+                                       $pos += 1;
+                               }
+                       } else {
+                               $x0 = $d0 = $inChar;
+                       }
+                       $ord0 = ord( $d0 );
+                       // Load the current re-encoded value
+                       if ( $ord0 < 32 || $ord0 == 0x7f ) {
+                               $r0 = sprintf( '\x%02x', $ord0 );
+                       } elseif ( $ord0 >= 0x80 ) {
+                               // Allow unicode if a single high-bit character appears
+                               $r0 = sprintf( '\x%02x', $ord0 );
+                               $allowUnicode = true;
+                       } elseif ( strpos( '-\\[]^', $d0 ) !== false ) {
+                               $r0 = '\\' . $d0;
+                       } else {
+                               $r0 = $d0;
+                       }
+                       // Do the output
+                       if ( $x0 !== '' && $x1 === '-' && $x2 !== '' ) {
+                               // Range
+                               if ( $ord2 > $ord0 ) {
+                                       // Empty range
+                               } elseif ( $ord0 >= 0x80 ) {
+                                       // Unicode range
+                                       $allowUnicode = true;
+                                       if ( $ord2 < 0x80 ) {
+                                               // Keep the non-unicode section of the range
+                                               $out .= "$r2-\\x7F";
+                                       }
+                               } else {
+                                       // Normal range
+                                       $out .= "$r2-$r0";
+                               }
+                               // Reset state to the initial value
+                               $x0 = $x1 = $d0 = $d1 = $r0 = $r1 = '';
+                       } elseif ( $ord2 < 0x80 ) {
+                               // ASCII character
+                               $out .= $r2;
+                       }
+               }
+               if ( $ord1 < 0x80 ) {
+                       $out .= $r1;
+               }
+               if ( $ord0 < 0x80 ) {
+                       $out .= $r0;
+               }
+               if ( $allowUnicode ) {
+                       $out .= '\u0080-\uFFFF';
+               }
+               return $out;
+       }
+
        /**
         * Get a string representation of a title suitable for
         * including in a search index
@@ -3063,7 +3165,7 @@ class Title {
                        return false;
                }
 
-               if ( false !== strpos( $dbkey, UTF8_REPLACEMENT ) ) {
+               if ( strpos( $dbkey, UTF8_REPLACEMENT ) !== false ) {
                        # Contained illegal UTF-8 sequences or forbidden Unicode chars.
                        return false;
                }
@@ -3200,6 +3302,7 @@ class Title {
 
                # Can't make a link to a namespace alone... "empty" local links can only be
                # self-links with a fragment identifier.
+               # TODO: Why do we exclude NS_MAIN (bug 54044)
                if ( $dbkey == '' && $this->mInterwiki == '' && $this->mNamespace != NS_MAIN ) {
                        return false;
                }
@@ -3738,7 +3841,8 @@ class Title {
 
                if ( $createRedirect ) {
                        $contentHandler = ContentHandler::getForTitle( $this );
-                       $redirectContent = $contentHandler->makeRedirectContent( $nt );
+                       $redirectContent = $contentHandler->makeRedirectContent( $nt,
+                               wfMessage( 'move-redirect-text' )->inContentLanguage()->plain() );
 
                        // NOTE: If this page's content model does not support redirects, $redirectContent will be null.
                } else {
index 60efc9d..12912e1 100644 (file)
@@ -1489,12 +1489,13 @@ class User {
         * last-hit counters will be shared across wikis.
         *
         * @param string $action Action to enforce; 'edit' if unspecified
+        * @param integer $incrBy Positive amount to increment counter by [defaults to 1]
         * @return bool True if a rate limiter was tripped
         */
-       public function pingLimiter( $action = 'edit' ) {
+       public function pingLimiter( $action = 'edit', $incrBy = 1 ) {
                // Call the 'PingLimiter' hook
                $result = false;
-               if ( !wfRunHooks( 'PingLimiter', array( &$this, $action, &$result ) ) ) {
+               if ( !wfRunHooks( 'PingLimiter', array( &$this, $action, &$result, $incrBy ) ) ) {
                        return $result;
                }
 
@@ -1583,9 +1584,13 @@ class User {
                                }
                        } else {
                                wfDebug( __METHOD__ . ": adding record for $key $summary\n" );
-                               $wgMemc->add( $key, 0, intval( $period ) ); // first ping
+                               if ( $incrBy > 0 ) {
+                                       $wgMemc->add( $key, 0, intval( $period ) ); // first ping
+                               }
+                       }
+                       if ( $incrBy > 0 ) {
+                               $wgMemc->incr( $key, $incrBy );
                        }
-                       $wgMemc->incr( $key );
                }
 
                wfProfileOut( __METHOD__ );
index 23eee04..b17cb9e 100644 (file)
@@ -1144,10 +1144,17 @@ HTML;
                        foreach ( $ipchain as $i => $curIP ) {
                                $curIP = IP::sanitizeIP( IP::canonicalize( $curIP ) );
                                if ( wfIsTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
-                                       if ( wfIsConfiguredProxy( $curIP ) || // bug 48919
-                                               ( IP::isPublic( $ipchain[$i + 1] ) || $wgUsePrivateIPs )
+                                       if ( wfIsConfiguredProxy( $curIP ) || // bug 48919; treat IP as sane
+                                               IP::isPublic( $ipchain[$i + 1] ) ||
+                                               $wgUsePrivateIPs
                                        ) {
-                                               $ip = IP::canonicalize( $ipchain[$i + 1] );
+                                               $nextIP = IP::canonicalize( $ipchain[$i + 1] );
+                                               if ( !$nextIP && wfIsConfiguredProxy( $ip ) ) {
+                                                       // We have not yet made it past CDN/proxy servers of this site,
+                                                       // so either they are misconfigured or there is some IP spoofing.
+                                                       throw new MWException( "Invalid IP given in XFF '$forwardedFor'." );
+                                               }
+                                               $ip = $nextIP;
                                                continue;
                                        }
                                }
@@ -1159,7 +1166,7 @@ HTML;
                wfRunHooks( 'GetIP', array( &$ip ) );
 
                if ( !$ip ) {
-                       throw new MWException( "Unable to determine IP" );
+                       throw new MWException( "Unable to determine IP." );
                }
 
                wfDebug( "IP: $ip\n" );
index 0683d7c..48e56ab 100644 (file)
@@ -85,8 +85,6 @@ class MediaWiki {
                } elseif ( $curid ) {
                        // URLs like this are generated by RC, because rc_title isn't always accurate
                        $ret = Title::newFromID( $curid );
-               } elseif ( $title == '' && $action != 'delete' ) {
-                       $ret = Title::newMainPage();
                } else {
                        $ret = Title::newFromURL( $title );
                        // Alias NS_MEDIA page URLs to NS_FILE...we only use NS_MEDIA
@@ -102,8 +100,12 @@ class MediaWiki {
                                $wgContLang->findVariantLink( $title, $ret );
                        }
                }
-               // For non-special titles, check for implicit titles
-               if ( is_null( $ret ) || !$ret->isSpecialPage() ) {
+
+               // If title is not provided, always allow oldid and diff to set the title.
+               // If title is provided, allow oldid and diff to override the title, unless
+               // we are talking about a special page which might use these parameters for
+               // other purposes.
+               if ( $ret === null || !$ret->isSpecialPage() ) {
                        // We can have urls with just ?diff=,?oldid= or even just ?diff=
                        $oldid = $request->getInt( 'oldid' );
                        $oldid = $oldid ? $oldid : $request->getInt( 'diff' );
@@ -114,6 +116,11 @@ class MediaWiki {
                        }
                }
 
+               // Use the main page as default title if nothing else has been provided
+               if ( $ret === null && strval( $title ) === '' && $action !== 'delete' ) {
+                       $ret = Title::newMainPage();
+               }
+
                if ( $ret === null || ( $ret->getDBkey() == '' && $ret->getInterwiki() == '' ) ) {
                        $ret = SpecialPage::getTitleFor( 'Badtitle' );
                }
@@ -539,6 +546,8 @@ class MediaWiki {
                        $title = Title::newFromText( NS_MAIN, 'REDIR' );
                        $this->context->setTitle( $title );
                        $output = $this->context->getOutput();
+                       // Since we only do this redir to change proto, always send a vary header
+                       $output->addVaryHeader( 'X-Forwarded-Proto' );
                        $output->redirect( $redirUrl );
                        $output->output();
                        wfProfileOut( __METHOD__ );
index bfa9956..048dd68 100644 (file)
@@ -2347,6 +2347,14 @@ class WikiPage implements Page, IDBAccessObject {
                                }
                        }
 
+                       // Clear out legacy restriction fields
+                       $dbw->update(
+                               'page',
+                               array( 'page_restrictions' => '' ),
+                               array( 'page_id' => $id ),
+                               __METHOD__
+                       );
+
                        wfRunHooks( 'NewRevisionFromEditComplete', array( $this, $nullRevision, $latest, $user ) );
                        wfRunHooks( 'ArticleProtectComplete', array( &$this, &$user, $limit, $reason ) );
                } else { // Protection of non-existing page (also known as "title protection")
@@ -3510,6 +3518,9 @@ class PoolWorkArticleView extends PoolCounterWork {
                        return false;
                }
 
+               // Reduce effects of race conditions for slow parses (bug 46014)
+               $cacheTime = wfTimestampNow();
+
                $time = - microtime( true );
                $this->parserOutput = $content->getParserOutput( $this->page->getTitle(), $this->revid, $this->parserOptions );
                $time += microtime( true );
@@ -3521,7 +3532,8 @@ class PoolWorkArticleView extends PoolCounterWork {
                }
 
                if ( $this->cacheable && $this->parserOutput->isCacheable() ) {
-                       ParserCache::singleton()->save( $this->parserOutput, $this->page, $this->parserOptions );
+                       ParserCache::singleton()->save(
+                               $this->parserOutput, $this->page, $this->parserOptions, $cacheTime );
                }
 
                // Make sure file cache is not used on uncacheable content.
index 2e6846d..ce6ecda 100644 (file)
@@ -1503,7 +1503,7 @@ abstract class ApiBase extends ContextSource {
         * @param string $message Error message
         */
        protected static function dieDebug( $method, $message ) {
-               wfDebugDieBacktrace( "Internal error in $method: $message" );
+               throw new MWException( "Internal error in $method: $message" );
        }
 
        /**
index e2eae61..0812ba5 100644 (file)
@@ -84,7 +84,7 @@ class ApiPurge extends ApiBase {
                        $r['purged'] = '';
 
                        if ( $forceLinkUpdate || $forceRecursiveLinkUpdate ) {
-                               if ( !$this->getUser()->pingLimiter() ) {
+                               if ( !$this->getUser()->pingLimiter( 'linkpurge' ) ) {
                                        global $wgEnableParserCache;
 
                                        $popts = $page->makeParserOptions( 'canonical' );
index aafd582..ce59118 100644 (file)
@@ -102,6 +102,7 @@ class ApiQuery extends ApiBase {
                'allmessages' => 'ApiQueryAllMessages',
                'siteinfo' => 'ApiQuerySiteinfo',
                'userinfo' => 'ApiQueryUserInfo',
+               'filerepoinfo' => 'ApiQueryFileRepoInfo',
        );
 
        /**
diff --git a/includes/api/ApiQueryFileRepoInfo.php b/includes/api/ApiQueryFileRepoInfo.php
new file mode 100644 (file)
index 0000000..3a35353
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+/**
+ * Copyright © 2013 Mark Holmquist <mtraceur@member.fsf.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.22
+ */
+
+/**
+ * A query action to return meta information about the foreign file repos
+ * configured on the wiki.
+ *
+ * @ingroup API
+ */
+class ApiQueryFileRepoInfo extends ApiQueryBase {
+
+       public function __construct( $query, $moduleName ) {
+               parent::__construct( $query, $moduleName, 'fri' );
+       }
+
+       protected function getInitialisedRepoGroup() {
+               $repoGroup = RepoGroup::singleton();
+
+               if ( !$repoGroup->reposInitialised ) {
+                       $repoGroup->initialiseRepos();
+               }
+
+               return $repoGroup;
+       }
+
+       public function execute() {
+               $params = $this->extractRequestParams();
+               $props = array_flip( $params['prop'] );
+
+               $repos = array();
+
+               $repoGroup = $this->getInitialisedRepoGroup();
+
+               $repoGroup->forEachForeignRepo( function ( $repo ) use ( &$repos, $props ) {
+                       $repos[] = array_intersect_key( $repo->getInfo(), $props );
+               } );
+
+               $repos[] = array_intersect_key( $repoGroup->localRepo->getInfo(), $props );
+
+               $result = $this->getResult();
+               $result->setIndexedTagName( $repos, 'repo' );
+               $result->addValue( array( 'query' ), 'repos', $repos );
+       }
+
+       public function getCacheMode( $params ) {
+               return 'public';
+       }
+
+       public function getAllowedParams() {
+               $props = $this->getProps();
+
+               return array(
+                       'prop' => array(
+                               ApiBase::PARAM_DFLT => join( '|', $props ),
+                               ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_TYPE => $props,
+                       ),
+               );
+       }
+
+       public function getProps() {
+               $props = array();
+               $repoGroup = $this->getInitialisedRepoGroup();
+
+               $repoGroup->forEachForeignRepo( function ( $repo ) use ( &$props ) {
+                       $props = array_merge( $props, array_keys( $repo->getInfo() ) );
+               } );
+
+               return array_values( array_unique( array_merge( $props, array_keys( $repoGroup->localRepo->getInfo() ) ) ) );
+       }
+
+       public function getParamDescription() {
+               $p = $this->getModulePrefix();
+               return array(
+                       'prop' => array(
+                               'Which repository properties to get (there may be more available on some wikis):',
+                               ' apiurl      - URL to the repository API - helpful for getting image info from the host.',
+                               ' name        - The key of the repository - used in e.g. $wgForeignFileRepos and imageinfo return values.',
+                               ' displayname - The human-readable name of the repository wiki.',
+                               ' rooturl     - Root URL for image paths.',
+                               ' local       - Whether that repository is the local one or not.',
+                       ),
+               );
+       }
+
+       public function getDescription() {
+               return 'Return meta information about image repositories configured on the wiki.';
+       }
+
+       public function getExamples() {
+               return array(
+                       'api.php?action=query&meta=filerepoinfo&friprop=apiurl|name|displayname',
+               );
+       }
+}
index 3c22a73..fbba98c 100644 (file)
@@ -473,7 +473,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                global $wgFileExtensions;
 
                $data = array();
-               foreach ( $wgFileExtensions as $ext ) {
+               foreach ( array_unique( $wgFileExtensions ) as $ext ) {
                        $data[] = array( 'ext' => $ext );
                }
                $this->getResult()->setIndexedTagName( $data, 'fe' );
index 6f6b080..467eccf 100644 (file)
@@ -504,7 +504,7 @@ class ApiUpload extends ApiBase {
                        case UploadBase::FILETYPE_BADTYPE:
                                $extradata = array(
                                        'filetype' => $verification['finalExt'],
-                                       'allowed' => $wgFileExtensions
+                                       'allowed' => array_values( array_unique( $wgFileExtensions ) )
                                );
                                $this->getResult()->setIndexedTagName( $extradata['allowed'], 'ext' );
 
index 2de8408..a8fa9ed 100644 (file)
@@ -449,10 +449,11 @@ abstract class ContentHandler {
         * @since 1.21
         *
         * @param Title $destination the page to redirect to.
+        * @param string $text text to include in the redirect, if possible.
         *
         * @return Content
         */
-       public function makeRedirectContent( Title $destination ) {
+       public function makeRedirectContent( Title $destination, $text = '' ) {
                return null;
        }
 
index 8be85bc..b1b461f 100644 (file)
@@ -55,10 +55,11 @@ class WikitextContentHandler extends TextContentHandler {
         * @see ContentHandler::makeRedirectContent
         *
         * @param Title $destination the page to redirect to.
+        * @param string $text text to include in the redirect, if possible.
         *
         * @return Content
         */
-       public function makeRedirectContent( Title $destination ) {
+       public function makeRedirectContent( Title $destination, $text = '' ) {
                $optionalColon = '';
 
                if ( $destination->getNamespace() == NS_CATEGORY ) {
@@ -72,6 +73,9 @@ class WikitextContentHandler extends TextContentHandler {
 
                $mwRedir = MagicWord::get( 'redirect' );
                $redirectText = $mwRedir->getSynonym( 0 ) . ' [[' . $optionalColon . $destination->getFullText() . ']]';
+               if ( $text != '' ) {
+                       $redirectText .= "\n" . $text;
+               }
 
                return new WikitextContent( $redirectText );
        }
index 27e6dad..4b25bd3 100644 (file)
@@ -360,6 +360,8 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         * code should use lastErrno() and lastError() to handle the
         * situation as appropriate.
         *
+        * Do not use this function outside of the Database classes.
+        *
         * @param $ignoreErrors bool|null
         *
         * @return bool The previous value of the flag.
@@ -582,7 +584,6 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
         * @param $flag Integer: DBO_* constants from Defines.php:
         *   - DBO_DEBUG: output some debug info (same as debug())
         *   - DBO_NOBUFFER: don't buffer results (inverse of bufferResults())
-        *   - DBO_IGNORE: ignore errors (same as ignoreErrors())
         *   - DBO_TRX: automatically start transactions
         *   - DBO_DEFAULT: automatically sets DBO_TRX if not in command line mode
         *       and removes it in command line mode
index e976a7a..8ff383b 100644 (file)
 abstract class FileBackendStore extends FileBackend {
        /** @var BagOStuff */
        protected $memCache;
-       /** @var ProcessCacheLRU */
-       protected $cheapCache; // Map of paths to small (RAM/disk) cache items
-       /** @var ProcessCacheLRU */
-       protected $expensiveCache; // Map of paths to large (RAM/disk) cache items
+       /** @var ProcessCacheLRU Map of paths to small (RAM/disk) cache items */
+       protected $cheapCache;
+       /** @var ProcessCacheLRU Map of paths to large (RAM/disk) cache items */
+       protected $expensiveCache;
 
-       /** @var Array Map of container names to sharding settings */
-       protected $shardViaHashLevels = array(); // (container name => config array)
+       /** @var Array Map of container names to sharding config */
+       protected $shardViaHashLevels = array();
+
+       /** @var callback Method to get the MIME type of files */
+       protected $mimeCallback;
 
        protected $maxFileSize = 4294967296; // integer bytes (4GiB)
 
@@ -54,11 +57,21 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackend::__construct()
+        * Additional $config params include:
+        *   - mimeCallback : Callback that takes (storage path, content, file system path) and
+        *                    returns the MIME type of the file or 'unknown/unknown'. The file
+        *                    system path parameter should be used if the content one is null.
         *
         * @param array $config
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
+               $this->mimeCallback = isset( $config['mimeCallback'] )
+                       ? $config['mimeCallback']
+                       : function( $storagePath, $content, $fsPath ) {
+                               // @TODO: handle the case of extension-less files using the contents
+                               return StreamFile::contentTypeFromPath( $storagePath ) ?: 'unknown/unknown';
+                       };
                $this->memCache = new EmptyBagOStuff(); // disabled by default
                $this->cheapCache = new ProcessCacheLRU( self::CACHE_CHEAP_SIZE );
                $this->expensiveCache = new ProcessCacheLRU( self::CACHE_EXPENSIVE_SIZE );
@@ -1583,6 +1596,18 @@ abstract class FileBackendStore extends FileBackend {
                }
                return $opts;
        }
+
+       /**
+        * Get the content type to use in HEAD/GET requests for a file
+        *
+        * @param string $storagePath
+        * @param string|null $content File data
+        * @param string|null $fsPath File system path
+        * @return MIME type
+        */
+       protected function getContentType( $storagePath, $content, $fsPath ) {
+               return call_user_func_array( $this->mimeCallback, func_get_args() );
+       }
 }
 
 /**
index f3aa145..a620f88 100644 (file)
@@ -252,10 +252,7 @@ class SwiftFileBackend extends FileBackendStore {
                        // The MD5 here will be checked within Swift against its own MD5.
                        $obj->set_etag( md5( $params['content'] ) );
                        // Use the same content type as StreamFile for security
-                       $obj->content_type = StreamFile::contentTypeFromPath( $params['dst'] );
-                       if ( !strlen( $obj->content_type ) ) { // special case
-                               $obj->content_type = 'unknown/unknown';
-                       }
+                       $obj->content_type = $this->getContentType( $params['dst'], $params['content'], null );
                        // Set any other custom headers if requested
                        if ( isset( $params['headers'] ) ) {
                                $obj->headers += $this->sanitizeHdrs( $params['headers'] );
@@ -329,10 +326,7 @@ class SwiftFileBackend extends FileBackendStore {
                        // The MD5 here will be checked within Swift against its own MD5.
                        $obj->set_etag( md5_file( $params['src'] ) );
                        // Use the same content type as StreamFile for security
-                       $obj->content_type = StreamFile::contentTypeFromPath( $params['dst'] );
-                       if ( !strlen( $obj->content_type ) ) { // special case
-                               $obj->content_type = 'unknown/unknown';
-                       }
+                       $obj->content_type = $this->getContentType( $params['dst'], null, $params['src'] );
                        // Set any other custom headers if requested
                        if ( isset( $params['headers'] ) ) {
                                $obj->headers += $this->sanitizeHdrs( $params['headers'] );
index bc1ad91..1195d5f 100644 (file)
@@ -1716,6 +1716,22 @@ class FileRepo {
         * @throws MWException
         */
        protected function assertWritableRepo() {}
+
+
+       /**
+        * Return information about the repository.
+        *
+        * @return array
+        * @since 1.22
+        */
+       public function getInfo() {
+               return array(
+                       'name' => $this->getName(),
+                       'displayname' => $this->getDisplayName(),
+                       'rootUrl' => $this->getRootUrl(),
+                       'local' => $this->isLocal(),
+               );
+       }
 }
 
 /**
index 128412c..02d83bb 100644 (file)
@@ -80,6 +80,14 @@ class ForeignAPIRepo extends FileRepo {
                }
        }
 
+       /**
+        * @return string
+        * @since 1.22
+        */
+       function getApiUrl() {
+               return $this->mApiBase;
+       }
+
        /**
         * Per docs in FileRepo, this needs to return false if we don't support versioned
         * files. Well, we don't.
@@ -416,6 +424,18 @@ class ForeignAPIRepo extends FileRepo {
                return Http::userAgent() . " ForeignAPIRepo/" . self::VERSION;
        }
 
+       /**
+        * Get information about the repo - overrides/extends the parent
+        * class's information.
+        * @return array
+        * @since 1.22
+        */
+       function getInfo() {
+               $info = parent::getInfo();
+               $info['apiurl'] = $this->getApiUrl();
+               return $info;
+       }
+
        /**
         * Like a Http:get request, but with custom User-Agent.
         * @see Http:get
index 05cb000..ec5f927 100644 (file)
@@ -1657,18 +1657,22 @@ abstract class File {
        /**
         * Get the HTML text of the description page, if available
         *
+        * @param $lang Language Optional language to fetch description in
         * @return string
         */
-       function getDescriptionText() {
+       function getDescriptionText( $lang = false ) {
                global $wgMemc, $wgLang;
                if ( !$this->repo || !$this->repo->fetchDescription ) {
                        return false;
                }
-               $renderUrl = $this->repo->getDescriptionRenderUrl( $this->getName(), $wgLang->getCode() );
+               if ( !$lang ) {
+                       $lang = $wgLang;
+               }
+               $renderUrl = $this->repo->getDescriptionRenderUrl( $this->getName(), $lang->getCode() );
                if ( $renderUrl ) {
                        if ( $this->repo->descriptionCacheExpiry > 0 ) {
                                wfDebug( "Attempting to get the description from cache..." );
-                               $key = $this->repo->getLocalCacheKey( 'RemoteFileDescription', 'url', $wgLang->getCode(),
+                               $key = $this->repo->getLocalCacheKey( 'RemoteFileDescription', 'url', $lang->getCode(),
                                                                        $this->getName() );
                                $obj = $wgMemc->get( $key );
                                if ( $obj ) {
index ee5883c..01d6b0f 100644 (file)
@@ -120,10 +120,11 @@ class ForeignDBFile extends LocalFile {
        }
 
        /**
+        * @param $lang Language Optional language to fetch description in.
         * @return string
         */
-       function getDescriptionText() {
+       function getDescriptionText( $lang = false ) {
                // Restore remote behavior
-               return File::getDescriptionText();
+               return File::getDescriptionText( $lang );
        }
 }
index 91dacf8..627defd 100644 (file)
@@ -788,10 +788,12 @@ class LocalFile extends File {
 
                $backend = $this->repo->getBackend();
                $files = array( $dir );
-               $iterator = $backend->getFileList( array( 'dir' => $dir ) );
-               foreach ( $iterator as $file ) {
-                       $files[] = $file;
-               }
+               try {
+                       $iterator = $backend->getFileList( array( 'dir' => $dir ) );
+                       foreach ( $iterator as $file ) {
+                               $files[] = $file;
+                       }
+               } catch ( FileBackendError $e ) {} // suppress (bug 54674)
 
                return $files;
        }
@@ -1672,9 +1674,11 @@ class LocalFile extends File {
         * Get the HTML text of the description page
         * This is not used by ImagePage for local files, since (among other things)
         * it skips the parser cache.
+        *
+        * @param $lang Language What language to get description in (Optional)
         * @return bool|mixed
         */
-       function getDescriptionText() {
+       function getDescriptionText( $lang = null ) {
                $revision = Revision::newFromTitle( $this->title, false, Revision::READ_NORMAL );
                if ( !$revision ) {
                        return false;
@@ -1683,7 +1687,7 @@ class LocalFile extends File {
                if ( !$content ) {
                        return false;
                }
-               $pout = $content->getParserOutput( $this->title, null, new ParserOptions() );
+               $pout = $content->getParserOutput( $this->title, null, new ParserOptions( null, $lang ) );
                return $pout->getText();
        }
 
@@ -1760,6 +1764,16 @@ class LocalFile extends File {
                                $this->lockedOwnTrx = true;
                        }
                        $this->locked++;
+                       // Bug 54736: use simple lock to handle when the file does not exist.
+                       // SELECT FOR UPDATE only locks records not the gaps where there are none.
+                       $cache = wfGetMainCache();
+                       $key = $this->getCacheKey();
+                       if ( !$cache->lock( $key, 60 ) ) {
+                               throw new MWException( "Could not acquire lock for '{$this->getName()}.'" );
+                       }
+                       $dbw->onTransactionIdle( function() use ( $cache, $key ) {
+                               $cache->unlock( $key ); // release on commit
+                       } );
                }
 
                return $dbw->selectField( 'image', '1',
index f77ff32..d349bf5 100644 (file)
@@ -134,6 +134,10 @@ MediaWiki requires UTF-8 support to function correctly.",
 This is probably too low.
 The installation may fail!",
        'config-ctype'                    => "'''Fatal:''' PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
+       'config-json'                     => "'''Fatal:''' PHP was compiled without JSON support.
+You must install either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension before installing MediaWiki.
+* The PHP extension is included in Red Hat Enterprise Linux (CentOS) 5 and 6, though must be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.
+* Some Linux distributions released after May 2013 omit the PHP extension, instead packaging the PECL extension as <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
        'config-xcache'                   => '[http://xcache.lighttpd.net/ XCache] is installed',
        'config-apc'                      => '[http://www.php.net/apc APC] is installed',
        'config-wincache'                 => '[http://www.iis.net/download/WinCacheForPhp WinCache] is installed',
@@ -656,6 +660,10 @@ Parameters:
        'config-memory-bad' => 'Parameters:
 * $1 is the configured <code>memory_limit</code>.',
        'config-ctype' => 'Message if support for [http://www.php.net/manual/en/ctype.installation.php Ctype] is missing from PHP',
+       'config-json' => 'Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.
+* "[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]" (RHEL) and "[[wikipedia:CentOS|CentOS]]" refer to two almost-identical Linux distributions. "5 and 6" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as "5 or newer".
+* "The [http://www.php.net/json PHP extension]" is the JSON extension included with PHP 5.2 and newer.
+* "The [http://pecl.php.net/package/jsonc PECL extension]" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[bugzilla:47431]]).',
        'config-xcache' => 'Message indicates if this program is available',
        'config-apc' => 'Message indicates if this program is available',
        'config-wincache' => 'Message indicates if this program is available',
@@ -10051,8 +10059,8 @@ Controlla il tuo file php.ini ed assicurati che <code>session.save_path</code> 
        'config-help-restart' => 'Vuoi cancellare tutti i dati salvati che hai inserito e riavviare il processo di installazione?',
        'config-restart' => 'Sì, riavvia',
        'config-welcome' => "=== Controllo dell'ambiente ===
-Vengono eseguiti controlli di base per vedere se questo ambiente è adatto per l'installazione di MediaWiki.
-Se hai bisogno di aiuto durante l'installazione, è necessario fornire i risultati di questi controlli.", # Fuzzy
+Saranno eseguiti controlli di base per vedere se questo ambiente è adatto per l'installazione di MediaWiki.
+Ricordati di includere queste informazioni se chiedi assistenza su come completare l'installazione.",
        'config-sidebar' => '* [//www.mediawiki.org Pagina principale MediaWiki]
 * [//www.mediawiki.org/wiki/Aiuto:Guida ai contenuti per utenti]
 * [//www.mediawiki.org/wiki/Manuale:Guida ai contenuti per admin]
@@ -12357,7 +12365,7 @@ Wann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da mus
        'config-outdated-sqlite' => "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
        'config-memory-bad' => "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.
 Dat ass wahrscheinlech ze niddreg.
-D'Installatioun kéint net fonctionnéieren.",
+D'Installatioun kéint net funktionéieren.",
        'config-xcache' => '[http://xcache.lighttpd.net/ XCache] ass installéiert',
        'config-apc' => '[http://www.php.net/apc APC] ass installéiert',
        'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] ass installéiert',
@@ -12475,15 +12483,15 @@ Dir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki el
        'config-advanced-settings' => 'Erweidert Astellungen',
        'config-extensions' => 'Erweiderungen',
        'config-install-step-done' => 'fäerdeg',
-       'config-install-step-failed' => 'huet net fonctionnéiert',
+       'config-install-step-failed' => 'huet net funktionéiert',
        'config-install-extensions' => 'Mat den Ereiderungen',
        'config-install-database' => 'Datebank gëtt installéiert',
        'config-install-pg-plpgsql' => 'No der Sprooch PL/pgSQL sichen',
        'config-pg-no-plpgsql' => "Fir d'Datebank $1 muss d'Datebanksprooch PL/pgSQL installéiert ginn",
        'config-install-user' => 'Datebank Benotzer uleeën',
        'config-install-user-alreadyexists' => 'De Benotzer "$1" gëtt et schonn!',
-       'config-install-user-create-failed' => 'D\'Opmaache vum Benotzer "$1" huet net fonctionnéiert: $2',
-       'config-install-user-grant-failed' => 'D\'Bäisetze vu Rechter fir de Benotzer "$1" huet net fonctionnéiert: $2',
+       'config-install-user-create-failed' => 'D\'Opmaache vum Benotzer "$1" huet net funktionéiert: $2',
+       'config-install-user-grant-failed' => 'D\'Bäisetze vu Rechter fir de Benotzer "$1" huet net funktionéiert: $2',
        'config-install-user-missing' => 'De Benotzer "$1" deen ugi gouf gëtt et net.',
        'config-install-user-missing-create' => 'De spezifizéierte Benotzer "$1" gëtt et net.
 Klickt d\'Checkbox "Benotzerkont uleeën" wann Dir dee Benotzer uleeë wëllt.',
@@ -16425,7 +16433,7 @@ $messages['ps'] = array(
        'config-page-welcome' => 'مېډياويکي ته ښه راغلاست!',
        'config-page-name' => 'نوم',
        'config-page-options' => 'خوښنې',
-       'config-page-install' => 'Ù\84Ú«ول',
+       'config-page-install' => 'Ù\84Ú¯ول',
        'config-page-complete' => 'بشپړ!',
        'config-env-php' => 'د $1 PHP نصب شو.',
        'config-db-type' => 'د توکبنسټ ډول:',
@@ -16444,13 +16452,13 @@ $messages['ps'] = array(
        'config-site-name-blank' => 'د وېبځي نوم وليکۍ.',
        'config-project-namespace' => 'د پروژې نوم-تشيال:',
        'config-ns-generic' => 'پروژه',
-       'config-admin-box' => 'د Ù¾Ø§Ø²Ù\88اÙ\84 Ú«ڼون',
+       'config-admin-box' => 'د Ù¾Ø§Ø²Ù\88اÙ\84 Ú¯ڼون',
        'config-admin-name' => 'ستاسې نوم:',
        'config-admin-password' => 'پټنوم:',
        'config-admin-password-confirm' => 'پټنوم يو ځل بيا:',
        'config-admin-email' => 'برېښليک پته:',
        'config-profile-wiki' => 'پرانيستې ويکي',
-       'config-license-pd' => 'Ù¼Ù\88Ù\84Ú«ړی شپول',
+       'config-license-pd' => 'Ù¼Ù\88Ù\84Ú¯ړی شپول',
        'config-email-settings' => 'د برېښليک امستنې',
        'config-install-step-done' => 'ترسره شو',
        'config-install-tables' => 'لښتيالونه جوړول',
@@ -17032,11 +17040,17 @@ $messages['pt-br'] = array(
 Para atualizar esta instalação, insira no box abaixo o valor de <code>$wgUpgradeKey</code>.
 Essa informação pode ser encontrada no arquivo <code>LocalSettings.php</code>',
        'config-localsettings-cli-upgrade' => 'Foi detectada a existência do arquivo <code><code>LocalSettings.php</code></code>.
-Esta instalação deverá ser atualizada através do <code>update.php</code>',
+Atualize esta instalação executando o arquivo <code>update.php</code>',
        'config-localsettings-key' => 'Chave de atualização:',
        'config-localsettings-badkey' => 'A chave fornecida está incorreta.',
        'config-upgrade-key-missing' => 'Foi detectada uma instalação existente do MediaWiki.
-Para atualizar esta instalação, por favor insira a seguinte linha na parte inferior do seu <code>LocalSettings.php</code>:
+Para atualizar esta instalação, insira a seguinte linha na parte inferior do seu <code>LocalSettings.php</code>:
+
+$1',
+       'config-localsettings-incomplete' => 'O arquivo <code>LocalSettings.php</code> parece incompleto.
+A variável $1 não está definida.
+Altere seu <code>LocalSettings.php</code> com a definição dessa variável e clique em "{{int:Config-continue}}".',
+       'config-localsettings-connection-error' => 'Ocorreu um erro ao conectar ao banco de dados através das configurações presentes ou no <code>LocalSettings.php</code> ou no <code>AdminSettings.php</code>. Corrija essas configurações e tente novamente.
 
 $1',
        'config-session-error' => 'Erro ao iniciar a sessão: $1',
@@ -17046,21 +17060,21 @@ Você pode aumentar esta duração configurando <code>session.gc_maxlifetime</co
 Reinicie o processo de instalação.',
        'config-no-session' => 'Os seus dados de sessão foram perdidos!
 Verifique o seu php.ini e certifique-se de que em <code>session.save_path</code> está definido um diretório apropriado.',
-       'config-your-language' => 'A sua língua:',
-       'config-your-language-help' => 'Selecione a língua que será usada durante o processo de instalação.',
-       'config-wiki-language' => 'Língua da wiki:',
-       'config-wiki-language-help' => 'Selecione a língua que será predominante na wiki.',
+       'config-your-language' => 'Seu idioma:',
+       'config-your-language-help' => 'Selecione o idioma que será usado durante o processo de instalação.',
+       'config-wiki-language' => 'Idioma do wiki:',
+       'config-wiki-language-help' => 'Selecione o idioma em que o wiki será predominantemente escrito.',
        'config-back' => '← Voltar',
        'config-continue' => 'Continuar →',
-       'config-page-language' => 'Língua',
+       'config-page-language' => 'Idioma',
        'config-page-welcome' => 'Bem-vindo(a) ao MediaWiki!',
-       'config-page-dbconnect' => 'Ligar à base de dados',
+       'config-page-dbconnect' => 'Conectar ao banco de dados',
        'config-page-upgrade' => 'Atualizar a instalação existente',
-       'config-page-dbsettings' => 'Configurações da base de dados',
+       'config-page-dbsettings' => 'Configurações do banco de dados',
        'config-page-name' => 'Nome',
        'config-page-options' => 'Opções',
        'config-page-install' => 'Instalar',
-       'config-page-complete' => 'Terminado!',
+       'config-page-complete' => 'Concluído!',
        'config-page-restart' => 'Reiniciar a instalação',
        'config-page-readme' => 'Leia-me',
        'config-page-releasenotes' => 'Notas de lançamento',
@@ -17069,9 +17083,9 @@ Verifique o seu php.ini e certifique-se de que em <code>session.save_path</code>
        'config-page-existingwiki' => 'Wiki existente',
        'config-help-restart' => 'Deseja limpar todos os dados salvos que você introduziu e reiniciar o processo de instalação?',
        'config-restart' => 'Sim, reiniciar',
-       'config-welcome' => '=== Verificações do ambiente ===
-São realizadas verificações básicas para determinar se este ambiente é apropriado para instalação do MediaWiki.
-Você deverá fornecer os resultados destas verificações se você precisar de ajuda durante a instalação.', # Fuzzy
+       'config-welcome' => '=== Verificações de ambiente ===
+São realizadas verificações básicas para determinar se este ambiente é apropriado para instalação do MediaWiki.
+Lembre-se de incluir estas informações se for procurar por suporte para a conclusão da instalação.',
        'config-copyright' => "=== Direitos autorais e Termos de uso ===
 
 $1
@@ -17082,10 +17096,15 @@ Este programa é distribuído na esperança de que seja útil, mas '''sem qualqu
 Consulte a licença GNU General Public License para mais detalhes.
 
 Em conjunto com este programa você deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito para Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/pt Página principal do MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents/pt Ajuda]
-* [//www.mediawiki.org/wiki/Manual:Contents/pt Manual técnico]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]', # Fuzzy
+       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]
+* [//www.mediawiki.org/wiki/Help:Contents Manual de uso]
+* [//www.mediawiki.org/wiki/Manual:Contents Manual administrativo]
+* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
+----
+* <doclink href=Readme>Leia-me</doclink>
+* <doclink href=ReleaseNotes>Notas de lançamento</doclink>
+* <doclink href=Copying>Licença</doclink>
+* <doclink href=UpgradeDoc>Como fazer upgrade</doclink>',
        'config-env-good' => 'O ambiente foi verificado.
 Você pode instalar o MediaWiki.',
        'config-env-bad' => 'O ambiente foi verificado.
@@ -17093,9 +17112,14 @@ Você não pode instalar o MediaWiki.',
        'config-env-php' => 'O PHP $1 está instalado.',
        'config-unicode-using-utf8' => 'A usar o utf8_normalize.so, de Brian Viper, para a normalização Unicode.',
        'config-unicode-using-intl' => 'Usando a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.',
-       'config-unicode-pure-php-warning' => "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode.
-Se o seu site tem um alto volume de tráfego, devia informar-se um pouco sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalização Unicode].", # Fuzzy
-       'config-no-db' => 'Não foi possível encontrar um driver de banco de dados adequado!', # Fuzzy
+       'config-unicode-pure-php-warning' => "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode sendo usada, em seu lugar, a lenta implementação de PHP puro.
+Se o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalização Unicode].",
+       'config-no-db' => 'Não foi possível encontrar um driver de banco de dados adequado! É necessário instalar um driver de banco de dados para o PHP.
+São suportados os seguintes tipos de bancos de dados: $1.
+
+Se estiver em uma hospedagem partilhada, peça à sua empresa de hospedagem para instalar um driver de banco de dados adequado.
+Se você mesmo tiver compilado o PHP, reconfigure-o com um cliente de banco de dados ativado usando, por exemplo, <code>./configure --with-mysql</code>.
+Se você instalou o PHP a partir de um pacote do Debian ou do Ubuntu, instale também o módulo php5-mysql.',
        'config-no-fts3' => "' ' 'Aviso' ' ': O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
        'config-register-globals' => "' ' 'Aviso: A opção <code>[http://php.net/register_globals register_globals]</code> do PHP está ativada.'''
 ' ' 'Desative-a, se puder.'''
@@ -17111,10 +17135,9 @@ O MediaWiki funcionará mesmo assim, mas o seu servidor ficará exposto a potenc
        'config-admin-name' => 'Seu nome:',
        'config-admin-password' => 'Senha:',
        'config-license-pd' => 'Domínio público',
-       'config-logo-help' => 'O tema padrão do MediaWiki inclui espaço para um logotipo de 135x160 pixels no canto superior esquerdo.
-Faça o upload de uma imagem com estas dimensões e introduza aqui a URL dessa imagem.
+       'config-logo-help' => 'Faça o upload de uma imagem de tamanho adequado e insira seu URL aqui.
 
-Se você não pretende usar um logotipo, deixe este campo em branco.', # Fuzzy
+Você pode usar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logotipo for associado a esses diretórios.',
        'config-advanced-settings' => 'Configuração avançada',
        'config-extensions' => 'Extensões',
        'config-install-step-done' => 'feito',
@@ -17524,6 +17547,7 @@ MediaWiki требует поддержки UTF-8 для корректной р
        'config-mod-security' => "'''Внимание''': на вашем веб-сервере включен [http://modsecurity.org/ mod_security]. При неправильной настройке он может вызывать проблемы для MediaWiki или другого ПО, позволяющего пользователям отправлять на сервер произвольный текст.
 Обратитесь к [http://modsecurity.org/documentation/ документации mod_security] или в поддержку вашего хостера, если при работе возникают непонятные ошибки.",
        'config-diff3-bad' => 'GNU diff3 не найден.',
+       'config-git-bad' => 'Программное обеспечение по управлению версиями Git не найдено.',
        'config-imagemagick' => 'Обнаружен ImageMagick: <code>$1</code>.
 Возможно отображение миниатюр изображений, если вы разрешите закачки файлов.',
        'config-gd' => 'Найдена встроенная графическая библиотека GD.
index afd2e3d..1044f18 100644 (file)
@@ -131,6 +131,7 @@ abstract class Installer {
                'envCheckLibicu',
                'envCheckSuhosinMaxValueLength',
                'envCheckCtype',
+               'envCheckJSON',
        );
 
        /**
@@ -1181,6 +1182,17 @@ abstract class Installer {
                return true;
        }
 
+       /**
+        * @return bool
+        */
+       protected function envCheckJSON() {
+               if ( !function_exists( 'json_decode' ) ) {
+                       $this->showError( 'config-json' );
+                       return false;
+               }
+               return true;
+       }
+
        /**
         * Get an array of likely places we can find executables. Check a bunch
         * of known Unix-like defaults, as well as the PATH environment variable
index 3e65eae..77e9a2c 100644 (file)
@@ -239,7 +239,6 @@ class WebInstallerOutput {
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title><?php $this->outputTitle(); ?></title>
        <?php echo $this->getCssUrl() . "\n"; ?>
-       <?php echo Html::inlineScript( "var dbTypes = " . Xml::encodeJsVar( $dbTypes ) ) . "\n"; ?>
        <?php echo $this->getJQuery() . "\n"; ?>
        <?php echo Html::linkedScript( '../skins/common/config.js' ) . "\n"; ?>
 </head>
index 3e94b13..81e7b73 100644 (file)
@@ -616,6 +616,63 @@ abstract class JobQueue {
                return new ArrayIterator( array() ); // not implemented
        }
 
+       /**
+        * Do not use this function outside of JobQueue/JobQueueGroup
+        *
+        * @return string
+        * @since 1.22
+        */
+       public function getCoalesceLocationInternal() {
+               return null;
+       }
+
+       /**
+        * Check whether each of the given queues are empty.
+        * This is used for batching checks for queues stored at the same place.
+        *
+        * @param array $types List of queues types
+        * @return array|null (list of non-empty queue types) or null if unsupported
+        * @throws MWException
+        * @since 1.22
+        */
+       final public function getSiblingQueuesWithJobs( array $types ) {
+               $section = new ProfileSection( __METHOD__ );
+               return $this->doGetSiblingQueuesWithJobs( $types );
+       }
+
+       /**
+        * @see JobQueue::getSiblingQueuesWithJobs()
+        * @param array $types List of queues types
+        * @return array|null (list of queue types) or null if unsupported
+        */
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               return null; // not supported
+       }
+
+       /**
+        * Check the size of each of the given queues.
+        * For queues not served by the same store as this one, 0 is returned.
+        * This is used for batching checks for queues stored at the same place.
+        *
+        * @param array $types List of queues types
+        * @return array|null (job type => whether queue is empty) or null if unsupported
+        * @throws MWException
+        * @since 1.22
+        */
+       final public function getSiblingQueueSizes( array $types ) {
+               $section = new ProfileSection( __METHOD__ );
+               return $this->doGetSiblingQueueSizes( $types );
+       }
+
+       /**
+        * @see JobQueue::getSiblingQueuesSize()
+        * @param array $types List of queues types
+        * @return array|null (list of queue types) or null if unsupported
+        */
+       protected function doGetSiblingQueueSizes( array $types ) {
+               return null; // not supported
+       }
+
        /**
         * Call wfIncrStats() for the queue overall and for the queue type
         *
index 3fa0655..af21bc1 100644 (file)
@@ -604,6 +604,36 @@ class JobQueueDB extends JobQueue {
                }
        }
 
+       public function getCoalesceLocationInternal() {
+               return $this->cluster
+                       ? "DBCluster:{$this->cluster}:{$this->wiki}"
+                       : "LBFactory:{$this->wiki}";
+       }
+
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               list( $dbr, $scope ) = $this->getSlaveDB();
+               $res = $dbr->select( 'job', 'DISTINCT job_cmd',
+                       array( 'job_cmd' => $types ), __METHOD__ );
+
+               $types = array();
+               foreach ( $res as $row ) {
+                       $types[] = $row->job_cmd;
+               }
+               return $types;
+       }
+
+       protected function doGetSiblingQueueSizes( array $types ) {
+               list( $dbr, $scope ) = $this->getSlaveDB();
+               $res = $dbr->select( 'job', array( 'job_cmd', 'COUNT(*) AS count' ),
+                       array( 'job_cmd' => $types ), __METHOD__, array( 'GROUP BY' => 'job_cmd' ) );
+
+               $sizes = array();
+               foreach ( $res as $row ) {
+                       $sizes[$row->job_cmd] = (int)$row->count;
+               }
+               return $sizes;
+       }
+
        /**
         * Recycle or destroy any jobs that have been claimed for too long
         *
index 35b80ca..d788c98 100644 (file)
@@ -421,6 +421,38 @@ class JobQueueFederated extends JobQueue {
                return $iterator;
        }
 
+       public function getCoalesceLocationInternal() {
+               return "JobQueueFederated:wiki:" . $this->wiki;
+       }
+
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               $result = array();
+               foreach ( $this->partitionQueues as $queue ) {
+                       $nonEmpty = $queue->doGetSiblingQueuesWithJobs( $types );
+                       if ( is_array( $nonEmpty ) ) {
+                               $result = array_merge( $result, $nonEmpty );
+                       } else {
+                               return null; // not supported on all partitions; bail
+                       }
+               }
+               return array_values( array_unique( $result ) );
+       }
+
+       protected function doGetSiblingQueueSizes( array $types ) {
+               $result = array();
+               foreach ( $this->partitionQueues as $queue ) {
+                       $sizes = $queue->doGetSiblingQueueSizes( $types );
+                       if ( is_array( $sizes ) ) {
+                               foreach ( $sizes as $type => $size ) {
+                                       $result[$type] = isset( $result[$type] ) ? $result[$type] + $size : $size;
+                               }
+                       } else {
+                               return null; // not supported on all partitions; bail
+                       }
+               }
+               return $result;
+       }
+
        public function setTestingPrefix( $key ) {
                foreach ( $this->partitionQueues as $queue ) {
                        $queue->setTestingPrefix( $key );
index e483e05..a20ea4a 100644 (file)
@@ -36,6 +36,9 @@ class JobQueueGroup {
 
        protected $wiki; // string; wiki ID
 
+       /** @var array Map of (bucket => (queue => JobQueue, types => list of types) */
+       protected $coalescedQueues;
+
        const TYPE_DEFAULT = 1; // integer; jobs popped by default
        const TYPE_ANY = 2; // integer; any job
 
@@ -254,14 +257,71 @@ class JobQueueGroup {
         */
        public function getQueuesWithJobs() {
                $types = array();
-               foreach ( $this->getQueueTypes() as $type ) {
-                       if ( !$this->get( $type )->isEmpty() ) {
-                               $types[] = $type;
+               foreach ( $this->getCoalescedQueues() as $info ) {
+                       $nonEmpty = $info['queue']->getSiblingQueuesWithJobs( $this->getQueueTypes() );
+                       if ( is_array( $nonEmpty ) ) { // batching features supported
+                               $types = array_merge( $types, $nonEmpty );
+                       } else { // we have to go through the queues in the bucket one-by-one
+                               foreach ( $info['types'] as $type ) {
+                                       if ( !$this->get( $type )->isEmpty() ) {
+                                               $types[] = $type;
+                                       }
+                               }
                        }
                }
                return $types;
        }
 
+       /**
+        * Get the size of the queus for a list of job types
+        *
+        * @return Array Map of (job type => size)
+        */
+       public function getQueueSizes() {
+               $sizeMap = array();
+               foreach ( $this->getCoalescedQueues() as $info ) {
+                       $sizes = $info['queue']->getSiblingQueueSizes( $this->getQueueTypes() );
+                       if ( is_array( $sizes ) ) { // batching features supported
+                               $sizeMap = $sizeMap + $sizes;
+                       } else { // we have to go through the queues in the bucket one-by-one
+                               foreach ( $info['types'] as $type ) {
+                                       $sizeMap[$type] = $this->get( $type )->getSize();
+                               }
+                       }
+               }
+               return $sizeMap;
+       }
+
+       /**
+        * @return array
+        */
+       protected function getCoalescedQueues() {
+               global $wgJobTypeConf;
+
+               if ( $this->coalescedQueues === null ) {
+                       $this->coalescedQueues = array();
+                       foreach ( $wgJobTypeConf as $type => $conf ) {
+                               $queue = JobQueue::factory(
+                                       array( 'wiki' => $this->wiki, 'type' => 'null' ) + $conf );
+                               $loc = $queue->getCoalesceLocationInternal();
+                               if ( !isset( $this->coalescedQueues[$loc] ) ) {
+                                       $this->coalescedQueues[$loc]['queue'] = $queue;
+                                       $this->coalescedQueues[$loc]['types'] = array();
+                               }
+                               if ( $type === 'default' ) {
+                                       $this->coalescedQueues[$loc]['types'] = array_merge(
+                                               $this->coalescedQueues[$loc]['types'],
+                                               array_diff( $this->getQueueTypes(), array_keys( $wgJobTypeConf ) )
+                                       );
+                               } else {
+                                       $this->coalescedQueues[$loc]['types'][] = $type;
+                               }
+                       }
+               }
+
+               return $this->coalescedQueues;
+       }
+
        /**
         * Check if jobs should not be popped of a queue right now.
         * This is only used for performance, such as to avoid spamming
index 57189a5..378e175 100644 (file)
@@ -501,7 +501,7 @@ LUA;
                        foreach ( $props as $prop ) {
                                $keys[] = $this->getQueueKey( $prop );
                        }
-                       $res = ( $conn->delete( $keys ) !== false );
+                       return ( $conn->delete( $keys ) !== false );
                } catch ( RedisException $e ) {
                        $this->throwRedisException( $this->server, $conn, $e );
                }
@@ -547,6 +547,35 @@ LUA;
                }
        }
 
+       public function getCoalesceLocationInternal() {
+               return "RedisServer:" . $this->server;
+       }
+
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               return array_keys( array_filter( $this->doGetSiblingQueueSizes( $types ) ) );
+       }
+
+       protected function doGetSiblingQueueSizes( array $types ) {
+               $sizes = array(); // (type => size)
+               $types = array_values( $types ); // reindex
+               try {
+                       $conn = $this->getConnection();
+                       $conn->multi( Redis::PIPELINE );
+                       foreach ( $types as $type ) {
+                               $conn->lSize( $this->getQueueKey( 'l-unclaimed', $type ) );
+                       }
+                       $res = $conn->exec();
+                       if ( is_array( $res ) ) {
+                               foreach ( $res as $i => $size ) {
+                                       $sizes[$types[$i]] = $size;
+                               }
+                       }
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $this->server, $conn, $e );
+               }
+               return $sizes;
+       }
+
        /**
         * This function should not be called outside JobQueueRedis
         *
@@ -804,14 +833,16 @@ LUA;
 
        /**
         * @param $prop string
+        * @param $type string|null
         * @return string
         */
-       private function getQueueKey( $prop ) {
+       private function getQueueKey( $prop, $type = null ) {
+               $type = is_string( $type ) ? $type : $this->type;
                list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
                if ( strlen( $this->key ) ) { // namespaced queue (for testing)
-                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, $this->key, $prop );
+                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $type, $this->key, $prop );
                } else {
-                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, $prop );
+                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $type, $prop );
                }
        }
 
index 128d9b9..5a52fc7 100644 (file)
@@ -77,6 +77,9 @@ class CSSJanus {
                'four_notation_quantity' => null,
                'four_notation_color' => null,
                'border_radius' => null,
+               'box_shadow' => null,
+               'text_shadow1' => null,
+               'text_shadow2' => null,
                'bg_horizontal_percentage' => null,
                'bg_horizontal_percentage_x' => null,
        );
@@ -117,6 +120,9 @@ class CSSJanus {
                $patterns['four_notation_quantity'] = "/(:\s*){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s*[;}])/i";
                $patterns['four_notation_color'] = "/(-color\s*:\s*){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s*[;}])/i";
                $patterns['border_radius'] = "/(border-radius\s*:\s*){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s*[;}])/i";
+               $patterns['box_shadow'] = "/(box-shadow\s*:\s*(?:inset\s*)?){$patterns['possibly_negative_quantity']}/i";
+               $patterns['text_shadow1'] = "/(text-shadow\s*:\s*){$patterns['color']}(\s*){$patterns['possibly_negative_quantity']}/i";
+               $patterns['text_shadow2'] = "/(text-shadow\s*:\s*){$patterns['possibly_negative_quantity']}/i";
                // The two regexes below are parenthesized differently then in the original implementation to make the
                // callback's job more straightforward
                $patterns['bg_horizontal_percentage'] = "/(background(?:-position)?\s*:\s*[^%]*?)(-?{$patterns['num']})(%\s*(?:{$patterns['quantity']}|{$patterns['ident']}))/";
@@ -164,6 +170,7 @@ class CSSJanus {
                $css = self::fixFourPartNotation( $css );
                $css = self::fixBorderRadius( $css );
                $css = self::fixBackgroundPosition( $css );
+               $css = self::fixShadows( $css );
 
                // Detokenize stuff we tokenized before
                $css = $comments->detokenize( $css );
@@ -262,7 +269,6 @@ class CSSJanus {
        private static function fixFourPartNotation( $css ) {
                $css = preg_replace( self::$patterns['four_notation_quantity'], '$1$2$3$8$5$6$7$4$9', $css );
                $css = preg_replace( self::$patterns['four_notation_color'], '$1$2$3$8$5$6$7$4$9', $css );
-
                return $css;
        }
 
@@ -282,6 +288,41 @@ class CSSJanus {
                return $css;
        }
 
+       /**
+        * Negates horizontal offset in box-shadow and text-shadow rules.
+        *
+        * @param $css string
+        * @return string
+        */
+       private static function fixShadows( $css ) {
+               // Flips the sign of a CSS value, possibly with a unit.
+               // (We can't just negate the value with unary minus due to the units.)
+               $flipSign = function ( $cssValue ) {
+                       // Don't mangle zeroes
+                       if ( intval( $cssValue ) === 0 ) {
+                               return $cssValue;
+                       } elseif ( $cssValue[0] === '-' ) {
+                               return substr( $cssValue, 1 );
+                       } else {
+                               return "-" . $cssValue;
+                       }
+               };
+
+               $css = preg_replace_callback( self::$patterns['box_shadow'], function ( $matches ) use ( $flipSign ) {
+                       return $matches[1] . $flipSign( $matches[2] );
+               }, $css );
+
+               $css = preg_replace_callback( self::$patterns['text_shadow1'], function ( $matches ) use ( $flipSign ) {
+                       return $matches[1] . $matches[2] . $matches[3] . $flipSign( $matches[4] );
+               }, $css );
+
+               $css = preg_replace_callback( self::$patterns['text_shadow2'], function ( $matches ) use ( $flipSign ) {
+                       return $matches[1] . $flipSign( $matches[2] );
+               }, $css );
+
+               return $css;
+       }
+
        /**
         * Flip horizontal background percentages.
         * @param $css string
index 6db21be..3dce961 100644 (file)
@@ -1,10 +1,10 @@
 <?php
 
 /**
- * lessphp v0.4.0@785ad53840
+ * lessphp v0.4.0@261f1bd28f
  * http://leafo.net/lessphp
  *
- * LESS css compiler, adapted from http://lesscss.org
+ * LESS CSS compiler, adapted from http://lesscss.org
  *
  * For ease of distribution, lessphp 0.4.0 is under a dual license.
  * You are free to pick which one suits your needs.
@@ -40,7 +40,7 @@
 
 
 /**
- * The less compiler and parser.
+ * The LESS compiler and parser.
  *
  * Converting LESS to CSS is a three stage process. The incoming file is parsed
  * by `lessc_parser` into a syntax tree, then it is compiled into another tree
@@ -67,8 +67,9 @@
  */
 class lessc {
        static public $VERSION = "v0.4.0";
-       static protected $TRUE = array("keyword", "true");
-       static protected $FALSE = array("keyword", "false");
+
+       static public $TRUE = array("keyword", "true");
+       static public $FALSE = array("keyword", "false");
 
        protected $libFunctions = array();
        protected $registeredVars = array();
@@ -90,8 +91,6 @@ class lessc {
        protected $sourceParser = null;
        protected $sourceLoc = null;
 
-       static public $defaultValue = array("keyword", "");
-
        static protected $nextImportId = 0; // uniquely identify imports
 
        // attempts to find the path of an import url, returns null for css files
@@ -311,34 +310,68 @@ class lessc {
                foreach ($this->sortProps($block->props) as $prop) {
                        $this->compileProp($prop, $block, $out);
                }
+               $out->lines = $this->deduplicate($out->lines);
+       }
 
-               $out->lines = array_values(array_unique($out->lines));
+       /**
+        * Deduplicate lines in a block. Comments are not deduplicated. If a
+        * duplicate rule is detected, the comments immediately preceding each
+        * occurence are consolidated.
+        */
+       protected function deduplicate($lines) {
+               $unique = array();
+               $comments = array();
+
+               foreach($lines as $line) {
+                       if (strpos($line, '/*') === 0) {
+                               $comments[] = $line;
+                               continue;
+                       }
+                       if (!in_array($line, $unique)) {
+                               $unique[] = $line;
+                       }
+                       array_splice($unique, array_search($line, $unique), 0, $comments);
+                       $comments = array();
+               }
+               return array_merge($unique, $comments);
        }
 
        protected function sortProps($props, $split = false) {
                $vars = array();
                $imports = array();
                $other = array();
+               $stack = array();
 
                foreach ($props as $prop) {
                        switch ($prop[0]) {
+                       case "comment":
+                               $stack[] = $prop;
+                               break;
                        case "assign":
+                               $stack[] = $prop;
                                if (isset($prop[1][0]) && $prop[1][0] == $this->vPrefix) {
-                                       $vars[] = $prop;
+                                       $vars = array_merge($vars, $stack);
                                } else {
-                                       $other[] = $prop;
+                                       $other = array_merge($other, $stack);
                                }
+                               $stack = array();
                                break;
                        case "import":
                                $id = self::$nextImportId++;
                                $prop[] = $id;
-                               $imports[] = $prop;
+                               $stack[] = $prop;
+                               $imports = array_merge($imports, $stack);
                                $other[] = array("import_mixin", $id);
+                               $stack = array();
                                break;
                        default:
-                               $other[] = $prop;
+                               $stack[] = $prop;
+                               $other = array_merge($other, $stack);
+                               $stack = array();
+                               break;
                        }
                }
+               $other = array_merge($other, $stack);
 
                if ($split) {
                        return array(array_merge($vars, $imports), $other);
@@ -712,8 +745,7 @@ class lessc {
                        $mixins = $this->findBlocks($block, $path, $orderedArgs, $keywordArgs);
 
                        if ($mixins === null) {
-                               // fwrite(STDERR,"failed to find block: ".implode(" > ", $path)."\n");
-                               break; // throw error here??
+                               $this->throwError("{$prop[1][0]} is undefined");
                        }
 
                        foreach ($mixins as $mixin) {
@@ -987,7 +1019,7 @@ class lessc {
                                if (isset($items[0])) {
                                        return $this->lib_e($items[0]);
                                }
-                               return self::$defaultValue;
+                               $this->throwError("unrecognised input");
                        case "string":
                                $arg[1] = "";
                                return $arg;
@@ -1061,7 +1093,7 @@ class lessc {
         * Helper function to get arguments for color manipulation functions.
         * takes a list that contains a color like thing and a percentage
         */
-       protected function colorArgs($args) {
+       public function colorArgs($args) {
                if ($args[0] != 'list' || count($args[2]) < 2) {
                        return array(array('color', 0, 0, 0), 0);
                }
@@ -1220,18 +1252,18 @@ class lessc {
                return $lightColor;
        }
 
-       protected function assertColor($value, $error = "expected color value") {
+       public function assertColor($value, $error = "expected color value") {
                $color = $this->coerceColor($value);
                if (is_null($color)) $this->throwError($error);
                return $color;
        }
 
-       protected function assertNumber($value, $error = "expecting number") {
+       public function assertNumber($value, $error = "expecting number") {
                if ($value[0] == "number") return $value[1];
                $this->throwError($error);
        }
 
-       protected function assertArgs($value, $expectedArgs, $name="") {
+       public function assertArgs($value, $expectedArgs, $name="") {
                if ($expectedArgs == 1) {
                        return $value;
                } else {
@@ -1415,7 +1447,7 @@ class lessc {
                        }
 
                        $seen[$key] = true;
-                       $out = $this->reduce($this->get($key, self::$defaultValue));
+                       $out = $this->reduce($this->get($key));
                        $seen[$key] = false;
                        return $out;
                case "list":
@@ -1551,7 +1583,7 @@ class lessc {
                return $value;
        }
 
-       protected function toBool($a) {
+       public function toBool($a) {
                if ($a) return self::$TRUE;
                else return self::$FALSE;
        }
@@ -1774,7 +1806,7 @@ class lessc {
 
 
        // get the highest occurrence entry for a name
-       protected function get($name, $default=null) {
+       protected function get($name) {
                $current = $this->env;
 
                $isArguments = $name == $this->vPrefix . 'arguments';
@@ -1791,7 +1823,7 @@ class lessc {
                        }
                }
 
-               return $default;
+               $this->throwError("variable $name is undefined");
        }
 
        // inject array of unparsed strings into environment as variables
@@ -2027,14 +2059,14 @@ class lessc {
                return $this->allParsedFiles;
        }
 
-       protected function addParsedFile($file) {
+       public function addParsedFile($file) {
                $this->allParsedFiles[realpath($file)] = filemtime($file);
        }
 
        /**
         * Uses the current value of $this->count to show line and line number
         */
-       protected function throwError($msg = null) {
+       public function throwError($msg = null) {
                if ($this->sourceLoc >= 0) {
                        $this->sourceParser->throwError($msg, $this->sourceLoc);
                }
@@ -2300,7 +2332,6 @@ class lessc_parser {
                $this->whitespace();
 
                // parse the entire file
-               $lastCount = $this->count;
                while (false !== $this->parseChunk());
 
                if ($this->count != strlen($this->buffer))
@@ -2353,6 +2384,10 @@ class lessc_parser {
                if (empty($this->buffer)) return false;
                $s = $this->seek();
 
+               if ($this->whitespace()) {
+                       return true;
+               }
+
                // setting a property
                if ($this->keyword($key) && $this->assign() &&
                        $this->propertyValue($value, $key) && $this->end())
@@ -2433,7 +2468,7 @@ class lessc_parser {
                }
 
                // opening a simple block
-               if ($this->tags($tags) && $this->literal('{')) {
+               if ($this->tags($tags) && $this->literal('{', false)) {
                        $tags = $this->fixTags($tags);
                        $this->pushBlock($tags);
                        return true;
@@ -2708,7 +2743,6 @@ class lessc_parser {
 
        // an import statement
        protected function import(&$out) {
-               $s = $this->seek();
                if (!$this->literal('@import')) return false;
 
                // @import "something.css" media;
@@ -3068,7 +3102,6 @@ class lessc_parser {
        // list of tags of specifying mixin path
        // optionally separated by > (lazy, accepts extra >)
        protected function mixinTags(&$tags) {
-               $s = $this->seek();
                $tags = array();
                while ($this->tag($tt, true)) {
                        $tags[] = $tt;
@@ -3296,7 +3329,7 @@ class lessc_parser {
 
        // consume an end of statement delimiter
        protected function end() {
-               if ($this->literal(';')) {
+               if ($this->literal(';', false)) {
                        return true;
                } elseif ($this->count == strlen($this->buffer) || $this->buffer[$this->count] == '}') {
                        // if there is end of file or a closing block next then we don't need a ;
@@ -3445,9 +3478,9 @@ class lessc_parser {
                if ($this->writeComments) {
                        $gotWhite = false;
                        while (preg_match(self::$whitePattern, $this->buffer, $m, null, $this->count)) {
-                               if (isset($m[1]) && empty($this->commentsSeen[$this->count])) {
+                               if (isset($m[1]) && empty($this->seenComments[$this->count])) {
                                        $this->append(array("comment", $m[1]));
-                                       $this->commentsSeen[$this->count] = true;
+                                       $this->seenComments[$this->count] = true;
                                }
                                $this->count += strlen($m[0]);
                                $gotWhite = true;
index f8403ca..09ae3b8 100644 (file)
@@ -249,13 +249,6 @@ class LogPager extends ReverseChronologicalPager {
                                # no duplicate log rows. Otherwise, we need to remove the duplicates.
                                $options[] = 'DISTINCT';
                        }
-               # Avoid usage of the wrong index by limiting
-               # the choices of available indexes. This mainly
-               # avoids site-breaking filesorts.
-               } elseif ( $this->title || $this->pattern || $this->performer ) {
-                       $index['logging'] = array( 'page_time', 'user_time', 'log_user_type_time' );
-               } elseif ( count( $this->types ) == 1 ) {
-                       $index['logging'] = 'type_time'; // @TODO: sucks for change tags
                }
                if ( count( $index ) ) {
                        $options['USE INDEX'] = $index;
index 9f7a09c..e2444a1 100644 (file)
@@ -99,17 +99,6 @@ class BitmapHandler extends ImageHandler {
                return array( $width, $height );
        }
 
-       /**
-        * Function that returns the number of pixels to be thumbnailed.
-        * Intended for animated GIFs to multiply by the number of frames.
-        *
-        * @param File $image
-        * @return int
-        */
-       function getImageArea( $image ) {
-               return $image->getWidth() * $image->getHeight();
-       }
-
        /**
         * @param $image File
         * @param  $dstPath
@@ -357,12 +346,12 @@ class BitmapHandler extends ImageHandler {
                        " -depth 8 $sharpen " .
                        " -rotate -$rotation " .
                        " {$animation_post} " .
-                       wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) ) . " 2>&1";
+                       wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) );
 
                wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
                wfProfileIn( 'convert' );
                $retval = 0;
-               $err = wfShellExec( $cmd, $retval, $env );
+               $err = wfShellExecWithStderr( $cmd, $retval, $env );
                wfProfileOut( 'convert' );
 
                if ( $retval !== 0 ) {
@@ -472,7 +461,7 @@ class BitmapHandler extends ImageHandler {
                wfDebug( __METHOD__ . ": Running custom convert command $cmd\n" );
                wfProfileIn( 'convert' );
                $retval = 0;
-               $err = wfShellExec( $cmd, $retval );
+               $err = wfShellExecWithStderr( $cmd, $retval );
                wfProfileOut( 'convert' );
 
                if ( $retval !== 0 ) {
@@ -712,24 +701,6 @@ class BitmapHandler extends ImageHandler {
                imagejpeg( $dst_image, $thumbPath, 95 );
        }
 
-       /**
-        * On supporting image formats, try to read out the low-level orientation
-        * of the file and return the angle that the file needs to be rotated to
-        * be viewed.
-        *
-        * This information is only useful when manipulating the original file;
-        * the width and height we normally work with is logical, and will match
-        * any produced output views.
-        *
-        * The base BitmapHandler doesn't understand any metadata formats, so this
-        * is left up to child classes to implement.
-        *
-        * @param $file File
-        * @return int 0, 90, 180 or 270
-        */
-       public function getRotation( $file ) {
-               return 0;
-       }
 
        /**
         * Returns whether the current scaler supports rotation (im and gd do)
@@ -774,11 +745,11 @@ class BitmapHandler extends ImageHandler {
                                $cmd = wfEscapeShellArg( $wgImageMagickConvertCommand ) . " " .
                                        wfEscapeShellArg( $this->escapeMagickInput( $params['srcPath'], $scene ) ) .
                                        " -rotate -$rotation " .
-                                       wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) ) . " 2>&1";
+                                       wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) );
                                wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
                                wfProfileIn( 'convert' );
                                $retval = 0;
-                               $err = wfShellExec( $cmd, $retval, $env );
+                               $err = wfShellExecWithStderr( $cmd, $retval, $env );
                                wfProfileOut( 'convert' );
                                if ( $retval !== 0 ) {
                                        $this->logErrorForExternalProcess( $retval, $err, $cmd );
index 8e46f2f..e079003 100644 (file)
@@ -200,6 +200,19 @@ abstract class ImageHandler extends MediaHandler {
                wfRestoreWarnings();
                return $gis;
        }
+       /**
+        * Function that returns the number of pixels to be thumbnailed.
+        * Intended for animated GIFs to multiply by the number of frames.
+        *
+        * If the file doesn't support a notion of "area" return 0.
+        *
+        * @param File $image
+        * @return int
+        */
+       function getImageArea( $image ) {
+               return $image->getWidth() * $image->getHeight();
+       }
+
 
        /**
         * @param $file File
index 1feb378..fa76366 100644 (file)
@@ -75,11 +75,11 @@ class JpegHandler extends ExifBitmapHandler {
                        $cmd = wfEscapeShellArg( $wgJpegTran ) .
                                " -rotate " . wfEscapeShellArg( $rotation ) .
                                " -outfile " . wfEscapeShellArg( $params['dstPath'] ) .
-                               " " . wfEscapeShellArg( $params['srcPath'] ) . " 2>&1";
+                               " " . wfEscapeShellArg( $params['srcPath'] );
                        wfDebug( __METHOD__ . ": running jpgtran: $cmd\n" );
                        wfProfileIn( 'jpegtran' );
                        $retval = 0;
-                       $err = wfShellExec( $cmd, $retval, $env );
+                       $err = wfShellExecWithStderr( $cmd, $retval, $env );
                        wfProfileOut( 'jpegtran' );
                        if ( $retval !== 0 ) {
                                $this->logErrorForExternalProcess( $retval, $err, $cmd );
index 2e8d41d..779e23c 100644 (file)
@@ -79,13 +79,15 @@ abstract class MediaHandler {
         * Merge a parameter array into a string appropriate for inclusion in filenames
         *
         * @param $params array Array of parameters that have been through normaliseParams.
+        * @return String
         */
        abstract function makeParamString( $params );
 
        /**
         * Parse a param string made with makeParamString back into an array
         *
-        * @param $str string
+        * @param $str string The parameter string without file name (e.g. 122px)
+        * @return Array|Boolean Array of parameters or false on failure.
         */
        abstract function parseParamString( $str );
 
@@ -643,4 +645,23 @@ abstract class MediaHandler {
        public static function canRotate() {
                return false;
        }
+
+       /**
+        * On supporting image formats, try to read out the low-level orientation
+        * of the file and return the angle that the file needs to be rotated to
+        * be viewed.
+        *
+        * This information is only useful when manipulating the original file;
+        * the width and height we normally work with is logical, and will match
+        * any produced output views.
+        *
+        * For files we don't know, we return 0.
+        *
+        * @param $file File
+        * @return int 0, 90, 180 or 270
+        */
+       public function getRotation( $file ) {
+               return 0;
+       }
+
 }
index 4c055a5..72a9696 100644 (file)
@@ -177,7 +177,7 @@ class SvgHandler extends ImageHandler {
                                                wfEscapeShellArg( $srcPath ),
                                                wfEscapeShellArg( $dstPath ) ),
                                        $wgSVGConverters[$wgSVGConverter]
-                               ) . " 2>&1";
+                               );
 
                                $env = array();
                                if ( $lang !== false ) {
@@ -186,7 +186,7 @@ class SvgHandler extends ImageHandler {
 
                                wfProfileIn( 'rsvg' );
                                wfDebug( __METHOD__ . ": $cmd\n" );
-                               $err = wfShellExec( $cmd, $retval, $env );
+                               $err = wfShellExecWithStderr( $cmd, $retval, $env );
                                wfProfileOut( 'rsvg' );
                        }
                }
index 7c5eeb4..7053f13 100644 (file)
@@ -223,19 +223,19 @@ class ParserCache {
         * @param $parserOutput ParserOutput
         * @param $article Article
         * @param $popts ParserOptions
+        * @param $cacheTime Time when the cache was generated
         */
-       public function save( $parserOutput, $article, $popts ) {
+       public function save( $parserOutput, $article, $popts, $cacheTime = null ) {
                $expire = $parserOutput->getCacheExpiry();
-
                if ( $expire > 0 ) {
-                       $now = wfTimestampNow();
+                       $cacheTime = $cacheTime ?: wfTimestampNow();
 
                        $optionsKey = new CacheTime;
                        $optionsKey->mUsedOptions = $parserOutput->getUsedOptions();
                        $optionsKey->updateCacheExpiry( $expire );
 
-                       $optionsKey->setCacheTime( $now );
-                       $parserOutput->setCacheTime( $now );
+                       $optionsKey->setCacheTime( $cacheTime );
+                       $parserOutput->setCacheTime( $cacheTime );
 
                        $optionsKey->setContainsOldMagic( $parserOutput->containsOldMagic() );
 
@@ -245,8 +245,8 @@ class ParserCache {
                        // Save the timestamp so that we don't have to load the revision row on view
                        $parserOutput->setTimestamp( $article->getTimestamp() );
 
-                       $parserOutput->mText .= "\n<!-- Saved in parser cache with key $parserOutputKey and timestamp $now -->\n";
-                       wfDebug( "Saved in parser cache with key $parserOutputKey and timestamp $now\n" );
+                       $parserOutput->mText .= "\n<!-- Saved in parser cache with key $parserOutputKey and timestamp $cacheTime\n -->\n";
+                       wfDebug( "Saved in parser cache with key $parserOutputKey and timestamp $cacheTime\n" );
 
                        // Save the parser output
                        $this->mMemc->set( $parserOutputKey, $parserOutput, $expire );
index b943dd0..81390dc 100644 (file)
@@ -1213,4 +1213,41 @@ class ResourceLoader {
        public static function isValidModuleName( $moduleName ) {
                return !preg_match( '/[|,!]/', $moduleName ) && strlen( $moduleName ) <= 255;
        }
+
+       /**
+        * Returns LESS compiler set up for use with MediaWiki
+        *
+        * @since 1.22
+        * @return lessc
+        */
+       public static function getLessCompiler() {
+               global $wgResourceLoaderLESSFunctions, $wgResourceLoaderLESSImportPaths;
+
+               $less = new lessc();
+               $less->setPreserveComments( true );
+               $less->setVariables( self::getLESSVars() );
+               $less->setImportDir( $wgResourceLoaderLESSImportPaths );
+               foreach ( $wgResourceLoaderLESSFunctions as $name => $func ) {
+                       $less->registerFunction( $name, $func );
+               }
+               return $less;
+       }
+
+       /**
+        * Get global LESS variables.
+        *
+        * $since 1.22
+        * @return array: Map of variable names to string CSS values.
+        */
+       public static function getLESSVars() {
+               global $wgResourceLoaderLESSVars;
+
+               static $lessVars = null;
+               if ( $lessVars === null ) {
+                       $lessVars = $wgResourceLoaderLESSVars;
+                       // Sort by key to ensure consistent hashing for cache lookups.
+                       ksort( $lessVars );
+               }
+               return $lessVars;
+       }
 }
index ead81cc..c9c7e4e 100644 (file)
@@ -486,10 +486,11 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Infer the stylesheet language from a stylesheet file path.
         *
+        * @since 1.22
         * @param string $path
         * @return string: the stylesheet language name
         */
-       protected function getStyleSheetLang( $path ) {
+       public function getStyleSheetLang( $path ) {
                return preg_match( '/\.less$/i', $path ) ? 'less' : 'css';
        }
 
@@ -578,6 +579,23 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                );
        }
 
+       /**
+        * Returns all style files used by this module
+        * @return array
+        */
+       public function getAllStyleFiles() {
+               $files = array();
+               foreach( (array)$this->styles as $key => $value ) {
+                       if ( is_array( $value ) ) {
+                               $path = $key;
+                       } else {
+                               $path = $value;
+                       }
+                       $files[] = $this->getLocalPath( $path );
+               }
+               return $files;
+       }
+
        /**
         * Gets the contents of a list of JavaScript files.
         *
@@ -703,18 +721,20 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
 
        /**
         * Generate a cache key for a LESS file.
+        *
         * The cache key varies on the file name, the names and values of global
         * LESS variables, and the value of $wgShowExceptionDetails. Varying on
         * $wgShowExceptionDetails ensures the CSS comment indicating compilation
         * failure shows the right level of detail.
         *
+        * @since 1.22
         * @param string $fileName File name of root LESS file.
         * @return string: Cache key
         */
        protected static function getLESSCacheKey( $fileName ) {
                global $wgShowExceptionDetails;
 
-               $vars = json_encode( self::getLESSVars() );
+               $vars = json_encode( ResourceLoader::getLESSVars() );
                $hash = md5( $fileName . $vars );
                return wfMemcKey( 'resourceloader', 'less', (string)$wgShowExceptionDetails, $hash );
        }
@@ -728,6 +748,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * that were processed. lessphp compares the cached & current mtimes and
         * recompiles as necessary.
         *
+        * @since 1.22
         * @param string $fileName File path of LESS source
         * @return string: CSS source
         */
@@ -745,7 +766,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        $source = $fileName;
                }
 
-               $compiler = self::lessCompiler();
+               $compiler = ResourceLoader::getLessCompiler();
                $expire = 0;
                try {
                        $result = $compiler->cachedCompile( $source );
@@ -772,9 +793,6 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        $result['files'] = array( $fileName => self::safeFilemtime( $fileName ) );
                        $result['updated'] = time();
                }
-               // Tie cache expiry to the names and mtimes of image files that were
-               // embedded in the generated CSS source.
-               $result['files'] += $compiler->embeddedImages;
                $this->localFileRefs += array_keys( $result['files'] );
                $cache->set( $key, $result, $expire );
                return $result['compiled'];
diff --git a/includes/resourceloader/ResourceLoaderLESSFunctions.php b/includes/resourceloader/ResourceLoaderLESSFunctions.php
new file mode 100644 (file)
index 0000000..08d574c
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/**
+ * PHP-provided functions for LESS; see docs for $wgResourceLoaderLESSFunctions
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+class ResourceLoaderLESSFunctions {
+       /**
+        * Check if an image file reference is suitable for embedding.
+        * An image is embeddable if it (a) exists, (b) has a suitable MIME-type,
+        * (c) does not exceed IE<9 size limit of 32kb. This is a LESS predicate
+        * function; it returns a LESS boolean value and can thus be used as a
+        * mixin guard.
+        *
+        * @par Example:
+        * @code
+        *   .background-image(@url) when(embeddable(@url)) {
+        *       background-image: url(@url) !ie;
+        *   }
+        * @endcode
+        */
+       public static function embeddable( $frame, $less ) {
+               $base = pathinfo( $less->parser->sourceName, PATHINFO_DIRNAME );
+               $url = $frame[2][0];
+               $file = realpath( $base . '/' . $url );
+               $embeddable = ( $file
+                       && strpos( $url, '//' ) === false
+                       && filesize( $file ) < CSSMin::EMBED_SIZE_LIMIT
+                       && CSSMin::getMimeType( $file ) !== false ) ? 'true' : 'false';
+               return array( 'keyword', $embeddable );
+       }
+
+       /**
+        * Convert an image URI to a base64-encoded data URI.
+        *
+        * @par Example:
+        * @code
+        *   .fancy-button {
+        *       background-image: embed('../images/button-bg.png');
+        *   }
+        * @endcode
+        */
+       public static function embed( $frame, $less ) {
+               $base = pathinfo( $less->parser->sourceName, PATHINFO_DIRNAME );
+               $url = $frame[2][0];
+               $file = realpath( $base . '/' . $url );
+
+               $data = CSSMin::encodeImageAsDataURI( $file );
+               $less->addParsedFile( $file );
+               return 'url(' . $data . ')';
+       }
+}
index 226d91c..298f1fe 100644 (file)
@@ -407,9 +407,6 @@ abstract class ResourceLoaderModule {
        private static $jsParser;
        private static $parseCacheVersion = 1;
 
-       /** @var array Global LESS variables */
-       private static $lessVars;
-
        /**
         * Validate a given script file; if valid returns the original source.
         * If invalid, returns replacement JS source that throws an exception.
@@ -457,42 +454,6 @@ abstract class ResourceLoaderModule {
                return self::$jsParser;
        }
 
-       /**
-        * @return lessc
-        */
-       protected static function lessCompiler() {
-               global $wgResourceLoaderLESSFunctions, $wgResourceLoaderLESSImportPaths;
-
-               $less = new lessc();
-               $less->setPreserveComments( true );
-               $less->setVariables( self::getLESSVars() );
-               $less->setImportDir( $wgResourceLoaderLESSImportPaths );
-               foreach ( $wgResourceLoaderLESSFunctions as $name => $func ) {
-                       $less->registerFunction( $name, $func );
-               }
-               // To ensure embedded images are refreshed when their source files
-               // change, track the names and modification times of image files that
-               // were embedded in the generated CSS source.
-               $less->embeddedImages = array();
-               return $less;
-       }
-
-       /**
-        * Get global LESS variables.
-        *
-        * @return array: Map of variable names to string CSS values.
-        */
-       protected static function getLESSVars() {
-               global $wgResourceLoaderLESSVars;
-
-               if ( self::$lessVars === null ) {
-                       self::$lessVars = $wgResourceLoaderLESSVars;
-                       // Sort by key to ensure consistent hashing for cache lookups.
-                       ksort( self::$lessVars );
-               }
-               return self::$lessVars;
-       }
-
        /**
         * Safe version of filemtime(), which doesn't throw a PHP warning if the file doesn't exist
         * but returns 1 instead.
index 861ff18..20f6e0b 100644 (file)
@@ -84,7 +84,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        'wgFormattedNamespaces' => $wgContLang->getFormattedNamespaces(),
                        'wgNamespaceIds' => $namespaceIds,
                        'wgSiteName' => $wgSitename,
-                       'wgFileExtensions' => array_values( $wgFileExtensions ),
+                       'wgFileExtensions' => array_values( array_unique( $wgFileExtensions ) ),
                        'wgDBname' => $wgDBname,
                        // This sucks, it is only needed on Special:Upload, but I could
                        // not find a way to add vars only for a certain module
@@ -95,6 +95,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        'wgCookiePrefix' => $wgCookiePrefix,
                        'wgResourceLoaderMaxQueryLength' => $wgResourceLoaderMaxQueryLength,
                        'wgCaseSensitiveNamespaces' => $caseSensitiveNamespaces,
+                       'wgLegalTitleChars' => Title::convertByteClassToUnicodeClass( Title::legalChars() ),
                );
 
                wfRunHooks( 'ResourceLoaderGetConfigVars', array( &$vars ) );
index 2148210..82a413e 100644 (file)
@@ -89,7 +89,7 @@ class SearchUpdate implements DeferrableUpdate {
 
                wfProfileIn( __METHOD__ );
 
-               $page = WikiPage::newFromId( $this->id );
+               $page = WikiPage::newFromId( $this->id, WikiPage::READ_LATEST );
                $indexTitle = Title::indexTitle( $this->title->getNamespace(), $this->title->getText() );
 
                foreach ( SearchEngine::getSearchTypes() as $type ) {
index 614bd3e..65aa07e 100644 (file)
@@ -267,19 +267,7 @@ class SpecialContributions extends SpecialPage {
                        }
                }
 
-               // Old message 'contribsub' had one parameter, but that doesn't work for
-               // languages that want to put the "for" bit right after $user but before
-               // $links.  If 'contribsub' is around, use it for reverse compatibility,
-               // otherwise use 'contribsub2'.
-               // @todo Should this be removed at some point?
-               $oldMsg = $this->msg( 'contribsub' );
-               if ( $oldMsg->exists() ) {
-                       $linksWithParentheses = $this->msg( 'parentheses' )->rawParams( $links )->escaped();
-
-                       return $oldMsg->rawParams( "$user $linksWithParentheses" );
-               }
-
-               return $this->msg( 'contribsub2' )->rawParams( $user, $links );
+               return $this->msg( 'contribsub2' )->rawParams( $user, $links )->params( $userObj->getName() );
        }
 
        /**
index 28ca24b..2cf1730 100644 (file)
@@ -482,16 +482,7 @@ class DeletedContributionsPage extends SpecialPage {
                        }
                }
 
-               // Old message 'contribsub' had one parameter, but that doesn't work for
-               // languages that want to put the "for" bit right after $user but before
-               // $links.  If 'contribsub' is around, use it for reverse compatibility,
-               // otherwise use 'contribsub2'.
-               $oldMsg = $this->msg( 'contribsub' );
-               if ( $oldMsg->exists() ) {
-                       return $oldMsg->rawParams( "$user ($links)" );
-               }
-
-               return $this->msg( 'contribsub2' )->rawParams( $user, $links );
+               return $this->msg( 'contribsub2' )->rawParams( $user, $links )->params( $userObj->getName() );
        }
 
        /**
index 75b8490..8cd9173 100644 (file)
@@ -69,6 +69,7 @@ class UsersPager extends AlphabeticPager {
                $this->editsOnly = $request->getBool( 'editsOnly' );
                $this->creationSort = $request->getBool( 'creationSort' );
                $this->including = $including;
+               $this->mDefaultDirection = $request->getBool( 'desc' );
 
                $this->requestedUser = '';
 
@@ -277,6 +278,13 @@ class UsersPager extends AlphabeticPager {
                        'creationSort',
                        $this->creationSort
                );
+               $out .= '&#160;';
+               $out .= Xml::checkLabel(
+                       $this->msg( 'listusers-desc' )->text(),
+                       'desc',
+                       'desc',
+                       $this->mDefaultDirection
+               );
                $out .= '<br />';
 
                wfRunHooks( 'SpecialListusersHeaderForm', array( $this, &$out ) );
index 80c38d5..7e34e98 100644 (file)
@@ -44,9 +44,13 @@ class SpecialTags extends SpecialPage {
                $html = Xml::tags( 'tr', null, Xml::tags( 'th', null, $this->msg( 'tags-tag' )->parse() ) .
                                Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
                                Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
+                               Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
                                Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() )
                        );
 
+               // Used in #doTagRow()
+               $this->definedTags = array_fill_keys( ChangeTags::listDefinedTags(), true );
+
                foreach ( ChangeTags::tagUsageStatistics() as $tag => $hitcount ) {
                        $html .= $this->doTagRow( $tag, $hitcount );
                }
@@ -76,6 +80,9 @@ class SpecialTags extends SpecialPage {
                }
                $newRow .= Xml::tags( 'td', null, $desc );
 
+               $active = $this->msg( isset( $this->definedTags[$tag] ) ? 'tags-active-yes' : 'tags-active-no' )->escaped();
+               $newRow .= Xml::tags( 'td', null, $active );
+
                $hitcountLabel = $this->msg( 'tags-hitcount' )->numParams( $hitcount )->escaped();
                $hitcountLink = Linker::link( SpecialPage::getTitleFor( 'Recentchanges' ), $hitcountLabel, array(), array( 'tagfilter' => $tag ) );
                // add raw $hitcount for sorting, because tags-hitcount contains numbers and letters
index 985de80..51a0a86 100644 (file)
@@ -570,8 +570,9 @@ class SpecialUpload extends SpecialPage {
                                } else {
                                        $msg->params( $details['finalExt'] );
                                }
-                               $msg->params( $this->getLanguage()->commaList( $wgFileExtensions ),
-                                       count( $wgFileExtensions ) );
+                               $extensions = array_unique( $wgFileExtensions );
+                               $msg->params( $this->getLanguage()->commaList( $extensions ),
+                                       count( $extensions ) );
 
                                // Add PLURAL support for the first parameter. This results
                                // in a bit unlogical parameter sequence, but does not break
@@ -877,16 +878,16 @@ class UploadForm extends HTMLForm {
                                # Everything not permitted is banned
                                $extensionsList =
                                        '<div id="mw-upload-permitted">' .
-                                       $this->msg( 'upload-permitted', $this->getContext()->getLanguage()->commaList( $wgFileExtensions ) )->parseAsBlock() .
+                                       $this->msg( 'upload-permitted', $this->getContext()->getLanguage()->commaList( array_unique( $wgFileExtensions ) ) )->parseAsBlock() .
                                        "</div>\n";
                        } else {
                                # We have to list both preferred and prohibited
                                $extensionsList =
                                        '<div id="mw-upload-preferred">' .
-                                               $this->msg( 'upload-preferred', $this->getContext()->getLanguage()->commaList( $wgFileExtensions ) )->parseAsBlock() .
+                                               $this->msg( 'upload-preferred', $this->getContext()->getLanguage()->commaList( array_unique( $wgFileExtensions ) ) )->parseAsBlock() .
                                        "</div>\n" .
                                        '<div id="mw-upload-prohibited">' .
-                                               $this->msg( 'upload-prohibited', $this->getContext()->getLanguage()->commaList( $wgFileBlacklist ) )->parseAsBlock() .
+                                               $this->msg( 'upload-prohibited', $this->getContext()->getLanguage()->commaList( array_unique( $wgFileBlacklist ) ) )->parseAsBlock() .
                                        "</div>\n";
                        }
                } else {
index 48bef9d..7a93ade 100644 (file)
@@ -48,7 +48,7 @@ class LoginForm extends SpecialPage {
        var $mLoginattempt, $mRemember, $mEmail, $mDomain, $mLanguage;
        var $mSkipCookieCheck, $mReturnToQuery, $mToken, $mStickHTTPS;
        var $mType, $mReason, $mRealName;
-       var $mAbortLoginErrorMsg = 'login-abort-generic';
+       var $mAbortLoginErrorMsg = null;
        private $mLoaded = false;
        private $mSecureLoginUrl;
 
@@ -168,10 +168,7 @@ class LoginForm extends SpecialPage {
 
                // If logging in and not on HTTPS, either redirect to it or offer a link.
                global $wgSecureLogin;
-               if (
-                       $this->mType !== 'signup' &&
-                       WebRequest::detectProtocol() !== 'https'
-               ) {
+               if ( WebRequest::detectProtocol() !== 'https' ) {
                        $title = $this->getFullTitle();
                        $query = array(
                                'returnto' => $this->mReturnTo,
@@ -181,6 +178,8 @@ class LoginForm extends SpecialPage {
                        if ( $wgSecureLogin && wfCanIPUseHTTPS( $this->getRequest()->getIP() ) ) {
                                $url = wfAppendQuery( $url, 'fromhttp=1' );
                                $this->getOutput()->redirect( $url );
+                               // Since we only do this redir to change proto, always vary
+                               $this->getOutput()->addVaryHeader( 'X-Forwarded-Proto' );
                                return;
                        } else {
                                // A wiki without HTTPS login support should set $wgServer to
@@ -583,7 +582,9 @@ class LoginForm extends SpecialPage {
 
                // Give general extensions, such as a captcha, a chance to abort logins
                $abort = self::ABORTED;
-               if ( !wfRunHooks( 'AbortLogin', array( $u, $this->mPassword, &$abort, &$this->mAbortLoginErrorMsg ) ) ) {
+               $msg = null;
+               if ( !wfRunHooks( 'AbortLogin', array( $u, $this->mPassword, &$abort, &$msg ) ) ) {
+                       $this->mAbortLoginErrorMsg = $msg;
                        return $abort;
                }
 
@@ -781,51 +782,62 @@ class LoginForm extends SpecialPage {
                                break;
 
                        case self::NEED_TOKEN:
-                               $this->mainLoginForm( $this->msg( 'nocookiesforlogin' )->parse() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'nocookiesforlogin';
+                               $this->mainLoginForm( $this->msg( $error )->parse() );
                                break;
                        case self::WRONG_TOKEN:
-                               $this->mainLoginForm( $this->msg( 'sessionfailure' )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'sessionfailure';
+                               $this->mainLoginForm( $this->msg( $error )->text() );
                                break;
                        case self::NO_NAME:
                        case self::ILLEGAL:
-                               $this->mainLoginForm( $this->msg( 'noname' )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'noname';
+                               $this->mainLoginForm( $this->msg( $error )->text() );
                                break;
                        case self::WRONG_PLUGIN_PASS:
-                               $this->mainLoginForm( $this->msg( 'wrongpassword' )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'wrongpassword';
+                               $this->mainLoginForm( $this->msg( $error )->text() );
                                break;
                        case self::NOT_EXISTS:
                                if ( $this->getUser()->isAllowed( 'createaccount' ) ) {
-                                       $this->mainLoginForm( $this->msg( 'nosuchuser',
+                                       $error = $this->mAbortLoginErrorMsg ?: 'nosuchuser';
+                                       $this->mainLoginForm( $this->msg( $error,
                                                wfEscapeWikiText( $this->mUsername ) )->parse() );
                                } else {
-                                       $this->mainLoginForm( $this->msg( 'nosuchusershort',
+                                       $error = $this->mAbortLoginErrorMsg ?: 'nosuchusershort';
+                                       $this->mainLoginForm( $this->msg( $error,
                                                wfEscapeWikiText( $this->mUsername ) )->text() );
                                }
                                break;
                        case self::WRONG_PASS:
-                               $this->mainLoginForm( $this->msg( 'wrongpassword' )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'wrongpassword';
+                               $this->mainLoginForm( $this->msg( $error )->text() );
                                break;
                        case self::EMPTY_PASS:
-                               $this->mainLoginForm( $this->msg( 'wrongpasswordempty' )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'wrongpasswordempty';
+                               $this->mainLoginForm( $this->msg( $error )->text() );
                                break;
                        case self::RESET_PASS:
-                               $this->resetLoginForm( $this->msg( 'resetpass_announce' )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'resetpass_announce';
+                               $this->resetLoginForm( $this->msg( $error )->text() );
                                break;
                        case self::CREATE_BLOCKED:
                                $this->userBlockedMessage( $this->getUser()->isBlockedFromCreateAccount() );
                                break;
                        case self::THROTTLED:
-                               $this->mainLoginForm( $this->msg( 'login-throttled' )
+                               $error = $this->mAbortLoginErrorMsg ?: 'login-throttled';
+                               $this->mainLoginForm( $this->msg( $error )
                                ->params ( $this->getLanguage()->formatDuration( $wgPasswordAttemptThrottle['seconds'] ) )
                                ->text()
                                );
                                break;
                        case self::USER_BLOCKED:
-                               $this->mainLoginForm( $this->msg( 'login-userblocked',
-                                       $this->mUsername )->escaped() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'login-userblocked';
+                               $this->mainLoginForm( $this->msg( $error, $this->mUsername )->escaped() );
                                break;
                        case self::ABORTED:
-                               $this->mainLoginForm( $this->msg( $this->mAbortLoginErrorMsg )->text() );
+                               $error = $this->mAbortLoginErrorMsg ?: 'login-abort-generic';
+                               $this->mainLoginForm( $this->msg( $error )->text() );
                                break;
                        default:
                                throw new MWException( 'Unhandled case value' );
index 37dc7cb..2260241 100644 (file)
@@ -618,9 +618,10 @@ abstract class UploadBase {
                // Check whether the file extension is on the unwanted list
                global $wgCheckFileExtensions, $wgFileExtensions;
                if ( $wgCheckFileExtensions ) {
-                       if ( !$this->checkFileExtension( $this->mFinalExtension, $wgFileExtensions ) ) {
+                       $extensions = array_unique( $wgFileExtensions );
+                       if ( !$this->checkFileExtension( $this->mFinalExtension, $extensions ) ) {
                                $warnings['filetype-unwanted-type'] = array( $this->mFinalExtension,
-                                       $wgLang->commaList( $wgFileExtensions ), count( $wgFileExtensions ) );
+                                       $wgLang->commaList( $extensions ), count( $extensions ) );
                        }
                }
 
@@ -1323,7 +1324,7 @@ abstract class UploadBase {
                # NOTE: there's a 50 line workaround to make stderr redirection work on windows, too.
                #      that does not seem to be worth the pain.
                #      Ask me (Duesentrieb) about it if it's ever needed.
-               $output = wfShellExec( "$command 2>&1", $exitCode );
+               $output = wfShellExecWithStderr( $command, $exitCode );
 
                # map exit code to AV_xxx constants.
                $mappedCode = $exitCode;
index ff71c20..b18fb80 100644 (file)
--- a/index.php
+++ b/index.php
@@ -8,16 +8,10 @@
  * See the README, INSTALL, and UPGRADE files for basic setup instructions
  * and pointers to the online documentation.
  *
- * http://www.mediawiki.org/
+ * https://www.mediawiki.org/
  *
  * ----------
  *
- * Copyright (C) 2001-2011 Magnus Manske, Brion Vibber, Lee Daniel Crocker,
- * Tim Starling, Erik Möller, Gabriel Wicke, Ævar Arnfjörð Bjarmason,
- * Niklas Laxström, Domas Mituzas, Rob Church, Yuri Astrakhan, Aryeh Gregor,
- * Aaron Schulz, Andrew Garrett, Raimond Spekking, Alexandre Emsenhuber
- * Siebrand Mazeland, Chad Horohoe, Roan Kattouw and others.
- *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
index 20bef5d..527f382 100644 (file)
@@ -2617,7 +2617,7 @@ class Language {
         */
        function checkTitleEncoding( $s ) {
                if ( is_array( $s ) ) {
-                       wfDebugDieBacktrace( 'Given array to checkTitleEncoding.' );
+                       throw new MWException( 'Given array to checkTitleEncoding.' );
                }
                if ( StringUtils::isUtf8( $s ) ) {
                        return $s;
@@ -3068,7 +3068,7 @@ class Language {
         * Normally we output all numbers in plain en_US style, that is
         * 293,291.235 for twohundredninetythreethousand-twohundredninetyone
         * point twohundredthirtyfive. However this is not suitable for all
-        * languages, some such as Pakaran want ੨੯੩,੨੯੫.੨੩੫ and others such as
+        * languages, some such as Punjabi want ੨੯੩,੨੯੫.੨੩੫ and others such as
         * Icelandic just want to use commas instead of dots, and dots instead
         * of commas like "293.291,235".
         *
index 454ce34..60cf2b1 100644 (file)
@@ -63,24 +63,4 @@ class LanguageCu extends Language {
                }
                return $word;
        }
-
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 4 );
-
-               switch ( $count % 10 ) {
-                       case 1: return $forms[0];
-                       case 2: return $forms[1];
-                       case 3:
-                       case 4: return $forms[2];
-                       default: return $forms[3];
-               }
-       }
 }
diff --git a/languages/classes/LanguageHi.php b/languages/classes/LanguageHi.php
deleted file mode 100644 (file)
index 6f7edb4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Hindi (हिन्दी) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Hindi (हिन्दी)
- *
- * @ingroup Language
- */
-class LanguageHi extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
diff --git a/languages/classes/LanguageMg.php b/languages/classes/LanguageMg.php
deleted file mode 100644 (file)
index bf6800c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Malagasy (Malagasy) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Malagasy (Malagasy)
- *
- * @ingroup Language
- */
-class LanguageMg extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
diff --git a/languages/classes/LanguageMt.php b/languages/classes/LanguageMt.php
deleted file mode 100644 (file)
index 20213a8..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * Maltese (Malti) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Niklas Laxström
- * @ingroup Language
- */
-
-/**
- * Maltese (Malti)
- *
- * @ingroup Language
- */
-class LanguageMt extends Language {
-
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-
-               $forms = $this->preConvertPlural( $forms, 4 );
-
-               if ( $count == 1 ) {
-                       $index = 0;
-               } elseif ( $count == 0 || ( $count % 100 > 1 && $count % 100 < 11 ) ) {
-                       $index = 1;
-               } elseif ( $count % 100 > 10 && $count % 100 < 20 ) {
-                       $index = 2;
-               } else {
-                       $index = 3;
-               }
-               return $forms[$index];
-       }
-}
index e15c9e2..8e286c9 100644 (file)
  * @ingroup Language
  */
 class LanguagePl extends Language {
-
-       /**
-        * @param $count string
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 3 );
-               $count = abs( $count );
-               if ( $count == 1 ) {
-                       return $forms[0]; // singular
-               }
-               switch ( $count % 10 ) {
-                       case 2:
-                       case 3:
-                       case 4:
-                               if ( $count / 10 % 10 != 1 ) {
-                                       return $forms[1]; // plural
-                               }
-                       default:
-                               return $forms[2];   // plural genitive
-               }
-       }
-
        /**
         * @param $_ string
         * @return string
diff --git a/languages/classes/LanguageSh.php b/languages/classes/LanguageSh.php
deleted file mode 100644 (file)
index 83c42cc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * Serbo-Croatian (Srpskohrvatski / Српскохрватски) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Serbo-Croatian (Srpskohrvatski / Српскохрватски)
- *
- * @ingroup Language
- */
-class LanguageSh extends Language {
-
-       /**
-        * @param $count string
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-
-               // if no number with word, then use $form[0] for singular and $form[1] for plural or zero
-               if ( count( $forms ) === 2 ) {
-                       return $count == 1 ? $forms[0] : $forms[1];
-               }
-
-               // @todo FIXME: CLDR defines 4 plural forms. Form with decimals missing.
-               // See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#sh
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               if ( $count > 10 && floor( ( $count % 100 ) / 10 ) == 1 ) {
-                       return $forms[2];
-               } else {
-                       switch ( $count % 10 ) {
-                               case 1: return $forms[0];
-                               case 2:
-                               case 3:
-                               case 4: return $forms[1];
-                               default: return $forms[2];
-                       }
-               }
-       }
-}
diff --git a/languages/classes/LanguageSk.php b/languages/classes/LanguageSk.php
deleted file mode 100644 (file)
index cd15f18..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * Slovak (Slovenčina) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Slovak (Slovenčina)
- *
- * @ingroup Language
- */
-class LanguageSk extends Language {
-
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               if ( $count == 1 ) {
-                       $index = 0;
-               } elseif ( $count == 2 || $count == 3 || $count == 4 ) {
-                       $index = 1;
-               } else {
-                       $index = 2;
-               }
-               return $forms[$index];
-       }
-}
diff --git a/languages/classes/LanguageTi.php b/languages/classes/LanguageTi.php
deleted file mode 100644 (file)
index f17b4d1..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Tigrinya (ትግርኛ) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Tigrinya (ትግርኛ)
- *
- * @ingroup Language
- */
-class LanguageTi extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
diff --git a/languages/classes/LanguageTl.php b/languages/classes/LanguageTl.php
deleted file mode 100644 (file)
index 060d1e2..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Tagalog (Tagalog) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Tagalog (Tagalog)
- *
- * @ingroup Language
- */
-class LanguageTl extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
index fde8c53..e5f7438 100644 (file)
  * @ingroup Language
  */
 class LanguageWa extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) {
-                       return '';
-               }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
 
        /**
         * Dates in Walloon are "1î d' <monthname>" for 1st of the month,
index d2ae272..14285d3 100644 (file)
@@ -253,6 +253,7 @@ $messages = array(
 'tog-showhiddencats' => 'Wys versteekte kategorië',
 'tog-norollbackdiff' => 'Laat verskille weg na terugrol',
 'tog-useeditwarning' => "Waarsku my as ek 'n gewysigde bladsy verlaat voordat dit gestoor is",
+'tog-prefershttps' => "Gebruik altyd 'n beveiligde verbinding wanneer aangemeld is",
 
 'underline-always' => 'Altyd',
 'underline-never' => 'Nooit',
@@ -456,7 +457,7 @@ $1",
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Inligting oor {{SITENAME}}',
 'aboutpage' => 'Project:Omtrent',
-'copyright' => 'Teks is beskikbaar onderhewig aan $1.',
+'copyright' => 'Inhoud is onderhewig aan $1, tensy anders vermeld',
 'copyrightpage' => '{{ns:project}}:kopiereg',
 'currentevents' => 'Huidige gebeure',
 'currentevents-url' => 'Project:Huidige gebeure',
@@ -540,7 +541,7 @@ Dit kan ook dui op 'n fout in die sagteware van {{SITENAME}}.",
 'error' => 'Fout',
 'databaseerror' => 'Databasisfout',
 'databaseerror-textcl' => "'n Databasis-versoek het gefaal.",
-'databaseerror-query' => 'SQL-versoek:',
+'databaseerror-query' => 'SQL: $1',
 'databaseerror-function' => 'Funksie: $1',
 'databaseerror-error' => 'Fout: $1',
 'laggedslavemode' => 'Waarskuwing: Onlangse wysigings dalk nie in bladsy vervat nie.',
@@ -1927,6 +1928,7 @@ Kliek op die opskrifte om die tabel te hersorteer.',
 'listfiles_size' => 'Grootte',
 'listfiles_description' => 'Beskrywing',
 'listfiles_count' => 'Weergawes',
+'listfiles-latestversion' => 'Huidige weergawe',
 'listfiles-latestversion-yes' => 'Ja',
 'listfiles-latestversion-no' => 'Nee',
 
@@ -2024,6 +2026,8 @@ Miskien wil u eerder die beskrywing daar op die [$2 lêerbeskrywing] bywerk.',
 'randompage-nopages' => 'Daar is geen bladsye in die volgende {{PLURAL:$2|naamruimte|naamruimtes}} nie: $1.',
 
 # Random page in category
+'randomincategory-invalidcategory' => '"$1" is nie \'n geldige kategorienaam nie.',
+'randomincategory-nopages' => 'Daar is geen bladsye in kategorie [[:Category:$1|$1]].',
 'randomincategory-selectcategory-submit' => 'Gaan',
 
 # Random redirect
@@ -3082,12 +3086,12 @@ Hierdie situasie was waarskynlik deur 'n skakel na 'n eksterne webtuiste op ons
 'pageinfo-article-id' => 'Bladsy-ID',
 'pageinfo-language' => 'Taal vir die bladsy',
 'pageinfo-robot-policy' => 'Status vir soekenjins',
-'pageinfo-robot-index' => 'Indekseerbaar',
-'pageinfo-robot-noindex' => 'Nie indekseerbaar nie',
+'pageinfo-robot-index' => 'Toegestaan',
+'pageinfo-robot-noindex' => 'Nie toegestaan',
 'pageinfo-views' => 'Aantal kere gewys',
 'pageinfo-watchers' => 'Aantal dophouers',
 'pageinfo-few-watchers' => 'Minder as {{PLURAL:$1|dophouer|$1 dophouers}}',
-'pageinfo-redirects-name' => 'Aansture na die bladsy',
+'pageinfo-redirects-name' => 'Aantal aansture na die bladsy',
 'pageinfo-subpages-name' => 'Subblaaie van die bladsy',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|aanstuur|aansture}}; $3 {{PLURAL:$3|nie-aanstuur|nie-aansture}})',
 'pageinfo-firstuser' => 'Gebruiker wat die bladsy geskep het',
@@ -3820,6 +3824,7 @@ U kan ook die [[Special:EditWatchlist|standaard opdaterigskerm gebruik]].',
 'version-license' => 'Lisensie',
 'version-poweredby-credits' => "Hierdie wiki word aangedryf deur '''[//www.mediawiki.org/ MediaWiki]''', kopiereg © 2001-$1 $2.",
 'version-poweredby-others' => 'andere',
+'version-poweredby-translators' => 'translatewiki.net-vertalers',
 'version-credits-summary' => 'Ons erken graag die volgende persone vir hul bydrae aan [[Special:Version|MediaWiki]].',
 'version-license-info' => 'MediaWiki is vrye sagteware, u kan MediaWiki versprei en/of wysig onder die voorwaardes van die "GNU Algemene Publieke Lisensie", soos deur die "Free Software Foundation" gepubliseer; óf weergawe 2 van die lisensie, of (as u wil) enige latere weergawe daarvan.
 
@@ -3920,6 +3925,7 @@ Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van
 'dberr-problems' => 'Jammer! Die webwerf ondervind op die oomblik tegniese probleme.',
 'dberr-again' => "Wag 'n paar minute en probeer dan weer.",
 'dberr-info' => '(Kan nie die databasisbediener kontak nie: $1)',
+'dberr-info-hidden' => '(Kan nie die databasisbediener kontak nie)',
 'dberr-usegoogle' => 'Tot tyd en wyl kan u inligting op Google soek.',
 'dberr-outofdate' => 'Let daarop dat hulle indekse van ons inhoud moontlik verouderd mag wees.',
 'dberr-cachederror' => "Hierdie is 'n gekaste kopie van die aangevraagde blad, en dit mag moontlik nie op datum wees nie.",
@@ -4055,4 +4061,17 @@ Anders kan u die eenvoudige vorm hieronder gebruik. U kommentaar sal by die blad
 # Image rotation
 'rotate-comment' => 'Beeld $1 {{PLURAL:$1|graad|grade}} kloksgewys gedraai',
 
+# Limit report
+'limitreport-title' => 'Ontleder se prestasie:',
+'limitreport-cputime' => 'Tydsgebruik van SVE',
+'limitreport-cputime-value' => '$1 {{PLURAL:$1|sekonde|sekondes}}',
+'limitreport-walltime' => 'Reëel tydsgebruik',
+'limitreport-walltime-value' => '$1 {{PLURAL:$1|sekonde|sekondes}}',
+'limitreport-ppvisitednodes' => 'Aantal nodes besoek tydens voorverwerking:',
+'limitreport-ppgeneratednodes' => 'Aantal nodes geskep tydens voorverwerking:',
+'limitreport-postexpandincludesize' => 'Inklusiegrootte na uitbreiding',
+'limitreport-postexpandincludesize-value' => '$1/$2 grepe',
+'limitreport-templateargumentsize-value' => '$1/$2 grepe',
+'limitreport-expansiondepth' => 'Hoogste uitbreidingsdiepte',
+
 );
index f704d94..7aa3c73 100644 (file)
@@ -154,11 +154,11 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Flocc|Floccas}}',
-'category_header' => 'Trametas in flocce "$1"',
+'category_header' => 'Trametas in "$1" flocce',
 'subcategories' => 'Underfloccas',
 'category-media-header' => 'Missenmiddel in flocce "$1"',
 'category-empty' => "''Þes flocc hæfþ nū nǣngu geƿritu oþþe missenmiddel.''",
-'hidden-categories' => '{{PLURAL:$1|Gehȳded flocc|$1 Gehȳdede floccas}}',
+'hidden-categories' => '{{PLURAL:$1|Gehȳded flocc|$1 Gehȳdedra flocca}}',
 'hidden-category-category' => 'Gehȳdede floccas',
 'category-subcat-count' => '{{PLURAL:$2|Þes flocc hæfþ synderlīce þone folgiendan underflocc.|Þes flocc hæfþ {{PLURAL:$1|þone folgiendan underflocc|þā folgiendan $1 underflocca}} - þæt fulle rīm is $2.}}',
 'category-subcat-count-limited' => 'Þes flocc hæfþ {{PLURAL:$1|þisne underflocc|$1 þās underfloccas}}.',
@@ -221,7 +221,7 @@ $messages = array(
 'history' => 'Trametes stǣr',
 'history_short' => 'Stǣr',
 'updatedmarker' => 'nīwod æfter mīnre lætestan sōcne',
-'printableversion' => 'Ūtmǣlendlicu fadung',
+'printableversion' => 'Ūtmǣlendlīc fadung',
 'permalink' => 'Fæst hlenca',
 'print' => 'Ūtmǣlan',
 'view' => 'Sihþ',
@@ -448,7 +448,7 @@ Scēawa þīne wrītunge eft, oþþe [[Special:UserLogin/signup|sciepp nīwe rec
 'extlink_sample' => 'http://www.example.com hlencan nama',
 'extlink_tip' => 'Ūtanweard hlenca (beþenc þone http:// foredǣl)',
 'headline_sample' => 'Hēafodlīnan traht',
-'headline_tip' => 'Emnet 2 hēafodlīn',
+'headline_tip' => '2. emnettes hēafodlīn',
 'nowiki_sample' => 'Unendebyrdodne traht hēr settan',
 'nowiki_tip' => 'Wiki endebyrdunge forgietan',
 'image_sample' => 'Bisen.jpg',
@@ -459,7 +459,7 @@ Scēawa þīne wrītunge eft, oþþe [[Special:UserLogin/signup|sciepp nīwe rec
 'hr_tip' => 'Brād līn (ne brūc oft)',
 
 # Edit pages
-'summary' => 'Scortnes:',
+'summary' => 'Scortness:',
 'subject' => 'Ymbe/hēafodlīn:',
 'minoredit' => 'Þēos is lytel adihtung',
 'watchthis' => 'Behealdan þisne tramet',
@@ -480,9 +480,9 @@ Scēawa þīne wrītunge eft, oþþe [[Special:UserLogin/signup|sciepp nīwe rec
 
 Þū mōst þæt þafungword andwendan for þisse nīwan reccinge on þǣm ''[[Special:ChangePassword|andwendan þafungword]]'' tramete siþþan þū inmeldie.",
 'newarticle' => '(Nīwe)',
-'newarticletext' => "Þu hæfst bende tō tramete gefolgod þe nū gīet ne stendeþ.
-Tō scieppene þone tramet, onginn þyddan in þǣre boxe under (sēo þone [[{{MediaWiki:Helppage}}|helptramet]] for mā gefrǣge).
-Gif þu hider misfōn cōme, cnoca þā þīnne webbscēaweres '''on bæc''' cnæpp.",
+'newarticletext' => "Þū hæfst hlencan tō tramete þe nū gīet ne stent gefolgod.
+Tō scieppene þone tramet, onginn tō wrītenne in þǣre mearce þe is beneoþan (seoh þone [[{{MediaWiki:Helppage}}|helpes tramet]] ymb mā cȳþþu).
+Gif þū hider be misfēnge cōme, cnoca þīnes webbsēcendes '''on bæc''' cnæpp.",
 'usercssyoucanpreview' => "'''Rǣd:''' Brūc þone \"{{int:Forescēaƿian}}\" cnæpp tō costnienne þīne nīwan css/js wrītunge ǣr hit sīe hordod.",
 'userjsyoucanpreview' => "'''Rǣd:''' Brūc þone 'Forescēawian' cnæpp tō āfandienne þīne nīwe css/js beforan sparunge.",
 'updated' => '(Ednīwed)',
@@ -519,7 +519,7 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 # History pages
 'viewpagelogs' => 'Sēon þisses trametes ealdhold',
 'nohistory' => 'Nis nān adihtunge stǣr for þissum tramete.',
-'currentrev-asof' => 'Nīwost fadung on $1',
+'currentrev-asof' => 'Nīwost fadung on þǣre $3. tīde þæs $2.',
 'revisionasof' => 'Nīwung fram $1',
 'previousrevision' => '← Ieldre fadung',
 'nextrevision' => 'Nīwre fadung →',
@@ -687,7 +687,7 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 'rclinks' => 'Īwan þā nīwostan $1 andwendunga in þissum nīehstum $2 daga<br />$3',
 'diff' => 'scēad',
 'hist' => 'stǣr',
-'hide' => 'hȳdan',
+'hide' => 'Hȳdan',
 'show' => 'Īwan',
 'minoreditletter' => 'ly',
 'newpageletter' => 'N',
@@ -742,7 +742,7 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 # File description page
 'file-anchor-link' => 'Ymele',
 'filehist' => 'Ymelan stǣr',
-'filehist-help' => 'Swing dæg/tīde mid mýs to sēonne þā ymelan swā wæs hēo on þǣre tīde.',
+'filehist-help' => 'Swing dæg/tīde mid mȳs to sēonne þā ymelan swā wæo hēo on þǣre tīde.',
 'filehist-deleteall' => 'forlēosan eall',
 'filehist-deleteone' => 'forlēosan',
 'filehist-revert' => 'undōn',
@@ -774,7 +774,7 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 'unusedtemplateswlh' => 'ōðre hlencan',
 
 # Random page
-'randompage' => 'Gelimplic tramet',
+'randompage' => 'Gelimplīc tramet',
 
 # Statistics
 'statistics' => 'Cȳþþu',
@@ -966,7 +966,7 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 
 # Namespace form on various pages
 'namespace' => 'Namstede:',
-'invert' => 'Cyre edƿendan',
+'invert' => 'Onhwirfan gecorennesse',
 'blanknamespace' => '(Hēafod)',
 
 # Contributions
@@ -1012,7 +1012,7 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 ** Uncwēme brūcendnama',
 'ipbsubmit' => 'Fortȳnan þisne brūcend',
 'ipbother' => 'Ōðeru tīd',
-'ipboptions' => '2 tīda:2 hours,1 dæg:1 day,3 dagas:3 days,1 wucu:1 week,2 wuca:2 weeks,1 mōnaþ:1 month,3 mōnðas:3 months,6 mōnðas:6 months,1 gēar:1 year,unendiende:infinite',
+'ipboptions' => '2 tīda:2 hours,1 dæg:1 day,3 dagas:3 days,1 wucu:1 week,2 wuca:2 weeks,1 mōnaþ:1 month,3 mōnðas:3 months,6 mōnða:6 months,1 gēar:1 year,unendiende:infinite',
 'ipbotheroption' => 'ōðer',
 'ipbotherreason' => 'Ōðru oþþe nīehst racu:',
 'ipblocklist-submit' => 'Sēcan',
@@ -1076,7 +1076,7 @@ Cēos ōðerne naman lā.',
 'tooltip-pt-mycontris' => 'Getæl þīnra forðunga',
 'tooltip-pt-login' => 'Man þē byldeþ to inmeldienne; þēah, þis nis abeden',
 'tooltip-pt-logout' => 'Ūtmeldian',
-'tooltip-ca-talk' => 'Mōtung ymbe þone innungtramet',
+'tooltip-ca-talk' => 'Mōtung ymbe þone innungtramet',
 'tooltip-ca-edit' => 'Þū meaht þisne tramet adihtan. Brūc lā þone fōrebysene cnæpp ǣr þū hordie.',
 'tooltip-ca-addsection' => 'Beginnan nīwne dǣl',
 'tooltip-ca-viewsource' => 'Þes tramet is borgen.
@@ -1089,7 +1089,7 @@ Cēos ōðerne naman lā.',
 'tooltip-ca-watch' => 'Ēacnian þīn behealdungtæl mid þissum tramete',
 'tooltip-ca-unwatch' => 'Animan þisne tramet fram þīnum behealdungtæle',
 'tooltip-search' => 'Sēcan {{SITENAME}}',
-'tooltip-search-go' => 'Gān tō tramete þe hæbbe þisne rihte syndigan naman, gif swilc tramet sīe',
+'tooltip-search-go' => 'Gān tō tramete þe hæbbe þisne rihte syndrigan naman, gif swilc tramet sīe',
 'tooltip-search-fulltext' => 'Sēcan þisne traht on þǣm trametum',
 'tooltip-p-logo' => 'Sēcan þone hēafodtramet',
 'tooltip-n-mainpage' => 'Sēcan þone hēafodtramet',
@@ -1097,7 +1097,7 @@ Cēos ōðerne naman lā.',
 'tooltip-n-portal' => 'Ymbe þæt weorc, hwæt meaht þū dōn, hwǣr man finde þing',
 'tooltip-n-currentevents' => 'Findan ieldran cȳþþe ymbe nīwu gelimp',
 'tooltip-n-recentchanges' => 'Getæl nīwra andwendunga on þǣm wiki',
-'tooltip-n-randompage' => 'Hladan gelimplicne tramet',
+'tooltip-n-randompage' => 'Hladan gelimplīcne tramet',
 'tooltip-n-help' => 'Cunnunge stede',
 'tooltip-t-whatlinkshere' => 'Getæl eallra wiki trameta þā habbaþ hlencan hider',
 'tooltip-t-recentchangeslinked' => 'Nīwa andwendunga in trametum tō þǣm þes tramet hæbbe hlencan',
@@ -1107,7 +1107,7 @@ Cēos ōðerne naman lā.',
 'tooltip-t-emailuser' => 'Sendan spearcǣrend þissum brūcende',
 'tooltip-t-upload' => 'Hladan ymelan forþ',
 'tooltip-t-specialpages' => 'Getæl eallra syndrigra trameta',
-'tooltip-t-print' => 'Gemǣnendlicu fadung þisses trametes',
+'tooltip-t-print' => 'Gemǣnendlīc fadung þisses trametes',
 'tooltip-t-permalink' => 'Fæst hlenca tō þisre fadunge þæs trametes',
 'tooltip-ca-nstab-main' => 'Sēon þone innunge tramet',
 'tooltip-ca-nstab-user' => 'Sēon þone brūcendes tramet',
@@ -1118,9 +1118,9 @@ Cēos ōðerne naman lā.',
 'tooltip-ca-nstab-category' => 'Sēon þone flocces tramet',
 'tooltip-minoredit' => 'Mearcian þās tō lytelre adihtunge',
 'tooltip-save' => 'Hordian þīna andwendunga',
-'tooltip-preview' => 'Seoh fōrebysene þīna andwendunga. Brūc þīs lā ǣr þū hordie!',
-'tooltip-diff' => 'Īwan þā andwendunga þā þū dydest þone traht',
-'tooltip-compareselectedversions' => 'Þā tōdāl sēon betƿēonan þǣre tƿǣm coren fadungum þisse sīdan',
+'tooltip-preview' => 'Seoh fōrebysene þīnra andwendunga. Brūc þis lā ǣr þū hordie!',
+'tooltip-diff' => 'Īwan þā andwendunga þā þū dydest wiþ þone traht',
+'tooltip-compareselectedversions' => 'Sēon þā gescēad betweonan þǣm twǣm gecorenum fadungum þisses trametes',
 'tooltip-watch' => 'Ēacnian þīn behealdungtæl mid þissum tramete',
 'tooltip-undo' => '"Undōn" undēþ þās adihtunge and openaþ þǣre adihtunge bysene tō fōrebysene. Man cann secgan race on þǣre sceortnesse.',
 
@@ -1218,7 +1218,7 @@ Cēos ōðerne naman lā.',
 'exif-gpsdirection-t' => 'Sōþ rihtung',
 
 # External editor support
-'edit-externally-help' => '(Þā [//www.mediawiki.org/wiki/Manual:External_editors ȝearƿunga tyhtas] sēon for mā cȳþþe)',
+'edit-externally-help' => '(Sēon þā [//www.mediawiki.org/wiki/Manual:External_editors gearwunge gewissunga] ymb mā cȳþþe)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'eall',
index 983e701..d6a0d08 100644 (file)
@@ -475,57 +475,57 @@ $imageFiles = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'ضع Ø®Ø·Ø§ ØªØ­Øª Ø§Ù\84رÙ\88ابط:',
-'tog-justify' => 'حاذ الفقرات',
-'tog-hideminor' => 'أخÙ\81 Ø§Ù\84تحرÙ\8aرات الطفيفة في أحدث التغييرات',
-'tog-hidepatrolled' => 'أخÙ\81 Ø§Ù\84تحرÙ\8aرات المراجعة في أحدث التغييرات',
+'tog-underline' => 'سطر ØªØ­Øª Ø§Ù\84Ù\88صÙ\84ات:',
+'tog-justify' => 'تسÙ\88Ù\8aØ© Ø¹Ø±Ø¶ الفقرات',
+'tog-hideminor' => 'أخÙ\81 Ø§Ù\84تعدÙ\8aÙ\84ات الطفيفة في أحدث التغييرات',
+'tog-hidepatrolled' => 'أخÙ\81 Ø§Ù\84تعدÙ\8aÙ\84ات المراجعة في أحدث التغييرات',
 'tog-newpageshidepatrolled' => 'أخف الصفحات المعاينة من قائمة الصفحات الجديدة',
 'tog-extendwatchlist' => 'مدد قائمة المراقبة لتعرض كل التغييرات، وليس أحدثها فقط',
-'tog-usenewrc' => 'جÙ\85Ù\91ع Ø§Ù\84تغÙ\8aÙ\8aرات Ø­Ø³Ø¨ Ø§Ù\84صÙ\81حة Ù\81Ù\8a Ø£Ø­Ø¯Ø« Ø§Ù\84تغÙ\8aÙ\8aرات Ù\88Ù\82ائÙ\85Ø© Ø§Ù\84Ù\85راÙ\82بة (Ù\8aتطÙ\84ب Ø¬Ø§Ù\81اسÙ\83ربت)',
-'tog-numberheadings' => 'رÙ\82Ù\91Ù\85 Ø§Ù\84عÙ\86اÙ\88Ù\8aÙ\86 ØªÙ\84Ù\82ائÙ\8aÙ\8bا',
-'tog-showtoolbar' => 'أظÙ\87ر شريط التحرير',
-'tog-editondblclick' => 'تحرÙ\8aر الصفحات بالنقر المزدوج',
-'tog-editsection' => 'مكن تحرير الأقسام بروابط [عدل]',
-'tog-editsectiononrightclick' => 'فعِّل تحرير الأقسام بالنقر باليمين على عناوين الأقسام (يتطلب جافاسكريبت)',
-'tog-showtoc' => 'اعرض Ù\81Ù\87رس Ø§Ù\84Ù\85حتÙ\88Ù\8aات (Ù\84Ù\84صÙ\81حات Ø§Ù\84تÙ\8a ØªØ­ØªÙ\88Ù\8a Ø¹Ù\84Ù\89 Ø£Ù\83ثر Ù\85Ù\86 3 Ø¹Ù\86اÙ\88Ù\8aÙ\86)',
+'tog-usenewrc' => 'Ø·Ù\8a Ø§Ù\84تغÙ\8aÙ\8aرات Ø­Ø³Ø¨ Ø§Ù\84صÙ\81حة Ù\81Ù\8a Ø£Ø­Ø¯Ø« Ø§Ù\84تغÙ\8aÙ\8aرات Ù\88Ù\82ائÙ\85Ø© Ø§Ù\84Ù\85راÙ\82بة',
+'tog-numberheadings' => 'ترÙ\82Ù\8aÙ\85 Ø§Ù\84عÙ\86اÙ\88Ù\8aÙ\86 ØªÙ\84Ù\82ائÙ\8aا',
+'tog-showtoolbar' => 'إظÙ\87ار شريط التحرير',
+'tog-editondblclick' => 'تعدÙ\8aÙ\84 الصفحات بالنقر المزدوج',
+'tog-editsection' => 'تفعيل تعديل الأقسام بالضغط على [عدل]',
+'tog-editsectiononrightclick' => 'تفعيل تعديل الأقسام بالنقر باليمين على عناوين الأقسام',
+'tog-showtoc' => 'عرض فهرس المحتويات (للصفحات التي تحتوي على أكثر من 3 عناوين)',
 'tog-rememberpassword' => 'تذكر دخولي بهذا المتصفح (لمدة أقصاها {{PLURAL:$1||يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}})',
 'tog-watchcreations' => 'أضف الصفحات التي أنشئها والملفات التي أرفعها إلى قائمة مراقبتي.',
 'tog-watchdefault' => 'أضف الصفحات والملفات التي أعدلها إلى قائمة مراقبتي',
 'tog-watchmoves' => 'أضف الصفحات والملفات التي أنقلها إلى قائمة مراقبتي',
 'tog-watchdeletion' => 'أضف الصفحات والملفات التي أحذفها إلى قائمة مراقبتي',
 'tog-minordefault' => 'أشِّر كل التعديلات على أنها طفيفة مبدئيا',
-'tog-previewontop' => 'أظهر معاينة النّصّ فوق صندوق التحرير',
-'tog-previewonfirst' => 'أظÙ\87ر Ù\85عاÙ\8aÙ\86Ø© Ù\85ع Ø£Ù\88Ù\84 ØªØ­Ø±Ù\8aر',
-'tog-nocache' => 'عطÙ\91Ù\84 ØªØ®Ø¨Ø¦Ø© Ø§Ù\84Ù\85تصÙ\81Ø­ Ù\84Ù\84صÙ\81حة',
-'tog-enotifwatchlistpages' => 'أرسل إليّ رسالة إلكترونية عندما تتغيّر صفحة أو ملف في قائمة مراقبتي',
-'tog-enotifusertalkpages' => 'أرسل إليّ بريدا كلّما عُدّلت صفحة نقاشي',
-'tog-enotifminoredits' => 'أرسل إليّ رسالة إلكترونية بشأن التحريرات الطفيفة للصفحات والملفات',
-'tog-enotifrevealaddr' => 'أظÙ\87ر Ø¹Ù\86Ù\88اÙ\86 Ø¨Ø±Ù\8aدÙ\8a Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ù\81Ù\8a Ø±Ø³Ø§Ø¦Ù\84 Ø§Ù\84إخطار',
-'tog-shownumberswatching' => 'اعرض Ø¹Ø¯Ø¯ Ø§Ù\84Ù\85ستخدÙ\85Ù\8aÙ\86 Ø§Ù\84Ù\85راÙ\82بÙ\90Ù\8aÙ\86',
+'tog-previewontop' => 'أظهر معاينة النص فوق صندوق التحرير',
+'tog-previewonfirst' => 'أظÙ\87ر Ù\85عاÙ\8aÙ\86Ø© Ù\85ع Ø£Ù\88Ù\84 ØªØ¹Ø¯Ù\8aÙ\84',
+'tog-nocache' => 'تعطÙ\8aÙ\84 Ø­Ù\81ظ Ø§Ù\84Ù\85تصÙ\81Ø­ Ù\84Ù\84Ù\83اش',
+'tog-enotifwatchlistpages' => 'أرسل إلي رسالة إلكترونية عند تعديل صفحة أو ملف في قائمة مراقبتي',
+'tog-enotifusertalkpages' => 'أرسل إلي رسالة إلكترونية عند تعديل صفحة نقاشي',
+'tog-enotifminoredits' => 'أرسل إلي رسالة إلكترونية بشأن التعديلات الطفيفة للصفحات والملفات',
+'tog-enotifrevealaddr' => 'أظÙ\87ر Ø¹Ù\86Ù\88اÙ\86 Ø¨Ø±Ù\8aدÙ\8a Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ù\81Ù\8a Ø¥Ø´Ø¹Ø§Ø±Ø§Øª Ø§Ù\84برÙ\8aد Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a',
+'tog-shownumberswatching' => 'اعرض عدد المستخدمين المراقبين',
 'tog-oldsig' => 'التوقيع الحالي:',
-'tog-fancysig' => 'عامل التوقيع كنصّ ويكي (بلا رابط تلقائي)',
-'tog-uselivepreview' => 'إستخدÙ\85 Ø§Ù\84Ù\85عاÙ\8aÙ\86Ø© Ø§Ù\84Ø­Ù\8aØ©(تجرÙ\8aبÙ\8aØ©)',
-'tog-forceeditsummary' => 'Ù\86بÙ\87Ù\86Ù\8a Ø¹Ù\86د Ø¥Ø¯Ø®Ø§Ù\84 Ù\85Ù\84خص ØªØ­Ø±Ù\8aر Ù\81ارغ',
-'tog-watchlisthideown' => 'أخÙ\81 ØªØ­Ø±Ù\8aراتي من قائمة المراقبة',
-'tog-watchlisthidebots' => 'أخÙ\81 ØªØ­Ø±Ù\8aرات Ø§Ù\84رÙ\88بوتات من قائمة المراقبة',
-'tog-watchlisthideminor' => 'في قائمة المراقبة أخف التعديلات الطفيفة',
-'tog-watchlisthideliu' => 'في قائمة المراقبة أخف تعديلات المستخدمين الوالجين',
-'tog-watchlisthideanons' => 'في قائمة المراقبة أخف تعديلات المستخدمين المجهولين',
-'tog-watchlisthidepatrolled' => 'في قائمة المراقبة أخف التعديلات المعاينة',
-'tog-ccmeonemails' => 'أرسل إليّ نسخا من رسائل البريد التي أرسلها إلى مستخدمين آخرين',
-'tog-diffonly' => 'Ù\84ا ØªØ¹Ø±Ø¶ Ù\85حتÙ\88Ù\89 Ø§Ù\84صÙ\81حة Ø£Ø³Ù\81Ù\84 Ø§Ù\84Ù\81رÙ\88Ù\82ات',
+'tog-fancysig' => 'وضع الوصلة يدويا واستعمال نص الويكي',
+'tog-uselivepreview' => 'استعÙ\85اÙ\84 Ø§Ù\84Ù\85عاÙ\8aÙ\86Ø© Ø§Ù\84Ù\85باشرة (تجرÙ\8aبÙ\8a)',
+'tog-forceeditsummary' => 'Ù\86بÙ\87Ù\86Ù\8a Ø¹Ù\86د Ø¹Ø¯Ù\85 Ø¥Ø¯Ø®Ø§Ù\84 Ù\85Ù\84خص ØªØ¹Ø¯Ù\8aÙ\84',
+'tog-watchlisthideown' => 'أخÙ\81 ØªØ¹Ø¯Ù\8aÙ\84اتي من قائمة المراقبة',
+'tog-watchlisthidebots' => 'أخÙ\81 ØªØ¹Ø¯Ù\8aÙ\84ات Ø§Ù\84بوتات من قائمة المراقبة',
+'tog-watchlisthideminor' => 'أخف التعديلات الطفيفة في قائمة المراقبة',
+'tog-watchlisthideliu' => 'أخف تعديلات المستخدمين المسجلين في قائمة المراقبة',
+'tog-watchlisthideanons' => 'أخف تعديلات المستخدمين المجهولين في قائمة المراقبة',
+'tog-watchlisthidepatrolled' => ' أخف التعديلات المراجعة في قائمة المراقبة',
+'tog-ccmeonemails' => 'أرسل إلي نسخا من الرسائل الإلكترونية التي أرسلها إلى المستخدمين الآخرين',
+'tog-diffonly' => 'Ù\84ا ØªØ¹Ø±Ø¶ Ù\85حتÙ\88Ù\89 Ø§Ù\84صÙ\81حة Ø£Ø³Ù\81Ù\84 Ø§Ù\84Ù\81رÙ\82',
 'tog-showhiddencats' => 'أظهر التصنيفات المخفية',
 'tog-noconvertlink' => 'عطل تحويل عناوين الروابط',
 'tog-norollbackdiff' => 'أزل الفرق بعد إحداث استرجاع',
 'tog-useeditwarning' => 'حذّرني عندما أغادر تحرير صفحة فيها تغييرات لم أحفظها',
-'tog-prefershttps' => 'دائÙ\85ا Ø§Ø³ØªØ®Ø¯Ù\85 Ø§ØªØµØ§Ù\84ا Ø£منا بعد الدخول',
+'tog-prefershttps' => 'دائÙ\85ا Ø§Ø³ØªØ®Ø¯Ù\85 Ø§ØªØµØ§Ù\84ا Ø¢منا بعد الدخول',
 
 'underline-always' => 'دائما',
 'underline-never' => 'أبدا',
-'underline-default' => 'Ù\88Ù\81Ù\82 Ø§Ù\84Ù\83سÙ\88Ø© Ø£Ù\88 Ø§Ù\84Ù\85تصÙ\81Ù\91ح',
+'underline-default' => 'Ù\88Ù\81Ù\82 Ø§Ù\84Ù\85ظÙ\87ر Ø£Ù\88 Ø§Ù\84Ù\85تصÙ\81ح',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'طراز خط منطقة التحرير:',
+'editfont-style' => 'طراز خط صندوق التحرير:',
 'editfont-default' => 'وفق إعدادات المتصفح',
 'editfont-monospace' => 'خط ثابت العرض',
 'editfont-sansserif' => 'خط بلا زوائد',
@@ -609,12 +609,12 @@ $messages = array(
 'category-article-count-limited' => '{{PLURAL:$1||الصفحة التالية|الصفحتان التاليتان|الصفحات $1 التالية}} مصنّفة بهذا التصنيف.',
 'category-file-count' => '{{PLURAL:$2|لا ملفات مصنّفة بهذا التصنيف سوى التالي.|{{PLURAL:$1||الملف التالي مصنّف|الملفان التاليان مصنّفان|الملفات $1 التالية مصنّفة}} بهذا التصنيف من إجمالي $2.}}',
 'category-file-count-limited' => '{{PLURAL:$1|الملف التالي مصنّف|الملفان التاليان مصنّفان|الملفات $1 التالية مصنّفة}} بهذا التصنيف.',
-'listingcontinuesabbrev' => '(تتÙ\85Ø©)',
+'listingcontinuesabbrev' => '(تابع)',
 'index-category' => 'صفحات مفهرسة',
 'noindex-category' => 'صفحات غير مفهرسة',
 'broken-file-category' => 'صفحات تحوي روابط ملفات معطوبة',
 
-'about' => 'عن هذه الويكي',
+'about' => 'عن',
 'article' => 'صفحة محتوى',
 'newwindow' => '(تفتح في نافذة جديدة)',
 'cancel' => 'ألغِ',
@@ -622,14 +622,14 @@ $messages = array(
 'morenotlisted' => 'هذه القائمة غير مكتملة.',
 'mypage' => 'صفحة',
 'mytalk' => 'نقاش',
-'anontalk' => 'Ù\86Ù\82اش Ø¹Ù\86Ù\88اÙ\86 Ø¢Ù\8aâ\80\8cبÙ\8a Ù\87ذا',
+'anontalk' => 'Ù\86Ù\82اش Ø¹Ù\86Ù\88اÙ\86 Ø§Ù\84Ø¢Ù\8a Ø¨Ù\8a',
 'navigation' => 'إبحار',
 'and' => '&#32;و',
 
 # Cologne Blue skin
 'qbfind' => 'جد',
 'qbbrowse' => 'تصفح',
-'qbedit' => 'حرÙ\91ر',
+'qbedit' => 'عدÙ\84',
 'qbpageoptions' => 'هذه الصفحة',
 'qbmyoptions' => 'صفحاتي',
 'qbspecialpages' => 'الصفحات الخاصة',
@@ -641,20 +641,20 @@ $messages = array(
 'vector-action-delete' => 'احذف',
 'vector-action-move' => 'انقل',
 'vector-action-protect' => 'احم',
-'vector-action-undelete' => 'تدارÙ\83 الحذف',
-'vector-action-unprotect' => 'غيّر الحماية',
-'vector-simplesearch-preference' => 'فعّل شريط البحث المبسط (لواجهة فكتور فقط)',
+'vector-action-undelete' => 'Ø£Ù\84غ الحذف',
+'vector-action-unprotect' => 'غير الحماية',
+'vector-simplesearch-preference' => 'تفعيل شريط البحث المبسط (لمظهر فكتور فقط)',
 'vector-view-create' => 'أنشئ',
-'vector-view-edit' => 'عدÙ\91Ù\84',
+'vector-view-edit' => 'عدل',
 'vector-view-history' => 'اعرض التاريخ',
-'vector-view-view' => 'طاÙ\84ع',
-'vector-view-viewsource' => 'طاÙ\84ع المصدر',
+'vector-view-view' => 'اÙ\82رأ',
+'vector-view-viewsource' => 'اعرض المصدر',
 'actions' => 'أفعال',
 'namespaces' => 'فضاءات التسمية',
 'variants' => 'المتغيرات',
 
 'navigation-heading' => 'قائمة التصفح',
-'errorpagetitle' => 'عطÙ\84',
+'errorpagetitle' => 'خطأ',
 'returnto' => 'ارجع إلى $1.',
 'tagline' => 'من {{SITENAME}}',
 'help' => 'مساعدة',
@@ -670,8 +670,8 @@ $messages = array(
 'print' => 'اطبع',
 'view' => 'مطالعة',
 'edit' => 'عدل',
-'create' => 'Ø¥Ù\86شاء',
-'editthispage' => 'حرÙ\90Ù\91ر هذه الصفحة',
+'create' => 'Ø£Ù\86شئ',
+'editthispage' => 'عدÙ\84 هذه الصفحة',
 'create-this-page' => 'أنشئ صفحة بهذا العنوان',
 'delete' => 'حذف',
 'deletethispage' => 'احذف هذه الصفحة',
@@ -681,15 +681,15 @@ $messages = array(
 'protect' => 'حماية',
 'protect_change' => 'غيّر',
 'protectthispage' => 'احم هذه الصفحة',
-'unprotect' => 'غيّر الحماية',
-'unprotectthispage' => 'غيّر حماية هذه الصفحة',
+'unprotect' => 'غير الحماية',
+'unprotectthispage' => 'غير حماية هذه الصفحة',
 'newpage' => 'صفحة جديدة',
 'talkpage' => 'ناقش هذه الصفحة',
 'talkpagelinktext' => 'نقاش',
 'specialpage' => 'صفحة خاصة',
 'personaltools' => 'أدوات شخصية',
 'postcomment' => 'قسم جديد',
-'articlepage' => 'طاÙ\84ع صفحة المحتوى',
+'articlepage' => 'اعرض صفحة المحتوى',
 'talk' => 'نقاش',
 'views' => 'معاينة',
 'toolbox' => 'صندوق الأدوات',
@@ -700,7 +700,7 @@ $messages = array(
 'templatepage' => 'طالع صفحة القالب',
 'viewhelppage' => 'طالع صفحة المساعدة',
 'categorypage' => 'طالع صفحة التصنيف',
-'viewtalkpage' => 'طاÙ\84ع النقاش',
+'viewtalkpage' => 'اعرض النقاش',
 'otherlanguages' => 'بلغات أخرى',
 'redirectedfrom' => '(بالتحويل من $1)',
 'redirectpagesub' => 'صفحة تحويل',
@@ -717,12 +717,12 @@ $messages = array(
 $1',
 'pool-timeout' => 'انتهت مهلة القفل',
 'pool-queuefull' => 'الطابور ملآن',
-'pool-errorunknown' => 'عطÙ\84 غير معروف',
+'pool-errorunknown' => 'خطأ غير معروف',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'عن {{SITENAME}}',
 'aboutpage' => 'Project:عن',
-'copyright' => 'المحتوى منشور وفق $1.',
+'copyright' => 'المحتوى منشور وفق $1 إن لم يرد خلاف ذلك.',
 'copyrightpage' => '{{ns:project}}:حقوق النسخ',
 'currentevents' => 'الأحداث الجارية',
 'currentevents-url' => 'Project:الأحداث الجارية',
@@ -750,31 +750,31 @@ $1',
 'youhavenewmessages' => 'لك $1 ($2).',
 'newmessageslink' => 'رسائل جديدة',
 'newmessagesdifflink' => 'أحدث تغيير',
-'youhavenewmessagesfromusers' => 'لك $1 من {{PLURAL:$3||مستخدم واحد|مستخدمين اثنين|$3 مستخدمين|$3 مستخدماً|$3 مستخدم}} ($2).',
-'youhavenewmessagesmanyusers' => 'لك $1 من مستخدمين كثُر ($2).',
+'youhavenewmessagesfromusers' => 'لديك $1 من {{PLURAL:$3|مستخدم واحد|مستخدم واحد|مستخدمين اثنين|$3 مستخدمين|$3 مستخدما|$3 مستخدم}} ($2).',
+'youhavenewmessagesmanyusers' => 'لديك $1 من مستخدمين كثر ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|رسالة جديدة|رسائل جديدة}}',
 'newmessagesdifflinkplural' => 'أحدث {{PLURAL:$1|تغيير|تغييرات}}',
 'youhavenewmessagesmulti' => 'لديك رسائل جديدة في $1',
 'editsection' => 'عدل',
 'editold' => 'عدل',
-'viewsourceold' => 'استعرض Ø§Ù\84Ù\85صدر',
+'viewsourceold' => 'اعرض المصدر',
 'editlink' => 'عدل',
-'viewsourcelink' => 'استعرض Ø§Ù\84Ù\85صدر',
-'editsectionhint' => 'حرر القسم: $1',
+'viewsourcelink' => 'اعرض المصدر',
+'editsectionhint' => 'عدÙ\84 القسم: $1',
 'toc' => 'محتويات',
 'showtoc' => 'أظهر',
 'hidetoc' => 'أخف',
-'collapsible-collapse' => 'اطÙ\88',
-'collapsible-expand' => 'مدّد',
-'thisisdeleted' => 'هل أعرض أو أسترجع $1؟',
-'viewdeleted' => 'أأعرض $1Ø\9f',
+'collapsible-collapse' => 'أخÙ\81',
+'collapsible-expand' => 'أظهر',
+'thisisdeleted' => 'عرض أو استرجاع $1؟',
+'viewdeleted' => 'عرض $1؟',
 'restorelink' => '{{PLURAL:$1|$1 تعديل محذوف|تعديلا واحدا محذوفا|تعديلين محذوفين|$1 تعديلات محذوفة|$1 تعديلا محذوفا|$1 تعديل محذوف}}',
 'feedlinks' => 'التلقيمة:',
 'feed-invalid' => 'نوع التلقيمة غير صحيح.',
 'feed-unavailable' => 'التلقيمات غير متوفرة',
-'site-rss-feed' => 'تلقيمة آر‌إس‌إس $1',
+'site-rss-feed' => 'تلقيمة آر إس إس $1',
 'site-atom-feed' => 'تلقيمة أتوم $1',
-'page-rss-feed' => 'تلقيمة آر‌إس‌إس "$1"',
+'page-rss-feed' => 'تلقيمة آر إس إس "$1"',
 'page-atom-feed' => 'تلقيمة أتوم "$1"',
 'feed-atom' => 'أتوم',
 'feed-rss' => 'أر إس إس',
@@ -856,7 +856,7 @@ $1',
 'wrong_wfQuery_params' => 'معاملات خاطئة في wfQuery()<br />
 الدالة: $1<br />
 الاستعلام: $2',
-'viewsource' => 'استعرض Ø§Ù\84Ù\85صدر',
+'viewsource' => 'اعرض المصدر',
 'viewsource-title' => 'استعرض مصدر $1',
 'actionthrottled' => 'تم كبح الفعل',
 'actionthrottledtext' => 'احترازا من السُّخام، يُحظر إجراء هذا الفعل مرات كثيرة في فترة زمنية قصيرة، و لقد تجاوزت هذا الحد.
@@ -1336,19 +1336,19 @@ $2
 'expensive-parserfunction-warning' => "'''تحذير:''' هذه الصفحة تحتوي على استدعاءات دالة محلل كثيرة مكلفة.
 
 ينبغي أن تكون أقل من {{PLURAL:$2||استدعاء واحد|استدعاءين|$2 استدعاءات|$2 استدعاء}}، يوجد الآن {{PLURAL:$1|استدعاء واحد|استدعاءان|$2 استدعاءات|$2 استدعاء}}.",
-'expensive-parserfunction-category' => 'صÙ\81حات Ù\8aÙ\88جد Ø¨Ù\87ا Ø§Ø³ØªØ¯Ø¹Ø§Ø¡Ø§Øª Ø¯Ù\88اÙ\84 Ù\85Ø­Ù\84Ù\84 Ù\83Ø«Ù\8aرة Ù\88مكلفة',
+'expensive-parserfunction-category' => 'تجاÙ\88زات Ø§Ù\84دÙ\88اÙ\84 Ø§Ù\84مكلفة',
 'post-expand-template-inclusion-warning' => "'''تحذير:''' حجم تضمين القالب كبير جدا.
 بعض القوالب لن تضمن.",
-'post-expand-template-inclusion-category' => 'اÙ\84صÙ\81حات Ø­Ù\8aØ« ØªÙ\85 ØªØ¬Ø§Ù\88ز Ø­Ø¬Ù\85 ØªØ¶Ù\85Ù\8aÙ\86 Ø§Ù\84Ù\82اÙ\84ب',
+'post-expand-template-inclusion-category' => 'تجاÙ\88زات Ø­Ø¬Ù\85 Ø§Ù\84تضÙ\85Ù\8aÙ\86 Ø¨Ø¹Ø¯ Ø§Ù\84تÙ\88سÙ\8aع',
 'post-expand-template-argument-warning' => "'''تحذير:''' هذه الصفحة تحتوي على عامل قالب واحد على الأقل له حجم تمدد كبير جدا.
 هذه العوامل تم حذفها.",
-'post-expand-template-argument-category' => 'صÙ\81حات ØªØ­ØªÙ\88Ù\8a Ù\85دخÙ\84ات Ø§Ù\84Ù\82اÙ\84ب Ø§Ù\84Ù\85حذÙ\88Ù\81Ø©',
+'post-expand-template-argument-category' => 'تجاÙ\88زات Ù\85عطÙ\8aات Ø§Ù\84Ù\82Ù\88اÙ\84ب',
 'parser-template-loop-warning' => 'تم كشف حلقة قالب: [[$1]]',
 'parser-template-recursion-depth-warning' => 'تم تجاوز حد عمق فرد القوالب ($1)',
 'language-converter-depth-warning' => 'تم تخطي حد عمق محول اللغة ($1)',
-'node-count-exceeded-category' => 'اÙ\84صÙ\81حات Ø§Ù\84تÙ\8a Ø­Ø¯Ø« Ù\81Ù\8aÙ\87ا ØªØ¬Ø§Ù\88ز تعداد العقد',
+'node-count-exceeded-category' => 'تجاÙ\88زات تعداد العقد',
 'node-count-exceeded-warning' => 'تجاوزت هذه الصفحة تعداد العقد',
-'expansion-depth-exceeded-category' => 'اÙ\84صÙ\81حات Ø§Ù\84تÙ\8a Ø­Ø¯Ø« Ù\81Ù\8aÙ\87ا ØªØ¬Ø§Ù\88ز عمق التوسيع',
+'expansion-depth-exceeded-category' => 'تجاÙ\88زات عمق التوسيع',
 'expansion-depth-exceeded-warning' => 'الصفحة تجاوزت عمق التوسيع',
 'parser-unstrip-loop-warning' => 'حلقة معراة تم الكشف عنها',
 'parser-unstrip-recursion-limit' => 'تعدى حد العودية Unstrip  ($1)',
@@ -1618,7 +1618,7 @@ $1",
 
 # Preferences page
 'preferences' => 'تفضيلات',
-'mypreferences' => 'تفضيلاتي',
+'mypreferences' => 'تفضيلات',
 'prefs-edits' => 'عدد التعديلات:',
 'prefsnologin' => 'غير مسجل الدخول',
 'prefsnologintext' => 'يجب أن تكون <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} مسجل الدخول]</span>  حتى تتمكن من تعديل تفضيلات المستخدم.',
@@ -4135,7 +4135,7 @@ $5
 'table_pager_empty' => 'لا نتائج',
 
 # Auto-summaries
-'autosumm-blank' => 'Ø£Ù\81رغ الصفحة',
+'autosumm-blank' => 'Ø¥Ù\81راغ الصفحة',
 'autosumm-replace' => "استبدال الصفحة ب'$1'",
 'autoredircomment' => 'تحويل إلى [[$1]]',
 'autosumm-new' => "أنشأ الصفحة ب'$1'",
@@ -4527,10 +4527,10 @@ $5
 'rotate-comment' => 'تدوير الصورة  {{PLURAL:$1||درجة واحدة|درجتان|$1 درجات|$1 درجة}} باتجاه عقارب الساعة',
 
 # Limit report
-'limitreport-cputime' => 'بÙ\8aاÙ\86ات Ø¥Ø³ØªØ®Ø¯Ø§Ù\85 Ù\88حدة Ø§Ù\84Ù\85عاÙ\84جة Ø§Ù\84Ù\85رÙ\83زÙ\8aØ©',
-'limitreport-cputime-value' => '{{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتان|$1 ثوانٍ|$1 ثانية}}',
-'limitreport-walltime' => 'بÙ\8aاÙ\86ات Ø§Ù\84إستخداÙ\85 Ø§Ù\84Ø¢Ù\86Ù\8a',
-'limitreport-walltime-value' => '{{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتان|$1 ثوانٍ|$1 ثانية}}',
+'limitreport-cputime' => 'زÙ\85Ù\86 Ø§Ù\84Ù\85عاÙ\84جة Ø§Ù\84Ù\85ستغرÙ\82',
+'limitreport-cputime-value' => '{{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتان|$1 ثوان|$1 ثانية}}',
+'limitreport-walltime' => 'اÙ\84زÙ\85Ù\86 Ø§Ù\84Ø­Ù\82Ù\8aÙ\82Ù\8a Ø§Ù\84Ù\85ستغرÙ\82',
+'limitreport-walltime-value' => '{{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتان|$1 ثوان|$1 ثانية}}',
 'limitreport-postexpandincludesize-value' => '$1/$2 بايت',
 'limitreport-templateargumentsize-value' => '$1/$2 بايت',
 
index 4d53b1d..a6b49d2 100644 (file)
@@ -144,7 +144,7 @@ $messages = array(
 'tog-hidepatrolled' => 'ܛܫܝ ܫܘܚܠܦ̈ܐ ܟܪ̈ܝܟܐ ܒܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
 'tog-newpageshidepatrolled' => 'ܛܫܝ ܦܐܬܬ̈ܐ ܟܪ̈ܝܟܬܐ ܡܢ ܡܟܬܒܘܬܐ ܕܦܐܬܐ ܚܕܬܐ',
 'tog-extendwatchlist' => 'ܐܪܘܚ ܪ̈ܗܝܬܐ ܠܚܘܘܝܐ ܕܟܠܗܘܢ ܫܘܚܠܦ̈ܐ، ܠܐ ܚܕ̈ܬܐ ܒܠܚܘܕ',
-'tog-editondblclick' => 'ܫܚܠܦ ܦܐܬ̈ܐ ܬܪ ܢܩܪܐ ܙܘܓܢܝܐ (ܣܢܝܩܬ ܠ JavaScript)',
+'tog-editondblclick' => 'ܫܚܠܦ ܦܐܬܬ̈ܐ ܒܢܩܪܐ ܙܘܓܢܝܐ',
 'tog-editsection' => 'ܡܫܟܚ ܫܘܚܠܦܐ ܕܦܘܣܩ̈ܐ ܒܐܘܪܚܐ ܕܐܝܨܘܪ̈ܐ  [ܫܚܠܦ]',
 'tog-rememberpassword' => 'ܕܟܘܪ ܥܠܠܬܝ ܥܠ ܡܦܐܬܢܐ ܗܢܐ (ܠܡܬܚܐ ܥܠܝܐ ܕ $1 {{PLURAL:$1|ܝܘܡܐ|ܝܘܡܬ̈ܐ}})',
 'tog-watchcreations' => 'ܐܘܣܦ ܦܐܬܬ̈ܐ ܕܒܪܐ ܐܢܐ ܘܠܠܦ̈ܐ ܕܐܣܩ ܐܢܐ ܠܪ̈ܗܝܬܝ',
@@ -337,7 +337,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'ܡܢܘ {{SITENAME}}',
 'aboutpage' => 'Project:ܡܢܘ',
-'copyright' => 'ܚܒܝܫܬ̈ܐ ܐܝܬ ܬܚܝܬ $1.',
+'copyright' => 'ܚܒܝܫܬ̈ܐ ܐܝܬ ܬܚܝܬ $1 ܐܢ ܠܝܬ ܠܩܘܒܠܐ.',
 'copyrightpage' => '{{ns:project}}:ܙܕ̈ܩܐ ܕܚܬܡܐ',
 'currentevents' => 'ܓܕ̈ܫܐ ܗܫܝ̈ܐ',
 'currentevents-url' => 'Project:ܓܕ̈ܫܐ ܗܫܝ̈ܐ',
@@ -911,7 +911,7 @@ $1',
 'rc_categories_any' => 'ܐܝܢܐ ܕܗܘ',
 'rc-change-size-new' => '$1 {{PLURAL:$1|ܒܐܝܛ|ܒܐܝܛ̈ܐ}} ܒܬܪ ܫܘܚܠܦܐ',
 'newsectionsummary' => '/* $1 */ ܡܢܬܐ ܚܕܬܐ',
-'rc-enhanced-expand' => 'ܚܘܝ ܐܪ̈ܝܟܬܐ (ܒܥܐ ܠܟ JavaScript)',
+'rc-enhanced-expand' => 'ܚܘܝ ܐܪ̈ܝܟܬܐ',
 'rc-enhanced-hide' => 'ܛܫܝ ܐܪ̈ܝܟܬܐ',
 'rc-old-title' => 'ܐܬܒܪܝ ܫܪܫܐܝܬ ܐܝܟ "$1"',
 
@@ -1583,7 +1583,7 @@ Do you want to change the settings?',
 'pageinfo-default-sort' => 'ܩܠܝܕܐ ܕܛܘܟܣܐ ܡܬܚܫܒܢܝܐ',
 'pageinfo-length' => 'ܥܓܪܐ ܕܦܐܬܐ (ܒܒܐܝܛ)',
 'pageinfo-article-id' => 'ܗܝܝܘܬܐ ܕܦܐܬܐ',
-'pageinfo-robot-policy' => 'Ü\90Ü\9dÜ\9fÜ¢Ü\9dÜ\98ܬÜ\90 Ü\95Ü¡Ü\99Ü\9dܥܢÜ\90 Ü\95Ü\92ܨÜ\9dܐ',
+'pageinfo-robot-policy' => 'Ü«Ü\98Ü\98Ü\95Ü¥Ü\90 Ü\92Ü\9dÜ\95 ÜªÌ\88Ü\98Ü\92Ü\98Ü\9bܐ',
 'pageinfo-robot-index' => 'ܡܬܦܣܣܢܐ',
 'pageinfo-robot-noindex' => 'ܠܐ ܡܬܦܣܣܢܐ',
 'pageinfo-views' => 'ܡܢܝܢܐ ܕܚܙܝܬ̈ܐ',
index 5d48dd4..2c044f9 100644 (file)
@@ -3878,8 +3878,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'এই ৱিকিত এটা সমস্যা হৈছে',
-'dberr-problems' => 'দুঃখিত!
-চাইটটোত কিছু কাৰিকৰী সমস্যা হৈছে ।',
+'dberr-problems' => 'দুঃখিত! চাইটটোত কিছু কাৰিকৰী সমস্যা হৈছে ।',
 'dberr-again' => "অলপ সময় অপেক্ষা কৰি পুনৰ আপল'ডৰ চেষ্টা কৰক ।",
 'dberr-info' => '(তথ্যকোষৰ চাৰ্ভাৰৰ লগত যোগাযোগ কৰিব নোৱাৰি: $1)',
 'dberr-usegoogle' => 'এই পৰিস্থিতিত আপুনি গুগলৰ মাধ্যমেৰে অনুসন্ধান কৰিব পাৰে ।',
index 03897de..7b8e172 100644 (file)
@@ -311,7 +311,7 @@ $1",
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Tocante a {{SITENAME}}',
 'aboutpage' => 'Project:Tocante a',
-'copyright' => 'El conteníu ta disponible baxo los términos de la $1.',
+'copyright' => "El conteníu ta disponible baxo los términos de la $1 si nun s'indica otra cosa.",
 'copyrightpage' => "{{ns:project}}:Drechos d'autor",
 'currentevents' => 'Fechos actuales',
 'currentevents-url' => 'Project:Fechos actuales',
@@ -1482,7 +1482,7 @@ Esta información sedrá pública.',
 'action-protect' => 'camudar los niveles de proteición pa esta páxina',
 'action-rollback' => "Revertir rápido les ediciones del caberu usuariu qu'editó una páxina determinada",
 'action-import' => 'importar esta páxina dende otra wiki',
-'action-importupload' => "importar esta páxina dende una xubida d'archivu",
+'action-importupload' => 'importar esta páxina dende un ficheru xubíu',
 'action-patrol' => "marcar les ediciones d'otros como supervisaes",
 'action-autopatrol' => 'marcar la to edición como supervisada',
 'action-unwatchedpages' => 'ver la llista de páxines non vixilaes',
@@ -2027,6 +2027,7 @@ Les entraes <del>tachaes</del> tan resueltes.',
 'listusers' => "Llista d'usuarios",
 'listusers-editsonly' => 'Amosar namái usuarios con ediciones',
 'listusers-creationsort' => 'Ordenar por data de creación',
+'listusers-desc' => "Ordenar n'orde descendente",
 'usereditcount' => '$1 {{PLURAL:$1|edición|ediciones}}',
 'usercreated' => "{{GENDER:$3|Creáu el|Creada'l}} $1 a les $2",
 'newpages' => 'Páxines nueves',
@@ -2312,7 +2313,7 @@ daquién más yá editó o revirtió la páxina.
 La postrer edición foi fecha por [[User:$3|$3]] ([[User talk:$3|alderique]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "El resume de la edición yera: \"''\$1''\".",
 'revertpage' => 'Revertíes les ediciones de [[Special:Contributions/$2|$2]] ([[User talk:$2|alderique]]) hasta la cabera versión de [[User:$1|$1]]',
-'revertpage-nouser' => "Revertíes les ediciones d'un usuariu tapecíu a la cabera revisión de [[User:$1|$1]]",
+'revertpage-nouser' => 'Revertíes les ediciones de (usuariu desaniciáu) a la cabera revisión de {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Revertíes les ediciones de $1; camudáu a la última versión de $2.',
 
 # Edit tokens
@@ -3982,9 +3983,9 @@ D\'otra miente, pues usar el formulariu cenciellu d\'abaxo. El to comentariu apa
 'limitreport-ppvisitednodes' => 'Cuenta de noyos visitaos pol preprocesador',
 'limitreport-ppgeneratednodes' => 'Cuenta de noyos xeneraos pol preprocesador',
 'limitreport-postexpandincludesize' => "Tamañu d'inclusión de post-espansión",
-'limitreport-postexpandincludesize-value' => '$1/$2 bytes',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-templateargumentsize' => 'Tamañu del argumentu de plantía',
-'limitreport-templateargumentsize-value' => '$1/$2 bytes',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth' => "Máxima fondura d'espansión",
 'limitreport-expensivefunctioncount' => "Cuenta de funciones d'analís costoses",
 
index 4342a4c..6d25010 100644 (file)
@@ -2895,8 +2895,7 @@ Variants for Chinese language
 
 # Database error messages
 'dberr-header' => 'Bu vikidə problem var',
-'dberr-problems' => 'Üzr istəyirik!
-Bu saytda texniki problemlər var.',
+'dberr-problems' => 'Üzr istəyirik! Bu saytda texniki problemlər var.',
 'dberr-info' => '($1: Məlumat bazası ilə əlaqə yoxdur)',
 
 # HTML forms
index cb09b7b..b845a59 100644 (file)
@@ -3726,8 +3726,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'بو ویکی‌ده بیر ایشکال وار',
-'dberr-problems' => 'عوذر ایسته‌ییریک!
-بو سایت‌دا تِکنیکی ایشکال‌لار واردیر.',
+'dberr-problems' => 'عوذر ایسته‌ییریک! بو سایت‌دا تِکنیکی ایشکال‌لار واردیر.',
 'dberr-again' => 'بیر نئچه دقیقه دؤزوب سونرا یئنی‌دن یوکله‌یین.',
 'dberr-info' => '(دیتابیس خیدمت‌چیسی‌یه باغلانماق اولونمادی: $1)',
 'dberr-usegoogle' => 'بو آرادا، گوگل‌ده آختارابیلرسینیز.',
index 11365f7..3197a42 100644 (file)
@@ -3712,8 +3712,7 @@ MediaWiki файҙалы булыр, тигән өмөттә, ләкин БЕР
 
 # Database error messages
 'dberr-header' => 'Был вики проектта ҡыйынлыҡтар бар',
-'dberr-problems' => 'Ғәфү итегеҙ!
-Был сайтта техник ҡыйынлыҡтар тыуҙы.',
+'dberr-problems' => 'Ғәфү итегеҙ! Был сайтта техник ҡыйынлыҡтар тыуҙы.',
 'dberr-again' => 'Битте бер нисә минуттан яңыртып ҡарағыҙ.',
 'dberr-info' => '(Мәғлүмәттәр базаһы серверы менән тоташтырылып булмай: $1)',
 'dberr-usegoogle' => 'Әлегә һеҙ Google ярҙамында эҙләп ҡарай алһығыҙ.',
index 5755eb5..d76944c 100644 (file)
@@ -3811,8 +3811,7 @@ Ika dapat na nakapagresibe na kan [{{SERVER}}{{SCRIPTPATH}}/COPYING sarong kopya
 
 # Database error messages
 'dberr-header' => 'Ining wiki igwa nin sarong problema',
-'dberr-problems' => 'Sori!
-Ining sityo igwang naeksperiyensiyahan na mga kakundian sa teknikal.',
+'dberr-problems' => 'Sori! Ining sityo igwang naeksperiyensiyahan na mga kakundian sa teknikal.',
 'dberr-again' => 'Prubaring maghalat tabi nin nagkapirang minutos asin otrohon ikarga.',
 'dberr-info' => '(Dae makakontak sa serbidor kan datos-sarayan: $1)',
 'dberr-info-hidden' => '(Dae makakontak sa serbidor kan datos-sarayan)',
index 38c5bd8..06c1e77 100644 (file)
@@ -510,7 +510,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}',
 'aboutpage' => 'Project:Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}',
-'copyright' => 'Зьмест даступны на ўмовах $1.',
+'copyright' => 'Зьмест даступны на ўмовах $1, калі не пазначана іншае.',
 'copyrightpage' => '{{ns:project}}:Аўтарскія правы',
 'currentevents' => 'Актуальныя падзеі',
 'currentevents-url' => 'Project:Актуальныя падзеі',
@@ -1065,7 +1065,7 @@ $2
 'templatesusedsection' => 'У гэтай сэкцыі {{PLURAL:$1|выкарыстаны наступны шаблён|выкарыстаныя наступныя шаблёны}}:',
 'template-protected' => '(абаронены)',
 'template-semiprotected' => '(часткова абароненая)',
-'hiddencategories' => 'Гэтая старонка належыць $1 {{PLURAL:$1|схаванай катэгорыі|схаваным катэгорыям|схаваным катэгорыям}}:',
+'hiddencategories' => 'Гэтая старонка належыць да $1 {{PLURAL:$1|схаванай катэгорыі|схаваных катэгорыяў|схаваных катэгорыяў}}:',
 'nocreatetext' => 'У {{GRAMMAR:месны|{{SITENAME}}}} абмежаванае стварэньне новых старонак.
 Вы можаце вярнуцца і рэдагаваць існуючую старонку, альбо [[Special:UserLogin|ўвайсьці ў сыстэму ці стварыць рахунак]].',
 'nocreate-loggedin' => 'Вы ня маеце дазволу на стварэньне новых старонак.',
@@ -1658,8 +1658,8 @@ $1",
 'action-block' => 'блякаваньне гэтага ўдзельніка ад рэдагаваньняў',
 'action-protect' => 'зьмену ўзроўню абароны гэтай старонкі',
 'action-rollback' => 'хуткі адкат рэдагаваньняў апошняга ўдзельніка, які рэдагаваў старонку',
-'action-import' => 'імпарт гэтай старонкі зь іншай вікі',
-'action-importupload' => 'імпарт гэтай старонкі праз загрузку файла',
+'action-import' => 'імпарт старонак зь іншай вікі',
+'action-importupload' => 'імпарт старонак праз загрузку файла',
 'action-patrol' => 'пазначэньне чужых рэдагаваньняў як «патруляваныя»',
 'action-autopatrol' => 'пазначэньне ўласных рэдагаваньняў як «патруляваныя»',
 'action-unwatchedpages' => 'прагляд сьпісу старонак, за якімі ніхто не назірае',
@@ -2468,7 +2468,7 @@ $UNWATCHURL
 Апошнія зьмены зробленыя [[User:$3|$3]] ([[User talk:$3|гутаркі]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Кароткае апісаньне зьменаў было: «''$1''».",
 'revertpage' => 'Рэдагаваньні [[Special:Contributions/$2|$2]] ([[User talk:$2|гутаркі]]) скасаваныя да папярэдняй вэрсіі [[User:$1|$1]]',
-'revertpage-nouser' => 'Рэдагаваньні схаванага ўдзельніка скасаваныя да папярэдняй вэрсіі [[User:$1|$1]]',
+'revertpage-nouser' => 'Рэдагаваньні схаванага ўдзельніка скасаваныя да папярэдняй вэрсіі {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Адмененыя рэдагаваньні $1;
 вернутая папярэдняя вэрсія $2.',
 
@@ -4131,9 +4131,9 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'limitreport-ppvisitednodes' => 'Колькасьць наведаных прэпрацэсарам вузлоў',
 'limitreport-ppgeneratednodes' => 'Колькасьць створаных прэпрацэсарам вузлоў',
 'limitreport-postexpandincludesize' => 'Памер уключэньняў па разгортваньні',
-'limitreport-postexpandincludesize-value' => '$1/$2 байт',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|байт}}',
 'limitreport-templateargumentsize' => 'Памер аргумэнтаў шаблёнаў',
-'limitreport-templateargumentsize-value' => '$1/$2 байт',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|байт}}',
 'limitreport-expansiondepth' => 'Найбольшая глыбіня разгортваньня',
 'limitreport-expensivefunctioncount' => 'Колькасьць дарагіх функцыяў парсэра',
 
index e1dd94b..420b898 100644 (file)
@@ -3645,8 +3645,7 @@ Pian saharusnya [{{SERVER}}{{SCRIPTPATH}}/COPYING sabuting salinan Lisansi Publi
 
 # Database error messages
 'dberr-header' => 'Wiki ngini baisi sabuah masalah',
-'dberr-problems' => 'Ampun!
-Situs ngini mangalami kangalihan teknik.',
+'dberr-problems' => 'Ampun!Situs ngini mangalami kangalihan teknik.',
 'dberr-again' => 'Cuba hadangi babarapa manit wan muat-pulang.',
 'dberr-info' => '(Kada kawa tasambung ka server databasis: $1)',
 'dberr-usegoogle' => 'Pian kawa mancuba manggagai lung Google wayah pahadangan ngini.',
index 2ab17a7..0c6cd4c 100644 (file)
@@ -3785,8 +3785,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 
 # Database error messages
 'dberr-header' => 'এই উইকিতে কোন সমস্যা রয়েছে',
-'dberr-problems' => 'দুঃখিত!
-এই সাইটটি বর্তমানে কারীগরী অসুবিধার মুখোমুখি হয়েছে।',
+'dberr-problems' => ' দুঃখিত! এই সাইটটি বর্তমানে কারীগরী অসুবিধার মুখোমুখি হয়েছে।',
 'dberr-again' => 'কয়েক মিনিট পর পুনরায় পরিদর্শনের চেষ্টা করুন।',
 'dberr-info' => '(ডেটাবেজ সার্ভার $1-এর সাথে যোগাযোগ করা সম্ভব হয়নি)',
 'dberr-info-hidden' => '(ডাটাবেজ সার্ভারের সাথে সংযোগ দেয়া সম্ভব হচ্ছে না)',
index 0ad0fed..6713409 100644 (file)
@@ -3925,7 +3925,7 @@ Sañset oc'h bezañ resevet [{{SERVER}}{{SCRIPTPATH}}/COPYING un eilskrid eus ar
 'logentry-delete-event-legacy' => 'Kemmet eo bet gwelusted darvoudoù ar marilh $3 gant $1',
 'logentry-delete-revision-legacy' => 'Kemmet eo bet gwelusted ar reizhadennoù war ar bajenn $3 gant $1',
 'logentry-suppress-delete' => '$1 {{GENDER:$2|en deus dilamet}} ar bajenn $3',
-'logentry-suppress-event' => "Kemmet eo bet dre guzh gwelusted {{PLURAL:$5|un darvoud eus ar marilh|$5 darvoud eus ar marilh}} d'an $3 gant $1 : $4",
+'logentry-suppress-event' => "Kemmet eo bet dre guzh gwelusted {{PLURAL:$5|un darvoud eus ar marilh|$5 darvoud eus ar marilh}} d'an $3 gant $1 : $4",
 'logentry-suppress-revision' => 'Kemmet eo bet dre guzh gwelusted {{PLURAL:$5|reizhadenn|$5 reizhadenn}} war ar bajenn $3 gant $1 : $4',
 'logentry-suppress-event-legacy' => "Kemmet eo bet dre guzh gwelusted darvoudoù ar marilh d'an $3 gant $1",
 'logentry-suppress-revision-legacy' => 'Kemmet eo bet dre guzh gwelusted ar reizhadennoù war ar bajenn $3 gant $1',
@@ -4029,7 +4029,8 @@ A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|eiladenn}}',
 'limitreport-walltime' => 'Amzer implij gwirion',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|eiladenn}}',
-'limitreport-postexpandincludesize-value' => '$1/$2 okted',
-'limitreport-templateargumentsize-value' => '$1/$2 okted',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|okted}}',
+'limitreport-templateargumentsize' => 'Ment arguzenn ar patrom',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|okted}}',
 
 );
index a1c814d..6add99e 100644 (file)
@@ -451,7 +451,7 @@ $1",
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Quant al projecte {{SITENAME}}',
 'aboutpage' => 'Project:Quant a',
-'copyright' => 'El contingut està disponible sota els termes de la $1.',
+'copyright' => "El contingut està disponible sota la llicència $1 si no s'indica el contrari.",
 'copyrightpage' => "{{ns:project}}:Drets d'autor",
 'currentevents' => 'Actualitat',
 'currentevents-url' => 'Project:Actualitat',
index cd231d9..57574a9 100644 (file)
@@ -378,7 +378,7 @@ $messages = array(
 'viewtalkpage' => 'بینینی لێدوان',
 'otherlanguages' => 'بە زمانەکانی تر',
 'redirectedfrom' => '(ڕەوانەکراوە لە $1ەوە)',
-'redirectpagesub' => 'پەڕەی ڕەوانەکردن',
+'redirectpagesub' => 'پەڕەی ڕەوانەکەر',
 'lastmodifiedat' => 'ئەم پەڕەیە دواجار لە $2ی $1 نوێ کراوەتەوە.',
 'viewcount' => 'ئەم پەڕەیە {{PLURAL:$1|یەکجار|$1 جار}} بینراوە.',
 'protectedpage' => 'پەڕەی پارێزراو',
@@ -2344,11 +2344,11 @@ $1',
 'linkshere' => "ئەم پەڕانە بەستەریان ھەیە بۆ '''[[:$1]]''':",
 'nolinkshere' => "هیچ لاپەڕەیەک بەستەری نەداوە بە '''[[:$1]]'''.",
 'nolinkshere-ns' => "هیچ لاپەڕەیەک بەستەری نەداوە بە '''[[:$1]]''' لە بۆشایی‌ناوی هەڵبژێردراو.",
-'isredirect' => 'پەڕەی ڕەوانەکردن',
+'isredirect' => 'پەڕەی ڕەوانەکەر',
 'istemplate' => 'بەکارھێنراو',
 'isimage' => 'بەستەری پەڕگە',
-'whatlinkshere-prev' => '{{PLURAL:$1|پێشتر|$1 ی پێشتر}}',
-'whatlinkshere-next' => '{{PLURAL:$1|دیکە|$1 ی دیکە}}',
+'whatlinkshere-prev' => '{{PLURAL:$1|پێشتر|$1ی پێشتر}}',
+'whatlinkshere-next' => '{{PLURAL:$1|دیکە|$1ی تر}}',
 'whatlinkshere-links' => '← بەستەرەکان',
 'whatlinkshere-hideredirs' => 'ڕەوانەکەرەکان $1',
 'whatlinkshere-hidetrans' => '$1 ھێنانەناوەوەکان',
index 2c36d05..4b6034c 100644 (file)
@@ -610,7 +610,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'O&nbsp;{{grammar:6sg|{{SITENAME}}}}',
 'aboutpage' => 'Project:{{SITENAME}}',
-'copyright' => 'Obsah je dostupný pod $1.',
+'copyright' => 'Obsah je dostupný pod $1, pokud není uvedeno jinak.',
 'copyrightpage' => '{{ns:project}}:Autorské právo',
 'currentevents' => 'Aktuality',
 'currentevents-url' => 'Project:Aktuality',
@@ -855,7 +855,8 @@ Ujistěte se, že máte povoleny cookies, obnovte tuto stránku a zkuste to znov
 'nosuchusershort' => 'Neexistuje uživatel se jménem „$1“. Zkontrolujte zápis.',
 'nouserspecified' => 'Musíte zadat uživatelské jméno.',
 'login-userblocked' => 'Tento uživatel je zablokován. Přihlášení není dovoleno.',
-'wrongpassword' => 'Vámi uvedené heslo nesouhlasí. Zkuste to znovu.',
+'wrongpassword' => 'Bylo zadáno nesprávné heslo.
+Zkuste to znovu.',
 'wrongpasswordempty' => 'Bylo zadáno prázdné heslo. Zkuste to znovu.',
 'passwordtooshort' => 'Heslo musí být dlouhé nejméně $1 {{PLURAL:$1|znak|znaky|znaků}}.',
 'password-name-match' => 'Vaše heslo nesmí být stejné jako uživatelské jméno.',
@@ -875,8 +876,8 @@ a používat staré heslo.',
 'noemailcreate' => 'Musíte uvést platnou e-mailovou adresu',
 'passwordsent' => 'Dočasné heslo bylo zasláno na e-mailovou adresu registrovanou pro „$1“. Přihlaste se, prosím, znovu, jakmile ho obdržíte.',
 'blocked-mailpassword' => 'Vaší IP adrese byla zablokována možnost editace, a současně s tím je zablokována funkce pro zaslání nového hesla.',
-'eauthentsent' => 'Potvrzovací e-mail byl zaslán na zadanou adresu.
-Před tím, než vám na tuto adresu budou moci být zasílány další zprávy, následujte instrukce v e-mailu, abyste potvrdili, že tato adresa skutečně patří vám.',
+'eauthentsent' => 'Na zadanou adresu byl zaslán potvrzovací e-mail.
+Žádné další zprávy vám však na tuto adresu nebudou odeslány, dokud podle instrukcí v e-mailu nepotvrdíte, že tato adresa skutečně patří vám.',
 'throttled-mailpassword' => 'Během {{PLURAL:$1|poslední hodiny|posledních $1 hodin}} již bylo heslo jednou zasláno.
 Kvůli prevenci zneužívání lze heslo zaslat jen jednou za $1 {{PLURAL:$1|hodinu|hodiny|hodin}}.',
 'mailerror' => 'Chyba při zasílání e-mailu: $1',
@@ -1005,7 +1006,7 @@ Dočasné heslo: $2',
 'nowiki_sample' => 'Sem vložte neformátovaný text',
 'nowiki_tip' => 'Ignorovat formátování wiki',
 'image_sample' => 'Příklad.jpg',
-'image_tip' => 'Vložený soubor',
+'image_tip' => 'Soubor',
 'media_sample' => 'Příklad.ogg',
 'media_tip' => 'Odkaz na mediální soubor',
 'sig_tip' => 'Váš podpis s datem a časem',
@@ -1593,7 +1594,7 @@ Vaše adresa v takovém případě není prozrazena.',
 'prefs-help-prefershttps' => 'Toto nastavení se projeví při příštím přihlášení.',
 
 # User preference: email validation using jQuery
-'email-address-validity-valid' => 'E-mailová adresa vypadá platně',
+'email-address-validity-valid' => 'E-mailová adresa vypadá jako platná',
 'email-address-validity-invalid' => 'Zadejte platnou e-mailovou adresu',
 
 # User rights
@@ -1748,8 +1749,8 @@ Vaše adresa v takovém případě není prozrazena.',
 'action-block' => 'znemožnit tomuto uživateli editování',
 'action-protect' => 'změnit úrovně ochrany této stránky',
 'action-rollback' => 'rychle revertovat úpravy posledního uživatele editujícího danou stránku',
-'action-import' => 'importovat tuto stránku z jiné wiki',
-'action-importupload' => 'importovat tuto stránku z nahraného souboru',
+'action-import' => 'importovat stránky z jiné wiki',
+'action-importupload' => 'importovat stránky z načteného souboru',
 'action-patrol' => 'označit úpravy ostatních jako zhlédnuté',
 'action-autopatrol' => 'označit vlastní úpravy jako zhlédnuté',
 'action-unwatchedpages' => 'zobrazit seznam nesledovaných stránek',
@@ -2278,6 +2279,7 @@ Každý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl
 'listusers' => 'Uživatelé',
 'listusers-editsonly' => 'Zobrazit pouze uživatele s editacemi',
 'listusers-creationsort' => 'Seřadit podle data registrace',
+'listusers-desc' => 'Řadit sestupně',
 'usereditcount' => '$1 {{PLURAL:$1|editace|editace|editací}}',
 'usercreated' => '{{GENDER:$3|Registrován|Registrována|Registrován(a)}} $1 v $2',
 'newpages' => 'Nejnovější stránky',
@@ -2558,7 +2560,7 @@ Rady a kontakt:
 Poslední editaci této stránky provedl(a) [[User:$3|$3]] ([[User talk:$3|diskuse]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Shrnutí editace bylo: ''„$1“''.",
 'revertpage' => 'Editace uživatele „[[Special:Contributions/$2|$2]]“ ([[User talk:$2|diskuse]]) vráceny do předchozího stavu, jehož autorem je „[[User:$1|$1]]“',
-'revertpage-nouser' => 'Editace skrytého uživatele vráceny do předchozího stavu, jehož autorem je „[[User:$1|$1]]“',
+'revertpage-nouser' => 'Editace skrytého uživatele vráceny do předchozího stavu, jehož {{GENDER:$1|autorem|autorkou}} je „[[User:$1|$1]]“',
 'rollback-success' => 'Editace uživatele $1 byly vráceny na poslední verzi od uživatele $2.',
 
 # Edit tokens
@@ -4266,9 +4268,9 @@ Jinak můžete využít jednoduchý formulář níže. Váš komentář bude př
 'limitreport-ppvisitednodes' => 'Počet uzlů navštívených preprocesorem',
 'limitreport-ppgeneratednodes' => 'Počet uzlů vygenerovaných preprocesorem',
 'limitreport-postexpandincludesize' => 'Velikost vložení po expanzi',
-'limitreport-postexpandincludesize-value' => '$1/$2 bajtů',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|bajt|bajty|bajtů}}',
 'limitreport-templateargumentsize' => 'Velikost argumentů šablon',
-'limitreport-templateargumentsize-value' => '$1/$2 bajtů',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|bajt|bajty|bajtů}}',
 'limitreport-expansiondepth' => 'Největší hloubka expanze',
 'limitreport-expensivefunctioncount' => 'Počet náročných funkcí parseru',
 
index 1323f69..4ac7606 100644 (file)
@@ -364,7 +364,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Ynglŷn â {{SITENAME}}',
 'aboutpage' => 'Project:Amdanom',
-'copyright' => "Mae'r cynnwys ar gael o dan $1.",
+'copyright' => "Rhoddir y cynnwys ar gael ar delerau'r drwydded $1, heblaw ei fod wedi nodi'n wahanol.",
 'copyrightpage' => '{{ns:project}}:Hawlfraint',
 'currentevents' => 'Materion cyfoes',
 'currentevents-url' => 'Project:Materion cyfoes',
@@ -1233,7 +1233,7 @@ Cofiwch y gall mynegeion Google o gynnwys {{SITENAME}} fod ar ei hôl hi.",
 'prefs-datetime' => 'Dyddiad ac amser',
 'prefs-labs' => 'Nodweddion Labs',
 'prefs-user-pages' => 'Tudalennau defnyddwyr',
-'prefs-personal' => 'Data defnyddiwr',
+'prefs-personal' => 'Data personol',
 'prefs-rc' => 'Newidiadau diweddar',
 'prefs-watchlist' => 'Rhestr wylio',
 'prefs-watchlist-days' => "Nifer y diwrnodau i'w dangos yn y rhestr wylio:",
@@ -1495,8 +1495,8 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'action-block' => 'atal y defnyddiwr hwn rhag golygu',
 'action-protect' => 'newid lefelau gwarchod y dudalen hon',
 'action-rollback' => 'gwrthdroi golygiadau defnyddiwr diwethaf rhyw dudalen, yn sydyn',
-'action-import' => "mewnforio'r dudalen hon o wici arall",
-'action-importupload' => "mewnforio'r dudalen hon drwy uwchlwytho ffeil XML",
+'action-import' => 'mewnforio tudalennau o wici arall',
+'action-importupload' => 'mewnforio tudalennau drwy uwchlwytho ffeil',
 'action-patrol' => 'marcio bod golygiad defnyddiwr arall wedi derbyn ymweliad patrôl',
 'action-autopatrol' => 'cael derbyn marc ymweliad patrôl ar eich golygiad',
 'action-unwatchedpages' => 'gweld rhestr y tudalennau heb neb yn eu gwylio',
@@ -2021,6 +2021,7 @@ Gosodwyd <del>llinell</del> drwy'r eitemau sydd eisoes wedi eu datrys.",
 'listusers' => 'Rhestr defnyddwyr',
 'listusers-editsonly' => 'Dangos y defnyddwyr hynny sydd wedi golygu rhywbeth yn unig',
 'listusers-creationsort' => 'Trefnwch yn ôl dyddiad creu',
+'listusers-desc' => 'Trefnu gan ddisgyn',
 'usereditcount' => '$1 {{PLURAL:$1|golygiad|golygiad|olygiad|golygiad|golygiad|o olygiadau}}',
 'usercreated' => '{{GENDER:$3|Crëwyd}} ar $1 am $2',
 'newpages' => 'Erthyglau newydd',
@@ -2307,7 +2308,7 @@ mae rhywun arall eisoes wedi dadwneud y golygiad neu wedi golygu'r dudalen.
 [[User:$3|$3]] ([[User talk:$3|Sgwrs]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) a wnaeth y golygiad diwethaf.",
 'editcomment' => "Crynodeb y golygiad oedd: \"''\$1''\".",
 'revertpage' => 'Wedi gwrthdroi golygiadau gan [[Special:Contributions/$2|$2]] ([[User talk:$2|Sgwrs]]); wedi adfer y golygiad diweddaraf gan [[User:$1|$1]]',
-'revertpage-nouser' => 'Wedi gwrthdroi golygiadau gan ddefnyddiwr cudd; wedi adfer y golygiad diweddaraf gan [[User:$1|$1]]',
+'revertpage-nouser' => 'Wedi gwrthdroi golygiadau gan ddefnyddiwr cudd; wedi adfer y golygiad diweddaraf gan {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => "Gwrthdrowyd y golygiadau gan $1;
 wedi gwrthdroi i'r golygiad olaf gan $2.",
 
@@ -3938,9 +3939,9 @@ Dylech fod wedi derbyn [{{SERVER}}{{SCRIPTPATH}}/COPYING gopi o GNU General Publ
 'limitreport-ppvisitednodes' => "Rhif y nodau ar ymweliadau'r rhagbrosesydd",
 'limitreport-ppgeneratednodes' => 'Rhif y nodau a gynhyrchodd y rhagbrosesydd',
 'limitreport-postexpandincludesize' => 'Uchafswm maint y nodiadau ar ôl eu chwyddo',
-'limitreport-postexpandincludesize-value' => '$1/$2 beit',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|beit|beit|feit|beit}}',
 'limitreport-templateargumentsize' => 'Maint arg y nodyn',
-'limitreport-templateargumentsize-value' => '$1/$2 beit',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|beit|beit|feit|beit}}',
 'limitreport-expansiondepth' => 'Uchafswm dyfnder yr ehangu',
 'limitreport-expensivefunctioncount' => "Nifer y ffwythiannau dosrannu sy'n dreth ar adnoddau",
 
index 3192912..05533a6 100644 (file)
@@ -35,6 +35,7 @@
  * @author Li-sung
  * @author Locos epraix
  * @author Lyzzy
+ * @author MBq
  * @author MF-Warburg
  * @author Man77
  * @author Melancholie
@@ -894,7 +895,7 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ände
 'createacct-imgcaptcha-ph' => 'Gib den Text ein, den du oben siehst.',
 'createacct-submit' => 'Dein Benutzerkonto erstellen',
 'createacct-another-submit' => 'Anderes Benutzerkonto erstellen',
-'createacct-benefit-heading' => '{{SITENAME}} wird von Leuten wie dir erstellt.',
+'createacct-benefit-heading' => '{{SITENAME}} wird von Menschen wie dir geschaffen.',
 'createacct-benefit-body1' => '{{PLURAL:$1|Bearbeitung|Bearbeitungen}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|Seite|Seiten}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|aktiver Autor|aktive Autoren}}',
@@ -1621,15 +1622,15 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'prefs-help-signature' => 'Beiträge auf Diskussionsseiten sollten mit „<nowiki>~~~~</nowiki>“ signiert werden, was dann in die Signatur mit Zeitstempel umgewandelt wird.',
 'badsig' => 'Die Syntax der Signatur ist ungültig; bitte HTML überprüfen.',
 'badsiglength' => 'Die Signatur darf maximal $1 {{PLURAL:$1|Zeichen}} lang sein.',
-'yourgender' => 'Wie willst du dich beschreiben?',
-'gender-unknown' => 'Ich will es nicht beschreiben',
-'gender-male' => 'Er bearbeitet Wikiseiten',
-'gender-female' => 'Sie bearbeitet Wikiseiten',
-'prefs-help-gender' => 'Das Festlegen dieser Einstellung ist optional.
-Die Software verwendet den Wert, um dich anzureden und zur Erwähnung für andere durch Verwendung des passenden grammatikalischen Geschlechts.
+'yourgender' => 'Welches Geschlecht hast du?',
+'gender-unknown' => 'Ich möchte hierzu keine Angabe machen',
+'gender-male' => 'Ich bin männlich',
+'gender-female' => 'Ich bin weiblich',
+'prefs-help-gender' => 'Dies ist eine freiwillige Angabe.
+Die Software nutzt sie, um dich anzureden sowie als Hinweis für andere durch Verwendung des zutreffenden grammatikalischen Geschlechts.
 Diese Information ist öffentlich.',
 'email' => 'E-Mail',
-'prefs-help-realname' => 'Optional. Damit kann dein bürgerlicher Name deinen Beiträgen zugeordnet werden.',
+'prefs-help-realname' => 'Dies ist eine freiwillige Angabe. Damit kann dein bürgerlicher Name deinen Beiträgen zugeordnet werden.',
 'prefs-help-email' => 'Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern du dein Passwort vergessen hast.',
 'prefs-help-email-others' => 'Mit anderen Benutzern kannst du auch über die Benutzerdiskussionsseiten Kontakt aufnehmen, ohne dass du deine Identität offenlegen musst.',
 'prefs-help-email-required' => 'Es wird eine gültige E-Mail-Adresse benötigt.',
@@ -2344,6 +2345,7 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 'listusers' => 'Benutzerverzeichnis',
 'listusers-editsonly' => 'Zeige nur Benutzer mit Beiträgen',
 'listusers-creationsort' => 'Nach Erstelldatum sortieren',
+'listusers-desc' => 'In absteigender Reihenfolge sortieren',
 'usereditcount' => '$1 {{PLURAL:$1|Bearbeitung|Bearbeitungen}}',
 'usercreated' => '{{GENDER:$3|Erstellt}} am $1 um $2 Uhr',
 'newpages' => 'Neue Seiten',
@@ -2618,7 +2620,7 @@ Rückmeldungen und weitere Hilfe: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 Die letzte Änderung stammt von [[User:$3|$3]] ([[User talk:$3|Diskussion]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Die Änderungszusammenfassung lautet: ''„$1“''.",
 'revertpage' => 'Änderungen von [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussion]]) wurden auf die letzte Version von [[User:$1|$1]] zurückgesetzt',
-'revertpage-nouser' => 'Änderungen von einem versteckten Benutzer rückgängig gemacht und letzte Version von [[User:$1|$1]] wiederhergestellt',
+'revertpage-nouser' => 'Änderungen von einem versteckten Benutzer rückgängig gemacht und letzte Version von {{GENDER:$1|[[User:$1|$1]]}} wiederhergestellt',
 'rollback-success' => 'Die Änderungen von $1 wurden rückgängig gemacht und die letzte Version von $2 wurde wiederhergestellt.',
 
 # Edit tokens
@@ -4126,11 +4128,16 @@ Eine [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie der ''GNU General Public License'']
 'tag-filter-submit' => 'Filter',
 'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Markierung|Markierungen}}]]: $2)',
 'tags-title' => 'Markierungen',
-'tags-intro' => 'Diese Seite zeigt alle Markierungen, die für Bearbeitungen verwendet werden, sowie deren Bedeutung.',
+'tags-intro' => 'Diese Seite zeigt alle Markierungen, die für Bearbeitungen verwendet wurden, sowie deren Bedeutung. 
+
+Bei entsprechender Einstellung können die Missbrauchfilter beliebige Markierungen in die Versionsgeschichte setzen. Man kann die Versionsgeschichte dann nach den Markierungen filtern.',
 'tags-tag' => 'Markierungsname',
 'tags-display-header' => 'Benennung auf den Änderungslisten',
 'tags-description-header' => 'Vollständige Beschreibung',
+'tags-active-header' => 'Aktiv?',
 'tags-hitcount-header' => 'Markierte Änderungen',
+'tags-active-yes' => 'Ja',
+'tags-active-no' => 'Nein',
 'tags-edit' => 'bearbeiten',
 'tags-hitcount' => '$1 {{PLURAL:$1|Änderung|Änderungen}}',
 
@@ -4298,9 +4305,9 @@ Anderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kom
 'limitreport-ppgeneratednodes' => 'Erzeugte Knotenanzahl des Präprozessors',
 'limitreport-ppgeneratednodes-value' => '$1/$2',
 'limitreport-postexpandincludesize' => 'Einbindungsgröße nach dem Expandieren',
-'limitreport-postexpandincludesize-value' => '$1/$2 Bytes',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|Byte|Bytes}}',
 'limitreport-templateargumentsize' => 'Vorlagenargumentgröße',
-'limitreport-templateargumentsize-value' => '$1/$2 Bytes',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|Byte|Bytes}}',
 'limitreport-expansiondepth' => 'Höchste Expansionstiefe',
 'limitreport-expansiondepth-value' => '$1/$2',
 'limitreport-expensivefunctioncount' => 'Anzahl aufwändiger Parserfunktionen',
index d963e0d..e0987e7 100644 (file)
@@ -576,7 +576,7 @@ $1',
 'disclaimerpage' => 'Project:Reddê mesuliyetê bıngey',
 'edithelp' => 'Peştdariya vurnayışi',
 'helppage' => 'Help:Estêni',
-'mainpage' => 'Pela Seri',
+'mainpage' => 'Pera Seri',
 'mainpage-description' => 'Pela Seri',
 'policy-url' => 'Project:Terzê hereketi',
 'portal' => 'Portalê cemaeti',
@@ -4204,8 +4204,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 
 # Database error messages
 'dberr-header' => 'Ena Wiki de yew ğelet esta',
-'dberr-problems' => 'Mayê muxulêm!
-Ena sita dı newke xırabiya teknik esta.',
+'dberr-problems' => 'Mayê muxulêm! Ena sita dı newke xırabiya teknik esta.',
 'dberr-again' => 'Yew di dekika vinder u hin bar bike.',
 'dberr-info' => '(Erzmelumati ra xızmetkari nêreseno: $1)',
 'dberr-usegoogle' => 'Ti eşkeno hem zi ser Google de bigêre.',
@@ -4348,9 +4347,9 @@ Ena sita dı newke xırabiya teknik esta.',
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|saniye|saniyeyan}}',
 'limitreport-walltime' => 'Raştay demdı bıkarn',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|saniye|saniyeyan}}',
-'limitreport-postexpandincludesize-value' => '$1/$2 bayt',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|bayt|bayti}}',
 'limitreport-templateargumentsize' => 'Ebata hacetandi şablonan',
-'limitreport-templateargumentsize-value' => '$1/$2 bayt',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|bayt|bayti}}',
 'limitreport-expansiondepth' => 'Tewr veşi herayina dergbiyayışi',
 'limitreport-expensivefunctioncount' => 'Amoriya fonksiyonde vay agozni',
 
index 9e2d3c8..15900d9 100644 (file)
@@ -2931,7 +2931,7 @@ $1',
 'delete_and_move_text' => '==Χρειάζεται διαγραφή.==
 
 Το άρθρο [[:$1]] υπάρχει ήδη. Θέλετε να το διαγράψετε για να εκτελεσθεί η μετακίνηση;',
-'delete_and_move_confirm' => 'Î\9dαι, Î´Î¹Î­Î³Ï\81αÏ\88ε Ï\84η Ï\83ελίδα',
+'delete_and_move_confirm' => 'Î\9dαι, Î½Î± Î´Î¹Î±Î³Ï\81αÏ\86εί Î· Ï\83ελίδα.',
 'delete_and_move_reason' => 'Διαγράφηκε για να δημιουργήσει χώρο για μετακίνηση από το "[[$1]]"',
 'selfmove' => 'Ο τίτλος προέλευσης είναι ο ίδιος με τον τίτλο προορισμού -δεν είναι δυνατόν να μετακινηθεί μια σελίδα προς τον εαυτό της.',
 'immobile-source-namespace' => 'Δεν μπορούν να μετακινηθούν σελίδες στον ονοματοχώρο "$1"',
@@ -4058,7 +4058,7 @@ $5
 'logentry-delete-delete' => '{{GENDER:$1|Ο|Η}} $1 διέγραψε τη σελίδα $3',
 'logentry-delete-restore' => 'Ο/Η $1 αποκατέστησε τη σελίδα $3',
 'logentry-delete-event' => ' $1 {{GENDER:$1|άλλαξε}} την ορατότητα σε {{PLURAL:$5|ένα γεγονός καταγραφής|$5 γεγονότα καταγραφής}} στο $3: $4',
-'logentry-delete-revision' => '$1 {{GENDER:$2|άλλαξε}} άλλαξε την ορατότητα {{PLURAL:$5|μια έκδοση|$5 εκδόσεις}} στη σελίδα $3: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|άλλαξε}} την ορατότητα για {{PLURAL:$5|μία έκδοση|$5 εκδόσεις}} στη σελίδα $3: $4',
 'logentry-delete-event-legacy' => '{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα των καταγραφόμενων συμβάντων στη σελίδα $3',
 'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|άλλαξε}} την  ορατότητα των αναθεωρήσεων στη σελίδα $3',
 'logentry-suppress-delete' => '$1 {{GENDER:$2|διέγραψε}} τη σελίδα $3',
index e4d0651..3dedbb9 100644 (file)
@@ -1681,7 +1681,7 @@ You can still [$1 view this diff] if you wish to proceed.",
 You can view this diff; details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
 'rev-suppressed-diff-view'    => "One of the revisions of this diff has been '''suppressed'''.
 You can view this diff; details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
-'rev-delundel'                => 'show/hide',
+'rev-delundel'                => 'change visibility',
 'rev-showdeleted'             => 'show',
 'revisiondelete'              => 'Delete/undelete revisions',
 'revdelete-nooldid-title'     => 'Invalid target revision',
@@ -1793,7 +1793,7 @@ Note that using the navigation links will reset this column.',
 'difference-multipage'        => '(Difference between pages)',
 'lineno'                      => 'Line $1:',
 'compareselectedversions'     => 'Compare selected revisions',
-'showhideselectedversions'    => 'Show/hide selected revisions',
+'showhideselectedversions'    => 'Change visibility of selected revisions',
 'editundo'                    => 'undo',
 'diff-empty'                  => '(No difference)',
 'diff-multi'                  => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one user|$2 users}} not shown)',
@@ -2173,9 +2173,9 @@ Your email address is not revealed when other users contact you.',
 'action-block'                => 'block this user from editing',
 'action-protect'              => 'change protection levels for this page',
 'action-rollback'             => 'quickly rollback the edits of the last user who edited a particular page',
-'action-import'               => 'import this page from another wiki',
-'action-importupload'         => 'import this page from a file upload',
-'action-patrol'               => "mark others' edit as patrolled",
+'action-import'               => 'import pages from another wiki',
+'action-importupload'         => 'import pages from a file upload',
+'action-patrol'               => "mark others' edits as patrolled",
 'action-autopatrol'           => 'have your edit marked as patrolled',
 'action-unwatchedpages'       => 'view the list of unwatched pages',
 'action-mergehistory'         => 'merge the history of this page',
@@ -2773,6 +2773,7 @@ It now redirects to [[$2]].',
 'listusers-summary'               => '', # do not translate or duplicate this message to other languages
 'listusers-editsonly'             => 'Show only users with edits',
 'listusers-creationsort'          => 'Sort by creation date',
+'listusers-desc'                  => 'Sort in descending order',
 'usereditcount'                   => '$1 {{PLURAL:$1|edit|edits}}',
 'usercreated'                     => '{{GENDER:$3|Created}} on $1 at $2',
 'newpages'                        => 'New pages',
@@ -2816,7 +2817,7 @@ Please note that other web sites may link to a file with a direct URL, and so ma
 You can narrow down the view by selecting a log type, the username (case-sensitive), or the affected page (also case-sensitive).',
 'logempty'                   => 'No matching items in log.',
 'log-title-wildcard'         => 'Search titles starting with this text',
-'showhideselectedlogentries' => 'Show/hide selected log entries',
+'showhideselectedlogentries' => 'Change visibility of selected log entries',
 
 # Special:AllPages
 'allpages'                => 'All pages',
@@ -3078,7 +3079,7 @@ someone else has edited or rolled back the page already.
 The last edit to the page was by [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment'                => "The edit summary was: \"''\$1''\".",
 'revertpage'                 => 'Reverted edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last revision by [[User:$1|$1]]',
-'revertpage-nouser'          => 'Reverted edits by a hidden user to last revision by [[User:$1|$1]]',
+'revertpage-nouser'          => 'Reverted edits by a hidden user to last revision by {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success'           => 'Reverted edits by $1;
 changed back to last revision by $2.',
 
@@ -3228,7 +3229,7 @@ $1',
 'contributions-summary' => '', # do not translate or duplicate this message to other languages
 'contributions-title'   => 'User contributions for $1',
 'mycontris'             => 'Contributions',
-'contribsub2'           => 'For $1 ($2)',
+'contribsub2'           => 'For {{GENDER:$3|$1}} ($2)',
 'nocontribs'            => 'No changes were found matching these criteria.',
 'uctop'                 => '(current)',
 'month'                 => 'From month (and earlier):',
@@ -3500,6 +3501,7 @@ Please merge them manually.'''",
 'movesubpagetext'              => 'This page has $1 {{PLURAL:$1|subpage|subpages}} shown below.',
 'movenosubpage'                => 'This page has no subpages.',
 'movereason'                   => 'Reason:',
+'move-redirect-text'           => '', # do not translate or duplicate this message to other languages
 'revertmove'                   => 'revert',
 'delete_and_move'              => 'Delete and move',
 'delete_and_move_text'         => '== Deletion required ==
@@ -4929,7 +4931,10 @@ You should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU Gen
 'tags-tag'                => 'Tag name',
 'tags-display-header'     => 'Appearance on change lists',
 'tags-description-header' => 'Full description of meaning',
+'tags-active-header'      => 'Active?',
 'tags-hitcount-header'    => 'Tagged changes',
+'tags-active-yes'         => 'Yes',
+'tags-active-no'          => 'No',
 'tags-edit'               => 'edit',
 'tags-hitcount'           => '$1 {{PLURAL:$1|change|changes}}',
 
@@ -5124,9 +5129,9 @@ Otherwise, you can use the easy form below. Your comment will be added to the pa
 'limitreport-ppgeneratednodes'             => 'Preprocessor generated node count',
 'limitreport-ppgeneratednodes-value'       => '$1/$2', # only translate this message to other languages if you have to change it
 'limitreport-postexpandincludesize'        => 'Post-expand include size',
-'limitreport-postexpandincludesize-value'  => '$1/$2 bytes',
+'limitreport-postexpandincludesize-value'  => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-templateargumentsize'         => 'Template argument size',
-'limitreport-templateargumentsize-value'   => '$1/$2 bytes',
+'limitreport-templateargumentsize-value'   => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth'               => 'Highest expansion depth',
 'limitreport-expansiondepth-value'         => '$1/$2', # only translate this message to other languages if you have to change it
 'limitreport-expensivefunctioncount'       => 'Expensive parser function count',
index ec94bae..7798a37 100644 (file)
@@ -71,6 +71,7 @@
  * @author Muro de Aguas
  * @author Omnipaedista
  * @author Orgullomoore
+ * @author Ovruni
  * @author Paucabot
  * @author Penarc
  * @author PerroVerd
@@ -620,7 +621,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Acerca de {{SITENAME}}',
 'aboutpage' => 'Project:Acerca de',
-'copyright' => 'El contenido está disponible bajo los términos de la $1.',
+'copyright' => 'El contenido está disponible bajo  $1  a menos que se indique lo contrario.',
 'copyrightpage' => '{{ns:project}}:Derechos de autor',
 'currentevents' => 'Actualidad',
 'currentevents-url' => 'Project:Actualidad',
@@ -4109,8 +4110,7 @@ Has recibido [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Licencia Pública
 
 # Database error messages
 'dberr-header' => 'Este wiki tiene un problema',
-'dberr-problems' => 'Lo sentimos.
-Este sitio está experimentando dificultades técnicas.',
+'dberr-problems' => 'Lo sentimos. Este sitio está experimentando dificultades técnicas.',
 'dberr-again' => 'Prueba a recargar dentro de unos minutos.',
 'dberr-info' => '(No se puede contactar con la base de datos del servidor: $1)',
 'dberr-info-hidden' => '(No se puede contactar con la base de datos del servidor)',
@@ -4259,9 +4259,9 @@ En otro caso, puedes usar el siguiente formulario. Tu comentario será añadido
 'limitreport-ppvisitednodes' => 'N.º de nodos visitados por el preprocesador',
 'limitreport-ppgeneratednodes' => 'N.º de nodos generados por el preprocesador',
 'limitreport-postexpandincludesize' => 'Tamaño de inclusión posexpansión',
-'limitreport-postexpandincludesize-value' => '$1/$2 bytes',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-templateargumentsize' => 'Argumento del tamaño de la plantilla',
-'limitreport-templateargumentsize-value' => '$1/$2 bytes',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth' => 'Profundidad máxima de expansión',
 
 );
index 9412b16..259ed97 100644 (file)
@@ -538,7 +538,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{GRAMMAR:genitive|{{SITENAME}}}} tiitelandmed',
 'aboutpage' => 'Project:Tiitelandmed',
-'copyright' => 'Kogu tekst on kasutatav litsentsi $1 tingimustel.',
+'copyright' => 'Sisu on kasutatav litsentsi $1 tingimustel, kui pole öeldud teisiti.',
 'copyrightpage' => '{{ns:project}}:Autoriõigus',
 'currentevents' => 'Sündmused',
 'currentevents-url' => 'Project:Sündmused',
@@ -2655,9 +2655,9 @@ Allpool on toodud viimane blokeerimislogi sissekanne:',
 'whatlinkshere-next' => '{{PLURAL:$1|järgmine|järgmised $1}}',
 'whatlinkshere-links' => '← lingid',
 'whatlinkshere-hideredirs' => 'Ümbersuunamised ($1)',
-'whatlinkshere-hidetrans' => '$1 mallina kasutamised',
-'whatlinkshere-hidelinks' => '$1 lingid',
-'whatlinkshere-hideimages' => '$1 faililingid',
+'whatlinkshere-hidetrans' => 'Mallina kasutamised ($1)',
+'whatlinkshere-hidelinks' => 'Lingid ($1)',
+'whatlinkshere-hideimages' => 'Faililingid ($1)',
 'whatlinkshere-filters' => 'Filtrid',
 
 # Block/unblock
@@ -4091,9 +4091,9 @@ Kui ei, kasuta allolevat lihtsat vormi. Sinu kommentaar lisatakse koos kasutajan
 'limitreport-ppvisitednodes' => 'Eelprotsessori külastatud sõlmede arv',
 'limitreport-ppgeneratednodes' => 'Eelprotsessori genereeritud sõlmede arv',
 'limitreport-postexpandincludesize' => 'Hõrendusjärgne kaasa arvatav suurus',
-'limitreport-postexpandincludesize-value' => '$1/$2 baiti',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|bait|baiti}}',
 'limitreport-templateargumentsize' => 'Malli argumendi suurus',
-'limitreport-templateargumentsize-value' => '$1/$2 baiti',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|bait|baiti}}',
 'limitreport-expansiondepth' => 'Suurim hõrendussügavus',
 'limitreport-expensivefunctioncount' => 'Kulukate parserifunktsioonide arv',
 
index 4260f6b..2007ae1 100644 (file)
@@ -1581,7 +1581,7 @@ $1",
 'prefs-skin' => 'پوسته',
 'skin-preview' => 'پیش‌نمایش',
 'datedefault' => 'بدون ترجیح',
-'prefs-beta' => 'ویژگی های بتا',
+'prefs-beta' => 'ویژگی‌های آزمایشی',
 'prefs-datetime' => 'تاریخ و زمان',
 'prefs-labs' => 'گزینه‌های آزمایشی',
 'prefs-user-pages' => 'صفحه‌های کاربری',
@@ -3322,7 +3322,7 @@ $2',
 'pageinfo-header-basic' => 'اطلاعات اولیه',
 'pageinfo-header-edits' => 'ویرایش تاریخچه',
 'pageinfo-header-restrictions' => 'حفاظت از صفحه',
-'pageinfo-header-properties' => 'ويژگيهای صفحه',
+'pageinfo-header-properties' => 'ويژگی‌های صفحه',
 'pageinfo-display-title' => 'نمایش عنوان',
 'pageinfo-default-sort' => 'کلید مرتب‌سازی پیش‌فرض',
 'pageinfo-length' => 'حجم صفحه  (بایت)',
@@ -3451,8 +3451,8 @@ $1',
 'just-now' => 'هم‌اکنون',
 
 # Human-readable timestamps
-'hours-ago' => '$1 {{PLURAL:$1|ساعت|ساعت}} قبل',
-'minutes-ago' => '$1 {{PLURAL:$1|دقیقه|دقیقه}} قبل',
+'hours-ago' => '$1 ساعت قبل',
+'minutes-ago' => '$1 دقیقه قبل',
 'seconds-ago' => '$1 {{PLURAL:$1|ثانیه|ثانیه}} قبل',
 'monday-at' => 'دوشنبهٔ $1',
 'tuesday-at' => 'سه‌شنبهٔ $1',
@@ -3461,7 +3461,7 @@ $1',
 'friday-at' => 'جمعهٔ $1',
 'saturday-at' => 'شنبهٔ $1',
 'sunday-at' => 'یک‌شنبهٔ $1',
-'yesterday-at' => 'دیروز $1',
+'yesterday-at' => 'دیروز در $1',
 
 # Bad image list
 'bad_image_list' => 'اطلاعات را باید اینگونه وارد کنید:
@@ -4230,8 +4230,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'این ویکی یک ایراد دارد',
-'dberr-problems' => 'شرمنده!
-این تارنما از مشکلات فنی رنج می‌برد.',
+'dberr-problems' => 'شرمنده! این تارنما از مشکلات فنی رنج می‌برد.',
 'dberr-again' => 'چند دقیقه صبر کند و دوباره صفحه را بارگیری کنید.',
 'dberr-info' => '(امکان برقراری ارتباط با کارساز پایگاه داده وجود ندارد: $1)',
 'dberr-usegoogle' => 'شما در این مدت می‌توانید با استفاده از گوگل جستجو کنید.',
index 5c7fb19..79da6f3 100644 (file)
@@ -1676,8 +1676,8 @@ Tämä tieto on julkinen.',
 'action-block' => 'estää tätä käyttäjää muokkaamasta',
 'action-protect' => 'muuttaa tämän sivun suojaustasoa',
 'action-rollback' => 'käyttää nopeaa palautusta kumoamaan viimeisen käyttäjän viimeiset muutokset sivuun',
-'action-import' => 'tuoda tätä sivua toisesta wikistä',
-'action-importupload' => 'tuoda tätä sivua tiedostosta',
+'action-import' => 'tuoda sivuja toisesta wikistä',
+'action-importupload' => 'tuoda sivuja tiedostosta',
 'action-patrol' => 'merkitä muiden muokkauksia tarkastetuiksi',
 'action-autopatrol' => 'saada muokkaukset automaattisesti tarkastetuiksi',
 'action-unwatchedpages' => 'tarkastella tarkkailemattomien sivujen listaa',
@@ -2197,6 +2197,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'listusers' => 'Käyttäjälista',
 'listusers-editsonly' => 'Näytä vain käyttäjät, joilla on muokkauksia',
 'listusers-creationsort' => 'Lajittele tunnuksen luontipäivämäärän mukaan',
+'listusers-desc' => 'Lajittele alenevassa järjestyksessä',
 'usereditcount' => '$1 {{PLURAL:$1|muokkaus|muokkausta}}',
 'usercreated' => '{{GENDER:$3|Luotu}} $1 kello $2',
 'newpages' => 'Uudet sivut',
@@ -2476,7 +2477,7 @@ Sivulla $2 on lista viimeaikaisista poistoista.',
 Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|keskustelu]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Muokkauksen yhteenveto oli: ''$1''.",
 'revertpage' => 'Käyttäjän [[Special:Contributions/$2|$2]] ([[User talk:$2|keskustelu]]) muokkaukset kumottiin ja sivu palautettiin viimeisimpään käyttäjän [[User:$1|$1]] tekemään versioon.',
-'revertpage-nouser' => 'Käyttäjän (käyttäjänimi poistettu) muokkaukset kumottiin ja sivu palautettiin viimeisimpään käyttäjän [[User:$1|$1]] tekemään versioon.',
+'revertpage-nouser' => 'Käyttäjän (käyttäjänimi poistettu) muokkaukset kumottiin ja sivu palautettiin viimeisimpään käyttäjän {{GENDER:$1|[[User:$1|$1]]}} tekemään versioon',
 'rollback-success' => 'Käyttäjän $1 tekemät muokkaukset kumottiin ja sivu palautettiin käyttäjän $2 versioon.',
 
 # Edit tokens
@@ -3109,13 +3110,13 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 'nocredits' => 'Tämän sivun tekijäluettelotietoja ei löydy.',
 
 # Spam protection
-'spamprotectiontitle' => 'Mainossuodatin',
-'spamprotectiontext' => 'Mainossuodatin on estänyt sivun tallentamisen. Syynä on todennäköisimmin mustalistattu ulkopuoliselle sivustolle osoittava linkki.',
-'spamprotectionmatch' => 'Teksti, joka ei läpäissyt mainossuodatinta: $1',
-'spambot_username' => 'MediaWikin mainospoistaja',
+'spamprotectiontitle' => 'Roskalinkkien suodatin',
+'spamprotectiontext' => 'Roskalinkkien suodatin on estänyt sivun tallentamisen. Syynä on luultavasti mustalla listalla olevalle ulkopuoliselle sivustolle osoittava linkki.',
+'spamprotectionmatch' => 'Seuraava teksti aiheutti osuman roskalinkkien suodattimessa: $1',
+'spambot_username' => 'MediaWikin roskalinkkien puhdistaja',
 'spam_reverting' => 'Palautettu viimeisimpään versioon, joka ei sisällä linkkejä kohteeseen $1.',
 'spam_blanking' => 'Kaikki versiot sisälsivät linkkejä kohteeseen $1. Sivu tyhjennetty.',
-'spam_deleting' => 'Sivun poisto: kaikki versiot sisälsivät linkkejä palvelimeen $1',
+'spam_deleting' => 'Kaikki versiot sisälsivät linkkejä kohteeseen $1, poistetaan',
 
 # Info page
 'pageinfo-title' => 'Tietoja sivusta $1',
@@ -3918,7 +3919,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 'specialpages-group-pagetools' => 'Sivutyökalut',
 'specialpages-group-wiki' => 'Tiedot ja työkalut',
 'specialpages-group-redirects' => 'Ohjaavat toimintosivut',
-'specialpages-group-spam' => 'Mainostenpoistotyökalut',
+'specialpages-group-spam' => 'Roskalinkkien (spam) työkalut',
 
 # Special:BlankPage
 'blankpage' => 'Tyhjä sivu',
@@ -4107,9 +4108,9 @@ Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|sekunti|sekuntia}}',
 'limitreport-walltime' => 'Oikea ajankäyttö',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|sekunti|sekuntia}}',
-'limitreport-postexpandincludesize-value' => '$1/$2 tavua',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|tavu|tavua}}',
 'limitreport-templateargumentsize' => 'Mallineen argumenttien koko',
-'limitreport-templateargumentsize-value' => '$1/$2 tavua',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|tavu|tavua}}',
 'limitreport-expansiondepth' => 'Korkein laajennussyvyys',
 
 );
index a7a287f..d1afd7f 100644 (file)
@@ -655,8 +655,8 @@ $1",
 'privacypage' => 'Project:Confidentialité',
 
 'badaccess' => 'Erreur de permissions',
-'badaccess-group0' => "Vous n'avez pas les droits suffisants pour réaliser l'action demandée.",
-'badaccess-groups' => "L'action que vous essayez de réaliser n'est accessible qu'aux utilisateurs {{PLURAL:$2|du groupe|des groupes}} : $1.",
+'badaccess-group0' => 'Vous n’avez pas les droits suffisants pour réaliser l’action demandée.',
+'badaccess-groups' => 'L’action que vous essayez de réaliser n’est permise qu’aux utilisateurs {{PLURAL:$2|du groupe|des groupes}} : $1.',
 
 'versionrequired' => 'Version $1 de MediaWiki nécessaire',
 'versionrequiredtext' => 'La version $1 de MediaWiki est nécessaire pour utiliser cette page. Consultez [[Special:Version|la page des versions]]',
@@ -754,14 +754,14 @@ Veuillez le signaler à un [[Special:ListUsers/sysop|administrateur]] sans oubli
 'unexpected' => 'Valeur inattendue : « $1 » = « $2 ».',
 'formerror' => 'Erreur : Impossible de soumettre le formulaire.',
 'badarticleerror' => 'Cette action ne peut pas être effectuée sur cette page.',
-'cannotdelete' => "Impossible de supprimer la page ou le fichier « $1 ».
-La suppression a peut-être déjà été effectuée par quelqu'un d'autre.",
+'cannotdelete' => 'Impossible de supprimer la page ou le fichier « $1 ».
+La suppression a peut-être déjà été effectuée par quelqu’un d’autre.',
 'cannotdelete-title' => 'Impossible de supprimer la page « $1 »',
 'delete-hook-aborted' => "Suppression annulée par une extension.
 Aucune explication n'a été fournie.",
 'no-null-revision' => 'Impossible de créer une nouvelle révision vide pour la page « $1 »',
 'badtitle' => 'Mauvais titre',
-'badtitletext' => "Le titre de la page demandée est invalide, vide, ou il s'agit d'un titre inter-langue ou inter-projet mal lié. Il contient peut-être un ou plusieurs caractères qui ne peuvent pas être utilisés dans les titres.",
+'badtitletext' => 'Le titre de la page demandée est invalide, vide, ou il s’agit d’un titre inter-langue ou inter-projet mal formé. Il contient peut-être un ou plusieurs caractères qui ne peuvent pas être utilisés dans les titres.',
 'perfcached' => 'Les données suivantes sont en cache et peuvent ne pas être à jour. Un maximum de {{PLURAL:$1|un résultat|$1 résultats}} est disponible dans le cache.',
 'perfcachedts' => 'Les données suivantes sont en cache et ont été mises à jour pour la dernière fois à $1. Un maximum de {{PLURAL:$4|un résultat|$4 résultats}} est disponible dans le cache.',
 'querypage-no-updates' => 'Les mises à jour pour cette page sont actuellement désactivées. Les données ci-dessous ne sont pas mises à jour.',
@@ -780,8 +780,8 @@ Essayez à nouveau dans quelques minutes.",
 Pour ajouter ou modifier des traductions sur tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet de localisation de MediaWiki.",
 'editinginterface' => "'''Attention''' : vous êtes en train de modifier une page utilisée pour créer le texte de l’interface du logiciel. Les changements sur cette page se répercuteront sur l’apparence de l’interface utilisateur pour les autres utilisateurs de ce wiki.
 Pour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet d’internationalisation de MediaWiki.",
-'cascadeprotected' => "Cette page est protégée car elle est incluse par {{PLURAL:$1|la page suivante, qui a été protégée|les pages suivantes, qui ont été protégées}} avec l'option « protection en cascade » activée :
-$2",
+'cascadeprotected' => 'Cette page est protégée car elle est incluse par {{PLURAL:$1|la page suivante, qui a été protégée|les pages suivantes, qui ont été protégées}} avec l’option « protection en cascade » activée :
+$2',
 'namespaceprotected' => "Vous n'avez pas la permission de modifier les pages de l'espace de noms « '''$1''' ».",
 'customcssprotected' => "Vous n'avez pas la permission de modifier cette page de CSS, car elle contient les paramètres personnels d'un autre utilisateur.",
 'customjsprotected' => "Vous n'avez pas la permission de modifier cette page de JavaScript, car elle contient les paramètres personnels d'un autre utilisateur.",
@@ -854,7 +854,7 @@ N'oubliez pas de modifier [[Special:Preferences|vos préférences pour {{SITENAM
 'createacct-emailoptional' => 'Adresse de courriel (facultative)',
 'createacct-email-ph' => 'Entrez votre adresse de courriel',
 'createacct-another-email-ph' => 'Saisir l’adresse de courriel',
-'createaccountmail' => "Utiliser un mot de passe aléatoire temporaire et l'envoyer à l'adresse de courriel spécifiée",
+'createaccountmail' => 'Utiliser un mot de passe aléatoire temporaire et l’envoyer à l’adresse de courriel spécifiée',
 'createacct-realname' => 'Nom réel (facultatif)',
 'createaccountreason' => 'Motif :',
 'createacct-reason' => 'Motif',
@@ -922,11 +922,11 @@ Entrez une adresse bien formatée ou laissez ce champ vide.',
 'emaildisabled' => 'Ce site ne peut pas envoyer de courriels.',
 'accountcreated' => 'Compte créé',
 'accountcreatedtext' => 'Le compte utilisateur pour [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussion]]) a été créé.',
-'createaccount-title' => "Création d'un compte pour {{SITENAME}}",
-'createaccount-text' => "Quelqu'un a créé un compte pour votre adresse de courriel sur {{SITENAME}} ($4) intitulé « $2 », avec le mot de passe « $3 ».
+'createaccount-title' => 'Création d’un compte pour {{SITENAME}}',
+'createaccount-text' => 'Quelqu’un a créé un compte pour votre adresse de courriel sur {{SITENAME}} ($4) intitulé « $2 », avec le mot de passe « $3 ».
 Vous devriez ouvrir une session et modifier dès à présent votre mot de passe.
 
-Ignorez ce message si ce compte a été créé par erreur.",
+Ignorez ce message si ce compte a été créé par erreur.',
 'usernamehasherror' => "Le nom d'utilisateur ne peut pas contenir des caractères de hachage",
 'login-throttled' => "Vous avez tenté un trop grand nombre de connexions dernièrement.
 Veuillez attendre $1 avant d'essayer à nouveau.",
@@ -990,15 +990,15 @@ Mot de passe temporaire : $2",
 'passwordreset-emailerror-capture' => "Un courriel de réinitialisation de mot de passe a été généré, qui est affiché ci-dessous, mais l'envoi à l'{{GENDER:$2|utilisateur}} a échoué : $1",
 
 # Special:ChangeEmail
-'changeemail' => "Changer l'adresse de courriel",
-'changeemail-header' => "Changer l'adresse de courriel du compte",
+'changeemail' => 'Changer l’adresse de courriel',
+'changeemail-header' => 'Changer l’adresse de courriel du compte',
 'changeemail-text' => 'Remplissez ce formulaire pour changer votre adresse de courriel. Vous devrez entrer votre mot de passe pour confirmer ce changement.',
 'changeemail-no-info' => 'Vous devez être connecté pour pouvoir accéder directement à cette page.',
 'changeemail-oldemail' => 'Adresse de courriel actuelle :',
 'changeemail-newemail' => 'Nouvelle adresse de courriel :',
 'changeemail-none' => '(aucune)',
 'changeemail-password' => 'Votre mot de passe sur {{SITENAME}} :',
-'changeemail-submit' => "Changer l'adresse de courriel",
+'changeemail-submit' => 'Changer l’adresse de courriel',
 'changeemail-cancel' => 'Annuler',
 
 # Special:ResetTokens
@@ -1053,7 +1053,7 @@ Si vous cliquez de nouveau sur le bouton « {{int:savearticle}} », la publicati
 Si vous cliquez de nouveau sur « {{int:Savearticle}} », votre modification sera enregistrée sans titre.",
 'summary-preview' => 'Aperçu du résumé :',
 'subject-preview' => 'Prévisualisation du sujet/titre :',
-'blockedtitle' => "L'utilisateur est bloqué.",
+'blockedtitle' => 'L’utilisateur est bloqué.',
 'blockedtext' => "'''Votre compte utilisateur ou votre adresse IP a été bloqué.'''
 
 Le blocage a été effectué par $1.
@@ -1064,7 +1064,7 @@ La raison invoquée est la suivante : ''$2''.
 * Compte bloqué : $7.
 
 Vous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.
-Vous ne pouvez utiliser la fonction « {{MediaWiki:emailpage}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que cette fonctionnalité n'a pas été bloquée.
+Vous ne pouvez utiliser la fonction « {{MediaWiki:emailpage}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.
 Votre adresse IP actuelle est $3 et votre identifiant de blocage est $5.
 Veuillez préciser ces indications dans toutes les requêtes que vous ferez.",
 'autoblockedtext' => "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.
@@ -1076,9 +1076,9 @@ La raison invoquée est :
 * Expiration du blocage : $6
 * Compte bloqué : $7
 
-Vous pouvez contacter $1 ou l'un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.
+Vous pouvez contacter $1 ou lun des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.
 
-Notez que vous ne pourrez utiliser la fonctionnalité d'envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que la fonctionnalité n'a pas été désactivée.
+Notez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été désactivée.
 
 Votre adresse IP actuelle est $3, et le numéro de blocage est $5.
 Veuillez préciser ces indications dans toutes les requêtes que vous ferez.",
@@ -1113,8 +1113,8 @@ Cela survient en général en suivant un lien historique obsolète vers une page
 Vous pouvez trouver plus de détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
 'userpage-userdoesnotexist' => "Le compte utilisateur « <nowiki>$1</nowiki> » n'est pas enregistré. Veuillez vérifier que vous voulez créer cette page.",
 'userpage-userdoesnotexist-view' => "Le compte utilisateur « $1 » n'est pas enregistré.",
-'blocked-notice-logextract' => "Cet utilisateur est actuellement bloqué.
-La dernière entrée du journal des blocages est indiquée ci-dessous à titre d'information :",
+'blocked-notice-logextract' => 'Cet utilisateur est actuellement bloqué.
+La dernière entrée du journal des blocages est indiquée ci-dessous à titre d’information :',
 'clearyourcache' => "'''Note :''' après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
 * '''Firefox / Safari :''' Maintenez la touche ''Maj'' (''Shift'') en cliquant sur le bouton ''Actualiser'' ou pressez ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' sur un Mac) ;
 * '''Google Chrome :''' Appuyez sur ''Ctrl-Maj-R'' (''⌘-Shift-R'' sur un Mac) ;
@@ -1166,11 +1166,11 @@ Une solution de rechange a été trouvée pour vous permettre de modifier en tou
 'editingold' => "'''Attention : vous êtes en train de modifier une ancienne version de cette page.
 Si vous la publiez, toutes les modifications effectuées depuis cette version seront perdues.'''",
 'yourdiff' => 'Différences',
-'copyrightwarning' => "Toutes les contributions à {{SITENAME}} sont considérées comme publiées sous les termes de la $2 (voir $1 pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br />
-Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l'avez copié d'une source provenant du domaine public, ou d'une ressource libre. '''N'UTILISEZ PAS DE TRAVAUX SOUS DROIT D'AUTEUR SANS AUTORISATION EXPRESSE !'''",
-'copyrightwarning2' => "Toutes les contributions à {{SITENAME}} peuvent être modifiées ou supprimées par d'autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br />
-Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l'avez copié d'une source provenant du domaine public, ou d'une ressource libre. (voir $1 pour plus de détails).
-'''N'UTILISEZ PAS DE TRAVAUX SOUS DROIT D'AUTEUR SANS AUTORISATION EXPRESSE !'''",
+'copyrightwarning' => "Toutes les contributions à {{SITENAME}} sont considérées comme publiées sous les termes de la $2 (voir $1 pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br 
+/>Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. '''N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !'''",
+'copyrightwarning2' => "Toutes les contributions à {{SITENAME}} peuvent être modifiées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br 
+/>Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. (voir $1 pour plus de détails).
+'''N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !'''",
 'longpageerror' => "'''Erreur: Le texte que vous avez soumis fait {{PLURAL:$1|un Kio|$1 Kio}}, ce qui dépasse la limite fixée à {{PLURAL:$2|un Kio|$2 Kio}}.'''
 Il ne peut pas être sauvegardé.",
 'readonlywarning' => "'''AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour l’instant.'''
@@ -1180,7 +1180,7 @@ L’administrateur ayant verrouillé la base de données a donné l’explicatio
 'protectedpagewarning' => "'''AVERTISSEMENT : cette page est protégée. Seuls les utilisateurs ayant le statut d'administrateur peuvent la modifier.'''<br />
 La dernière entrée du journal est affichée ci-dessous pour référence :",
 'semiprotectedpagewarning' => "'''Note :''' Cette page a été protégée de telle façon que seuls les contributeurs enregistrés puissent la modifier. La dernière entrée du journal est affichée ci-dessous pour référence :",
-'cascadeprotectedwarning' => "'''ATTENTION :''' Cette page a été protégée de manière à ce que seuls les administrateurs puissent l'éditer. Cette protection est héritée par son inclusion par {{PLURAL:$1|la page protégée suivante, qui a|les pages protégées suivantes, qui ont}} la « protection en cascade » activée :",
+'cascadeprotectedwarning' => "'''ATTENTION :''' Cette page a été protégée de manière à ce que seuls les administrateurs puissent la modifier. Cette protection est héritée par son inclusion par {{PLURAL:$1|la page protégée suivante, qui a|les pages protégées suivantes, qui ont}} la « protection en cascade » activée :",
 'titleprotectedwarning' => "'''ATTENTION : Cette page a été protégée de telle manière que des [[Special:ListGroupRights|droits spécifiques]] sont requis pour pouvoir la créer.''' La dernière entrée du journal est affichée ci-dessous pour référence :",
 'templatesused' => '{{PLURAL:$1|Modèle utilisé|Modèles utilisés}} par cette page :',
 'templatesusedpreview' => '{{PLURAL:$1|Modèle utilisé|Modèles utilisés}} dans cette prévisualisation :',
@@ -1212,9 +1212,9 @@ Il semble qu'elle ait été supprimée.",
 'edit-already-exists' => "La nouvelle page n'a pas pu être créée.
 Elle existe déjà.",
 'defaultmessagetext' => 'Message par défaut',
-'content-failed-to-parse' => "Échec de l'analyse du contenu de $2 pour le modèle $1: $3",
+'content-failed-to-parse' => 'Échec de l’analyse syntaxique du contenu de $2 pour le modèle $1: $3',
 'invalid-content-data' => 'Données du contenu non valides',
-'content-not-allowed-here' => 'Le contenu "$1" n\'est pas autorisé sur la page [[$2]]',
+'content-not-allowed-here' => 'Le contenu « $1 » n’est pas autorisé sur la page [[$2]]',
 'editwarning-warning' => 'Quitter cette page vous fera perdre toutes les modifications que vous avez faites.
 Si vous êtes connecté, vous pouvez désactiver cet avertissement dans la section « Modification » de vos préférences.',
 
@@ -1773,8 +1773,8 @@ Cette information sera publique.',
 'action-block' => 'bloquer en écriture cet utilisateur',
 'action-protect' => 'modifier les niveaux de protection pour cette page',
 'action-rollback' => 'annuler rapidement les modifications du dernier utilisateur qui a modifié une page donnée',
-'action-import' => "importer cette page à partir d'un autre wiki",
-'action-importupload' => "importer cette page à partir d'un fichier",
+'action-import' => 'importer des pages depuis un autre wiki',
+'action-importupload' => 'importer des pages depuis un fichier téléchargé',
 'action-patrol' => 'marquer la modification des autres comme relue',
 'action-autopatrol' => 'avoir votre modification marquée comme relue',
 'action-unwatchedpages' => 'voir la liste des pages non suivies',
@@ -1988,29 +1988,29 @@ Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]
 # File backend
 'backend-fail-stream' => 'Impossible de lire le fichier $1.',
 'backend-fail-backup' => 'Impossible de sauvegarder le fichier $1.',
-'backend-fail-notexists' => "Le fichier $1 n'existe pas.",
-'backend-fail-hashes' => "Impossible d'obtenir les hachages du fichier pour comparaison.",
+'backend-fail-notexists' => 'Le fichier $1 n’existe pas.',
+'backend-fail-hashes' => 'Impossible d’obtenir les hachages du fichier pour comparaison.',
 'backend-fail-notsame' => 'Un fichier différent existe déjà pour $1 .',
-'backend-fail-invalidpath' => "$1 n'est pas un chemin de stockage valide.",
+'backend-fail-invalidpath' => '$1 n’est pas un chemin de stockage valide.',
 'backend-fail-delete' => 'Impossible de supprimer le fichier $1.',
 'backend-fail-describe' => 'Impossible de modifier les métadonnées du fichier "$1".',
 'backend-fail-alreadyexists' => 'Le fichier $1 existe déjà.',
 'backend-fail-store' => 'Impossible de stocker le fichier $1 en $2.',
 'backend-fail-copy' => 'Impossible de copier le fichier $1 en $2.',
 'backend-fail-move' => 'Impossible de déplacer le fichier $1 en $2.',
-'backend-fail-opentemp' => "Impossible d'ouvrir le fichier temporaire.",
-'backend-fail-writetemp' => "Impossible d'écrire dans le fichier temporaire.",
+'backend-fail-opentemp' => 'Impossible d’ouvrir le fichier temporaire.',
+'backend-fail-writetemp' => 'Impossible d’écrire dans le fichier temporaire.',
 'backend-fail-closetemp' => 'Impossible de fermer le fichier temporaire.',
 'backend-fail-read' => 'Impossible de lire le fichier $1.',
-'backend-fail-create' => "Impossible d'écrire le fichier $1.",
-'backend-fail-maxsize' => "Impossible d'écrire le fichier $1 parce qu'il est plus grand {{PLURAL:$2|qu'un octet|que $2 octets}}.",
+'backend-fail-create' => 'Impossible d’écrire le fichier $1.',
+'backend-fail-maxsize' => 'Impossible d’écrire le fichier $1 parce qu’il est plus grand {{PLURAL:$2|qu’un octet|que $2 octets}}.',
 'backend-fail-readonly' => 'Le support de stockage "$1" est actuellement en lecture seule. La raison indiquée est: "$2"',
 'backend-fail-synced' => 'Le fichier "$1" est dans un état incohérent dans les supports de stockage internes',
 'backend-fail-connect' => 'Impossible de se connecter au support de stockage "$1".',
-'backend-fail-internal' => 'Une erreur inconnue s\'est produite dans le support de stockage "$1".',
+'backend-fail-internal' => 'Une erreur inconnue sest produite dans le support de stockage "$1".',
 'backend-fail-contenttype' => 'Impossible de déterminer le type de contenu du fichier à stocker en "$1".',
 'backend-fail-batchsize' => 'Le support de stockage a fourni un lot de $1 {{PLURAL:$1|opération|opérations}} de fichier; la limite est $2 {{PLURAL:$2|opération|opérations}}.',
-'backend-fail-usable' => "Impossible de lire ou d'écrire le fichier « $1 » en raison de droits insuffisants ou répertoires/conteneurs manquants.",
+'backend-fail-usable' => 'Impossible de lire ou d’écrire le fichier « $1 » en raison de droits insuffisants ou répertoires/conteneurs manquants.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Impossible de se connecter à la base de données du journal pour le terminal de stockage "$1".',
@@ -2313,6 +2313,7 @@ Les entrées <del>barrées</del> ont été résolues.',
 'listusers' => 'Liste des utilisateurs',
 'listusers-editsonly' => 'Ne montrer que les utilisateurs ayant au moins une contribution',
 'listusers-creationsort' => 'Trier par date de création',
+'listusers-desc' => 'Trier en ordre descendant',
 'usereditcount' => '$1 modification{{PLURAL:$1||s}}',
 'usercreated' => '{{GENDER:$3|Créé}} le $1 à $2',
 'newpages' => 'Nouvelles pages',
@@ -2337,8 +2338,8 @@ Veuillez noter que d'autres sites peuvent avoir un lien direct vers un fichier,
 'booksources-search-legend' => 'Rechercher parmi des ouvrages de référence',
 'booksources-isbn' => 'ISBN :',
 'booksources-go' => 'Lister',
-'booksources-text' => "Voici une liste indicative et non exclusive de liens vers d'autres sites vendant des livres neufs et d'occasion et sur lesquels vous trouverez peut-être des informations sur les ouvrages que vous cherchez :",
-'booksources-invalid-isbn' => "L'ISBN donné ne semble pas être correct ; vérifiez si vous avez fait une erreur en copiant la source originale.",
+'booksources-text' => 'Voici une liste indicative de liens vers d’autres sites vendant des livres neufs et d’occasion et sur lesquels vous trouverez peut-être des informations sur les ouvrages que vous cherchez :',
+'booksources-invalid-isbn' => 'L’ISBN donné ne semble pas être correct ; vérifiez si vous avez fait une erreur en copiant la source originale.',
 
 # Special:Log
 'specialloguserlabel' => 'Auteur :',
@@ -2370,7 +2371,7 @@ Vous pouvez personnaliser l'affichage en sélectionnant le type de journal, le n
 'allpages-hide-redirects' => 'Masquer les redirections',
 
 # SpecialCachedPage
-'cachedspecial-viewing-cached-ttl' => "Vous visualisez une version de cette page mise en cache, qui peut être dater d'au plus $1.",
+'cachedspecial-viewing-cached-ttl' => 'Vous visualisez une version de cette page mise en cache, qui peut être datée d’au plus $1.',
 'cachedspecial-viewing-cached-ts' => 'Vous visualisez une version de cette page mise en cache, qui pourrait ne pas être complètement à jour.',
 'cachedspecial-refresh-now' => 'Voir le plus récent.',
 
@@ -2561,7 +2562,7 @@ Retour et assistance :
 'delete-confirm' => 'Supprimer « $1 »',
 'delete-legend' => 'Supprimer',
 'historywarning' => "'''Attention :''' la page que vous êtes sur le point de supprimer a un historique avec environ $1 {{PLURAL:$1|version|versions}} :",
-'confirmdeletetext' => "Vous êtes sur le point de supprimer une page ou un fichier, ainsi que toutes ses versions antérieures historisées. Veuillez confirmer que c'est bien là ce que vous voulez faire, que vous en comprenez les conséquences et que vous faites ceci en accord avec les [[{{MediaWiki:Policy-url}}|règles internes]].",
+'confirmdeletetext' => 'Vous êtes sur le point de supprimer une page ou un fichier, ainsi que toutes ses versions antérieures historisées. Veuillez confirmer que c’est bien là ce que vous voulez faire, que vous en comprenez les conséquences et que vous faites ceci en accord avec les [[{{MediaWiki:Policy-url}}|règles internes]].',
 'actioncomplete' => 'Action effectuée',
 'actionfailed' => "L'action a échoué",
 'deletedtext' => '« $1 » a été supprimée.
@@ -2599,7 +2600,7 @@ quelqu'un d'autre a déjà modifié ou révoqué la page.
 La dernière modification de la page a été effectuée par [[User:$3|$3]] ([[User talk:$3|Discuter]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
 'editcomment' => "Le résumé de la modification était : « ''$1'' ».",
 'revertpage' => 'Révocation des modifications de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussion]]) vers la dernière version de [[User:$1|$1]]',
-'revertpage-nouser' => 'Révocation des modifications par un utilisateur masqué à la dernière version par [[User:$1|$1]]',
+'revertpage-nouser' => 'Révocation des modifications par un utilisateur masqué à la dernière version par {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Révocation des modifications effectuées par $1 ;
 rétablissement de la dernière version par $2.',
 
@@ -2741,8 +2742,8 @@ $1',
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => "Contributions de l'{{GENDER:$1|utilisateur|utilisatrice}}",
-'contributions-title' => "Liste des contributions de l'utilisateur $1",
+'contributions' => 'Contributions de l’{{GENDER:$1|utilisateur|utilisatrice}}',
+'contributions-title' => 'Liste des contributions de l’utilisat{{GENDER:$1|eur|rice|eur}} $1',
 'mycontris' => 'Contributions',
 'contribsub2' => 'Pour $1 ($2)',
 'nocontribs' => "Aucune modification correspondant à ces critères n'a été trouvée.",
@@ -2788,14 +2789,14 @@ La dernière entrée du journal des blocages est indiquée ci-dessous à titre d
 
 # Block/unblock
 'autoblockid' => 'Blocage automatique #$1',
-'block' => "Bloquer l'utilisateur",
+'block' => 'Bloquer l’utilisateur',
 'unblock' => "Débloquer l'utilisateur",
-'blockip' => "Bloquer l'utilisateur",
-'blockip-title' => "Bloquer l'utilisateur",
-'blockip-legend' => "Bloquer l'utilisateur",
-'blockiptext' => "Utilisez le formulaire ci-dessous pour bloquer l'accès aux modifications faites à partir d'une adresse IP spécifique ou d'un nom d'utilisateur.
+'blockip' => 'Bloquer l’utilisateur',
+'blockip-title' => 'Bloquer l’utilisateur',
+'blockip-legend' => 'Bloquer l’utilisateur',
+'blockiptext' => 'Utilisez le formulaire ci-dessous pour bloquer les tentatives de modification faites à partir d’une adresse IP spécifique ou d’un nom d’utilisateur.
 Une telle mesure ne devrait être prise que pour prévenir le vandalisme et en accord avec les [[{{MediaWiki:Policy-url}}|règles internes]].
-Donnez ci-dessous un motif précis (par exemple en citant les pages qui ont été vandalisées).",
+Donnez ci-dessous un motif précis (par exemple en citant les pages qui ont été vandalisées).',
 'ipadressorusername' => "Adresse IP ou nom d'utilisateur :",
 'ipbexpiry' => 'Durée avant expiration :',
 'ipbreason' => 'Motif :',
@@ -2844,11 +2845,11 @@ Consultez la [[Special:BlockList|liste des blocages]] pour revoir les blocages.'
 'ipblocklist-legend' => 'Chercher un utilisateur bloqué',
 'blocklist-userblocks' => 'Masquer les blocages de comptes',
 'blocklist-tempblocks' => 'Masquer les blocages temporaires',
-'blocklist-addressblocks' => "Masquer les blocages d'adresses IP uniques",
+'blocklist-addressblocks' => 'Masquer les blocages d’adresses IP uniques',
 'blocklist-rangeblocks' => 'Masquer les blocs de portée',
 'blocklist-timestamp' => 'Date et heure',
 'blocklist-target' => 'Cible',
-'blocklist-expiry' => "Date d'expiration",
+'blocklist-expiry' => 'Date d’expiration',
 'blocklist-by' => 'Administrateur ayant effectué le blocage',
 'blocklist-params' => 'Paramètres de blocage',
 'blocklist-reason' => 'Motif',
@@ -2876,9 +2877,9 @@ Le motif fourni pour le blocage de $1 est : « $2 ».',
 'blocklog-showsuppresslog' => 'Cet utilisateur a été bloqué et caché précédemment. Le journal des suppressions est disponible ci-dessous :',
 'blocklogentry' => 'a bloqué [[$1]] ; expiration : $2 $3',
 'reblock-logentry' => 'a modifié les paramètres du blocage de [[$1]] avec une expiration au $2 $3',
-'blocklogtext' => "Ceci est le journal des actions de blocages et déblocages d'utilisateurs.
+'blocklogtext' => 'Ceci est le journal des actions de blocage et déblocage d’utilisateurs.
 Les adresses IP automatiquement bloquées ne sont pas listées.
-Consultez la [[Special:BlockList|liste des blocages]] pour voir les bannissements et blocages effectivement en cours.",
+Consultez la [[Special:BlockList|liste des blocages]] pour voir les bannissements et blocages effectivement en cours.',
 'unblocklogentry' => 'a débloqué $1',
 'block-log-flags-anononly' => 'utilisateurs anonymes seulement',
 'block-log-flags-nocreate' => 'création de compte interdite',
@@ -2886,7 +2887,7 @@ Consultez la [[Special:BlockList|liste des blocages]] pour voir les bannissement
 'block-log-flags-noemail' => 'envoi de courriel interdit',
 'block-log-flags-nousertalk' => 'ne peut modifier sa propre page de discussion',
 'block-log-flags-angry-autoblock' => 'autoblocage amélioré activé',
-'block-log-flags-hiddenname' => "nom d'utilisateur caché",
+'block-log-flags-hiddenname' => 'nom d’utilisateur masqué',
 'range_block_disabled' => 'Le droit administrateur de créer des blocages de plages IP est désactivé.',
 'ipb_expiry_invalid' => "Durée d'expiration incorrecte.",
 'ipb_expiry_temp' => "Les blocages de noms d'utilisateurs cachés doivent être permanents.",
@@ -2911,8 +2912,8 @@ Veuillez contacter votre fournisseur d'accès Internet ou votre support techniqu
 'sorbs_create_account_reason' => 'Votre adresse IP est listée comme mandataire ouvert dans le DNSBL utilisé par {{SITENAME}}.
 Vous ne pouvez pas créer un compte.',
 'xffblockreason' => "Une adresse IP dans l'en-tête X-Forwarded-For, soit la vôtre ou celle d'un serveur proxy que vous utilisez, a été bloquée. La raison du blocage initial est : $1",
-'cant-block-while-blocked' => "Vous ne pouvez pas bloquer d'autres utilisateurs tant que vous êtes bloqué{{GENDER:||e|(e)}}.",
-'cant-see-hidden-user' => "L'utilisateur que vous tentez de bloquer a déjà été bloqué et masqué. N'ayant pas le droit ''hideuser'', vous ne pouvez pas voir ou modifier le blocage de cet utilisateur.",
+'cant-block-while-blocked' => 'Vous ne pouvez pas bloquer d’autres utilisateurs tant que vous êtes bloqué{{GENDER:||e|(e)}}.',
+'cant-see-hidden-user' => "L’utilisateur que vous tentez de bloquer a déjà été bloqué et masqué. N’ayant pas le droit ''hideuser'', vous ne pouvez pas voir ou modifier le blocage de cet utilisateur.",
 'ipbblocked' => "Vous ne pouvez pas bloquer ou débloquer d'autres utilisateurs, parce que vous êtes vous-même bloqué",
 'ipbnounblockself' => "Vous n'êtes pas autorisé à vous débloquer vous-même",
 
@@ -2968,8 +2969,8 @@ Dans ces cas-là, vous devrez renommer ou fusionner cette page de discussion man
 'movenologintext' => "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e|(e)}}]] avec un compte utilisateur enregistré et d'ancienneté suffisante.",
 'movenotallowed' => "Vous n'avez pas la permission de renommer les pages.",
 'movenotallowedfile' => "Vous n'avez pas la permission de renommer les fichiers.",
-'cant-move-user-page' => "Vous n'avez pas la permission de renommer les pages principales d'utilisateurs (en dehors de leurs sous-pages).",
-'cant-move-to-user-page' => "Vous n'avez pas la permission de renommer une page vers une page utilisateur (à l'exception d'une sous-page).",
+'cant-move-user-page' => 'Vous n’avez pas la permission de renommer les pages principales d’utilisateurs.',
+'cant-move-to-user-page' => 'Vous n’avez pas la permission de renommer une page vers une page utilisateur (à l’exception d’une sous-page).',
 'newtitle' => 'Vers le nouveau titre :',
 'move-watch' => 'Suivre les pages originale et nouvelle',
 'movepagebtn' => 'Renommer la page',
@@ -3415,10 +3416,10 @@ Si vous l'exécutez, votre système peut être compromis.",
 'yesterday-at' => 'Hier à $1',
 
 # Bad image list
-'bad_image_list' => "Le format est le suivant :
+'bad_image_list' => 'Le format est le suivant :
 
-Seules les listes d'énumération (commençant par *) sont prises en compte. Le premier lien d'une ligne doit être celui d'une mauvaise image.
-Les autres liens sur la même ligne sont considérés comme des exceptions, par exemple des pages sur lesquelles l'image peut apparaître.",
+Seules les listes d’énumération (commençant par *) sont prises en compte. Le premier lien d’une ligne doit être celui d’une mauvaise image.
+Les autres liens sur la même ligne sont considérés comme des exceptions, par exemple des pages sur lesquelles l’image peut apparaître.',
 
 # Metadata
 'metadata' => 'Métadonnées',
@@ -3643,6 +3644,9 @@ Les autres liens sur la même ligne sont considérés comme des exceptions, par
 'exif-planarconfiguration-1' => 'Données contiguës',
 'exif-planarconfiguration-2' => 'Données séparées',
 
+'exif-xyresolution-i' => '$1 ppp',
+'exif-xyresolution-c' => '$1 p/cm',
+
 'exif-colorspace-65535' => 'Non calibré',
 
 'exif-componentsconfiguration-0' => "N'existe pas",
@@ -3843,8 +3847,8 @@ Les autres liens sur la même ligne sont considérés comme des exceptions, par
 'limitall' => 'tous',
 
 # Email address confirmation
-'confirmemail' => "Confirmer l'adresse de courriel",
-'confirmemail_noemail' => "Vous n'avez pas défini une adresse de courriel valide dans vos [[Special:Preferences|préférences]].",
+'confirmemail' => 'Confirmer l’adresse de courriel',
+'confirmemail_noemail' => 'Vous n’avez pas défini une adresse de courriel valide dans vos [[Special:Preferences|préférences]].',
 'confirmemail_text' => 'Ce wiki nécessite la vérification de votre adresse de courriel avant de pouvoir utiliser toute fonction de messagerie.
 Utilisez le bouton ci-dessous pour envoyer un courriel de confirmation à votre adresse.
 Le courriel inclura un lien comportant un code à usage unique et limité dans le temps ;
@@ -3853,39 +3857,39 @@ chargez ce lien dans votre navigateur pour confirmer que votre adresse de courri
 si vous venez de créer votre compte, veuillez attendre quelques minutes que le courriel arrive avant de demander un nouveau code.',
 'confirmemail_send' => 'Envoyer un code de confirmation',
 'confirmemail_sent' => 'Courriel de confirmation envoyé',
-'confirmemail_oncreate' => "Un code de confirmation a été envoyé à votre adresse de courriel.
-Ce code n'est pas requis pour vous identifier sur ce wiki, mais vous devrez le fournir pour activer toute fonction de messagerie.",
-'confirmemail_sendfailed' => "{{SITENAME}} n'a pas pu vous envoyer le courriel de confirmation.
+'confirmemail_oncreate' => 'Un code de confirmation a été envoyé à votre adresse de courriel.
+Ce code n’est pas requis pour vous identifier sur ce wiki, mais vous devrez le fournir pour activer toute fonction de messagerie.',
+'confirmemail_sendfailed' => '{{SITENAME}} n’a pas pu vous envoyer le courriel de confirmation.
 Veuillez vérifiez que votre adresse de courriel ne comprend aucun caractère incorrect.
 
-Le programme d'envoi de courriel a retourné l'indication suivante : $1",
+Le programme d’envoi de courriel a retourné l’indication suivante : $1',
 'confirmemail_invalid' => 'Code de confirmation incorrect.
 Celui-ci a peut-être expiré.',
 'confirmemail_needlogin' => 'Vous devez vous $1 pour confirmer votre adresse de courriel.',
 'confirmemail_success' => 'Votre adresse de courriel a été confirmée.
 Vous pouvez maintenant vous [[Special:UserLogin|{{MediaWiki:Loginreqlink}}]] et profiter du wiki.',
 'confirmemail_loggedin' => 'Votre adresse de courriel est maintenant confirmée.',
-'confirmemail_error' => "Un problème est survenu lors de l'enregistrement de votre confirmation.",
-'confirmemail_subject' => "Confirmation d'adresse de courriel pour {{SITENAME}}",
-'confirmemail_body' => "Quelqu'un, probablement vous, à partir de l'adresse IP $1,
+'confirmemail_error' => 'Un problème est survenu lors de l’enregistrement de votre confirmation.',
+'confirmemail_subject' => 'Confirmation d’adresse de courriel pour {{SITENAME}}',
+'confirmemail_body' => 'Quelqu’un, probablement vous, à partir de l’adresse IP $1,
 a enregistré un compte « $2 » avec cette adresse de courriel
 sur le site {{SITENAME}}.
 
 Pour confirmer que ce compte vous appartient vraiment et afin
-d'activer les fonctions de messagerie sur {{SITENAME}},
+dactiver les fonctions de messagerie sur {{SITENAME}},
 veuillez suivre ce lien dans votre navigateur :
 
 $3
 
-Si vous n'avez *pas* enregistré ce compte, n'ouvrez pas ce lien ;
-vous pouvez suivre l'autre lien ci-dessous pour annuler la
+Si vous n’avez *pas* enregistré ce compte, n’ouvrez pas ce lien ;
+vous pouvez suivre lautre lien ci-dessous pour annuler la
 confirmation de votre adresse courriel :
 
 $5
 
-Ce code de confirmation expirera le $4.",
-'confirmemail_body_changed' => "Quelqu'un, probablement vous, à partir de l'adresse IP $1,
-a modifié l'adresse de courriel associée au compte « $2 » de {{SITENAME}}
+Ce code de confirmation expirera le $4.',
+'confirmemail_body_changed' => 'Quelqu’un, probablement vous, à partir de l’adresse IP $1,
+a modifié ladresse de courriel associée au compte « $2 » de {{SITENAME}}
 en cette adresse.
 
 Pour confirmer que ce compte vous appartient vraiment et afin
@@ -3894,13 +3898,13 @@ veuillez suivre ce lien dans votre navigateur :
 
 $3
 
-Si ce compte ne vous appartient *pas*, n'ouvrez pas ce lien ;
-vous pouvez suivre l'autre lien ci-dessous pour annuler la
+Si ce compte ne vous appartient *pas*, nouvrez pas ce lien ;
+vous pouvez suivre lautre lien ci-dessous pour annuler la
 confirmation de votre adresse courriel :
 
 $5
 
-Ce code de confirmation expirera le $4.",
+Ce code de confirmation expirera le $4.',
 'confirmemail_body_set' => 'Quelqu’un, probablement vous, depuis l’adresse IP $1, a modifié l’adresse de courriel du compte « $2 » en celle-ci sur {{SITENAME}}.
 
 Pour confirmer que ce compte vous appartient et réactiver les fonctions de courriel sur {{SITENAME}}, ouvrez ce lien dans votre navigateur Web :
@@ -3912,7 +3916,7 @@ Ce code de confirmation expirera le $4.
 Si le compte ne vous appartient *pas*, suivez plutôt ce lien pour annuler la confirmation de l’adresse de courriel :
 
 $5',
-'confirmemail_invalidated' => "Confirmation de l'adresse courriel annulée",
+'confirmemail_invalidated' => 'Confirmation de l’adresse courriel annulée',
 'invalidateemail' => "Annuler la confirmation de l'adresse de courriel",
 
 # Scary transclusion
@@ -3923,16 +3927,16 @@ $5',
 
 # Delete conflict
 'deletedwhileediting' => "'''Attention''' : cette page a été supprimée après que vous avez commencé à la modifier !",
-'confirmrecreate' => "L'utilisateur [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à l'éditer, pour le motif suivant :
+'confirmrecreate' => "L’utilisateur [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à la modifier, pour le motif suivant :
 : ''$2''
 Veuillez confirmer que vous désirez réellement recréer cette page.",
-'confirmrecreate-noreason' => "L'utilisateur [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à l'éditer. Veuillez confirmer que vous désirez réellement recréer cette page.",
+'confirmrecreate-noreason' => 'L’utilisateur [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à la modifier. Veuillez confirmer que vous désirez réellement recréer cette page.',
 'recreate' => 'Recréer',
 
 # action=purge
 'confirm_purge_button' => 'Confirmer',
 'confirm-purge-top' => 'Voulez-vous rafraîchir cette page (purger le cache) ?',
-'confirm-purge-bottom' => "Purger une page l'efface du cache de rendu et force sa dernière version à être régénérée et affichée.",
+'confirm-purge-bottom' => 'Purger une page l’efface du cache de rendu et force sa dernière version à être régénérée et affichée.',
 
 # action=watch/unwatch
 'confirm-watch-button' => 'Valider',
@@ -4192,9 +4196,9 @@ Vous devriez avoir reçu [{{SERVER}}{{SCRIPTPATH}}/COPYING une copie de la Licen
 'compare-rev1' => 'Version 1',
 'compare-rev2' => 'Version 2',
 'compare-submit' => 'Comparer',
-'compare-invalid-title' => "Le titre que vous avez spécifié n'est pas valide.",
-'compare-title-not-exists' => "Le titre que vous avez spécifié n'existe pas.",
-'compare-revision-not-exists' => "La révision que vous avez spécifié n'existe pas.",
+'compare-invalid-title' => 'Le titre que vous avez spécifié n’est pas valide.',
+'compare-title-not-exists' => 'Le titre que vous avez spécifié n’existe pas.',
+'compare-revision-not-exists' => 'La révision que vous avez spécifiée n’existe pas.',
 
 # Database error messages
 'dberr-header' => 'Ce wiki a un problème',
@@ -4346,9 +4350,9 @@ Sinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentai
 'limitreport-ppvisitednodes' => 'Nombre de nœuds de préprocesseur visités',
 'limitreport-ppgeneratednodes' => 'Nombre de nœuds de préprocesseur générés',
 'limitreport-postexpandincludesize' => 'Taille d’inclusion après expansion',
-'limitreport-postexpandincludesize-value' => '$1/$2 octets',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|octet|octets}}',
 'limitreport-templateargumentsize' => 'Taille de l’argument du modèle',
-'limitreport-templateargumentsize-value' => '$1/$2 octets',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|octet|octets}}',
 'limitreport-expansiondepth' => 'Plus grande profondeur d’expansion',
 'limitreport-expensivefunctioncount' => 'Nombre de fonctions d’analyse coûteuses',
 
index e7c49b0..5a110dd 100644 (file)
@@ -501,7 +501,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Acerca de {{SITENAME}}',
 'aboutpage' => 'Project:Acerca de',
-'copyright' => 'Todo o texto está dispoñible baixo $1.',
+'copyright' => 'Todo o contido está dispoñible baixo a licenza $1, agás que se indique o contrario.',
 'copyrightpage' => '{{ns:project}}:Dereitos de autor',
 'currentevents' => 'Actualidade',
 'currentevents-url' => 'Project:Actualidade',
@@ -1672,8 +1672,8 @@ Se escolle dalo utilizarase para atribuírlle o seu traballo.',
 'action-block' => 'bloquear o usuario fronte á edición',
 'action-protect' => 'cambiar o nivel de protección desta páxina',
 'action-rollback' => 'reverter rapidamente as edicións do último usuario que editou unha páxina en particular',
-'action-import' => 'importar esta páxina doutro wiki',
-'action-importupload' => 'importar esta páxina da carga dun ficheiro',
+'action-import' => 'importar páxinas doutro wiki',
+'action-importupload' => 'importar páxinas desde un ficheiro cargado',
 'action-patrol' => 'marcar a edición doutro como patrullada',
 'action-autopatrol' => 'marcar a súa edición como patrullada',
 'action-unwatchedpages' => 'ver a lista das páxinas non vixiadas',
@@ -2214,11 +2214,12 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'protectedpagestext' => 'As seguintes páxinas están protexidas fronte á edición ou traslado',
 'protectedpagesempty' => 'Actualmente non hai ningunha páxina protexida con eses parámetros.',
 'protectedtitles' => 'Títulos protexidos',
-'protectedtitlestext' => 'Os seguintes títulos están protexidos da creación',
+'protectedtitlestext' => 'Os seguintes títulos están protexidos fronte á creación',
 'protectedtitlesempty' => 'Actualmente non hai ningún título protexido con eses parámetros.',
 'listusers' => 'Lista de usuarios',
 'listusers-editsonly' => 'Mostrar só os usuarios con edicións',
 'listusers-creationsort' => 'Ordenar por data de creación',
+'listusers-desc' => 'Ordenar de xeito descendente',
 'usereditcount' => '$1 {{PLURAL:$1|edición|edicións}}',
 'usercreated' => '{{GENDER:$3|Creado|Creada}} o $1 ás $2',
 'newpages' => 'Páxinas novas',
@@ -2505,7 +2506,7 @@ proceda con coidado.',
 A última edición fíxoa [[User:$3|$3]] ([[User talk:$3|conversa]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "O resumo de edición foi: \"''\$1''\".",
 'revertpage' => 'Desfixéronse as edicións de [[Special:Contributions/$2|$2]] ([[User talk:$2|conversa]]); cambiado á última versión feita por [[User:$1|$1]]',
-'revertpage-nouser' => 'Desfixéronse as edicións dun usuario agochado; cambiado á última versión feita por [[User:$1|$1]]',
+'revertpage-nouser' => 'Desfixéronse as edicións dun usuario agochado; cambiado á última versión feita por {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Desfixéronse as edicións de $1;
 volveuse á última edición, feita por $2.',
 
@@ -4181,9 +4182,9 @@ En caso contrario, pode empregar o formulario sinxelo inferior. O seu comentario
 'limitreport-ppvisitednodes' => 'Número de nodos do preprocesador visitados',
 'limitreport-ppgeneratednodes' => 'Número de nodos do preprocesador xerados',
 'limitreport-postexpandincludesize' => 'Tamaño de inclusión logo da expansión',
-'limitreport-postexpandincludesize-value' => '$1/$2 bytes',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-templateargumentsize' => 'Tamaño dos argumentos do modelo',
-'limitreport-templateargumentsize-value' => '$1/$2 bytes',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth' => 'Máxima profundidade de expansión',
 'limitreport-expensivefunctioncount' => 'Número de funcións de análise custosas',
 
index daf33df..19e56df 100644 (file)
@@ -158,14 +158,14 @@ $messages = array(
 'tog-hidepatrolled' => 'હાલના સલામતી માટે કરવામાં આવેલાં થયેલા ફેરફારો છુપાવો.',
 'tog-newpageshidepatrolled' => 'નવાં પાનાંની યાદીમાંથી દેખરેખ હેઠળનાં પાનાં છુપાવો',
 'tog-extendwatchlist' => 'ધ્યાનસૂચિને વિસ્તૃત કરો જેથી,ફક્ત તાજેતરનાજ નહીં, બધા આનુષાંગિક ફેરફારો જોઇ શકાય',
-'tog-usenewrc' => 'તાજા ફેરફારોમાં અને ધ્યાનસૂચિમાં ફેરફારોને પાનાં અનુસાર જૂથમાં ગોઠવો (જાવાસ્ક્રીપ્ટ જરૂરી)',
+'tog-usenewrc' => 'તાજા ફેરફારોમાં અને ધ્યાનસૂચિમાં ફેરફારોને પાનાં અનુસાર જૂથમાં ગોઠવો',
 'tog-numberheadings' => 'મથાળાંઓને આપો-આપ ક્રમ (ઑટો નંબર) આપો',
 'tog-showtoolbar' => 'ફેરફાર માટેની ટૂલબાર બતાવો',
-'tog-editondblclick' => 'બà«\87 àªµàª\96ત àª\95à«\8dલિàª\95 àªªàª° પાનાંઓમાં ફેરફાર કરો',
+'tog-editondblclick' => 'બà«\87 àªµàª\96ત àª\95à«\8dલિàª\95 àª\95રà«\80 પાનાંઓમાં ફેરફાર કરો',
 'tog-editsection' => 'વિભાગોમાં [ફેરફાર કરો] કડી દ્વારા વિભાગીય ફેરફાર લાગુ કરો.',
-'tog-editsectiononrightclick' => 'વિભાગના મથાળાં ને રાઇટ ક્લિક દ્વારા ફેરફાર કરવાની રીત અપનાવો. (જાવાસ્ક્રિપ્ટ જરૂરી)',
+'tog-editsectiononrightclick' => 'વિભાગના મથાળાં ને રાઇટ ક્લિક દ્વારા ફેરફાર કરવાની રીત અપનાવો.',
 'tog-showtoc' => 'અનુક્રમણિકા દર્શાવો (૩થી વધુ પેટા-મથાળા વાળા લેખો માટે)',
-'tog-rememberpassword' => 'આ કમ્પ્યૂટર પર મારી લોગ-ઇન વિગતો યાદ રાખો (મહત્તમ $1 {{PLURAL:$1|દિવસ|દિવસ}} માટે)',
+'tog-rememberpassword' => 'આ કમ્પ્યૂટર પર મારી લોગ-ઇન વિગતો યાદ રાખો (મહત્તમ $1 {{PLURAL:$1|દિવસ|દિવસ}} માટે)',
 'tog-watchcreations' => 'મેં બનાવેલાં પાનાં અને અપલોડ કરેલી ફાઇલો મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-watchdefault' => 'હું ફેરફાર કરૂં તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-watchmoves' => 'હું ખસેડું તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
@@ -184,7 +184,7 @@ $messages = array(
 'tog-uselivepreview' => 'જીવંત પૂર્વદર્શન વાપરો (પ્રાયોગીક)',
 'tog-forceeditsummary' => "કોરો 'ફેરફાર સારાંશ' ઉમેરતા પહેલા મને ચેતવો",
 'tog-watchlisthideown' => "'મારી ધ્યાનસુચી'માં મે કરેલા ફેરફારો છુપાવો",
-'tog-watchlisthidebots' => 'ધà«\8dયાનસà«\81àª\9aિમાં બોટ દ્વારા થયેલા ફેરફાર સંતાડો.',
+'tog-watchlisthidebots' => 'ધà«\8dયાનસà«\81àª\9aà«\80માં બોટ દ્વારા થયેલા ફેરફાર સંતાડો.',
 'tog-watchlisthideminor' => "'મારી ધ્યાનસુચી'માં નાનાં ફેરફારો છુપાવો",
 'tog-watchlisthideliu' => 'લોગ થયેલા સભ્ય દ્વારા કરવામાં આવેલ ફેરફાર ધ્યાનસુચીમાં છુપાવો.',
 'tog-watchlisthideanons' => 'અજાણ્યાસભ્ય દ્વારા થયેલ ફેરફાર મારી ધ્યાનસુચીમાં છુપાવો.',
@@ -206,7 +206,7 @@ $messages = array(
 'editfont-default' => 'બ્રાઉઝરના સેટીંગ્સ પ્રમાણે',
 'editfont-monospace' => 'મોનોસ્પેસ્ડ ફોન્ટ',
 'editfont-sansserif' => 'સાન્સ-સેરિફ ફોન્ટ',
-'editfont-serif' => 'Serif font',
+'editfont-serif' => 'સેરિફ ફોન્ટ',
 
 # Dates
 'sunday' => 'રવિવાર',
@@ -249,8 +249,8 @@ $messages = array(
 'december-gen' => 'ડિસેમ્બર',
 'jan' => 'જાન્યુ',
 'feb' => 'ફેબ્રુ',
-'mar' => 'મા',
-'apr' => 'એપ્ર',
+'mar' => 'માર્ચ',
+'apr' => 'એપ્રિલ',
 'may' => 'મે',
 'jun' => 'જૂન',
 'jul' => 'જુલા',
@@ -359,7 +359,7 @@ $messages = array(
 'undelete_short' => 'હટાવેલ {{PLURAL:$1|એક ફેરફાર|$1 ફેરફારો}} પરત લાવો.',
 'viewdeleted_short' => '{{PLURAL:$1|ભૂંસી નાખેલો એક|ભૂંસી નાખેલા $1}} ફેરફાર જુઓ',
 'protect' => 'સુરક્ષિત કરો',
-'protect_change' => 'ફà«\87રફાર àª\95રો',
+'protect_change' => 'બદલો',
 'protectthispage' => 'આ પાનું સુરક્ષિત કરો.',
 'unprotect' => 'સુરક્ષા બદલો',
 'unprotectthispage' => 'આ પાનાનું સુરક્ષા  બદલો',
@@ -404,7 +404,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} વિષે',
 'aboutpage' => 'Project:વિષે',
-'copyright' => 'માહિતી $1 હેઠળ ઉપલબ્ધ છે.',
+'copyright' => 'àª\85લàª\97થà«\80 àª\89લà«\8dલà«\87àª\96 àª¨ àª\95રાયà«\8b àª¹à«\8bય àª¤à«\8dયાàª\82 àª¸à«\81ધà«\80 àª®àª¾àª¹àª¿àª¤à«\80 $1 àª¹à«\87ઠળ àª\89પલબà«\8dધ àª\9bà«\87.',
 'copyrightpage' => '{{ns:project}}:પ્રકાશનાધિકાર',
 'currentevents' => 'વર્તમાન ઘટનાઓ',
 'currentevents-url' => 'Project:વર્તમાન ઘટનાઓ',
@@ -732,7 +732,7 @@ $2',
 'resetpass-submit-cancel' => 'રદ કરો',
 'resetpass-wrong-oldpass' => 'અવૈધ હંગામે કે કાયમી ગુપ્તસંજ્ઞા.
 કદાચ તમે પહેલેથી સફળતા પૂર્વક તમારી ગુપ્ત સંજ્ઞા બદલી દીધી હોય કે નવી ગુપ્ત સંંજ્ઞામાટે વિનંતિ કરી હોય',
-'resetpass-temp-password' => 'àª\95ામàª\9aલાવ ગુપ્તસંજ્ઞા:',
+'resetpass-temp-password' => 'àª\95ામàª\9aલાàª\89 ગુપ્તસંજ્ઞા:',
 'resetpass-abort-generic' => 'વિસ્તારક વડે પાસવર્ડ બદલવાનું રોકી રખાયું છે.',
 
 # Special:PasswordReset
@@ -782,7 +782,7 @@ $2
 'resettokens-legend' => 'નિશાનીઓ ફરી ગોઠવો',
 'resettokens-tokens' => 'નિશાનીઓ:',
 'resettokens-token-label' => '$1 (હાલની કિંમત: $2)',
-'resettokens-watchlist-token' => 'ધ્યાનસૂચિ વેબ ફીડ નિશાની',
+'resettokens-watchlist-token' => '[[Special:Watchlist|તમારી ધ્યાનસૂચિના પાનામાં ફેરફાર ]]ની વેબ ફીડ (Atom/RSS) નિશાની',
 'resettokens-done' => 'નિશાનીઓ ફરી ગોઠવવામાં આવી.',
 'resettokens-resetbutton' => 'પસંદ કરેલ નિશાનીઓ ફરી ગોઠવો',
 
@@ -863,8 +863,7 @@ $2
 'loginreqlink' => 'પ્રવેશ કરો',
 'loginreqpagetext' => 'બીજા પાનાં જોવા માટે જરૂરી છે કે તમે $1.',
 'accmailtitle' => 'ગુપ્તસંજ્ઞા મોકલવામાં આવી છે.',
-'accmailtext' => "[[User talk:$1|$1]] માટે રચેલ ગુપ્તસંજ્ઞા $2 ને મોકલાવી દેવાઇ છે 
-આ નવા ખાતાનીગુપ્તસંજ્ઞા  ''[[Special:ChangePassword|change password]]'' વાપરીને પ્રવેશ કર્યા બાદ બદલી શકાશે.",
+'accmailtext' => "[[User talk:$1|$1]] માટે રચેલ ગુપ્તસંજ્ઞા $2 ને મોકલાવી દેવાઇ છે. આ નવા ખાતાનીગુપ્તસંજ્ઞા પ્રવેશ કર્યા બાદ ''[[Special:ChangePassword|ગુપ્તસંજ્ઞા બદલો]]'' વાપરીને બદલી શકાશે.",
 'newarticle' => '(નવીન)',
 'newarticletext' => "આપ જે કડીને અનુસરીને અહીં પહોંચ્યા છો તે પાનું અસ્તિત્વમાં નથી.
 <br />નવું પાનું બનાવવા માટે નીચે આપેલા ખાનામાં લખવાનું શરૂ કરો (વધુ માહિતિ માટે [[{{MediaWiki:Helppage}}|મદદ]] જુઓ).
@@ -990,6 +989,7 @@ $2
 તે પહેલેથી હાજર છે.',
 'defaultmessagetext' => 'મૂળભૂત સંદેશ લખાણ',
 'invalid-content-data' => 'અયોગ્ય વિગત માહિતી',
+'content-not-allowed-here' => '"$1" વિગત [[$2]] પાનાં પર માન્ય નથી',
 'editwarning-warning' => 'આ પાનું છોડી દેશો તો તમારા ફેરફારો સચવાશે નહીં.
 જો તમે પ્રવેશ કરેલો હોય તો તમે આ ચેતવણીને તમારી પસંદના "ફેરફાર" વિભાગના વિકલ્પો બદલીને બંધ કરી શકો છો.',
 
@@ -1301,8 +1301,8 @@ $1",
 'prefs-rendering' => 'દેખાવ',
 'saveprefs' => 'સાચવો',
 'resetprefs' => 'બીન સાચવેલ ફેરફારો સાફ કરો',
-'restoreprefs' => 'મૂળ વિકલ્પો ફરી ગોઠવો',
-'prefs-editing' => 'ફà«\87રફાર àª\9cારà«\80 àª\9bà«\87',
+'restoreprefs' => 'મૂળ વિકલ્પો ફરી ગોઠવો (બધાં વિભાગોમાં)',
+'prefs-editing' => 'સàª\82પાદન',
 'rows' => 'પંક્તિઓ',
 'columns' => 'સ્તંભ',
 'searchresultshead' => 'શોધો',
@@ -1362,7 +1362,8 @@ HTML નાકું ચકાસો',
 'gender-unknown' => 'હું વિગતો ન આપવાનું પસંદ કરું છું',
 'gender-male' => 'તેણે વિકિ પાનાંઓમાં ફેરફાર કર્યા',
 'gender-female' => 'તેણીએ વિકિ પાનાંઓમાં ફેરફાર કર્યા',
-'prefs-help-gender' => 'વૈકલ્પિક:  સોફ્ટવેર દ્વારા લિંગ  ઓળખ માટે વપરાયેલ .
+'prefs-help-gender' => 'આ પસંદગી ગોઠવવી વૈકલ્પિક છે.  
+સોફ્ટવેર આ વિગત આપને વ્યાકરણની રીતે લિંગ ઓળખ દ્વારા સંબોધવા માટે વાપરશે.
 આ માહિતી જન સમુદાય માટે જાહેર હશે.',
 'email' => 'ઇ-મેઇલ',
 'prefs-help-realname' => 'સાચું નામ મરજીયાત છે.
@@ -1410,7 +1411,7 @@ HTML નાકું ચકાસો',
 'userrights-no-interwiki' => 'અન્ય વિકિ પર અન્ય સભ્યો ના અધિકારો માં પરિવર્તન કરવાની તમને પરવાનગી નથી',
 'userrights-nodatabase' => 'માહિતીસંચ $1 અસ્તિત્વમાં નથી કે તે સ્થાનીય નથી.',
 'userrights-nologin' => 'સભ્યના અધિકારો આપવા તમે પ્રબંધક તરીકે પ્રવેશ  [[Special:UserLogin|log in]] કરેલ હોવો જરૂરી છે.',
-'userrights-notallowed' => 'તમારà«\81àª\82 àª\8fàª\95ાàª\89નà«\8dàª\9f àª\89મà«\87રà«\8b àª\95રવા àª\85થવા àªµàªªàª°àª¾àª¶àª\95રà«\8dતા àª\85ધિàª\95ારà«\8b દૂર કરવાની પરવાનગી નથી.',
+'userrights-notallowed' => 'તમનà«\87 àªµàªªàª°àª¾àª¶àª\95રà«\8dતા àª\85ધિàª\95ારà«\8b àª\89મà«\87રવા àª\95à«\87 દૂર કરવાની પરવાનગી નથી.',
 'userrights-changeable-col' => 'તમે બદલી શકો તેવા જૂથ',
 'userrights-unchangeable-col' => 'તમે બદલી ન શકો તેવા જૂથ',
 
@@ -1476,7 +1477,7 @@ HTML નાકું ચકાસો',
 'right-ipblock-exempt' => 'IP દ્વારા, સ્વયં ચાલિત રીતે અને સમૂહ રોકને અવગનીને આગળ વધો',
 'right-proxyunbannable' => 'અવેજીના અવયંચાલિત ખંડોને ટાળો',
 'right-unblockself' => 'તમને જાતે જ અપ્રતિબંધિત કરો',
-'right-protect' => 'સંરક્ષણ સ્તર બદલો અને સંરક્ષિત પાનાઓમાં ફેરફાર કરો.',
+'right-protect' => 'સàª\82રàª\95à«\8dષણ àª¸à«\8dતર àª¬àª¦àª²à«\8b àª\85નà«\87 àª§à«\8bધાàª\95ાર-સàª\82રàª\95à«\8dષિત àªªàª¾àª¨àª¾àª\93માàª\82 àª«à«\87રફાર àª\95રà«\8b.',
 'right-editprotected' => 'પાનામાં "{{int:protect-level-sysop}}" તરીકે ફેરફાર કરો',
 'right-editinterface' => 'સભ્ય સંભાષણ પટલમાં ફેરફાર કરો',
 'right-editusercssjs' => 'અન્ય સભ્યોની CSS અને JavaScript ફાઇલમાં ફેરફાર કરો',
@@ -1535,8 +1536,8 @@ HTML નાકું ચકાસો',
 'action-block' => 'આ સભ્ય દ્વારા થનાર ફેરફાર પ્રતિબંધીત કરો',
 'action-protect' => 'આ પાનાંનું પ્રતિબંધ સ્તર બદલો',
 'action-rollback' => 'ચોક્કસ પાનામાં જે છેલ્લા સભ્યએ ફેરફારો કર્યાં હોય તેને ઝડપથી ઉલટાવો',
-'action-import' => 'àª\85નà«\8dય àªµàª¿àª\95િ àªªàª°àª¥à«\80 àª\86 àªªàª¾àª¨à«\81àª\82 આયાત કરો',
-'action-importupload' => 'àª\9aઢાવà«\87લà«\80 àª«àª¾àª\87લ àªªàª°àª¥à«\80 àª\86 àªªàª¾àª¨à«\81àª\82 àª\86યાત àª\95રà«\8b.',
+'action-import' => 'àª\85નà«\8dય àªµàª¿àª\95િ àªªàª°àª¥à«\80 àªªàª¾àª¨àª¾àª\82àª\93 આયાત કરો',
+'action-importupload' => 'àª\9aઢાવà«\87લà«\80 àª«àª¾àª\87લ àªªàª°àª¥à«\80 àªªàª¾àª¨àª¾àª\82àª\93 àª\86યાત àª\95રà«\8b',
 'action-patrol' => 'અન્યો ના ફેરફારો નીરીક્ષીત અંકિત કરો',
 'action-autopatrol' => 'તમે તમારા ફેરફારો નીરીક્ષિત અંકિત કરો',
 'action-unwatchedpages' => 'ન જોવાતા પાનાની યાદી જુઓ',
@@ -1552,6 +1553,7 @@ HTML નાકું ચકાસો',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
+'enhancedrc-history' => 'ઇતિહાસ',
 'recentchanges' => 'તાજા ફેરફારો',
 'recentchanges-legend' => 'હાલમાં થયેલા ફેરફારોના વિકલ્પ',
 'recentchanges-summary' => 'વિકિમાં તાજેતરમાં થયેલા ફેરફારો પર અહિંથી નજર રાખો.',
@@ -1582,7 +1584,7 @@ HTML નાકું ચકાસો',
 'rc_categories_any' => 'કોઇ પણ',
 'rc-change-size-new' => 'બદલાયા પછી $1 {{PLURAL:$1|બાઈટ|બાઈટો}}',
 'newsectionsummary' => '/* $1 */ નવો વિભાગ',
-'rc-enhanced-expand' => 'વિગતો બતાવો (જાવા સ્ક્રિપ્ટ જરૂરી છે)',
+'rc-enhanced-expand' => 'વિગતો બતાવો',
 'rc-enhanced-hide' => 'વિગતો છુપાવો',
 
 # Recent changes linked
@@ -1835,8 +1837,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'upload_source_file' => '(તમારા કોમ્પ્યુટર પરની એક ફાઇલ)',
 
 # Special:ListFiles
-'listfiles-summary' => 'આ વિશિષ્ટ પાનું બધા અપલોડ કરાયેલ ફાઈલો બતાવે છે.
-જ્યારે વપરાશકર્તા દ્વારા ફિલ્ટર, માત્ર ફાઈલો જ્યાં તે વપરાશકર્તા ફાઈલ સૌથી તાજેતરનું વર્ઝન અપલોડ બતાવવામાં આવે છે.',
+'listfiles-summary' => 'આ વિશિષ્ટ પાનું બધી અપલોડ કરાયેલી ફાઈલો દર્શાવે છે.',
 'listfiles_search_for' => 'મિડિયા નામ શોધો:',
 'imgfile' => 'ફાઇલ',
 'listfiles' => 'ફાઇલોની યાદી',
@@ -1847,6 +1848,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'listfiles_size' => 'માપ',
 'listfiles_description' => 'વર્ણન',
 'listfiles_count' => 'આવૃત્તિ',
+'listfiles-latestversion' => 'વર્તમાન આવૃતિ',
+'listfiles-latestversion-yes' => 'હા',
+'listfiles-latestversion-no' => 'ના',
 
 # File description page
 'file-anchor-link' => 'ફાઇલ/દસ્તાવેજ',
@@ -2146,7 +2150,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'listgrouprights' => 'સભ્ય જૂથ ના હક્કો',
 'listgrouprights-summary' => 'નીચે આ વિકિ પર વ્યાખ્યાયિત સભ્ય જૂથોની યાદી, તેમની સાથે સંકળાયેલા હક્કો સાથે આપી છે.
 વ્યક્તિગત હક્કો માટે [[{{MediaWiki:Listgrouprights-helppage}}|વધારાની માહિતી]].',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">અધિકાર અપાયા</span>
+'listgrouprights-key' => 'Legend:
+* <span class="listgrouprights-granted">અધિકાર અપાયા</span>
 * <span class="listgrouprights-revoked">અધિકાર હટાવાયા</span>',
 'listgrouprights-group' => 'જૂથ',
 'listgrouprights-rights' => 'હક્કો',
@@ -2223,7 +2228,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'watchmethod-recent' => 'હાલમાં ફેરફાર થયેલ પાનાની ચકાસણી જારી',
 'watchmethod-list' => 'હાલમાં થયેલ ફેરફાર માટે નીરીક્ષીત પાના તપાસાય છે',
 'watchlistcontains' => 'તમારી ધ્યાનસૂચીમાં $1 {{PLURAL:$1|પાનું|પાનાં}} છે.',
-'iteminvalidname' => "વસà«\8dતà«\81 '$1' àª¸àª¾àª¥à«\87 àª\97ડબડ, અવૈધ નામ...",
+'iteminvalidname' => "વસà«\8dતà«\81 '$1' àª¸àª¾àª¥à«\87 àª¸àª®àª¸à«\8dયા, અવૈધ નામ...",
 'wlnote' => "નીચે $3, $4 વાગ્યા સુધીના છેલ્લા {{PLURAL:$2|એક કલાક|'''$2''' કલાક}}માં થયેલા {{PLURAL:$1|ફેરફાર|'''$1''' ફેરફારો }} દર્શાવ્યા છે.",
 'wlshowlast' => 'છેલ્લા $1 કલાક $2 દિવસ $3 બતાવો',
 'watchlist-options' => 'ધ્યાનસૂચિના વિકલ્પો',
@@ -2996,7 +3001,7 @@ $1',
 'pageinfo-robot-noindex' => 'અમાન્ય',
 'pageinfo-views' => 'જોનારાની સંખ્યા',
 'pageinfo-watchers' => 'પાના નીરીક્ષકોની સંખ્યા',
-'pageinfo-redirects-name' => 'àª\86 àªªàª¾àª¨àª¾àª\82 àªªàª° àªµàª¾àª³à«\8b',
+'pageinfo-redirects-name' => 'àª\86 àªªàª¾àª¨àª¾àª\82 àªªàª° àª¦àª¿àª¶àª¾àª¨àª¿àª°à«\8dદà«\87શનà«\8bનà«\80 àª¸àª\82àª\96à«\8dયા',
 'pageinfo-subpages-name' => 'આ પાનાંનું ઉપપાનું',
 'pageinfo-firstuser' => 'પૃષ્ઠ સર્જક',
 'pageinfo-firsttime' => 'પૃષ્ઠ સર્જનની તારીખ',
@@ -3005,9 +3010,12 @@ $1',
 'pageinfo-edits' => 'કુલ સંપાદનોની સંખ્યા',
 'pageinfo-authors' => 'ક્ષેત્રના લેખકોની કુલ સંખ્યા',
 'pageinfo-recent-edits' => 'તાજા ફેરફારોની સંખ્યા (છેલ્લા $1 દરમ્યાન)',
+'pageinfo-recent-authors' => 'અલગ અલગ લેખકોની કુલ સંખ્યા',
+'pageinfo-magic-words' => 'ચમત્કારી {{PLURAL:$1|શબ્દ|શબ્દો}} ($1)',
 'pageinfo-hidden-categories' => 'છુપી {{PLURAL:$1|શ્રેણી|શ્રેણીઓ}} ($1)',
 'pageinfo-templates' => 'પ્રયુક્ત {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}} ($1)',
 'pageinfo-toolboxlink' => 'પૃષ્ઠમાહિતી',
+'pageinfo-redirectsto' => 'તરફ દિશાનિર્દેશન',
 'pageinfo-redirectsto-info' => 'માહિતી',
 'pageinfo-contentpage-yes' => 'હા',
 'pageinfo-protect-cascading-yes' => 'હા',
@@ -3580,13 +3588,13 @@ $5
 
 આ પુષ્ટિ કોડ $4 સુધીજ કામમાં આવશે.',
 'confirmemail_body_set' => 'કોઇકે, કદાચ તમે પોતે જ , IP સરનામા  $1 પરથી,
-{{SITENAME}} પર "$2" ખાતાનું ઇ-મેલ સરનામું બદલ્યું છે.
+{{SITENAME}} પર "$2" ખાતાનું ઇમેલ સરનામું બદલ્યું છે.
 
-એ વાતની પુષ્ટિ કરવા માટે કે આ ઇ-મેલ ખાતું તમારું જ છે અને {{SITENAME}}ના ઇ-મેલ સંબંધિત વિકલ્પો સક્રીય કરવા માટે આપેલી કડીને તમારા બ્રાઉઝરમાં સક્રીય કરો:
+એ વાતની પુષ્ટિ કરવા માટે કે આ ઇમેલ ખાતું તમારું જ છે અને {{SITENAME}}ના ઇમેલ સંબંધિત વિકલ્પો સક્રીય કરવા માટે આપેલી કડીને તમારા બ્રાઉઝરમાં સક્રીય કરો:
 
 $3
 
-જો ખાતું તમારું ના હોય તો, આ કડીને અનુસરી ઈ-મેલ ખાતાની પુષ્ટિની નોંધણીને રદ કરો:
+જો ખાતું તમારું ના હોય તો, આ કડીને અનુસરી ઈમેલ ખાતાની પુષ્ટિની નોંધણીને રદ કરો:
 
 $5
 આ પુષ્ટિ કોડ  $4 સુધીજ કામમાં આવશે.',
@@ -3721,6 +3729,7 @@ $5
 # Special:Redirect
 'redirect-legend' => 'ફાઇલ અથવા પાનાં તરફ વાળો',
 'redirect-submit' => 'જાઓ',
+'redirect-lookup' => 'જુઓ:',
 'redirect-value' => 'કિંમત:',
 'redirect-user' => 'સભ્ય નામ',
 'redirect-revision' => 'પાનાંની આવૃત્તિ',
@@ -3798,8 +3807,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'આ વિકિમાં તકલીફ છે',
-'dberr-problems' => 'દિલગીરી!
-આ સાઇટ તકનિકી અડચણ અનુભવી રહી છે.',
+'dberr-problems' => 'દિલગીરી! આ સાઇટ તકનિકી અડચણ અનુભવી રહી છે.',
 'dberr-again' => 'થોડી વાર રાહ જોઈને ફરી પેજ લોડ કરવાનો પ્રયત્ન કરો.',
 'dberr-info' => '(માહિતી સંચય સર્વર : $1નો સંપર્ક નથી કરી શકાયો)',
 'dberr-usegoogle' => 'તેસમયા દરમ્યાન તમે ગુગલ દ્વારા શોધી શકો',
@@ -3846,9 +3854,9 @@ $5
 'revdelete-restricted' => 'પ્રબઁધકોના ફેરફાર કરવા પર પ્રતિબંધ મુકાયો',
 'revdelete-unrestricted' => 'પ્રબંધકોના ફેરફાર કરવા પર પ્રતિબંધ હટાવાયો.',
 'logentry-move-move' => '$1એ {{GENDER:$2|ખસેડાયું }} પાના $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-move-move-noredirect' => '$1 એ દિશાનિર્દેશન છોડ્યા વગર પાના $3ને $4 પર {{GENDER:$2|વાળ્યું}}',
+'logentry-move-move_redir' => '$1એ દિશાનિર્દેશન કરીને પાના $3ને $4 પર {{GENDER:$2|ખસેડ્યું}}',
+'logentry-move-move_redir-noredirect' => '$1એ દિશાનિર્દેશન કરીને પાના $3ને $4 પર {{GENDER:$2|વાળ્યું}} પણ પાછળ દિશાનિર્દેશન છોડ્યું નહી',
 'logentry-patrol-patrol' => '$1 આવૃત્તિ ચિહ્નિત થયેલ પાનાં $4 $3 ચોકી કરવા ફરવા નીકળવું',
 'logentry-patrol-patrol-auto' => '$1 આપોઆપ ચિહ્નિત ચોકી પહેરો કરવા લાગ્યા આવૃત્તિ પાનું $4 $3',
 'logentry-newusers-newusers' => 'સભ્ય ખાતું $1 {{GENDER:$2|બનાવવામાં આવ્યું}}',
@@ -3932,4 +3940,10 @@ $5
 # Image rotation
 'rotate-comment' => 'ચિત્ર $1 {{PLURAL:$1|ડિગ્રી|ડિગ્રીઓ}} ઘડિયાળની દિશામાં ફેરવવામાં આવ્યું',
 
+# Limit report
+'limitreport-cputime-value' => '$1 {{PLURAL:$1|સેકંડ|સેકંડો}}',
+'limitreport-walltime-value' => '$1 {{PLURAL:$1|સેકંડ|સેકંડો}}',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|બાઇટ|બાઇટ્સ}}',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|બાઇટ|બાઇટ્સ}}',
+
 );
index 530de57..3176244 100644 (file)
@@ -23,12 +23,12 @@ $messages = array(
 'tog-hidepatrolled' => '隱藏最近更改肚巡查過嘅編寫',
 'tog-newpageshidepatrolled' => '隱藏新頁面清單肚巡查過嘅頁面',
 'tog-extendwatchlist' => '展開監視列表來顯示所有更改,毋單淨係最近嘅',
-'tog-usenewrc' => '在最近更改與監視列表中整合同一頁嘅修改 (愛有JavaScript)',
+'tog-usenewrc' => '在最近更改和監視列表肚整合同一頁嘅修改',
 'tog-numberheadings' => '標題自動編號',
-'tog-showtoolbar' => '顯示編寫工具欄 (愛有JavaScript)',
-'tog-editondblclick' => '雙撳編寫頁面 (愛有JavaScript)',
+'tog-showtoolbar' => '展示編寫工具欄',
+'tog-editondblclick' => '雙撳編寫頁面',
 'tog-editsection' => '允許通過點撳[編寫]鏈接編寫段落',
-'tog-editsectiononrightclick' => '允許右撳標題編寫段落 (愛有JavaScript)',
+'tog-editsectiononrightclick' => '允許右撳標題編寫段落',
 'tog-showtoc' => '顯示目錄(針對一頁超過3隻標題嘅頁面)',
 'tog-rememberpassword' => '在邇隻瀏覽器記下亻厓嘅登入狀態(最多$1日)',
 'tog-watchcreations' => '加亻厓建立嘅頁面撈上傳嘅文件加入亻厓嘅監視列表',
@@ -46,7 +46,7 @@ $messages = array(
 'tog-shownumberswatching' => '展示監視中嘅使用人數目',
 'tog-oldsig' => '現有簽名:',
 'tog-fancysig' => '將簽名看做維基文字(毋會自動產生鏈接)',
-'tog-uselivepreview' => '使用即時預覽(愛有 JavaScript)(實驗中)',
+'tog-uselivepreview' => '使用即時預覽(實驗中)',
 'tog-forceeditsummary' => '還吂輸入編寫摘要時提醒亻厓',
 'tog-watchlisthideown' => '監視列表肚隱藏亻厓嘅編寫',
 'tog-watchlisthidebots' => '監視列表肚隱藏機器人嘅編寫',
@@ -59,6 +59,7 @@ $messages = array(
 'tog-showhiddencats' => '展示隱藏分類',
 'tog-norollbackdiff' => '执行回退後毋顯示差別',
 'tog-useeditwarning' => '當離開頁面之時變更還吂儲存,請提醒𠊎',
+'tog-prefershttps' => '登入時一直使用安全連線',
 
 'underline-always' => '總係使用',
 'underline-never' => '從來毋用',
@@ -122,6 +123,18 @@ $messages = array(
 'oct' => '10月',
 'nov' => '11月',
 'dec' => '12月',
+'january-date' => '1月$1日',
+'february-date' => '2月$1日',
+'march-date' => '3月$1日',
+'april-date' => '4月$1日',
+'may-date' => '5月$1日',
+'june-date' => '6月$1日',
+'july-date' => '7月$1日',
+'august-date' => '8月$1日',
+'september-date' => '9月$1日',
+'october-date' => '10月$1日',
+'november-date' => '11月$1日',
+'december-date' => '12月$1日',
 
 # Categories related messages
 'pagecategories' => '$1隻分類',
@@ -147,7 +160,7 @@ $messages = array(
 'newwindow' => '(在新視窗肚打開)',
 'cancel' => '取消',
 'moredotdotdot' => '還較多...',
-'morenotlisted' => '有較多還吂列出嘅項目...',
+'morenotlisted' => '邇列表吂完成。',
 'mypage' => '頁面',
 'mytalk' => '交流',
 'anontalk' => '本IP地址嘅交流',
@@ -203,6 +216,7 @@ $messages = array(
 'create-this-page' => '建立本頁',
 'delete' => '刪除',
 'deletethispage' => '刪除本頁',
+'undeletethispage' => '取消刪除邇頁',
 'undelete_short' => '恢復$1隻分删除嘅编寫',
 'viewdeleted_short' => '查看$1項已刪除嘅修訂',
 'protect' => '保護',
@@ -247,7 +261,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '關於 {{SITENAME}}',
 'aboutpage' => 'Project:關於',
-'copyright' => '本站內容使用$1條款授權。',
+'copyright' => '除非另有講明,否則本站內容都係以$1條款提供。',
 'copyrightpage' => '{{ns:project}}:版權信息',
 'currentevents' => '新聞動態',
 'currentevents-url' => 'Project:新聞動態',
@@ -331,6 +345,8 @@ $1',
 # General errors
 'error' => '差錯',
 'databaseerror' => '數據庫差錯',
+'databaseerror-text' => '出現資料庫查詢錯誤。
+邇可能表示軟件肚存在錯誤。',
 'laggedslavemode' => "'''警告:'''頁面可能毋包含最近嘅更新。",
 'readonly' => '數據庫分人鎖定',
 'enterlockreason' => '請撳入禁止訪問原因, 包括估計重新開放嘅時間',
index 5f4b120..9500b3c 100644 (file)
@@ -609,7 +609,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'אודות {{SITENAME}}',
 'aboutpage' => 'Project:אודות',
-'copyright' => '×\94ת×\95×\9b×\9f ×\9e×\95×\92ש ×\91×\9bפ×\95×£ ×\9cÖ¾$1.<br /> ×\91×¢×\9c×\99 ×\96×\9b×\95×\99×\95ת ×\94×\99×\95צר×\99×\9d ×\9eפ×\95ר×\98×\99×\9d ×\91×\94×\99ס×\98×\95ר×\99×\99ת ×\94ש×\99× ×\95×\99×\99×\9d ×©×\9c ×\94×\93×£.',
+'copyright' => '×\94ת×\95×\9b×\9f ×\96×\9e×\99×\9f ×\9cפ×\99 ×ª× ×\90×\99 $1 ×\90×\9c×\90 ×\90×\9d × ×\90×\9eר ×\90×\97רת.',
 'copyrightpage' => '{{ns:project}}:זכויות יוצרים',
 'currentevents' => 'אקטואליה',
 'currentevents-url' => 'Project:אקטואליה',
@@ -1772,8 +1772,8 @@ $1",
 'action-block' => 'לחסום משתמש זה מעריכה',
 'action-protect' => 'לשנות את רמת ההגנה על דף זה',
 'action-rollback' => 'לשחזר במהירות את עריכות המשתמש האחרון שערך דף מסוים',
-'action-import' => '×\9c×\99×\99×\91×\90 ×\93×£ ×\96×\94 מאתר ויקי אחר',
-'action-importupload' => '×\9c×\99×\99×\91×\90 ×\93×£ ×\96×\94 באמצעות העלאת קובץ',
+'action-import' => '×\9c×\99×\99×\91×\90 ×\93פ×\99×\9d מאתר ויקי אחר',
+'action-importupload' => '×\9c×\99×\99×\91×\90 ×\93פ×\99×\9d באמצעות העלאת קובץ',
 'action-patrol' => 'לסמן עריכות של אחרים כבדוקות',
 'action-autopatrol' => 'לסמן את עריכותיך כבדוקות',
 'action-unwatchedpages' => 'לצפות ברשימת הדפים שאינם במעקב',
@@ -2313,6 +2313,7 @@ $1',
 'listusers' => 'רשימת משתמשים',
 'listusers-editsonly' => 'הצגת משתמשים עם עריכות בלבד',
 'listusers-creationsort' => 'סידור לפי תאריך היצירה',
+'listusers-desc' => 'סידור בסדר יורד',
 'usereditcount' => '{{PLURAL:$1|עריכה אחת|$1 עריכות}}',
 'usercreated' => '{{GENDER:$3|נוצר|נוצרה}} ב־$2, $1',
 'newpages' => 'דפים חדשים',
@@ -2555,9 +2556,9 @@ $UNWATCHURL
 # Delete
 'deletepage' => 'מחיקה',
 'confirm' => 'אישור',
-'excontent' => 'תוכן היה: "$1"',
-'excontentauthor' => 'התוכן היה: "$1" ({{gender:$2|והתורם היחיד היה|והתורמת היחידה הייתה}} [[Special:Contributions/$2|$2]])',
-'exbeforeblank' => 'תוכן לפני שרוקן היה: "$1"',
+'excontent' => '×\94ת×\95×\9b×\9f ×\94×\99×\94: "$1"',
+'excontentauthor' => 'התוכן היה: "$1" ({{gender:$2|והתורם היחיד היה|והתורמת היחידה הייתה}} "[[Special:Contributions/$2|$2]]")',
+'exbeforeblank' => '×\94ת×\95×\9b×\9f ×\9cפנ×\99 ×©×¨×\95ק×\9f ×\94×\99×\94: "$1"',
 'exblank' => 'הדף היה ריק',
 'delete-confirm' => 'מחיקת $1',
 'delete-legend' => 'מחיקה',
@@ -2598,8 +2599,8 @@ $UNWATCHURL
 העריכה האחרונה הייתה של [[User:$3|$3]] ([[User talk:$3|שיחה]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "תקציר העריכה היה: \"'''\$1'''\".",
 'revertpage' => 'שוחזר מעריכות של [[Special:Contributions/$2|$2]] ([[User talk:$2|שיחה]]) לעריכה האחרונה של [[User:$1|$1]]',
-'revertpage-nouser' => 'שוחזר מעריכות של משתמש מוסתר לעריכה האחרונה של [[User:$1|$1]]',
-'rollback-success' => 'ש×\95×\97×\96ר ×\9eער×\99×\9b×\94 של $1 לעריכה האחרונה של $2',
+'revertpage-nouser' => 'שוחזר מעריכות של משתמש מוסתר לעריכה האחרונה של {{GENDER:$1|[[User:$1|$1]]}}',
+'rollback-success' => 'ש×\95×\97×\96ר ×\9eער×\99×\9b×\95ת של $1 לעריכה האחרונה של $2',
 
 # Edit tokens
 'sessionfailure-title' => 'בעיה בחיבור',
@@ -2612,7 +2613,7 @@ $UNWATCHURL
 'protectlogtext' => 'להלן רשימה של שינויי ההגנה על דפים.
 ראו גם את [[Special:ProtectedPages|רשימת הדפים המוגנים]] הנוכחית.',
 'protectedarticle' => 'הפעיל הגנה על [[$1]]',
-'modifiedarticleprotection' => 'ש×\99× ×\94 ×\90ת ×\94×\92×\93ר×\95ת ההגנה של "[[$1]]"',
+'modifiedarticleprotection' => 'ש×\99× ×\94 ×\90ת ×¨×\9eת ההגנה של "[[$1]]"',
 'unprotectedarticle' => 'ביטל את ההגנה על [[$1]]',
 'movedarticleprotection' => 'העביר את הגדרות ההגנה מ"[[$2]]" ל"[[$1]]"',
 'protect-title' => 'שינוי רמת ההגנה של "$1"',
@@ -2831,7 +2832,7 @@ $1',
 'unblockip' => 'שחרור חסימה',
 'unblockiptext' => 'השתמשו בטופס שלהלן כדי להחזיר את הרשאות הכתיבה למשתמש או כתובת IP חסומים.',
 'ipusubmit' => 'שחרור חסימה',
-'unblocked' => 'המשתמש [[User:$1|$1]] שוחרר מחסימתו.',
+'unblocked' => '[[User:$1|$1]] {{GENDER:$1|שוחרר מחסימתו|שוחררה מחסימתה}}.',
 'unblocked-range' => '$1 שוחרר מחסימתו.',
 'unblocked-id' => 'חסימה מספר $1 שוחררה.',
 'blocklist' => 'משתמשים חסומים',
@@ -3236,10 +3237,10 @@ $2',
 'monobook.js' => '/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב Monobook */',
 'modern.js' => '/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב Modern */',
 'vector.js' => '/* כל סקריפט JavaScript שנכתב כאן ירוץ רק עבור המשתמשים בעיצוב Vector */',
-'group-autoconfirmed.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¨×§ ×¢×\91×\95ר ×\9eשת×\9eש×\99×\9d ×\95ת×\99ק×\99×\9d */',
-'group-bot.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¨×§ ×¢×\91×\95ר ×\91×\95×\98×\99×\9d */',
-'group-sysop.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¨×§ ×¢×\91×\95ר ×\9eפע×\99×\9c×\99 ×\9eער×\9bת */',
-'group-bureaucrat.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¨×§ ×¢×\91×\95ר ×\91×\99×\95ר×\95קר×\98×\99×\9d */',
+'group-autoconfirmed.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¢×\91×\95ר ×\9eשת×\9eש×\99×\9d ×\95ת×\99ק×\99×\9d ×\91×\9c×\91×\93 */',
+'group-bot.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¢×\91×\95ר ×\91×\95×\98×\99×\9d ×\91×\9c×\91×\93 */',
+'group-sysop.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¢×\91×\95ר ×\9eפע×\99×\9c×\99 ×\9eער×\9bת ×\91×\9c×\91×\93 */',
+'group-bureaucrat.js' => '/* ×\9b×\9c ×¡×§×¨×\99פ×\98 JavaScript ×©× ×\9bת×\91 ×\9b×\90×\9f ×\99ר×\95×¥ ×¢×\91×\95ר ×\91×\99×\95ר×\95קר×\98×\99×\9d ×\91×\9c×\91×\93 */',
 
 # Metadata
 'notacceptable' => 'האתר לא יכול לספק מידע בפורמט שתוכנת הלקוח יכולה לקרוא.',
@@ -3306,7 +3307,7 @@ $2',
 'pageinfo-contentpage-yes' => 'כן',
 'pageinfo-protect-cascading' => 'מופעלת הגנה מדורגת מכאן',
 'pageinfo-protect-cascading-yes' => 'כן',
-'pageinfo-protect-cascading-from' => '×\93×£ ×\96×\94 ×\9e×\95×\92×\9f ×\91×\92×\9cל הגנה מדורגת על',
+'pageinfo-protect-cascading-from' => '×\93×£ ×\96×\94 ×\9e×\95×\92×\9f ×\91של הגנה מדורגת על',
 'pageinfo-category-info' => 'מידע על הקטגוריה',
 'pageinfo-category-pages' => 'מספר הדפים',
 'pageinfo-category-subcats' => 'מספר קטגוריות המשנה',
@@ -4211,7 +4212,7 @@ $5
 
 # New logging system
 'logentry-delete-delete' => '$1 {{GENDER:$2|מחק|מחקה}} את הדף $3',
-'logentry-delete-restore' => '$1 {{GENDER:$2|שחזר|שחזרה}} את הדף $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|שחזר|שחזרה}} את הדף $3&rlm;',
 'logentry-delete-event' => '$1 {{GENDER:$2|שינה|שינתה}} את מצב התצוגה של {{PLURAL:$5|פעולת יומן|$5 פעולות יומן}} של $3: $4',
 'logentry-delete-revision' => '$1 {{GENDER:$2|שינה|שינתה}} את מצב התצוגה של {{PLURAL:$5|גרסה|$5 גרסאות}} בדף $3: $4',
 'logentry-delete-event-legacy' => '$1 {{GENDER:$2|שינה|שינתה}} את מצב התצוגה של פעולות יומן של $3',
@@ -4330,9 +4331,9 @@ $5
 'limitreport-ppvisitednodes' => 'מספר הצמתים שקדם־המפענח ביקר בהם',
 'limitreport-ppgeneratednodes' => 'מספר הצמתים שקדם־המפענח יצר',
 'limitreport-postexpandincludesize' => 'גודל הטקסט המוכלל לאחר הפריסה',
-'limitreport-postexpandincludesize-value' => '$1/$2 בתים',
+'limitreport-postexpandincludesize-value' => '{{PLURAL:$2|$1 מתוך בית אחד|$1/$2 בתים}}',
 'limitreport-templateargumentsize' => 'גודל הפרמטרים של התבניות',
-'limitreport-templateargumentsize-value' => '$1/$2 בתים',
+'limitreport-templateargumentsize-value' => '{{PLURAL:$2|$1 מתוך בית אחד|$1/$2 בתים}}',
 'limitreport-expansiondepth' => 'עומק הפריסה הגבוה ביותר',
 'limitreport-expensivefunctioncount' => 'מספר פונקציות המפענח שגוזלות משאבים',
 
index 007e8e1..91834c5 100644 (file)
@@ -435,7 +435,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} के बारे में',
 'aboutpage' => 'Project:परिचय',
-'copyright' => 'उपलब्ध सामग्री $1 के अधीन है।',
+'copyright' => 'उपलब्ध सामग्री $1 के अधीन है जब तक अलग से उल्लेख ना किया गया हो।',
 'copyrightpage' => '{{ns:project}}:सर्वाधिकार',
 'currentevents' => 'हाल की घटनाएँ',
 'currentevents-url' => 'Project:हाल की घटनाएँ',
@@ -1066,6 +1066,7 @@ $2
 'expansion-depth-exceeded-warning' => 'पृष्ठ में विस्तार गहराई पार की गई है',
 'parser-unstrip-loop-warning' => 'Unstrip लूप पाया गया',
 'parser-unstrip-recursion-limit' => 'Unstrip पुनरावर्तन सीमा पार की गई ($1)',
+'converter-manual-rule-error' => 'मैन्यूअल भाषा परिवर्तन नियम में त्रुटि',
 
 # "Undo" feature
 'undo-success' => 'यह संपादन पूर्ववत किया जा सकता है।
index 9464e46..d27923c 100644 (file)
@@ -42,12 +42,12 @@ $messages = array(
 'tog-hidepatrolled' => 'Pahraa dewa gais badlao ke nawaa badlao me se lukao',
 'tog-newpageshidepatrolled' => 'Pahraa dewa gais badlao ke nawaa panna me se lukao',
 'tog-extendwatchlist' => 'Dhyaan suchi ke khol ke sab badlao ke dekhao, khaali nawaa waala nai',
-'tog-usenewrc' => 'Dher jan se badla gais panna, haali ke badlao aur dhyan suchi me (Javascript maange hae)',
+'tog-usenewrc' => 'Dher jan se badla gais panna, haali ke badlao aur dhyan suchi me',
 'tog-numberheadings' => 'Sab heading ke apne se number karo',
-'tog-showtoolbar' => 'Badle waala aujaar ke toolbar ke dekhao (JavaScript ke jarurat hai)',
-'tog-editondblclick' => 'Dugnaa click pe panna ke badlo (JavaScript ke jarurat hai)',
+'tog-showtoolbar' => 'Badle waala toolbar ke dekhao',
+'tog-editondblclick' => 'Dugnaa click pe panna ke badlo',
 'tog-editsection' => '[Badlao] ke jorr se section ke badlao se enable karo',
-'tog-editsectiononrightclick' => 'Bhaag ke title pe right click kare pe bhaag ke badle ke laabu karo  (JavaScript)',
+'tog-editsectiononrightclick' => 'Bhaag ke title pe right click kare pe bhaag ke badle ke laabu karo',
 'tog-showtoc' => 'Dhyan suchi dekhao (uu panna khatir jon me tiin se jaada heading hai)',
 'tog-rememberpassword' => 'Ii browser me (jaada se jaada $1 {{PLURAL:$1|din|din}}) talak hamaar login ke yaad rakho.',
 'tog-watchcreations' => 'Hamaar banawa waala panna aur upload karaa gais file ke hamaar dhyaan suchi me jorro',
@@ -65,7 +65,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Ketna sadasya dekhe hai ke number dekhao',
 'tog-oldsig' => 'Abhi ke signature:',
 'tog-fancysig' => 'Signature ke wikitext ke rakam dekho (binaa automatic jorr se)',
-'tog-uselivepreview' => 'Jinda jhalak ke kaam me lao (JavaScript) (Experimental)',
+'tog-uselivepreview' => 'Jinda jhalak ke kaam me lao',
 'tog-forceeditsummary' => 'Ek khali badlao waala summary ke likhe ke time hamse puchho',
 'tog-watchlisthideown' => 'Hamaar badlao ke hamaar dhyaan suchi se lukao',
 'tog-watchlisthidebots' => 'Bot waala badlao ke hamaar dhyaan suchi se lukao',
@@ -78,6 +78,7 @@ $messages = array(
 'tog-showhiddencats' => 'Lukawal waala vibhag ke dekhao',
 'tog-norollbackdiff' => 'Rollback kare ke baad diff ke mitae do',
 'tog-useeditwarning' => 'Jab ham koi panna se bina bachae nikaltaa hae, tab hamke warning do',
+'tog-prefershttps' => 'Logged in hoe pe secure connection ke kaam me lao',
 
 'underline-always' => 'Sab time',
 'underline-never' => 'Kabhi nai',
@@ -178,7 +179,7 @@ $messages = array(
 'newwindow' => '(Nawaa window me khule hai)',
 'cancel' => 'Nai karo',
 'moredotdotdot' => 'Aur...',
-'morenotlisted' => 'Au ke nai list karaa gais hae...',
+'morenotlisted' => 'Ii suchi puura nai hae',
 'mypage' => 'Panna',
 'mytalk' => 'Baat',
 'anontalk' => 'Ii IP khatir bichar',
@@ -281,7 +282,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} ke baare me',
 'aboutpage' => 'Project:Ke baare me',
-'copyright' => 'Ii panna me likha gae chij ke aap $1 ke niche kaam me lae sakta hai.',
+'copyright' => 'Agar duusra kaaran nai dewa gais hae, tab aap ii panna me likha gae chij ke aap $1 ke niche kaam me lae sakta hai.',
 'copyrightpage' => '{{ns:project}}:Chhaape ke adhikaar',
 'currentevents' => 'Abhi ke ghatna',
 'currentevents-url' => 'Project:Abhi ke ghatna',
@@ -364,6 +365,12 @@ Sahi khaas panna ke suchi [[Special:SpecialPages|{{int:specialpages}}]]pe mili.'
 # General errors
 'error' => 'Galti',
 'databaseerror' => 'Database me galti hai',
+'databaseerror-text' => 'Database ke khoj me kuchh karrbarr bhais hae
+Ii saait software me ek bug ke indicate kare hae.',
+'databaseerror-textcl' => 'Database ke khoj me kuchh garrbarri hoe gais hae.',
+'databaseerror-query' => 'Khoj:$1',
+'databaseerror-function' => 'Kaam: $1',
+'databaseerror-error' => 'Galti: $1',
 'laggedslavemode' => 'Chetawni: Panna me nawaa badlao sait nai hoi.',
 'readonly' => 'Database band hai',
 'enterlockreason' => 'Band kare ke kaaran likho, aur ii bhi likho ki kab khola jaai.',
@@ -396,6 +403,7 @@ Iske, URL ke likh ke, koi administrator ke report karo.',
 'cannotdelete-title' => 'Panna "$1" ke mitae nai saktaa hae',
 'delete-hook-aborted' => 'Mitae ke kisis ke hook rok diis hae.
 Uu koi kaaran nai dis hae.',
+'no-null-revision' => 'Panna "$1" ke khatir nawaa null badlao nai banae sakaa hae',
 'badtitle' => 'Kharaab title',
 'badtitletext' => 'Jon panna aap mangta hai uske page title invalid, galat, nai to an incorrectly linked inter-language or inter-wiki title. Isme sait ek yah jaada character hoi jon ki title me nai kaam me lawa jae sake hai.',
 'perfcached' => 'Niche likha data ke cache karaa gais hai aur sait purana hoi. Jaada se jaada {{PLURAL:$1|ek result |$1 results}} cache me hae.',
@@ -444,8 +452,7 @@ Jon administrator iske lock karis hae, koi kaaran nai diis hae: "$3"',
 # Login and logout pages
 'logouttext' => "'''Aap abhi logged out hai.'''
 
-Aap bina naam ke {{SITENAME}} ke kaam me lae sakta hai, nai to aap wahi sadasya ke naam se nai to duusra sadasya ke naam se <span class='plainlinks'>[$1 log in kare sakta hai]</span>.
-Yaad rakhna ki kuch panna wahi rakam se dekhai jaise ki aap log in bhaya hai, jab tak ki browser ke cache safaa nai hoe jaae.",
+Yaad rakhna ki kuch panna wahi rakam se dekhai jaise ki aap log in bhaya hai, jab talak ki browser ke cache safaa nai hoe jaae.",
 'welcomeuser' => 'Swagat, $1!',
 'welcomecreation-msg' => 'Aap ke account banae dewa gais hai.
 Aapan [[Special:Preferences|{{SITENAME}} pasand]]  ke badle nai bhulna.',
@@ -491,7 +498,7 @@ Aapan [[Special:Preferences|{{SITENAME}} pasand]]  ke badle nai bhulna.',
 'createacct-emailoptional' => 'Email address (jaruri nai hae)',
 'createacct-email-ph' => 'Aapan mail address ke likho',
 'createacct-another-email-ph' => 'Email address ke likho',
-'createaccountmail' => 'Ek temporary password ke kaam me laao aur iske niche dekhawa gais Email pe bhej do',
+'createaccountmail' => 'Ek temporary password ke kaam me laao aur iske batawa gais Email pe bhej do',
 'createacct-realname' => 'Aslii naam (jaruri nai hae)',
 'createaccountreason' => 'Kaaran:',
 'createacct-reason' => 'Kaaran',
@@ -569,11 +576,13 @@ Meharbaani kar ke achchha address ke enter karo nai to uu field ke khali kar do.
 Aap ke chaahi ki aap login kar ke password ke badal do.
 Agar ii account galti se banaa hai tab ii sandes ke ignore kar do.',
 'usernamehasherror' => 'Sadasya ke naam me hash akchhar ke nai kaam me lawa jaae sake hae',
-'login-throttled' => 'Aap bahut jaada dafe ii account ke password ke enter kare ke kosis karaa hai.
-Thora deri baad fir se kosis karna.',
+'login-throttled' => 'Aap bahut jaada dafe ii account ke password ke enter kare ke kosis karaa hae.
+$1 talak wait kar ke fir se try karo.',
 'login-abort-generic' => 'Aap ke login nai chalaa - Aborted',
 'loginlanguagelabel' => 'Bhasa: $1',
 'suspicious-userlogout' => 'Aap ke log out kare ke maang ke na kar dewa gais hae kaahe ki ii janaawe hae ki ii maang ke ek tuuta browser nai to caching proxy bhejis hae.',
+'createacct-another-realname-tip' => 'Aslii naam ke jaruri nai hae.
+Agar aap iske diya hae tab iske aapke kaam ke attribute kare ke khatir kaam me lawa jaai.',
 
 # Email sending
 'php-mail-error-unknown' => 'PHP ke mail() function me koi anjaan kharaabi hae',
@@ -590,7 +599,7 @@ Login khatam kare khatir, aap ke nawaa password set kare ke parri hian:',
 'newpassword' => 'Nawaa password:',
 'retypenew' => 'Password fir se type karo:',
 'resetpass_submit' => 'Password ke set kar ke login karo',
-'changepassword-success' => 'Aap ke password ke safalta se badal dewa gais hai! Aap ke ab login karaa jaae hai...',
+'changepassword-success' => 'Aap ke password ke safalta se badal dewa gais hai!',
 'resetpass_forbidden' => 'Password nai badlaa jaae sake hai',
 'resetpass-no-info' => 'Ii panna ke sidha access kare ke khatir aap ke logged in rahe ke parri.',
 'resetpass-submit-loggedin' => 'Password ke badlo',
@@ -652,7 +661,7 @@ Aap ke ii kare ke chaahi agar aap galti se ii jaankari ke aur koi ke de diya hae
 'resettokens-legend' => 'Token ke reset karo',
 'resettokens-tokens' => 'Chinh (token)',
 'resettokens-token-label' => '$1 (abhi ke value: $2)',
-'resettokens-watchlist-token' => 'Dhyan suchi ke web feed token',
+'resettokens-watchlist-token' => 'Dhyan suchi ke web feed token (Atom/RSS) of [[Special:Watchlist|changes to pages on your watchlist]]',
 'resettokens-done' => 'Token ke reset kar dewa gais hae.',
 'resettokens-resetbutton' => 'Chuna gais token ke reset karo',
 
@@ -1186,7 +1195,7 @@ Yaad rakhna ki uu log ke {{SITENAME}} ke index saait purana hoi.',
 'prefs-rendering' => 'Dekhe me kaise lage hai',
 'saveprefs' => 'Save karo',
 'resetprefs' => 'Binaa bachawa gias badlao ke mitao',
-'restoreprefs' => 'Sab default settings ke pahile jaise karo',
+'restoreprefs' => 'Sab default settings ke pahile jaise karo (sab vibhag me)',
 'prefs-editing' => 'Badaltaa hai',
 'rows' => 'Line:',
 'columns' => 'Column:',
@@ -1245,10 +1254,10 @@ Iske pahile jaise nai karaa jaawe sake hai.',
 'badsig' => 'Invalid raw signature; HTML tags ke check karo.',
 'badsiglength' => 'Signature bahut lambaa hai.
 Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
-'yourgender' => 'Admi ki aurat:',
-'gender-unknown' => 'Khaas ruup nai dewa gais hae',
-'gender-male' => 'Admi',
-'gender-female' => 'Aurat',
+'yourgender' => 'Aap kaise describe hoe mangtaa hae?',
+'gender-unknown' => 'Ham bole nai mangtaa hae',
+'gender-male' => 'Uu wiki panna ke badle hae',
+'gender-female' => 'Uu wiki panna ke badle hae',
 'prefs-help-gender' => 'Optional: used for gender-correct addressing by the software. This information will be public.',
 'email' => 'E-mail',
 'prefs-help-realname' => 'Asli naam ke jaruri nai hai lekin agar jo aap aapan naam diya hai to iske aap ke kaam ke pahachane khatir kaam me lawa jai.',
@@ -1272,6 +1281,7 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'prefs-displaywatchlist' => 'Choice dekhao',
 'prefs-tokenwatchlist' => 'Chinh (token)',
 'prefs-diffs' => 'Farka',
+'prefs-help-prefershttps' => 'Aap ke agla login pe ii preferences effect me aai.',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => 'E-mail address kanuni hae',
index fd59f77..37a9600 100644 (file)
@@ -561,7 +561,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'A {{SITENAME}} wikiről',
 'aboutpage' => 'Project:Rólunk',
-'copyright' => 'A tartalom a(z) $1 feltételei szerint használható fel.',
+'copyright' => 'A tartalom további jelölés hiányában a(z) $1 feltételei szerint használható fel.',
 'copyrightpage' => '{{ns:project}}:Szerzői jogok',
 'currentevents' => 'Aktuális események',
 'currentevents-url' => 'Project:Friss események',
@@ -870,7 +870,7 @@ Várj $1, mielőtt újra próbálkozol.',
 'newpassword' => 'Új jelszó:',
 'retypenew' => 'Új jelszó ismét:',
 'resetpass_submit' => 'Add meg a jelszót és jelentkezz be',
-'changepassword-success' => 'A jelszavad megváltoztatása sikeresen befejeződött! Bejelentkezés...',
+'changepassword-success' => 'A jelszavad megváltoztatása sikeresen befejeződött!',
 'resetpass_forbidden' => 'A jelszavak nem változtathatók meg',
 'resetpass-no-info' => 'Be kell jelentkezned, hogy közvetlenül elérd ezt a lapot.',
 'resetpass-submit-loggedin' => 'Jelszó megváltoztatása',
index 567bdc2..e358141 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
  * @author Chaojoker
  * @author Nemo bis
  * @author Pandukht
@@ -1015,7 +1016,7 @@ $2',
 <charinsert>~ | ° ¹ ² ³ ¼ ½ ¾ € $ ¥ £ † × ← → ↔ ↑ ± ≠ © ® ™ ‰ «+» ‹+› „+“ „+” ‚+‘ ¡ ¿ …</charinsert> –
 <charinsert>&amp;nbsp; &nbsp; [[Category:+]] #REDIRECT[[+]] {{msg-mw|+|notext=1}}  ~~~~</charinsert>
 <charinsert>ڈ ڑ ٹ </charinsert>
-<charinsert>Ù¼ Ú\85 Ú\81 Ú\89 Ú\93 Ú\96 Ú\9a Ú« Ú¼ Ø¤ Ù\8a Û\90 Û\8d Ø¦ </charinsert>
+<charinsert>ټ څ ځ ډ ړ ږ ښ ڼ ؤ ي ې ۍ ئ </charinsert>
 <charinsert>{{{+}}} {{+}} {{subst:+}} <noinclude>+</noinclude></charinsert>
 </p></div>',
 'nocreatetext' => '{{SITENAME}} կայքում էջերի ստեղծման հնարավորությունը սահմանափակված է։
index 0c81558..a61585c 100644 (file)
@@ -392,7 +392,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'A proposito de {{SITENAME}}',
 'aboutpage' => 'Project:A proposito',
-'copyright' => 'Le contento es disponibile sub $1.',
+'copyright' => 'Le contento es disponibile sub $1 si non alteremente specificate.',
 'copyrightpage' => '{{ns:project}}:Copyright',
 'currentevents' => 'Actualitates',
 'currentevents-url' => 'Project:Actualitates',
@@ -570,7 +570,7 @@ Nota que alcun paginas pote continuar a apparer como si tu esserea ancora authen
 'welcomecreation-msg' => 'Tu conto ha essite create.
 Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].',
 'yourname' => 'Nomine de usator:',
-'userlogin-yourname' => 'Nomine de usator',
+'userlogin-yourname' => 'Nomine de usator',
 'userlogin-yourname-ph' => 'Entra tu nomine de usator',
 'createacct-another-username-ph' => 'Entra le nomine de usator',
 'yourpassword' => 'Contrasigno:',
@@ -1576,8 +1576,8 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'action-block' => 'blocar iste usator de facer modificationes',
 'action-protect' => 'cambiar le nivellos de protection pro iste pagina',
 'action-rollback' => 'revocar rapidemente le modificationes del ultime usator qui modificava un particular pagina',
-'action-import' => 'importar iste pagina ab un altere wiki',
-'action-importupload' => 'importar iste pagina ex un file incargate',
+'action-import' => 'importar paginas ab un altere wiki',
+'action-importupload' => 'importar paginas ex un file incargate',
 'action-patrol' => 'marcar le modificationes de alteros como patruliate',
 'action-autopatrol' => 'haber tu modification marcate como patruliate',
 'action-unwatchedpages' => 'vider le lista de paginas non observate',
@@ -2122,6 +2122,7 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 'listusers' => 'Lista de usatores',
 'listusers-editsonly' => 'Monstrar solmente usatores con modificationes',
 'listusers-creationsort' => 'Ordinar per data de creation',
+'listusers-desc' => 'Ordinar in senso descendente',
 'usereditcount' => '$1 {{PLURAL:$1|modification|modificationes}}',
 'usercreated' => '{{GENDER:$3|Create}} le $1 a $2',
 'newpages' => 'Nove paginas',
@@ -2414,7 +2415,7 @@ un altere persona ha ja modificate o revocate le pagina.
 Le ultime modification esseva facite per [[User:$3|$3]] ([[User talk:$3|discussion]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Le summario del modification esseva: \"''\$1''\".",
 'revertpage' => 'Reverteva modificationes per [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussion]]) al ultime version per [[User:$1|$1]]',
-'revertpage-nouser' => 'Reverteva modificationes per un usator celate al ultime version per [[User:$1|$1]]',
+'revertpage-nouser' => 'Reverteva modificationes per un usator celate al ultime version per {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Revocava modificationes per $1;
 retornava al version per $2.',
 
@@ -4092,9 +4093,9 @@ Si non, tu pote usar le formulario facile hic infra. Tu commento essera addite a
 'limitreport-ppvisitednodes' => 'Numero de nodos de preprocessor visitate',
 'limitreport-ppgeneratednodes' => 'Numero de nodos de preprocessor generate',
 'limitreport-postexpandincludesize' => 'Dimension de inclusion post expansion',
-'limitreport-postexpandincludesize-value' => '$1/$2 bytes',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-templateargumentsize' => 'Dimension del argumento del patrono',
-'limitreport-templateargumentsize-value' => '$1/$2 bytes',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth' => 'Maxime profunditate de expansion',
 'limitreport-expensivefunctioncount' => 'Numero de functiones analysator costose',
 
index fa3d96e..c308967 100644 (file)
@@ -346,7 +346,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Sembunyikan suntingan terpatroli di perubahan terbaru',
 'tog-newpageshidepatrolled' => 'Sembunyikan halaman terpatroli dari daftar halaman baru',
 'tog-extendwatchlist' => 'Kembangkan daftar pantauan untuk menunjukkan semua perubahan, tidak hanya yang terbaru',
-'tog-usenewrc' => 'Gunakan tampilan perubahan terbaru tingkat lanjut (memerlukan JavaScript)',
+'tog-usenewrc' => 'Kelompokkan suntingan di tampilan perubahan terbaru dan daftar pantauan berdasarkan halaman',
 'tog-numberheadings' => 'Beri nomor judul secara otomatis',
 'tog-showtoolbar' => 'Perlihatkan bilah alat penyuntingan',
 'tog-editondblclick' => 'Sunting halaman dengan klik ganda (JavaScript)',
index c5de1e0..2d5a126 100644 (file)
@@ -1721,8 +1721,7 @@ Nke ozor gí zonari na áká onwe ha.
 
 # Database error messages
 'dberr-header' => 'Wiki nka nwere nsogbu',
-'dberr-problems' => 'Ndó!
-Ámá nka nwere nsogbu ime ime.',
+'dberr-problems' => 'Ndó! Ámá nka nwere nsogbu ime ime.',
 
 # HTML forms
 'htmlform-required' => 'Ọgụgụ nke gi dị',
index 7bd61b0..de1e9a7 100644 (file)
@@ -282,7 +282,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Maipanggep ti {{SITENAME}}',
 'aboutpage' => 'Project:Maipanggep',
-'copyright' => 'Ti linaon ket magun-od babaen ti $1.',
+'copyright' => 'Ti linaon ket magun-od babaen ti $1 malaksid no adda sabali a naibaga.',
 'copyrightpage' => '{{ns:project}}:Dagiti karbengan ti kopia',
 'currentevents' => 'Agdama a paspasamak',
 'currentevents-url' => 'Project:Agdama a paspasamak',
@@ -3790,8 +3790,7 @@ Naka-awatka koman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 
 # Database error messages
 'dberr-header' => 'Adda ti pakirutna daytoy a wiki',
-'dberr-problems' => 'Pasensian a!
-Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
+'dberr-problems' => 'Pasensian a! Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'dberr-again' => 'Padasem ti agururay to manu a minutos ken agikarga.',
 'dberr-info' => '(Saan a makontak ti database server: $1)',
 'dberr-info-hidden' => '(Saan a makontak ti database server)',
@@ -3939,9 +3938,9 @@ Nupay kasta, mau-sarmo ti nakabuklan dita baba. Ti komentario nga itedmo ket mai
 'limitreport-ppvisitednodes' => 'Nabisita a bilang ti nodo ti preproseso',
 'limitreport-ppgeneratednodes' => 'Napataud a bilang ti nodo ti preproseso',
 'limitreport-postexpandincludesize' => 'Pannakairaman a kadakkel ti kalpasan a panagpadakkel',
-'limitreport-postexpandincludesize-value' => 'Dagiti $1/$2 a byte',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|a byte|kadagiti byte}}',
 'limitreport-templateargumentsize' => 'Argumento a kadakkel ti plantilia',
-'limitreport-templateargumentsize-value' => 'Dagiti $1/$2 a byte',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|a byte|kadagiti byte}}',
 'limitreport-expansiondepth' => 'Kangatuan a panagpadakkel ti kauneg',
 'limitreport-expensivefunctioncount' => 'Bilang ti nangina nga annong ti parser',
 
index c3506b2..2eb6224 100644 (file)
@@ -3824,8 +3824,7 @@ MediaWiki er útgefin í þeirri von að hann sé gagnlegur, en ÁN ALLRAR ÁBYR
 
 # Database error messages
 'dberr-header' => 'Vandamál við þennan wiki',
-'dberr-problems' => 'Því miður!
-Tæknilegir örðugleikar eru á þessari síðu.',
+'dberr-problems' => 'Því miður!Tæknilegir örðugleikar eru á þessari síðu.',
 'dberr-again' => 'Reyndu að bíða í nokkrar mínútur og endurhladdu síðan síðuna.',
 'dberr-info' => '(Mistókst að hafa samband við gagnaþjón: $1)',
 'dberr-usegoogle' => 'Þú getur notað Google til að leita á meðan.',
index a88ef48..0725aba 100644 (file)
@@ -537,7 +537,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Informazioni su {{SITENAME}}',
 'aboutpage' => 'Project:Informazioni',
-'copyright' => "Contenuti soggetti a licenza d'uso $1.",
+'copyright' => 'Il contenuto è disponibile in base alla licenza $1, se non diversamente specificato.',
 'copyrightpage' => '{{ns:project}}:Copyright',
 'currentevents' => 'Attualità',
 'currentevents-url' => 'Project:Attualità',
@@ -1662,8 +1662,8 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'action-block' => 'bloccare questo utente in scrittura',
 'action-protect' => 'modificare i livelli di protezione per questa pagina',
 'action-rollback' => "annullare rapidamente le modifiche dell'ultimo utente che ha modificato una determinata pagina",
-'action-import' => "importare questa pagina da un'altra wiki",
-'action-importupload' => 'importare questa pagina tramite upload da file',
+'action-import' => "importare pagine da un'altra wiki",
+'action-importupload' => 'importare pagine tramite upload da file',
 'action-patrol' => 'segnare le modifiche degli altri utenti come verificate',
 'action-autopatrol' => 'segnare le proprie modifiche come verificate',
 'action-unwatchedpages' => 'visionare la lista di pagine non osservate',
@@ -2186,6 +2186,7 @@ I redirect <del>cancellati</del> sono stati corretti.',
 'listusers' => 'Elenco degli utenti',
 'listusers-editsonly' => 'Mostra solo utenti con dei contributi',
 'listusers-creationsort' => 'Ordina per data di creazione',
+'listusers-desc' => 'Ordina in senso decrescente',
 'usereditcount' => '$1 {{PLURAL:$1|contributo|contributi}}',
 'usercreated' => '{{GENDER:$3|Creato/a}} il $1 alle $2',
 'newpages' => 'Pagine più recenti',
@@ -2467,7 +2468,7 @@ Consultare il log delle $2 per un elenco delle pagine cancellate di recente.',
 La modifica più recente alla pagina è stata apportata da [[User:$3|$3]] ([[User talk:$3|discussione]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "L'oggetto della modifica era: \"''\$1''\".",
 'revertpage' => 'Annullate le modifiche di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussione]]), riportata alla versione precedente di [[User:$1|$1]]',
-'revertpage-nouser' => 'Annullate le modifiche di un utente nascosto, riportata alla versione precedente di [[User:$1|$1]]',
+'revertpage-nouser' => 'Annullate le modifiche di un utente nascosto, riportata alla versione precedente di {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => "Annullate le modifiche di $1; pagina riportata all'ultima versione di $2.",
 
 # Edit tokens
@@ -4122,9 +4123,9 @@ Questo programma deve essere distribuito assieme ad [{{SERVER}}{{SCRIPTPATH}}/CO
 'limitreport-ppvisitednodes' => 'Numero nodi preprocessore visitati',
 'limitreport-ppgeneratednodes' => 'Numero nodi preprocessore generati',
 'limitreport-postexpandincludesize' => 'Dimensione inclusioni post-espansione',
-'limitreport-postexpandincludesize-value' => '$1/$2 byte',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte}}',
 'limitreport-templateargumentsize' => 'Dimensione parametri template',
-'limitreport-templateargumentsize-value' => '$1/$2 byte',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte}}',
 'limitreport-expansiondepth' => 'Massima profondità di espansione',
 'limitreport-expensivefunctioncount' => 'Numero funzioni parser dispendiose',
 
index 5aa8fbc..4b08752 100644 (file)
@@ -615,7 +615,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}}について',
 'aboutpage' => 'Project:{{SITENAME}}について',
-'copyright' => '内容は$1のライセンスで利用できます。',
+'copyright' => '特に記載がない限り、内容は$1のライセンスで利用できます。',
 'copyrightpage' => '{{ns:project}}:著作権',
 'currentevents' => '最近の出来事',
 'currentevents-url' => 'Project:最近の出来事',
@@ -1206,7 +1206,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'template-protected' => '(保護)',
 'template-semiprotected' => '(半保護)',
 'hiddencategories' => 'このページは {{PLURAL:$1|$1 個の隠しカテゴリ}}に属しています:',
-'edittools' => '<!-- ここに書いたテキストは編集びアップロードのフォームの下に表示されます。 -->',
+'edittools' => '<!-- ここに書いたテキストは編集およびアップロードのフォームの下に表示されます。 -->',
 'nocreatetext' => '{{SITENAME}}ではページの新規作成を制限しています。
 元のページに戻って既存のページを編集するか、[[Special:UserLogin|ログインまたはアカウント作成]]をしてください。',
 'nocreate-loggedin' => '新しいページを作成する権限がありません。',
@@ -1764,7 +1764,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'right-noratelimit' => '速度制限を受けない',
 'right-import' => '他のウィキからページを取り込み',
 'right-importupload' => 'ファイルアップロードでページを取り込み',
-'right-patrol' => '他の編集を巡回済みにする',
+'right-patrol' => '他の利用者の編集を巡回済みにする',
 'right-autopatrol' => '自身の編集を自動で巡回済みにする',
 'right-patrolmarks' => '最近の更新で巡回済み印を閲覧',
 'right-unwatchedpages' => 'ウォッチされていないページ一覧を閲覧',
@@ -1810,8 +1810,8 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'action-block' => 'この利用者の編集ブロック',
 'action-protect' => 'このページの保護レベルの変更',
 'action-rollback' => '特定ページを最後に編集した利用者の編集の即時巻き戻し',
-'action-import' => 'ä»\96ã\81®ã\82¦ã\82£ã\82­ã\81\8bã\82\89ã\81®ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®å\8f\96ã\82\8aè¾¼ã\81¿',
-'action-importupload' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81§ã\81®ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®å\8f\96ã\82\8aè¾¼ã\81¿',
+'action-import' => '他のウィキからのページの取り込み',
+'action-importupload' => 'ファイルアップロードでのページへの取り込み',
 'action-patrol' => '他の利用者の編集を巡回済みにする',
 'action-autopatrol' => '自分の編集を巡回済みにする',
 'action-unwatchedpages' => 'ウォッチされていないページ一覧の閲覧',
@@ -2153,6 +2153,7 @@ URLが正しいものであり、ウェブサイトが稼働していること
 'listfiles_description' => '概要',
 'listfiles_count' => '版数',
 'listfiles-show-all' => '画像の古い版を含める',
+'listfiles-latestversion' => '現在の版',
 'listfiles-latestversion-yes' => 'はい',
 'listfiles-latestversion-no' => 'いいえ',
 
@@ -2366,6 +2367,7 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'listusers' => '利用者一覧',
 'listusers-editsonly' => '投稿記録のある利用者のみを表示',
 'listusers-creationsort' => '作成日順に並べ替え',
+'listusers-desc' => '降順に並べ替える',
 'usereditcount' => '$1 {{PLURAL:$1|回編集}}',
 'usercreated' => '$1 $2 に{{GENDER:$3|作成}}',
 'newpages' => '新しいページ',
@@ -2552,7 +2554,7 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'watchmethod-recent' => '最近の更新内のウォッチされているページを確認中',
 'watchmethod-list' => 'ウォッチされているページ内の最近の更新を確認中',
 'watchlistcontains' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています。',
-'iteminvalidname' => '項目「$1」には問題があります。名前が正しくありません...',
+'iteminvalidname' => '項目「$1」には問題があります。名前が無効です...',
 'wlnote' => "$3 $4 までの{{PLURAL:$2|'''$2'''時間}}になされた{{PLURAL:$1|'''$1'''件の変更}}は以下の通りです。",
 'wlshowlast' => '次の期間で表示: $1時間、$2日間、$3',
 'watchlist-options' => 'ウォッチリストのオプション',
@@ -2655,8 +2657,8 @@ $UNWATCHURL
 
 このページの最後の編集は[[User:$3|$3]] ([[User talk:$3|トーク]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) によるものです。',
 'editcomment' => "編集内容の要約:「''$1''」",
-'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|トーク]]) による編集を[[User:$1|$1]]による直前の版へ差し戻しました',
-'revertpage-nouser' => '非表示の利用者による編集を[[User:$1|$1]]による直前の版へ差し戻しました',
+'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|トーク]]) による編集を [[User:$1|$1]] による直前の版へ差し戻しました',
+'revertpage-nouser' => '非表示の利用者による編集を {{GENDER:$1|[[User:$1|$1]]}} による直前の版へ差し戻しました',
 'rollback-success' => '$1による編集を差し戻しました。
 $2による直前の版へ変更されました。',
 
@@ -4336,8 +4338,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 
 # Database error messages
 'dberr-header' => 'このウィキには問題があります',
-'dberr-problems' => '申し訳ありません!
-このウェブサイトに技術的な障害が発生しています。',
+'dberr-problems' => '申し訳ありません! このウェブサイトに技術的な障害が発生しています。',
 'dberr-again' => '数分間待った後、もう一度読み込んでください。',
 'dberr-info' => '(データベースサーバー $1 に接続できませんでした)',
 'dberr-info-hidden' => '(データベース サーバーと通信できません)',
@@ -4485,9 +4486,9 @@ MediaWikiは、有用であることを期待して配布されていますが
 'limitreport-ppvisitednodes' => 'プリプロセッサが訪問したノード数',
 'limitreport-ppgeneratednodes' => 'プリプロセッサが生成したノード数',
 'limitreport-postexpandincludesize' => '参照読み込みの展開後のサイズ',
-'limitreport-postexpandincludesize-value' => '$1/$2 バイト',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|バイト}}',
 'limitreport-templateargumentsize' => 'テンプレート引数のサイズ',
-'limitreport-templateargumentsize-value' => '$1/$2 バイト',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|バイト}}',
 'limitreport-expansiondepth' => '展開の最大深さ',
 'limitreport-expensivefunctioncount' => '高負荷パーサー関数の数',
 
index 658417f..ca273a2 100644 (file)
@@ -60,10 +60,10 @@ $messages = array(
 'tog-extendwatchlist' => 'Jembaraké daptar pangawasan kanggo nuduhaké kabèh owahan, ora mung sing paling anyar',
 'tog-usenewrc' => 'Owah-owahané paguyuban miturut kaca nèng owah-owahan anyar lan daptar panto (mbutuhaké JavaScript)',
 'tog-numberheadings' => 'Wènèhana nomer judul secara otomatis',
-'tog-showtoolbar' => 'Tuduhna <em>toolbar</em> (batang piranti) panyuntingan',
-'tog-editondblclick' => 'Sunting kaca nganggo klik ping loro (JavaScript)',
+'tog-showtoolbar' => 'Tuduhna <em>toolbar</em> (batang piranti) panyuntingan (mbutuhaké JavaScript)',
+'tog-editondblclick' => 'Sunting kaca nganggo klik ping loro (mbutuhaké JavaScript)',
 'tog-editsection' => 'Fungsèkna panyuntingan sub-bagian ngliwati pranala [sunting]',
-'tog-editsectiononrightclick' => 'Fungsèkna panyuntingan sub-bagian mawa klik-tengen ing judul bagian (JavaScript)',
+'tog-editsectiononrightclick' => 'Fungsèkna panyuntingan sub-bagian mawa klik-tengen ing judul bagian (mbutuhaké JavaScript)',
 'tog-showtoc' => 'Tuduhna daftar isi (kanggo kaca sing nduwé luwih saka 3 sub-bagian)',
 'tog-rememberpassword' => 'Émut tembung sandi kula ing peramban punika (salebeting $1 {{PLURAL:$1|dinten|dinten}})',
 'tog-watchcreations' => 'Tambahaké kaca sing tak gawé lan berkas sing tak unggah nèng daptar pangawasan',
@@ -81,7 +81,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Tuduhna cacahé pangawas',
 'tog-oldsig' => 'Tapak asma sing ana:',
 'tog-fancysig' => 'Anggepen tapak asta minangka teks wiki (tanpa pranala otomatis)',
-'tog-uselivepreview' => 'Nganggoa pratayang langsung (JavaScript) (eksperimental)',
+'tog-uselivepreview' => 'Nganggoa pratayang langsung (mbutuhaké JavaScript) (eksperimental)',
 'tog-forceeditsummary' => 'Élingna aku menawa kothak ringkesan suntingan isih kosong',
 'tog-watchlisthideown' => 'Delikna suntinganku ing daftar pangawasan',
 'tog-watchlisthidebots' => 'Delikna suntingan ing daftar pangawasan',
@@ -186,7 +186,7 @@ $messages = array(
 'newwindow' => '(buka ing jendhéla anyar)',
 'cancel' => 'Batalna',
 'moredotdotdot' => 'Liyané...',
-'morenotlisted' => 'Isih ana...',
+'morenotlisted' => 'Isih ana sing ora didaptarne...',
 'mypage' => 'Kaca',
 'mytalk' => 'Wicara',
 'anontalk' => 'Dhiskusi IP puniki',
@@ -289,7 +289,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Prakara {{SITENAME}}',
 'aboutpage' => 'Project:Prakara',
-'copyright' => 'Kabèh tèks kasedyakaké miturut $1.',
+'copyright' => 'Kabèh isi kasedyakaké miturut $1.',
 'copyrightpage' => '{{ns:project}}:Hak cipta',
 'currentevents' => 'Prastawa saiki',
 'currentevents-url' => 'Project:Prastawa saiki',
@@ -441,9 +441,9 @@ Pangurus sing ngopèni kuwi ngawedharaké: "$3".',
 # Login and logout pages
 'logouttext' => "'''Sampéyan wis metu log'''
 
-Sampéyan bisa nganggo {{SITENAME}} sacara anonim, utawa bisa <span class='plainlinks'>[$1 mlebu log manèh]</span> kanthi jeneng panganggo sing padha utawa beda.
+Sampéyan isa nganggo {{SITENAME}} sacara anonim, utawa isa <span class='plainlinks'>[$1 mlebu log manèh]</span> kanthi jeneng panganggo sing padha utawa beda.
 
-Cathet yèn sapérangan kaca mungkin isih nampilaké tulisan yèn Sampéyan isih nèng njero log, kuwi bisa ilang yèn Sampéyan ngresiki ''cache'' pramban Sampéyan.",
+Cathet yèn sapérangan kaca mungkin isih nampilaké kayata sampéyan isih mlebu log, kuwi bisa ilang yèn sampéyan ngresiki ''cache'' pramban sampéyan.",
 'welcomeuser' => 'Sugeng Rawuh, $1!',
 'welcomecreation-msg' => 'Akun panjenengan wis kacipta. Aja lali nata konfigurasi [[Special:Preferences|preferensi {{SITENAME}}]] panjenengan.',
 'yourname' => 'Asma pangangeman',
@@ -469,7 +469,7 @@ Cathet yèn sapérangan kaca mungkin isih nampilaké tulisan yèn Sampéyan isih
 'gotaccount' => "Wis kagungan akun? '''$1'''.",
 'gotaccountlink' => 'Mlebu',
 'userlogin-resetlink' => 'Lali rincian mlebu log Sampéyan?',
-'createaccountmail' => 'Nganggoa sandi sembarang lan kirimna liwat layang e-mail ing ngisor iki',
+'createaccountmail' => 'Nganggoa sandi sauntara sembarang lan kirimna liwat layang e-mail ing ngisor iki',
 'createaccountreason' => 'Alesan:',
 'badretype' => 'Sandhi panjenengan ora gathuk',
 'userexists' => 'Jeneng panganggo sing dilebokaké lagi dianggo.
@@ -517,7 +517,7 @@ Amarga saka kuwi., tamu kanthi alamat IP iki ora bisa gawé akun manèh kanggo s
 'cannotchangeemail' => 'Alamat layang èlèktronik akun ora bisa diganti nèng wiki iki.',
 'emaildisabled' => 'Situs iki ora bisa ngirim layang èlèktronik.',
 'accountcreated' => 'Akun wis kacipta.',
-'accountcreatedtext' => 'Akun kanggo $1 wis digawé.',
+'accountcreatedtext' => 'Akun panganggo kanggo $1 wis digawé.',
 'createaccount-title' => 'Gawé rékening kanggo {{SITENAME}}',
 'createaccount-text' => 'Ana wong sing nggawé sawijining akun utawa rékening kanggo alamat e-mail panjenengan ing {{SITENAME}} ($4) mawa jeneng "$2" lan tembung sandi "$3". Panjenengan disaranaké kanggo mlebu log lan ngganti tembung sandi panjenengan saiki.
 
@@ -670,9 +670,9 @@ Bagéan iki manawa wis dipindhah utawa dibusak nalika panjenengan buka.',
 'loginreqlink' => 'mlebu log',
 'loginreqpagetext' => 'Panjenengan kudu $1 kanggo bisa mirsani kaca liyané.',
 'accmailtitle' => 'Tembung sandhi wis dikirim.',
-'accmailtext' => "Sawijining tembung sandi acak kanggo [[User talk:$1|$1]] wis digawé lan dikirim menyang $2.
+'accmailtext' => "Sawijining tembung sandi sembarang kanggo [[User talk:$1|$1]] wis dikirim menyang $2.
 
-Tembung sandi kanggo akun anyar iki bisa diganti ing kaca ''[[Special:ChangePassword|ganti tembung sandi]]'' sawisé mlebu log.",
+Tembung sandi kanggo panganggo anyar iki isa diganti ing kaca ''[[Special:ChangePassword|ganti tembung sandi]]'' sawisé mlebu log.",
 'newarticle' => '(Anyar)',
 'newarticletext' => "Katonané panjenengan ngetutaké pranala artikel sing durung ana.
 Manawa kersa manulis artikel iki, manggaa. (Mangga mirsani [[{{MediaWiki:Helppage}}|Pitulung]] kanggo informasi sabanjuré).
@@ -1150,7 +1150,7 @@ Aja luwih saka {{PLURAL:$1|karakter|karakter}}.',
 'gender-unknown' => 'Ora dinyatakaké',
 'gender-male' => 'Lanang',
 'gender-female' => 'Wadon',
-'prefs-help-gender' => 'Opsional: dipigunakaké kanggo panyebutan jinis kelamin sing bener déning piranti alus.
+'prefs-help-gender' => 'Opsional: Dipigunakaké kanggo panyebutan jinis kelamin sing bener déning piranti alus.
 Informasi iki bakal kabuka kanggo publik.',
 'email' => 'Layang élèktronik (E-mail)',
 'prefs-help-realname' => '* <strong>Asma asli</strong> (ora wajib): menawa panjenengan maringi, asma asli panjenengan bakal digunakaké kanggo mènèhi akrédhitasi kanggo kasil karya tulis panjenengan.',
@@ -1195,7 +1195,7 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'userrights-no-interwiki' => 'Panjenengan ora ana hak kanggo ngowahi hak panganggo ing wiki liyané.',
 'userrights-nodatabase' => 'Basis data $1 ora ana utawa ora lokal.',
 'userrights-nologin' => 'Panjenengan kudu [[Special:UserLogin|mlebu log]] mawa nganggo akun utawa rékening pangurus supaya bisa ngowahi hak panganggo.',
-'userrights-notallowed' => 'Akun Sampéyan ora nduwé idin kanggo nambah utawa nyuda hak-hak panganggo.',
+'userrights-notallowed' => 'Sampéyan ora nduwé idin kanggo nambah utawa nyuda hak-hak panganggo.',
 'userrights-changeable-col' => 'Grup sing bisa panjenengan owahi',
 'userrights-unchangeable-col' => 'Grup sing ora bisa diowahi panjenengan',
 
@@ -1362,7 +1362,7 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'rc_categories_any' => 'Apa waé',
 'rc-change-size-new' => '$1 {{PLURAL:$1|bita|bita}} sakwisé diowah',
 'newsectionsummary' => '/* $1 */ bagéyan anyar',
-'rc-enhanced-expand' => 'Tuduhaké princèn (merlokaké JavaScript)',
+'rc-enhanced-expand' => 'Tuduhaké princèn',
 'rc-enhanced-hide' => 'Dhelikaké princèn',
 'rc-old-title' => 'wigatiné digawé minangka "$1"',
 
@@ -1610,7 +1610,7 @@ Mbok-menawa panjenengan bisa nyoba manèh ing wektu sing luwih longgar.',
 'upload_source_file' => ' (sawijining berkas ing komputeré panjenengan)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Kaca astamiwa nudhuhaké kabèk kaca kaunggah.
+'listfiles-summary' => 'Kaca astamiwa nudhuhaké kabèh berkas kaunggah.
 Yèn disaring déning panganggo, namung berkas mawa vèrsi paling anyar waé sing bakal katon.',
 'listfiles_search_for' => 'Golèk jeneng gambar:',
 'imgfile' => 'gambar',
@@ -3584,7 +3584,7 @@ Anda seharusnya telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi
 'logentry-newusers-create2' => 'Akun panganggo $3 digawé déning $1',
 'logentry-newusers-byemail' => 'Akun pengguna $3 dibuat oleh $1 dan kata sandi dikirim melalui e-mail',
 'logentry-newusers-autocreate' => 'Akun $1 digawé otomatis',
-'logentry-rights-rights' => 'ngganti kaanggotan kelompok kanggo $3 saka $4 dadi $5',
+'logentry-rights-rights' => '$1 {{GENDER:$2|ngganti}} kaanggotan kelompok kanggo $3 saka $4 dadi $5',
 'logentry-rights-rights-legacy' => '$1 mengubah keanggotaan grup $3',
 'logentry-rights-autopromote' => 'otomatis ditawakaké saka $4 nèng $5',
 'rightsnone' => '(ora ana)',
index b2299c0..291790a 100644 (file)
@@ -212,6 +212,7 @@ $messages = array(
 'tog-noconvertlink' => 'სათაურის გარდაქმნის ბმულის გამორთვა',
 'tog-norollbackdiff' => 'გაუქმებისას გამოტოვეთ ცვლილებათა განსხვავება',
 'tog-useeditwarning' => 'გამაფრთხილე, როდესაც დავტოვებ რედაქტირებად გვერდს, დაუმახსოვრებელი ცვლილებებით',
+'tog-prefershttps' => 'უსაფრთხო კავშირის მუდამ გამოყენება ავტორიზაციის შემდეგ',
 
 'underline-always' => 'მუდამ',
 'underline-never' => 'არასდროს',
@@ -445,7 +446,7 @@ $1',
 'pagetitle' => '$1 - {{SITENAME}}',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
 'backlinksubtitle' => '← $1',
-'retrievedfrom' => 'მოძიებულია „$1\83\93á\83\90á\83\9câ\80\9c',
+'retrievedfrom' => 'მოძიებულია „$1â\80\9c\83\93á\83\90á\83\9c',
 'youhavenewmessages' => 'თქვენ გაქვთ $1 ($2).',
 'newmessageslink' => 'ახალი შეტყობინებები',
 'newmessagesdifflink' => 'განსხვავება წინა ვერსიასთან',
@@ -473,8 +474,8 @@ $1',
 'feed-unavailable' => 'სინდიკაციის კენტები მიუწვდომელია',
 'site-rss-feed' => '$1-ის არხი RSS',
 'site-atom-feed' => '$1-ის არხი Atom',
-'page-rss-feed' => '„$1-ის“ არხი RSS',
-'page-atom-feed' => '„$1-ის“ არხი Atom',
+'page-rss-feed' => '„$1“-ის არხი RSS',
+'page-atom-feed' => '„$1“-ის არხი Atom',
 'feed-atom' => 'Atom',
 'feed-rss' => 'RSS',
 'red-link-title' => '$1 (გვერდი არ არსებობს)',
@@ -523,9 +524,9 @@ $1',
 'readonly_lag' => 'მონაცემთა ბაზა ავტომატურად დაიხურა, სანამ შვილობილი ბაზის სერვერები მთავარ ბაზასთან სინქრონიზაციას ახდენს',
 'internalerror' => 'შიდა შეცდომა',
 'internalerror_info' => 'შიდა შეცდომა: $1',
-'fileappenderrorread' => 'შეუძლებელია „$1-ის“ წაკითხვა დამატებისას.',
-'fileappenderror' => 'ვერ მოხერხდა „$1“ შეერთება „$2\83\97á\83\90á\83\9câ\80\9c',
-'filecopyerror' => '„$1“ ფაილის „$2-ზე“ კოპირება ვერ მოხერხდა.',
+'fileappenderrorread' => 'შეუძლებელია „$1“-ის წაკითხვა დამატებისას.',
+'fileappenderror' => 'ვერ მოხერხდა „$1“ შეერთება „$2â\80\9c\83\97á\83\90á\83\9c',
+'filecopyerror' => '„$1“ ფაილის „$2“-ზე კოპირება ვერ მოხერხდა.',
 'filerenameerror' => 'შეუძლებელია ფაილის „$1“ სათაურის შეცვლა სახელწოდებით „$2“.',
 'filedeleteerror' => 'ფაილის „$1“ წაშლა ვერ მოხერხდა.',
 'directorycreateerror' => 'დირექტორიის „$1“ შექმნა შეუძლებელია.',
@@ -1094,12 +1095,12 @@ $3 -ემ ამგვარი ახსნა : ''$2''",
 'rev-suppressed-no-diff' => "თქვენ არ შეგიძლიათ ამ განსხვავების ნახვა, რადგან ერთ-ერთი ცვლილება '''წაშლილია'''.",
 'rev-deleted-unhide-diff' => "გვერდის ერთ-ერთი ვერსია '''წაიშალა'''.
 დეტალები შეგიძლიათ იხილოთ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].
-სურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ განსხვავება ვერსიაში].",
+სურვილის შემთხვევაში, თქვენ შეგიძლიათ [$1 იხილოთ განსხვავება ვერსიაში].",
 'rev-suppressed-unhide-diff' => "ამ ვერსიის შედარების ერთ–ერთი ვერსია '''დაიმალა'''.
 დეტალები შეგიძლიათ იხილოთ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} დამალვების ჟურნალში].
 თქვენ, შეგიძლიათ [$1 იხილოთ ეს შედარება].",
-'rev-deleted-diff-view' => "ამ ვერსიის შედარების ერთერთი ვერსია '''წაიშალა'''.
-თქვენ, შეგიძლიათ იხილოთ ეს შედარება. დეტალები შეგიძლიათ იხილოთ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].",
+'rev-deleted-diff-view' => "ამ ვერსიის შედარების ერთ-ერთი ვერსია '''წაიშალა'''.
+თქვენ შეგიძლიათ იხილოთ ეს შედარება. დეტალები შეგიძლიათ იხილოთ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].",
 'rev-suppressed-diff-view' => "ამ ვერსიის შედარების ერთ–ერთი ვერსია '''დაიმალა'''.
 თქვენ, შეგიძლიათ იხილოთ ეს შედარება. დეტალები შეგიძლიათ იხილოთ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} დამალვების ჟურნალში].",
 'rev-delundel' => 'ჩვენება/დამალვა',
@@ -1236,7 +1237,7 @@ $1",
 'shown-title' => 'აჩვენეთ $1 {{PLURAL:$1|რეზულტატი|რეზულტატი}} გვერდზე',
 'viewprevnext' => 'იხილე  ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'ძიების დაწყობა:',
-'searchmenu-exists' => "'''ამ ვიკიპროექტში არის გვერდი «[[:$1]]»'''",
+'searchmenu-exists' => "'''ამ ვიკიპროექტში არის გვერდი „[[:$1]]“'''",
 'searchmenu-new' => "'''შექმენით გვერდი „[[:$1]]“ ამ ვიკიში!'''",
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|აჩვენეთ გვერდები ამ პრეფიქსით]]',
 'searchprofile-articles' => 'ძირითადი გვერდები',
@@ -1351,7 +1352,7 @@ $1",
 'prefs-custom-js' => 'მომხმარებლის JS',
 'prefs-common-css-js' => 'ზოგადი CSS/JS ყველა თემისთვის:',
 'prefs-reset-intro' => 'ეს გვერდი შეიძლება გამოყენებული იქნეს თქვენი კონფიგურაციის შესაცვლელად საწყის კონფიგურაციაზე. ამ მოქმედების დადასტურების შემთხვევაში, თქვენ ვეღარ შეძლებთ მის გაუქმებას.',
-'prefs-emailconfirm-label' => 'ელფოსტის დადასტურება:',
+'prefs-emailconfirm-label' => 'ელ-ფოსტის დადასტურება:',
 'youremail' => 'ელექტრონული ფოსტა:',
 'username' => '{{GENDER:$1|მომხმარებლის სახელი}}:',
 'uid' => '{{GENDER:$1|მომხმარებლის}} იდენტიფიკატორი:',
@@ -1364,7 +1365,7 @@ $1",
 'yourvariant' => 'შინაარსის ენის ვარიანტი:',
 'prefs-help-variant' => 'საურველი დაწერილობა ან ორთოგრაფია, რომელშიც  უნდა იყოს ნაჩვენები ვიკის გვერდები.',
 'yournick' => 'მეტსახელი:',
-'prefs-help-signature' => 'á\83\99á\83\9dá\83\9bá\83\94á\83\9cá\83¢á\83\90á\83 á\83\94á\83\91á\83\98 á\83\92á\83\90á\83\9cá\83®á\83\98á\83\9aá\83\95á\83\98á\83¡ á\83\92á\83\95á\83\94á\83 á\83\93á\83\94á\83\91á\83\96á\83\94 á\83£á\83\9cá\83\93á\83\90 á\83\98á\83§á\83\95á\83\9cá\83\94á\83\9c á\83®á\83\94á\83\9aá\83\9bá\83\9dá\83¬á\83\94á\83 á\83\98á\83\9aá\83\9cá\83\98 Â«<nowiki>~~~~</nowiki>» á\83¡á\83\98á\83\9bá\83\91á\83\9dá\83\9aá\83\9dá\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\94á\83¨á\83\95á\83\94á\83\9dá\83\91á\83\98á\83\97, á\83 á\83\9dá\83\9bá\83\9aá\83\94á\83\91á\83\98á\83ª á\83\92á\83\90á\83\93á\83\90á\83\99á\83\94á\83\97á\83\93á\83\94á\83\91á\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9c ხელმოწერად და ხელმოწერის დროთი.',
+'prefs-help-signature' => 'á\83\99á\83\9dá\83\9bá\83\94á\83\9cá\83¢á\83\90á\83 á\83\94á\83\91á\83\98 á\83\92á\83\90á\83\9cá\83®á\83\98á\83\9aá\83\95á\83\98á\83¡ á\83\92á\83\95á\83\94á\83 á\83\93á\83\94á\83\91á\83\96á\83\94 á\83®á\83\94á\83\9aá\83\9bá\83\9dá\83¬á\83\94á\83 á\83\98á\83\9aá\83\98 á\83£á\83\9cá\83\93á\83\90 á\83\98á\83§á\83\9dá\83¡ â\80\9e<nowiki>~~~~</nowiki>â\80\9c á\83¡á\83\98á\83\9bá\83\91á\83\9dá\83\9aá\83\9dá\83\94á\83\91á\83\98á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83\98á\83\97, á\83 á\83\9dá\83\9bá\83\9aá\83\94á\83\91á\83\98á\83ª á\83\92á\83\90á\83\93á\83\90á\83\99á\83\94á\83\97á\83\93á\83\94á\83\91á\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83¡ ხელმოწერად და ხელმოწერის დროთი.',
 'badsig' => 'არასწორი ნედლი ხელმოწერა; შეამოწმეთ HTML ჭდეები.',
 'badsiglength' => 'ხელმოწერა ძალიან გრძელია.
 უნდა შედგებოდეს მაქსიმუმ $1 ნიშნისაგან.',
@@ -1376,8 +1377,8 @@ $1",
 ეს ინფორმაცია საზოგადოებრივი  იქნება.',
 'email' => 'ელ. ფოსტა',
 'prefs-help-realname' => 'ნამდვილი სახელის მითითება აუცილებელი არ არის, მაგრამ თუ მიუთითებთ ის გამოყენებული იქნება თქვენი ნამუშევრის აღსანიშნავად.',
-'prefs-help-email' => 'ელ. ფოსტის მისამართი არ არის სავალდებულო, მაგრამ იძლევა ახალი პაროლის გამოგზავნის საშუალებას თქვენი პაროლის დავიწყების შემთხვევაში.',
-'prefs-help-email-others' => 'ის აგრეთვე მისცემს საშუალებას სხვა მომხმარებლებს დაგიკავშირდნენ თქვენ პირადი გვერდის საშუალებით თქვენი ელექტრონული ფოსტის მისამართის გამხელის გარეშე.',
+'prefs-help-email' => 'á\83\94á\83\9a. á\83¤á\83\9dá\83¡á\83¢á\83\98á\83¡ á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡ á\83¡á\83\90á\83\95á\83\90á\83\9aá\83\93á\83\94á\83\91á\83£á\83\9aá\83\9d, á\83\9bá\83\90á\83\92á\83 á\83\90á\83\9b á\83\9bá\83\98á\83¡á\83\98 á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83\90 á\83\98á\83«á\83\9aá\83\94á\83\95á\83\90 á\83\90á\83®á\83\90á\83\9aá\83\98 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83\92á\83\96á\83\90á\83\95á\83\9cá\83\98á\83¡ á\83¡á\83\90á\83¨á\83£á\83\90á\83\9aá\83\94á\83\91á\83\90á\83¡ á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\93á\83\90á\83\95á\83\98á\83¬á\83§á\83\94á\83\91á\83\98á\83¡ á\83¨á\83\94á\83\9bá\83\97á\83®á\83\95á\83\94á\83\95á\83\90á\83¨á\83\98.',
+'prefs-help-email-others' => 'ის აგრეთვე მისცემს საშუალებას სხვა მომხმარებლებს, დაგიკავშირდნენ თქვენს პირად გვერდზე მითითებული ბმულის მეშვეობით. თქვენი ელ. ფოსტის მისამართი არ იქნება გამხელილი, როდესაც სხვა მომხმარებლები დაგიკავშირდებიან.',
 'prefs-help-email-required' => 'თქვენი ელ-ფოსტის მისამართი აუცილებელია.',
 'prefs-info' => 'საბაზისო ინფორმაცია',
 'prefs-i18n' => 'ინტერნაციონალიზაცია',
@@ -1394,6 +1395,7 @@ $1",
 'prefs-displaysearchoptions' => 'გამოსახვის კონფიგურაციები',
 'prefs-displaywatchlist' => 'გამოსახვის კონფიგურაციები',
 'prefs-diffs' => 'სხვაობა ვერსიებს შორის',
+'prefs-help-prefershttps' => 'ამ კონფიგურაციის არჩევა შედეგს გამოიღებს შემდგომი ავტორიზაციის შედმეგ.',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => 'ელ-ფოსტის მისამართი სწორად გამოიყურება',
@@ -1422,7 +1424,7 @@ $1",
 'userrights-changeable-col' => 'ჯგუფები, რომლებიც შეგიძლიათ შეცვალოთ',
 'userrights-unchangeable-col' => 'ჯგუფები, რომლებიც არ შეგიძლიათ შეცვალოთ',
 'userrights-irreversible-marker' => '$1*',
-'userrights-conflict' => 'მომხმარებელთა უფლებების კონფლიქტი! გთხოვთ, ხელმეორედ შეინახოთ თქვენი ცვლილებები.',
+'userrights-conflict' => 'მომხმარებელთა უფლებების კონფლიქტი! გთხოვთ ხელმეორედ შეინახოთ თქვენი ცვლილებები.',
 
 # Groups
 'group' => 'ჯგუფი:',
@@ -1772,7 +1774,7 @@ $1',
 # Lock manager
 'lockmanager-notlocked' => '"$1"–ის განბლოკვა ვერ მოხერხდა; ის არ არის დაბლოკილი.',
 'lockmanager-fail-closelock' => 'ბლოკირების ფაილის დახურვა "$1"–თვის ვერ მოხერხდა.',
-'lockmanager-fail-deletelock' => 'ბლოკირების ფაილის წაშლა "$1"–თვის ვერ მოხერხდა.',
+'lockmanager-fail-deletelock' => 'ბლოკირების ფაილის წაშლა „$1“-თვის ვერ მოხერხდა.',
 'lockmanager-fail-acquirelock' => '"$1"–ის ბლოკირება ვერ მოხერხდა.',
 'lockmanager-fail-openlock' => 'ბლოკირების ფაილის გახსნა "$1"–თვის ვერ მოხერხდა.',
 'lockmanager-fail-releaselock' => '"$1"–ის განბლოკვა ვერ მოხერხდა.',
@@ -2305,7 +2307,7 @@ $UNWATCHURL
 'excontentauthor' => 'შინაარსი იყო: „$1“ (და ერთადერთი ავტორი იყო „[[Special:Contributions/$2|$2]]“)',
 'exbeforeblank' => 'გვერდის შინაარსი წაშლამდე იყო შემდეგი: „$1“',
 'exblank' => 'გვერდი ცარიელი იყო',
-'delete-confirm' => '„$1-ის“ წაშლა',
+'delete-confirm' => '„$1“-ის წაშლა',
 'delete-legend' => 'წაშლა',
 'historywarning' => "'''ყურადღება:''' გვერდს, რომლის წაშლასაც აპირებთ, აქვს დიდი ისტორია: ($1)",
 'confirmdeletetext' => 'თქვენ მოითხოვეთ გვერდისა (ან ფაილისა) და მონაცემთა ბაზიდან მისი ისტორიის წაშლა.
@@ -2747,7 +2749,7 @@ $1',
 
 სტატია დასახელებით „[[:$1]]“ უკვე არსებობს. გსურთ მისი წაშლა გადატანისთვის ადგილის დასათმობად?',
 'delete_and_move_confirm' => 'დიახ, წაშალეთ ეს გვერდი',
-'delete_and_move_reason' => 'წაშლილია „[[$1]]\83\93á\83\90á\83\9câ\80\9c á\83\92á\83\90á\83\93á\83\90á\83¢á\83\90á\83\9cá\83\98á\83¡á\83\97á\83\95á\83\98á\83¡ á\83\90á\83\93á\83\92á\83\98á\83\9aá\83\98á\83¡ á\83\93á\83\90á\83¡á\83\90á\83\97á\83\9bá\83\9dá\83\91á\83\90á\83\93',
+'delete_and_move_reason' => 'წაშლილია „[[$1]]â\80\9c\83\93á\83\90á\83\9c á\83\92á\83\90á\83\93á\83\90á\83¢á\83\90á\83\9cá\83\98á\83¡á\83\97á\83\95á\83\98á\83¡ á\83\90á\83\93á\83\92á\83\98á\83\9aá\83\98á\83¡ á\83\93á\83\90á\83¡á\83\90á\83\97á\83\9bá\83\9dá\83\91á\83\90á\83\93',
 'selfmove' => 'წყარო და დანიშნულების სათაურები მსგავსია; შეუძლებელია გვერდის საკუთარ თავზე გადატანა.',
 'immobile-source-namespace' => 'შეუძლებელია სახელის გადარქმევა „$1“ სახელთა სივრცეში',
 'immobile-target-namespace' => 'შეუძლებელია გვერდის გადატანა „$1“ სახელთა სივრცეში',
@@ -3061,7 +3063,7 @@ $2',
 'markedaspatrollederror' => 'შეუძლებელია ამ სტატიის მოhttp://translatewiki.net/w/i.php?title=MediaWiki:Markedaspatrollederror/ka&action=edit&loadgroup=core&loadtask=untranslatedნიშნვნა პატრულირებულად.',
 'markedaspatrollederrortext' => 'თქვენ უნდა მონიშნოთ ვერსია, რომელიც პატრულირებულად ჩაითვლება.',
 'markedaspatrollederror-noautopatrol' => 'თქვენ ვერ მონიშნავთ თქვენივე შესწორებებს პატრულირებულად.',
-'markedaspatrollednotify' => 'ეს ცვლილება გვერდზე $1 პატრულირებულად მოინიშნა.',
+'markedaspatrollednotify' => 'ეს ცვლილება გვერდზე „$1“ პატრულირებულად მოინიშნა.',
 'markedaspatrollederrornotify' => 'პატრულირებულად მონიშვნა ვერ მოხერხდა.',
 
 # Patrol log
@@ -3679,7 +3681,7 @@ $3
 $5
 
 წერილი მოძველდება $4.',
-'confirmemail_invalidated' => 'ელფოსტის დადასტურება გაუქმდა',
+'confirmemail_invalidated' => 'ელ-ფოსტის დადასტურება გაუქმდა',
 'invalidateemail' => 'ელ-ფოსტის დადასტურების გაუქმება',
 
 # Scary transclusion
@@ -3900,11 +3902,11 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 #ხაზები გრძნობადები არიან რეგისტრისადმი.</pre>',
 
 # Special:Tags
-'tags' => 'á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90á\83\97á\83\90 á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\98 á\83\90á\83¦ნიშვნები',
-'tag-filter' => '[[Special:Tags|á\83\90á\83¦ნიშვნათა]] ფილტრი',
+'tags' => 'á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90á\83\97á\83\90 á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\98 á\83\9bá\83\9dნიშვნები',
+'tag-filter' => '[[Special:Tags|á\83\9bá\83\9dნიშვნათა]] ფილტრი',
 'tag-filter-submit' => 'გაფილტვრა',
-'tags-title' => 'á\83\90á\83¦ნიშვნები',
-'tags-intro' => 'á\83\90á\83\9b á\83\92á\83\95á\83\94á\83 á\83\93á\83\96á\83\94 á\83¬á\83\90á\83 á\83\9bá\83\9dá\83\93á\83\92á\83\94á\83\9cá\83\98á\83\9aá\83\98á\83\90 á\83\98á\83\9b á\83\90á\83¦á\83\9cá\83\98á\83¨á\83\95á\83\9cá\83\90á\83\97á\83\90 á\83¡á\83\98á\83\90, á\83 á\83\9dá\83\9bá\83\94á\83\9aá\83\98á\83\97á\83\90á\83ª á\83\9eá\83 á\83\9dá\83\92á\83 á\83\90á\83\9bá\83£á\83\9aá\83\98 á\83£á\83\96á\83 á\83£á\83\9cá\83\95á\83\94á\83\9aá\83§á\83\9dá\83¤á\83\90 á\83\90á\83¦á\83\9cá\83\98á\83¨á\83\9cá\83\90á\83\95á\83¡ á\83¨á\83\94á\83¡á\83¬á\83\9dá\83 á\83\94á\83\91á\83\94á\83\91á\83¡, á\83\93á\83\90 á\83\90á\83¡á\83\94á\83\95á\83\94 á\83\90á\83\9b á\83\90á\83¦ნიშვნათა მნიშვნელობებს.',
+'tags-title' => 'á\83\9bá\83\9dნიშვნები',
+'tags-intro' => 'á\83\90á\83\9b á\83\92á\83\95á\83\94á\83 á\83\93á\83\96á\83\94 á\83¬á\83\90á\83 á\83\9bá\83\9dá\83\93á\83\92á\83\94á\83\9cá\83\98á\83\9aá\83\98á\83\90 á\83\98á\83\9b á\83\9bá\83\9dá\83\9cá\83\98á\83¨á\83\95á\83\9cá\83\90á\83\97á\83\90 á\83¡á\83\98á\83\90, á\83 á\83\9dá\83\9bá\83\9aá\83\98á\83\97á\83\90á\83ª á\83\9eá\83 á\83\9dá\83\92á\83 á\83\90á\83\9bá\83£á\83\9aá\83\98 á\83£á\83\96á\83 á\83£á\83\9cá\83\95á\83\94á\83\9aá\83§á\83\9dá\83¤á\83\90 á\83\9bá\83\9dá\83\9cá\83\98á\83¨á\83\9cá\83\90á\83\95á\83¡ á\83¨á\83\94á\83¡á\83¬á\83\9dá\83 á\83\94á\83\91á\83\94á\83\91á\83¡ á\83\93á\83\90 á\83\90á\83¡á\83\94á\83\95á\83\94 á\83\90á\83\9b á\83\9bá\83\9dნიშვნათა მნიშვნელობებს.',
 'tags-tag' => 'ტეგის სახელი',
 'tags-display-header' => 'რედაქტირებების სიაში ცვლილებების წარმოდგენა',
 'tags-description-header' => 'მნიშვნელობის სრული აღწერა',
index 8cd646d..918c89f 100644 (file)
@@ -505,7 +505,7 @@ $messages = array(
 'newwindow' => '(жаңа терезеде ашу)',
 'cancel' => 'Болдырмау',
 'moredotdotdot' => 'Көбірек…',
-'morenotlisted' => 'Басқасы көрсетілмеген...',
+'morenotlisted' => 'Бұл тізім толық емес.',
 'mypage' => 'Жеке бет',
 'mytalk' => 'Талқылау',
 'anontalk' => 'IP талқылауы',
@@ -536,7 +536,7 @@ $messages = array(
 'vector-view-view' => 'Оқу',
 'vector-view-viewsource' => 'Қайнарын қарау',
 'actions' => 'Әрекеттер',
-'namespaces' => 'Ð\95Ñ\81Ñ\96м ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96гі',
+'namespaces' => 'Ð\95Ñ\81Ñ\96м ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96кÑ\82еÑ\80і',
 'variants' => 'Нұсқалар',
 
 'navigation-heading' => 'Бағыттау мәзірі',
@@ -551,22 +551,22 @@ $messages = array(
 'history' => 'Бет тарихы',
 'history_short' => 'Тарихы',
 'updatedmarker' => 'соңғы қаралғаннан кейін жаңартылған',
-'printableversion' => 'Басып шығару үшін',
+'printableversion' => 'Басып шығару нұсқасы',
 'permalink' => 'Тұрақты сілтеме',
 'print' => 'Басып шығару',
 'view' => 'Қарау',
 'edit' => 'Өңдеу',
 'create' => 'Бастау',
-'editthispage' => 'Бетті өңдеу',
+'editthispage' => 'Бұл бетті өңдеу',
 'create-this-page' => 'Осы бетті бастау',
 'delete' => 'Жою',
-'deletethispage' => 'Бетті жою',
+'deletethispage' => 'Бұл бетті жою',
 'undeletethispage' => 'Жойылған бетті қайтару',
 'undelete_short' => '{{PLURAL:$1|өңдеме|$1 өңдеме}} жоюын болдырмау',
 'viewdeleted_short' => '{{PLURAL:$1|жойылған өңдеуді|$1 жойылған өңдеулерді }} көру',
 'protect' => 'Қорғау',
 'protect_change' => 'өзгерту',
-'protectthispage' => 'Бетті қорғау',
+'protectthispage' => 'Бұл бетті қорғау',
 'unprotect' => 'Қорғалуын өзгерту',
 'unprotectthispage' => 'Бұл беттің қорғауын өзгерту',
 'newpage' => 'Жаңа бет',
@@ -593,7 +593,7 @@ $messages = array(
 'lastmodifiedat' => 'Бұл беттің соңғы өзгертілген кезі: $2, $1.',
 'viewcount' => 'Бұл бет {{PLURAL:$1|бір рет|$1 уақыт}} қатыналған.',
 'protectedpage' => 'Қорғалған бет',
-'jumpto' => 'Мында өту:',
+'jumpto' => 'Мұнда ауысу:',
 'jumptonavigation' => 'шарлау',
 'jumptosearch' => 'іздеу',
 'view-pool-error' => 'Кешіріңіз, қазір серверлер шектен тыс жүктелуде.
@@ -655,7 +655,7 @@ $1',
 'collapsible-expand' => 'Жазу',
 'thisisdeleted' => '$1 қарайсыз ба, немесе қалпына келтіресіз бе?',
 'viewdeleted' => '$1 қарайсыз ба?',
-'restorelink' => 'Жойылған $1 өңдемені',
+'restorelink' => '{{PLURAL:$1|жойылған өңдеме|$1 жойылған өңдемелер}}',
 'feedlinks' => 'Арна:',
 'feed-invalid' => 'Жарамсыз жазылымды арна түрі.',
 'feed-unavailable' => 'Синдикация таспалары қолжетімсіз',
@@ -692,6 +692,8 @@ $1',
 # General errors
 'error' => 'Қате',
 'databaseerror' => 'Дерекқор қатесі',
+'databaseerror-query' => 'Сұрау:$1',
+'databaseerror-error' => 'Қате:$1',
 'laggedslavemode' => "'''Ескерту:''' Бетте жуықтағы жаңартулар болмауы мүмкін.",
 'readonly' => 'Дерекқоры құлыпталған',
 'enterlockreason' => 'Құлыптау себебін, қай уақытқа дейін құлыпталғанын кірістіріп, енгізіңіз.',
@@ -704,7 +706,7 @@ $1',
 
 Егер бұл орынды болмаса, бағдарламалық жасақтамадағы қатеге тап болуыңыз мүмкін.
 Бұл туралы нақты URL жайына аңғартпа жасап, [[Special:ListUsers/sysop|әкімшіге]] баяндаңыз.',
-'missingarticle-rev' => '(түзету нұсқасы: $1)',
+'missingarticle-rev' => '(түзету нұсқасы#: $1)',
 'missingarticle-diff' => '(Айырым: $1, $2)',
 'readonly_lag' => 'Жетек дерекқор серверлер басқасымен қадамланғанда осы дерекқор өздіктік құлыпталынған',
 'internalerror' => 'Ішкі қате',
@@ -742,8 +744,8 @@ $1',
 'protectedpagetext' => 'Бұл бет өңдеу немесе басқа өзгерістер енгізілмес үшін қорғалған.',
 'viewsourcetext' => 'Бұл беттің қайнарын қарауыңызға және көшіріп алуыңызға болады:',
 'viewyourtext' => 'Осы бет арқылы "өзіңіз жасаған өңдеулердің" бастапқы мәтінін көруге және көшіруге мүмкіндігіңіз болады.',
-'protectedinterface' => 'Бұл бет бағдарламалық жасақтаманың тілдесу мәтінін жетістіреді, сондықтан қиянатты қақпайлау үшін өзгертуі құлыпталған
\91аÑ\80лÑ\8bÒ\9b Ñ\83икилеÑ\80 Ò¯Ñ\88Ñ\96н Ð°Ñ\83даÑ\80малаÑ\80дÑ\8b Ó©Ð·Ð³ÐµÑ\80Ñ\82Ñ\83 Ð½ÐµÐ¼ÐµÑ\81е Ò\9bоÑ\81Ñ\83 Ò¯Ñ\88Ñ\96н [//translatewiki.net/ translatewiki.net] Ð\9cедиаУики Ð¶ÐµÑ\80леÑ\81Ñ\82Ñ\96Ñ\80Ñ\83 Ð¶Ð¾Ð±Ð°Ñ\81Ñ\8bн Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\8bÒ£Ñ\8bз.',
+'protectedinterface' => 'Бұл MediaWiki-дің [[Уикипедия:Интерфейсті аудару|жүйе хабарламасы]], оны тек жоба [[Уикипедия:Әкімшілер|әкімшілер]] ғана өзгерте алады
\9aейбÑ\96Ñ\80 Ñ\85абаÑ\80ламалаÑ\80 [[translatewiki:{{FULLPAGENAME}}/qqq|Ò\9bұжаÑ\82Ñ\82амада]] [[mw:Manual:Interface/{{PAGENAME}}|баÑ\80]].',
 'editinginterface' => "'''Ескерту:''' Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.
 Бұл беттің өзгертуі басқа қатысушыларға пайдаланушылық тілдесуі қалай көрінетіне әсер етеді.
 Барлық уикилер үшін аудармаларды өзгерту немесе қосу үшін [//translatewiki.net/ translatewiki.net] МедиаУики жерлестіру жобасын пайдаланыңыз.",
@@ -781,8 +783,8 @@ $2',
 [[Special:Preferences|{{SITENAME}} баптауларыңызды]] өзгертуді ұмытпаңыз.',
 'yourname' => 'Қатысушы аты:',
 'userlogin-yourname' => 'Қатысушы есіміңіз',
-'userlogin-yourname-ph' => 'Қатысушы есіміңізді еңгізіңіз',
-'createacct-another-username-ph' => 'Қатысушы есіміңізді еңгізіңіз',
+'userlogin-yourname-ph' => 'Қатысушы есіміңізді енгізіңіз',
+'createacct-another-username-ph' => 'Қатысушы есіміңізді енгізіңіз',
 'yourpassword' => 'Құпия сөз:',
 'userlogin-yourpassword' => 'Құпия сөз',
 'userlogin-yourpassword-ph' => 'Құпия сөздіңізді енгізіңіз',
@@ -806,7 +808,7 @@ $2',
 'notloggedin' => 'Кірмегенсіз',
 'userlogin-noaccount' => 'Тіркелгіңіз жоқ па?',
 'userlogin-joinproject' => '{{SITENAME}} жобасына тіркелу',
-'nologin' => "Тіркелгіңіз бар ма? '''$1'''.",
+'nologin' => 'Тіркелгіңіз бар ма? $1.',
 'nologinlink' => 'Тіркелгіңізді жасаңыз',
 'createaccount' => 'Жаңа тіркелгі',
 'gotaccount' => "Бұған дейін тіркеліп пе едіңіз? '''$1'''.",
@@ -829,7 +831,7 @@ $2',
 'createacct-captcha' => 'Құпиялық тексеруі',
 'createacct-imgcaptcha-ph' => 'Жоғарғыдағы көріп тұрған мәтінді енгізіңіз',
 'createacct-submit' => 'Тіркелгіңізді жасаңыз',
-'createacct-another-submit' => 'Бөлек жаңа тіркелгі жасау',
+'createacct-another-submit' => 'Басқа тіркелгі жасау',
 'createacct-benefit-heading' => '{{SITENAME}} сіз сияқты қызығатын адамдар арқылы жасалады.',
 'createacct-benefit-body1' => '{{PLURAL:$1|өңдеме|өңдеме}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|бет|бет}}',
@@ -854,7 +856,7 @@ $2',
 'nosuchuser' => '«$1» деген қатысушы тіркелмеген.
 Қатысушы аттары кіші әріптерден тұру керек.
 Емлеңізді тексеріңіз, немесе [[Special:UserLogin/signup|жаңа тіркелгі жасаңыз]].',
-'nosuchusershort' => 'Мында «$1» деп аталған қатысушы жоқ.
+'nosuchusershort' => 'Мұнда «$1» деп аталған қатысушы жоқ.
 Емлеңізді тексеріңіз.',
 'nouserspecified' => 'Қатысушы атын келтіруіңіз жөн.',
 'login-userblocked' => 'Бұл қатысушы бұғатталған. Жүйеге кiру рұқсат етiлмеген.',
@@ -891,7 +893,7 @@ $2',
 Дұрыс пішімделген е-пошта есімін енгізіңіз, немесе аумақты бос қалдырыңыз.',
 'cannotchangeemail' => 'Тіркелгінің е-поштасының мекен-жайы бұл уикиде өзгертілмейді.',
 'emaildisabled' => 'Бұл сайт е-поштаның хабарламасын жібере алмайды.',
-'accountcreated' => 'Ð\96аңа Ñ\82іркелгі жасалды',
+'accountcreated' => 'Тіркелгі жасалды',
 'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|талқылауы]]) үшін жаңа қатысушы тіркелгісі жасалды.',
 'createaccount-title' => '{{SITENAME}} үшін тіркелу',
 'createaccount-text' => 'Кейбіреу е-пошта мекенжайыңызды пайдаланып {{SITENAME}} жобасында ($4) «$2» атауымен, «$3» құпия сөзімен тіркелгі жасаған.
@@ -899,7 +901,7 @@ $2',
 
 Егер бұл тіркелгі қателікпен жасалса, осы хабарға елемеуіңіз мүмкін.',
 'usernamehasherror' => 'Қатысушы есіміне тор белгі нышаны енгізілмейді.',
-'login-throttled' => 'Сіз жүйеге кіру үшін тым көп талпыныс жасадыңыз. Өтінемін, қайта кірмес бұрын кішкене күте тұрыңыз.',
+'login-throttled' => 'Сіз жүйеге кіру үшін тым көп талпыныс жасадыңыз. Өтінемін, қайта кірмес бұрын $1 күте тұрыңыз.',
 'login-abort-generic' => 'Жүйеге кіру үшін сәтсіз талпыныс жасадыңыз.',
 'loginlanguagelabel' => 'Тіл: $1',
 'suspicious-userlogout' => 'Сіздің жүйеден шығу сұранымыңыз қабылданбады, өйткені, бұл жарамсыз браузер немесе кэштеуші проксидің сұранымына ұқсайды.',
@@ -917,7 +919,7 @@ $2',
 'newpassword' => 'Жаңа құпия сөзіңіз:',
 'retypenew' => 'Жаңа құпия сөзіңізді қайталаңыз:',
 'resetpass_submit' => 'Құпия сөзді қойыңыз да кіріңіз',
-'changepassword-success' => 'Құпия сөзіңіз сәтті өзгертілді! Енді кіріңіз…',
+'changepassword-success' => 'Құпия сөзіңіз сәтті өзгертілді!',
 'resetpass_forbidden' => 'Құпия сөз өзгертілмейді',
 'resetpass-no-info' => 'Бұл бетке тікелей ену үшін, жүйеге кіруіңіз керек.',
 'resetpass-submit-loggedin' => 'Құпия сөзді өзгерту',
@@ -1086,7 +1088,7 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 Жоғарғы кірістіру орнында беттің ағымдық мәтіні бар.
 Төменгі кірістіру орнында сіз өзгерткен мәтіні көрсетіледі.
 Өзгертуіңізді ағымдық мәтінге үстеуіңіз жөн.
-«Бетті сақта! батырмасын басқанда '''тек''' жоғарғы кірістіру орнындағы мәтін сақталады.",
+\"{{int:savearticle}}\" батырмасын басқанда '''тек''' жоғарғы кірістіру орнындағы мәтін сақталады.",
 'yourtext' => 'Мәтініңіз',
 'storedversion' => 'Сақталған нұсқасы',
 'nonunicodebrowser' => "'''ЕСКЕРТУ: Шолғышыңыз Unicode белгілеуіне үйлесімді емес, сондықтан латын емес әріптері бар беттерді өңдеу зіл болу мүмкін.
@@ -1193,10 +1195,10 @@ $3 келтірілген себебі: ''$2''",
 'last' => 'соң.',
 'page_first' => 'алғашқысына',
 'page_last' => 'соңғысына',
-'histlegend' => "</span><br /><span style=\"white-space:nowrap;\">Сыртқы құралдар: [http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?lang=kk.wikipedia&page={{FULLPAGENAMEE}} Өңдеу статистикасы] '''·'''</span> <span style=\"white-space:nowrap;\">[http://wikipedia.ramselehof.de/wikiblame.php?lang=kk&article={{FULLPAGENAMEE}} Өзгеріс тарихын іздеу] '''·'''</span> <span style=\"white-space:nowrap;\">[//toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=kk&wikifam=.wikipedia.org&grouped=on&page={{FULLPAGENAMEE}} Үлестер статистикасы] '''·'''</span> <span style=\"white-space:nowrap;\">[http://toolserver.org/~snottywong/usersearch.html?page={{FULLPAGENAMEE}} Қатысушы өңдемелері] '''·'''</span> <span style=\"white-space:nowrap;\">[//toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=kkwiki_p&titles={{FULLPAGENAMEE}} Көрушілер саны] '''·'''</span> <span style=\"white-space:nowrap;\">[http://stats.grok.se/kk/latest/{{FULLPAGENAMEE}} Бетің қаралу статистикасы]</span>
+'histlegend' => "</span><br /><span style=\"white-space:nowrap;\">Сыртқы құралдар: [http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?lang=kk.wikipedia&page={{FULLPAGENAMEE}} Өңдеу статистикасы] '''·'''</span> <span style=\"white-space:nowrap;\">[http://wikipedia.ramselehof.de/wikiblame.php?lang=kk&article={{FULLPAGENAMEE}} Өзгеріс тарихын іздеу] '''·'''</span> <span style=\"white-space:nowrap;\">[//toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=kk&wikifam=.wikipedia.org&grouped=on&page={{FULLPAGENAMEE}} Үлестер статистикасы] '''·'''</span> <span style=\"white-space:nowrap;\">[http://toolserver.org/~snottywong/usersearch.html?page={{FULLPAGENAMEE}} Қатысушы өңдемелері] '''·'''</span> <span style=\"white-space:nowrap;\">[//toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=kkwiki_p&titles={{FULLPAGENAMEE}} Көрушілер саны] '''·'''</span> <span style=\"white-space:nowrap;\">[http://stats.grok.se/kk/latest/{{FULLPAGENAMEE}} Бетің қаралу статистикасы] '''·'''</span> Тағы қараңыз: <span style=\"white-space:nowrap;\">[{{fullurl:{{FULLPAGENAMEE}}|action=info}} бет туралы мәліметтер]</span>
 ----
 Айырмасын бөлектеу: салыстырмақ нұсқаларының қосу көздерін белгілеп <Enter> пернесін басыңыз, немесе төмендегі батырманы нұқыңыз.<br />
-Шартты белгілер: <span style=\"white-space:nowrap;\">(ағым.) = ағымдық нұсқамен айырмасы, <span style=\"white-space:nowrap;\">(соң.) = алдыңғы нұсқамен айырмасы, </span> <span style=\"white-space:nowrap;\">&nbsp; '''ш''' = [[Уикипедия:Шағын өңдеме|шағын өңдеме]], → = [[Help:Бөлім#Бөлімін өңдеу|бөлімін өңдеу]], ← = [[Уикипедия:Өңдеменің түйіндемесі|автоматты өңдеу түйіндемесі]]</span></div>",
+Шартты белгілер: <span style=\"white-space:nowrap;\">(ағым.) = ағымдық нұсқамен айырмасы, <span style=\"white-space:nowrap;\">(соң.) = алдыңғы нұсқамен айырмасы, </span> <span style=\"white-space:nowrap;\">&nbsp; '''ш''' = [[Уикипедия:Шағын өңдеме|шағын өңдеме]], → = [[Help:Бөлім#Бөлімін өңдеу|бөлімін өңдеу]]</span></div>",
 'history-fieldset-title' => 'Тарихынан іздеу',
 'history-show-deleted' => 'Жойылғанын ғана көрсету',
 'histfirst' => 'Ең ескісіне',
@@ -2283,8 +2285,10 @@ $NEWPAGE
 'delete-confirm' => '«$1» дегенді жою',
 'delete-legend' => 'Жою',
 'historywarning' => "'''Ескету:'' Жоюы көзделген бетте бет тарихында шамамен $1 {{PLURAL:$1|түзетілуі|түзетілулері}} бар:",
-'confirmdeletetext' => 'Бетті бүкіл тарихымен бірге дерекқордан жойғалы жатырсыз.
-Бұл әрекетіңіз ниетпен жасалғанын, әрекет салдары есепке алынғанын және әрекетіңіз [[{{MediaWiki:Policy-url}}|the policy]]-іне лайықты болғанын тағы бір рет тексеріп шығуыңызды сұраймыз.',
+'confirmdeletetext' => '<div id="confirmdeletetext">
+Бетті бүкіл тарихымен бірге дерекқордан жойғалы жатырсыз.
+Бұл әрекетіңіз ниетпен жасалғанын, әрекет салдары есепке алынғанын және әрекетіңіз [[{{MediaWiki:Policy-url}}|ережелерге]] лайықты болғанын тағы бір рет тексеріп шығуыңызды сұраймыз. Сонымен бірге [[Special:Whatlinkshere/{{FULLPAGENAMEE}}|мұнда сілтенген беттерді]] тексеріңіз, мүмкін болса сілтемелерін дұрыстап шығыңыз.
+</div>',
 'actioncomplete' => 'Әрекет орындалды',
 'actionfailed' => 'Әрекет орындалмады',
 'deletedtext' => '"$1" жойылды.
@@ -2677,7 +2681,7 @@ $1 бұғаттауы үшін келтірілген себебі: «$2».',
 'movearticle' => 'Ағымдағы бет атауы:',
 'movenologin' => 'Сіз жүйеге кірмегенсіз',
 'movenologintext' => 'Бетті жылжыту үшін тіркелген болуыңыз және [[{{#special:UserLogin}}|кіруіңіз]] жөн.',
-'movenotallowed' => '{{SITENAME}} жобасында беттерді жылжыту руқсатыңыз жоқ.',
+'movenotallowed' => '{{SITENAME}} жобасында беттерді жылжытуға рұқсатыңыз жоқ.',
 'newtitle' => 'Жаңа бет атауы:',
 'move-watch' => 'Бұл бетті бақылау',
 'movepagebtn' => 'Бетті жылжыту',
@@ -2691,7 +2695,7 @@ $1 бұғаттауы үшін келтірілген себебі: «$2».',
 Бұны қолмен қосыңыз.'''",
 'movedto' => 'мынаған жылжытылды:',
 'movetalk' => 'Қатысты талқылау бетін де жылжыту',
-'move-subpages' => 'Ð\91аÑ\80лÑ\8bÒ\9b Ð±ÐµÑ\82Ñ\88елеÑ\80Ñ\96н Ð¶Ñ\8bлжÑ\8bÑ\82Ñ\83 ($1 Ð´ÐµÐ³ÐµÐ½Ð³Ðµ)',
+'move-subpages' => 'Ð\91аÑ\80лÑ\8bÒ\9b Ð±ÐµÑ\82Ñ\88елеÑ\80Ñ\96н Ð¶Ñ\8bлжÑ\8bÑ\82Ñ\83 ($1 Ð´ÐµÐ¹Ñ\96н)',
 'move-talk-subpages' => 'Талқылау бетінің барлық бетшелерін жылжыту ($1 дегенге)',
 'movepage-page-exists' => '$1 деген бет алдақашан бар және үстіне өздіктік жазылмайды.',
 'movepage-page-moved' => '$1 деген бет $2 дегенге жылжытылды.',
index 544cd56..3d68e3b 100644 (file)
@@ -598,7 +598,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} 소개',
 'aboutpage' => 'Project:소개',
-'copyright' => '내용은 $1 라이선스에 따라 사용할 수 있습니다.',
+'copyright' => '내용은 별도로 명시하지 않을 경우 $1에 따라 사용할 수 있습니다.',
 'copyrightpage' => '{{ns:project}}:저작권',
 'currentevents' => '요즘 화제',
 'currentevents-url' => 'Project:요즘 화제',
@@ -611,8 +611,8 @@ $1',
 'policy-url' => 'Project:정책',
 'portal' => '사용자 모임',
 'portal-url' => 'Project:사용자 모임',
-'privacy' => '개인정보 정책',
-'privacypage' => 'Project:개인정보 정책',
+'privacy' => '개인 정보 정책',
+'privacypage' => 'Project:개인 정보 정책',
 
 'badaccess' => '권한 오류',
 'badaccess-group0' => '요청한 동작을 실행할 권한이 없습니다.',
@@ -1777,7 +1777,7 @@ HTML 태그를 확인하세요.',
 'action-block' => '이 사용자를 편집하지 못하도록 차단',
 'action-protect' => '이 문서의 보호 설정을 바꾸기',
 'action-rollback' => '특정 문서를 마지막으로 편집한 사용자의 모든 편집을 간편하게 되돌리기',
-'action-import' => '다른 위키에서 이 문서를 가져오기',
+'action-import' => '다른 위키에서 문서 가져오기',
 'action-importupload' => '파일 올리기를 통해 문서를 가져올',
 'action-patrol' => '다른 사용자의 편집을 검토된 것으로 표시하기',
 'action-autopatrol' => '자신의 편집을 검토된 것으로 표시할',
@@ -2329,6 +2329,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'listusers' => '사용자 목록',
 'listusers-editsonly' => '기여가 있는 사용자만 보기',
 'listusers-creationsort' => '계정을 만든 날짜 순으로 정렬',
+'listusers-desc' => '내림차순으로 정렬',
 'usereditcount' => '{{PLURAL:$1|편집}} $1회',
 'usercreated' => '$1 $2에 계정 {{GENDER:$3|만들어짐}}',
 'newpages' => '새 문서 목록',
@@ -2618,7 +2619,7 @@ $UNWATCHURL
 마지막으로 이 문서를 편집한 사용자는 [[User:$3|$3]] ([[User talk:$3|토론]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])입니다.',
 'editcomment' => '편집 요약: "$1"',
 'revertpage' => '[[Special:Contributions/$2|$2]]([[User talk:$2|토론]])의 편집을 [[User:$1|$1]]의 마지막 버전으로 되돌림',
-'revertpage-nouser' => '숨긴 사용자의 편집을 [[User:$1|$1]]의 마지막 편집으로 되돌림',
+'revertpage-nouser' => '숨긴 사용자의 편집을 {{GENDER:$1|[[User:$1|$1]]}}의 마지막 판으로 되돌림',
 'rollback-success' => '$1의 편집을 $2의 마지막 버전으로 되돌렸습니다.',
 
 # Edit tokens
@@ -3423,20 +3424,20 @@ $1',
 'sp-newimages-showfrom' => '$1 $2부터 올라온 파일 목록 보기',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
-'seconds' => '{{PLURAL:$1|$1초}}',
-'minutes' => '{{PLURAL:$1|$1분}}',
-'hours' => '{{PLURAL:$1|$1시간}}',
-'days' => '{{PLURAL:$1|$1일}}',
+'seconds' => '$1초',
+'minutes' => '$1분',
+'hours' => '$1시간',
+'days' => '$1일',
 'weeks' => '{{PLURAL:$1|$1주}}',
-'months' => '{{PLURAL:$1|$1월}}',
-'years' => '{{PLURAL:$1|$1년}}',
+'months' => '$1달',
+'years' => '$1년',
 'ago' => '$1 전',
 'just-now' => '방금',
 
 # Human-readable timestamps
-'hours-ago' => '$1{{PLURAL:$1|시간}} 전',
-'minutes-ago' => '$1{{PLURAL:$1|분}} 전',
-'seconds-ago' => '$1{{PLURAL:$1|초}} 전',
+'hours-ago' => '$1시간 전',
+'minutes-ago' => '$1 전',
+'seconds-ago' => '$1 전',
 'monday-at' => '월요일 $1',
 'tuesday-at' => '화요일 $1',
 'wednesday-at' => '수요일 $1',
@@ -4168,8 +4169,7 @@ $5
 
 # Database error messages
 'dberr-header' => '이 위키에 문제가 있습니다',
-'dberr-problems' => '죄송합니다!
-이 사이트는 기술적인 문제가 있습니다.',
+'dberr-problems' => '죄송합니다! 이 사이트에 기술적인 문제가 발생하고 있습니다.',
 'dberr-again' => '잠시 기다리고 나서 다시 불러오세요.',
 'dberr-info' => '(데이터베이스 서버에 연결할 수 없습니다: $1)',
 'dberr-info-hidden' => '(데이터베이스 서버에 연결할 수 없습니다)',
@@ -4317,9 +4317,9 @@ $5
 'limitreport-ppvisitednodes' => '전처리기가 방문한 노드 수',
 'limitreport-ppgeneratednodes' => '전처리기가 생성한 노드 수',
 'limitreport-postexpandincludesize' => '전개한 뒤 포함 크기',
-'limitreport-postexpandincludesize-value' => '$1/$2 바이트',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|바이트}}',
 'limitreport-templateargumentsize' => '틀 인수 크기',
-'limitreport-templateargumentsize-value' => '$1/$2 바이트',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|바이트}}',
 'limitreport-expansiondepth' => '최대 전개 깊이',
 'limitreport-expensivefunctioncount' => '부하 높은 파서 함수 수',
 
index 2ae91df..171fd70 100644 (file)
@@ -357,7 +357,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} сайтны юсюнден',
 'aboutpage' => 'Project:Суратлау',
-'copyright' => 'Информация мунга кёре хайырланады: $1',
+'copyright' => 'Ичиндегиси,  $1 лицензиягъа кёре бериледи (башха белгиленмеген эсе).',
 'copyrightpage' => '{{ns:project}}:Авторлукъ хакъла',
 'currentevents' => 'Бусагъатда бола тургъанла',
 'currentevents-url' => 'Project:Бусагъатда бола тургъанла',
index 6a63e8b..99fa094 100644 (file)
@@ -1523,8 +1523,7 @@ Hwi a yll [[Special:EditWatchlist|devnydhya an janjyel usadow]] ynwedh.',
 
 # Database error messages
 'dberr-header' => "An wiki-ma a'n jeves kudyn",
-'dberr-problems' => "Drog yw genen!
-An wiasva-ma a's teves kaletter teknogel.",
+'dberr-problems' => "Drog yw genen! An wiasva-ma a's teves kaletter teknogel.",
 'dberr-again' => 'Assayewgh gortos pols ha daskarga.',
 'dberr-info' => '(Ny yllir kestava orth servyer an database: $1)',
 'dberr-usegoogle' => 'Hwi a yll assaya hwilas dre Google.',
index 6120440..45e12ea 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Kirghiz (Кыргызча)
+/** Kyrgyz (Кыргызча)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 9f9121e..8464587 100644 (file)
@@ -1125,8 +1125,8 @@ Si vis id dare, opera tua tibi ascribentur.',
 'action-suppressionlog' => 'haec acta privata inspicere',
 'action-block' => 'hunc usorem obstruere ne recensere potest',
 'action-protect' => 'protectionem huius paginae mutare',
-'action-import' => 'paginam ex vico alio importare',
-'action-importupload' => 'paginam ex fasciculo imponendo importare',
+'action-import' => 'paginas ex vico alio importare',
+'action-importupload' => 'paginas ex fasciculo imponendo importare',
 'action-unwatchedpages' => 'indicem paginarum non custoditarum inspicere',
 'action-mergehistory' => 'historiam huius paginae confundere',
 'action-userrights' => 'omnes potestates usorum recensere',
index 43af434..44707c9 100644 (file)
@@ -433,7 +433,7 @@ $1",
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Iwwer {{SITENAME}}',
 'aboutpage' => 'Project:Iwwer',
-'copyright' => 'Inhalt ass zur Verfügung gestallt ënner der $1.<br />',
+'copyright' => 'Den Inhalt ass ënner $1 disponibel wann et net anescht uginn ass.',
 'copyrightpage' => '{{ns:project}}:Copyright',
 'currentevents' => 'Aktualitéit',
 'currentevents-url' => 'Project:Aktualitéit',
@@ -520,7 +520,7 @@ All Spezialsäiten déi et gëtt, sinn op der [[Special:SpecialPages|{{int:speci
 'databaseerror-text' => 'Et ass ee Feeler bäi enger Ufro un Datebank geschitt. Dat deit op e Feeler an der Software.',
 'databaseerror-textcl' => "Et ass e Feeler bäi enger Ufro un d'Datebank geschitt.",
 'databaseerror-query' => 'Ufro: $1',
-'databaseerror-function' => 'Fonctioun: $1',
+'databaseerror-function' => 'Funktioun: $1',
 'databaseerror-error' => 'Feeler: $1',
 'laggedslavemode' => "'''Opgepasst:''' Dës Säit ass net onbedéngt um neiste Stand.",
 'readonly' => "D'Datebank ass gespaart",
@@ -598,7 +598,7 @@ Den Administrateur den d\'Schreiwe gespaart huet, huet dës Erklärung uginn: "$
 
 # Virus scanner
 'virus-badscanner' => "Schlecht Configuratioun: onbekannte  Virescanner: ''$1''",
-'virus-scanfailed' => 'De Scan huet net fonctionnéiert (Code $1)',
+'virus-scanfailed' => 'De Scan huet net funktionéiert (Code $1)',
 'virus-unknownscanner' => 'onbekannten Antivirus:',
 
 # Login and logout pages
@@ -738,7 +738,7 @@ Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
 Wann Dir en ugitt, gëtt e benotzt fir d'Benotzerattributiounen fir Är Aarbecht zouzeuerdnen.",
 
 # Email sending
-'php-mail-error-unknown' => 'Onbekannte Feeler an der PHP-Mail-Fonctioun',
+'php-mail-error-unknown' => 'Onbekannte Feeler an der PHP-Mail-Funktioun',
 'user-mail-no-addy' => 'Huet versicht eng Mail ouni Mailadress ze schécken',
 'user-mail-no-body' => 'Et gouf probéiert eng E-Mail ouni Text oder mat engem ze kuerzen Text ze schécken.',
 
@@ -768,7 +768,7 @@ Vläicht hutt Dir Äert Passwuert scho geännert oder en neit temporäert Passwu
 'passwordreset-text-many' => '{{PLURAL:$1|Fëllt eent vun de Felder aus fir Äert Passwuert zeréckzesetzen.}}',
 'passwordreset-legend' => 'Passwuert zrécksetzen',
 'passwordreset-disabled' => "D'Zerécksetze vum Passwuert ass op dëser Wiki ausgeschalt.",
-'passwordreset-emaildisabled' => "D'E-Mail-Fonctioune goufen op dëser Wiki ausgeschalt.",
+'passwordreset-emaildisabled' => "D'E-Mail-Funktioune goufen op dëser Wiki ausgeschalt.",
 'passwordreset-username' => 'Benotzernumm:',
 'passwordreset-domain' => 'Domaine:',
 'passwordreset-capture' => "D'Mail kucken?",
@@ -884,7 +884,7 @@ De Grond dofir war:
 
 Dir kënnt de(n) $1 oder soss een [[{{MediaWiki:Grouppage-sysop}}|Administrateur]] kontaktéieren, fir iwwer déi Spär ze diskutéieren.
 
-Bedenkt datt Dir d\'Fonctioun "Dësem Benotzer eng E-Mail schécken" benotze kënnt wann Dir eng gëlteg E-Mail-Adress an Ären [[Special:Preferences|Astellungen]] uginn hutt a wann dat net fir Iech gespaart gouf.
+Bedenkt datt Dir d\'Funktioun "Dësem Benotzer eng E-Mail schécken" benotze kënnt wann Dir eng gëlteg E-Mail-Adress an Ären [[Special:Preferences|Astellungen]] uginn hutt a wann dat net fir Iech gespaart gouf.
 
 Är aktuell IP-Adress ass $3 an d\'Nummer vun Ärer Spär ass $5.
 Gitt dës Donnéeë w.e.g bei allen Ufroen zu dëser Spär un.',
@@ -911,7 +911,7 @@ Wann Dir en anonyme Benotzer sidd an Dir irrelevant Bemierkunge krut, [[Special:
 Dir kënnt op anere Säiten no [[Special:Search/{{PAGENAME}}|dësem Säitentitel sichen]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an den entspriechende Logbicher nokucken] oder [{{fullurl:{{FULLPAGENAME}}|action=edit}} esou eng Säit uleeën]</span>.',
 'noarticletext-nopermission' => 'Elo ass keen Text op dëser Säit.
-Dir kënnt op anere Säiten [[Special:Search/{{PAGENAME}}|no dësem Sàitentitel sichen]], oder <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an de Logbicher sichen]</span>, mä Dir hutt net déi néideg Rechter fir dës Säit unzeleeën.',
+Dir kënnt op anere Säiten [[Special:Search/{{PAGENAME}}|no dësem Säitentitel sichen]], oder <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an de Logbicher sichen]</span>, mä Dir hutt net déi néideg Rechter fir dës Säit unzeleeën.',
 'missing-revision' => 'D\'Versioun #$1 vun der Säit mam Numm "{{PAGENAME}}" gëtt et net.
 
 Dat geschitt normalerweis wann Dir op e vereelste Link vun enger Versioun vun enger Säit klickt déi geläscht ginn ass.
@@ -962,7 +962,7 @@ Dëst geschitt heiansdo wann Dir en anonyme Proxy-Service um Internet benotzt.",
 'editingsection' => 'Ännere vu(n) $1 (Abschnitt)',
 'editingcomment' => 'Ännere vu(n) $1 (neien Abschnitt)',
 'editconflict' => 'Ännerungskonflikt: $1',
-'explainconflict' => "En anere Benotzer huet un dëser Säit geschafft, während Dir amgaange waart, se z'änneren.
+'explainconflict' => "En anere Benotzer huet un dëser Säit geschafft, während Dir am Gaang waart, se z'änneren.
 Dat iewescht Textfeld weist Iech den aktuellen Text.
 Är Ännerunge gesitt Dir am ënneschten Textfeld.
 Dir musst Är Ännerungen an dat iewescht Textfeld androen.
@@ -985,7 +985,7 @@ Dir kënnt den Text kopéieren an an een Textfichier drasetzen an deen ofspäich
 Den Administrateur den d'Datebank gespaart huet, huet dës Erklärung ginn: $1",
 'protectedpagewarning' => "'''OPGEPASST: Dës Säit gouf gespaart a kann nëmme vun engem Administrateur geännert ginn.''' Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
 'semiprotectedpagewarning' => "'''Bemierkung:''' Dës Säit gouf esou gespaart, datt nëmme ugemellt Benotzer s'ännere kënnen. Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
-'cascadeprotectedwarning' => "'''Passt op:''' Dës Säit gouf gespaart a kann nëmme vu Benotzer mat Administreursrechter geännert ginn. Si ass an dës {{PLURAL:$1|Säit|Säiten}} agebonnen, déi duerch Cascadespäroptioun gespaart {{PLURAL:$1|ass|sinn}}:'''",
+'cascadeprotectedwarning' => "'''Opgepasst:''' Dës Säit gouf gespaart a kann nëmme vu Benotzer mat Administreursrechter geännert ginn. Si ass an dës {{PLURAL:$1|Säit|Säiten}} agebonnen, déi duerch Cascadespäroptioun gespaart {{PLURAL:$1|ass|sinn}}:'''",
 'titleprotectedwarning' => "'''OPGEPASST: Dës Säit gouf gespaart sou datt [[Special:ListGroupRights|spezifesch Rechter]] gebraucht gi fir se uleeën ze kënnen.''' Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
 'templatesused' => '{{PLURAL:$1|Schabloun|Schablounen}} déi op dëser Säit am Gebrauch sinn:',
 'templatesusedpreview' => '{{PLURAL:$1|Schabloun|Schablounen}} déi an dëser nach net gespäicherter Versioun benotzt {{PLURAL:$1|gëtt|ginn}}:',
@@ -993,7 +993,7 @@ Den Administrateur den d'Datebank gespaart huet, huet dës Erklärung ginn: $1",
 'template-protected' => '(gespaart)',
 'template-semiprotected' => '(gespaart fir net-ugemellten an nei Benotzer)',
 'hiddencategories' => 'Dës Säit gehéiert zu {{PLURAL:$1|1 verstoppter Kategorie|$1 verstoppte Kategorien}}:',
-'edittools' => '<!-- Dësen Text gëtt ënnert dem "Ännere"-Formulair esouwéi dem "Eropluede"-Formulair ugewisen. -->',
+'edittools' => '<!-- Dësen Text gëtt ënner dem "Ännere"Formulaire esouwéi dem "Eropluede"-Formulaire ugewisen. -->',
 'nocreatetext' => "Op {{SITENAME}} gouf d'Schafe vun neie Säite limitéiert. Dir kënnt Säiten déi scho bestinn änneren oder Iech [[Special:UserLogin|umellen]].",
 'nocreate-loggedin' => 'Dir hutt keng Berechtigung fir nei Säiten unzeleeën.',
 'sectioneditnotsupported-title' => 'Ännere vum Abschnitt gëtt net ënnerstëtzt',
@@ -1001,7 +1001,7 @@ Den Administrateur den d'Datebank gespaart huet, huet dës Erklärung ginn: $1",
 'permissionserrors' => 'Net genuch Rechter',
 'permissionserrorstext' => 'Dir hutt net genuch Rechter fir déi Aktioun auszeféieren. {{PLURAL:$1|Grond|Grënn}}:',
 'permissionserrorstext-withaction' => 'Dir sidd, aus {{PLURAL:$1|dësem Grond|dëse Grënn}}, net berechtegt $2 :',
-'recreate-moveddeleted-warn' => "'''Opgepasst: Dir sidd amgaang eng Säit unzeleeën déi schonn eng Kéier geläscht gouf.'''
+'recreate-moveddeleted-warn' => "'''Opgepasst: Dir sidd am Gaang eng Säit unzeleeën déi schonn eng Kéier geläscht gouf.'''
 
 Frot Iech ob et wierklech sënnvoll ass dës Säit nees nei ze schafen.
 Fir Iech z'informéieren fannt Dir hei d'Logbuch vum Läsche mam Grond:",
@@ -1290,7 +1290,7 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'showingresultsnum' => "Hei gesitt der  {{PLURAL:$3|'''1''' Resultat|'''$3''' Resultater}}, ugefaange mat #'''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5|Resultat '''$1''' vu(n) '''$3'''|Resultater '''$1 - $2''' vu(n) '''$3'''}} fir '''$4'''",
 'nonefound' => "'''Opgepasst''': Nëmmen e puer Nummraim gi ''par default'' duerchsicht. Versicht an ärer Ufro ''all:'' anzestellen fir de gesamten Inhalt (inklusiv Diskussiounssäiten, Schablonen, ...), oder benotzt déi gwënschten Nummraim als Virastellung.",
-'search-nonefound' => 'Fir Ã¤r Ufro gouf näischt fonnt.',
+'search-nonefound' => 'Fir Ã\84r Ufro gouf näischt fonnt.',
 'powersearch' => 'Erweidert Sich',
 'powersearch-legend' => 'Erweidert Sich',
 'powersearch-ns' => 'Sichen an den Nummraim:',
@@ -1313,9 +1313,9 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'prefs-skin' => 'Skin',
 'skin-preview' => 'Kucken',
 'datedefault' => 'Egal (Standard)',
-'prefs-beta' => 'Beta-Fonctiounen',
+'prefs-beta' => 'Beta-Funktiounen',
 'prefs-datetime' => 'Datum an Auerzäit',
-'prefs-labs' => '"Labs"-Fonctiounen',
+'prefs-labs' => '"Labs"-Funktiounen',
 'prefs-user-pages' => 'Benotzersäiten',
 'prefs-personal' => 'Benotzerprofil',
 'prefs-rc' => 'Rezent Ännerungen',
@@ -1345,7 +1345,7 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'recentchangesdays-max' => '(Maximal $1 {{PLURAL:$1|Dag|Deeg}})',
 'recentchangescount' => 'Zuel vun den Ännerungen déi als Standard gewise ginn:',
 'prefs-help-recentchangescount' => 'Inklusiv Rezent Ännerungen, Versiounshistoriquen a Logbicher.',
-'prefs-help-watchlist-token2' => 'Dëst ass de geheime Schlëssel fir de Webfeed vun Ärer Iwwerwaachungslëscht. Jiddereen deen e kënnt kann Är Iwwerwaachungslëscht liesen, dofir sollt Dir en net weider ginn. [[Special:ResetTokens|Klickt hei wann dir en zrécksetze musst]].',
+'prefs-help-watchlist-token2' => 'Dëst ass de geheime Schlëssel fir de Webfeed vun Ärer Iwwerwaachungslëscht. Jiddwereen deen e kennt kann Är Iwwerwaachungslëscht liesen, dofir sollt Dir en net weider ginn. [[Special:ResetTokens|Klickt hei wann Dir en zrécksetze musst]].',
 'savedprefs' => 'Är Astellunge goufe gespäichert.',
 'timezonelegend' => 'Zäitzon:',
 'localtime' => 'Lokalzäit:',
@@ -1512,7 +1512,7 @@ Dës Informatioun ass ëffentlech.",
 'right-ipblock-exempt' => 'Ausname vun IP-Spären, automatesche Spären a vu Späre vu Plage vun IPen',
 'right-proxyunbannable' => 'Automatesche Proxyspären ëmgoen',
 'right-unblockself' => 'Seng eege Spär ophiewen',
-'right-protect' => 'Protectiounsniveauen änneren a kaskade.gespaarte Säiten änneren',
+'right-protect' => 'Protektiounsniveauen änneren a kaskadegespaart Säiten änneren',
 'right-editprotected' => 'Protegéiert Säiten als "{{int:protect-level-sysop}}" änneren',
 'right-editsemiprotected' => 'Säiten déi als  "{{int:protect-level-autoconfirmed}}" gespaart sinn änneren',
 'right-editinterface' => 'De Benotzerinterface änneren',
@@ -1575,10 +1575,10 @@ Dës Informatioun ass ëffentlech.",
 'action-suppressrevision' => 'déi verstoppt Versioun kucken a restauréieren',
 'action-suppressionlog' => 'dës privat Lëscht ze kucken',
 'action-block' => 'dëse Benotzer fir Ännerungen ze spären',
-'action-protect' => 'de Protectiounsstatus vun dëser Säit änneren',
+'action-protect' => 'de Protektiounsstatus vun dëser Säit änneren',
 'action-rollback' => "Ännerunge vum läschte Benotzer vun enger spezieller Säit séier z'récksetzen ''(rollback)''",
-'action-import' => "dës Säit aus enger anerer Wiki z'importéieren",
-'action-importupload' => "dës Säit duerch d'Eropluede vun engem Fichier importéieren",
+'action-import' => 'Säiten aus enger anerer Wiki importéieren',
+'action-importupload' => "Säiten duerch d'Eropluede vun engem Fichier importéieren",
 'action-patrol' => "d'Ännerunge vun Aneren als nogekuckt markéieren",
 'action-autopatrol' => 'eegen Ännerungen als nogekuckt ze markéieren',
 'action-unwatchedpages' => "d'Lëscht vun den net iwwerwaachte Säiten ze kucken",
@@ -1708,10 +1708,10 @@ Erlaabt {{PLURAL:$3|ass|sinn}}: $2.',
 'fileexists' => 'Et gëtt schonn e Fichier mat dësem Numm, kuckt w.e.g.
 <strong>[[:$1]]</strong> wann Dir net sécher sidd, ob Dir den Numm ännere wëllt.
 [[$1|thumb]]',
-'filepageexists' => "D'Beschreiwungssäit fir dëse Fichier gouf schonns als <strong>[[:$1]]</strong> ugeluecht, et gëtt awer kee Fichier mat deem Numm.
+'filepageexists' => "D'Beschreiwungssäit fir dëse Fichier gouf schonn als <strong>[[:$1]]</strong> ugeluecht, et gëtt awer kee Fichier mat deem Numm.
 
 De Resumé deen Dir agitt, gëtt net op d'Beschreiwungssäit iwwerholl.
-Fir datt Ã¤re Resumé do opdaucht musst Dir e manuell änneren.
+Fir datt Ã\84re Resumé do opdaucht musst Dir e manuell änneren.
 [[$1|thumb]]",
 'fileexists-extension' => 'E Fichier mat engem ähnlechen Numm gëtt et schonn: [[$2|thumb]]
 * Numm vum Fichier deen Dir versicht eropzelueden: <strong>[[:$1]]</strong>
@@ -1754,7 +1754,7 @@ D'Eropluede vu JAVA-Fichieren ass net erlaabt, well si d'Ëmgoe vu Sécherheetsm
 'filewasdeleted' => 'E Fichier mat dësem Numm gouf schonn eemol eropgelueden an duerno nees geläscht. Kuckt w.e.g op $1 no, ier Dir dee Fichier nach eng Kéier eropluet.',
 'filename-bad-prefix' => "Den Numm vum Fichier fänkt mat '''„$1“''' un. Dësen Numm krut en automatesch vun der Kamera a seet näischt iwwer dat aus, wat drop ass. Gitt dem Fichier w.e.g. en Numm, deen den Inhalt besser beschreift, an deen net verwiesselt ka ginn.",
 'upload-success-subj' => 'Eroplueden erfollegräich',
-'upload-success-msg' => 'Äert Eropluede vun [$2] huet fonctionnéiert. De Fichier ass hei disponibel: [[:{{ns:file}}:$1]]',
+'upload-success-msg' => 'Äert Eropluede vun [$2] huet funktionéiert. De Fichier ass hei disponibel: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'Problem beim Eroplueden',
 'upload-failure-msg' => 'Et gouf e Problem mam Fichier vu(n) [$2] deen Dir eropgelueden hutt:
 
@@ -1821,7 +1821,7 @@ Wann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrat
 'zip-wrong-format' => 'De Fichier deen Dir uginn hutt war kee ZIP Fichier.',
 'zip-bad' => 'De Fichier ass korrupt oder ass aus anere Grënn en net liesbare ZIP-Fichier.
 E kann net uerdentlech op seng Sécherheet nogekuckt ginn.',
-'zip-unsupported' => "Dëse ZIP-Fichier benotzt ZIP-Fonctiounen déi MediaWiki net ënnerstëtzt.
+'zip-unsupported' => "Dëse ZIP-Fichier benotzt ZIP-Funktiounen déi MediaWiki net ënnerstëtzt.
 E kann net op d'Sécherheet nogekuckt ginn.",
 
 # Special:UploadStash
@@ -1829,8 +1829,8 @@ E kann net op d'Sécherheet nogekuckt ginn.",
 'uploadstash-summary' => 'Op dëser Säit huet en Zougrëff op Fichieren déi eropgeluede sinn (oder am Gaang sinn eropgelueden ze ginn) déi awer nach net op der Wiki publizéiert sinn. Dës Fichier kënnen eenzeg an eleng vun deem Benotzer deen se eropgelueden huet gesi ginn.',
 'uploadstash-clear' => 'Um Server gespäichert Fichieren déi nach net eropgeluede si läschen',
 'uploadstash-nofiles' => 'Dir hutt keng gespäichert Fichieren déi Dir nach net eropgelueden hutt.',
-'uploadstash-badtoken' => "D'Ausféiere vun dëser Aktioun huet net fonctionnéiert, vläicht well d'Informatiounen iwwer Är Rechter ofgelaf sinn. Probéiert et nach emol.",
-'uploadstash-errclear' => "D'Läsche vun de Fichieren huet net fonctionnéiert.",
+'uploadstash-badtoken' => "D'Ausféiere vun dëser Aktioun huet net funktionéiert, vläicht well d'Informatiounen iwwer Är Rechter ofgelaf sinn. Probéiert et nach emol.",
+'uploadstash-errclear' => "D'Läsche vun de Fichieren huet net funktionéiert.",
 'uploadstash-refresh' => 'Lëscht vun de Fichieren aktualiséieren',
 
 # img_auth script messages
@@ -1846,16 +1846,16 @@ Kuckt  https://www.mediawiki.org/wiki/Manual:Image_Authorization',
 'img-auth-isdir' => 'Dir versicht op de Repertoire "$1" zouzegräifen.
 Nèemmen Datenofruff ass erlaabt.',
 'img-auth-streaming' => '"$1" lueden.',
-'img-auth-public' => "D'Fonctioun img_auth.php erlaabt et fir Fichieren vun enger privater Wiki erauszeginn.
+'img-auth-public' => "D'Funktioun img_auth.php erlaabt et fir Fichieren vun enger privater Wiki erauszeginn.
 Dës Wiki ass als ëffentlech Wiki configuréiert.
-Fir eng oprimal Sécherheet ass img_auth.php ausgeschalt.",
+Fir eng optimal Sécherheet ass img_auth.php ausgeschalt.",
 'img-auth-noread' => 'De Benotzer hut keen Zougang fir "$1" ze liesen',
 'img-auth-bad-query-string' => "D'URL huet eng net valabel Rei vun Zeechen.",
 
 # HTTP errors
 'http-invalid-url' => 'Net-valabel URL: $1',
 'http-invalid-scheme' => 'URLe mam Schema "$1" ginn net ënnerstëtzt',
-'http-request-error' => "D'HTTP-Ufro huet wéinst engem onbekannte Feeler net fonctionnéiert.",
+'http-request-error' => "D'HTTP-Ufro huet wéinst engem onbekannte Feeler net funktionéiert.",
 'http-read-error' => 'HTTP-Feeler beim Liesen.',
 'http-timed-out' => 'HTTP-Ufro huet ze laang gebraucht (time out).',
 'http-curl-error' => 'Feeler beim Ofruff vun der URL: $1',
@@ -2352,7 +2352,7 @@ Reaktiounen a méi Hëllef:
 'confirmdeletetext' => "Dir sidd am Gaang, eng Säit mat hirem kompletten Historique vollstänneg aus der Datebank ze läschen.
 W.e.g. confirméiert, datt Dir dëst wierklech wëllt, datt Dir d'Konsequenze verstitt, an datt dat Ganzt am Aklang mat de [[{{MediaWiki:Policy-url}}|Richtlinne]] geschitt.",
 'actioncomplete' => 'Aktioun ofgeschloss',
-'actionfailed' => 'Aktioun huet net fonctionnéiert',
+'actionfailed' => 'Aktioun huet net funktionéiert',
 'deletedtext' => '"$1" gouf geläscht. Kuckt $2 fir eng Lëscht vun de Säiten déi viru Kuerzem geläscht goufen.',
 'dellogpage' => 'Läschlëscht',
 'dellogpagetext' => 'Hei fannt dir eng Lëscht mat rezent geläschte Säiten. All Auerzäiten sinn déi vum Server.',
@@ -2369,8 +2369,8 @@ W.e.g. confirméiert, datt Dir dëst wierklech wëllt, datt Dir d'Konsequenze ve
 'delete-toobig' => "Dës Säit huet e laangen Historique, méi wéi $1 {{PLURAL:$1|Versioun|Versiounen}}.
 D'Läsche vun esou Säite gouf limitéiert fir ongewollte Stéierungen op {{SITENAME}} ze verhënneren.",
 'delete-warning-toobig' => "Dës Säit huet eng laang Versiounsgeschicht, méi wéi $1 {{PLURAL:$1|Versioun|Versiounen}}.
-D'Läschen dovun kann zu Stéierungen am Funktionnement vun {{SITENAME}} féieren;
-dës Aktioun soll mat Vierssiicht gemaach ginn.",
+D'Läschen dovu kann zu Stéierungen am Funktionnement vun {{SITENAME}} féieren;
+dës Aktioun soll mat Virsiicht gemaach ginn.",
 
 # Rollback
 'rollback' => 'Ännerungen zrécksetzen',
@@ -2386,7 +2386,7 @@ een Aneren huet dëst entweder scho gemaach oder nei Ännerungen agedroen.
 Déi lescht Ännerung vun der Säit ass vum [[User:$3|$3]] ([[User talk:$3|Diskussioun]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "De Resumé vun der Ännerung war: \"''\$1''\".",
 'revertpage' => 'Ännerunge vum [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussioun]]) zréckgesat op déi lescht Versioun vum [[User:$1|$1]]',
-'revertpage-nouser' => 'Zréckgesaten Ännerungen duerch e verstoppte Benotzer op déi lescht Versioun vum [[User:$1|$1]]',
+'revertpage-nouser' => 'Zréckgesaten Ännerungen duerch e verstoppte Benotzer op déi lescht Versioun vum {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => "D'Ännerunge vum $1 goufen zréckgesat op déi lescht Versioun vum $2.",
 
 # Edit tokens
@@ -2396,39 +2396,39 @@ Dës Aktioun gouf aus Sécherheetsgrënn ofgebrach, fir ze verhënneren datt är
 Klickt w.e.g. op "Zréck" a lued déi Säit vun där Dir komm sidd nei, a versicht et dann nach eng Kéier.',
 
 # Protect
-'protectlogpage' => 'Protectiouns-Logbuch',
+'protectlogpage' => 'Protektiounslogbuch',
 'protectlogtext' => "Dëst ass d'Lëscht vun de Säitespären.
 Kuckt d'[[Special:ProtectedPages|Lëscht vun de gespaarte Säite]] fir eng Lëscht vun den aktuelle Säitespären.",
 'protectedarticle' => 'huet "[[$1]]" gespaart',
-'modifiedarticleprotection' => 'huet d\'Protectioun vun "[[$1]]" geännert',
+'modifiedarticleprotection' => 'huet d\'Protektioun vun "[[$1]]" geännert',
 'unprotectedarticle' => 'huet d\'Spär vu(n) "[[$1]]" opgehuewen',
 'movedarticleprotection' => 'huet de Säiteschutz vun "[[$2]]" op "[[$1]]" geännert',
-'protect-title' => 'Ännerung vun der Protectioun vu(n) „$1“',
-'protect-title-notallowed' => 'Den Niveau vun der Protectioun vu(n) "$1" weisen',
+'protect-title' => 'Ännerung vun der Protektioun vu(n) „$1“',
+'protect-title-notallowed' => 'Den Niveau vun der Protektioun vu(n) "$1" weisen',
 'prot_1movedto2' => '[[$1]] gouf op [[$2]] geréckelt',
 'protect-badnamespace-title' => 'Nummraum deen net gespaart ka ginn',
 'protect-badnamespace-text' => 'Säiten an dësem Nummraum kënnen net gespaart ginn.',
 'protect-norestrictiontypes-text' => 'Dës Säit kann net gespaart gi well keng Restriktiounstypen disponibel sinn.',
 'protect-norestrictiontypes-title' => 'Säit kann net gespaart ginn',
-'protect-legend' => "Confirméiert d'Protectioun",
+'protect-legend' => "Confirméiert d'Protektioun",
 'protectcomment' => 'Grond:',
 'protectexpiry' => 'Dauer vun der Spär:',
 'protect_expiry_invalid' => "D'Dauer déi Dir uginn hutt ass ongëlteg.",
 'protect_expiry_old' => "D'Spärzäit läit an der Vergaangenheet.",
 'protect-unchain-permissions' => "D'Spär vu weidere Spär-Optioune ophiewen",
-'protect-text' => "Hei kënnt Dir de Protectiounsstatus fir d'Säit '''$1''' kucken an änneren.",
-'protect-locked-blocked' => "Dir kënnt den Niveau vun der Säite-Protectioun net änneren, well Äre Benotzerkont gespaart ass.
-Hei sinn déi aktuell Säite-Protectiouns-Astellungen fir d'Säit '''$1''':",
+'protect-text' => "Hei kënnt Dir de Protektiounsstatus fir d'Säit '''$1''' kucken an änneren.",
+'protect-locked-blocked' => "Dir kënnt den Niveau vun der Säiteprotektioun net änneren, well Äre Benotzerkont gespaart ass.
+Hei sinn déi aktuell Säiteprotektiounsastellunge fir d'Säit '''$1''':",
 'protect-locked-dblock' => "Den Niveau vun der Proectioun vun der Säit kann net geänenert ginn, well d'Datebank gespaart ass.
 Hei sinn déi aktuell Astellungen fir d'Säit '''$1''':",
-'protect-locked-access' => "Dir hutt net déi néideg Rechter fir de Protectiouns-Niveau vun dëser Säit z'änneren.
+'protect-locked-access' => "Dir hutt net déi néideg Rechter fir de Protektiounsniveau vun dëser Säit z'änneren.
 Hei sinn déi aktuell Astellunge fir d'Säit '''$1''':",
-'protect-cascadeon' => "Dës Säit ass elo gespaart well si an déi folgend {{PLURAL:$1|Säit|Säiten}} agebonn ass déi duerch eng Kaskadespär gespaart {{PLURAL:$1|ass|sinn}}. De Protectiounsniveau ka fir dës Säit geännert ginn, dat huet awer keen Afloss op d'Kaskadespär.",
+'protect-cascadeon' => "Dës Säit ass elo gespaart well si an déi folgend {{PLURAL:$1|Säit|Säiten}} agebonnen ass déi duerch eng Kaskadespär gespaart {{PLURAL:$1|ass|sinn}}. De Protektiounsniveau ka fir dës Säit geännert ginn, dat huet awer keen Afloss op d'Kaskadespär.",
 'protect-default' => 'All Benotzer erlaben',
 'protect-fallback' => 'Nëmme Benotzer mat enger "$1"-Autorisatioun erlaben.',
 'protect-level-autoconfirmed' => 'Nëmmen automatesch ugemellt Benotzer erlaben',
 'protect-level-sysop' => 'Nëmmen Administrateuren erlaben',
-'protect-summary-cascade' => 'Protectioun a Kaskaden',
+'protect-summary-cascade' => 'Protektioun a Kaskaden',
 'protect-expiring' => 'bis $1 (UTC)',
 'protect-expiring-local' => 'bis $1',
 'protect-expiry-indefinite' => 'net definéiert',
@@ -2444,7 +2444,7 @@ Hei sinn déi aktuell Astellunge fir d'Säit '''$1''':",
 ** Permanenten Ännerungskonflikt
 ** Dacks benotzt Schablounen
 ** Säit déi dacks gekuckt gëtt',
-'protect-edit-reasonlist' => 'Grënn vun der Protectioun änneren',
+'protect-edit-reasonlist' => 'Grënn vun der Protektioun änneren',
 'protect-expiry-options' => '1 Stonn:1 hour,1 Dag:1 day,1 Woch:1 week,2 Wochen:2 weeks,1 Mount:1 month,3 Méint:3 months,6 Méint:6 months,1 Joer:1 year,onbegrenzt:infinite',
 'restriction-type' => 'Berechtigung:',
 'restriction-level' => 'Niveau vun de Limitatiounen:',
@@ -2490,7 +2490,7 @@ An esou Fäll däerf déi neiste Versioun net markéiert ginn oder déi neiste g
 'undeletedrevisions' => '$1 {{PLURAL:$1|Versioun gouf|$1 Versioune goufe}} restauréiert',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 Versioun|$1 Versiounen}} a(n) {{PLURAL:$2|1 Fichier|$2 Fichiere}} goufe restauréiert',
 'undeletedfiles' => '$1 {{PLURAL:$1|Fichier gouf|Fichiere goufe}} restauréiert',
-'cannotundelete' => "D'Restauratioun huet net fonctionnéiert:
+'cannotundelete' => "D'Restauratioun huet net funktionéiert:
 $1",
 'undeletedpage' => "'''$1''' gouf restauréiert.
 
@@ -2607,7 +2607,7 @@ $1',
 
 Kuckt d'[[Special:BlockList|Spär-Lëscht]] fir all Spären nozekucken.",
 'ipb-blockingself' => 'Dir sidd am gaang Iech selwer ze spären! Sidd Dir sécher datt Dir dat maache wëllt?',
-'ipb-confirmhideuser' => 'Dir sidd am gaang e Benotzer ze späre mat der Fonctioun "Benotzer verstoppen" ageschalt. Dëst hëlt den Numm vum Benotzer aus alle Lëschten a Logbicher eraus. Sidd Dir sécher datt Dir dat maache wëllt?',
+'ipb-confirmhideuser' => 'Dir sidd am Gaang e Benotzer ze späre mat der Funktioun "Benotzer verstoppen" ageschalt. Dëst hëlt den Numm vum Benotzer aus alle Lëschten a Logbicher eraus. Sidd Dir sécher datt Dir dat maache wëllt?',
 'ipb-edit-dropdown' => 'Spärgrënn änneren',
 'ipb-unblock-addr' => 'Spär vum $1 ophiewen',
 'ipb-unblock' => 'Spär vun enger IP-Adress oder engem Benotzer ophiewen',
@@ -2719,30 +2719,30 @@ Fir d'Datebank ze spären oder fir d'Spär opzehiewen muss dëse Fichier vum Web
 # Move page
 'move-page' => 'Réckel $1',
 'move-page-legend' => 'Säit réckelen',
-'movepagetext' => "Wann dir dëse Formulaire benotzt gitt Dir enger Säit en aneren Numm a réckelt se mat hirem Historique op den neien Numm.
+'movepagetext' => "Wann Dir dëse Formulaire benotzt gitt Dir enger Säit en aneren Numm a réckelt se mat hirem Historique op den neien Numm.
 Den alen Titel gëtt eng Viruleedung op déi nei Säit.
 Dir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.
 Wann Dir dat net maacht, da vergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.
 Dir sidd responsabel datt d'Linke weiderhin dohinner pointéieren, wou se hi sollen.
 
-Beuecht w.e.g. datt d'Säit '''net''' geréckelt gëtt, wann et schonns eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.
-Dëst bedeit datt dir eng Säit zréck op hiren ursprénglechen Numm ëmbenenne kënnt wann Dir Iech geiert hat an datt Dir keng Säit iwwerschreiwe kënnt, déi et schonns gëtt.
+Beuecht w.e.g. datt d'Säit '''net''' geréckelt gëtt, wann et schonn eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.
+Dëst bedeit datt dir eng Säit zréck op hiren ursprénglechen Numm ëmbenenne kënnt wann Dir Iech geiert hat an datt Dir keng Säit iwwerschreiwe kënnt, déi et scho gëtt.
 
 '''OPGEPASST!'''
 Dëst kann en drastesche Changement fir eng populär Säit bedeiten;
-verstitt w.e.g. d'Konsequenze vun Ärer Handlung éier Dir dëst maacht.",
-'movepagetext-noredirectfixer' => "Wann Dir dëse Formulaire benotzt, réckelt dir eng komplett Säit mat hirem Historique op en neien Numm.
+verstitt w.e.g. d'Konsequenze vun Ärer Handlung ier Dir dëst maacht.",
+'movepagetext-noredirectfixer' => "Wann Dir dëse Formulaire benotzt, réckelt Dir eng komplett Säit mat hirem Historique op en neien Numm.
 Den alen Titel gëtt eng Viruleedung op den neien Titel.
 Dir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.
 Vergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.
-Dir sidd responsabel datt d'Linke weider dohinner pointéieren, wou se hi sollen.
+Dir sidd responsabel datt d'Linke weider dohi pointéieren, wou se hi sollen.
 
-Denkt w.e.g. drun datt d'Säit '''net''' geréckelt gëtt, wann et schonns eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.
-Dëst bedeit datt dir eng Säit zréck op deen Numm dee se virdrun hat ëmbenenne kënnt wann Dir e Feeler maacht an datt Dir keng Säit iwwerschreiwe kënnt, déi et schonns gëtt.
+Denkt w.e.g. drun datt d'Säit '''net''' geréckelt gëtt, wann et schonn eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.
+Dëst bedeit datt dir eng Säit zréck op deen Numm dee se virdrun hat ëmbenenne kënnt wann Dir e Feeler maacht an datt Dir keng Säit iwwerschreiwe kënnt, déi et scho gëtt.
 
 '''OPGEPASST!'''
 Dëst kann en drastesche Changement fir eng populär Säit sinn;
-verstitt w.e.g. d'Konsequenze vun ärer Handlung éier Dir dëst maacht.",
+verstitt w.e.g. d'Konsequenze vun ärer Handlung ier Dir dëst maacht.",
 'movepagetalktext' => "D'associéiert Diskussiounssäit, am Fall wou  eng do ass, gëtt automatesch matgeréckelt, '''ausser:'''
 *D'Säit gëtt an een aneren Nummraum geréckelt.
 *Et gëtt schonn eng Diskussiounssäit mat dësem Numm, oder
@@ -2764,10 +2764,10 @@ An deene Fäll musst Dir d'Diskussiounssäit manuell réckelen oder fusionéiere
 'movepage-moved' => "'''D'Säit \"\$1\" gouf op \"\$2\" geréckelt.'''",
 'movepage-moved-redirect' => 'Et gouf eng Viruleedung ugeluecht.',
 'movepage-moved-noredirect' => "D'Uleeë vun enger Viruleedung gouf ënnerdréckt.",
-'articleexists' => 'Eng Säit mat dësem Numm gëtt et schonns, oder den Numm deen Dir gewielt hutt gëtt net akzeptéiert.
+'articleexists' => 'Eng Säit mat dësem Numm gëtt et schonn, oder den Numm deen Dir gewielt hutt gëtt net akzeptéiert.
 Wielt w.e.g. en aneren Numm.',
 'cantmove-titleprotected' => "Dir kënnt keng Säit op dës Plaz réckelen, well deen neien Titel fir d'Uleeë gespaart ass.",
-'talkexists' => "D'Säit selwer gouf geréckelt, mä d'Diskussiounssäit konnt net mat eriwwergeholl gi well et schonns eng ënner deem neien Titel gëtt. W.e.g. setzt dës manuell zesummen.",
+'talkexists' => "D'Säit selwer gouf geréckelt, mä d'Diskussiounssäit konnt net mat eriwwergeholl gi well et schonn eng ënner deem neien Titel gëtt. W.e.g. setzt dës manuell zesummen.",
 'movedto' => 'geréckelt op',
 'movetalk' => 'Déi associéiert Diskussiounssäit matréckelen',
 'move-subpages' => 'Ënnersäite (bis zu $1) réckelen',
@@ -2815,7 +2815,7 @@ Sicht Iech w.e.g. en aneren Numm.',
 
 Fir eng Säit z'exportéieren, gitt den Titel an d'Textkëscht heidrënner an, een Titel pro Linn, a wielt aus op Dir nëmmen déi aktuell Versioun oder all Versioune mam ganzen Historique exportéiere wëllt.
 
-Wann nëmmen déi aktuell Versioun exportéiert soll ginn, kënnt Dir och e Link benotze wéi z.B [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fir d'\"[[{{MediaWiki:Mainpage}}]]\".",
+Wann nëmmen déi aktuell Versioun exportéiert soll ginn, kënnt Dir och e Link benotze wéi z. B. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fir d'\"[[{{MediaWiki:Mainpage}}]]\".",
 'exportall' => 'All Säiten Exportéieren',
 'exportcuronly' => 'Nëmmen déi aktuell Versioun exportéieren an net de ganzen Historique',
 'exportnohistory' => "----
@@ -2860,7 +2860,7 @@ $2',
 'thumbnail_invalid_params' => 'Ongëlteg Miniatur-Parameter',
 'thumbnail_dest_directory' => 'Den Zilepertoire konnt net ugeluecht ginn.',
 'thumbnail_image-type' => 'Bildtyp gëtt net ënnerstëtzt',
-'thumbnail_gd-library' => "D'Konfiguratioun vun der GD-Bibliothéik (GD library) ass net komplett: D'Fonctioun $1 feelt",
+'thumbnail_gd-library' => "D'Konfiguratioun vun der GD-Bibliothéik (GD library) ass net komplett: D'Funktioun $1 feelt",
 'thumbnail_image-missing' => 'De Fichier schengt ze feelen: $1',
 
 # Special:Import
@@ -2876,13 +2876,13 @@ All Transwiki-Import-Aktioune ginn am [[Special:Log/import|Import-Logbuch]] prot
 'import-interwiki-namespace' => 'Zil-Nummraum:',
 'import-upload-filename' => 'Numm vum Fichier:',
 'import-comment' => 'Bemierkung:',
-'importtext' => 'Exportéiert de Fichier w.e.g vun der Source-Wiki mat der [[Special:Export|Export-Fonctioun]].
+'importtext' => 'Exportéiert de Fichier w.e.g. vun der Source-Wiki mat der [[Special:Export|Export-Funktioun]].
 Späichert en op Ärem Computer of a luet en hei nees erop.',
 'importstart' => 'Importéier Säiten …',
 'import-revision-count' => '$1 {{PLURAL:$1|Versioun|Versiounen}}',
 'importnopages' => "Et gëtt keng Säiten fir z'importéieren.",
 'imported-log-entries' => "$1 {{PLURAL:$1|Entrée|Entréeën}} an d'Logbuch importéiert.",
-'importfailed' => 'Importatioun huet net fonctionnéiert: <nowiki>$1</nowiki>',
+'importfailed' => 'Importatioun huet net funktionéiert: <nowiki>$1</nowiki>',
 'importunknownsource' => 'Onbekannt Importquell',
 'importcantopen' => 'De Fichier dee sollt importéiert gi konnt net opgemaach ginn',
 'importbadinterwiki' => 'Falschen Interwiki-Link',
@@ -2891,9 +2891,9 @@ Späichert en op Ärem Computer of a luet en hei nees erop.',
 'importhistoryconflict' => 'Et gëtt Konflikter am Historique vun de Versiounen, (méiglecherweis gouf dës Säit virdrun importéiert).',
 'importnosources' => 'Fir den Transwiki-Import si keng Quellen definéiert an et ass net méiglech fir Säite mat alle Versiounen aus dem Transwiki-Tëschespäicher eropzelueden.',
 'importnofile' => 'Et gouf keen importéierte Fichier eropgelueden',
-'importuploaderrorsize' => "D'Eropluede vum importéierte Fichier huet net fonctionnéiert. De Fichier ass méi grouss wéi maximal erlaabt.",
+'importuploaderrorsize' => "D'Eropluede vum importéierte Fichier huet net funktionéiert. De Fichier ass méi grouss wéi maximal erlaabt.",
 'importuploaderrorpartial' => "D'Eropluede vum Fichier huet net geklappt. De Fichier gouf nëmmen deelweis eropgelueden.",
-'importuploaderrortemp' => "D'Eropluede vum Fichier huet net fonctionnéiert. En temporäre Repertoire feelt.",
+'importuploaderrortemp' => "D'Eropluede vum Fichier huet net funktionéiert. En temporäre Repertoire feelt.",
 'import-parse-failure' => 'Feeler bei engem XML-Import',
 'import-noarticle' => "Keng Säit fir z'importéieren!",
 'import-nonewrevisions' => "All d'Versioune goufe scho virdrunn importéiert.",
@@ -3095,7 +3095,7 @@ Dëst wahrscheinlech duerch en externe Link den op der schwaarzer Lëscht (black
 'markedaspatrollederrortext' => 'Dir musst eng Säitenännerung auswielen.',
 'markedaspatrollederror-noautopatrol' => 'Dir däerft Är eegen Ännerungen net als nogekuckt markéieren.',
 'markedaspatrollednotify' => 'Dës Ännerung vu(n) $1 gouf als nogekuckt markéiert.',
-'markedaspatrollederrornotify' => 'Markéieren als kontrolléiert huet net fonctionnéiert.',
+'markedaspatrollederrornotify' => 'Markéieren als kontrolléiert huet net funktionéiert.',
 
 # Patrol log
 'patrol-log-page' => 'Logbuch vun den iwwerkuckte Versiounen',
@@ -3355,7 +3355,7 @@ Déi aner sinn am Standard verstoppt.
 'exif-lens' => 'Objektiv dat benotzt gouf',
 'exif-serialnumber' => 'Seriennummer vun der Kamera',
 'exif-cameraownername' => 'Besëtzer vun der Kamera',
-'exif-label' => 'Etiquette',
+'exif-label' => 'Etikett',
 'exif-datetimemetadata' => 'Datum vun der leschter Ännerung vun de Metadaten',
 'exif-nickname' => 'Informellen Numm vum Bild',
 'exif-rating' => 'Bewäertung (vu 5)',
@@ -3447,7 +3447,7 @@ Déi aner sinn am Standard verstoppt.
 # Flash modes
 'exif-flash-fired-0' => 'Ouni Blëtz',
 'exif-flash-fired-1' => 'mat Blëtz',
-'exif-flash-return-0' => "keng Fonctioun fir d'Reflexioun vum Blëtz festzestellen",
+'exif-flash-return-0' => "keng Funktioun fir d'Reflexioun vum Blëtz festzestellen",
 'exif-flash-return-2' => 'keng Reflexioun vum Blëtz festgestallt',
 'exif-flash-return-3' => 'Reflexioun vum Blëtz festgestallt',
 'exif-flash-mode-1' => 'erzwongene Blëtz',
@@ -3520,7 +3520,7 @@ Déi aner sinn am Standard verstoppt.
 'exif-gpsaltitude-above-sealevel' => '$1 {{plural:$1|Meter|Meter}} iwwer dem Niveau vum Mier',
 'exif-gpsaltitude-below-sealevel' => '$1 {{plural:$1|Meter|Meter}} ënner dem Niveau vum Mier',
 
-'exif-gpsstatus-a' => 'Miessung am gaang',
+'exif-gpsstatus-a' => 'Miessung am Gaang',
 'exif-gpsstatus-v' => 'Interoperabilitéit vu der Miessung',
 
 'exif-gpsmeasuremode-2' => '2-dimensional Miessung',
@@ -3656,13 +3656,13 @@ Dëse Confirmatiounscode leeft den $4 of.',
 # Scary transclusion
 'scarytranscludedisabled' => '[Interwiki-Abannung ass ausgeschalt]',
 'scarytranscludefailed' => "[D'Siche no der Schabloun fir $1 huet net funktionéiert]",
-'scarytranscludefailed-httpstatus' => "[D'Oprufe vun der Schabloun $1: HTTP $2 huet net fonctionnéiert]",
+'scarytranscludefailed-httpstatus' => "[D'Opruffe vun der Schabloun $1: HTTP $2 huet net funktionéiert]",
 'scarytranscludetoolong' => "[D'URL ass ze laang]",
 
 # Delete conflict
-'deletedwhileediting' => "'''Opgepasst''': Dës Säit gouf geläscht nodeems datt dir ugefaangen hutt se z'änneren!",
-'confirmrecreate' => "De Benotzer [[User:$1|$1]] ([[User talk:$1|Diskussioun]]) huet dës Säit geläscht, nodeems datt där ugefaangen hutt drun ze schaffen. D'Begrënnung war: ''$2'' Bestätegt w.e.g., datt Dir dës Säit wierklech erëm nei opmaache wëllt.",
-'confirmrecreate-noreason' => 'De Benotzer [[User:$1|$1]] ([[User talk:$1|Diskussioun]]) huet dës Säit geläscht, nodeems datt Dir ugefaangen hutt drun ze schaffen. Confirméiert w.e.g., datt Dir dës Säit wierklech erëm nei opmaache wëllt.',
+'deletedwhileediting' => "'''Opgepasst''': Dës Säit gouf geläscht nodeem s datt dir ugefaangen hutt se z'änneren!",
+'confirmrecreate' => "De Benotzer [[User:$1|$1]] ([[User talk:$1|Diskussioun]]) huet dës Säit geläscht, nodeem s datt där ugefaangen hutt drun ze schaffen. D'Begrënnung war: ''$2'' Bestätegt w.e.g., datt Dir dës Säit wierklech erëm nei opmaache wëllt.",
+'confirmrecreate-noreason' => 'De Benotzer [[User:$1|$1]] ([[User talk:$1|Diskussioun]]) huet dës Säit geläscht, nodeem s datt Dir ugefaangen hutt drun ze schaffen. Confirméiert w.e.g., datt Dir dës Säit wierklech erëm nei opmaache wëllt.',
 'recreate' => 'Erëm uleeën',
 
 # action=purge
@@ -3703,7 +3703,7 @@ Dëse Confirmatiounscode leeft den $4 of.',
 # Live preview
 'livepreview-loading' => 'Lueden...',
 'livepreview-ready' => 'Lueden … Fäerdeg!',
-'livepreview-failed' => "Live-Preview huet net fonctionéiert! Benotzt w.e.g. d'Fonctioun ''Kucken ouni ofzespäicheren''.",
+'livepreview-failed' => "Live-Preview huet net funktionéiert! Benotzt w.e.g. d'Funktioun ''Kucken ouni ofzespäicheren''.",
 'livepreview-error' => "Verbindung net méiglech: $1 „$2“.
 Benotzt w.e.g. d'Funktioun fir déi nach net gespäichert Versioun ze kucken (Kucken ouni ofzespäicheren).",
 
@@ -3716,7 +3716,7 @@ Benotzt w.e.g. d'Funktioun fir déi nach net gespäichert Versioun ze kucken (Ku
 'watchlistedit-noitems' => 'Är Iwwerwaachungslëscht ass eidel.',
 'watchlistedit-normal-title' => 'Iwwerwaachungslëscht änneren',
 'watchlistedit-normal-legend' => 'Säite vun der Iwwerwaachungslëscht erofhuelen',
-'watchlistedit-normal-explain' => 'D\'Säite vun Ã¤rer Iwwerwaachungslëscht ginn drënner gewisen.
+'watchlistedit-normal-explain' => 'D\'Säite vun Ã\84rer Iwwerwaachungslëscht ginn drënner gewisen.
 Fir eng Säit erofzehuelen, klickt op d\'Haischen niewendrun a klickt duerno op "{{int:Watchlistedit-normal-submit}}".
 Dir kënnt och [[Special:EditWatchlist/raw|déi net formatéiert Iwwerwaachungslëscht änneren]].',
 'watchlistedit-normal-submit' => 'Säiten erofhuelen',
@@ -3761,7 +3761,7 @@ Dir kënnt och [[Special:EditWatchlist|de Standard Editeur benotzen]].",
 'version-hook-subscribedby' => 'Opruff vum',
 'version-version' => '(Versioun $1)',
 'version-license' => 'Lizenz',
-'version-poweredby-credits' => "Dës Wiki fonctionnéiert mat '''[//www.mediawiki.org/ MediaWiki]''', Copyright © 2001-$1 $2.",
+'version-poweredby-credits' => "Dës Wiki funktionéiert mat '''[//www.mediawiki.org/ MediaWiki]''', Copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'anerer',
 'version-poweredby-translators' => 'translatewiki.net Iwwersetzer',
 'version-credits-summary' => "Mir soen dëse Persoune 'Merci' fir hir Mataarbecht u [[Special:Version|MediaWiki]].",
@@ -3843,7 +3843,10 @@ Dir misst eng [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie vun der GNU General Public
 'tags-tag' => 'Numm vun der Markéierung',
 'tags-display-header' => 'Opzielungen op den Ännerungslëschten',
 'tags-description-header' => 'Ganz Beschreiwung vun der Bedeitung',
+'tags-active-header' => 'Aktiv?',
 'tags-hitcount-header' => 'Markéiert Ännerungen',
+'tags-active-yes' => 'Jo',
+'tags-active-no' => 'Neen',
 'tags-edit' => 'änneren',
 'tags-hitcount' => '$1 {{PLURAL:$1|Ännerung|Ännerungen}}',
 
@@ -3937,7 +3940,7 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'feedback-error3' => 'Feeler: Keng Äntwert vum API',
 'feedback-thanks' => 'Merci! Äre Feedback gouf op der Säit "[$2 $1]" gespäichert.',
 'feedback-close' => 'Fäerdeg',
-'feedback-bugcheck' => 'Super! Kuckt just no ob et net ee vun de schonns [$1 bekannte Feeler] ass.',
+'feedback-bugcheck' => 'Super! Kuckt just no ob et net ee vun de scho [$1 bekannte Feeler] ass.',
 'feedback-bugnew' => 'Ech hunn et nogekuckt. Den neie Bug mellen',
 
 # Search suggestions
@@ -3954,7 +3957,7 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|Duebele Fichier|Duebel Fichieren}}',
 '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-fetchfileerror' => 'Interne Feeler: beim Opruffe vum Fichier huet eppes net funktionéiert.',
 'api-error-fileexists-forbidden' => 'E Fichier mam Numm "$1" gëtt et schonn an e kann net iwwerschriwwe ginn.',
 'api-error-fileexists-shared-forbidden' => 'E Fichier mam Numm "$1" gëtt et schonn am gedeelte Repertoire an e kann net iwwerschriwwe ginn.',
 'api-error-file-too-large' => 'De Fichier deen Dir geschéckt hutt war ze grouss.',
@@ -3971,7 +3974,7 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'api-error-missingresult' => "Interne Feeler: et konnt net festgestallt ginn ob d'Kopie eppes ginn ass.",
 'api-error-mustbeloggedin' => 'Dir musst ageloggt si fir Fichieren eropzelueden.',
 'api-error-mustbeposted' => 'An dëser Software ass e Feeler; se benotzt net déi richteg HTTP-Method.',
-'api-error-noimageinfo' => "D'Eroplueden huet fonctionnéiert, awer de Server huet eis keng Informatiounen iwwer de Fichier ginn.",
+'api-error-noimageinfo' => "D'Eroplueden huet funktionéiert, awer de Server huet eis keng Informatiounen iwwer de Fichier ginn.",
 'api-error-nomodule' => "Interne Feeler: de Modul fir d'Eroplueden ass net agestallt.",
 'api-error-ok-but-empty' => 'Interne Feeler: keng Äntwert vum Server.',
 'api-error-overwrite' => "D'Iwwerschreiwe vun engem Fichier ass net erlaabt.",
@@ -4005,7 +4008,7 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|Sekonn|Sekonnen}}',
 'limitreport-walltime' => 'Echtzäitnotzung',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|Sekonn|Sekonnen}}',
-'limitreport-postexpandincludesize-value' => '$1/$2 Byten',
-'limitreport-templateargumentsize-value' => '$1/$2 Byten',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|Byte|Byten}}',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|Byte|Byten}}',
 
 );
index a21e022..877054d 100644 (file)
@@ -297,7 +297,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Par {{grammar:akuzatīvs|{{SITENAME}}}}',
 'aboutpage' => 'Project:Par',
-'copyright' => 'Saturs ir pieejams saskaņā ar $1.',
+'copyright' => 'Saturs ir pieejams saskaņā ar $1, ja vien nav norādīts citādi.',
 'copyrightpage' => '{{ns:project}}:Autortiesības',
 'currentevents' => 'Aktualitātes',
 'currentevents-url' => 'Project:Aktualitātes',
@@ -425,6 +425,12 @@ Vaicājums: $2',
 'protectedinterface' => 'Šī lapa satur programmatūras interfeisā lietotu tekstu un ir bloķēta pret izmaiņām, lai pasargātu no bojājumiem.',
 'editinginterface' => "'''Brīdinājums:''' Tu izmaini lapu, kuras saturu izmanto wiki programmatūras lietotāja saskarnē (''interfeisā''). Šīs lapas izmaiņas ietekmēs lietotāja saskarni citiem lietotājiem. Pēc modificēšanas, šīs izmaiņas būtu lietderīgi pievienot arī [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], kas ir MediaWiki lokalizēšanas projekts.",
 'namespaceprotected' => "Tev nav atļaujas izmainīt lapas, kas atrodas '''$1''' ''namespacē''.",
+'customcssprotected' => 'Jums nav tiesību rediģēt šo CSS lapu, jo tā satur cita lietotāja personiskos iestatījumus.',
+'customjsprotected' => 'Jums nav tiesību rediģēt šo JavaScript lapu, jo tā satur cita lietotāja personiskos iestatījumus.',
+'mycustomcssprotected' => 'Jums nav tiesību rediģēt šo CSS lapu.',
+'mycustomjsprotected' => 'Jums nav tiesību rediģēt šo JavaScript lapu.',
+'myprivateinfoprotected' => 'Jums nav tiesību rediģēt savu privāto informāciju.',
+'mypreferencesprotected' => 'Jums nav tiesību rediģēt savus iestatījumus.',
 'ns-specialprotected' => 'Nevar izmainīt īpašās lapas.',
 'titleprotected' => "Šī lapa ir aizsargāta pret izveidošanu. To aizsargāja [[User:$1|$1]].
 Norādītais iemesls bija ''$2''.",
@@ -472,20 +478,26 @@ Vari turpināt to izmantot anonīmi, vari <span class='plainlinks'>[$1 atgriezti
 'gotaccount' => "Tev jau ir lietotājvārds? '''$1'''!",
 'gotaccountlink' => 'Dodies iekšā',
 'userlogin-resetlink' => 'Esat aizmirsis savu pieslēgšanās informāciju?',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Palīdzība ar pieslēgšanos]]',
+'createacct-join' => 'Ievadiet savu informāciju zemāk.',
+'createacct-another-join' => 'Ievadiet jaunā konta informāciju zemāk.',
 'createacct-emailrequired' => 'E-pasta adrese',
 'createacct-emailoptional' => 'E-pasta adrese (nav obligāta)',
 'createacct-email-ph' => 'Ievadiet savu e-pasta adresi',
 'createacct-another-email-ph' => 'Ievadiet e-pasta adresi',
-'createaccountmail' => 'pa e-pastu',
+'createaccountmail' => 'Izmantot nejauši ģenerētu pagaidu paroli un nosūtīt to uz norādīto e-pasta adresi',
 'createacct-realname' => 'Īstais vārds (nav obligāts)',
 'createaccountreason' => 'Iemesls:',
 'createacct-reason' => 'Iemesls',
 'createacct-reason-ph' => 'Kāpēc jūs veidojat citu kontu',
 'createacct-captcha' => 'Drošības pārbaude',
+'createacct-imgcaptcha-ph' => 'Ievadiet tekstu, kuru jūs redzat augstāk',
 'createacct-submit' => 'Izveidot savu kontu',
 'createacct-another-submit' => 'Izveidot citu lietotāja kontu',
+'createacct-benefit-heading' => '{{SITENAME}} darbojas ar tādu cilvēku kā jūs ieguldījumu.',
 'createacct-benefit-body1' => '{{PLURAL:$1|labojums|labojumi}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|lapa|lapas}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|nesens dalībnieks|neseni dalībnieki}}',
 'badretype' => 'Tevis ievadītās paroles nesakrīt.',
 'userexists' => 'Ievadītais lietotājvārds jau ir aizņemts.
 Lūdzu, izvēlieties citu vārdu.',
@@ -3129,7 +3141,7 @@ Var arī lietot [[Special:EditWatchlist|standarta izmainīšanas lapu]].',
 
 # Database error messages
 'dberr-header' => 'Šim viki ir problēma',
-'dberr-problems' => 'Atvainojiet! 
+'dberr-problems' => 'Atvainojiet!
 Šai vietnei ir radušās tehniskas problēmas.',
 'dberr-again' => 'Uzgaidiet dažas minūtes un pārlādējiet šo lapu.',
 'dberr-info' => '(Nevar sazināties ar datubāzes serveri: $1)',
@@ -3206,6 +3218,7 @@ Var arī lietot [[Special:EditWatchlist|standarta izmainīšanas lapu]].',
 'api-error-uploaddisabled' => 'Augšupielāde šajā wiki  ir atslēgta.',
 
 # Limit report
+'limitreport-title' => 'Parsētāja profilēšanas dati:',
 'limitreport-postexpandincludesize-value' => '$1/$2 baiti',
 'limitreport-templateargumentsize-value' => '$1/$2 baiti',
 
index 695dbdf..187fbcb 100644 (file)
@@ -3418,8 +3418,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'ऐ विकीमे एकटा समस्या अछि',
-'dberr-problems' => 'दुखी छी!
-ई जालस्थल तकनीकी समस्या अनुभव कऽ अछि।',
+'dberr-problems' => 'दुखी छी! ई जालस्थल तकनीकी समस्या अनुभव कऽ अछि।',
 'dberr-again' => 'किछु काल बाट ताकू आ फेरसँ भारित करू।',
 'dberr-info' => '(दत्तनिधि वितरककेँ सम्पर्क नै कऽ सकल: $1)',
 'dberr-usegoogle' => 'ऐ बीचमे अहाँ गूगलसँ खोज कऽ सकै छी।',
index a94eb29..d215781 100644 (file)
@@ -2609,8 +2609,7 @@ Sanak mustilah alah manarimo [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi P
 
 # Database error messages
 'dberr-header' => 'Wiki ko bamasalah',
-'dberr-problems' => 'Maaf!
-Situs ko mangalami masalah teknis.',
+'dberr-problems' => 'Maaf! Situs ko mangalami masalah teknis.',
 
 # HTML forms
 'htmlform-required' => 'Nilai ko diparaluan',
index d9147ce..f41922c 100644 (file)
@@ -599,7 +599,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'За {{SITENAME}}',
 'aboutpage' => 'Project:За {{SITENAME}}',
-'copyright' => 'СиÑ\82е Ñ\82екÑ\81Ñ\82ови Ñ\81е Ð´Ð¾Ñ\81Ñ\82апни Ð¿Ð¾Ð´ Ñ\83Ñ\81ловиÑ\82е Ð½Ð° $1.',
+'copyright' => 'СодÑ\80жинаÑ\82а Ðµ Ð´Ð¾Ñ\81Ñ\82апна Ð¿Ð¾Ð´ Ñ\83Ñ\81ловиÑ\82е Ð½Ð° $1 Ð¾Ñ\81вен Ð°ÐºÐ¾ Ð½Ðµ Ðµ Ð¿Ð¾Ð¸Ð½Ð°ÐºÑ\83 Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¾.',
 'copyrightpage' => '{{ns:project}}:Авторски права',
 'currentevents' => 'Тековни настани',
 'currentevents-url' => 'Project:Тековни настани',
@@ -1169,8 +1169,8 @@ $2
 Администраторот кој ја заклучил базата на податоци го дал следново објаснување: $1",
 'protectedpagewarning' => "'''Предупредување:  Оваа страница е заклучена, така што само корисници со администраторски привилегии можат да ја уредуваат.'''
 За ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
-'semiprotectedpagewarning' => "'''Предупредување:'''  Оваа страница е заклучена, така што само регистрирани корисници може да ја уредуваат.'''
-За ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
+'semiprotectedpagewarning' => "'''Предупредување:'''  Оваа страница е заштитена, така што може да ја уредуваат само регистрирани корисници.'''
+За ваша информација, подолу е прикажана последната ставка во дневникот на измени:",
 'cascadeprotectedwarning' => "'''Предупредување:''' Оваа страница е заклучена, така што можат да ја уредуваат само корисници со администраторски привилегии, бидејќи е вклучена во {{PLURAL:$1|следнава „преносно-заштитена“ страница|следниве „преносно-заштитени“ страници}}:",
 'titleprotectedwarning' => "'''Предупредување:'''  Оваа страница е заклучена, така што се потребни [[Special:ListGroupRights|посебни права]] за да се создаде.''''
 За ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
@@ -1774,8 +1774,8 @@ $1",
 'action-block' => 'оневозможи го овој корисник да уредува',
 'action-protect' => 'измени го степенот на заштита на оваа страница',
 'action-rollback' => 'брзо отповикување на измени направени од последниот уредник на страницата',
-'action-import' => 'Ñ\83вези Ñ\98а Ð¾Ð²Ð°Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а од друго вики',
-'action-importupload' => 'Ñ\83вези Ñ\98а Ð¾Ð²Ð°Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¾Ð´ Ð¿Ð¾Ð´Ð¸Ð³Ð½Ð°Ñ\82а Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82ека',
+'action-import' => 'Ñ\83воз Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и од друго вики',
+'action-importupload' => 'Ñ\83воз Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и Ñ\81о Ð¿Ð¾Ð´Ð¸Ð³Ð°Ñ\9aе Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки',
 'action-patrol' => 'означи ги уредувањата на другите како проверени',
 'action-autopatrol' => 'вашите уредувања да се обележуват како испатролирани',
 'action-unwatchedpages' => 'преглед на список на ненабљудувани страници',
@@ -2323,6 +2323,7 @@ $1',
 'listusers' => 'Список на корисници',
 'listusers-editsonly' => 'Прикажи само корисници кои уредувале',
 'listusers-creationsort' => 'Подреди по датум на создавање',
+'listusers-desc' => 'Подреди по надолен редослед',
 'usereditcount' => '$1 {{PLURAL:$1|уредување|уредувања}}',
 'usercreated' => '{{GENDER:$3|Создадена}} на $1 во $2 ч.',
 'newpages' => 'Нови страници',
@@ -2613,7 +2614,7 @@ $UNWATCHURL
 Последното уредување го изврши [[User:$3|$3]] ([[User talk:$3|разговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Коментарот на уредувањето беше: „''$1''“.",
 'revertpage' => 'Отстрането уредувањето на [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]]), вратено на последната верзија на [[User:$1|$1]]',
-'revertpage-nouser' => 'Ð\92Ñ\80аÑ\82ени Ñ\83Ñ\80едÑ\83ваÑ\9aа Ð¾Ð´ Ñ\81кÑ\80иен ÐºÐ¾Ñ\80иÑ\81ник Ð½Ð° Ð¿Ð¾Ñ\81леднаÑ\82а Ñ\80евизиÑ\98а Ð¾Ð´ [[User:$1|$1]]',
+'revertpage-nouser' => 'Ð\92Ñ\80аÑ\82ени Ñ\83Ñ\80едÑ\83ваÑ\9aа Ð¾Ð´ Ñ\81кÑ\80иен ÐºÐ¾Ñ\80иÑ\81ник Ð½Ð° Ð¿Ð¾Ñ\81леднаÑ\82а Ñ\80евизиÑ\98а Ð½Ð° {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Откажани уредувањата на $1; вратено на последната верзија на $2.',
 
 # Edit tokens
@@ -3041,10 +3042,10 @@ $1',
 'imageinvalidfilename' => 'Целниот наслов на податотеката е невалиден',
 'fix-double-redirects' => 'Подновете ги сите пренасочувања што водат кон првобитниот наслов',
 'move-leave-redirect' => 'Направи пренасочување',
-'protectedpagemovewarning' => "'''Предупредување:'''  Оваа страница е заклучена, така што само корисници со администраторски привилегии може да ја преместат.
-За ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
-'semiprotectedpagemovewarning' => "'''Напомена:'''  Оваа страница е заклучена, така што само регистрирани корисници може да ја преместат.
-За ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
+'protectedpagemovewarning' => "'''Предупредување:'''  Оваа страница е заштитена, така што само може да ја преместуваат само корисници со администраторски привилегии.
+За ваша информација, подолу е прикажана последната ставка во дневникот на измени:",
+'semiprotectedpagemovewarning' => "'''Напомена:'''  Оваа страница е заштитена, така што може да ја преместуваат само регистрирани корисници.
+За ваша информација, подолу е прикажана последната ставка во дневникот на измени:",
 'move-over-sharedrepo' => '== Податотеката постои ==
 [[:$1]] постои на заедничко складиште. Ако податотеката ја преместите на овој наслов, тоа ќе ја потисне заедничката податотека.',
 'file-exists-sharedrepo' => 'Одбраното име на податотеката веќе се користи на заедничко складиште.
@@ -4450,9 +4451,9 @@ $5
 'limitreport-ppvisitednodes' => 'Бр. на пројдени јазли од предобработувачот',
 'limitreport-ppgeneratednodes' => 'Бр. на создадени јазли од предобработувачот',
 'limitreport-postexpandincludesize' => 'Големина на вклученото по проширувањето',
-'limitreport-postexpandincludesize-value' => '$1/$2 бајти',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|бајт|бајти}}',
 'limitreport-templateargumentsize' => 'Големина на аргументот во шаблонот',
-'limitreport-templateargumentsize-value' => '$1/$2 бајти',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|бајт|бајти}}',
 'limitreport-expansiondepth' => 'Најголема длабочина на проширувањето',
 'limitreport-expensivefunctioncount' => 'Бр. на сложени парсерски функции',
 
index 160773c..5e4d339 100644 (file)
@@ -588,7 +588,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} സം‌രംഭത്തെക്കുറിച്ച്',
 'aboutpage' => 'Project:വിവരണം',
-'copyright' => 'ഉള്ളടക്കം $1 പ്രകാരം ലഭ്യം.',
+'copyright' => 'à´ªàµ\8dà´°à´¤àµ\8dà´¯àµ\87à´\95à´\82 à´ªà´±à´¯à´¾à´¤àµ\8dà´¤ à´ªà´\95àµ\8dà´·à´\82 à´\89à´³àµ\8dà´³à´\9fà´\95àµ\8dà´\95à´\82 $1 à´ªàµ\8dà´°à´\95ാരà´\82 à´²à´­àµ\8dà´¯à´\82.',
 'copyrightpage' => '{{ns:project}}:പകർപ്പവകാശം',
 'currentevents' => 'സമകാലികം',
 'currentevents-url' => 'Project:സമകാലികം',
@@ -1178,6 +1178,8 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 'node-count-exceeded-warning' => 'താൾ നോഡ്-എണ്ണം അധികരിച്ചിരിക്കുന്നു',
 'expansion-depth-exceeded-category' => 'വികസന ആഴം അധികരിച്ച താളുകൾ',
 'expansion-depth-exceeded-warning' => 'താളിന്റെ വികസന ആഴം അധികരിച്ചിരിക്കുന്നു',
+'parser-unstrip-loop-warning' => 'അൺസ്ട്രിപ്പ് (Unstrip) പാഴ്സർ ഫങ്ഷനിൽ കുരുക്ക് കണ്ടെത്തി',
+'parser-unstrip-recursion-limit' => 'അൺസ്ട്രിപ്പ് (Unstrip) പാഴ്സർ ഫങ്ഷന്റെ പുനരാവർത്തന പരിധി അധികരിച്ചിരിക്കുന്നു ($1)',
 'converter-manual-rule-error' => 'മാനുഷികമായുള്ള ഭാഷാ പരിവർത്തന നിയമത്തിൽ പിഴവ് കണ്ടെത്തി',
 
 # "Undo" feature
@@ -1715,8 +1717,8 @@ $1",
 'action-block' => 'ഈ ഉപയോക്താവിനെ തിരുത്തുന്നതിൽ നിന്നും തടയുക',
 'action-protect' => 'ഈ താളിന്റെ സം‌രക്ഷണ മാനത്തിൽ വ്യത്യാസം വരുത്തുക',
 'action-rollback' => 'ഒരു പ്രത്യേക താളിൽ അവസാനം തിരുത്തൽ നടത്തിയ ഉപയോക്താവിന്റെ തിരുത്തലുകൾ പെട്ടെന്ന് ഒഴിവാക്കുക',
-'action-import' => 'à´\88 à´¤à´¾àµ¾ à´®à´±àµ\8dà´±àµ\8aà´°àµ\81 à´µà´¿à´\95àµ\8dà´\95à´¿à´¯àµ\80ൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´\82 ഇറക്കുമതി ചെയ്യുക',
-'action-importupload' => 'à´\85à´ªàµ\8dâ\80\8cà´²àµ\8bà´¡àµ\8d à´\9aàµ\86à´¯àµ\8dà´¤ à´ªàµ\8dരമാണതàµ\8dതിൽ à´\87à´¨àµ\8dà´¨àµ\81à´\82 à´\88 à´¤à´¾ൾ ഇറക്കുമതി ചെയ്യുക',
+'action-import' => 'മറàµ\8dà´±àµ\8aà´°àµ\81 à´µà´¿à´\95àµ\8dà´\95à´¿à´¯àµ\80ൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´\82 à´¤à´¾à´³àµ\81à´\95ൾ ഇറക്കുമതി ചെയ്യുക',
+'action-importupload' => 'à´\85à´ªàµ\8dâ\80\8cà´²àµ\8bà´¡àµ\8d à´\9aàµ\86à´¯àµ\8dà´¤ à´ªàµ\8dരമാണതàµ\8dതിൽ à´\87à´¨àµ\8dà´¨àµ\81à´\82 à´¤à´¾à´³àµ\81à´\95ൾ ഇറക്കുമതി ചെയ്യുക',
 'action-patrol' => 'മറ്റുള്ളവരുടെ തിരുത്തൽ റോന്തുചുറ്റിയതായി അടയാളപ്പെടുത്തുക',
 'action-autopatrol' => 'താങ്കളുടെ തിരുത്തലിൽ റോന്തുചുറ്റിയതായി അടയാളപ്പെടുത്തി',
 'action-unwatchedpages' => 'ശ്രദ്ധിക്കാത്ത താളുകളുടെ പട്ടിക കാട്ടുക',
@@ -2238,6 +2240,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'listusers' => 'ഉപയോക്താക്കളുടെ പട്ടിക',
 'listusers-editsonly' => 'തിരുത്തലുകൾ ചെയ്തിട്ടുള്ള ഉപയോക്താക്കളെ മാത്രം കാണിക്കുക',
 'listusers-creationsort' => 'സൃഷ്ടിക്കപ്പെട്ട തീയതി അനുസരിച്ച് ക്രമീകരിക്കുക',
+'listusers-desc' => 'അവരോഹണക്രമത്തിൽ ആക്കുക',
 'usereditcount' => '{{PLURAL:$1|ഒരു തിരുത്തൽ|$1 തിരുത്തലുകൾ}}',
 'usercreated' => '$1 $2-നു {{GENDER:$3|സൃഷ്ടിച്ചത്}}',
 'newpages' => 'പുതിയ താളുകൾ',
@@ -2520,7 +2523,7 @@ $UNWATCHURL
 താളിലെ അവസാന തിരുത്തൽ ചെയ്തിരിക്കുന്നത് [[User:$3|$3]] ([[User talk:$3|സംവാദം]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) ആണ്.',
 'editcomment' => "തിരുത്തലിന്റെ ചുരുക്കം: \"''\$1''\" എന്നായിരുന്നു.",
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|സംവാദം]]) നടത്തിയ തിരുത്തലുകൾ നീക്കം ചെയ്തിരിക്കുന്നു; നിലവിലുള്ള പതിപ്പ് [[User:$1|$1]] സൃഷ്ടിച്ചതാണ്',
-'revertpage-nouser' => 'മറയ്ക്കപ്പെട്ട ഉപയോക്താവ് നടത്തിയ തിരുത്തലുകൾ [[User:$1|$1]] സൃഷ്ടിച്ച അവസാന പതിപ്പിലേയ്ക്ക് മുൻപ്രാപനം ചെയ്തിരിക്കുന്നു',
+'revertpage-nouser' => 'മറയ്ക്കപ്പെട്ട ഉപയോക്താവ് നടത്തിയ തിരുത്തലുകൾ {{GENDER:$1|[[User:$1|$1]]}} സൃഷ്ടിച്ച അവസാന പതിപ്പിലേയ്ക്ക് മുൻപ്രാപനം ചെയ്തിരിക്കുന്നു',
 'rollback-success' => '$1 ചെയ്ത തിരുത്തൽ തിരസ്ക്കരിച്ചിരിക്കുന്നു; $2 ചെയ്ത തൊട്ടു മുൻപത്തെ പതിപ്പിലേക്ക് സേവ് ചെയ്യുന്നു.',
 
 # Edit tokens
@@ -4038,8 +4041,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'ഈ വിക്കിയിൽ പ്രശ്നമുണ്ട്',
-'dberr-problems' => 'ക്ഷമിക്കണം! 
-ഈ സൈറ്റിൽ സാങ്കേതിക തകരാറുകൾ അനുഭവപ്പെടുന്നുണ്ട്.',
+'dberr-problems' => 'ക്ഷമിക്കണം! ഈ സൈറ്റിൽ സാങ്കേതിക തകരാറുകൾ അനുഭവപ്പെടുന്നുണ്ട്.',
 'dberr-again' => 'കുറച്ച് മിനിട്ടുകൾ കാത്തിരുന്ന് വീണ്ടും തുറക്കുവാൻ ശ്രമിക്കുക.',
 'dberr-info' => '(വിവരശേഖര സെർവറുമായി ബന്ധപ്പെടാൻ പറ്റിയില്ല: $1)',
 'dberr-info-hidden' => '(ഡേറ്റാബേസ് സെർവറുമായി ബന്ധപ്പെടരുത്)',
@@ -4187,9 +4189,9 @@ $5
 'limitreport-ppvisitednodes' => 'പ്രീപ്രോസസർ സന്ദർശിച്ച നോഡിന്റെ എണ്ണം',
 'limitreport-ppgeneratednodes' => 'പ്രീപ്രോസർ സൃഷ്ടിച്ച നോഡിന്റെ എണ്ണം',
 'limitreport-postexpandincludesize' => 'വികസിപ്പിച്ചതിനു ശേഷമുള്ള ഉൾപ്പെടുത്തൽ വലിപ്പം',
-'limitreport-postexpandincludesize-value' => '$1/$2 ബൈറ്റുകൾ',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|ബൈറ്റ് |ബൈറ്റുകൾ}}',
 'limitreport-templateargumentsize' => 'ഫലകത്തിലെ ചരങ്ങൾക്കനുവദിച്ചിരിക്കുന്ന വലിപ്പം',
-'limitreport-templateargumentsize-value' => '$1/$2 ബൈറ്റുകൾ',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|ബൈറ്റ് |ബൈറ്റുകൾ}}',
 'limitreport-expansiondepth' => 'വികസിപ്പിക്കാനാവുന്ന ഉയർന്ന പരിധി',
 'limitreport-expensivefunctioncount' => 'വ്യയമേറിയ പാഴ്സർ ഫങ്ഷൻ എണ്ണം',
 
index e5f3a6d..b158fe3 100644 (file)
@@ -3404,8 +3404,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'Энэхүү викид асуудал үүсэв',
-'dberr-problems' => 'Уучлаарай!
-Энэхүү сайтад техникийн саатал учирч байна.',
+'dberr-problems' => 'Уучлаарай! Энэхүү сайтад техникийн саатал учирч байна.',
 'dberr-again' => 'Хэдэн минут хүлээгээд дахин ачаалж үзнэ үү.',
 'dberr-info' => '(өгөгдлийн сангийн серверт хандаж чадсангүй: $1)',
 'dberr-usegoogle' => 'Та одоохондоо Google-г ашиглан хайлтаа хийх боломжтой.',
index de7479c..d5a7690 100644 (file)
@@ -568,7 +568,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}}बद्दल',
 'aboutpage' => 'Project:माहितीपृष्ठ',
-'copyright' => 'येथील मजकूर $1च्या अंतर्गत उपलब्ध आहे.',
+'copyright' => 'येथील मजकूर $1च्या अंतर्गत उपलब्ध आहे जोपर्यंत इतर नोंदी केलेल्या नाहीत.',
 'copyrightpage' => '{{ns:project}}:प्रताधिकार',
 'currentevents' => 'सद्य घटना',
 'currentevents-url' => 'Project:सद्य घटना',
index 19db9ed..fea4ebe 100644 (file)
@@ -448,7 +448,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Perihal {{SITENAME}}',
 'aboutpage' => 'Project:Perihal',
-'copyright' => 'Kandungan disediakan dengan $1.',
+'copyright' => 'Kandungan disediakan di bawah $1 melainkan dinyatakan sebaliknya.',
 'copyrightpage' => '{{ns:project}}:Hak cipta',
 'currentevents' => 'Hal semasa',
 'currentevents-url' => 'Project:Hal semasa',
@@ -1587,8 +1587,8 @@ Tindakan ini tidak boleh dibatalkan.',
 'action-block' => 'menyekat pengguna ini daripada menyunting',
 'action-protect' => 'mengubah aras perlindungan bagi laman ini',
 'action-rollback' => 'mengundurkan suntingan-suntingan pengguna terkini yang menyunting laman tertentu dengan cepat',
-'action-import' => 'mengimport laman ini dari wiki lain',
-'action-importupload' => 'mengimport laman ini dengan memuat naik fail',
+'action-import' => 'mengimport halaman-halaman dari wiki lain',
+'action-importupload' => 'mengimport halaman-halaman daripada memuat naik fail',
 'action-patrol' => 'menanda ronda suntingan orang lain',
 'action-autopatrol' => 'menanda ronda suntingan anda sendiri',
 'action-unwatchedpages' => 'melihat senarai laman tidak dipantau',
@@ -2116,6 +2116,7 @@ Masukan yang <del>dipotong</del> telah diselesaikan.',
 'listusers' => 'Senarai pengguna',
 'listusers-editsonly' => 'Hanya papar pengguna yang telah membuat suntingan',
 'listusers-creationsort' => 'Susun mengikut tarikh penciptaan',
+'listusers-desc' => 'Susun dalam turutan menurun',
 'usereditcount' => '$1 suntingan',
 'usercreated' => '{{GENDER:$3|Dibuat}} pada $1, $2',
 'newpages' => 'Laman baru',
@@ -2401,7 +2402,7 @@ Sila lihat $2 untuk rekod penghapusan terkini.',
 Suntingan terakhir telah dibuat oleh [[User:$3|$3]] ([[User talk:$3|Perbualan]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Ringkasan sutingan: \"''\$1''\".",
 'revertpage' => 'Membalikkan suntingan oleh [[Special:Contributions/$2|$2]] ([[User talk:$2|Perbincangan]]) kepada versi terakhir oleh [[User:$1|$1]]',
-'revertpage-nouser' => 'Membalikkan suntingan oleh seorang pengguna tersorok kepada semakan terakhir oleh [[User:$1|$1]]',
+'revertpage-nouser' => 'Membalikkan suntingan oleh seorang pengguna tersorok kepada semakan terakhir oleh {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Membalikkan suntingan oleh $1 kepada versi terakhir oleh $2.',
 
 # Edit tokens
@@ -4059,7 +4060,13 @@ Ataupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dic
 'limitreport-cputime-value' => '$1 saat',
 'limitreport-walltime' => 'Penggunaan masa nyata',
 'limitreport-walltime-value' => '$1 saat',
-'limitreport-postexpandincludesize-value' => '$1/$2 bait',
-'limitreport-templateargumentsize-value' => '$1/$2 bait',
+'limitreport-ppvisitednodes' => 'Kiraan nod kunjungan pempraproses',
+'limitreport-ppgeneratednodes' => 'Kiraan nod hasilan pempraproses',
+'limitreport-postexpandincludesize' => 'Saiz selepas peluasan',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|bait}}',
+'limitreport-templateargumentsize' => 'Saiz parameter templat',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|bait}}',
+'limitreport-expansiondepth' => 'Kedalaman peluasan terjauh',
+'limitreport-expensivefunctioncount' => 'Kiraan fungsi penghurai muatan tinggi',
 
 );
index 1c95001..227cad4 100644 (file)
@@ -1899,8 +1899,7 @@ Your e-mail address is not revealed when other users contact you.
 
 # Database error messages
 'dberr-header' => 'ဤဝီကီတွင် ပြဿနာတစ်ခု ရှိနေသည်',
-'dberr-problems' => 'ဝမ်းနည်းပါသည်။
-ဤဆိုက်သည် နည်းပညာပိုင်းဆိုင်ရာ အခက်အခဲများ ကြုံတွေ့နေရပါသည်။',
+'dberr-problems' => 'ဝမ်းနည်းပါသည်။ ဤဆိုက်သည် နည်းပညာပိုင်းဆိုင်ရာ အခက်အခဲများ ကြုံတွေ့နေရပါသည်။',
 
 # HTML forms
 'htmlform-required' => 'ဤတန်ဖိုး လိုအပ်သည်',
index b3bd6a7..91c0d6e 100644 (file)
@@ -412,18 +412,18 @@ $messages = array(
 'october-gen' => 'oktober',
 'november-gen' => 'november',
 'december-gen' => 'desember',
-'jan' => 'jan',
-'feb' => 'feb',
-'mar' => 'mar',
-'apr' => 'apr',
+'jan' => 'jan.',
+'feb' => 'feb.',
+'mar' => 'mar.',
+'apr' => 'apr.',
 'may' => 'mai',
-'jun' => 'jun',
-'jul' => 'jul',
-'aug' => 'aug',
-'sep' => 'sep',
-'oct' => 'okt',
-'nov' => 'nov',
-'dec' => 'des',
+'jun' => 'jun.',
+'jul' => 'jul.',
+'aug' => 'aug.',
+'sep' => 'sep.',
+'oct' => 'okt.',
+'nov' => 'nov.',
+'dec' => 'des.',
 'january-date' => '$1. januar',
 'february-date' => '$1. februar',
 'march-date' => '$1. mars',
index 15fe0d4..9b8355e 100644 (file)
@@ -3342,8 +3342,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'यो विकिमा समस्या छ',
-'dberr-problems' => 'क्षमा पाउँ!
-यो साइटमा तकनीकी गड़बड़ी आइपरेकोछ।',
+'dberr-problems' => 'क्षमा पाउँ! यो साइटमा तकनीकी गड़बड़ी आइपरेकोछ।',
 'dberr-again' => 'केही समय पर्खिएर पुन: लोड हुन दिनुहोस् ।',
 'dberr-info' => '(डेटाबेस सर्वर $1सित सम्पर्क साध्न सकिंदैन)',
 'dberr-usegoogle' => 'तपाईले अहिले गुगलबाट खोज गर्न प्रयास गर्न सक्नुहुन्छ।',
index 53b26a5..1a21de4 100644 (file)
@@ -42,6 +42,7 @@
  * @author Servien
  * @author Siebrand
  * @author Slomox
+ * @author Southparkfan
  * @author TBloemink
  * @author Tedjuh10
  * @author Tjcool007
@@ -615,7 +616,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Over {{SITENAME}}',
 'aboutpage' => 'Project:Info',
-'copyright' => 'De inhoud is beschikbaar onder de $1.',
+'copyright' => 'De inhoud is beschikbaar onder de $1 tenzij anders aangegeven.',
 'copyrightpage' => '{{ns:project}}:Auteursrechten',
 'currentevents' => 'In het nieuws',
 'currentevents-url' => 'Project:In het nieuws',
@@ -699,6 +700,8 @@ Een lijst met bestaande speciale pagina’s staat op [[Special:SpecialPages|{{in
 # General errors
 'error' => 'Fout',
 'databaseerror' => 'Databasefout',
+'databaseerror-function' => 'Functie: $1',
+'databaseerror-error' => 'Fout: $1',
 'laggedslavemode' => "'''Waarschuwing:''' in deze pagina zijn recente wijzigingen mogelijk nog niet verwerkt.",
 'readonly' => 'Database geblokkeerd',
 'enterlockreason' => 'Geef een reden op voor de blokkade en geef op wanneer die waarschijnlijk wordt opgeheven',
@@ -1136,7 +1139,7 @@ Uw eigen .css- en .js-pagina's beginnen met een kleine letter, bijvoorbeeld {{ns
 Uw tekst is niet opgeslagen!",
 'continue-editing' => 'Naar het bewerkingsvenster gaan',
 'previewconflict' => 'Deze voorvertoning geeft aan hoe de tekst in het bovenste veld eruit ziet als u deze opslaat.',
-'session_fail_preview' => "'''Excuses, uw bewerking is niet opgeslagen omdat de sessiegegevens verloren zijn gegaan.'''
+'session_fail_preview' => "'''Uw bewerking is helaas niet opgeslagen omdat de sessiegegevens verloren zijn gegaan.'''
 Probeer het opnieuw.
 Als het dan nog niet lukt, [[Special:UserLogout|meld uzelf dan af]] en vervolgens weer aan.",
 'session_fail_preview_html' => "'''Uw bewerking is niet verwerkt, omdat de sessiegegevens verloren zijn gegaan.'''
@@ -1796,8 +1799,8 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'action-block' => 'deze gebruiker een bewerkingsblokkade op te leggen',
 'action-protect' => 'het beveiligingsniveau van deze pagina aan te passen',
 'action-rollback' => 'bewerkingen van de laatste gebruiker die een pagina heeft bewerkt snel terugdraaien',
-'action-import' => 'deze pagina van een andere wiki te importeren',
-'action-importupload' => 'deze pagina uit een bestandsupload importeren',
+'action-import' => "pagina's importeren van een andere wiki",
+'action-importupload' => 'deze pagina importeren uit een bestandsupload',
 'action-patrol' => 'bewerkingen van anderen als gecontroleerd te markeren',
 'action-autopatrol' => 'eigen bewerkingen als gecontroleerd te laten markeren',
 'action-unwatchedpages' => "de lijst met pagina's die niet op een volglijst staan te bekijken",
@@ -2353,6 +2356,7 @@ De pagina's zijn ook niet als sjabloon opgenomen.",
 'listusers' => 'Gebruikerslijst',
 'listusers-editsonly' => 'Alleen gebruikers met bewerkingen weergeven',
 'listusers-creationsort' => 'Sorteren op registratiedatum',
+'listusers-desc' => 'Sorteren in aflopende volgorde',
 'usereditcount' => '$1 {{PLURAL:$1|bewerking|bewerkingen}}',
 'usercreated' => '{{GENDER:$3|Geregistreerd}} op $1 om $2',
 'newpages' => "Nieuwe pagina's",
@@ -2642,7 +2646,7 @@ Iemand anders heeft deze pagina al bewerkt of hersteld naar een eerdere versie.
 De meest recente bewerking is gemaakt door [[User:$3|$3]] ([[User talk:$3|overleg]]{{int:pipe-separator}}[[Special:Contributions/$3|bijdragen]]).',
 'editcomment' => "De bewerkingssamenvatting was: \"''\$1''\".",
 'revertpage' => 'Wijzigingen door [[Special:Contributions/$2|$2]] ([[User talk:$2|Overleg]]) hersteld tot de laatste versie door [[User:$1|$1]]',
-'revertpage-nouser' => 'Wijzigingen door een verborgen gebruiker teruggedraaid naar de laatste versie door [[User:$1|$1]]',
+'revertpage-nouser' => 'Wijzigingen door een verborgen gebruiker teruggedraaid naar de laatste versie door {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'De wijzigingen door $1 zijn teruggedraaid.
 De laatste versie van $2 is hersteld.',
 
@@ -4199,6 +4203,7 @@ Samen met dit programma hoort u een [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van
 'dberr-problems' => 'Onze excuses. Deze site ondervindt op het moment technische problemen.',
 'dberr-again' => 'Wacht een aantal minuten en probeer het daarna opnieuw.',
 'dberr-info' => '(Kan geen verbinding maken met de databaseserver: $1)',
+'dberr-info-hidden' => '(Kan geen verbinding maken met de databaseserver)',
 'dberr-usegoogle' => 'Wellicht kunt u in de tussentijd zoeken via Google.',
 'dberr-outofdate' => "Let op: hun indexen van onze pagina's zijn wellicht niet recent.",
 'dberr-cachederror' => 'Deze pagina is een kopie uit de cache en is wellicht niet de meest recente versie.',
@@ -4343,9 +4348,9 @@ Anders kunt u ook het eenvoudige formulier hieronder gebruiken. Uw reactie wordt
 'limitreport-ppvisitednodes' => 'Aantal nodes bekeken tijdens de voorverwerking:',
 'limitreport-ppgeneratednodes' => 'Aantal nodes aangemaakt tijdens de voorverwerking:',
 'limitreport-postexpandincludesize' => 'Inclusiegrootte na uitbreiden',
-'limitreport-postexpandincludesize-value' => '$1 / $2 bytes',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-templateargumentsize' => 'Grootte sjabloonparameters',
-'limitreport-templateargumentsize-value' => '$1 / $2 bytes',
+'limitreport-templateargumentsize-value' => '$1 / $2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth' => 'Hoogste uitbreidingsdiepte',
 'limitreport-expensivefunctioncount' => 'Aantal kostbare parserfuncties',
 
index 50715bb..e9dd325 100644 (file)
@@ -3014,7 +3014,7 @@ Vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] og [//trans
 'tooltip-ca-nstab-category' => 'Vis kategoriside',
 'tooltip-minoredit' => 'Merk dette som småplukk',
 'tooltip-save' => 'Lagra endringane dine',
-'tooltip-preview' => 'Førehandsvis endringane dine, bruk denne funksjonen før du lagrar!',
+'tooltip-preview' => 'Førehandsvis endringane dine. Helst brukar du denne funksjonen før du lagrar.',
 'tooltip-diff' => 'Sjå kva endringar du gjorde i teksten',
 'tooltip-compareselectedversions' => 'Sjå endringane mellom dei valde versjonane av denne sida.',
 'tooltip-watch' => 'Legg sida til i overvakingslista di [alt-w]',
index bdcda3d..48eac61 100644 (file)
@@ -3885,8 +3885,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 
 # Database error messages
 'dberr-header' => 'ଏହି ଉଇକିରେ କିଛି ଅସୁବିଧା ଅଛି ।',
-'dberr-problems' => 'କ୍ଷମାକରିବେ ! 
-ଏହି ସାଇଟରେ ଟିକେ ଯାନ୍ତ୍ରିକ',
+'dberr-problems' => 'କ୍ଷମାକରିବେ !  ଏହି ସାଇଟରେ ଟିକେ ଯାନ୍ତ୍ରିକ',
 'dberr-again' => 'କିଛି ମିନିଟ ଅପେକ୍ଷା କରିବା ସହ ଆଉ ଥରେ ଲୋଡ କରନ୍ତୁ ।',
 'dberr-info' => '(ଡାଟାବେସ ସର୍ଭର ସହ ଯୋଗାଯୋଗ କରିପାରିଲୁ ନାହିଁ: $1)',
 'dberr-usegoogle' => 'ଏହି ସମୟ ଭିତରେ ଆପଣ ଗୁଗଲରେ ଖୋଜି ପାରିବେ ।',
index 1abdd86..270fa0d 100644 (file)
@@ -197,8 +197,8 @@ $messages = array(
 'tog-extendwatchlist' => 'ਸਿਰਫ਼ ਤਾਜ਼ਾ ਹੀ ਨਹੀਂ, ਸਗੋਂ ਸਾਰੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਵਖਾਉਣ ਲਈ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਨੂੰ ਵਧਾਓ',
 'tog-usenewrc' => 'ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਅਤੇ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚ ਸਫ਼ੇ ਮੁਤਾਬਕ ਤਬਦੀਲੀਆਂ ਦੇ ਗਰੁੱਕ ਬਣਾਓ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
 'tog-numberheadings' => 'ਆਟੋ-ਨੰਬਰ ਸਿਰਨਾਵੇਂ',
-'tog-showtoolbar' => 'ਸੋਧ ਸੰਦਬਕਸਾ ਵੇਖੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
-'tog-editondblclick' => "ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰਨ 'ਤੇ ਸਫ਼ੇ ਸੋਧੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)",
+'tog-showtoolbar' => 'ਸੋਧ ਸੰਦਬਕਸਾ ਵੇਖੋ',
+'tog-editondblclick' => "ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰਨ 'ਤੇ ਸਫ਼ੇ ਸੋਧੋ",
 'tog-editsection' => '[ਸੋਧੋ] ਲਿੰਕਾਂ ਰਾਹੀਂ ਭਾਗ ਸੋਧਣਾ ਚਾਲੂ ਕਰੋ',
 'tog-editsectiononrightclick' => 'ਸੈਕਸ਼ਨ ਸਿਰਲੇਖਾਂ ’ਤੇ ਸੱਜੀ ਕਲਿੱਕ ਨਾਲ਼ ਸੋਧ ਚਾਲੂ ਕਰੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
 'tog-showtoc' => 'ਤਤਕਰਾ ਵਿਖਾਓ (੩ ਤੋਂ ਵੱਧ ਸਿਰਲੇਖਾਂ ਵਾਲੇ ਸਫ਼ਿਆਂ ਲਈ)',
@@ -218,7 +218,7 @@ $messages = array(
 'tog-shownumberswatching' => 'ਨਜ਼ਰ ਰੱਖ ਰਹੇ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਗਿਣਤੀ ਵਖਾਓ',
 'tog-oldsig' => 'ਮੌਜੂਦਾ ਦਸਤਖ਼ਤ:',
 'tog-fancysig' => 'ਦਸਤਖ਼ਤ ਨੂੰ ਬਤੌਰ ਵਿਕੀਲਿਖਤ ਮੰਨੋ (ਬਿਨਾਂ ਆਟੋਮੈਟਿਕ ਲਿੰਕ)',
-'tog-uselivepreview' => 'ਸਿੱਧà©\80 à¨\9dਲà¨\95 à¨µà¨°à¨¤à©\8b (à¨\9cਾਵਾਸà¨\95ਰਿਪà¨\9f à¨²à©\8bà©\9cà©\80à¨\82ਦà©\80 à¨¹à©\88) (ਤà¨\9cਰਬà©\87-à¨\85ਧà©\80ਨ)',
+'tog-uselivepreview' => 'ਸਿੱਧੀ ਝਲਕ ਵਰਤੋ (ਤਜਰਬੇ-ਅਧੀਨ)',
 'tog-forceeditsummary' => 'ਜਦੋਂ ਮੈਂ ਖ਼ਾਲੀ ਸੋਧ ਸਾਰ ਦੇਵਾਂ ਤਾਂ ਮੈਨੂੰ ਆਗਾਹ ਕਰੋ',
 'tog-watchlisthideown' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚੋਂ ਮੇਰੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ',
 'tog-watchlisthidebots' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚੋਂ ਬੋਟਾਂ ਦੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ',
@@ -331,7 +331,7 @@ $messages = array(
 'newwindow' => '(ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੁੱਲ੍ਹਦੀ ਹੈ)',
 'cancel' => 'ਰੱਦ ਕਰੋ',
 'moredotdotdot' => 'ਹੋਰ...',
-'morenotlisted' => '....ਹੋਰ ਸੂਚੀਬੱਧ ਨਹੀਂ',
+'morenotlisted' => 'ਇਹ ਸੂਚੀ ਪੂਰੀ ਨਹੀਂ ਹੈ।',
 'mypage' => 'ਸਫ਼ਾ',
 'mytalk' => 'ਗੱਲ-ਬਾਤ',
 'anontalk' => 'ਇਸ IP ਲਈ ਗੱਲ-ਬਾਤ',
@@ -1235,9 +1235,9 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'badsiglength' => 'ਦਸਤਖ਼ਤ ਬਹੁਤ ਲੰਬਾ ਹੋ ਗਿਆ ਹੈ। ਇਹ {{PLURAL:$1|ਅੱਖਰ|ਅੱਖਰਾਂ}} ਤੋਂ ਲੰਬਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ।',
 'yourgender' => 'ਲਿੰਗ:',
-'gender-unknown' => 'à¨\9c਼ਾਹਰ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ',
-'gender-male' => 'ਮਰਦ',
-'gender-female' => 'à¨\94ਰਤ',
+'gender-unknown' => 'ਮà©\88à¨\82 à¨¦à©±à¨¸à¨£à¨¾ à¨¨à¨¹à©\80à¨\82 à¨\9aਾਹà©\81ੰਦਾ/à¨\9aਾਹà©\81ੰਦà©\80',
+'gender-male' => 'à¨\89ਹ à¨µà¨¿à¨\95à©\80 à¨¸à¨«à¨¼à©\87 à¨¸à©\8bਧਦਾ à¨¹à©\88',
+'gender-female' => 'à¨\89ਹ à¨µà¨¿à¨\95à©\80 à¨¸à¨«à¨¼à©\87 à¨¸à©\8bਧਦà©\80 à¨¹à©\88',
 'email' => 'ਈਮੇਲ',
 'prefs-help-realname' => 'ਅਸਲੀ ਨਾਂ ਚੋਣਵਾਂ ਹੈ, ਅਤੇ ਜੇ ਤੁਸੀਂ ਇਹ ਦਿੱਤਾ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਕੰਮ ਵਾਸਤੇ ਗੁਣ ਦੇ ਤੌਰ ਉੱਤੇ ਵਰਤਿਆ ਜਾਵੇਗਾ।',
 'prefs-help-email' => 'ਤੁਹਾਡੀ ਮਰਜੀ ਹੈ ਈਮੇਲ ਪਤਾ ਦਿਓ ਜਾਂ ਨਾ ਦਿਓ ਪਰ ਪਾਸਵਰਡ ਭੁੱਲ ਜਾਣ ਤੇ ਨਵਾਂ ਪਾਸਵਰਡ ਹਾਸਲ ਕਰਨ ਲਈ ਇਹ ਜਰੂਰੀ ਹੈ।',
@@ -1249,7 +1249,7 @@ HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'prefs-signature' => 'ਦਸਤਖ਼ਤ',
 'prefs-dateformat' => 'ਮਿਤੀ ਦਾ ਅੰਦਾਜ਼',
 'prefs-timeoffset' => 'ਸਮੇਂ ਦਾ ਆਫ਼ਸੈੱਟ',
-'prefs-advancedediting' => 'ਆਮ',
+'prefs-advancedediting' => 'ਆਮ ਚੋਣਾਂ',
 'prefs-editor' => 'ਸੰਪਾਦਕ',
 'prefs-preview' => 'ਝਲਕ',
 'prefs-advancedrc' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
@@ -1278,7 +1278,7 @@ HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'userrights-reason' => 'ਕਾਰਨ:',
 'userrights-no-interwiki' => 'ਤੁਹਾਨੂੰ ਦੂਜੇ ਵਿਕੀਆਂ ਤੇ ਮੈਂਬਰਾਂ ਦੇ ਹੱਕਾਂ ਵਿਚ ਤਬਦੀਲੀ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'userrights-nodatabase' => 'ਡੈਟਾਬੇਸ $1 ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਮਕਾਮੀ ਨਹੀਂ ਹੈ।',
-'userrights-notallowed' => 'ਤà©\81ਹਾਡà©\87 à¨\96ਾਤà©\87 à¨¨à©\82à©° à¨®à©\88à¨\82ਬਰ à¨¨à©\82à©° à¨¹à©±à¨\95 à¨¦à©\87ਣ à¨\9cਾà¨\82 à¨\96à©\8bਹਣ à¨¦à©\80 à¨\87à¨\9cਾà¨\9c਼ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88।',
+'userrights-notallowed' => 'ਤà©\81ਹਾਨà©\82à©° à¨¨à©\82à©° à¨¯à©\82à¨\9c਼ਰ à¨¹à©±à¨\95 à¨¦à©\87ਣ à¨\9cਾà¨\82 à¨\96à©\8bਹਣ à¨¦à©\80 à¨\87à¨\9cਾà¨\9c਼ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88।',
 'userrights-changeable-col' => 'ਉਹ ਸਮੂਹ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਸਕਦੇ ਹੋ',
 'userrights-unchangeable-col' => 'ਉਹ ਸਮੂਹ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਨਹੀਂ ਸਕਦੇ',
 
@@ -1322,7 +1322,7 @@ HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'right-block' => 'ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਦੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
 'right-blockemail' => 'ਵਰਤੋਂਕਾਰ ਦੇ ਈ-ਮੇਲ ਭੇਜਣ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
 'right-hideuser' => 'ਵਰਤੋਂਕਾਰ ਦੇ ਨਾਂ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਅਤੇ ਇਸਨੂੰ ਲੋਕਾਂ ਤੋਂ ਲੁਕਾਉਣਾ',
-'right-unblockself' => 'à¨\86ਪਣà©\87-à¨\86ਪ à¨°à©\8bà¨\95 à¨¹à¨\9fਾà¨\89ਣ',
+'right-unblockself' => 'à¨\95ਿਸà©\87 à¨¤à©\8bà¨\82 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨¹à¨\9fਾà¨\93',
 'right-editinterface' => 'ਵਰਤੋਂਕਾਰ ਇੰਟਰਫ਼ੇਸ ਸੋਧੋ',
 'right-editusercss' => 'ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ CSS ਫ਼ਾਈਲਾਂ ਸੋਧਣ',
 'right-edituserjs' => 'ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ ਜਾਵਾਸਕਰਿਪਟ ਫ਼ਾਈਲਾਂ ਸੋਧਣ',
@@ -1371,7 +1371,7 @@ HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'action-suppressionlog' => 'ਇਹ ਨਿੱਜੀ ਇੰਦਰਾਜ ਵੇਖੋ',
 'action-block' => 'ਇਸ ਮੈਂਬਰ ਦੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਲਾਓ',
 'action-protect' => 'ਇਸ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
-'action-import' => 'ਹà©\8bਰ à¨µà¨¿à¨\95à©\80 à¨¤à©\8bà¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à©°à¨\97ਾà¨\93',
+'action-import' => 'ਹà©\8bਰ à¨µà¨¿à¨\95à©\80 à¨¤à©\8bà¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨²à¨µà©\8b',
 'action-importupload' => 'ਫ਼ਾਈਲ ਅੱਪਲੋਡ ਤੋਂ ਇਹ ਸਫ਼ਾ ਮੰਗਾਓ',
 'action-unwatchedpages' => 'ਨਜ਼ਰ ਨਾ ਰੱਖੇ ਜਾ ਰਹੇ ਸਫ਼ਿਆਂ ਦੀ ਸੂਚੀ ਵੇਖੋ',
 'action-mergehistory' => 'ਇਸ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਰਲ਼ਾਉਣ',
@@ -1414,7 +1414,7 @@ HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'number_of_watching_users_pageview' => '[$1 ਵੇਖ ਰਹੇ ਹਨ {{PLURAL:$1|ਯੂਜ਼ਰ}}]',
 'rc_categories_any' => 'ਕੋਈ ਵੀ',
 'newsectionsummary' => '/* $1 */ ਨਵਾਂ ਭਾਗ',
-'rc-enhanced-expand' => 'ਵà©\87ਰਵਾ à¨µà©\87à¨\96ਾà¨\93 (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨²à©\8bà©\9cà©\80à¨\82ਦà©\80 à¨¹à©\88)',
+'rc-enhanced-expand' => 'ਵà©\87ਰਵà©\87 à¨µà©\87à¨\96ਾà¨\93',
 'rc-enhanced-hide' => 'ਵੇਰਵਾ ਲੁਕਾਓ',
 'rc-old-title' => 'ਅਸਲ ਵਿੱਚ "$1" ਵਜੋਂ ਬਣਾਇਆ',
 
@@ -2260,8 +2260,8 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'pageinfo-article-id' => 'ਸਫ਼ੇ ਦੀ ਸ਼ਨਾਖ਼ਤ',
 'pageinfo-language' => 'ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਦੀ ਭਾਸ਼ਾ',
 'pageinfo-robot-policy' => 'ਇੰਜਨ ਦੀ ਹਾਲਤ ਖੋਜੋ',
-'pageinfo-robot-index' => 'ਤਤà¨\95ਰਾਯà©\8bà¨\97',
-'pageinfo-robot-noindex' => 'à¨\97਼à©\88ਰ-ਤਤà¨\95ਰਾਯà©\8bà¨\97',
+'pageinfo-robot-index' => 'ਮਨà¨\9c਼à©\82ਰ à¨¹à©\88',
+'pageinfo-robot-noindex' => 'ਨਾ-ਮਨà¨\9c਼à©\82ਰ',
 'pageinfo-views' => 'ਵਖਾਵਿਆਂ ਦੀ ਗਿਣਤੀ',
 'pageinfo-watchers' => 'ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਵਾਲਿਆਂ ਦੀ ਗਿਣਤੀ',
 'pageinfo-subpages-name' => 'ਇਸ ਸਫ਼ੇ ਦੇ ਉਪ-ਸਫ਼ੇ',
@@ -2719,8 +2719,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 
 # Database error messages
 'dberr-header' => 'ਇਸ ਵਿਕੀ ਵਿਚ ਔਕੜ ਹੈ',
-'dberr-problems' => "ਅਫ਼ਸੋਸ!
-ਇਸ ਸਾਈਟ 'ਤੇ ਕੁਝ ਤਕਨੀਕੀ ਔਕੜਾਂ ਆ ਰਹੀਆਂ ਹਨ।",
+'dberr-problems' => "ਅਫ਼ਸੋਸ! ਇਸ ਸਾਈਟ 'ਤੇ ਕੁਝ ਤਕਨੀਕੀ ਔਕੜਾਂ ਆ ਰਹੀਆਂ ਹਨ।",
 'dberr-again' => 'ਕੁਝ ਮਿੰਟਾਂ ਲਈ ਉਡੀਕ ਕਰਨ ਅਤੇ ਮੁੜ ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ',
 'dberr-usegoogle' => 'ਉਨੀ ਦੇਰ ਤੱਕ ਤੁਸੀਂ ਗੂਗਲ ਰਾਹੀਂ ਲੱਭਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ।',
 
index 8e18693..5def103 100644 (file)
@@ -557,7 +557,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'O {{GRAMMAR:MS.lp|{{SITENAME}}}}',
 'aboutpage' => 'Project:O {{GRAMMAR:MS.lp|{{SITENAME}}}}',
-'copyright' => 'Treść udostępniana na licencji $1.',
+'copyright' => 'Treść udostępniana na licencji $1, jeśli nie podano inaczej.',
 'copyrightpage' => '{{ns:project}}:Prawa_autorskie',
 'currentevents' => 'Bieżące wydarzenia',
 'currentevents-url' => 'Project:Aktualności',
@@ -1716,8 +1716,8 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'action-block' => 'zablokowania temu użytkownikowi możliwości edycji',
 'action-protect' => 'zmiany poziomu zabezpieczenia tej strony',
 'action-rollback' => 'szybkiego wycofania zmian wprowadzonych przez użytkownika, który jako ostatni edytował tę stronę',
-'action-import' => 'importu tej strony z innej wiki',
-'action-importupload' => 'importu tej strony poprzez przesłanie pliku',
+'action-import' => 'importu stron z innej wiki',
+'action-importupload' => 'importu stron poprzez przesłanie pliku',
 'action-patrol' => 'oznaczenia cudzej edycji jako „sprawdzonej”',
 'action-autopatrol' => 'oznaczenia własnej edycji jako „sprawdzonej”',
 'action-unwatchedpages' => 'podglądu listy nieobserwowanych stron',
@@ -1814,7 +1814,7 @@ Przejdź na stronę [[Special:NewFiles|galerii nowych plików]], by zobaczyć pl
 'filestatus' => 'Status prawny',
 'filesource' => 'Źródło',
 'uploadedfiles' => 'Przesłane pliki',
-'ignorewarning' => 'Zignoruj ostrzeżenia i wymuś zapisanie pliku.',
+'ignorewarning' => 'Zignoruj ostrzeżenia i wymuś zapisanie pliku',
 'ignorewarnings' => 'Ignoruj wszystkie ostrzeżenia',
 'minlength1' => 'Nazwa pliku musi składać się co najmniej z jednej litery.',
 'illegalfilename' => 'Nazwa pliku „$1” zawiera znaki niedozwolone w tytułach stron.
@@ -2260,6 +2260,7 @@ Każdy wiersz zawiera linki do pierwszego i drugiego przekierowania oraz link, d
 'listusers' => 'Lista użytkowników',
 'listusers-editsonly' => 'Pokaż tylko użytkowników z edycjami',
 'listusers-creationsort' => 'Sortuj według daty utworzenia',
+'listusers-desc' => 'Sortuj w kolejności malejącej',
 'usereditcount' => '$1 {{PLURAL:$1|edycja|edycje|edycji}}',
 'usercreated' => '{{GENDER:$3|Utworzył|Utworzyła|Utworzone}} $1 o $2',
 'newpages' => 'Nowe strony',
@@ -2541,7 +2542,7 @@ Ktoś inny zdążył już to zrobić lub wprowadził własne poprawki do treści
 Autorem ostatniej zmiany jest teraz [[User:$3|$3]] ([[User talk:$3|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Edycję opisał „''$1''”.",
 'revertpage' => 'Wycofano edycje użytkownika [[Special:Contributions/$2|$2]] ([[User talk:$2|dyskusja]]). Autor przywróconej wersji to [[User:$1|$1]].',
-'revertpage-nouser' => 'Wycofano edycje ukrytego użytkownika. Autor przywróconej wersji to [[User:$1|$1]].',
+'revertpage-nouser' => 'Wycofano edycje ukrytego użytkownika. Autor przywróconej wersji to {{GENDER:$1|[[User:$1|$1]]}}.',
 'rollback-success' => 'Wycofano edycje użytkownika $1;
 przywrócono ostatnią wersję autorstwa $2.',
 
@@ -4266,9 +4267,9 @@ W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zosta
 'limitreport-ppvisitednodes' => 'Liczba odwiedzonych węzłów preprocesora',
 'limitreport-ppgeneratednodes' => 'Liczba wygenerowanych węzłów preprocesora',
 'limitreport-postexpandincludesize' => 'Rozmiar dołączonych elementów po ekspansji',
-'limitreport-postexpandincludesize-value' => '$1/$2 bajtów',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|bajt|bajty|bajtów}}',
 'limitreport-templateargumentsize' => 'Rozmiar argumentów szablonów',
-'limitreport-templateargumentsize-value' => '$1/$2 bajtów',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|bajt|bajty|bajtów}}',
 'limitreport-expansiondepth' => 'Największa głębokość ekspansji',
 'limitreport-expensivefunctioncount' => 'Liczba wywołań kosztownych funkcji parsera',
 
index e39ecb9..8e0032a 100644 (file)
@@ -677,22 +677,22 @@ A dovrìa felo si për asar chiel a l'ha partagiaje con cheidun o si sò cont a
 'subject' => 'Sogèt/antestassion:',
 'minoredit' => "Costa a l'é na modìfica cita",
 'watchthis' => 'Ten-e sot euj costa pàgina-sì',
-'savearticle' => 'Salva sta pàgina',
-'preview' => 'Preuva',
-'showpreview' => 'Mostra na preuva',
+'savearticle' => 'Salvé la pàgina',
+'preview' => 'Previsualisassion',
+'showpreview' => 'Mostré na preuva',
 'showlivepreview' => "Funsion ''Preuva dal viv''",
 'showdiff' => 'Smon-me le modìfiche',
-'anoneditwarning' => "A l'é ancó nen rintrà ant ël sistema. Soa adrëssa IP a sarà registrà ant la stòria dle modìfiche dë sta pàgina-sì.",
-'anonpreviewwarning' => "''It ses pa intrà. An salvand a sarà memorisà toa adrëssa IP ant la stòria dle modìfiche dë sta pàgina-sì.''",
-'missingsummary' => "'''Nòta:''' a l'ha pa butà gnun somari dla modìfica. Se a sgnaca Salva n'àutra vira, soa modìfica a resterà salvà sensa pa ëd somari.",
-'missingcommenttext' => 'Për piasì che a buta un coment ambelessì sota.',
-'missingcommentheader' => "'''Ch'a arcòrda:''' A l'ha pa dàit soget o intestassion për sto coment-sì.
-Se a sgnaca torna \"{{int:savearticle}}\", soa modìfica a sarà salvà sensa gnun-a intestassion.",
-'summary-preview' => "Preuva dl'oget:",
-'subject-preview' => "Preuva d'oget/intestassion:",
-'blockedtitle' => "Belavans cost ëstranòm-sì a resta col ëd n'utent che a l'é stàit disabilità a fé 'd modìfiche a j'artìcoj.",
+'anoneditwarning' => "'''Atension:''' A l'é nen rintrà ant ël sistema. Soa adrëssa IP a sarà registrà ant la stòria dle modìfiche ëd sa pàgina.",
+'anonpreviewwarning' => "''A l'é nen rintrà ant ël sistema. An salvand a sarà memorisà soa adrëssa IP ant la stòria dle modìfiche ëd sa pàgina.''",
+'missingsummary' => "'''Nòta:''' a l'ha butà gnun resumé dla modìfica. Se a sgnaca «{{int:savearticle}}» n'àutra vira, soa modìfica a resterà salvà sensa resumé.",
+'missingcommenttext' => 'Për piasì, che a buta un coment sì-sota.',
+'missingcommentheader' => "'''Ch'a arcòrda:''' A l'ha pa dàit ëd soget o d'intestassion për cost coment.
+Se a sgnaca torna «{{int:savearticle}}», soa modìfica a sarà salvà sensa gnun-a intestassion.",
+'summary-preview' => 'Preuva dël resumé:',
+'subject-preview' => "Preuva dl'oget/intestassion:",
+'blockedtitle' => "L'utent a l'é blocà.",
 'blockedtext' => "'''Sò stranòm ò pura adrëssa IP a l'é stàit blocà.'''
-
+\"
 Ël blocagi a l'é stàit fàit da \$1.
 Coma rason a l'ha butà ''\$2''.
 
@@ -701,7 +701,7 @@ Coma rason a l'ha butà ''\$2''.
 * As veul blochesse: \$7
 
 A peul butesse an contat con \$1 ò pura n'àotr [[{{MediaWiki:Grouppage-sysop}}|aministrator]] për discute ëd sò blocagi.
-Ch'a ten-a present ch'a podrà dovré la fonsion \"mandeje un messagi ëd pòsta a l'utent\" mach s'a l'ha specificà n'adrëssa ëd pòsta vàlida ant [[Special:Preferences|sò gust]] e se sta fonsion a l'é nen ëstàita blocà 'cò chila.
+Ch'a ten-a present ch'a podrà dovré la fonsion «mandeje un messagi ëd pòsta eletrònica a l'utent» mach s'a l'ha specificà n'adrëssa ëd vàlida ant [[Special:Preferences|sò gust]] e se sta fonsion a l'é nen ëstàita blocà 'cò chila.
 Soa adrëssa IP corenta a l'é \$3, e l'identificativ dël blocagi a l'é #\$5.
 Për piasì, ch'a-j buta tut e doj ant soe comunicassion ant sta question-sì.",
 'autoblockedtext' => "Soa adrëssa IP a l'è stàita blocà n'automàtich ën essend ch'a l'era dovrà da n'àutr utent, che a l'é stàit blocà da \$1.
@@ -3697,8 +3697,7 @@ A dovrìa avèj arseivù [{{SERVER}}{{SCRIPTPATH}}/COPYING na còpia dla Licensa
 
 # Database error messages
 'dberr-header' => "Sta wiki-sì a l'ha un problema",
-'dberr-problems' => "An dëspias!
-Ës sit a l'ha dle dificoltà técniche.",
+'dberr-problems' => "An dëspias! Ës sit a l'ha dle dificoltà técniche.",
 'dberr-again' => "Ch'a speta chèiche minute e ch'a preuva torna a carié.",
 'dberr-info' => '(Conession al servent ëd base ëd dàit impossìbil: $1)',
 'dberr-usegoogle' => 'Antratant a peul prové a sërché con Google.',
index 533ce7e..fceb4c7 100644 (file)
@@ -3429,8 +3429,7 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
 # Database error messages
 'dberr-header' => 'ایس وکی چ کوئی مسلہ اے۔',
-'dberr-problems' => 'معاف کرنا !
-ایس صفے تے تکنیکی مسلے آرۓ نیں۔',
+'dberr-problems' => 'معاف کرنا ! ایس صفے تے تکنیکی مسلے آرۓ نیں۔',
 'dberr-again' => 'تھو ڑے منٹ انتظار کرو تے دوبارہ لوڈ کرو۔',
 'dberr-info' => '(ڈیٹابیس سرور نال میل نئیں ہوسکیا:$1)',
 'dberr-usegoogle' => 'تسیں گوکل راہیں کھوج کر سکدے او۔',
index f324740..583f297 100644 (file)
@@ -160,24 +160,24 @@ $magicWords = array(
 $messages = array(
 # User preference toggles
 'tog-underline' => 'کرښنې تړنې:',
-'tog-justify' => 'پاراګرافونه همجوليزول',
+'tog-justify' => 'پاراگرافونه همجوليزول',
 'tog-hideminor' => 'په وروستيو بدلونو کې واړه سمونونه پټول',
 'tog-hidepatrolled' => 'په وروستيو بدلونونو کې څارل شوې سمونونه پټول',
 'tog-newpageshidepatrolled' => 'د نوؤ مخونو په لړليک کې کتل شوي مخونه پټول',
 'tog-extendwatchlist' => 'يوازې د وروستني بدلونونو د ښکاره کولو لپاره نه بلکه د ټولو بدلونونو د ښکاره کولو لپاره کتنلړ غځول',
 'tog-usenewrc' => 'په کتنلړ او وروستي بدلونو مخ باندې ډله ايز بدلونونه (جاوا سکرېپټ ته اړتيا ده)',
 'tog-numberheadings' => 'د سرليکونو خپلکاره شمېرايښودنه',
-'tog-showtoolbar' => 'د Ø³Ù\85Ù\88Ù\84Ù\88 ØªÙ\88کپټÙ\87 Ú\9aکارÙ\87 Ú©Ù\88Ù\84 (جاÙ\88اسکرÛ\90پټ)',
-'tog-editondblclick' => 'په دوه کلېک سره د مخونو سمون (د جاواسکرېپټ اړتيا ده)',
-'tog-editsection' => 'د [سÙ\85Ù\88Ù\84] ØªÚ\93Ù\86Û\90 Ù\84Ù\87 Ù\84Ù\88رÙ\8a Ø¯ Ù\8aÙ\88Û\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\8aÙ\88Ù\87 Ø¨Ø±Ø®Ù\87 Ø¯ Ø³Ù\85Ù\88Ù\86 Ù\88Ú\93 Ú«رځول',
-'tog-editsectiononrightclick' => 'د ښي کلېک سره د سرليکونو د برخې سمون چارنول (جاواسکرېپټ ته اړتيا)',
+'tog-showtoolbar' => 'د Ø³Ù\85Ù\88Ù\86 Ø§Ù\88زارپټÙ\87 Ú\9aکارÙ\87 Ú©Ù\88Ù\84',
+'tog-editondblclick' => 'په دوه کلېک سره د مخونو سمون',
+'tog-editsection' => 'د [سÙ\85Ù\88Ù\84] ØªÚ\93Ù\86Û\90 Ù\84Ù\87 Ù\84Ù\88رÙ\8a Ø¯ Ù\8aÙ\88Û\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\8aÙ\88Ù\87 Ø¨Ø±Ø®Ù\87 Ø¯ Ø³Ù\85Ù\88Ù\86 Ù\88Ú\93 Ú¯رځول',
+'tog-editsectiononrightclick' => 'د ليکنې د يوې برخې په سرليک ښي کلېک کول د هغې برخې سمون چارنوي',
 'tog-showtoc' => 'نيوليک ښکاره کول (د هغو مخونو لپاره چې له ۳ نه ډېر سرليکونه لري)',
 'tog-rememberpassword' => 'زما کارن-نوم په دې کتنمل (تر $1 {{PLURAL:$1|ورځې|ورځو}}) په ياد وساته!',
-'tog-watchcreations' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ú\86Û\90 Ø²Ù\87 Ù\8aÛ\90 Ø¬Ù\88Ú\93Ù\88Ù\85 Ø§Ù\88 Ù\87غÙ\87 Ø¯Ù\88تÙ\86Û\90 Ú\86Û\90 Ø²Ù\87 Ù\8aÛ\90 Ù¾Ù\88رتÙ\87 Ú©Ù\88Ù\85 Ù\88رګډې شي',
-'tog-watchdefault' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ø§Ù\88 Ø¯Ù\88تÙ\86Û\90 Ù\88رګډې شي چې زه يې سموم',
-'tog-watchmoves' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ø§Ù\88 Ø¯Ù\88تÙ\86Û\90 Ù\88رګډې شي چې زه يې لېږدوم',
-'tog-watchdeletion' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ø§Ù\88 Ø¯Ù\88تÙ\86Û\90 Ù\88رګÚ\89Û\90 Ø´Ù\8a Ú\86Û\90 Ø²Ù\87 Ù\8aÛ\90 Ú\93Ù\86Ú«وم',
-'tog-minordefault' => 'Ù¾Ù\87 ØªÙ\84Ù\88اÙ\84Ù\8aزÙ\87 ØªÙ\88Ú«ه ټول سمونونه واړه په نخښه کول',
+'tog-watchcreations' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ú\86Û\90 Ø²Ù\87 Ù\8aÛ\90 Ø¬Ù\88Ú\93Ù\88Ù\85 Ø§Ù\88 Ù\87غÙ\87 Ø¯Ù\88تÙ\86Û\90 Ú\86Û\90 Ø²Ù\87 Ù\8aÛ\90 Ù¾Ù\88رتÙ\87 Ú©Ù\88Ù\85 Ù\88رگډې شي',
+'tog-watchdefault' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ø§Ù\88 Ø¯Ù\88تÙ\86Û\90 Ù\88رگډې شي چې زه يې سموم',
+'tog-watchmoves' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ø§Ù\88 Ø¯Ù\88تÙ\86Û\90 Ù\88رگډې شي چې زه يې لېږدوم',
+'tog-watchdeletion' => 'زÙ\85ا Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ø¯Û\90 Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ø§Ù\88 Ø¯Ù\88تÙ\86Û\90 Ù\88رگÚ\89Û\90 Ø´Ù\8a Ú\86Û\90 Ø²Ù\87 Ù\8aÛ\90 Ú\93Ù\86Ú¯وم',
+'tog-minordefault' => 'Ù¾Ù\87 ØªÙ\84Ù\88اÙ\84Ù\8aزÙ\87 ØªÙ\88Ú¯ه ټول سمونونه واړه په نخښه کول',
 'tog-previewontop' => 'د سمون بکس نه دمخه مخکتنه ښکاره کول',
 'tog-previewonfirst' => 'په لومړي سمون کې مخکتنه ښکاره کول',
 'tog-nocache' => 'د کتنمل د مخ ياده ساتنې چار ناچارندول',
@@ -187,8 +187,8 @@ $messages = array(
 'tog-enotifrevealaddr' => 'په يادښت برېښليک کې زما برېښليک پته ښکاره کول',
 'tog-shownumberswatching' => 'د کتونکو کارنانو شمېر ښکاره کول',
 'tog-oldsig' => 'اوسنی لاسليک:',
-'tog-fancysig' => 'Ù\84اسÙ\84Ù\8aÚ© Ø¯ Ù\88Ù\8aÚ©Ù\8a Ù\85تÙ\86 Ù¾Ù\87 ØªÙ\88Ú«ه په پام کې نيول (د خپلکاره تړن د تړلو پرته)',
-'tog-uselivepreview' => 'Ú\98Ù\88Ù\86دÛ\8d Ù\85Ø®Ù\84Ù\8aدÙ\86Ù\87 Ú©Ø§Ø±Ù\88Ù\84 (جاÙ\88ا Ø³Ú©Ø±Û\90پټ ØªÙ\87 Ø§Ú\93تÙ\8aا) (آزÙ\85Û\90Ú\9aتÙ\8a)',
+'tog-fancysig' => 'Ù\84اسÙ\84Ù\8aÚ© Ø¯ Ù\88Ù\8aÚ©Ù\8a Ù\85تÙ\86 Ù¾Ù\87 ØªÙ\88Ú¯ه په پام کې نيول (د خپلکاره تړن د تړلو پرته)',
+'tog-uselivepreview' => 'ژوندۍ مخليدنه کارول (آزمېښتي)',
 'tog-forceeditsummary' => 'د يوه تش سمون لنډيز په ورکولو سره دې خبر راکړل شي',
 'tog-watchlisthideown' => 'په کتنلړ کې زما سمونې پټول',
 'tog-watchlisthidebots' => 'په کتنلړ کې د روباټ سمونې پټول',
@@ -197,7 +197,7 @@ $messages = array(
 'tog-watchlisthideanons' => 'په کتنلړ کې د ورکنومو کارنانو سمونې پټول',
 'tog-watchlisthidepatrolled' => 'په کتنلړ کې څارل شوې سمونې پټول',
 'tog-ccmeonemails' => 'هغه برېښليکونه چې زه يې نورو ته لېږم، د هغو يوه کاپي دې ماته هم راشي',
-'tog-diffonly' => 'د ØªÙ\88Ù¾Ù\8aرÙ\88Ù\86Ù\88 Ù\86Ù\87 Ù\84اÙ\86دÛ\90 Ø¯ Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه پټول',
+'tog-diffonly' => 'د ØªÙ\88Ù¾Ù\8aرÙ\88Ù\86Ù\88 Ù\86Ù\87 Ù\84اÙ\86دÛ\90 Ø¯ Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه پټول',
 'tog-showhiddencats' => 'پټې وېشنيزې ښکاره کول',
 'tog-norollbackdiff' => 'پرشاتمبولو وروسته توپيرونه نه ښودل',
 'tog-useeditwarning' => 'کله چې يو سمون مخ څخه د بدلونونو د خوندي کولو پرته وځم خبر دې شم',
@@ -217,17 +217,17 @@ $messages = array(
 'sunday' => 'يونۍ',
 'monday' => 'دونۍ',
 'tuesday' => 'درې نۍ',
-'wednesday' => 'شورو',
-'thursday' => 'زيارت',
+'wednesday' => 'څلرنۍ',
+'thursday' => 'پينځنۍ',
 'friday' => 'جمعه',
-'saturday' => 'خاÙ\84Ù\8a',
-'sun' => 'اتوار',
-'mon' => 'ګل',
-'tue' => 'نهي',
-'wed' => 'شورو',
-'thu' => 'زيارت',
+'saturday' => 'اÙ\88Ù\86Û\8d',
+'sun' => 'يونۍ',
+'mon' => 'دونۍ',
+'tue' => 'درې نۍ',
+'wed' => 'څلرنۍ',
+'thu' => 'پينځه نۍ',
 'fri' => 'جمعه',
-'sat' => 'خاÙ\84Ù\8a',
+'sat' => 'اÙ\88Ù\86Û\8d',
 'january' => 'جنوري',
 'february' => 'فبروري',
 'march' => 'مارچ',
@@ -235,7 +235,7 @@ $messages = array(
 'may_long' => 'می',
 'june' => 'جون',
 'july' => 'جولای',
-'august' => 'اګسټ',
+'august' => 'اگسټ',
 'september' => 'سېپتمبر',
 'october' => 'اکتوبر',
 'november' => 'نومبر',
@@ -247,7 +247,7 @@ $messages = array(
 'may-gen' => 'می',
 'june-gen' => 'جون',
 'july-gen' => 'جولای',
-'august-gen' => 'اګسټ',
+'august-gen' => 'اگسټ',
 'september-gen' => 'سېپتمبر',
 'october-gen' => 'اکتوبر',
 'november-gen' => 'نومبر',
@@ -259,7 +259,7 @@ $messages = array(
 'may' => 'می',
 'jun' => 'جون',
 'jul' => 'جولای',
-'aug' => 'اګسټ',
+'aug' => 'اگسټ',
 'sep' => 'سېپتمبر',
 'oct' => 'اکتوبر',
 'nov' => 'نومبر',
@@ -271,7 +271,7 @@ $messages = array(
 'may-date' => 'مۍ $1',
 'june-date' => 'جون $1',
 'july-date' => 'جولای $1',
-'august-date' => 'اګست $1',
+'august-date' => 'اگست $1',
 'september-date' => 'سېپتمبر $1',
 'october-date' => 'اکتوبر $1',
 'november-date' => 'نومبر $1',
@@ -297,15 +297,15 @@ $messages = array(
 'broken-file-category' => 'د دوتنو د ماتو تړنو مخونه',
 
 'about' => 'په اړه',
-'article' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«يز مخ',
+'article' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯يز مخ',
 'newwindow' => '(په نوې کړکۍ کې پرانيستل کېږي)',
-'cancel' => 'Ù\86اګارل',
+'cancel' => 'Ù\86اگارل',
 'moredotdotdot' => 'نور ...',
-'morenotlisted' => 'ډېر نور نالړليک اوډلي...',
+'morenotlisted' => 'دا لړليک بشپړ نه دی',
 'mypage' => 'زما مخ',
 'mytalk' => 'خبرې اترې',
 'anontalk' => 'ددې IP خبرې اترې',
-'navigation' => 'Ú«رځښت',
+'navigation' => 'Ú¯رځښت',
 'and' => '&#32;او',
 
 # Cologne Blue skin
@@ -314,16 +314,16 @@ $messages = array(
 'qbedit' => 'سمول',
 'qbpageoptions' => 'همدا مخ',
 'qbmyoptions' => 'زما پاڼې',
-'qbspecialpages' => 'Ú\81اÙ\86Ú«ړي مخونه',
+'qbspecialpages' => 'Ú\81اÙ\86Ú¯ړي مخونه',
 'faq' => 'ډ-ځ-پ',
 'faqpage' => 'Project:ډ-ځ-پ',
 
 # Vector skin
-'vector-action-addsection' => 'سرÙ\84Ù\8aÚ©Ù\88Ù\86Ù\87 Ù\88رګډول',
-'vector-action-delete' => 'Ú\93Ù\86Ú«ول',
+'vector-action-addsection' => 'سرÙ\84Ù\8aÚ©Ù\88Ù\86Ù\87 Ù\88رگډول',
+'vector-action-delete' => 'Ú\93Ù\86Ú¯ول',
 'vector-action-move' => 'لېږدول',
 'vector-action-protect' => 'ژغورل',
-'vector-action-undelete' => 'Ù\86اÚ\93Ù\86Ú«ول',
+'vector-action-undelete' => 'Ù\86اÚ\93Ù\86Ú¯ول',
 'vector-action-unprotect' => 'ژغورنه بدلول',
 'vector-simplesearch-preference' => 'د پلټنې ساده پټه چارنول (يوازې په وېکټور پوښۍ کار کوي)',
 'vector-view-create' => 'جوړول',
@@ -335,9 +335,9 @@ $messages = array(
 'namespaces' => 'نوم-تشيالونه',
 'variants' => 'ډولونه',
 
-'navigation-heading' => 'Ú«رځښت غورنۍ',
+'navigation-heading' => 'Ú¯رځښت غورنۍ',
 'errorpagetitle' => 'تېروتنه',
-'returnto' => 'بÛ\90رتÙ\87 $1 ØªÙ\87 Ù\88Ú«رځه.',
+'returnto' => 'بÛ\90رتÙ\87 $1 ØªÙ\87 Ù\88Ú¯رځه.',
 'tagline' => 'د {{SITENAME}} لخوا',
 'help' => 'لارښود',
 'search' => 'پلټنه',
@@ -346,7 +346,7 @@ $messages = array(
 'searcharticle' => 'ورځه',
 'history' => 'د مخ پېښليک',
 'history_short' => 'پېښليک',
-'updatedmarker' => 'زÙ\85ا Ø¯ Ù\88رÙ\88ستÙ\8a Ø±Ø§ØªÚ« نه راپدېخوا اوسمهاله شوی',
+'updatedmarker' => 'زÙ\85ا Ø¯ Ù\88رÙ\88ستÙ\8a Ø±Ø§ØªÚ¯ نه راپدېخوا اوسمهاله شوی',
 'printableversion' => 'چاپي بڼه',
 'permalink' => 'تلپاتې تړنه',
 'print' => 'چاپ',
@@ -355,11 +355,11 @@ $messages = array(
 'create' => 'جوړول',
 'editthispage' => 'همدا مخ سمول',
 'create-this-page' => 'همدا مخ ليکل',
-'delete' => 'Ú\93Ù\86Ú«ول',
-'deletethispage' => 'دا Ù\85Ø® Ú\93Ù\86Ú«ول',
-'undeletethispage' => 'دا Ù\85Ø® Ù\86اÚ\93Ù\86Ú«ول',
-'undelete_short' => '{{PLURAL:$1|Ù\8aÙ\88 Ø³Ù\85Ù\88Ù\86|$1 Ø³Ù\85Ù\88Ù\86Û\90}} Ù\86اÚ\93Ù\86Ú«ول',
-'viewdeleted_short' => '{{PLURAL:$1|Ù\8aÙ\88 Ú\93Ù\86Ú« Ø´Ù\88Û\8c Ø³Ù\85Ù\88Ù\86|$1 Ú\93Ù\86Ú« شوي سمونونه}} کتل',
+'delete' => 'Ú\93Ù\86Ú¯ول',
+'deletethispage' => 'دا Ù\85Ø® Ú\93Ù\86Ú¯ول',
+'undeletethispage' => 'دا Ù\85Ø® Ù\86اÚ\93Ù\86Ú¯ول',
+'undelete_short' => '{{PLURAL:$1|Ù\8aÙ\88 Ø³Ù\85Ù\88Ù\86|$1 Ø³Ù\85Ù\88Ù\86Û\90}} Ù\86اÚ\93Ù\86Ú¯ول',
+'viewdeleted_short' => '{{PLURAL:$1|Ù\8aÙ\88 Ú\93Ù\86Ú¯ Ø´Ù\88Û\8c Ø³Ù\85Ù\88Ù\86|$1 Ú\93Ù\86Ú¯ شوي سمونونه}} کتل',
 'protect' => 'ژغورل',
 'protect_change' => 'بدلون',
 'protectthispage' => 'همدا مخ ژغورل',
@@ -368,10 +368,10 @@ $messages = array(
 'newpage' => 'نوی مخ',
 'talkpage' => 'د دې مخ په اړه خبرې اترې کول',
 'talkpagelinktext' => 'خبرې اترې',
-'specialpage' => 'Ú\81اÙ\86Ú«ړې پاڼه',
+'specialpage' => 'Ú\81اÙ\86Ú¯ړې پاڼه',
 'personaltools' => 'شخصي اوزار',
 'postcomment' => 'نوې برخه',
-'articlepage' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه ښکاره کول',
+'articlepage' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه ښکاره کول',
 'talk' => 'خبرې اترې',
 'views' => 'کتنې',
 'toolbox' => 'اوزاربکس',
@@ -384,15 +384,15 @@ $messages = array(
 'categorypage' => 'د وېشنيزې مخ کتل',
 'viewtalkpage' => 'خبرې اترې کتل',
 'otherlanguages' => 'په نورو ژبو کې',
-'redirectedfrom' => '(Ù\84Ù\87 $1 Ù\86Ù\87 Ù\85Ø® Ú«رځېدلی)',
-'redirectpagesub' => 'د Ù\85Ø® Ú«رځونې مخ',
+'redirectedfrom' => '(Ù\84Ù\87 $1 Ù\86Ù\87 Ù\85Ø® Ú¯رځېدلی)',
+'redirectpagesub' => 'د Ù\85Ø® Ú¯رځونې مخ',
 'lastmodifiedat' => 'دا مخ وروستی ځل په $2، $1 بدلون موندلی.',
 'viewcount' => 'همدا مخ {{PLURAL:$1|يو وار|$1 واره}} کتل شوی.',
 'protectedpage' => 'ژغورلی مخ',
 'jumpto' => 'ورټوپ کړه:',
-'jumptonavigation' => 'Ú«رځښت',
+'jumptonavigation' => 'Ú¯رځښت',
 'jumptosearch' => 'پلټل',
-'view-pool-error' => 'اÙ\88بخÚ\9aÛ\8dØ\8c Ø¯Ù\85 Ú«Ú\93Û\8d Ù¾Ø§Ù\84Ù\86Ú«ران د ډېر بارېدو ستونزې سره مخامخ شوي.
+'view-pool-error' => 'اÙ\88بخÚ\9aÛ\8dØ\8c Ø¯Ù\85 Ú«Ú\93Û\8d Ù¾Ø§Ù\84Ù\86Ú¯ران د ډېر بارېدو ستونزې سره مخامخ شوي.
 ډېر زيات کارنان د همدې مخ د کتلو په هڅه کې دي.
 لطفاً د دې مخ د کتلو د بيا هڅې نه دمخه يو څو شېبې صبر وکړۍ.
 
@@ -408,16 +408,16 @@ $1',
 'currentevents' => 'اوسنۍ پېښې',
 'currentevents-url' => 'Project:تازه پېښې',
 'disclaimers' => 'ردادعاليکونه',
-'disclaimerpage' => 'Project:Ù¼Ù\88Ù\84Ú«ړی ردادعاليک',
+'disclaimerpage' => 'Project:Ù¼Ù\88Ù\84Ú¯ړی ردادعاليک',
 'edithelp' => 'د لارښود سمون',
 'helppage' => 'Help:نيوليک',
 'mainpage' => 'لومړی مخ',
 'mainpage-description' => 'لومړی مخ',
-'policy-url' => 'Project:تګلاره',
+'policy-url' => 'Project:تگلاره',
 'portal' => 'د ټولنې تانبه',
 'portal-url' => 'Project:د ټولنې تانبه',
-'privacy' => 'د Ù¾Ù¼Ù\86تÙ\8aا ØªÚ«لاره',
-'privacypage' => 'Project:د Ù¾Ù¼Ù\86تÙ\8aا ØªÚ«لاره',
+'privacy' => 'د Ù¾Ù¼Ù\86تÙ\8aا ØªÚ¯لاره',
+'privacypage' => 'Project:د Ù¾Ù¼Ù\86تÙ\8aا ØªÚ¯لاره',
 
 'badaccess' => 'د لاسرسۍ تېروتنه',
 'badaccess-group0' => 'تاسې د غوښتل شوې کړنې د ترسره کولو اجازه نه لرۍ.',
@@ -425,7 +425,7 @@ $1',
 
 'versionrequired' => 'د ميډياويکي $1 بڼې ته اړتيا ده',
 'versionrequiredtext' => 'د دې مخ په ليدلو کې د مېډياويکي $1 بڼې ته اړتيا ده. 
-[[Special:Version|د Ø¨Ú¼Û\90 Ù\85Ø® Ù\88Ú«ورۍ]].',
+[[Special:Version|د Ø¨Ú¼Û\90 Ù\85Ø® Ù\88Ú¯ورۍ]].',
 
 'ok' => 'ښه',
 'retrievedfrom' => '"$1" نه اخيستل شوی',
@@ -450,7 +450,7 @@ $1',
 'collapsible-expand' => 'غځول',
 'thisisdeleted' => '$1 کتل او يا بيازېرمل؟',
 'viewdeleted' => '$1 کتل؟',
-'restorelink' => '{{PLURAL:$1|Ù\8aÙ\88 Ú\93Ù\86Ú« Ø´Ù\88Û\8c Ø³Ù\85Ù\88Ù\86|$1 Ú\93Ù\86Ú« شوي سمونونه}}',
+'restorelink' => '{{PLURAL:$1|Ù\8aÙ\88 Ú\93Ù\86Ú¯ Ø´Ù\88Û\8c Ø³Ù\85Ù\88Ù\86|$1 Ú\93Ù\86Ú¯ شوي سمونونه}}',
 'feedlinks' => 'کتنه:',
 'site-rss-feed' => '$1 د آر اس اس کتنه',
 'site-atom-feed' => '$1 د اټوم کتنه',
@@ -466,7 +466,7 @@ $1',
 'nstab-main' => 'مخ',
 'nstab-user' => 'کارن مخ',
 'nstab-media' => 'د رسنۍ مخ',
-'nstab-special' => 'Ú\81اÙ\86Ú«ړی مخ',
+'nstab-special' => 'Ú\81اÙ\86Ú¯ړی مخ',
 'nstab-project' => 'د پروژې مخ',
 'nstab-image' => 'دوتنه',
 'nstab-mediawiki' => 'پيغام',
@@ -476,23 +476,23 @@ $1',
 
 # Main script and global functions
 'nosuchaction' => 'هېڅ داسې کومه کړنه نشته',
-'nosuchactiontext' => 'Ú©Ù\88Ù\85Ù\87 Ú©Ú\93Ù\86Ù\87 Ú\86Û\90 Ø¯ URL Ù\84Ø®Ù\88ا Ú\81اÙ\86Ú«ړې شوې سمه نه ده.
+'nosuchactiontext' => 'Ú©Ù\88Ù\85Ù\87 Ú©Ú\93Ù\86Ù\87 Ú\86Û\90 Ø¯ URL Ù\84Ø®Ù\88ا Ú\81اÙ\86Ú¯ړې شوې سمه نه ده.
 کېدای شي چې URL مو سم نه وي ټايپ کړی، او يا مو يوه ناسمه تړنه څارلې وي.
 دا د دې هم ښکارندويي کوي چې کېدای شي چې د {{SITENAME}} لخوا کارېدونکې ساوترې کې يوه تېروتنه وي.',
-'nosuchspecialpage' => 'داسÛ\90 Ù\87Û\90Ú\85 Ú©Ù\88Ù\85 Ú\81اÙ\86Ú«ړی مخ نشته',
-'nospecialpagetext' => '<strong>تاسÛ\90 Ø¯ Ù\8aÙ\88 Ù\86اسÙ\85 Ú\81اÙ\86Ú«ړي مخ غوښتنه کړې.</strong>
+'nosuchspecialpage' => 'داسÛ\90 Ù\87Û\90Ú\85 Ú©Ù\88Ù\85 Ú\81اÙ\86Ú¯ړی مخ نشته',
+'nospecialpagetext' => '<strong>تاسÛ\90 Ø¯ Ù\8aÙ\88 Ù\86اسÙ\85 Ú\81اÙ\86Ú¯ړي مخ غوښتنه کړې.</strong>
 
-تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ Ø³Ù\85Ù\88 Ú\81اÙ\86Ú«ړو مخونو لړليک په [[Special:SpecialPages|{{int:specialpages}}]] کې ومومۍ.',
+تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ Ø³Ù\85Ù\88 Ú\81اÙ\86Ú¯ړو مخونو لړليک په [[Special:SpecialPages|{{int:specialpages}}]] کې ومومۍ.',
 
 # General errors
 'error' => 'تېروتنه',
 'databaseerror' => 'د ډاټابېز تېروتنه',
-'laggedslavemode' => "'''Ú«واښنه:''' په دې مخ کې کېدای شي تازه اوسمهالېدنې نه وي.",
+'laggedslavemode' => "'''Ú¯واښنه:''' په دې مخ کې کېدای شي تازه اوسمهالېدنې نه وي.",
 'readonly' => 'توکبنسټ تړل شوی',
-'enterlockreason' => 'د Ø¨Ù\86دÙ\8aز Ù\8aÙ\88 Ø³Ø¨Ø¨ Ù\88Ù\84Ù\8aÚ©Û\8dØ\8c Ø§Ù\88 Ù\87Ù\85داراز Ø¯ Ø¨Ù\86دÙ\8aز Ø¯ Ù\84Ù\8aرÛ\90 Ú©Û\90دÙ\84Ù\88 Ù\8aÙ\88Ù\87 Ø§Ù¼Ú©Ù\84Ù\8aزÙ\87 Ù\86Û\90Ù¼Ù\87 Ù\87Ù\85 Ú\85رګنده کړۍ',
+'enterlockreason' => 'د Ø¨Ù\86دÙ\8aز Ù\8aÙ\88 Ø³Ø¨Ø¨ Ù\88Ù\84Ù\8aÚ©Û\8dØ\8c Ø§Ù\88 Ù\87Ù\85داراز Ø¯ Ø¨Ù\86دÙ\8aز Ø¯ Ù\84Ù\8aرÛ\90 Ú©Û\90دÙ\84Ù\88 Ù\8aÙ\88Ù\87 Ø§Ù¼Ú©Ù\84Ù\8aزÙ\87 Ù\86Û\90Ù¼Ù\87 Ù\87Ù\85 Ú\85رگنده کړۍ',
 'missing-article' => 'توکبنسټ د "$1" $2 په نامه د ورکړ شوي مخ متن چې بايد موندلی يې وای، و نه موند.
 
-دا Ø³ØªÙ\88Ù\86زÙ\87 Ø§Ú©Ø«Ø±Ø§Ù\8b Ø¯ Ù\8aÙ\88Ù\87 Ú\93Ù\86Ú« شوي مخ د پېښليک يا توپير د تړنو په څارلو کې رامېنځ ته کېږي.
+دا Ø³ØªÙ\88Ù\86زÙ\87 Ø§Ú©Ø«Ø±Ø§Ù\8b Ø¯ Ù\8aÙ\88Ù\87 Ú\93Ù\86Ú¯ شوي مخ د پېښليک يا توپير د تړنو په څارلو کې رامېنځ ته کېږي.
 
 که چېرته داسې نه وي، نو بيا کېدای شي چې په ساوترې کې کومه تېروتنه رابرسېره شوې وي.
 لطفاً د دې چارې راپور د URL په نښه کولو سره يوه [[Special:ListUsers/sysop|پازوال]] ته ورکړۍ.',
@@ -504,21 +504,21 @@ $1',
 'fileappenderror' => 'د "$1" پايملون "$2" ته ترسره نه شو..',
 'filecopyerror' => 'د "$1" په نامه دوتنه مو "$2" ته و نه لمېسلای شوه.',
 'filerenameerror' => 'د "$1" په نامه د دوتنې نوم "$2" ته بدل نه شو.',
-'filedeleteerror' => 'د "$1" Ø¯Ù\88تÙ\86Ù\87 Ú\93Ù\86Ú«ه نه شوه.',
+'filedeleteerror' => 'د "$1" Ø¯Ù\88تÙ\86Ù\87 Ú\93Ù\86Ú¯ه نه شوه.',
 'directorycreateerror' => 'د "$1" په نامه ليکلړ جوړ نه شو.',
 'filenotfound' => 'د "$1" دوتنه مو و نه موندله.',
 'fileexistserror' => 'د "$1" په نامه دوتنه نه ليکل کېږي: دوتنه د پخوا نه دلته شته',
 'unexpected' => 'نا اټکله شمېره: "$1"="$2".',
 'formerror' => 'ستونزه: فورمه مو و نه سپارل شوه',
 'badarticleerror' => 'په دې مخ دا کړنه نه شي ترسره کېدلای.',
-'cannotdelete' => 'د "$1" Ù\85Ø® Ù\8aا Ø¯Ù\88تÙ\86Û\90 Ú\93Ù\86Ú«ېدنه ترسره نه شوه.
-Ú©Û\90داÛ\8c Ø´Ù\8a Ú\86Û\90 Ù\88ار Ø¯Ù\85Ø®Û\90 Ø¯Ø§ Ú©Ù\88Ù\85 Ø¨Ù\84 Ú\86ا Ú\93Ù\86Ú«ه کړې وي.',
-'cannotdelete-title' => 'د "$1" Ù\85Ø® Ù\86Ø´Ù\8a Ú\93Ù\86Ú«ېدای',
+'cannotdelete' => 'د "$1" Ù\85Ø® Ù\8aا Ø¯Ù\88تÙ\86Û\90 Ú\93Ù\86Ú¯ېدنه ترسره نه شوه.
+Ú©Û\90داÛ\8c Ø´Ù\8a Ú\86Û\90 Ù\88ار Ø¯Ù\85Ø®Û\90 Ø¯Ø§ Ú©Ù\88Ù\85 Ø¨Ù\84 Ú\86ا Ú\93Ù\86Ú¯ه کړې وي.',
+'cannotdelete-title' => 'د "$1" Ù\85Ø® Ù\86Ø´Ù\8a Ú\93Ù\86Ú¯ېدای',
 'badtitle' => 'ناسم سرليک',
-'badtitletext' => 'ستاسÛ\90 Ø¯ ØºÙ\88Ú\9aتÙ\84 Ø´Ù\88Ù\8a Ù\85Ø® Ø³Ø±Ù\84Ù\8aÚ© Ø³Ù\85 Ù\86Ù\87 Ù\88Ù\88Ø\8c Ù\8aا Ù\85Ù\88 Ø¯ Ø³Ø±Ù\84Ù\8aÚ© Ú\81اÛ\8c ØªØ´ Ù\88Ù\88 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ú\98بÙ\88 Ø®Ù¾Ù\84Ù\85Ù\86Ú\81Ù\8a ØªÚ\93Ù\86Û\90 Ú\85Ø®Ù\87 Ù\8aا Ø¯ Ù\88Ù\8aÚ©Ù\8a Ú«انو خپلمنځي سرليکونو څخه يو ناسم توری مو پکې کارولی وي.
-Ú©Û\90داÛ\8c Ø´Ù\8a Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù¾Ù\87 Ù\88رکÚ\93 Ø´Ù\88Ù\8a Ø³Ø±Ù\84Ù\8aÚ© Ú©Û\90 Ù\8aÙ\88 Ù\8aا Ú\85Ù\88 Ø¯Ø§Ø³Û\90 ØªÙ\88رÙ\8a Ù\88Ù\8a Ú\86Û\90 Ø¯ Ø³Ø±Ù\84Ù\8aÚ© Ù¾Ù\87 ØªÙ\88Ú«ه بايد و نه کارېږي.',
+'badtitletext' => 'ستاسÛ\90 Ø¯ ØºÙ\88Ú\9aتÙ\84 Ø´Ù\88Ù\8a Ù\85Ø® Ø³Ø±Ù\84Ù\8aÚ© Ø³Ù\85 Ù\86Ù\87 Ù\88Ù\88Ø\8c Ù\8aا Ù\85Ù\88 Ø¯ Ø³Ø±Ù\84Ù\8aÚ© Ú\81اÛ\8c ØªØ´ Ù\88Ù\88 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ú\98بÙ\88 Ø®Ù¾Ù\84Ù\85Ù\86Ú\81Ù\8a ØªÚ\93Ù\86Û\90 Ú\85Ø®Ù\87 Ù\8aا Ø¯ Ù\88Ù\8aÚ©Ù\8a Ú¯انو خپلمنځي سرليکونو څخه يو ناسم توری مو پکې کارولی وي.
+Ú©Û\90داÛ\8c Ø´Ù\8a Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù¾Ù\87 Ù\88رکÚ\93 Ø´Ù\88Ù\8a Ø³Ø±Ù\84Ù\8aÚ© Ú©Û\90 Ù\8aÙ\88 Ù\8aا Ú\85Ù\88 Ø¯Ø§Ø³Û\90 ØªÙ\88رÙ\8a Ù\88Ù\8a Ú\86Û\90 Ø¯ Ø³Ø±Ù\84Ù\8aÚ© Ù¾Ù\87 ØªÙ\88Ú¯ه بايد و نه کارېږي.',
 'querypage-no-updates' => 'د دې مخ اوسمهالېدنې ناچارن شوي.
-Ù¾Ù\87 Ú\9aکارÙ\87 ØªÙ\88Ú«ه د دې ځای اومتوک به نه وي تازه شوي.',
+Ù¾Ù\87 Ú\9aکارÙ\87 ØªÙ\88Ú¯ه د دې ځای اومتوک به نه وي تازه شوي.',
 'viewsource' => 'سرچينه کتل',
 'viewsource-title' => 'د $1 سرچينه کتل',
 'actionthrottled' => 'د دې کړنې مخنيوی وشو',
@@ -526,10 +526,10 @@ $1',
 'viewsourcetext' => 'تاسې د دې مخ سرچينه کتلی او لمېسلی شی:',
 'viewyourtext' => "تاسې په دې مخ کې د '''خپلو سمونونو''' سرچينه کتلی او لمېسلی شی:",
 'protectedinterface' => 'دا مخ د دې ويکي د ساوترې د ليدنمخ متن لري، او د ورانکارۍ په خاطر ژغورل شوی.
-Ù¾Ù\87 Ù¼Ù\88Ù\84Ù\88 Ù\88Ù\8aÚ©Ù\8a Ú«Ø§Ù\86Ù\88 Ú©Û\90 Ø¯ Ú\98باÚ\93Û\90 Ø¯ Ù\88رګډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [//translatewiki.net/ translatewiki.net] وکاروۍ.',
-'editinginterface' => "'''Ú«Ù\88اÚ\9aÙ\86Ù\87:''' ØªØ§Ø³Ù\88 Ù¾Ù\87 Ù\8aÙ\88Ù\87 Ø¯Ø§Ø³Û\90 Ù\85Ø® Ú©Û\90 Ø¨Ø¯Ù\84Ù\88Ù\86 Ø±Ø§Ù\88Ù\84Û\8c Ú©Ù\88Ù\85 Ú\86Û\90 Ø¯ Ù\8aÙ\88Û\90 Ù¾Ù\88ستکاÙ\84Û\8c Ø¯ Ù\84Ù\8aدÙ\86Ù\85Ø® Ù\85تÙ\86 Ù¾Ù\87 ØªÙ\88Ú«ه کارېږي.
+Ù¾Ù\87 Ù¼Ù\88Ù\84Ù\88 Ù\88Ù\8aÚ©Ù\8a Ú¯Ø§Ù\86Ù\88 Ú©Û\90 Ø¯ Ú\98باÚ\93Û\90 Ø¯ Ù\88رگډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [//translatewiki.net/ translatewiki.net] وکاروۍ.',
+'editinginterface' => "'''Ú¯Ù\88اÚ\9aÙ\86Ù\87:''' ØªØ§Ø³Ù\88 Ù¾Ù\87 Ù\8aÙ\88Ù\87 Ø¯Ø§Ø³Û\90 Ù\85Ø® Ú©Û\90 Ø¨Ø¯Ù\84Ù\88Ù\86 Ø±Ø§Ù\88Ù\84Û\8c Ú©Ù\88Ù\85 Ú\86Û\90 Ø¯ Ù\8aÙ\88Û\90 Ù¾Ù\88ستکاÙ\84Û\8c Ø¯ Ù\84Ù\8aدÙ\86Ù\85Ø® Ù\85تÙ\86 Ù¾Ù\87 ØªÙ\88Ú¯ه کارېږي.
 په همدې مخ کې بدلون راوستل به د نورو کارنانو د ليدنمخ بڼه اغېزمنه کړي.
-د Ú\98باÚ\93Û\90 Ø¯ Ù\88رګډولو او بدلون لپاره، مهرباني وکړی د [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net]، وېبځي ته ولاړ شی. دا وېبځی د ميډياويکي د ځايتابه پروژه ده.",
+د Ú\98باÚ\93Û\90 Ø¯ Ù\88رگډولو او بدلون لپاره، مهرباني وکړی د [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net]، وېبځي ته ولاړ شی. دا وېبځی د ميډياويکي د ځايتابه پروژه ده.",
 'namespaceprotected' => "تاسې د '''$1''' په نوم-تشيال کې د مخونو د سمولو اجازه نه لرۍ.",
 'customcssprotected' => 'تاسې د دې CSS مخ د سمولو اجازه نه لرۍ، دا ځکه چې دا مخ د بل کارن شخصي امستنې لري.',
 'customjsprotected' => 'تاسې د دې جاواسکرېپټ مخ د سمولو اجازه نه لرۍ، دا ځکه چې دا مخ د بل کارن شخصي امستنې لري.',
@@ -537,23 +537,22 @@ $1',
 'mycustomjsprotected' => 'تاسې د دې جاوا سكريپټ مخ د سمولو اجازه نلرۍ.',
 'myprivateinfoprotected' => 'تاسې د دې شخصي مالوماتو د سمولو اجازه نلرۍ.',
 'mypreferencesprotected' => 'تاسې د خپلو غوره توبونو د سمولو اجازه نلرۍ.',
-'ns-specialprotected' => 'Ú\81اÙ\86Ú«ړي مخونو کې سمون او بدلون نه شی راوستلای.',
+'ns-specialprotected' => 'Ú\81اÙ\86Ú¯ړي مخونو کې سمون او بدلون نه شی راوستلای.',
 'titleprotected' => 'د [[User:$1|$1]] لخوا د دې سرليک د جوړېدلو مخنيوی شوی.
 او د دې کړنې سبب "\'\'$2\'\'" ورکړ شوی.',
 'exception-nologin' => 'غونډال کې نه ياست ننوتي',
 
 # Virus scanner
-'virus-badscanner' => "بدÙ\87 Ø³Ø§Ø²Û\90دÙ\86Ù\87: Ø¯ Ù\88Ù\8aرÙ\88س Ù\86اÚ\85رګنده ځيرڅار: ''$1''",
+'virus-badscanner' => "بدÙ\87 Ø³Ø§Ø²Û\90دÙ\86Ù\87: Ø¯ Ù\88Ù\8aرÙ\88س Ù\86اÚ\85رگنده ځيرڅار: ''$1''",
 'virus-scanfailed' => 'ځيرڅارنه بريالۍ نه شوه (کوډ $1)',
-'virus-unknownscanner' => 'Ù\86اÚ\85رګند ضدويروس:',
+'virus-unknownscanner' => 'Ù\86اÚ\85رگند ضدويروس:',
 
 # Login and logout pages
-'logouttext' => "'''تاسÛ\90 Ø§Ù\88س Ø¯ ØºÙ\88Ù\86Ú\89اÙ\84 Ù\86Ù\87 Ù\88Ù\88تÙ\84Û\8c.'''
+'logouttext' => "'''اÙ\88س ØªØ§Ø³Û\90 Ø¯ ØºÙ\88Ù\86Ú\89اÙ\84 Ú\85Ø®Ù\87 Ù\88Ù\88تÙ\84ئ.'''
 
-تاسې کولای شی چې د کارن-نوم نه پرته په ورکنومي توګه {{SITENAME}} وکاروی، او يا هم په همدې او يا کوم بل کارن-نوم، يو ځل <span class='plainlinks'>[$1 بيا غونډال ته ورننوځۍ]</span>.
 دا په پام کې وساتۍ چې تر څو تاسې د خپل کتنمل حافظه نه وي سپينه کړې، نو ځينې مخونو کې به لا تر اوسه پورې په غونډال کې ننوتي ښکارۍ.",
 'welcomeuser' => '$1، ښه راغلې!',
-'welcomecreation-msg' => 'Ú«ڼون مو جوړ شو.
+'welcomecreation-msg' => 'Ú¯ڼون مو جوړ شو.
 د [[Special:Preferences|{{SITENAME}} غوره توبونه]] بدلول مو مه هېروۍ.',
 'yourname' => 'کارن-نوم:',
 'userlogin-yourname' => 'کارن-نوم',
@@ -572,19 +571,19 @@ $1',
 'yourdomainname' => 'ستاسې شپول:',
 'password-change-forbidden' => 'تاسې په دې ويکي باندې خپل پټنوم نه شی بدلولی.',
 'login' => 'ننوتل',
-'nav-login-createaccount' => 'Ù\86Ù\86Ù\88تÙ\84 / Ú«ڼون جوړول',
+'nav-login-createaccount' => 'Ù\86Ù\86Ù\88تÙ\84 / Ú¯ڼون جوړول',
 'loginprompt' => 'ددې لپاره چې {{SITENAME}} کې ننوځۍ نو بايد ستاسې د کمپيوټر کوکيز چارن وي.',
-'userlogin' => 'Ù\86Ù\86Ù\88تÙ\84 / Ú«ڼون جوړول',
+'userlogin' => 'Ù\86Ù\86Ù\88تÙ\84 / Ú¯ڼون جوړول',
 'userloginnocreate' => 'ننوتل',
 'logout' => 'وتل',
 'userlogout' => 'وتل',
 'notloggedin' => 'غونډال کې نه ياست ننوتي',
-'userlogin-noaccount' => 'Ú«ڼون نه لرې؟',
+'userlogin-noaccount' => 'Ú¯ڼون نه لرې؟',
 'userlogin-joinproject' => 'د {{SITENAME}} سره يوځای شه',
 'nologin' => 'کارن-نوم نه لرې؟ $1.',
-'nologinlink' => 'Ù\8aÙ\88 Ú«ڼون جوړول',
-'createaccount' => 'Ú«ڼون جوړول',
-'gotaccount' => 'Ø¢Ù\8aا Ù\88ار Ø¯Ù\85Ø®Û\90 Ù\8aÙ\88 Ú«ڼون لری؟ $1.',
+'nologinlink' => 'Ù\8aÙ\88 Ú¯ڼون جوړول',
+'createaccount' => 'Ú¯ڼون جوړول',
+'gotaccount' => 'Ø¢Ù\8aا Ù\88ار Ø¯Ù\85Ø®Û\90 Ù\8aÙ\88 Ú¯ڼون لری؟ $1.',
 'gotaccountlink' => 'ننوتل',
 'userlogin-resetlink' => 'د ننوتلو مالومات مو هېر شوي؟',
 'userlogin-resetpassword-link' => 'پټنوم مو بياپرځايول',
@@ -597,11 +596,11 @@ $1',
 'createacct-realname' => 'آر نوم (اختياري)',
 'createaccountreason' => 'سبب:',
 'createacct-reason' => 'سبب',
-'createacct-reason-ph' => 'Ù\88Ù\84Û\90 ØªØ§Ø³Û\90 Ø¨Ù\84 Ú«ڼون جوړول غوااړۍ',
+'createacct-reason-ph' => 'Ù\88Ù\84Û\90 ØªØ§Ø³Û\90 Ø¨Ù\84 Ú¯ڼون جوړول غوااړۍ',
 'createacct-captcha' => 'امنيتي تدبير',
 'createacct-imgcaptcha-ph' => 'پورته تاسې ته ښکاره شوی متن وټاپۍ',
-'createacct-submit' => 'Ú«ڼون مو جوړ کړۍ',
-'createacct-another-submit' => 'بÙ\84 Ú«ڼون جوړول',
+'createacct-submit' => 'Ú¯ڼون مو جوړ کړۍ',
+'createacct-another-submit' => 'بÙ\84 Ú¯ڼون جوړول',
 'createacct-benefit-heading' => '{{SITENAME}} ستاسې په شان خلکو لخوا جوړ شوی.',
 'createacct-benefit-body1' => '{{PLURAL:$1|سمون|سمونونه}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|مخ|مخونه}}',
@@ -610,24 +609,24 @@ $1',
 'userexists' => 'کوم کارن نوم چې تاسې ورکړی هغه بل چا کارولی.
 لطفاً يو بل نوم وټاکۍ.',
 'loginerror' => 'د ننوتنې ستونزه',
-'createacct-error' => 'د Ú«ڼون جوړېدنې ستونزه',
-'createaccounterror' => 'Ú«ڼون مو جوړ نه شو: $1',
-'nocookiesnew' => 'ستاسÛ\90 Ú«ڼون جوړ شو، خو تاسې لا غونډال ته نه ياست ورننوتلي.
+'createacct-error' => 'د Ú¯ڼون جوړېدنې ستونزه',
+'createaccounterror' => 'Ú¯ڼون مو جوړ نه شو: $1',
+'nocookiesnew' => 'ستاسÛ\90 Ú¯ڼون جوړ شو، خو تاسې لا غونډال ته نه ياست ورننوتلي.
 {{SITENAME}} کې د ننوتلو لپاره کوکيز کارېږي.
 او ستاسې د کتنمل کوکيز ناچارن دي.
 لطفاً خپل د کتنمل کوکيز چارن کړۍ او بيا د خپل کارن-نوم او پټنوم په کارولو سره غونډال ته ورننوځی.',
 'nocookieslogin' => '{{SITENAME}} کې د ننوتلو لپاره کوکيز کارېږي.
 او ستاسې د کتنمل کوکيز ناچارن دي.
 لطفاً خپل د کتنمل کوکيز چارن کړۍ او بيا د خپل کارن-نوم او پټنوم په کارولو سره غونډال ته ورننوځی.',
-'noname' => 'تاسÛ\90 ØªØ± Ø§Ù\88سÙ\87 Ù¾Ù\88رÛ\90 Ú©Ù\88Ù\85 Ú©Ø±Ù\87 Ú©Ø§Ø±Ù\86 Ù\86Ù\88Ù\85 Ù\86Ù\87 Ø¯Û\8c Ú\81اÙ\86Ú«ړی کړی.',
+'noname' => 'تاسÛ\90 ØªØ± Ø§Ù\88سÙ\87 Ù¾Ù\88رÛ\90 Ú©Ù\88Ù\85 Ú©Ø±Ù\87 Ú©Ø§Ø±Ù\86 Ù\86Ù\88Ù\85 Ù\86Ù\87 Ø¯Û\8c Ú\81اÙ\86Ú¯ړی کړی.',
 'loginsuccesstitle' => 'غونډال کې بريالی ورننوتلۍ',
 'loginsuccess' => "'''تاسې اوس {{SITENAME}} کې د \"\$1\" په نوم ننوتي ياست.'''",
 'nosuchuser' => 'د "$1" په نوم هېڅ کارن نشته.
 د کارنانو نومونه د غټو او واړو تورو سره حساس دي.
-خپÙ\84 Ø­Ø¬Ø§ Ù\88Ú\85ارÛ\8dØ\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 [[Special:UserLogin/signup|Ù\8aÙ\88 Ù\86Ù\88Û\8c Ú«ڼون جوړ کړی]].',
-'nosuchusershort' => 'د "$1" Ù¾Ù\87 Ù\86Ù\88Ù\85 Ù\87Û\90Ú\85 Ú©Ù\88Ù\85 Ú«ڼون نشته. لطفاً خپل د نوم ليکلې بڼې ته ځير شی چې پکې تېروتنه نه وي.',
-'nouserspecified' => 'تاسÛ\90 Ú\81اÙ\86 ØªÙ\87 Ú©Ù\88Ù\85 Ú©Ø§Ø±Ù\86 Ù\86Ù\88Ù\85 Ù\86Ù\87 Ø¯Û\8c Ú\81اÙ\86Ú«ړی کړی.',
-'login-userblocked' => 'Ù¾Ù\87 Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی. غونډال کې ننوتلو ته پرې نه ښودلی شو.',
+خپÙ\84 Ø­Ø¬Ø§ Ù\88Ú\85ارÛ\8dØ\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 [[Special:UserLogin/signup|Ù\8aÙ\88 Ù\86Ù\88Û\8c Ú¯ڼون جوړ کړی]].',
+'nosuchusershort' => 'د "$1" Ù¾Ù\87 Ù\86Ù\88Ù\85 Ù\87Û\90Ú\85 Ú©Ù\88Ù\85 Ú¯ڼون نشته. لطفاً خپل د نوم ليکلې بڼې ته ځير شی چې پکې تېروتنه نه وي.',
+'nouserspecified' => 'تاسÛ\90 Ú\81اÙ\86 ØªÙ\87 Ú©Ù\88Ù\85 Ú©Ø§Ø±Ù\86 Ù\86Ù\88Ù\85 Ù\86Ù\87 Ø¯Û\8c Ú\81اÙ\86Ú¯ړی کړی.',
+'login-userblocked' => 'Ù¾Ù\87 Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی. غونډال کې ننوتلو ته پرې نه ښودلی شو.',
 'wrongpassword' => 'ناسم پټنوم مو ليکلی. لطفاً يو ځل بيا يې وليکۍ.',
 'wrongpasswordempty' => 'تاسې پټنوم نه دی ليکلی. لطفاً سر له نوي يې وليکۍ.',
 'passwordtooshort' => 'بايد چې پټنوم مو لږ تر لږه {{PLURAL:$1|1 توری|$1 توري}} وي.',
@@ -646,27 +645,27 @@ $1',
 'noemailcreate' => 'تاسې ته پکار ده چې يوه سمه برېښليک پته وليکۍ',
 'passwordsent' => 'د "$1" لپاره يو نوی پټنوم د اړونده کارن برېښليک پتې ته ولېږل شو.
 لطفاً کله چې پټنوم مو ترلاسه کړ نو بيا غونډال ته ننوځۍ.',
-'blocked-mailpassword' => 'ستاسÛ\90 Ù¾Ù\87 IP Ù¾ØªÛ\90 Ø¨Ù\86دÙ\8aز Ù\84Ú«Û\90دÙ\84Û\8c Ø§Ù\88 ØªØ§Ø³Û\90 Ù\86Ù\87 Ø´Û\8c Ú©Ù\88Ù\84اÛ\8c Ú\86Û\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\88Ú©Ú\93Û\8cØ\8c Ù¾Ù\87 Ù\87Ù\85دÛ\90 ØªÙ\88Ú«ه تاسې نه شی کولای چې د پټنوم د پرځای کولو کړنې وکاروی دا ددې لپاره چې د وراني مخنيوی وشي.',
+'blocked-mailpassword' => 'ستاسÛ\90 Ù¾Ù\87 IP Ù¾ØªÛ\90 Ø¨Ù\86دÙ\8aز Ù\84Ú¯Û\90دÙ\84Û\8c Ø§Ù\88 ØªØ§Ø³Û\90 Ù\86Ù\87 Ø´Û\8c Ú©Ù\88Ù\84اÛ\8c Ú\86Û\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\88Ú©Ú\93Û\8cØ\8c Ù¾Ù\87 Ù\87Ù\85دÛ\90 ØªÙ\88Ú¯ه تاسې نه شی کولای چې د پټنوم د پرځای کولو کړنې وکاروی دا ددې لپاره چې د وراني مخنيوی وشي.',
 'eauthentsent' => 'ستاسې ورکړ شوې برېښليک پتې ته مو يو تاييدي برېښليک درولېږه.
-تر Ø¯Û\90 Ø¯Ù\85Ø®Ù\87 Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ú«Ú¼Ù\88Ù\86 ØªÙ\87 Ú©Ù\88Ù\85 Ø¨Ù\84 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ø¯Ø±Ù\88Ù\84Û\90Ú\96Ù\88Ø\8c Ù¾Ú©Ø§Ø± Ø¯Ù\87 Ú\86Û\90 ØªØ§Ø³Û\90 Ù¾Ù\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ú©Û\90 Ø¯Ø±Ù\84Û\90Ú\96Ù\84 Ø´Ù\88Û\90 Ù\84ارÚ\9aÙ\88Ù\88Ù\86Û\90 Ù¾Ù\84Ù\8a Ú©Ú\93Û\8c Ø§Ù\88 Ø¯Ø¯Û\90 Ù¾Ø®Ù\84Û\8c Ù\88Ú©Ú\93Û\8c Ú\86Û\90 Ù\87Ù\85دا Ú«ڼون په رښتيا ستاسې خپل دی.',
+تر Ø¯Û\90 Ø¯Ù\85Ø®Ù\87 Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ú¯Ú¼Ù\88Ù\86 ØªÙ\87 Ú©Ù\88Ù\85 Ø¨Ù\84 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ø¯Ø±Ù\88Ù\84Û\90Ú\96Ù\88Ø\8c Ù¾Ú©Ø§Ø± Ø¯Ù\87 Ú\86Û\90 ØªØ§Ø³Û\90 Ù¾Ù\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ú©Û\90 Ø¯Ø±Ù\84Û\90Ú\96Ù\84 Ø´Ù\88Û\90 Ù\84ارÚ\9aÙ\88Ù\88Ù\86Û\90 Ù¾Ù\84Ù\8a Ú©Ú\93Û\8c Ø§Ù\88 Ø¯Ø¯Û\90 Ù¾Ø®Ù\84Û\8c Ù\88Ú©Ú\93Û\8c Ú\86Û\90 Ù\87Ù\85دا Ú¯ڼون په رښتيا ستاسې خپل دی.',
 'mailerror' => 'د برېښليک د لېږلو ستونزه: $1',
-'acct_creation_throttle_hit' => 'د Ù\87Ù\85دÛ\90 Ù\88Ù\8aÚ©Ù\8a Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ù¾Ù\87 Ù\88رÙ\88ستÙ\8aÙ\88 Ù\88رÚ\81Ù\88 Ú©Û\90 Ø³ØªØ§Ø³Û\90 Ø¯ IP Ù¾ØªÛ\90 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 {{PLURAL:$1|1 Ú«Ú¼Ù\88Ù\86|$1 Ú«Ú¼Ù\88Ù\86Ù\88Ù\86Ù\87}} Ø¬Ù\88Ú\93 Ú©Ú\93Ù\8aØ\8c Ú\86Û\90 Ø¯Ø§ Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ù\85Ù\88دÛ\90 Ú©Û\90 Ø¯ Ú«ڼونونو د جوړولو تر ټولو ډېر شمېر دی چې اجازه يې ورکړ شوې.
\86Ù\88 Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ø®Ø§Ø·Ø± Ø¯ Ø§Ù\88س Ù\84پارÙ\87 Ø¯ Ù\87Ù\85دÛ\90 IP Ù¾ØªÛ\90 Ú©Ø§Ø±Ù\86اÙ\86 Ù\86Ù\87 Ø´Ù\8a Ú©Ù\88Ù\84اÛ\8c Ú\86Û\90 Ù\86Ù\88ر Ú«ڼونونه جوړ کړي.',
+'acct_creation_throttle_hit' => 'د Ù\87Ù\85دÛ\90 Ù\88Ù\8aÚ©Ù\8a Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ù¾Ù\87 Ù\88رÙ\88ستÙ\8aÙ\88 Ù\88رÚ\81Ù\88 Ú©Û\90 Ø³ØªØ§Ø³Û\90 Ø¯ IP Ù¾ØªÛ\90 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 {{PLURAL:$1|1 Ú¯Ú¼Ù\88Ù\86|$1 Ú¯Ú¼Ù\88Ù\86Ù\88Ù\86Ù\87}} Ø¬Ù\88Ú\93 Ú©Ú\93Ù\8aØ\8c Ú\86Û\90 Ø¯Ø§ Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ù\85Ù\88دÛ\90 Ú©Û\90 Ø¯ Ú¯ڼونونو د جوړولو تر ټولو ډېر شمېر دی چې اجازه يې ورکړ شوې.
\86Ù\88 Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ø®Ø§Ø·Ø± Ø¯ Ø§Ù\88س Ù\84پارÙ\87 Ø¯ Ù\87Ù\85دÛ\90 IP Ù¾ØªÛ\90 Ú©Ø§Ø±Ù\86اÙ\86 Ù\86Ù\87 Ø´Ù\8a Ú©Ù\88Ù\84اÛ\8c Ú\86Û\90 Ù\86Ù\88ر Ú¯ڼونونه جوړ کړي.',
 'emailauthenticated' => 'ستاسې برېښليک پته په $2 نېټه په $3 بجو د منلو وړ وګرځېده.',
 'emailnotauthenticated' => 'لا تر اوسه ستاسې برېښليک پته د منلو وړ نه ده ګرځېدلې. د لاندې ځانګړتياو لپاره به تاسې ته هېڅ کوم برېښليک و نه لېږل شي.',
 'noemailprefs' => 'ددې لپاره چې دا کړنې کار وکړي نو تاسو يو برېښليک وټاکۍ.',
 'emailconfirmlink' => 'د خپل د برېښليک پتې پخلی وکړی',
 'invalidemailaddress' => 'دا برېښليک پته نه منل کېږي، دا ځکه چې دا پته يوه ناکره بڼه لري.
 لطفاً د يوې کره بڼې پته وليکۍ او يا هم دا ځای تش پرېږدۍ.',
-'cannotchangeemail' => 'پدÛ\90 Ù\88Ù\8aÚ©Ù\8a Ú©Û\90 Ø¯ Ú«ڼون برېښليک پتې نشي بدلېدلی.',
+'cannotchangeemail' => 'پدÛ\90 Ù\88Ù\8aÚ©Ù\8a Ú©Û\90 Ø¯ Ú¯ڼون برېښليک پتې نشي بدلېدلی.',
 'emaildisabled' => 'دا وېبځی د برېښليک لېږلو چارو څخه برخمن نه دی.',
-'accountcreated' => 'Ú«ڼون مو جوړ شو.',
-'accountcreatedtext' => 'د [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|خبرÛ\90 Ø§ØªØ±Û\90]]) Ù\84پارÙ\87 Ù\8aÙ\88 Ú«ڼون جوړ شو.',
-'createaccount-title' => 'د {{SITENAME}} Ø¯ Ú«ڼون جوړېدنه',
-'createaccount-text' => 'Ù\8aÙ\88 Ú\86ا Ø¯ {{SITENAME}} Ù¾Ù\87 Ù\88Û\90بÚ\81Ù\8a ($4) Ú©Û\90 Ø³ØªØ§Ø³Û\90 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÛ\90 Ù\84پارÙ\87 Ø¯ "$2" Ù¾Ù\87 Ù\86اÙ\85Ù\87 Ù\8aÙ\88 Ú«ڼون جوړ کړی چې پټنوم يې "$3" دی.
+'accountcreated' => 'Ú¯ڼون مو جوړ شو.',
+'accountcreatedtext' => 'د [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|خبرÛ\90 Ø§ØªØ±Û\90]]) Ù\84پارÙ\87 Ù\8aÙ\88 Ú¯ڼون جوړ شو.',
+'createaccount-title' => 'د {{SITENAME}} Ø¯ Ú¯ڼون جوړېدنه',
+'createaccount-text' => 'Ù\8aÙ\88 Ú\86ا Ø¯ {{SITENAME}} Ù¾Ù\87 Ù\88Û\90بÚ\81Ù\8a ($4) Ú©Û\90 Ø³ØªØ§Ø³Û\90 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÛ\90 Ù\84پارÙ\87 Ø¯ "$2" Ù¾Ù\87 Ù\86اÙ\85Ù\87 Ù\8aÙ\88 Ú¯ڼون جوړ کړی چې پټنوم يې "$3" دی.
 تاسې بايد غونډال ته ورننوځۍ او همدا اوس خپل پټنوم بدل کړی.
 
-Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯Ø§ Ú©Ú\93Ù\86Ù\87 Ù¾Ù\87 ØªÛ\90رÙ\88تÙ\86Ù\87 Ú©Û\90 Ø´Ù\88Û\8c Ù\88Ù\8a Ù\86Ù\88 ØªØ§Ø³Û\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯Ø§ Ù¾Ù\8aغاÙ\85 Ø¨Ø§Ø¨Û\90زÙ\87 Ù\88Ú«ڼۍ.',
+Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯Ø§ Ú©Ú\93Ù\86Ù\87 Ù¾Ù\87 ØªÛ\90رÙ\88تÙ\86Ù\87 Ú©Û\90 Ø´Ù\88Û\8c Ù\88Ù\8a Ù\86Ù\88 ØªØ§Ø³Û\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯Ø§ Ù¾Ù\8aغاÙ\85 Ø¨Ø§Ø¨Û\90زÙ\87 Ù\88Ú¯ڼۍ.',
 'usernamehasherror' => 'کارن-نوم نشي کېدلای چې کرښکې لوښې ولري',
 'login-throttled' => 'تاسې څو واره هڅه کړې چې غونډال ته ورننوځۍ.
 لطفاً د بيا هڅې نه مخکې يو څو شېبې تم شۍ.',
@@ -678,7 +677,7 @@ $1',
 
 # Change password dialog
 'resetpass' => 'پټنوم بدلول',
-'resetpass_header' => 'د Ú«ڼون پټنوم بدلول',
+'resetpass_header' => 'د Ú¯ڼون پټنوم بدلول',
 'oldpassword' => 'زوړ پټنوم:',
 'newpassword' => 'نوی پټنوم:',
 'retypenew' => 'نوی پټنوم بيا وليکه:',
@@ -688,7 +687,7 @@ $1',
 'resetpass_forbidden' => 'پټنومونه مو نه شي بدلېدلای',
 'resetpass-no-info' => 'دې مخ ته د لاسرسي لپاره بايد غونډال کې ورننوځۍ.',
 'resetpass-submit-loggedin' => 'پټنوم بدلول',
-'resetpass-submit-cancel' => 'Ù\86اګارل',
+'resetpass-submit-cancel' => 'Ù\86اگارل',
 'resetpass-wrong-oldpass' => 'لنډمهال او يا هم اوسنی پټنوم مو ناسم دی',
 'resetpass-temp-password' => 'لنډمهالی پټنوم:',
 
@@ -700,22 +699,22 @@ $1',
 'passwordreset-domain' => 'شپول:',
 'passwordreset-capture' => 'د پايلې برېښليک کتل غواړې؟',
 'passwordreset-email' => 'برېښليک پته:',
-'passwordreset-emailtitle' => 'د {{SITENAME}} Ø¯ Ú«Ú¼Ù\88Ù\86 Ú\85رګندنې',
+'passwordreset-emailtitle' => 'د {{SITENAME}} Ø¯ Ú¯Ú¼Ù\88Ù\86 Ú\85رگندنې',
 'passwordreset-emailelement' => 'کارن-نوم: $1
 لنډمهاله پټنوم: $2',
 'passwordreset-emailsent' => 'د پټنوم بيا پرځای کېدنې لپاره برېښليک درولېږل شو.',
-'passwordreset-emailsent-capture' => 'د Ù¾Ù¼Ù\86Ù\88Ù\85 Ø¨Ù\8aاپرÚ\81اÛ\8c Ú©Û\90دÙ\86Û\90 Ù\84پار Ù\85Ù\88 Ù\8aÙ\88 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ø¯Ø±Ù\88Ù\84Û\90Ú\96Ù\87Ø\8c Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾Ù\87 Ù\84اÙ\86دÛ\90 ØªÙ\88Ú«ه ښودل شوی.',
+'passwordreset-emailsent-capture' => 'د Ù¾Ù¼Ù\86Ù\88Ù\85 Ø¨Ù\8aاپرÚ\81اÛ\8c Ú©Û\90دÙ\86Û\90 Ù\84پار Ù\85Ù\88 Ù\8aÙ\88 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ø¯Ø±Ù\88Ù\84Û\90Ú\96Ù\87Ø\8c Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾Ù\87 Ù\84اÙ\86دÛ\90 ØªÙ\88Ú¯ه ښودل شوی.',
 
 # Special:ChangeEmail
 'changeemail' => 'برېښليک پته بدلول',
-'changeemail-header' => 'د Ú«ڼون برېښليک پته بدلول',
+'changeemail-header' => 'د Ú¯ڼون برېښليک پته بدلول',
 'changeemail-no-info' => 'دې مخ ته د لاسرسي لپاره بايد غونډال کې ورننوځۍ.',
 'changeemail-oldemail' => 'اوسنۍ برېښليک پته:',
 'changeemail-newemail' => 'نوې برېښليک پته:',
 'changeemail-none' => '(هېڅ)',
 'changeemail-password' => 'ستاسې د{{SITENAME}} پټنوم:',
 'changeemail-submit' => 'برېښليک بدلول',
-'changeemail-cancel' => 'Ù\86اګارل',
+'changeemail-cancel' => 'Ù\86اگارل',
 
 # Edit page toolbar
 'bold_sample' => 'زغرد متن',
@@ -729,7 +728,7 @@ $1',
 'headline_sample' => 'د سرليک متن',
 'headline_tip' => 'د ۲ کچې سرليک',
 'nowiki_sample' => 'دلته دې بې بڼې متن ځای پر ځای شي',
-'nowiki_tip' => 'د Ù\88Ù\8aÚ©Ù\8a Ø¨Ú¼Ù\87 Ù\86Ù\8aÙ\88Ù\86Ù\87 Ø¨Ø§Ø¨Û\90زÙ\87 Ú«ڼل',
+'nowiki_tip' => 'د Ù\88Ù\8aÚ©Ù\8a Ø¨Ú¼Ù\87 Ù\86Ù\8aÙ\88Ù\86Ù\87 Ø¨Ø§Ø¨Û\90زÙ\87 Ú¯ڼل',
 'image_tip' => 'خښه شوې دوتنه',
 'media_tip' => 'د دوتنې تړنه',
 'sig_tip' => 'ستاسې لاسليک د وخت د ټاپې سره',
@@ -750,7 +749,7 @@ $1',
 'missingcommenttext' => 'لطفاً تبصره لاندې وليکۍ.',
 'summary-preview' => 'د لنډيز مخليدنه:',
 'subject-preview' => 'موضوع/سرليک مخکتنه:',
-'blockedtitle' => 'پر Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی',
+'blockedtitle' => 'پر Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی',
 'blockedtext' => "'''ستاسې د کارن-نوم يا آی پي پتې مخنيوی شوی.'''
 
 همدا بنديز د $1 له خوا پر تاسې لږېدلی. او د همدې کړنې سبب ''$2'' دی.
@@ -759,10 +758,10 @@ $1',
 * د بنديز د پای نېټه: $6
 * بنديزونه دي پر: $7
 
-تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ $1 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ù\8aÙ\88 Ø¨Ù\84 [[{{MediaWiki:Grouppage-sysop}}|پازÙ\88اÙ\84]] Ø³Ø±Ù\87 Ø§Ú\93Ù\8aÚ©Û\90 Ù¼Ù\8aÙ\86Ú«ې کړی او د بنديز ستونزې مو هوارې کړی.
-تاسÛ\90 Ù\86Ù\87 Ø´Û\8c Ú©Ù\88Ù\84اÛ\8c Ú\86Û\90 Ø¯ 'کارÙ\86 ØªÙ\87 Ø¨Ø±Û\90Ú\9aÙ\84Ú© Ù\84Û\90Ú\96Ù\84' Ú©Ú\93Ù\86Û\90 Ù\86Ù\87 Ú«Ù¼Ù\87 Ù¾Ù\88رتÙ\87 Ú©Ú\93Û\8c ØªØ± Ú\85Ù\88 Ú\86Û\90 ØªØ§Ø³Û\90 Ø¯ Ø®Ù¾Ù\84 Ú«Ú¼Ù\88Ù\86 Ù¾Ù\87 [[Special:Preferences|غÙ\88رÙ\87 ØªÙ\88بÙ\88Ù\86Ù\88]] Ú©Û\90 Ù\8aÙ\88Ù\87 Ú©Ø±Ù\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÙ\87 Ù\86Ù\87 Ù\88Ù\8a Ú\81اÙ\86Ú«Ú\93Û\90 Ú©Ú\93Û\90 Ø§Ù\88 ØªØ± Ø¯Û\90 Ø¨Ø±Ù\8aدÙ\87 Ú\86Û\90 Ù¾Ø± ØªØ§Ø³Û\90 Ø¯ Ù\87غÛ\90 Ø¯ Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø¨Ù\86دÙ\8aز Ù\86Ù\87 Ù\88Ù\8a Ù\84Ú«ېدلی.
+تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ $1 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ù\8aÙ\88 Ø¨Ù\84 [[{{MediaWiki:Grouppage-sysop}}|پازÙ\88اÙ\84]] Ø³Ø±Ù\87 Ø§Ú\93Ù\8aÚ©Û\90 Ù¼Ù\8aÙ\86Ú¯ې کړی او د بنديز ستونزې مو هوارې کړی.
+تاسÛ\90 Ù\86Ù\87 Ø´Û\8c Ú©Ù\88Ù\84اÛ\8c Ú\86Û\90 Ø¯ 'کارÙ\86 ØªÙ\87 Ø¨Ø±Û\90Ú\9aÙ\84Ú© Ù\84Û\90Ú\96Ù\84' Ú©Ú\93Ù\86Û\90 Ù\86Ù\87 Ú¯Ù¼Ù\87 Ù¾Ù\88رتÙ\87 Ú©Ú\93Û\8c ØªØ± Ú\85Ù\88 Ú\86Û\90 ØªØ§Ø³Û\90 Ø¯ Ø®Ù¾Ù\84 Ú¯Ú¼Ù\88Ù\86 Ù¾Ù\87 [[Special:Preferences|غÙ\88رÙ\87 ØªÙ\88بÙ\88Ù\86Ù\88]] Ú©Û\90 Ù\8aÙ\88Ù\87 Ú©Ø±Ù\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÙ\87 Ù\86Ù\87 Ù\88Ù\8a Ú\81اÙ\86Ú¯Ú\93Û\90 Ú©Ú\93Û\90 Ø§Ù\88 ØªØ± Ø¯Û\90 Ø¨Ø±Ù\8aدÙ\87 Ú\86Û\90 Ù¾Ø± ØªØ§Ø³Û\90 Ø¯ Ù\87غÛ\90 Ø¯ Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø¨Ù\86دÙ\8aز Ù\86Ù\87 Ù\88Ù\8a Ù\84Ú¯ېدلی.
 ستاسې د دم مهال آی پي پته $3 ده، او ستاسې د بنديز پېژند #$5 دی. مهرباني وکړۍ د خپلې يادونې پر مهال د دغو دوو څخه د يوه او يا هم د دواړو ورکول مه هېروۍ.",
-'autoblockedtext' => 'Ù¾Ù\87 Ø®Ù¾Ù\84کارÙ\8aزÙ\87 ØªÙ\88Ú«Ù\87 Ø³ØªØ§Ø³Û\90 Ù¾Ø± IP Ù¾ØªÛ\90 Ø¨Ù\86دÙ\8aز Ù\84Ú«Û\90دÙ\84Û\8cØ\8c Ø¯Ø§ Ø¯ Ø¯Û\90 Ù¾Ù\87 Ø®Ø§Ø·Ø± Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù¾ØªÙ\87 Ø¯ Ø¨Ù\84 Ú\86ا Ù\84Ù\87 Ø®Ù\88ا Ú\86Û\90 $1 Ù¾Ø±Û\90 Ø¨Ù\86دÙ\8aز Ù\84Ú«ولی، کارېدلې.
+'autoblockedtext' => 'Ù¾Ù\87 Ø®Ù¾Ù\84کارÙ\8aزÙ\87 ØªÙ\88Ú¯Ù\87 Ø³ØªØ§Ø³Û\90 Ù¾Ø± IP Ù¾ØªÛ\90 Ø¨Ù\86دÙ\8aز Ù\84Ú¯Û\90دÙ\84Û\8cØ\8c Ø¯Ø§ Ø¯ Ø¯Û\90 Ù¾Ù\87 Ø®Ø§Ø·Ø± Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù¾ØªÙ\87 Ø¯ Ø¨Ù\84 Ú\86ا Ù\84Ù\87 Ø®Ù\88ا Ú\86Û\90 $1 Ù¾Ø±Û\90 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ولی، کارېدلې.
 او د بنديز سبب يې دا دی:
 
 :\'\'$2\'\'
@@ -771,9 +770,9 @@ $1',
 * د بنديز د پای نېټه: $6
 * د بنديز د موخې سړی: $7
 
-تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ $1 Ø³Ø±Ù\87 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ [[{{MediaWiki:Grouppage-sysop}}|پازÙ\88اÙ\84اÙ\86Ù\88]]  Ù\84Ù\87 Ú\89Ù\84Û\90 Ù\86Ù\87 Ù\8aÙ\88 Ú\86ا Ø³Ø±Ù\87 Ø§Ú\93Ù\8aÚ©Û\90 Ù¼Ù\8aÙ\86Ú«ې کړی او د بنديز په اړه مو ورسره خبرې وکړۍ.
+تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ $1 Ø³Ø±Ù\87 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ [[{{MediaWiki:Grouppage-sysop}}|پازÙ\88اÙ\84اÙ\86Ù\88]]  Ù\84Ù\87 Ú\89Ù\84Û\90 Ù\86Ù\87 Ù\8aÙ\88 Ú\86ا Ø³Ø±Ù\87 Ø§Ú\93Ù\8aÚ©Û\90 Ù¼Ù\8aÙ\86Ú¯ې کړی او د بنديز په اړه مو ورسره خبرې وکړۍ.
 
-دا Ù\85Ù\87 Ù\87Û\90رÙ\88Û\8d Ú\86Û\90 ØªØ§Ø³Û\90 Ø¯ "کارÙ\86 ØªÙ\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù\84Û\90Ú\96Ù\84" Ù\84Ù\87 Ø§Ø³Ø§Ù\86تÙ\8aاÙ\88ؤ Ù\86Ù\87 Ú«Ù¼Ù\87 Ù\86Ù\87 Ø´Û\8c Ø§Ø®Ù\8aستÙ\84اÛ\8c ØªØ± Ú\85Ù\88 Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ø¯ Ù\86Ù\88Ù\85Ù\84Ù\8aÚ©Ù\86Û\90 Ù¾Ù\87 Ù\88خت Ú©Û\90 Ù\8aا [[Special:Preferences|ستاسÛ\90 Ø¯ ØºÙ\88رÙ\87 ØªÙ\88بÙ\88Ù\86Ù\88 Ù¾Ù\87 Ø§Ù\85ستÙ\86Ù\88]] Ú©Û\90 Ù\8aÙ\88Ù\87 Ú©Ø±Ù\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÙ\87 Ù\86Ù\87 Ù\88Ù\8a Ú\81اÙ\86Ú«Ú\93Û\90 Ø´Ù\88Û\90Ø\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù\84Û\90Ú\96Ù\84Ù\88 Ø¯ Ú\86ارÙ\88 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ù\85Ù\88 Ø¨Ù\86دÙ\8aز Ù\86Ù\87 Ù\88Ù\8a Ù\84Ú«ېدلی.
+دا Ù\85Ù\87 Ù\87Û\90رÙ\88Û\8d Ú\86Û\90 ØªØ§Ø³Û\90 Ø¯ "کارÙ\86 ØªÙ\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù\84Û\90Ú\96Ù\84" Ù\84Ù\87 Ø§Ø³Ø§Ù\86تÙ\8aاÙ\88ؤ Ù\86Ù\87 Ú«Ù¼Ù\87 Ù\86Ù\87 Ø´Û\8c Ø§Ø®Ù\8aستÙ\84اÛ\8c ØªØ± Ú\85Ù\88 Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ø¯ Ù\86Ù\88Ù\85Ù\84Ù\8aÚ©Ù\86Û\90 Ù¾Ù\87 Ù\88خت Ú©Û\90 Ù\8aا [[Special:Preferences|ستاسÛ\90 Ø¯ ØºÙ\88رÙ\87 ØªÙ\88بÙ\88Ù\86Ù\88 Ù¾Ù\87 Ø§Ù\85ستÙ\86Ù\88]] Ú©Û\90 Ù\8aÙ\88Ù\87 Ú©Ø±Ù\87 Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÙ\87 Ù\86Ù\87 Ù\88Ù\8a Ú\81اÙ\86Ú¯Ú\93Û\90 Ø´Ù\88Û\90Ø\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù\84Û\90Ú\96Ù\84Ù\88 Ø¯ Ú\86ارÙ\88 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ù\85Ù\88 Ø¨Ù\86دÙ\8aز Ù\86Ù\87 Ù\88Ù\8a Ù\84Ú¯ېدلی.
 
 ستاسې IP پته $3 ده او ستاسې د بنديز پېژند #$5 دی.
 د بنديز اړونده د اړيکو نيولو په وخت کې لطفاً د پورتني مالوماتو يادونه وکړۍ.',
@@ -788,25 +787,25 @@ $1',
 'accmailtitle' => 'پټنوم ولېږل شو.',
 'newarticle' => '(نوی)',
 'newarticletext' => "تاسې د يوې داسې تړنې څارنه کړې چې لا تر اوسه پورې نه شته.
-Ú©Ù\87 Ù\87Ù\85دا Ù\85Ø® Ù\84Ù\8aÚ©Ù\84 ØºÙ\88اÚ\93Û\8dØ\8c Ù\86Ù\88 Ù¾Ù\87 Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ú\86Ù\88کاټ Ú©Û\90 Ø®Ù¾Ù\84 Ù\85تÙ\86 Ù\88ټاپÛ\8d (د Ù\84ا Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ [[{{MediaWiki:Helppage}}|Ù\84ارÚ\9aÙ\88د Ù\85Ø®]] Ù\88Ú«ورۍ).
+Ú©Ù\87 Ù\87Ù\85دا Ù\85Ø® Ù\84Ù\8aÚ©Ù\84 ØºÙ\88اÚ\93Û\8dØ\8c Ù\86Ù\88 Ù¾Ù\87 Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ú\86Ù\88کاټ Ú©Û\90 Ø®Ù¾Ù\84 Ù\85تÙ\86 Ù\88ټاپÛ\8d (د Ù\84ا Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ [[{{MediaWiki:Helppage}}|Ù\84ارÚ\9aÙ\88د Ù\85Ø®]] Ù\88Ú¯ورۍ).
 که چېرته تاسې دلته په تېروتنه راغلي ياست، نو يواځې د خپل د کتنمل '''مخ پر شا''' تڼۍ مو وټوکۍ.",
-'anontalkpagetext' => "----''دا Ø¯ Ù\8aÙ\88Ù\87 Ù\88رکÙ\86Ù\88Ù\85Ù\8a Ú©Ø§Ø±Ù\86 Ú\86Û\90 Ú©Ø§Ø±Ù\86\86Ù\88Ù\85 Ù\86Ù\87 Ù\84رÙ\8a Ø§Ù\88 Ù\8aا Ø®Ù¾Ù\84 Ú©Ø§Ø±Ù\86\86Ù\88Ù\85 Ù\86Ù\87 Ú©Ø§Ø±Ù\88Ù\8aØ\8c Ø¯ Ø³Ú©Ø§Ù\84Ù\88 Ù\8aÙ\88Ù\87 Ù¾Ø§Ú¼Ù\87 Ø¯Ù\87. Ù\86Ù\88 Ø¯ Ù\8aÙ\88Ù\87 Ú©Ø³ Ø¯ Ù¾Û\90Ú\98Ù\86دÙ\84Ù\88 Ù¾Ø®Ø§Ø·Ø± Ù\85Ù\88Ú\96 Ø¯ Ù\87Ù\85اغÙ\87 Ú©Ø§Ø±Ù\86 Ø¯ Ø§Ù\86ټرÙ\86Û\90Ù¼ Ø´Ù\85Û\90رÙ\87 Ù\8aا IP Ù¾ØªÙ\87 Ø¯Ù\84تÙ\87 Ø«Ø¨ØªÙ\88ؤ. Ø¯Ø§Ø³Û\90 Ù\8aÙ\88Ù\87 IP Ù¾ØªÙ\87 Ø¯ Ú\89Û\90رÙ\88 Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ù\84Ø®Ù\88ا Ù\87Ù\85 Ú©Ø§Ø±Û\90دÙ\84Û\8c Ø´Ù\8a. Ú©Ù\87 ØªØ§Ø³Û\90 Ù\8aÙ\88 Ù\88رکÙ\86Ù\88Ù\85Û\8c Ú©Ø§Ø±Ù\86 Ù\8aاست Ø§Ù\88 ØªØ§Ø³Û\90 ØªÙ\87 Ø¯Ø§ Ú\85رګÙ\86دÛ\90Ú\96Ù\8a Ú\86Û\90 ØªØ§Ø³Û\90 ØªÙ\87 Ù\86ااÚ\93Ù\88Ù\86دÙ\87 Ù¾Û\90غاÙ\85Ù\88Ù\86Ù\87 Ø§Ù\88 ØªØ¨ØµØ±Û\90 Ø§Ø´Ø§Ø±Ù\87 Ø´Ù\88Ù\8aØ\8c Ù\86Ù\88 Ø¯ Ù\86Ù\88رÙ\88 Ø¨Û\90 Ù\86Ù\88Ù\85Ù\88 Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ø§Ù\88 Ø³ØªØ§Ø³Û\90 ØªØ±Ù\85Û\90Ù\86Ú\81 Ø¯ Ù¼Ú©Ù\86تÙ\88ب Ø¯ Ù\85Ø® Ù\86Ù\8aÙ\88Ù\86Û\90 Ù\84پارÙ\87 Ù\84Ø·Ù\81اÙ\8b [[Special:UserLogin/signup|Ù\8aÙ\88 Ú«ڼون جوړ کړۍ]] او يا هم [[Special:UserLogin|غونډال ته ورننوځۍ]].''",
+'anontalkpagetext' => "----''دا Ø¯ Ù\8aÙ\88Ù\87 Ù\88رکÙ\86Ù\88Ù\85Ù\8a Ú©Ø§Ø±Ù\86 Ú\86Û\90 Ú©Ø§Ø±Ù\86\86Ù\88Ù\85 Ù\86Ù\87 Ù\84رÙ\8a Ø§Ù\88 Ù\8aا Ø®Ù¾Ù\84 Ú©Ø§Ø±Ù\86\86Ù\88Ù\85 Ù\86Ù\87 Ú©Ø§Ø±Ù\88Ù\8aØ\8c Ø¯ Ø³Ú©Ø§Ù\84Ù\88 Ù\8aÙ\88Ù\87 Ù¾Ø§Ú¼Ù\87 Ø¯Ù\87. Ù\86Ù\88 Ø¯ Ù\8aÙ\88Ù\87 Ú©Ø³ Ø¯ Ù¾Û\90Ú\98Ù\86دÙ\84Ù\88 Ù¾Ø®Ø§Ø·Ø± Ù\85Ù\88Ú\96 Ø¯ Ù\87Ù\85اغÙ\87 Ú©Ø§Ø±Ù\86 Ø¯ Ø§Ù\86ټرÙ\86Û\90Ù¼ Ø´Ù\85Û\90رÙ\87 Ù\8aا IP Ù¾ØªÙ\87 Ø¯Ù\84تÙ\87 Ø«Ø¨ØªÙ\88ؤ. Ø¯Ø§Ø³Û\90 Ù\8aÙ\88Ù\87 IP Ù¾ØªÙ\87 Ø¯ Ú\89Û\90رÙ\88 Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ù\84Ø®Ù\88ا Ù\87Ù\85 Ú©Ø§Ø±Û\90دÙ\84Û\8c Ø´Ù\8a. Ú©Ù\87 ØªØ§Ø³Û\90 Ù\8aÙ\88 Ù\88رکÙ\86Ù\88Ù\85Û\8c Ú©Ø§Ø±Ù\86 Ù\8aاست Ø§Ù\88 ØªØ§Ø³Û\90 ØªÙ\87 Ø¯Ø§ Ú\85رگÙ\86دÛ\90Ú\96Ù\8a Ú\86Û\90 ØªØ§Ø³Û\90 ØªÙ\87 Ù\86ااÚ\93Ù\88Ù\86دÙ\87 Ù¾Û\90غاÙ\85Ù\88Ù\86Ù\87 Ø§Ù\88 ØªØ¨ØµØ±Û\90 Ø§Ø´Ø§Ø±Ù\87 Ø´Ù\88Ù\8aØ\8c Ù\86Ù\88 Ø¯ Ù\86Ù\88رÙ\88 Ø¨Û\90 Ù\86Ù\88Ù\85Ù\88 Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ø§Ù\88 Ø³ØªØ§Ø³Û\90 ØªØ±Ù\85Û\90Ù\86Ú\81 Ø¯ Ù¼Ú©Ù\86تÙ\88ب Ø¯ Ù\85Ø® Ù\86Ù\8aÙ\88Ù\86Û\90 Ù\84پارÙ\87 Ù\84Ø·Ù\81اÙ\8b [[Special:UserLogin/signup|Ù\8aÙ\88 Ú¯ڼون جوړ کړۍ]] او يا هم [[Special:UserLogin|غونډال ته ورننوځۍ]].''",
 'noarticletext' => 'دم مهال په دې مخ کې څه نشته.
 تاسې کولای شی چې په نورو مخونو کې [[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' => 'د "<nowiki>$1</nowiki>" Ú«ڼون نه دی ثبت شوی.
+'userpage-userdoesnotexist' => 'د "<nowiki>$1</nowiki>" Ú¯ڼون نه دی ثبت شوی.
 لطفاً ځان ډاډه کړۍ چې آيا تاسې په رښتيا همدا مخ جوړول که سمول غواړۍ.',
-'userpage-userdoesnotexist-view' => 'د "$1" Ú«ڼون نه دی ثبت شوی.',
-'blocked-notice-logextract' => 'دÙ\85 Ù\85Ù\87اÙ\84 Ù¾Ù\87 Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی.
لته لاندې د بنديز تازه يادښت د سرچينې په توګه ورکړ شوی:',
+'userpage-userdoesnotexist-view' => 'د "$1" Ú¯ڼون نه دی ثبت شوی.',
+'blocked-notice-logextract' => 'دÙ\85 Ù\85Ù\87اÙ\84 Ù¾Ù\87 Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی.
 بنديز يادښت تازه مالومات په لاندې توگه دي:',
 'clearyourcache' => "'''يادښت:''' د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.
 * '''فايرفاکس/ سفري:''' په دې کتنمل کې د ''Reload'' د ټکوهلو په وخت د ''Shift'' تڼۍ نيولې وساتی، او يا هم ''Ctrl-F5'' يا ''Ctrl-R''تڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ''⌘-R'' کېښکاږۍ)
-* '''Ú«Ù\88Ù\88Ú«ل کروم:''' په دې کتنمل کې د ''Ctrl-Shift-R'' تڼۍ کېښکاږۍ (د مک لپاره ''⌘-Shift-R'')
+* '''Ú¯Ù\88Ù\88Ú¯ل کروم:''' په دې کتنمل کې د ''Ctrl-Shift-R'' تڼۍ کېښکاږۍ (د مک لپاره ''⌘-Shift-R'')
 * '''انټرنټ اېکسپلورر:''' په دې کتنمل کې د ''Refresh'' د ټکوهلو په وخت کې د ''Ctrl'' تڼۍ کېښکاږلې ونيسۍ، او يا هم د ''Ctrl-F5'' تڼۍ کېښکاږۍ
-* '''اÙ\88پرا''': Ù¾Ù\87 Ø¯Û\90 Ú©ØªÙ\86Ù\85Ù\84 Ú©Û\90 Ø¯ Ø®Ù¾Ù\84 Ø¨Ø±Ø§Ù\88زر Ø³Ø§ØªÙ\84 Ø´Ù\88Û\90 Ø­Ø§Ù\81ظÙ\87 Ù¾Ø¯Û\90 ØªÙ\88Ú«ه سپينولی شی ''Tools→Preferences''",
+* '''اÙ\88پرا''': Ù¾Ù\87 Ø¯Û\90 Ú©ØªÙ\86Ù\85Ù\84 Ú©Û\90 Ø¯ Ø®Ù¾Ù\84 Ø¨Ø±Ø§Ù\88زر Ø³Ø§ØªÙ\84 Ø´Ù\88Û\90 Ø­Ø§Ù\81ظÙ\87 Ù¾Ø¯Û\90 ØªÙ\88Ú¯ه سپينولی شی ''Tools→Preferences''",
 'usercsspreview' => "'''هېر مو نشي چې دا يوازې ستاسې د کارن CSS مخليدنه ده.'''
 '''تر اوسه پورې لا ستاسې بدلونونه نه دي خوندي شوي!'''",
 'userjspreview' => "'''هېر مو نشي چې دا يوازې ستاسې د کارن د جاوا سکرېپټ آزمېيل/مخليدنه ده.'''
@@ -828,17 +827,17 @@ $1',
 'yourtext' => 'ستاسې متن',
 'storedversion' => 'زېرمه شوې مخکتنه',
 'yourdiff' => 'توپيرونه',
-'copyrightwarning' => "Ù\84Ø·Ù\81اÙ\8b Ù¾Ù\87 Ù¾Ø§Ù\85 Ú©Û\90 Ù\88ساتÛ\8d Ú\86Û\90 Ù¼Ù\88Ù\84Û\90 Ù\87غÙ\87 Ù\88Ù\86Ú\89Û\90 Ú\86Û\90 ØªØ§Ø³Û\90 Ù\8aÛ\90 {{SITENAME}} Ú©Û\90 ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Û\8c Ù\87غÙ\87 Ø¯ $2 Ù\84Ù\87 Ù\85Ø®Û\90 Ø¯ Ø®Ù¾Ø±Ù\88Ù\84Ù\88 Ù\84پارÙ\87 Ú«Ú¼Ù\84 Ú©Û\90Ú\96Ù\8a (د Ù\84اÙ\86Ù\88رÙ\88 ØªÙ\81صÙ\8aÙ\84اتÙ\88 Ù\84پارÙ\87 $1 Ù\88Ú«Ù\88رÛ\8d). Ú©Ù\87 ØªØ§Ø³Û\90 Ù\86Ù\87 ØºÙ\88اÚ\93Û\8d Ú\86Û\90 Ù¾Ù\87 Ù\84Ù\8aÚ©Ù\86Ù\88 Ú©Û\90 Ù\85Ù\88 Ù¾Ù\87 Ø¨Û\90 Ø±Ø­Ù\85Û\8d Ø³Ø±Ù\87 Ù\84اسÙ\88Ù\87Ù\86Û\90 (سÙ\85Ù\88Ù\86Û\90) Ù\88Ø´Ù\8a Ø§Ù\88 Ø¯ Ù\86Ù\88رÙ\88 Ù¾Ù\87 ØºÙ\88Ú\9aتÙ\86Ù\87 Ù¾Ø³Û\90 Ù\84اÙ\86Ù\88رÛ\90 هم خپرې شي، نو دلته يې مه ځای پر ځای کوی..<br />
-تاسې زمونږ سره دا ژمنه هم کوی چې تاسې پخپله دا ليکنه کښلې، او يا مو د ټولګړو پاڼو او يا ورته وړيا سرچينو نه کاپي کړې ده '''لطفاً د ليکوال د اجازې نه پرته د خوندي رښتو ليکنې مه خپروی!'''",
+'copyrightwarning' => "Ù\84Ø·Ù\81اÙ\8b Ù¾Ù\87 Ù¾Ø§Ù\85 Ú©Û\90 Ù\88ساتÛ\8d Ú\86Û\90 Ù¼Ù\88Ù\84Û\90 Ù\87غÙ\87 Ù\88Ù\86Ú\89Û\90 Ú\86Û\90 ØªØ§Ø³Û\90 Ù\8aÛ\90 {{SITENAME}} Ú©Û\90 ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Û\8c Ù\87غÙ\87 Ø¯ $2 Ù\84Ù\87 Ù\85Ø®Û\90 Ø¯ Ø®Ù¾Ø±Ù\88Ù\84Ù\88 Ù\84پارÙ\87 Ú¯Ú¼Ù\84 Ú©Û\90Ú\96Ù\8a (د Ù\84اÙ\86Ù\88رÙ\88 ØªÙ\81صÙ\8aÙ\84اتÙ\88 Ù\84پارÙ\87 $1 Ù\88Ú¯Ù\88رÛ\8d). Ú©Ù\87 ØªØ§Ø³Û\90 Ù\86Ù\87 ØºÙ\88اÚ\93Û\8d Ú\86Û\90 Ù¾Ù\87 Ù\84Ù\8aÚ©Ù\86Ù\88 Ú©Û\90 Ù\85Ù\88 Ù¾Ù\87 Ø¨Û\90 Ø±Ø­Ù\85Û\8d Ø³Ø±Ù\87 Ù\84اسÙ\88Ù\87Ù\86Û\90 (سÙ\85Ù\88Ù\86Û\90) Ù\88Ø´Ù\8a Ø§Ù\88 Ø¯ Ù\86Ù\88رÙ\88 Ù¾Ù\87 ØºÙ\88Ú\9aتÙ\86Ù\87 Ù¾Ø³Û\90 Ù\84اÙ\86Ù\88رÛ\90 Ù\88غÚ\81Û\90Ú\96Ù\8a Ø§Ù\88 Ù\8aا هم خپرې شي، نو دلته يې مه ځای پر ځای کوی..<br />
+تاسې زموږ سره دا ژمنه هم کوئ چې تاسې پخپله دا ليکنه کښلې، او يا مو د ټولگړو پاڼو او يا ورته وړيا سرچينو څخه لمېسلې ده '''لطفاً د ليکوال د اجازې څخه پرته د خوندي رښتو ليکنې مه خپروی!'''",
 'longpageerror' => "'''تېروتنه: کوم متن چې مو ليکلی {{PLURAL:$1|يو کيلوبايټه|$1 کيلوبايټه}} اوږد دی، چې دا پخپله د حد اکثر نه {{PLURAL:$2|يو کيلوبايټه|$2 کيلوبايټه}} اوږد دی.'''
 ستاسې متن نه شي خوندي کېدلای.",
-'protectedpagewarning' => "'''Ú«واښنه: همدا مخ تړل شوی او يوازې هغه کارنان په دې مخ کې بدلونونه راوستلای شي چې د پازوالۍ د آسانتياوو نه برخمن دي.'''
-ستاسÛ\90 Ø¯ Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\8aادÚ\9aت Ù\85تÙ\86 Ø¯Ù\84تÙ\87 Ù¾Ù\87 Ø¯Û\90 ØªÙ\88Ú«ه راوړل شوی:",
+'protectedpagewarning' => "'''Ú¯واښنه: همدا مخ تړل شوی او يوازې هغه کارنان په دې مخ کې بدلونونه راوستلای شي چې د پازوالۍ د آسانتياوو نه برخمن دي.'''
+ستاسÛ\90 Ø¯ Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\8aادÚ\9aت Ù\85تÙ\86 Ø¯Ù\84تÙ\87 Ù¾Ù\87 Ø¯Û\90 ØªÙ\88Ú¯ه راوړل شوی:",
 'semiprotectedpagewarning' => "'''پاملرنه:''' دا مخ تړل شوی او يواځې ثبت شوي کارنان کولای شي چې په دې مخ کې بدلونونه راولي.
-ستاسÛ\90 Ø¯ Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\8aادÚ\9aت Ù\85تÙ\86 Ø¯Ù\84تÙ\87 Ù¾Ù\87 Ø¯Û\90 ØªÙ\88Ú«ه راوړل شوی:",
-'cascadeprotectedwarning' => "'''Ú«Ù\88اÚ\9aÙ\86Ù\87:''' Ù\87Ù\85دا Ù\85Ø® ØªÚ\93Ù\84 Ø´Ù\88Û\8c Ø¯Û\8c Ø§Ù\88 Ù\8aÙ\88ازÛ\90 Ù\87غÙ\87 Ú©Ø§Ø±Ù\86اÙ\86 Ù¾Ù\87 Ø¯Û\90 Ù\85Ø® Ú©Û\90 Ø¨Ø¯Ù\84Ù\88Ù\86Ù\88Ù\86Ù\87 Ø±Ø§Ù\88ستÙ\84اÛ\8c Ø´Ù\8a Ú\86Û\90 Ø¯ Ù¾Ø§Ø²Ù\88اÙ\84Û\8d Ø¯ Ø¢Ø³Ø§Ù\86تÙ\8aاÙ\88Ù\88 Ù\86Ù\87 Ø¨Ø±Ø®Ù\85Ù\86 Ø¯Ù\8aØ\8c Ø¯Ø§ Ù¾Ù\87 Ø¯Û\90 Ø®Ø§Ø·Ø± Ú\86Û\90 Ù\87Ù\85دا Ù\85Ø® Ø¯ {{PLURAL:$1|Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ù\85Ø®|Ù\84اÙ\86دÙ\8aÙ\86Ù\8aÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88}} Ù¾Ù\87 Ú\81Ù\88Ú\93اÙ\88بÙ\8aزÛ\90 Ú\98غÙ\88رÙ\86Û\90 Ú©Û\90 Ù\88رګډ دی:",
-'titleprotectedwarning' => "'''Ú«Ù\88اÚ\9aÙ\86Ù\87: Ù\87Ù\85دا Ù\85Ø® ØªÚ\93Ù\84 Ø´Ù\88Û\8c Ø¯Û\8c Ø§Ù\88 Ø¯ Ø¯Û\90 Ø¯ Ø¬Ù\88Ú\93Ù\88Ù\84Ù\88 Ù\84پارÙ\87 ØªØ§Ø³Û\90 ØªÙ\87 Ø¯ [[Special:ListGroupRights|Ú\81اÙ\86Ú«ړو رښتو]] د ترلاسه کولو اړتيا ده.'''
-ستاسÛ\90 Ø¯ Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\8aادÚ\9aت Ù\85تÙ\86 Ø¯Ù\84تÙ\87 Ù¾Ù\87 Ø¯Û\90 ØªÙ\88Ú«ه راوړل شوی:",
+ستاسÛ\90 Ø¯ Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\8aادÚ\9aت Ù\85تÙ\86 Ø¯Ù\84تÙ\87 Ù¾Ù\87 Ø¯Û\90 ØªÙ\88Ú¯ه راوړل شوی:",
+'cascadeprotectedwarning' => "'''Ú¯Ù\88اÚ\9aÙ\86Ù\87:''' Ù\87Ù\85دا Ù\85Ø® ØªÚ\93Ù\84 Ø´Ù\88Û\8c Ø¯Û\8c Ø§Ù\88 Ù\8aÙ\88ازÛ\90 Ù\87غÙ\87 Ú©Ø§Ø±Ù\86اÙ\86 Ù¾Ù\87 Ø¯Û\90 Ù\85Ø® Ú©Û\90 Ø¨Ø¯Ù\84Ù\88Ù\86Ù\88Ù\86Ù\87 Ø±Ø§Ù\88ستÙ\84اÛ\8c Ø´Ù\8a Ú\86Û\90 Ø¯ Ù¾Ø§Ø²Ù\88اÙ\84Û\8d Ø¯ Ø¢Ø³Ø§Ù\86تÙ\8aاÙ\88Ù\88 Ù\86Ù\87 Ø¨Ø±Ø®Ù\85Ù\86 Ø¯Ù\8aØ\8c Ø¯Ø§ Ù¾Ù\87 Ø¯Û\90 Ø®Ø§Ø·Ø± Ú\86Û\90 Ù\87Ù\85دا Ù\85Ø® Ø¯ {{PLURAL:$1|Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ù\85Ø®|Ù\84اÙ\86دÙ\8aÙ\86Ù\8aÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88}} Ù¾Ù\87 Ú\81Ù\88Ú\93اÙ\88بÙ\8aزÛ\90 Ú\98غÙ\88رÙ\86Û\90 Ú©Û\90 Ù\88رگډ دی:",
+'titleprotectedwarning' => "'''Ú¯Ù\88اÚ\9aÙ\86Ù\87: Ù\87Ù\85دا Ù\85Ø® ØªÚ\93Ù\84 Ø´Ù\88Û\8c Ø¯Û\8c Ø§Ù\88 Ø¯ Ø¯Û\90 Ø¯ Ø¬Ù\88Ú\93Ù\88Ù\84Ù\88 Ù\84پارÙ\87 ØªØ§Ø³Û\90 ØªÙ\87 Ø¯ [[Special:ListGroupRights|Ú\81اÙ\86Ú¯ړو رښتو]] د ترلاسه کولو اړتيا ده.'''
+ستاسÛ\90 Ø¯ Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ Ù\88رÙ\88ستÙ\86Ù\8a Ù\8aادÚ\9aت Ù\85تÙ\86 Ø¯Ù\84تÙ\87 Ù¾Ù\87 Ø¯Û\90 ØªÙ\88Ú¯ه راوړل شوی:",
 'templatesused' => 'په دې مخ کارېدلې {{PLURAL:$1|کينډۍ|کينډۍ}}:',
 'templatesusedpreview' => 'يه دې مخليدنه کارېدلې {{PLURAL:$1|کينډۍ|کينډۍ}}:',
 'templatesusedsection' => 'په دې برخه کې کارېدلي {{PLURAL:$1|کينډۍ|کينډۍ}}:',
@@ -846,22 +845,22 @@ $1',
 'template-semiprotected' => '(نيم-ژغورلی)',
 'hiddencategories' => 'دا مخ د {{PLURAL:$1|1 پټې وېشنيزې|$1 پټو وېشنيزو}} يو غړی دی:',
 'nocreatetext' => '{{SITENAME}} د نوو مخونو د جوړولو وړتيا محدوده کړې.
-تاسÙ\88 Ø¨Û\90رتÙ\87 Ù¾Ø± Ø´Ø§ ØªÙ\84Ù\84اÛ\8c Ø´Û\8c Ø§Ù\88 Ù¾Ù\87 Ø´ØªÙ\87 Ù\85Ø®Ù\88Ù\86Ù\88 Ú©Û\90 Ø³Ù\85Ù\88Ù\86Û\90 ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8cØ\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 [[Special:UserLogin|غÙ\88Ù\86Ú\89اÙ\84 ØªÙ\87 Ù\86Ù\86Ù\88تÙ\84اÛ\8c Ø§Ù\88 Ù\8aÙ\88 Ú«ڼون جوړولای شی]].',
+تاسÙ\88 Ø¨Û\90رتÙ\87 Ù¾Ø± Ø´Ø§ ØªÙ\84Ù\84اÛ\8c Ø´Û\8c Ø§Ù\88 Ù¾Ù\87 Ø´ØªÙ\87 Ù\85Ø®Ù\88Ù\86Ù\88 Ú©Û\90 Ø³Ù\85Ù\88Ù\86Û\90 ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8cØ\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 [[Special:UserLogin|غÙ\88Ù\86Ú\89اÙ\84 ØªÙ\87 Ù\86Ù\86Ù\88تÙ\84اÛ\8c Ø§Ù\88 Ù\8aÙ\88 Ú¯ڼون جوړولای شی]].',
 'nocreate-loggedin' => 'تاسې د نوو مخونو د جوړولو پرېښله نلرۍ.',
 'sectioneditnotsupported-title' => 'د برخې د سمون ملاتړ نه کېږي',
 'sectioneditnotsupported-text' => 'په دې مخ د برخې د سمون ملاتړ نه کېږي.',
 'permissionserrors' => 'د پرېښې تېروتنه',
 'permissionserrorstext' => 'تاسې د لاندې {{PLURAL:$1|سبب|سببونو}} پخاطر د دې کړنې اجازه نه لرۍ:',
 'permissionserrorstext-withaction' => 'تاسې د $2 اجازه نه لری، دا د {{PLURAL:$1|دغه سبب|دغو سببونو}} پخاطر:',
-'recreate-moveddeleted-warn' => "'''Ú«Ù\88اÚ\9aÙ\86Ù\87: ØªØ§Ø³Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ø¯Ø§Ø³Û\90 Ù\85Ø® Ø¨Ù\8aاجÙ\88Ú\93Ù\88Ù\86Ù\87 Ú©Ù\88Û\8d Ú©Ù\88Ù\85 Ú\86Û\90 Ù\8aÙ\88 Ú\81Ù\84 Ù¾Ø®Ù\88ا Ú\93Ù\86Ú« شوی وو.'''
+'recreate-moveddeleted-warn' => "'''Ú¯Ù\88اÚ\9aÙ\86Ù\87: ØªØ§Ø³Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ø¯Ø§Ø³Û\90 Ù\85Ø® Ø¨Ù\8aاجÙ\88Ú\93Ù\88Ù\86Ù\87 Ú©Ù\88Û\8d Ú©Ù\88Ù\85 Ú\86Û\90 Ù\8aÙ\88 Ú\81Ù\84 Ù¾Ø®Ù\88ا Ú\93Ù\86Ú¯ شوی وو.'''
 
-پکار Ø¯Ù\87 Ú\86Û\90 ØªØ§Ø³Û\90 Ù¾Ù\87 Ø¯Û\90 Ú\81اÙ\86 Ù¾Ù\88Ù\87 Ú©Ú\93Û\8d Ú\86Û\90 Ø§Ù\8aا Ø¯Ø§ ØªØ§Ø³Û\90 ØªÙ\87 Ù\88Ú\93 Ø¯Ù\87 Ú\86Û\90 Ø¯ Ù\87Ù\85دÛ\90 Ù\85Ø® Ø¬Ù\88Ú\93Ù\88Ù\84 Ù¾Ù\87 Ù¾Ø±Ù\84Ù\87 Ù¾Ø³Û\90 ØªÙ\88Ú«ه وکړۍ.
-ستاسÛ\90 Ø¯ Ø§Ø³Ø§Ù\86تÙ\8aاÙ\88Ù\88 Ù\84پارÙ\87 Ø¯ Ù\87Ù\85دÛ\90 Ù\85Ø® Ø¯ Ú\93Ù\86Ú«ېدلو يادښت هم ورکړ شوی:",
-'moveddeleted-notice' => 'دا Ù\85Ø® Ú\93Ù\86Ú« شوی.
-دÙ\84تÙ\87 Ù\84اÙ\86دÛ\90 Ø¯ Ø¯Û\90 Ù\85Ø® Ø¯ Ú\93Ù\86Ú«Û\90دÙ\86Û\90 Ø§Ù\88 Ù\84Û\90Ú\96دÛ\90دÙ\86Û\90 Ù\8aادÚ\9aت Ø¯ Ø³Ø±Ú\86Ù\8aÙ\86Û\90 Ù¾Ù\87 ØªÙ\88Ú«ه ورکړ شوی.',
+پکار Ø¯Ù\87 Ú\86Û\90 ØªØ§Ø³Û\90 Ù¾Ù\87 Ø¯Û\90 Ú\81اÙ\86 Ù¾Ù\88Ù\87 Ú©Ú\93Û\8d Ú\86Û\90 Ø§Ù\8aا Ø¯Ø§ ØªØ§Ø³Û\90 ØªÙ\87 Ù\88Ú\93 Ø¯Ù\87 Ú\86Û\90 Ø¯ Ù\87Ù\85دÛ\90 Ù\85Ø® Ø¬Ù\88Ú\93Ù\88Ù\84 Ù¾Ù\87 Ù¾Ø±Ù\84Ù\87 Ù¾Ø³Û\90 ØªÙ\88Ú¯ه وکړۍ.
+ستاسÛ\90 Ø¯ Ø§Ø³Ø§Ù\86تÙ\8aاÙ\88Ù\88 Ù\84پارÙ\87 Ø¯ Ù\87Ù\85دÛ\90 Ù\85Ø® Ø¯ Ú\93Ù\86Ú¯ېدلو يادښت هم ورکړ شوی:",
+'moveddeleted-notice' => 'دا Ù\85Ø® Ú\93Ù\86Ú¯ شوی.
+دÙ\84تÙ\87 Ù\84اÙ\86دÛ\90 Ø¯ Ø¯Û\90 Ù\85Ø® Ø¯ Ú\93Ù\86Ú¯Û\90دÙ\86Û\90 Ø§Ù\88 Ù\84Û\90Ú\96دÛ\90دÙ\86Û\90 Ù\8aادÚ\9aت Ø¯ Ø³Ø±Ú\86Ù\8aÙ\86Û\90 Ù¾Ù\87 ØªÙ\88Ú¯ه ورکړ شوی.',
 'log-fulllog' => 'بشپړ يادښت کتل',
 'edit-gone-missing' => 'د دې مخ اوسمهالول و نه کړای شول.
-داسÛ\90 Ú\9aکارÙ\8a Ú\86Û\90 Ø¯Ø§ Ù\85Ø® Ú\93Ù\86Ú« شوی.',
+داسÛ\90 Ú\9aکارÙ\8a Ú\86Û\90 Ø¯Ø§ Ù\85Ø® Ú\93Ù\86Ú¯ شوی.',
 'edit-conflict' => 'د سمولو خنډ',
 'edit-no-change' => 'ستاسې سمون بابېزه وګڼل شو، دا ځکه چې تاسې په متن کې کوم بدلون نه دی راوستلی.',
 'postedit-confirmation' => 'ستاسې سمون خوندي شو.',
@@ -876,18 +875,18 @@ $1',
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
-'post-expand-template-inclusion-warning' => "'''Ú«واښنه:''' دا کينډۍ د خپل ټاکلي بريد نه ډېره لويه ده.
\81Ù\8aÙ\86Û\90 Ú©Ù\8aÙ\86Ú\89Û\8d Ø¨Ù\87 Ù¾Ù\87 Ú©Û\90 Ú«ډې نه شي.",
+'post-expand-template-inclusion-warning' => "'''Ú¯واښنه:''' دا کينډۍ د خپل ټاکلي بريد نه ډېره لويه ده.
\81Ù\8aÙ\86Û\90 Ú©Ù\8aÙ\86Ú\89Û\8d Ø¨Ù\87 Ù¾Ù\87 Ú©Û\90 Ú¯ډې نه شي.",
 'post-expand-template-inclusion-category' => 'هغه مخونه چې په کې د کارېدلو کينډيو شمېر له ټاکلې کچې ډېر دی',
-'post-expand-template-argument-warning' => "'''Ú«واښنه:''' دا مخ لږ تر لږه د يوې کينډۍ عاملين لري چې بې حده لوی دی.
-دا Ø¹Ø§Ù\85Ù\84Ù\8aÙ\86 Ú\93Ù\86Ú« شول.",
-'post-expand-template-argument-category' => 'Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ú\86Û\90 Ø¯ Ú©Ù\8aÙ\86Ú\89Û\8d Ú\93Ù\86Ú« شوي عاملين لري.',
+'post-expand-template-argument-warning' => "'''Ú¯واښنه:''' دا مخ لږ تر لږه د يوې کينډۍ عاملين لري چې بې حده لوی دی.
+دا Ø¹Ø§Ù\85Ù\84Ù\8aÙ\86 Ú\93Ù\86Ú¯ شول.",
+'post-expand-template-argument-category' => 'Ù\87غÙ\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ú\86Û\90 Ø¯ Ú©Ù\8aÙ\86Ú\89Û\8d Ú\93Ù\86Ú¯ شوي عاملين لري.',
 
 # "Undo" feature
-'undo-norev' => 'دا سمون ناکړ کېدلای نه شي دا ځکه چې دا سمون نشته او يا هم ړنګ شوی.',
+'undo-norev' => 'دا سمون ناکړل کېدای نه شي دا ځکه چې دا سمون نشته او يا هم ړنگ شوی.',
 
 # Account creation failure
-'cantcreateaccounttitle' => 'Ú«ڼون نه شي جوړېدای',
+'cantcreateaccounttitle' => 'Ú¯ڼون نه شي جوړېدای',
 
 # History pages
 'viewpagelogs' => 'د دې مخ يادښتونه کتل',
@@ -908,7 +907,7 @@ $1',
 لنډيز: (اوس) = د اوسنۍ بڼې سره توپير،
 (وروست) = د وروستۍ بڼې سره توپير، و = وړه سمونه.',
 'history-fieldset-title' => 'پېښليک سپړل',
-'history-show-deleted' => 'Ù\8aÙ\88اÚ\81Û\90 Ú\93Ù\86Ú« شوي',
+'history-show-deleted' => 'Ù\8aÙ\88اÚ\81Û\90 Ú\93Ù\86Ú¯ شوي',
 'histfirst' => 'تر ټولو زاړه',
 'histlast' => 'تر ټولو نوي',
 'historysize' => '({{PLURAL:$1|1 بايټ|$1 بايټونه}})',
@@ -918,7 +917,7 @@ $1',
 'history-feed-title' => 'د مخکتنو پېښليک',
 'history-feed-item-nocomment' => '$1 په $2',
 'history-feed-empty' => 'ستاسې غوښتلی مخ نه شته.
-Ú©Û\90داÛ\8c Ø´Ù\8a Ú\86Û\90 Ø¯Ø§ Ù\84Ù\87 Ù\88Ù\8aÚ©Ù\8a Ù\86Ù\87 Ú\93Ù\86Ú« شوی وي، او يا هم په بل نوم بدل شوی وي.
+Ú©Û\90داÛ\8c Ø´Ù\8a Ú\86Û\90 Ø¯Ø§ Ù\84Ù\87 Ù\88Ù\8aÚ©Ù\8a Ù\86Ù\87 Ú\93Ù\86Ú¯ شوی وي، او يا هم په بل نوم بدل شوی وي.
 تاسې په دې ويکي د اړوندو نوؤ مخونو لپاره [[Special:Search|د پلټنې هڅه وکړۍ]].',
 
 # Revision deletion
@@ -926,17 +925,17 @@ $1',
 'rev-deleted-user' => '(کارن-نوم ليري شوی)',
 'rev-delundel' => 'ښکاره کول/ پټول',
 'rev-showdeleted' => 'ښکاره کول',
-'revisiondelete' => 'د Ú\93Ù\86Ú«Ù\88Ù\84Ù\88\86اÚ\93Ù\86Ú«ولو مخکتنې',
-'revdelete-nologtype-title' => 'د Ù\8aادÚ\9aت Ú\89Ù\88Ù\84 Ù\86Ù\87 Ø¯Û\8c Ú\81اÙ\86Ú«ړی شوی',
-'revdelete-no-file' => 'Ú\81اÙ\86Ú«ړې شوې دوتنه نشته.',
+'revisiondelete' => 'د Ú\93Ù\86Ú¯Ù\88Ù\84Ù\88\86اÚ\93Ù\86Ú¯ولو مخکتنې',
+'revdelete-nologtype-title' => 'د Ù\8aادÚ\9aت Ú\89Ù\88Ù\84 Ù\86Ù\87 Ø¯Û\8c Ú\81اÙ\86Ú¯ړی شوی',
+'revdelete-no-file' => 'Ú\81اÙ\86Ú¯ړې شوې دوتنه نشته.',
 'revdelete-show-file-submit' => 'هو',
 'revdelete-selected' => "'''د [[:$1]] {{PLURAL:$2|ټاکلې بڼه|ټاکلې بڼې}}:'''",
 'revdelete-legend' => 'د ښکارېدنې محدوديتونه ټاکل',
 'revdelete-hide-text' => 'د مخکتنې متن پټول',
-'revdelete-hide-image' => 'د Ø¯Ù\88تÙ\86Û\90 Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه پټول',
+'revdelete-hide-image' => 'د Ø¯Ù\88تÙ\86Û\90 Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه پټول',
 'revdelete-hide-name' => 'کړنه او موخه پټول',
 'revdelete-hide-comment' => 'د سمون لنډيز پټول',
-'revdelete-hide-user' => 'د Ø³Ù\85Ù\88Ù\86Ú«ر کارن-نوم/آی پي پته پټول',
+'revdelete-hide-user' => 'د Ø³Ù\85Ù\88Ù\86Ú¯ر کارن-نوم/آی پي پته پټول',
 'revdelete-radio-same' => '(مه بدلوه)',
 'revdelete-radio-set' => 'هو',
 'revdelete-radio-unset' => 'نه',
@@ -945,14 +944,14 @@ $1',
 'revdel-restore-deleted' => 'ړنګې شوې بڼې',
 'revdel-restore-visible' => 'ښکاره بڼې',
 'pagehist' => 'د مخ پېښليک',
-'deletedhist' => 'د Ú\93Ù\86Ú«ولو پېښليک',
-'revdelete-reason-dropdown' => '*د Ú\93Ù\86Ú«Ù\88Ù\84Ù\88 Ù¼Ù\88Ù\84Ú«ړي سببونه
+'deletedhist' => 'د Ú\93Ù\86Ú¯ولو پېښليک',
+'revdelete-reason-dropdown' => '*د Ú\93Ù\86Ú¯Ù\88Ù\84Ù\88 Ù¼Ù\88Ù\84Ú¯ړي سببونه
 ** د خپرېدو د رښتو سرغړونه
 ** ناسم شخصي مالومات
-** Ù¾Ø§Ø±Ù\88Ù\86Ú©Ù\8a Ø§Ù\88 Ø¨Ù\84Ù\88اګر مالومات',
+** Ù¾Ø§Ø±Ù\88Ù\86Ú©Ù\8a Ø§Ù\88 Ø¨Ù\84Ù\88اگر مالومات',
 'revdelete-otherreason' => 'بل/اضافي سبب:',
 'revdelete-reasonotherlist' => 'بل سبب',
-'revdelete-edit-reasonlist' => 'د Ú\93Ù\86Ú«ولو سببونه سمول',
+'revdelete-edit-reasonlist' => 'د Ú\93Ù\86Ú¯ولو سببونه سمول',
 'revdelete-offender' => 'د مخکتنې ليکوال:',
 
 # History merging
@@ -981,7 +980,7 @@ $1',
 # Search results
 'searchresults' => 'د پلټنې پايلې',
 'searchresults-title' => 'د "$1" د پلټنې پايلې',
-'searchresulttext' => 'Ù¾Ù\87 {{SITENAME}} Ú©Û\90 Ø¯ Ù\84Ù¼Ù\88Ù\86 Ø¯ Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87Ø\8c [[{{MediaWiki:Helppage}}|{{int:Ù\84ارÚ\9aÙ\88د}}]] Ù\88Ú«ورۍ.',
+'searchresulttext' => 'Ù¾Ù\87 {{SITENAME}} Ú©Û\90 Ø¯ Ù\84Ù¼Ù\88Ù\86 Ø¯ Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87Ø\8c [[{{MediaWiki:Helppage}}|{{int:Ù\84ارÚ\9aÙ\88د}}]] Ù\88Ú¯ورۍ.',
 'searchsubtitle' => 'تاسې د \'\'\'[[:$1]]\'\'\' لپاره پلټنه کړې ([[Special:Prefixindex/$1|ټول هغه مخونه چې په "$1" پېلېږي]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|ټول هغه مخونه چې "$1" سره تړنې لري]])',
 'searchsubtitleinvalid' => "تاسې د '''$1''' لټون کړی",
 'titlematches' => 'د مخ سرليک ورسره ورته دی',
@@ -997,9 +996,9 @@ $1',
 'searchmenu-legend' => 'د پلټلو خوښنې',
 'searchmenu-exists' => "'''په دې ويکي يو مخ د \"[[:\$1]]\" په نامه دی'''",
 'searchmenu-new' => "'''په دې ويکي د \"[[:\$1]]\" مخ جوړول!'''",
-'searchprofile-articles' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«يز مخونه',
+'searchprofile-articles' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯يز مخونه',
 'searchprofile-project' => 'د لارښود او پروژې مخونه',
-'searchprofile-images' => 'Ú«ڼرسنۍ',
+'searchprofile-images' => 'Ú¯ڼرسنۍ',
 'searchprofile-everything' => 'هرڅه',
 'searchprofile-advanced' => 'پرمختللی',
 'searchprofile-articles-tooltip' => 'په $1 کې پلټل',
@@ -1023,13 +1022,13 @@ $1',
 'searchall' => 'ټول',
 'showingresults' => "دلته لاندې تر {{PLURAL:$1|'''1''' پايله|'''$1''' پايلې}} ښکاره شوي پيل له #'''$2''' شوی.",
 'showingresultsheader' => "د «'''$4'''» لپاره {{PLURAL:$5|له '''$1''' نه تر '''$3''' پايله|له '''$1 نه تر $2''' پايلې، ټولې پايلې '''$3''' }}",
-'nonefound' => "'''Ù\8aادÚ\9aت''': Ù\8aÙ\88ازÛ\90 Ù\8aÙ\88 Ú\85Ù\88 Ù\86Ù\88Ù\85-تشÙ\8aاÙ\84Ù\88Ù\86Ù\88 Ù¾Ù\87 ØªÙ\84Ù\88اÙ\84Ù\8aزÙ\87 ØªÙ\88Ú«ه پلټل کېږي.
-د ''Ù¼Ù\88Ù\84:'' Ù\85ختاÚ\93Ù\8a Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 Ø¨Ù\87 Ø³ØªØ§Ø³Û\90 Ø¯ Ù¾Ù\84Ù¼Ù\86Û\90 Ù\84پارÙ\87Ø\8c Ù¾Ù\87 Ù¼Ù\88Ù\84Ù\87 Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«Ù\87 Ú©Û\90 Ù¾Ù\84Ù¼Ù\86Ù\87 Ù\88Ø´Ù\8a (د Ø®Ø¨Ø±Ù\88اترÙ\88Ø\8c Ú©Ù\8aÙ\86Ú\89Û\8d Ø§Ù\88 Ù\86Ù\88رÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ù¾Ù\87 Ú«Ú\89Ù\88Ù\86), Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ø®Ù¾Ù\84Û\90 Ø®Ù\88Ú\9aÛ\90 Ù\86Ù\88Ù\85-تشÙ\8aاÙ\84 Ø¯ Ù\85ختاÚ\93Ù\8a Ù¾Ù\87 ØªÙ\88Ú«ه وکاروۍ.",
+'nonefound' => "'''Ù\8aادÚ\9aت''': Ù\8aÙ\88ازÛ\90 Ù\8aÙ\88 Ú\85Ù\88 Ù\86Ù\88Ù\85-تشÙ\8aاÙ\84Ù\88Ù\86Ù\88 Ù¾Ù\87 ØªÙ\84Ù\88اÙ\84Ù\8aزÙ\87 ØªÙ\88Ú¯ه پلټل کېږي.
+د ''Ù¼Ù\88Ù\84:'' Ù\85ختاÚ\93Ù\8a Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 Ø¨Ù\87 Ø³ØªØ§Ø³Û\90 Ø¯ Ù¾Ù\84Ù¼Ù\86Û\90 Ù\84پارÙ\87Ø\8c Ù¾Ù\87 Ù¼Ù\88Ù\84Ù\87 Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯Ù\87 Ú©Û\90 Ù¾Ù\84Ù¼Ù\86Ù\87 Ù\88Ø´Ù\8a (د Ø®Ø¨Ø±Ù\88اترÙ\88Ø\8c Ú©Ù\8aÙ\86Ú\89Û\8d Ø§Ù\88 Ù\86Ù\88رÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ù¾Ù\87 Ú¯Ú\89Ù\88Ù\86), Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ø®Ù¾Ù\84Û\90 Ø®Ù\88Ú\9aÛ\90 Ù\86Ù\88Ù\85-تشÙ\8aاÙ\84 Ø¯ Ù\85ختاÚ\93Ù\8a Ù¾Ù\87 ØªÙ\88Ú¯ه وکاروۍ.",
 'search-nonefound' => 'ستاسې دغوښتنې اړونده پايلې و نه موندل شوې.',
 'powersearch' => 'ژوره پلټنه',
 'powersearch-legend' => 'ژوره پلټنه',
 'powersearch-ns' => 'په نوم-تشيالونو کې پلټنه:',
-'powersearch-redir' => 'Ù\85Ø® Ú«رځونې په لړليک کې اوډل',
+'powersearch-redir' => 'Ù\85Ø® Ú¯رځونې په لړليک کې اوډل',
 'powersearch-field' => 'پلټنه د',
 'powersearch-togglelabel' => 'نښه کول:',
 'powersearch-toggleall' => 'ټول',
@@ -1046,9 +1045,9 @@ $1',
 'prefs-skin' => 'پوښۍ',
 'skin-preview' => 'مخکتنه',
 'datedefault' => 'هېڅ نه ټاکل',
-'prefs-beta' => 'د Ø¢Ø²Ù\85Û\90Ú\9aتÙ\8a Ø¨Ú¼Û\90 Ú\81اÙ\86Ú«ړنې',
+'prefs-beta' => 'د Ø¢Ø²Ù\85Û\90Ú\9aتÙ\8a Ø¨Ú¼Û\90 Ú\81اÙ\86Ú¯ړنې',
 'prefs-datetime' => 'نېټه او وخت',
-'prefs-labs' => 'د آزمېنتون ځانګړنې',
+'prefs-labs' => 'د آزمېښتون ځانگړنې',
 'prefs-user-pages' => 'کارن مخونه',
 'prefs-personal' => 'د کارن پېژنليک',
 'prefs-rc' => 'وروستي بدلونونه',
@@ -1079,9 +1078,9 @@ $1',
 'timezonelegend' => 'د وخت سيمه:',
 'localtime' => 'سيمه ايز وخت:',
 'timezoneuseserverdefault' => 'د ويکي تلواليزه بڼه کارول ($1)',
-'timezoneuseoffset' => 'بÙ\84 (تÙ\88Ù¾Ù\8aر Ú\81اÙ\86Ú«ړی کړی)',
+'timezoneuseoffset' => 'بÙ\84 (تÙ\88Ù¾Ù\8aر Ú\81اÙ\86Ú¯ړی کړی)',
 'timezoneoffset' => 'توپير¹:',
-'servertime' => 'د Ù¾Ø§Ù\84Ù\86Ú«ر وخت:',
+'servertime' => 'د Ù¾Ø§Ù\84Ù\86Ú¯ر وخت:',
 'guesstimezone' => 'له کتنمل نه ډکول',
 'timezoneregion-africa' => 'افريقا',
 'timezoneregion-america' => 'امريکا',
@@ -1114,22 +1113,22 @@ $1',
 'badsiglength' => 'ستاسو لاسليک ډېر اوږد دی.
 بايد چې لاسليک مو له $1 {{PLURAL:$1|توري|تورو}} نه لږ وي.',
 'yourgender' => 'جنس:',
-'gender-unknown' => 'Ù\86اÚ\85رګنده',
+'gender-unknown' => 'Ù\86اÚ\85رگنده',
 'gender-male' => 'نارينه',
-'gender-female' => 'ښځه',
+'gender-female' => 'Ú\9aÚ\81Ù\8aÙ\86Ù\87',
 'email' => 'برېښليک',
 'prefs-help-realname' => 'د آر نوم ليکل ستاسې په خوښه دی خو که تاسې خپل آر نوم وټاکۍ پدې سره به ستاسې ټول کارونه او ونډې ستاسې د نوم په اړوندولو کې وکارېږي.',
 'prefs-help-email' => 'د برېښليک ورکړه ستاسې په خوښه ده، خو په ورکړې سره به يې د يوه نوي پټنوم د لېږلو چار آسانه کړي هغه هم کله چې تاسې نه خپل پټنوم هېر شوی وي.',
-'prefs-help-email-others' => 'تاسې دا هم کولای شی چې وټاکۍ چې نور کارنان ستاسې د خبرو اترو او يا کارن مخ د يوې تړنې له لارې تاسې سره برېښليکي اړيکه ونيسي.
-د Ø§Ú\93Ù\8aÚ©Ù\88 Ù¼Ù\8aÙ\86Ú«ولو په وخت کې به ستاسې برېښليک پته نورو کارنانو ته نه ښکاري.',
+'prefs-help-email-others' => 'تاسې دا هم ټاکلی شی چې نور کارنان ستاسې د خبرو اترو او يا د کارن مخ يوې تړنې له لارې له تاسې سره برېښليکي اړيکه ونيسي.
+د Ø§Ú\93Ù\8aÚ©Ù\88 Ù¼Ù\8aÙ\86Ú¯ولو په وخت کې به ستاسې برېښليک پته نورو کارنانو ته نه ښکاري.',
 'prefs-help-email-required' => 'ستاسو د برېښليک پته پکار ده.',
 'prefs-info' => 'بنسټيز مالومات',
 'prefs-i18n' => 'نړېوالتوب',
 'prefs-signature' => 'لاسليک',
 'prefs-dateformat' => 'د نېټې بڼه',
 'prefs-timeoffset' => 'د وخت واټن',
-'prefs-advancedediting' => 'Ù¼Ù\88Ù\84Ú«ړی',
-'prefs-editor' => 'سÙ\85Ù\88Ù\86Ú«ر',
+'prefs-advancedediting' => 'Ù¼Ù\88Ù\84Ú¯ړی',
+'prefs-editor' => 'سÙ\85Ù\88Ù\86Ú¯ر',
 'prefs-preview' => 'مخليدنه',
 'prefs-advancedrc' => 'پرمختللې خوښنې',
 'prefs-advancedrendering' => 'پرمختللې خوښنې',
@@ -1198,14 +1197,14 @@ $1',
 'right-upload' => 'دوتنې پورته کول',
 'right-upload_by_url' => 'د يو URL نه دوتنې پورته کول',
 'right-writeapi' => 'د API کښنې کارېدنه',
-'right-delete' => 'Ù\85Ø®Ù\88Ù\86Ù\87 Ú\93Ù\86Ú«ول',
-'right-bigdelete' => 'د Ø§Ù\88Ú\96دÙ\88 Ù¾Û\90Ú\9aÙ\84Ù\8aÚ©Ù\88Ù\86Ù\88 Ù\85Ø®Ù\88Ù\86Ù\87 Ú\93Ù\86Ú«ول',
-'right-browsearchive' => 'Ú\93Ù\86Ú« شوي مخونه پلټل',
+'right-delete' => 'Ù\85Ø®Ù\88Ù\86Ù\87 Ú\93Ù\86Ú¯ول',
+'right-bigdelete' => 'د Ø§Ù\88Ú\96دÙ\88 Ù¾Û\90Ú\9aÙ\84Ù\8aÚ©Ù\88Ù\86Ù\88 Ù\85Ø®Ù\88Ù\86Ù\87 Ú\93Ù\86Ú¯ول',
+'right-browsearchive' => 'Ú\93Ù\86Ú¯ شوي مخونه پلټل',
 'right-undelete' => 'يو مخ ناړنګول',
 'right-suppressionlog' => 'شخصي يادښتونه کتل',
-'right-block' => 'پر Ù\86Ù\88رÙ\88 Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ø¯ Ø³Ù\85Ù\88Ù\86 Ø¯ Ø¢Ø³Ø§Ù\86تÙ\8aاÙ\88ؤ Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
-'right-blockemail' => 'پر Ù\8aÙ\88Ù\87 Ú©Ø§Ø±Ù\86 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù\84Û\90Ú\96Ù\84Ù\88 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
-'right-hideuser' => 'پر Ù\8aÙ\88Ù\87 Ú©Ø§Ø±Ù\86\86Ù\88Ù\85 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول او له خلکو نه يې پټول',
+'right-block' => 'پر Ù\86Ù\88رÙ\88 Ú©Ø§Ø±Ù\86اÙ\86Ù\88 Ø¯ Ø³Ù\85Ù\88Ù\86 Ø¯ Ø¢Ø³Ø§Ù\86تÙ\8aاÙ\88ؤ Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
+'right-blockemail' => 'پر Ù\8aÙ\88Ù\87 Ú©Ø§Ø±Ù\86 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù\84Û\90Ú\96Ù\84Ù\88 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
+'right-hideuser' => 'پر Ù\8aÙ\88Ù\87 Ú©Ø§Ø±Ù\86\86Ù\88Ù\85 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول او له خلکو نه يې پټول',
 'right-protect' => 'د ژغورنې کچه بدلول او ژغورلي مخونه سمول',
 'right-editinterface' => 'د کارن ليدنمخ سمول',
 'right-editusercssjs' => 'د نورو کارنانو د CSS او JS (جاوا سکرېپټ) دوتنې سمول',
@@ -1213,7 +1212,7 @@ $1',
 'right-edituserjs' => 'د نورو کارنانو د JS (جاوا سکرېپټ) دوتنې سمول',
 'right-unwatchedpages' => 'د ناکتلو مخونو يو لړليک کتل',
 'right-userrights' => 'د کارن ټولې رښتې سمول',
-'right-userrights-interwiki' => 'Ù¾Ù\87 Ù\86Ù\88رÙ\88 Ù\88Ù\8aÚ©Ù\8a Ú«انو د نورو کارنانو  کارن-رښتې سمول',
+'right-userrights-interwiki' => 'Ù¾Ù\87 Ù\86Ù\88رÙ\88 Ù\88Ù\8aÚ©Ù\8a Ú¯انو د نورو کارنانو  کارن-رښتې سمول',
 'right-sendemail' => 'نورو کارنانو ته برېښليک لېږل',
 
 # Special:Log/newusers
@@ -1229,25 +1228,25 @@ $1',
 'action-edit' => 'دا مخ سمول',
 'action-createpage' => 'مخونه جوړول',
 'action-createtalk' => 'د خبرو اترو مخونه جوړول',
-'action-createaccount' => 'دا Ú«ڼون جوړول',
+'action-createaccount' => 'دا Ú¯ڼون جوړول',
 'action-minoredit' => 'دا سمون وړوکی په نخښه کول',
 'action-move' => 'همدا مخ لېږدول',
 'action-movefile' => 'همدا دوتنه لېږدول',
 'action-upload' => 'همدا دوتنه پورته کول',
 'action-upload_by_url' => 'دا دوتنه له يوه URL نه پورته کول',
 'action-writeapi' => 'د API کښنه کارول',
-'action-delete' => 'Ù\87Ù\85دا Ù\85Ø® Ú\93Ù\86Ú«ول',
-'action-deleterevision' => 'دا Ù\85خکتÙ\86Ù\87 Ú\93Ù\86Ú«ول',
-'action-deletedhistory' => 'د Ø¯Û\90 Ù\85Ø® Ú\93Ù\86Ú« شوی پېښليک کتل',
-'action-browsearchive' => 'Ú\93Ù\86Ú« مخونه پلټل',
+'action-delete' => 'Ù\87Ù\85دا Ù\85Ø® Ú\93Ù\86Ú¯ول',
+'action-deleterevision' => 'دا Ù\85خکتÙ\86Ù\87 Ú\93Ù\86Ú¯ول',
+'action-deletedhistory' => 'د Ø¯Û\90 Ù\85Ø® Ú\93Ù\86Ú¯ شوی پېښليک کتل',
+'action-browsearchive' => 'Ú\93Ù\86Ú¯ مخونه پلټل',
 'action-undelete' => 'همدا مخ ناړنګول',
 'action-suppressionlog' => 'دا شخصي يادښت کتل',
-'action-block' => 'پر Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¯ Ø³Ù\85Ù\88Ù\86 Ø¯ Ø¢Ø³Ø§Ù\86تÙ\8aاÙ\88ؤ Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
+'action-block' => 'پر Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¯ Ø³Ù\85Ù\88Ù\86 Ø¯ Ø¢Ø³Ø§Ù\86تÙ\8aاÙ\88ؤ Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
 'action-protect' => 'د دې مخ د ژغورنې کچه بدلول',
 'action-unwatchedpages' => 'د ناکتلو مخونو لړليک کتل',
 'action-mergehistory' => 'د دې مخ پېښليک سره اخږل',
 'action-userrights' => 'د کارن ټولې رښتې سمول',
-'action-userrights-interwiki' => 'Ù¾Ù\87 Ù\86Ù\88رÙ\88 Ù\88Ù\8aÚ©Ù\8a Ú«انو د کارنانو رښتې سمول',
+'action-userrights-interwiki' => 'Ù¾Ù\87 Ù\86Ù\88رÙ\88 Ù\88Ù\8aÚ©Ù\8a Ú¯انو د کارنانو رښتې سمول',
 'action-siteadmin' => 'توکبنسټ کولپول يا نه کولپول',
 'action-sendemail' => 'برېښليکونه لېږل',
 
@@ -1256,7 +1255,7 @@ $1',
 'recentchanges' => 'وروستي بدلونونه',
 'recentchanges-legend' => 'د ورستي بدلونو خوښنې',
 'recentchanges-summary' => 'په دې مخ د ويکي ترټولو تازه وروستي بدلونونه وڅارۍ.',
-'recentchanges-feed-description' => 'Ù\87Ù\85دÙ\84تÙ\87 Ø¯ Ù\88Ù\8aÚ©Ù\8a ØªØ±Ù¼Ù\88Ù\84Ù\88 ØªØ§Ø²Ù\87 Ù\88رÙ\88ستÙ\8a Ø¨Ø¯Ù\84Ù\88Ù\86Ù\88Ù\86Ù\87 Ù\88Ú\85ارÛ\8d Ø§Ù\88 Ù\88Ú«ورۍ چې څه پېښ شوي.',
+'recentchanges-feed-description' => 'Ù\87Ù\85دÙ\84تÙ\87 Ø¯ Ù\88Ù\8aÚ©Ù\8a ØªØ±Ù¼Ù\88Ù\84Ù\88 ØªØ§Ø²Ù\87 Ù\88رÙ\88ستÙ\8a Ø¨Ø¯Ù\84Ù\88Ù\86Ù\88Ù\86Ù\87 Ù\88Ú\85ارÛ\8d Ø§Ù\88 Ù\88Ú¯ورۍ چې څه پېښ شوي.',
 'recentchanges-label-newpage' => 'دغه سمون يو نوی مخ جوړ کړی',
 'recentchanges-label-minor' => 'دا يوه وړه سمونه ده',
 'recentchanges-label-bot' => 'دغه سمون د يو روباټ لخوا ترسره شوی',
@@ -1282,16 +1281,16 @@ $1',
 'rc_categories_any' => 'هر يو',
 'rc-change-size-new' => '$1 {{PLURAL:$1|بايټ|بايټونه}} د بدلون وروسته',
 'newsectionsummary' => '/* $1 */ نوې برخه',
-'rc-enhanced-expand' => 'تفصيل ښکاره کول (د دې لپاره د JavaScript اړتيا ده)',
+'rc-enhanced-expand' => 'تفصيل ښکاره کول',
 'rc-enhanced-hide' => 'تفصيل پټول',
-'rc-old-title' => 'اصÙ\84اÙ\8b Ø¯ "$1" Ù¾Ù\87 ØªÙ\88Ú«ه جوړ شو',
+'rc-old-title' => 'اصÙ\84اÙ\8b Ø¯ "$1" Ù¾Ù\87 ØªÙ\88Ú¯ه جوړ شو',
 
 # Recent changes linked
 'recentchangeslinked' => 'اړونده بدلونونه',
 'recentchangeslinked-feed' => 'اړونده بدلونونه',
 'recentchangeslinked-toolbox' => 'اړونده بدلونونه',
 'recentchangeslinked-title' => '"$1" ته اړونده بدلونونه',
-'recentchangeslinked-summary' => "دا Ø¯ Ù\87غÙ\87 Ø¨Ø¯Ù\84Ù\88Ù\86Ù\88Ù\86Ù\88 Ù\84Ú\93Ù\84Ù\8aÚ© Ø¯Û\8c Ú\86Û\90 Ù\88رÙ\88ستÛ\8d Ú\81Ù\84 Ù¾Ù\87 ØªÚ\93Ù\86 Ù\84رÙ\88Ù\86Ú©Ù\8aÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ú©Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ú\81اÙ\86Ú«Ú\93Ù\8a Ù\85Ø® (اÙ\88 Ù\8aا Ù\87Ù\85 Ø¯ Ù\8aÙ\88Û\90 Ú\81اÙ\86Ú«ړې وېشنيزې غړو) نه رامېنځ ته شوي.
+'recentchangeslinked-summary' => "دا Ø¯ Ù\87غÙ\87 Ø¨Ø¯Ù\84Ù\88Ù\86Ù\88Ù\86Ù\88 Ù\84Ú\93Ù\84Ù\8aÚ© Ø¯Û\8c Ú\86Û\90 Ù\88رÙ\88ستÛ\8d Ú\81Ù\84 Ù¾Ù\87 ØªÚ\93Ù\86 Ù\84رÙ\88Ù\86Ú©Ù\8aÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ú©Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ú\81اÙ\86Ú¯Ú\93Ù\8a Ù\85Ø® (اÙ\88 Ù\8aا Ù\87Ù\85 Ø¯ Ù\8aÙ\88Û\90 Ú\81اÙ\86Ú¯ړې وېشنيزې غړو) نه رامېنځ ته شوي.
 [[Special:Watchlist|ستاسې د کتنلړ]] مخونه په '''زغرد ليک''' کې ښکاري.",
 'recentchangeslinked-page' => 'د مخ نوم:',
 'recentchangeslinked-to' => 'د ورکړل شوي مخ پر ځای د اړونده تړلي مخونو بدلونونه ښکاره کول',
@@ -1299,17 +1298,17 @@ $1',
 # Upload
 'upload' => 'دوتنه پورته کول',
 'uploadbtn' => 'دوتنه پورته کول',
-'reuploaddesc' => 'Ù¾Ù\88رتÙ\87 Ú©Û\90دÙ\86Ù\87 Ù\86اګارÙ\84 Ø§Ù\88 Ø¨Û\90رتÙ\87 Ø¯ Ù¾Ù\88رتÙ\87 Ú©Û\90دÙ\86Û\90 Ù\81Ù\88رÙ\85Û\90 ØªÙ\87 Ù\88رګرځېدل',
-'upload-tryagain' => 'د Ø¨Ø¯Ù\84Ù\88Ù\86 Ù\85Ù\88Ù\86دÙ\84Û\90 Ø¯Ù\88تÙ\86Û\90 Ú\85رګندونې سپارل',
+'reuploaddesc' => 'Ù¾Ù\88رتÙ\87 Ú©Û\90دÙ\86Ù\87 Ù\86اگارÙ\84 Ø§Ù\88 Ø¨Û\90رتÙ\87 Ø¯ Ù¾Ù\88رتÙ\87 Ú©Û\90دÙ\86Û\90 Ù\81Ù\88رÙ\85Û\90 ØªÙ\87 Ù\88رگرځېدل',
+'upload-tryagain' => 'د Ø¨Ø¯Ù\84Ù\88Ù\86 Ù\85Ù\88Ù\86دÙ\84Û\90 Ø¯Ù\88تÙ\86Û\90 Ú\85رگندونې سپارل',
 'uploadnologin' => 'غونډال کې نه ياست ننوتي',
 'uploadnologintext' => 'د دوتنې پورته کولو لپاره بايد $1',
 'uploaderror' => 'د پورته کولو ستونزه',
 'uploadtext' => "د دوتنې د پورته کېدو لپاره لاندينی چوکاټ وکاروۍ.
-Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯ Ù¾Ø®Ù\88Ù\86Ù\8aÙ\88 Ù¾Ù\88رتÙ\87 Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ú©ØªÙ\84 Ø§Ù\88 Ù¾Ù\84Ù¼Ù\84 ØºÙ\88اÚ\93Û\8d Ù\86Ù\88 [[Special:FileList|د Ù¾Ù\88رتÙ\87 Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ù\84Ú\93Ù\84Ù\8aÚ©]] ØªÙ\87 Ù\88رشÛ\8dØ\8c [[Special:Log/upload|د (بÙ\8aا) Ù¾Ù\88رتÙ\87 Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ù\8aادÚ\9aتÙ\88Ù\86Ù\87]] Ø§Ù\88 [[Special:Log/delete|د Ú\93Ù\86Ú«ېدو يادښتونه]] هم کتلای شی.
+Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯ Ù¾Ø®Ù\88Ù\86Ù\8aÙ\88 Ù¾Ù\88رتÙ\87 Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ú©ØªÙ\84 Ø§Ù\88 Ù¾Ù\84Ù¼Ù\84 ØºÙ\88اÚ\93Û\8d Ù\86Ù\88 [[Special:FileList|د Ù¾Ù\88رتÙ\87 Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ù\84Ú\93Ù\84Ù\8aÚ©]] ØªÙ\87 Ù\88رشÛ\8dØ\8c [[Special:Log/upload|د (بÙ\8aا) Ù¾Ù\88رتÙ\87 Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ù\8aادÚ\9aتÙ\88Ù\86Ù\87]] Ø§Ù\88 [[Special:Log/delete|د Ú\93Ù\86Ú¯ېدو يادښتونه]] هم کتلای شی.
 
 ددې لپاره چې يوه مخ ته انځور ورواچوی، نو بيا پدې ډول تړنې (لېنک) وکاروی
 * د يوې دوتنې د بشپړې بڼې د کارولو په موخه د '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' کوډ وکاروۍ.
-* Ø¯ 'Û²Û°Û° Ù¾Û\90کسÙ\84' Ù¾Ù\87 Ú©Ú\86Ù\87 Ø¯ 'بټÙ\86Ù\88Ú©' Ù¾Ù\87 ØªÙ\88Ú«Ù\87 Ø¯ Ù\8aÙ\88Û\90 Ø¯Ù\88تÙ\86Û\90 Ú©Ø§Ø±Ù\88Ù\84 Ú\86Û\90 Ø¯ Ù\85Ø® Ú©Ù\8aÚ¼Û\90 Ú\85Ù\86Ú\89Û\90 Ú©Û\90 Ø§Ù\88 ØªØ±Ù\84اÙ\86دÛ\90 'د Ø§Ù\86Ú\81Ù\88ر Ú\85رګÙ\86دÙ\88Ù\86Û\90' Ù\88Ù\84رÙ\8aØ\8c Ù\86Ù\88 Ø¯ Ø¯Û\90 Ù\85Ù\88Ø®Û\90 Ù\84پارÙ\87 Ø¯ '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|بټÙ\86Ù\88Ú©|Ú©Ù\8aÚ¼|د Ø§Ù\86Ú\81Ù\88ر Ú\85رګندونې]]</nowiki></code>''' کوډ وکاروۍ.
+* Ø¯ 'Û²Û°Û° Ù¾Û\90کسÙ\84' Ù¾Ù\87 Ú©Ú\86Ù\87 Ø¯ 'بټÙ\86Ù\88Ú©' Ù¾Ù\87 ØªÙ\88Ú¯Ù\87 Ø¯ Ù\8aÙ\88Û\90 Ø¯Ù\88تÙ\86Û\90 Ú©Ø§Ø±Ù\88Ù\84 Ú\86Û\90 Ø¯ Ù\85Ø® Ú©Ù\8aÚ¼Û\90 Ú\85Ù\86Ú\89Û\90 Ú©Û\90 Ø§Ù\88 ØªØ±Ù\84اÙ\86دÛ\90 'د Ø§Ù\86Ú\81Ù\88ر Ú\85رگÙ\86دÙ\88Ù\86Û\90' Ù\88Ù\84رÙ\8aØ\8c Ù\86Ù\88 Ø¯ Ø¯Û\90 Ù\85Ù\88Ø®Û\90 Ù\84پارÙ\87 Ø¯ '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|بټÙ\86Ù\88Ú©|Ú©Ù\8aÚ¼|د Ø§Ù\86Ú\81Ù\88ر Ú\85رگندونې]]</nowiki></code>''' کوډ وکاروۍ.
 * د انځور د ښودلو نه پرته، د دوتنې سره د سيخې تړنې لپاره د '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' کوډ وکاروۍ.",
 'upload-permitted' => 'د پرېښودلو دوتنو ډولونه: $1.',
 'upload-preferred' => 'د غوره دوتنو ډولونه: $1.',
@@ -1324,10 +1323,10 @@ $1',
 'filestatus' => 'د رښتو دريځ:',
 'filesource' => 'سرچينه:',
 'uploadedfiles' => 'پورته شوې دوتنې',
-'ignorewarning' => 'Ú«Ù\88اÚ\9aÙ\86Ù\87 Ø¨Û\90 Ù¾Ø§Ù\85Ù\87 Ú«ڼل او دوتنه خوندي کول',
+'ignorewarning' => 'Ú¯Ù\88اÚ\9aÙ\86Ù\87 Ø¨Û\90 Ù¾Ø§Ù\85Ù\87 Ú¯ڼل او دوتنه خوندي کول',
 'ignorewarnings' => 'هر ډول ګواښونه له پامه غورځول',
 'minlength1' => 'پکار ده چې د دوتنو نومونه لږ تر لږه يو حرف ولري.',
-'illegalfilename' => 'د Ø¯Ù\88تÙ\86Û\90 Ù\86Ù\88Ù\85 "$1" Ù¾Ù\87 Ø¯Ø§Ø³Û\90 ØªÙ\88رÙ\88 Ù\84Ù\8aÚ©Ù\84Û\8c Ø¯Û\8c Ú\86Û\90 Ø¯ Û\8cÙ\88 Ù\85Ø® Ø¯ Ø³Ø±Ù\84Ù\8aÚ© Ù¾Ù\87 ØªÙ\88Ú«ه يې پرېښه نه ده شوې.
+'illegalfilename' => 'د Ø¯Ù\88تÙ\86Û\90 Ù\86Ù\88Ù\85 "$1" Ù¾Ù\87 Ø¯Ø§Ø³Û\90 ØªÙ\88رÙ\88 Ù\84Ù\8aÚ©Ù\84Û\8c Ø¯Û\8c Ú\86Û\90 Ø¯ Û\8cÙ\88 Ù\85Ø® Ø¯ Ø³Ø±Ù\84Ù\8aÚ© Ù¾Ù\87 ØªÙ\88Ú¯ه يې پرېښه نه ده شوې.
 مهرباني وکړۍ د دوتنې نوم مو بدل کړۍ او بيا مو د دوتنې د پورته کولو هڅه وکړۍ.',
 'badfilename' => 'ددغې دوتنې نوم "$1" ته واوړېده.',
 'filetype-badmime' => 'د MIME بڼې "$1" د دوتنو د پورته کولو اجازه نشته.',
@@ -1338,8 +1337,8 @@ $1',
 'illegal-filename' => 'د دوتنې نوم نه دی پرېښل شوی.',
 'unknown-error' => 'يوه ناڅرګنده تېروتنه رامېنځته شوه.',
 'tmp-create-error' => 'لنډمهاله دوتنه جوړېدای نه شي',
-'fileexists' => 'د Ù¾Ø®Ù\88ا Ù\86Ù\87 Ù¾Ø¯Û\90 Ù\86Ù\88Ù\85 Ù\8aÙ\88Ù\87 Ø¯Ù\88تÙ\86Ù\87 Ø´ØªÙ\87Ø\8c Ú©Ù\87 ØªØ§Ø³Ù\88 Ú\89اÚ\89Ù\87 Ù\86Ù\87 Ù\8aاست Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ú©Ù\87 ØªØ§Ø³Ù\88 ØºÙ\88اÚ\93Û\8d Ú\86Û\90 Ø¨Ø¯Ù\84Ù\88Ù\86 Ù¾Ú©Û\90 Ø±Ø§Ù\88Ù\84Û\8dØ\8c Ù\84Ø·Ù\81اÙ\8b <strong>[[:$1]]</strong> Ù\88Ú«ورۍ.
-[[$1|thumb]]',
+'fileexists' => 'د Ù¾Ø®Ù\88ا Ù\86Ù\87 Ù¾Ø¯Û\90 Ù\86Ù\88Ù\85 Ù\8aÙ\88Ù\87 Ø¯Ù\88تÙ\86Ù\87 Ø´ØªÙ\87Ø\8c Ú©Ù\87 ØªØ§Ø³Ù\88 Ú\89اÚ\89Ù\87 Ù\86Ù\87 Ù\8aاست Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ú©Ù\87 ØªØ§Ø³Ù\88 ØºÙ\88اÚ\93Û\8d Ú\86Û\90 Ø¨Ø¯Ù\84Ù\88Ù\86 Ù¾Ú©Û\90 Ø±Ø§Ù\88Ù\84Û\8dØ\8c Ù\84Ø·Ù\81اÙ\8b <strong>[[:$1]]</strong> Ù\88Ú¯ورۍ.
+[[$1|بټنوک]]',
 'fileexists-extension' => 'په همدې نوم يوه بله دوتنه د پخوا نه شته: [[$2|thumb]]
 * د پورته کېدونکې دوتنې نوم: <strong>[[:$1]]</strong>
 * د پخوا نه شته دوتنه: <strong>[[:$2]]</strong>
@@ -1359,7 +1358,7 @@ $1',
 'sourceurl' => 'د URL سرچينه:',
 'destfilename' => 'د موخيزې دوتنې نوم:',
 'upload-maxfilesize' => 'د دوتنې تر ټولو لويه کچه: $1',
-'upload-description' => 'د Ø¯Ù\88تÙ\86Û\90 Ú\85رګندونې',
+'upload-description' => 'د Ø¯Ù\88تÙ\86Û\90 Ú\85رگندونې',
 'upload-options' => 'د پورته کولو خوښنې',
 'watchthisupload' => 'همدا دوتنه کتل',
 'upload-success-subj' => 'دوتنه پورته کېدل په برياليتوب سره ترسره شو',
@@ -1379,7 +1378,7 @@ $1',
 'backend-fail-create' => 'د "$1" په دوتنه کې نور څه و نه ليکل شول.',
 
 # ZipDirectoryReader
-'zip-wrong-format' => 'Ú\81اÙ\86Ú«ړې شوې دوتنه يوه ZIP دوتنه نه وه.',
+'zip-wrong-format' => 'Ú\81اÙ\86Ú¯ړې شوې دوتنه يوه ZIP دوتنه نه وه.',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'لاسرسی رد شو',
@@ -1409,16 +1408,16 @@ $1',
 'listfiles_name' => 'نوم',
 'listfiles_user' => 'کارن',
 'listfiles_size' => 'کچه (بايټونه)',
-'listfiles_description' => 'Ú\85رګندونه',
+'listfiles_description' => 'Ú\85رگندونه',
 'listfiles_count' => 'بڼې',
 
 # File description page
 'file-anchor-link' => 'دوتنه',
 'filehist' => 'د دوتنې پېښليک',
-'filehist-help' => 'په يوې نېټې/يوه وخت وټوکۍ چې د هماغه وخت او نېټې دوتنه چې په هماغه وخت کې څنګه ښکارېده هماغسې درښکاره شي.',
-'filehist-deleteall' => 'Ù¼Ù\88Ù\84 Ú\93Ù\86Ú«ول',
-'filehist-deleteone' => 'Ú\93Ù\86Ú«ول',
-'filehist-revert' => 'Ù¾Ù\87 Ú\85Ù¼ Ú«رځول',
+'filehist-help' => 'په يوې نېټې/يوه وخت وټوکۍ چې د هماغه وخت او نېټې دوتنه چې څنگه ښکارېده هماغسې درښکاره شي.',
+'filehist-deleteall' => 'Ù¼Ù\88Ù\84 Ú\93Ù\86Ú¯ول',
+'filehist-deleteone' => 'Ú\93Ù\86Ú¯ول',
+'filehist-revert' => 'Ù¾Ù\87 Ú\85Ù¼ Ú¯رځول',
 'filehist-current' => 'اوسنی',
 'filehist-datetime' => 'نېټه/وخت',
 'filehist-thumb' => 'بټنوک',
@@ -1444,22 +1443,22 @@ $1',
 
 # File reversion
 'filerevert-comment' => 'سبب:',
-'filerevert-submit' => 'Ù¾Ù\87 Ú\85Ù¼ Ú«رځول',
+'filerevert-submit' => 'Ù¾Ù\87 Ú\85Ù¼ Ú¯رځول',
 
 # File deletion
-'filedelete' => '$1 Ú\93Ù\86Ú«ول',
-'filedelete-legend' => 'دÙ\88تÙ\86Ù\87 Ú\93Ù\86Ú«ول',
-'filedelete-intro' => "تاسÛ\90 Ø¯ '''[[Media:$1|$1]]''' Ø¯Ù\88تÙ\86Û\90 Ø§Ù\88 Ø¯ Ù\88رسرÙ\87 Ù¼Ù\88Ù\84 Ù¾Û\90Ú\9aÙ\84Ù\8aÚ© Ø¯ Ú\93Ù\86Ú«ولو په حال کې ياست.",
+'filedelete' => '$1 Ú\93Ù\86Ú¯ول',
+'filedelete-legend' => 'دÙ\88تÙ\86Ù\87 Ú\93Ù\86Ú¯ول',
+'filedelete-intro' => "تاسÛ\90 Ø¯ '''[[Media:$1|$1]]''' Ø¯Ù\88تÙ\86Û\90 Ø§Ù\88 Ø¯ Ù\88رسرÙ\87 Ù¼Ù\88Ù\84 Ù¾Û\90Ú\9aÙ\84Ù\8aÚ© Ø¯ Ú\93Ù\86Ú¯ولو په حال کې ياست.",
 'filedelete-comment' => 'سبب:',
-'filedelete-submit' => 'Ú\93Ù\86Ú«ول',
-'filedelete-success' => "'''$1''' Ú\93Ù\86Ú« شو.",
+'filedelete-submit' => 'Ú\93Ù\86Ú¯ول',
+'filedelete-success' => "'''$1''' Ú\93Ù\86Ú¯ شو.",
 'filedelete-nofile' => "'''$1''' نشته.",
 'filedelete-otherreason' => 'بل/اضافه سبب:',
 'filedelete-reason-otherlist' => 'بل سبب',
-'filedelete-reason-dropdown' => '*د Ú\93Ù\86Ú«Ù\88Ù\84Ù\88 Ù¼Ù\88Ù\84Ú«ړی سبب
+'filedelete-reason-dropdown' => '*د Ú\93Ù\86Ú¯Ù\88Ù\84Ù\88 Ù¼Ù\88Ù\84Ú¯ړی سبب
 ** د رښتو نه غاړه غړونه
-** Ú©Ù¼ Ù\85Ù¼ Ø¯Ù\88Ù\87 Ú«ونې دوتنه',
-'filedelete-edit-reasonlist' => 'د Ú\93Ù\86Ú«ولو سببونه سمول',
+** Ú©Ù¼ Ù\85Ù¼ Ø¯Ù\88Ù\87 Ú¯ونې دوتنه',
+'filedelete-edit-reasonlist' => 'د Ú\93Ù\86Ú¯ولو سببونه سمول',
 'filedelete-maintenance-title' => 'دوتنه نه شي ړنګېدی',
 
 # MIME search
@@ -1471,7 +1470,7 @@ $1',
 'unwatchedpages' => 'ناکتلي مخونه',
 
 # List redirects
-'listredirects' => 'د Ù\88رګرځېدنو لړليک',
+'listredirects' => 'د Ù\88رگرځېدنو لړليک',
 
 # Unused templates
 'unusedtemplates' => 'ناکارېدلې کينډۍ',
@@ -1482,7 +1481,7 @@ $1',
 'randompage-nopages' => 'په لانديني {{PLURAL:$2|نوم-تشيال|نوم-تشيالونو}} کې هېڅ کوم مخ نشته: $1.',
 
 # Random redirect
-'randomredirect' => 'Ù\86اټاکÙ\84Û\8c Ù\88رګرځېدنه',
+'randomredirect' => 'Ù\86اټاکÙ\84Û\8c Ù\88رگرځېدنه',
 
 # Statistics
 'statistics' => 'شمار',
@@ -1491,9 +1490,9 @@ $1',
 'statistics-header-views' => 'د کتنو شمار',
 'statistics-header-users' => 'د کارنانو شمار',
 'statistics-header-hooks' => 'بل شمار',
-'statistics-articles' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«يز مخونه',
+'statistics-articles' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯يز مخونه',
 'statistics-pages' => 'مخونه',
-'statistics-pages-desc' => 'د Ù\88Ù\8aÚ©Ù\8a Ù¼Ù\88Ù\84 Ù\85Ø®Ù\88Ù\86Ù\87Ø\8c Ø¯ Ø®Ø¨Ø±Ù\88 Ø§ØªØ±Ù\88Ø\8c Ù\85Ø® Ú«Ø±Ú\81Û\90دÙ\86Ù\88Ø\8c Ø§Ù\88 Ù\84ا Ù\86Ù\88رÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ù¾Ù\87 Ú«ډون.',
+'statistics-pages-desc' => 'د Ù\88Ù\8aÚ©Ù\8a Ù¼Ù\88Ù\84 Ù\85Ø®Ù\88Ù\86Ù\87Ø\8c Ø¯ Ø®Ø¨Ø±Ù\88 Ø§ØªØ±Ù\88Ø\8c Ù\85Ø® Ú¯Ø±Ú\81Û\90دÙ\86Ù\88Ø\8c Ø§Ù\88 Ù\84ا Ù\86Ù\88رÙ\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ù¾Ù\87 Ú¯ډون.',
 'statistics-files' => 'پورته شوې دوتنې',
 'statistics-edits' => 'د {{SITENAME}} د جوړېدو راهيسې د مخونو سمون',
 'statistics-edits-average' => 'پر يوه مخ د سمون منځوۍ کچه',
@@ -1506,11 +1505,11 @@ $1',
 
 'pageswithprop-submit' => 'ورځه',
 
-'doubleredirects' => 'دÙ\88Ù\87 Ú\81Ù\84Ù\8a Ù\88رګرځېدنې',
+'doubleredirects' => 'دÙ\88Ù\87 Ú\81Ù\84Ù\8a Ù\88رگرځېدنې',
 
-'brokenredirects' => 'Ù\85اتÛ\90 Ù\88رګرځېدنې',
+'brokenredirects' => 'Ù\85اتÛ\90 Ù\88رگرځېدنې',
 'brokenredirects-edit' => 'سمول',
-'brokenredirects-delete' => 'Ú\93Ù\86Ú«ول',
+'brokenredirects-delete' => 'Ú\93Ù\86Ú¯ول',
 
 'withoutinterwiki' => 'د ژبې د تړنو بې برخې مخونه',
 'withoutinterwiki-summary' => 'لانديني مخونه د نورو ژبو بڼو سره تړنې نه لري.',
@@ -1542,9 +1541,9 @@ $1',
 'wantedfiles' => 'غوښتلې دوتنې',
 'wantedtemplates' => 'غوښتلې کينډۍ',
 'mostlinked' => 'د ډېرو تړنو مخونه',
-'mostlinkedcategories' => 'د Ú«ڼو تړنو وېشنيزې',
+'mostlinkedcategories' => 'د Ú¯ڼو تړنو وېشنيزې',
 'mostlinkedtemplates' => 'د ډېرو تړنو کينډۍ',
-'mostcategories' => 'د Ú«ڼو وېشنيزو مخونه',
+'mostcategories' => 'د Ú¯ڼو وېشنيزو مخونه',
 'mostimages' => 'د ډېرو تړنو انځورونه',
 'mostinterwikis' => 'د ډېرو خپلمنځي تړنو مخونه',
 'mostrevisions' => 'ډېر کتلي مخونه',
@@ -1601,9 +1600,9 @@ $1',
 'allpagesnext' => 'راتلونکي',
 'allpagessubmit' => 'ورځه',
 'allpagesprefix' => 'هغه مخونه ښکاره کړه چې مختاړی يې وي:',
-'allpagesbadtitle' => 'Ù\88رکÚ\93 Ø´Ù\88Û\8c Ø³Ø±Ù\84Ù\8aÚ© Ø³Ù\85 Ù\86Ù\87 Ø¯Û\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ú\98بÙ\88 Ø§Ù\88 Ù\8aا Ø¯ Ø¨Û\90Ù\84ابÛ\90Ù\84Ù\88 Ù\88Ù\8aÚ©Ù\8a Ú«انو مختاړی لري. ستاسو په سرليک کې يو يا څو داسې ابېڅې دي کوم چې په سرليک کې نه شي کارېدلی.',
+'allpagesbadtitle' => 'Ù\88رکÚ\93 Ø´Ù\88Û\8c Ø³Ø±Ù\84Ù\8aÚ© Ø³Ù\85 Ù\86Ù\87 Ø¯Û\8c Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ú\98بÙ\88 Ø§Ù\88 Ù\8aا Ø¯ Ø¨Û\90Ù\84ابÛ\90Ù\84Ù\88 Ù\88Ù\8aÚ©Ù\8a Ú¯انو مختاړی لري. ستاسو په سرليک کې يو يا څو داسې ابېڅې دي کوم چې په سرليک کې نه شي کارېدلی.',
 'allpages-bad-ns' => '{{SITENAME}} د "$1" په نامه هېڅ کوم نوم-تشيال نه لري.',
-'allpages-hide-redirects' => 'Ù\85Ø® Ú«رځونې پټول',
+'allpages-hide-redirects' => 'Ù\85Ø® Ú¯رځونې پټول',
 
 # SpecialCachedPage
 'cachedspecial-refresh-now' => 'تر ټولو تازه کتل.',
@@ -1612,7 +1611,7 @@ $1',
 'categories' => 'وېشنيزې',
 'categoriespagetext' => 'دا لاندينۍ {{PLURAL:$1|وېشنيزه|وېشنيزې}} مخونه يا رسنيزې دوتنې لري.
 دلته [[Special:UnusedCategories|ناکارېدلې وېشنيزې]] نه دي ښکاره شوي.
-[[Special:WantedCategories|غÙ\88Ú\9aتÙ\84Û\90 Ù\88Û\90Ø´Ù\86Ù\8aزÛ\90]] Ù\87Ù\85 Ù\88Ú«ورۍ.',
+[[Special:WantedCategories|غÙ\88Ú\9aتÙ\84Û\90 Ù\88Û\90Ø´Ù\86Ù\8aزÛ\90]] Ù\87Ù\85 Ù\88Ú¯ورۍ.',
 'categoriesfrom' => 'هغه وېشنيزې کتل چې پېلېږي په:',
 'special-categories-sort-count' => 'د شمېر له مخې اوډل',
 'special-categories-sort-abc' => 'د ابېڅو له مخې اوډل',
@@ -1633,7 +1632,7 @@ $1',
 'listusersfrom' => 'هغه کارنان کتل چې نومونه يې پېلېږي په:',
 'listusers-submit' => 'ښکاره کول',
 'listusers-noresult' => 'هېڅ کوم کارن و نه موندل شو.',
-'listusers-blocked' => '(بÙ\86دÙ\8aز Ù\84Ú«ېدلی)',
+'listusers-blocked' => '(بÙ\86دÙ\8aز Ù\84Ú¯ېدلی)',
 
 # Special:ActiveUsers
 'activeusers' => 'د فعالو کارنانو لړليک',
@@ -1650,14 +1649,14 @@ $1',
 'listgrouprights-rights' => 'رښتې',
 'listgrouprights-helppage' => 'Help:د ډلې رښتې',
 'listgrouprights-members' => '(د غړو لړليک)',
-'listgrouprights-addgroup' => '{{PLURAL:$2|Ú\89Ù\84Ù\87\89Ù\84Û\90}} Ù\88رګډول: $1',
+'listgrouprights-addgroup' => '{{PLURAL:$2|Ú\89Ù\84Ù\87\89Ù\84Û\90}} Ù\88رگډول: $1',
 'listgrouprights-removegroup' => '{{PLURAL:$2|ډله|ډلې}} ليري کول: $1',
-'listgrouprights-addgroup-all' => 'Ù¼Ù\88Ù\84Û\90 Ú\89Ù\84Û\90 Ù\88رګډول',
+'listgrouprights-addgroup-all' => 'Ù¼Ù\88Ù\84Û\90 Ú\89Ù\84Û\90 Ù\88رگډول',
 'listgrouprights-removegroup-all' => 'ټولې ډلې ليري کول',
-'listgrouprights-addgroup-self' => 'خپÙ\84 Ú«Ú¼Ù\88Ù\86 Ú©Û\90 Ø¯ {{PLURAL:$2|Ú\89Ù\84Ù\87\89Ù\84Û\90}} Ù\88رګډول: $1',
-'listgrouprights-removegroup-self' => 'خپÙ\84 Ú«ڼون نه د {{PLURAL:$2|ډله|ډلې}} ليري کول: $1',
-'listgrouprights-addgroup-self-all' => 'خپÙ\84 Ú«Ú¼Ù\88Ù\86 Ú©Û\90 Ù¼Ù\88Ù\84Û\90 Ú\89Ù\84Û\90 Ù\88رګډول',
-'listgrouprights-removegroup-self-all' => 'خپÙ\84 Ú«ڼون نه ټولې ډلې ليري کول',
+'listgrouprights-addgroup-self' => 'خپÙ\84 Ú¯Ú¼Ù\88Ù\86 Ú©Û\90 Ø¯ {{PLURAL:$2|Ú\89Ù\84Ù\87\89Ù\84Û\90}} Ù\88رگډول: $1',
+'listgrouprights-removegroup-self' => 'خپÙ\84 Ú¯ڼون نه د {{PLURAL:$2|ډله|ډلې}} ليري کول: $1',
+'listgrouprights-addgroup-self-all' => 'خپÙ\84 Ú¯Ú¼Ù\88Ù\86 Ú©Û\90 Ù¼Ù\88Ù\84Û\90 Ú\89Ù\84Û\90 Ù\88رگډول',
+'listgrouprights-removegroup-self-all' => 'خپÙ\84 Ú¯ڼون نه ټولې ډلې ليري کول',
 
 # Email user
 'mailnologin' => 'هېڅ کومه لېږل شوې پته نشته',
@@ -1698,8 +1697,8 @@ $1',
 'watchlistanontext' => 'د خپل کتنلړ د توکو د سمولو او کتلو لپاره $1 ترسره کړۍ.',
 'watchnologin' => 'غونډال کې نه ياست ننوتي.',
 'watchnologintext' => 'ددې لپاره چې خپل کتنلړ کې بدلون راولی نو تاسو ته پکار ده چې لومړی غونډال کې [[Special:UserLogin|ورننوځۍ]].',
-'addwatch' => 'کتÙ\86Ù\84Ú\93 Ú©Û\90 Ù\88رګډول',
-'addedwatchtext' => 'د "[[:$1]]" Ù¾Ù\87 Ù\86Ù\88Ù\85 Ù\8aÙ\88 Ù\85Ø® Ø³ØªØ§Ø³Û\90 [[Special:Watchlist|کتÙ\86Ù\84Ú\93]] Ú©Û\90 Ù\88رګډ شو.
+'addwatch' => 'کتÙ\86Ù\84Ú\93 Ú©Û\90 Ù\88رگډول',
+'addedwatchtext' => 'د "[[:$1]]" Ù¾Ù\87 Ù\86Ù\88Ù\85 Ù\8aÙ\88 Ù\85Ø® Ø³ØªØ§Ø³Û\90 [[Special:Watchlist|کتÙ\86Ù\84Ú\93]] Ú©Û\90 Ù\88رگډ شو.
 په راتلونکې کې چې په دغه مخ او د دې د خبرواترو مخ کې کوم بدلونونه راځي نو هغه به ستاسې کتنلړ کې ښکاري.',
 'removewatch' => 'له کتنلړ نه غورځول',
 'removedwatchtext' => 'د "[[:$1]]" مخ [[Special:Watchlist|ستاسې کتنلړ]] نه لرې شو.',
@@ -1724,27 +1723,27 @@ $1',
 'enotif_mailer' => 'د {{SITENAME}} خبرتيايي برېښليک',
 'enotif_reset' => 'ټول مخونه کتل شوي نخښه کول',
 'enotif_impersonal_salutation' => '{{SITENAME}} کارن',
-'enotif_subject_deleted' => 'د {{SITENAME}} Ù\85Ø® $1 Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ú\93Ù\86Ú« شوی',
+'enotif_subject_deleted' => 'د {{SITENAME}} Ù\85Ø® $1 Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ú\93Ù\86Ú¯ شوی',
 'enotif_subject_created' => 'د {{SITENAME}} مخ $1 د {{gender:$2|$2}} لخوا جوړ شوی',
 'enotif_subject_moved' => 'د {{SITENAME}} مخ $1 د {{gender:$2|$2}} لخوا لېږدول شوی',
 'enotif_subject_restored' => 'د {{SITENAME}} مخ $1 د {{gender:$2|$2}} لخوا بيازېرمل شوی',
 'enotif_subject_changed' => 'د {{SITENAME}} مخ $1 د {{gender:$2|$2}} لخوا بدل شوی',
-'enotif_body_intro_deleted' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $ Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ú\93Ù\86Ú« Ø´Ù\88Û\8cØ\8c $3 Ù\88Ú«ورۍ.',
-'enotif_body_intro_created' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ø¬Ù\88Ú\93 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú«ورۍ.',
-'enotif_body_intro_moved' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ù\84Û\90Ú\96دÙ\88Ù\84 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú«ورۍ.',
-'enotif_body_intro_restored' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ø¨Ù\8aازÛ\90رÙ\85Ù\84 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú«ورۍ.',
-'enotif_body_intro_changed' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ø¨Ø¯Ù\84 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú«ورۍ.',
-'enotif_lastvisited' => 'د ټولو هغو بدلونونو د کتلو لپاره چې ستاسو د وروستي ځل راتګ نه وروسته پېښې شوي، $1 وګورۍ.',
-'enotif_lastdiff' => 'د Ù\87Ù\85دغÙ\87 Ø¨Ø¯Ù\84Ù\88Ù\86 Ø¯ Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $1 Ù\88Ú«ورۍ.',
+'enotif_body_intro_deleted' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $ Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ú\93Ù\86Ú¯ Ø´Ù\88Û\8cØ\8c $3 Ù\88Ú¯ورۍ.',
+'enotif_body_intro_created' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ø¬Ù\88Ú\93 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú¯ورۍ.',
+'enotif_body_intro_moved' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ù\84Û\90Ú\96دÙ\88Ù\84 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú¯ورۍ.',
+'enotif_body_intro_restored' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ø¨Ù\8aازÛ\90رÙ\85Ù\84 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú¯ورۍ.',
+'enotif_body_intro_changed' => 'د {{SITENAME}} Ù\85Ø® $1 Ù¾Ù\87 $PAGEEDITDATE Ø¯ {{gender:$2|$2}} Ù\84Ø®Ù\88ا Ø¨Ø¯Ù\84 Ø´Ù\88Û\8cØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $3 Ù\88Ú¯ورۍ.',
+'enotif_lastvisited' => 'د ټولو هغو بدلونونو د کتلو لپاره چې ستاسې د وروستي ځل راتگ نه وروسته پېښې شوي، $1 وگورۍ.',
+'enotif_lastdiff' => 'د Ù\87Ù\85دغÙ\87 Ø¨Ø¯Ù\84Ù\88Ù\86 Ø¯ Ú©ØªÙ\84Ù\88 Ù\84پارÙ\87 $1 Ù\88Ú¯ورۍ.',
 'enotif_anon_editor' => 'ورکنومی کارن $1',
 'enotif_body' => 'قدرمن/قدرمنې $WATCHINGUSERNAME,
 
 
-Ù¾Ù\87 $PAGEEDITDATE Ù\86Û\90Ù¼Ù\87Ø\8c Ø¯  $PAGEEDITOR Ù\84Ø®Ù\88ا Ø¯ {{SITENAME}} Ù\85Ø® $PAGETITLE ØªÙ\87 $CHANGEDORCREATEDØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ù\84پارÙ\87 $PAGETITLE_URL Ù\88Ú«ورۍ.
+Ù¾Ù\87 $PAGEEDITDATE Ù\86Û\90Ù¼Ù\87Ø\8c Ø¯  $PAGEEDITOR Ù\84Ø®Ù\88ا Ø¯ {{SITENAME}} Ù\85Ø® $PAGETITLE ØªÙ\87 $CHANGEDORCREATEDØ\8c Ø¯ Ø§Ù\88سÙ\86Û\8d Ø¨Ú¼Û\90 Ù\84پارÙ\87 $PAGETITLE_URL Ù\88Ú¯ورۍ.
 
 $NEWPAGE
 
-د Ø³Ù\85Ù\88Ù\86Ú«ر لنډيز: $PAGESUMMARY $PAGEMINOREDIT
+د Ø³Ù\85Ù\88Ù\86Ú¯ر لنډيز: $PAGESUMMARY $PAGEMINOREDIT
 
 Contact the editor:
 برېښليک: $PAGEEDITOR_EMAIL
@@ -1753,7 +1752,7 @@ Contact the editor:
 د لا نورو بدلونونو په پېښېدو سره به تاسې ته د خبراوي بل برېښليک نه درلېږل کېږي، تر څو چې تاسې د همدې مخ نه کتنه و نه کړۍ.
 تاسې دا هم کولای شی چې په خپل کتنلړ کې د ټولو کتل شويو مخونو د خبراوي بيرغونه بيا له سره پرځای کړۍ.
 
-             Ø³ØªØ§Ø³Û\90 Ù\85Ù\84Ú«ری
+             Ø³ØªØ§Ø³Û\90 Ù\85Ù\84Ú¯ری
 
 د {{SITENAME}} د خبرولو غونډال
 
@@ -1761,39 +1760,39 @@ Contact the editor:
 د خپل کتنلړ د امستنو د بدلون لپاره،
 {{canonicalurl:{{#special:EditWatchlist}}}} نه ليدنه وکړۍ
 
-د Ø®Ù¾Ù\84 Ú©ØªÙ\86Ù\84Ú\93 Ø¯ Ù\85Ø®Ù\88Ù\86Ù\88 Ø¯ Ú\93Ù\86Ú«ولو لپاره،
+د Ø®Ù¾Ù\84 Ú©ØªÙ\86Ù\84Ú\93 Ø¯ Ù\85Ø®Ù\88Ù\86Ù\88 Ø¯ Ú\93Ù\86Ú¯ولو لپاره،
 $UNWATCHURL  نه ليدنه وکړۍ
 
-اÙ\86Ú«ېرنې او نورې مرستې:
+اÙ\86Ú¯ېرنې او نورې مرستې:
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'created' => 'جوړ شو',
 'changed' => 'بدلېدلی',
 
 # Delete
-'deletepage' => 'Ù\85Ø® Ú\93Ù\86Ú«ول',
+'deletepage' => 'Ù\85Ø® Ú\93Ù\86Ú¯ول',
 'confirm' => 'تاييد',
-'excontent' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه دا وه: "$1"',
-'excontentauthor' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه دا وه: "$1" (او يواځينی ونډه وال "[[Special:Contributions/$2|$2]]" وه)',
+'excontent' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه دا وه: "$1"',
+'excontentauthor' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه دا وه: "$1" (او يواځينی ونډه وال "[[Special:Contributions/$2|$2]]" وه)',
 'exblank' => 'مخ تش وه',
-'delete-confirm' => '"$1" Ú\93Ù\86Ú«Ù\88ول',
-'delete-legend' => 'Ú\93Ù\86Ú«ول',
-'historywarning' => "Ú«Ù\88اÚ\9aÙ\86Ù\87:''' ØªØ§Ø³Û\90 Ú\86Û\90 Ø¯ Ú©Ù\88Ù\85 Ù\85Ø® Ø¯ Ú\93Ù\86Ú«ېدو تکل لری، هغه د نژدې $1 {{PLURAL:$1|بڼې|بڼو}} يو پېښليک لري:",
+'delete-confirm' => '"$1" Ú\93Ù\86Ú¯ول',
+'delete-legend' => 'Ú\93Ù\86Ú¯ول',
+'historywarning' => "Ú¯Ù\88اÚ\9aÙ\86Ù\87:''' ØªØ§Ø³Û\90 Ú\86Û\90 Ø¯ Ú©Ù\88Ù\85 Ù\85Ø® Ø¯ Ú\93Ù\86Ú¯ېدو تکل لری، هغه د نژدې $1 {{PLURAL:$1|بڼې|بڼو}} يو پېښليک لري:",
 'confirmdeletetext' => 'تاسې د تل لپار يو مخ يا انځور د هغه ټول پېښليک سره د دغه توکبنسټ نه ړنګوۍ. که چېرته تاسې ددې کړنې په پايله پوه ياست او يا ستاسو همدا کړنه د دې پاڼې د [[{{MediaWiki:Policy-url}}|تګلارې]] سره سمون خوري نو لطفاً د دې تاييد وکړی.',
 'actioncomplete' => 'بشپړه کړنه',
 'actionfailed' => 'کړنه نابريالۍ شوه',
-'deletedtext' => '"$1" Ú\93Ù\86Ú« شوی.
-د Ù\86Ù\88Ù\88 Ú\93Ù\86Ú« Ø´Ù\88Ù\88 Ø³Ù\88اÙ\86Ø­Ù\88 Ù\84پارÙ\87 $2 Ù\88Ú«ورۍ.',
-'dellogpage' => 'د Ú\93Ù\86Ú«ولو يادښت',
-'dellogpagetext' => 'دا Ù\84اÙ\86دÛ\90 Ø¯ Ù\86Ù\88Ù\88 Ú\93Ù\86Ú« شوو کړنو لړليک دی.',
-'deletionlog' => 'د Ú\93Ù\86Ú«ولو يادښت',
+'deletedtext' => '"$1" Ú\93Ù\86Ú¯ شوی.
+د Ù\86Ù\88Ù\88 Ú\93Ù\86Ú¯ Ø´Ù\88Ù\88 Ø³Ù\88اÙ\86Ø­Ù\88 Ù\84پارÙ\87 $2 Ù\88Ú¯ورۍ.',
+'dellogpage' => 'د Ú\93Ù\86Ú¯ولو يادښت',
+'dellogpagetext' => 'دا Ù\84اÙ\86دÛ\90 Ø¯ Ù\86Ù\88Ù\88 Ú\93Ù\86Ú¯ شوو کړنو لړليک دی.',
+'deletionlog' => 'د Ú\93Ù\86Ú¯ولو يادښت',
 'deletecomment' => 'سبب:',
 'deleteotherreason' => 'بل/اضافه سبب:',
 'deletereasonotherlist' => 'بل سبب',
-'deletereason-dropdown' => '*د Ú\93Ù\86Ú«Ù\88Ù\84Ù\88 Ù¼Ù\88Ù\84Ú«ړی سبب
+'deletereason-dropdown' => '*د Ú\93Ù\86Ú¯Ù\88Ù\84Ù\88 Ù¼Ù\88Ù\84Ú¯ړی سبب
 ** د ليکوال غوښتنه
 ** د رښتو تېری
 ** د پوهې سره دښمني',
-'delete-edit-reasonlist' => 'د Ú\93Ù\86Ú«ولو سببونه سمول',
+'delete-edit-reasonlist' => 'د Ú\93Ù\86Ú¯ولو سببونه سمول',
 
 # Rollback
 'rollback_short' => 'په شابېول',
@@ -1811,11 +1810,11 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'protect_expiry_invalid' => 'د پای وخت ناسم دی.',
 'protect_expiry_old' => 'د پای وخت په تېرمهال کې دی.',
 'protect-unchain-permissions' => 'د لا ژغورلو خوښنې پرانيستل',
-'protect-text' => "تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ '''$1''' Ù\85Ø® Ù\84پارÙ\87 Ø¯ Ú\98غÙ\88رÙ\84Ù\88 Ú©Ú\86Ù\87 Ù\87Ù\85دÙ\84تÙ\87 Ù\88Ú«ورۍ او بدلون پکې راولی.",
-'protect-locked-access' => "ستاسÛ\90 Ú«ڼون دا اجازه نه لري چې د پاڼو د ژغورنې په کچه کې بدلون راولي.
+'protect-text' => "تاسÛ\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ '''$1''' Ù\85Ø® Ù\84پارÙ\87 Ø¯ Ú\98غÙ\88رÙ\84Ù\88 Ú©Ú\86Ù\87 Ù\87Ù\85دÙ\84تÙ\87 Ù\88Ú¯ورۍ او بدلون پکې راولی.",
+'protect-locked-access' => "ستاسÛ\90 Ú¯ڼون دا اجازه نه لري چې د پاڼو د ژغورنې په کچه کې بدلون راولي.
 دلته د '''$1''' مخ لپاره اوسني شته امستنې دي:",
-'protect-cascadeon' => 'د Ø§Ù\88سÙ\85Ù\87اÙ\84 Ù\84پارÙ\87 Ù\87Ù\85دا Ù\85Ø® Ú\98غÙ\88رÙ\84 Ø´Ù\88Û\8c Ø¯Ø§ Ú\81Ú©Ù\87 Ú\86Û\90 Ù\87Ù\85دا Ù\85Ø® Ù¾Ù\87 {{PLURAL:$1|Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ù\85Ø®|Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ù\85Ø®Ù\88Ù\86Ù\88}} Ú©Û\90 Ù\88رګډ دی چې {{PLURAL:$1|ځوړاوبيزه ژغورنه يې چارنه ده|ځوړاوبيزې ژغورنې يې چارنې دي}}.
-تاسې د همدې مخ د ژغورنې په کچه کې بدلون راوستلای شی، خو دا به په ځوړاوبيزه ژغورنه اغېزمنه نه کړي.',
+'protect-cascadeon' => 'د Ø§Ù\88سÙ\85Ù\87اÙ\84 Ù\84پارÙ\87 Ù\87Ù\85دا Ù\85Ø® Ú\98غÙ\88رÙ\84 Ø´Ù\88Û\8c Ø¯Ø§ Ú\81Ú©Ù\87 Ú\86Û\90 Ù\87Ù\85دا Ù\85Ø® Ù¾Ù\87 {{PLURAL:$1|Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ù\85Ø®|Ù\84اÙ\86دÙ\8aÙ\86Ù\8a Ù\85Ø®Ù\88Ù\86Ù\88}} Ú©Û\90 Ù\88رگډ دی چې {{PLURAL:$1|ځوړاوبيزه ژغورنه يې چارنه ده|ځوړاوبيزې ژغورنې يې چارنې دي}}.
+تاسې د همدې مخ د ژغورنې په کچه کې بدلون راوستلای شی، خو دا به ځوړاوبيزه ژغورنه اغېزمنه نه کړي.',
 'protect-default' => 'ټول کارنان پرېښودل',
 'protect-fallback' => 'يوازې د "$1" اجازې لرونکي کارنان پرېښودل',
 'protect-level-autoconfirmed' => 'يوازې تاييد شوي کارنان',
@@ -1833,7 +1832,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'protect-dropdown' => '*د ژغورلو عام سببونه
 ** ډېره زياته ورانکاري
 ** ډېره زياته سپام خپرونه
-** Ø¨Û\90 Ú«ټې سمونې او خپرونې
+** Ø¨Û\90 Ú¯ټې سمونې او خپرونې
 ** ډېر لوستونکی مخ',
 'protect-edit-reasonlist' => 'د ژغورنې سببونه سمول',
 'protect-expiry-options' => '1 ساعت:1 hour,1 ورځ:1 day,1 اوونۍ:1 week,2 اوونۍ:2 weeks,1 مياشت:1 month,3 مياشتې:3 months,6 مياشتې:6 months,1 کال:1 year,لامحدوده:infinite',
@@ -1855,9 +1854,9 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'restriction-level-all' => 'هر يو پوړ',
 
 # Undelete
-'undelete' => 'Ú\93Ù\86Ú« شوي مخونه کتل',
-'undeletepage' => 'Ú\93Ù\86Ú« Ø´Ù\88Ù\8a Ù\85Ø®Ù\88Ù\86Ù\87 Ú©ØªÙ\84 Ø§Ù\88 Ø¨Û\90رتÙ\87 پرځای کول',
-'viewdeletedpage' => 'Ú\93Ù\86Ú« شوي مخونه کتل',
+'undelete' => 'Ú\93Ù\86Ú¯ شوي مخونه کتل',
+'undeletepage' => 'Ú\93Ù\86Ú¯ Ø´Ù\88Ù\8a Ù\85Ø®Ù\88Ù\86Ù\87 Ú©ØªÙ\84 Ø§Ù\88 Ø¨Ù\8aا پرځای کول',
+'viewdeletedpage' => 'Ú\93Ù\86Ú¯ شوي مخونه کتل',
 'undeletebtn' => 'بيازېرمل',
 'undeletelink' => 'کتل/بيازېرمل',
 'undeleteviewlink' => 'کتل',
@@ -1865,8 +1864,8 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'undeleteinvert' => 'ټاکنې سرچپه کول',
 'undeletecomment' => 'سبب:',
 'undeletedfiles' => '{{PLURAL:$1|1 دوتنه بيازېرمه شوه|$1 دوتنې بيازېرمه شوې}}',
-'undelete-header' => 'د Ù\88رÙ\88ستÙ\8aÙ\88 Ú\93Ù\86Ú«Ù\88 Ø´Ù\88Ù\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ù\84پارÙ\87 [[Special:Log/delete|د Ú\93Ù\86Ú«Ù\88Ù\84Ù\88 Ù\8aادÚ\9aت]] Ù\88Ú«ورۍ.',
-'undelete-search-box' => 'Ú\93Ù\86Ú« شوي مخونه لټول',
+'undelete-header' => 'د Ù\88رÙ\88ستÙ\8aÙ\88 Ú\93Ù\86Ú¯Ù\88 Ø´Ù\88Ù\88 Ù\85Ø®Ù\88Ù\86Ù\88 Ù\84پارÙ\87 [[Special:Log/delete|د Ú\93Ù\86Ú¯Ù\88Ù\84Ù\88 Ù\8aادÚ\9aت]] Ù\88Ú¯ورۍ.',
+'undelete-search-box' => 'Ú\93Ù\86Ú¯ شوي مخونه لټول',
 'undelete-search-prefix' => 'هغه مخونه ښکاره کړه چې پېلېږي په:',
 'undelete-search-submit' => 'پلټل',
 'undelete-show-file-submit' => 'هو',
@@ -1882,6 +1881,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'contributions-title' => 'د $1 کارن ونډې',
 'mycontris' => 'ونډې',
 'contribsub2' => 'د $1 لپاره ($2)',
+'nocontribs' => 'دې شرطونو سره سم بدلونونه و نه موندل شول.',
 'uctop' => '(اوسنی)',
 'month' => 'له مياشتې د (او پخواني):',
 'year' => 'له کال د (او پخواني):',
@@ -1893,6 +1893,8 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'sp-contributions-uploads' => 'پورته کېدنې',
 'sp-contributions-logs' => 'يادښتونه',
 'sp-contributions-talk' => 'خبرې اترې',
+'sp-contributions-blocked-notice' => 'دم مهال په دې کارن بنديز لگېدلی.
+د بنديز يادښت تازه مالومات په لاندې توگه دي:',
 'sp-contributions-search' => 'د ونډو پلټنه',
 'sp-contributions-username' => 'IP پته يا کارن-نوم:',
 'sp-contributions-toponly' => 'يوازې هغه سمونونه چې تر ټولو تازه بڼې لري ښکاره کول',
@@ -1904,38 +1906,38 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'whatlinkshere-page' => 'مخ:',
 'linkshere' => "دغه لانديني مخونه د '''[[:$1]]''' سره تړنې لري:",
 'nolinkshere' => "د '''[[:$1]]''' سره هېڅ يو مخ هم تړنې نه لري .",
-'isredirect' => 'د Ù\85Ø® Ú«رځونې مخ',
+'isredirect' => 'د Ù\85Ø® Ú¯رځونې مخ',
 'istemplate' => 'ورګډېدنه',
 'isimage' => 'د دوتنې تړنه',
 'whatlinkshere-prev' => '{{PLURAL:$1|پخوانی|پخواني $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|راتلونکی|راتلونکي $1}}',
 'whatlinkshere-links' => '← تړنې',
-'whatlinkshere-hideredirs' => 'Ù\85Ø® Ú«رځونې $1',
+'whatlinkshere-hideredirs' => 'Ù\85Ø® Ú¯رځونې $1',
 'whatlinkshere-hidetrans' => 'پايلې $1',
 'whatlinkshere-hidelinks' => 'تړنې $1',
 'whatlinkshere-hideimages' => 'د دوتنې تړنې $1',
-'whatlinkshere-filters' => 'Ú\86اڼګرونه',
+'whatlinkshere-filters' => 'Ú\86اڼگرونه',
 
 # Block/unblock
-'block' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
+'block' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
 'unblock' => 'کارن له بنديزه وېستل',
-'blockip' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
-'blockip-title' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
-'blockip-legend' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
+'blockip' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
+'blockip-title' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
+'blockip-legend' => 'Ù¾Ù\87 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
 'ipadressorusername' => 'IP پته يا کارن نوم',
 'ipbexpiry' => 'د پای نېټه:',
 'ipbreason' => 'سبب:',
 'ipbreasonotherlist' => 'بل لامل',
-'ipbreason-dropdown' => '*د Ø¨Ù\86دÙ\8aز Ù¼Ù\88Ù\84Ú«ړي سببونه
+'ipbreason-dropdown' => '*د Ø¨Ù\86دÙ\8aز Ù¼Ù\88Ù\84Ú¯ړي سببونه
 ** د ناسمو مالوماتو خپرول
-** Ø¯ Ù\85Ø®Ù\88Ù\86Ù\88 Ø¯ Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«Û\90 Ú\93Ù\86Ú«ول
+** Ø¯ Ù\85Ø®Ù\88Ù\86Ù\88 Ø¯ Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯Û\90 Ú\93Ù\86Ú¯ول
 ** په مخونو کې د باندنيو وېبځايونو بېکاره سپام تړنې ځايول
 ** په مخونو کې بې مانا/چټياټ ځايول
 ** په مخونو کې ناندرۍ راپارېدنې/د تاوتريخوالي خپرېدو ته هڅول
-** Ø¯ Ú«Ú¼ Ø´Ù\85Û\90ر Ú«Ú¼Ù\88Ù\86Ù\88Ù\86Ù\88 Ù\86Ù\87 Ù\86اÙ\88Ú\93Ù\87 Ú«ټه اخيستل
+** Ø¯ Ú¯Ú¼ Ø´Ù\85Û\90ر Ú¯Ú¼Ù\88Ù\86Ù\88Ù\86Ù\88 Ù\86Ù\87 Ù\86اÙ\88Ú\93Ù\87 Ú¯ټه اخيستل
 ** نه مننونکی کارن-نوم کارول',
-'ipbcreateaccount' => 'د Ú«ڼون جوړولو مخنيول',
-'ipbsubmit' => 'Ù¾Ù\87 Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
+'ipbcreateaccount' => 'د Ú¯ڼون جوړولو مخنيول',
+'ipbsubmit' => 'Ù¾Ù\87 Ø¯Û\90 Ú©Ø§Ø±Ù\86 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
 'ipbother' => 'بل وخت:',
 'ipboptions' => '2 ساعتونه:2 hours,1 ورځ:1 day,3 ورځې:3 days,1 اوونۍ:1 week,2 اوونۍ:2 weeks,1 مياشت:1 month,3 مياشتې:3 months,6 مياشتې:6 months,1 کال:1 year,لامحدوده:infinite',
 'ipbotheroption' => 'نور',
@@ -1944,8 +1946,8 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'ipb-confirm' => 'د بنديز تاييد',
 'badipaddress' => 'ناسمه IP پته',
 'blockipsuccesssub' => 'بنديز په برياليتوب سره ولګېده',
-'blockipsuccesstext' => 'Ù¾Ù\87 [[Special:Contributions/$1|$1]] Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی.<br />
-د Ø¨Ù\86دÙ\8aزÙ\88Ù\86Ù\88 Ø¯ Ú\85ارÙ\84Ù\88 Ù\84پارÙ\87 [[Special:BlockList|بÙ\86دÙ\8aز Ù\84Ú\93Ù\84Ù\8aÚ©]] Ù\88Ú«ورۍ.',
+'blockipsuccesstext' => 'Ù¾Ù\87 [[Special:Contributions/$1|$1]] Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی.<br />
+د Ø¨Ù\86دÙ\8aزÙ\88Ù\86Ù\88 Ø¯ Ú\85ارÙ\84Ù\88 Ù\84پارÙ\87 [[Special:BlockList|بÙ\86دÙ\8aز Ù\84Ú\93Ù\84Ù\8aÚ©]] Ù\88Ú¯ورۍ.',
 'ipb-edit-dropdown' => 'د بنديز سببونه سمول',
 'ipb-unblock-addr' => 'له $1 بنديز ليرې کول',
 'ipb-unblock' => 'له يوه کارن-نوم يا IP پتې بنديز ليري کول',
@@ -1955,16 +1957,16 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'ipusubmit' => 'دا بنديز ليرې کول',
 'unblocked' => 'له [[User:$1|$1]] بنديز ليري شو',
 'unblocked-range' => 'له $1 بنديز ليرې شو',
-'blocklist' => 'بÙ\86دÙ\8aز Ù\84Ú«ېدلي کارنان',
-'ipblocklist' => 'بÙ\86دÙ\8aز Ù\84Ú«ېدلي کارنان',
+'blocklist' => 'بÙ\86دÙ\8aز Ù\84Ú¯ېدلي کارنان',
+'ipblocklist' => 'بÙ\86دÙ\8aز Ù\84Ú¯ېدلي کارنان',
 'ipblocklist-legend' => 'يو بنديز شوی کارن موندل',
-'blocklist-userblocks' => 'Ú«ڼون بنديزونه پټول',
+'blocklist-userblocks' => 'Ú¯ڼون بنديزونه پټول',
 'blocklist-tempblocks' => 'لنډمهاله بنديزونه پټول',
 'blocklist-addressblocks' => 'يواځې آی پي بنديزونه پټول',
 'blocklist-timestamp' => 'وخت ټاپه',
 'blocklist-target' => 'موخه',
 'blocklist-expiry' => 'پای نېټه',
-'blocklist-by' => 'بÙ\86دÙ\8aز Ù\84Ú«ونکی پازوال',
+'blocklist-by' => 'بÙ\86دÙ\8aز Ù\84Ú¯ونکی پازوال',
 'blocklist-reason' => 'سبب',
 'ipblocklist-submit' => 'پلټل',
 'ipblocklist-localblock' => 'سيمه ايز بنديز',
@@ -1972,28 +1974,28 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'infiniteblock' => 'نامحدوده',
 'expiringblock' => 'په $1 نېټه، $2 بجو پای ته رسېږي',
 'anononlyblock' => 'يواځې ورکنومی',
-'createaccountblock' => 'Ù¾Ù\87 Ú«Ú¼Ù\88Ù\86 Ø¬Ù\88Ú\93Ù\88Ù\84Ù\88 Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی',
+'createaccountblock' => 'Ù¾Ù\87 Ú¯Ú¼Ù\88Ù\86 Ø¬Ù\88Ú\93Ù\88Ù\84Ù\88 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی',
 'emailblock' => 'پر برېښليک بنديز ولګېد',
 'blocklist-nousertalk' => 'د خبرواترو خپل مخ نه شی سمولای',
 'ipblocklist-empty' => 'د بنديز لړليک تش دی',
-'blocklink' => 'بÙ\86دÙ\8aز Ù\84Ú«ول',
+'blocklink' => 'بÙ\86دÙ\8aز Ù\84Ú¯ول',
 'unblocklink' => 'بنديز لرې کول',
 'change-blocklink' => 'د بنديز بدلون',
 'contribslink' => 'ونډې',
 'emaillink' => 'برېښليک لېږل',
 'autoblocker' => 'په اتوماتيک ډول ستاسو مخنيوی شوی دا ځکه چې ستاسو IP پته وروستی ځل د "[[User:$1|$1]]" له خوا کارېدلې. او د $1 د مخنيوي سبب دا دی: "$2"',
 'blocklogpage' => 'د بنديز يادښت',
-'blocklogentry' => 'Ù¾Ù\87 [[$1]] Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی چې د بنديز د پای وخت يې $2 $3 دی',
+'blocklogentry' => 'Ù¾Ù\87 [[$1]] Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی چې د بنديز د پای وخت يې $2 $3 دی',
 'unblocklogentry' => 'بنديز ليرې شو $1',
 'block-log-flags-anononly' => 'يواځې ورکنومي کارنان',
-'block-log-flags-nocreate' => 'د Ú«ڼون جوړول ناچارن شوی',
+'block-log-flags-nocreate' => 'د Ú¯ڼون جوړول ناچارن شوی',
 'block-log-flags-noemail' => 'ددې برېښليک مخه نيول شوی',
 'block-log-flags-hiddenname' => 'پټ کارن-نوم',
 'ipb_already_blocked' => 'پر "$1" د پخوا نه بنديز دی',
-'ipb-needreblock' => 'پر $1 Ø¯ Ù¾Ø®Ù\88ا Ù\86Ù\87 Ø¨Ù\86دÙ\8aز Ù\84Ú«ېدلی.
+'ipb-needreblock' => 'پر $1 Ø¯ Ù¾Ø®Ù\88ا Ù\86Ù\87 Ø¨Ù\86دÙ\8aز Ù\84Ú¯ېدلی.
 آيا تاسې د امستنو بدلول غواړۍ؟',
 'ipb-otherblocks-header' => '{{PLURAL:$1|بل بنديز|نور بنديزونه}}',
-'blockme' => 'پر Ù\85ا Ø¨Ù\86دÙ\8aز Ù\84Ú«ول',
+'blockme' => 'پر Ù\85ا Ø¨Ù\86دÙ\8aز Ù\84Ú¯ول',
 'proxyblocksuccess' => 'ترسره شو.',
 
 # Developer tools
@@ -2008,34 +2010,34 @@ $UNWATCHURL  نه ليدنه وکړۍ
 # Move page
 'move-page' => '$1 لېږدول',
 'move-page-legend' => 'مخ لېږدول',
-'movepagetext' => "د Ù\84اÙ\86دÙ\8aÙ\86Û\8d Ù\81Ù\88رÙ\85Û\90 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 ØªØ§Ø³Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ù\85Ø® Ù\86Ù\88Ù\85 Ø¨Ø¯Ù\84Ù\88Ù\84Û\8c Ø´Û\8cØ\8c Ú\86Û\90 Ù¾Ù\87 Ù\87Ù\85دÛ\90 ØªÙ\88Ú«ه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.
-د Ù\8aÙ\88Ù\87 Ù\85Ø®Ø\8c Ù¾Ø®Ù\88اÙ\86Û\8c Ù\86Ù\88Ù\85 Ø¨Ù\87 Ø¯ Ù\86Ù\88Ù\8a Ù\86Ù\88Ù\85 Ù\88رګرÚ\81Ù\88Ù\86Ú©Û\8c Ù\85Ø® Ù\88ګرÚ\81Ù\8a Ø§Ù\88 Ù\86Ù\88Ù\8a Ø³Ø±Ù\84Ù\8aÚ© ØªÙ\87 Ø¨Ù\87 Ù\88Ú«رځولی شي.
+'movepagetext' => "د Ù\84اÙ\86دÙ\8aÙ\86Û\8d Ù\81Ù\88رÙ\85Û\90 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 ØªØ§Ø³Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ù\85Ø® Ù\86Ù\88Ù\85 Ø¨Ø¯Ù\84Ù\88Ù\84Û\8c Ø´Û\8cØ\8c Ú\86Û\90 Ù¾Ù\87 Ù\87Ù\85دÛ\90 ØªÙ\88Ú¯ه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.
+د Ù\8aÙ\88Ù\87 Ù\85Ø®Ø\8c Ù¾Ø®Ù\88اÙ\86Û\8c Ù\86Ù\88Ù\85 Ø¨Ù\87 Ø¯ Ù\86Ù\88Ù\8a Ù\86Ù\88Ù\85 Ù\88رگرÚ\81Ù\88Ù\86Ú©Û\8c Ù\85Ø® Ù\88گرÚ\81Ù\8a Ø§Ù\88 Ù\86Ù\88Ù\8a Ø³Ø±Ù\84Ù\8aÚ© ØªÙ\87 Ø¨Ù\87 Ù\88Ú¯رځولی شي.
 هغه تړنې چې په زاړه مخ کې دي په هغو کې به هېڅ کوم بدلون را نه شي;
-[[Special:BrokenRedirects|د Ù\85اتÙ\88 Ù\85Ø® Ú«Ø±Ú\81Ù\88Ù\86Ù\88]] Ù\8aا [[Special:DoubleRedirects|دÙ\88Ù\87 Ú\81Ù\84Ù\8a Ù\85Ø® Ú«Ø±Ú\81Ù\88Ù\86Ù\88]] Ø¯ Ø³ØªÙ\88Ù\86زÙ\88 Ø¯ Ù¾Û\90Ú\9aÛ\90دÙ\88 Ù¾Ù\87 Ø®Ø§Ø·Ø± Ú\81اÙ\86 Ú\89اÚ\89Ù\87 Ú©Ú\93Û\8c Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù\85Ø® Ú«رځونې ماتې يا دوه ځله نه وي.
-دا Ø³ØªØ§Ø³Û\90 Ù¾Ø§Ø²Ù\87 Ø¯Ù\87 Ú\86Û\90 Ú\81اÙ\86 Ù¾Ù\87 Ø¯Û\90 Ù\87Ù\85 Ú\89اÚ\89Ù\85Ù\86 Ú©Ú\93Û\8c Ú\86Û\90 Ø¢Ù\8aا Ù\87غÙ\87 ØªÚ\93Ù\86Û\90 Ú©Ù\88Ù\85 Ú\86Û\90 Ø¯ Ù\8aÙ\88 Ù\85Ø® Ø³Ø±Ù\87 Ù¾Ú©Ø§Ø± Ø¯Ù\8a Ú\86Û\90 Ù\88Ù\8aØ\8c Ù\87Ù\85داسÛ\90 Ù¾Ù\87 Ù¾Ø±Ù\84Ù\87 Ù¾Ø³Û\90 ØªÙ\88Ú«ه پېيلي او خپل موخن ځايونو سره اړونده دي.
+[[Special:BrokenRedirects|د Ù\85اتÙ\88 Ù\85Ø® Ú¯Ø±Ú\81Ù\88Ù\86Ù\88]] Ù\8aا [[Special:DoubleRedirects|دÙ\88Ù\87 Ú\81Ù\84Ù\8a Ù\85Ø® Ú¯Ø±Ú\81Ù\88Ù\86Ù\88]] Ø¯ Ø³ØªÙ\88Ù\86زÙ\88 Ø¯ Ù¾Û\90Ú\9aÛ\90دÙ\88 Ù¾Ù\87 Ø®Ø§Ø·Ø± Ú\81اÙ\86 Ú\89اÚ\89Ù\87 Ú©Ú\93Û\8c Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù\85Ø® Ú¯رځونې ماتې يا دوه ځله نه وي.
+دا Ø³ØªØ§Ø³Û\90 Ù¾Ø§Ø²Ù\87 Ø¯Ù\87 Ú\86Û\90 Ú\81اÙ\86 Ù¾Ù\87 Ø¯Û\90 Ù\87Ù\85 Ú\89اÚ\89Ù\85Ù\86 Ú©Ú\93Û\8c Ú\86Û\90 Ø¢Ù\8aا Ù\87غÙ\87 ØªÚ\93Ù\86Û\90 Ú©Ù\88Ù\85 Ú\86Û\90 Ø¯ Ù\8aÙ\88 Ù\85Ø® Ø³Ø±Ù\87 Ù¾Ú©Ø§Ø± Ø¯Ù\8a Ú\86Û\90 Ù\88Ù\8aØ\8c Ù\87Ù\85داسÛ\90 Ù¾Ù\87 Ù¾Ø±Ù\84Ù\87 Ù¾Ø³Û\90 ØªÙ\88Ú¯ه پېيلي او خپل موخن ځايونو سره اړونده دي.
 
-Ù¾Ù\87 Ù\8aاد Ù\85Ù\88 Ø§Ù\88سÙ\87 Ú\86Û\90 Ù\8aÙ\88 Ù\85Ø® Ø¨Ù\87 '''Ù\87Û\90Ú\85Ú©Ù\84Ù\87''' Ù\88 Ù\86Ù\87 Ù\84Û\90Ú\96دÛ\90Ú\96Ù\8a Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯ Ù¾Ø®Ù\88ا Ù\86Ù\87 Ù¾Ù\87 Ù\87Ù\85اغÙ\87 Ù\86Ù\88Ù\85 Ù\8aÙ\88 Ù\85Ø® Ø´ØªÙ\88Ù\86 Ù\88Ù\84رÙ\8aØ\8c Ø®Ù\88 Ú©Ù\87 Ú\86Û\90رتÙ\87 Ù\8aÙ\88 Ù\85Ø® ØªØ´ Ù\88Ù\87 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ù\8aÙ\88Ù\87 Ù\85Ø® Ú«رځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.
+Ù¾Ù\87 Ù\8aاد Ù\85Ù\88 Ø§Ù\88سÙ\87 Ú\86Û\90 Ù\8aÙ\88 Ù\85Ø® Ø¨Ù\87 '''Ù\87Û\90Ú\85Ú©Ù\84Ù\87''' Ù\88 Ù\86Ù\87 Ù\84Û\90Ú\96دÛ\90Ú\96Ù\8a Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯ Ù¾Ø®Ù\88ا Ù\86Ù\87 Ù¾Ù\87 Ù\87Ù\85اغÙ\87 Ù\86Ù\88Ù\85 Ù\8aÙ\88 Ù\85Ø® Ø´ØªÙ\88Ù\86 Ù\88Ù\84رÙ\8aØ\8c Ø®Ù\88 Ú©Ù\87 Ú\86Û\90رتÙ\87 Ù\8aÙ\88 Ù\85Ø® ØªØ´ Ù\88Ù\87 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ù\8aÙ\88Ù\87 Ù\85Ø® Ú¯رځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.
 
-'''Ú«واښنه!'''
+'''Ú¯واښنه!'''
 يوه نوي نوم ته د مخونو د نوم بدلون کېدای شي چې په نامتو مخونو کې بنسټيزه او نه اټکل کېدونکی بدلونونه رامېنځ ته کړي;
 مخکې له دې نه چې پرمخ ولاړ شی، لطفاُ لومړی خپل ځان په دې ډاډه کړی چې تاسې ددغې کړنې په پايلو ښه پوهېږۍ.",
-'movepagetext-noredirectfixer' => "د Ù\84اÙ\86دÙ\8aÙ\86Û\8d Ù\81Ù\88رÙ\85Û\90 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 ØªØ§Ø³Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ù\85Ø® Ù\86Ù\88Ù\85 Ø¨Ø¯Ù\84Ù\88Ù\84Û\8c Ø´Û\8cØ\8c Ú\86Û\90 Ù¾Ù\87 Ù\87Ù\85دÛ\90 ØªÙ\88Ú«ه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.
-د Ù\8aÙ\88Ù\87 Ù\85Ø®Ø\8c Ù¾Ø®Ù\88اÙ\86Û\8c Ù\86Ù\88Ù\85 Ø¨Ù\87 Ø¯ Ù\86Ù\88Ù\8a Ù\86Ù\88Ù\85 Ù\88رګرÚ\81Ù\88Ù\86Ú©Û\8c Ù\85Ø® Ù\88ګرÚ\81Ù\8a Ø§Ù\88 Ù\86Ù\88Ù\8a Ø³Ø±Ù\84Ù\8aÚ© ØªÙ\87 Ø¨Ù\87 Ù\88Ú«رځولی شي.
+'movepagetext-noredirectfixer' => "د Ù\84اÙ\86دÙ\8aÙ\86Û\8d Ù\81Ù\88رÙ\85Û\90 Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 ØªØ§Ø³Û\90 Ø¯ Ù\8aÙ\88Ù\87 Ù\85Ø® Ù\86Ù\88Ù\85 Ø¨Ø¯Ù\84Ù\88Ù\84Û\8c Ø´Û\8cØ\8c Ú\86Û\90 Ù¾Ù\87 Ù\87Ù\85دÛ\90 ØªÙ\88Ú¯ه به د يوه مخ ټول پېښليک د هغه د نوي نوم سرليک ته ولېږدېږي.
+د Ù\8aÙ\88Ù\87 Ù\85Ø®Ø\8c Ù¾Ø®Ù\88اÙ\86Û\8c Ù\86Ù\88Ù\85 Ø¨Ù\87 Ø¯ Ù\86Ù\88Ù\8a Ù\86Ù\88Ù\85 Ù\88رگرÚ\81Ù\88Ù\86Ú©Û\8c Ù\85Ø® Ù\88گرÚ\81Ù\8a Ø§Ù\88 Ù\86Ù\88Ù\8a Ø³Ø±Ù\84Ù\8aÚ© ØªÙ\87 Ø¨Ù\87 Ù\88Ú¯رځولی شي.
 
-[[Special:BrokenRedirects|د Ù\85اتÙ\88 Ù\85Ø® Ú«Ø±Ú\81Ù\88Ù\86Ù\88]] Ù\8aا [[Special:DoubleRedirects|دÙ\88Ù\87 Ú\81Ù\84Ù\8a Ù\85Ø® Ú«Ø±Ú\81Ù\88Ù\86Ù\88]] Ø¯ Ø³ØªÙ\88Ù\86زÙ\88 Ø¯ Ù¾Û\90Ú\9aÛ\90دÙ\88 Ù¾Ù\87 Ø®Ø§Ø·Ø± Ú\81اÙ\86 Ú\89اÚ\89Ù\87 Ú©Ú\93Û\8c Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù\85Ø® Ú«رځونې ماتې يا دوه ځله نه وي.
-دا Ø³ØªØ§Ø³Û\90 Ù¾Ø§Ø²Ù\87 Ø¯Ù\87 Ú\86Û\90 Ú\81اÙ\86 Ù¾Ù\87 Ø¯Û\90 Ù\87Ù\85 Ú\89اÚ\89Ù\85Ù\86 Ú©Ú\93Û\8c Ú\86Û\90 Ø¢Ù\8aا Ù\87غÙ\87 ØªÚ\93Ù\86Û\90 Ú©Ù\88Ù\85 Ú\86Û\90 Ø¯ Ù\8aÙ\88 Ù\85Ø® Ø³Ø±Ù\87 Ù¾Ú©Ø§Ø± Ø¯Ù\8a Ú\86Û\90 Ù\88Ù\8aØ\8c Ù\87Ù\85داسÛ\90 Ù¾Ù\87 Ù¾Ø±Ù\84Ù\87 Ù¾Ø³Û\90 ØªÙ\88Ú«ه پېيلي او خپل د موخې ځايونو سره اړونده دي که نه.
+[[Special:BrokenRedirects|د Ù\85اتÙ\88 Ù\85Ø® Ú¯Ø±Ú\81Ù\88Ù\86Ù\88]] Ù\8aا [[Special:DoubleRedirects|دÙ\88Ù\87 Ú\81Ù\84Ù\8a Ù\85Ø® Ú¯Ø±Ú\81Ù\88Ù\86Ù\88]] Ø¯ Ø³ØªÙ\88Ù\86زÙ\88 Ø¯ Ù¾Û\90Ú\9aÛ\90دÙ\88 Ù¾Ù\87 Ø®Ø§Ø·Ø± Ú\81اÙ\86 Ú\89اÚ\89Ù\87 Ú©Ú\93Û\8c Ú\86Û\90 Ø³ØªØ§Ø³Û\90 Ù\85Ø® Ú¯رځونې ماتې يا دوه ځله نه وي.
+دا Ø³ØªØ§Ø³Û\90 Ù¾Ø§Ø²Ù\87 Ø¯Ù\87 Ú\86Û\90 Ú\81اÙ\86 Ù¾Ù\87 Ø¯Û\90 Ù\87Ù\85 Ú\89اÚ\89Ù\85Ù\86 Ú©Ú\93Û\8c Ú\86Û\90 Ø¢Ù\8aا Ù\87غÙ\87 ØªÚ\93Ù\86Û\90 Ú©Ù\88Ù\85 Ú\86Û\90 Ø¯ Ù\8aÙ\88 Ù\85Ø® Ø³Ø±Ù\87 Ù¾Ú©Ø§Ø± Ø¯Ù\8a Ú\86Û\90 Ù\88Ù\8aØ\8c Ù\87Ù\85داسÛ\90 Ù¾Ù\87 Ù¾Ø±Ù\84Ù\87 Ù¾Ø³Û\90 ØªÙ\88Ú¯ه پېيلي او خپل د موخې ځايونو سره اړونده دي که نه.
 
-Ù¾Ù\87 Ù\8aاد Ù\85Ù\88 Ø§Ù\88سÙ\87 Ú\86Û\90 Ù\8aÙ\88 Ù\85Ø® Ø¨Ù\87 '''Ù\87Û\90Ú\85Ú©Ù\84Ù\87''' Ù\88 Ù\86Ù\87 Ù\84Û\90Ú\96دÛ\90Ú\96Ù\8a Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯ Ù¾Ø®Ù\88ا Ù\86Ù\87 Ù¾Ù\87 Ù\87Ù\85اغÙ\87 Ù\86Ù\88Ù\85 Ù\8aÙ\88 Ø¨Ù\84 Ù\85Ø® Ø´ØªÙ\88Ù\86 Ù\88Ù\84رÙ\8aØ\8c Ø®Ù\88 Ú©Ù\87 Ú\86Û\90رتÙ\87 Ù\8aÙ\88 Ù\85Ø® ØªØ´ Ù\88Ù\87 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ù\8aÙ\88Ù\87 Ù\85Ø® Ú«رځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.
+Ù¾Ù\87 Ù\8aاد Ù\85Ù\88 Ø§Ù\88سÙ\87 Ú\86Û\90 Ù\8aÙ\88 Ù\85Ø® Ø¨Ù\87 '''Ù\87Û\90Ú\85Ú©Ù\84Ù\87''' Ù\88 Ù\86Ù\87 Ù\84Û\90Ú\96دÛ\90Ú\96Ù\8a Ú©Ù\87 Ú\86Û\90رتÙ\87 Ø¯ Ù¾Ø®Ù\88ا Ù\86Ù\87 Ù¾Ù\87 Ù\87Ù\85اغÙ\87 Ù\86Ù\88Ù\85 Ù\8aÙ\88 Ø¨Ù\84 Ù\85Ø® Ø´ØªÙ\88Ù\86 Ù\88Ù\84رÙ\8aØ\8c Ø®Ù\88 Ú©Ù\87 Ú\86Û\90رتÙ\87 Ù\8aÙ\88 Ù\85Ø® ØªØ´ Ù\88Ù\87 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ù\8aÙ\88Ù\87 Ù\85Ø® Ú¯رځونه چې پېښليک کې يې بدلون نه وي راغلی. نو دا په دې مانا ده چې تاسې کولای شی چې د يو مخ نوم بېرته هماغه پخواني نوم ته بدل کړی چې د پخوا نه يې درلوده، که چېرته تاسې تېرووځۍ نو په داسې حال کې تاسې نه شی کولای چې د يوه مخ پر سر يو څه وليکۍ.
 
-'''Ú«واښنه!'''
+'''Ú¯واښنه!'''
 يوه نوي نوم ته د مخونو د نوم بدلون کېدای شي چې په نامتو مخونو کې بنسټيزه او نه اټکل کېدونکي بدلونونه رامېنځ ته کړي; مخکې له دې نه چې پرمخ ولاړ شی، لطفاُ لومړی خپل ځان په دې ډاډه کړی چې تاسې ددغې کړنې په پايلو ښه پوهېږۍ.",
 'movepagetalktext' => "همدې مخ ته اړونده د خبرواترو مخ هم په اتوماتيک ډول لېږدول کېږي '''خو که چېرته:'''
 *په نوي نوم د پخوا نه د خبرواترو يو مخ شتون ولري، او يا هم
 *تاسې ته لاندې ورکړ شوی څلورڅنډی په نښه شوی وي.
 
\86Ù\88 Ù¾Ù\87 Ù\87غÙ\87 Ù\88خت Ú©Û\90 Ù¾Ú©Ø§Ø± Ø¯Ù\87 Ú\86Û\90 Ø¯ Ø®Ø¨Ø±Ù\88اترÙ\88 Ø¯ Ù\85Ø® Ù\84Û\90Ú\96دÙ\88Ù\86Ù\87 Ø§Ù\88 Ø¯ Ù\86Ù\88Ù\8a Ù\85Ø® Ø³Ø±Ù\87 Ø¯ Ù\8aÙ\88Ú\81اÛ\8c Ú©Ù\88Ù\84Ù\88 Ú©Ú\93Ù\86Ù\87 Ù¾Ù\87 Ù\84اسÙ\8a ØªÙ\88Ú«ه ترسره کړی.",
\86Ù\88 Ù¾Ù\87 Ù\87غÙ\87 Ù\88خت Ú©Û\90 Ù¾Ú©Ø§Ø± Ø¯Ù\87 Ú\86Û\90 Ø¯ Ø®Ø¨Ø±Ù\88اترÙ\88 Ø¯ Ù\85Ø® Ù\84Û\90Ú\96دÙ\88Ù\86Ù\87 Ø§Ù\88 Ø¯ Ù\86Ù\88Ù\8a Ù\85Ø® Ø³Ø±Ù\87 Ø¯ Ù\8aÙ\88Ú\81اÛ\8c Ú©Ù\88Ù\84Ù\88 Ú©Ú\93Ù\86Ù\87 Ù¾Ù\87 Ù\84اسÙ\8a ØªÙ\88Ú¯ه ترسره کړی.",
 'movearticle' => 'مخ لېږدول',
-'moveuserpage-warning' => "'''Ú«واښنه:''' تاسې د يو کارن مخ د لېږدولو په حال کې ياست. لطفاً دا مه هېروۍ چې يوازې همدا مخ به ولېږدول شي او د کارن نوم به ''نه'' بدلېږي.",
+'moveuserpage-warning' => "'''Ú¯واښنه:''' تاسې د يو کارن مخ د لېږدولو په حال کې ياست. لطفاً دا مه هېروۍ چې يوازې همدا مخ به ولېږدول شي او د کارن نوم به ''نه'' بدلېږي.",
 'movenologin' => 'غونډال کې نه ياست ننوتي',
 'movenologintext' => 'ددې لپاره چې يو مخ ولېږدوی، نو تاسې بايد يو ثبت شوی کارن او غونډال کې [[Special:UserLogin|ننوتي]] اوسۍ.',
 'movenotallowed' => 'تاسې د مخونو د لېږدولو پرېښله نلرۍ.',
@@ -2049,7 +2051,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'movepage-moved' => '\'\'\'د "$1" په نامه دوتنه، "$2" ته ولېږدېده\'\'\'',
 'articleexists' => 'په همدې نوم يوه بله پاڼه د پخوا نه شته او يا خو دا نوم چې تاسې ټاکلی سم نه دی. لطفاً يو بل نوم وټاکۍ.',
 'talkexists' => "'''همدا مخ په برياليتوب سره نوي سرليک ته ولېږدېده، خو د خبرواترو مخ يې و نه لېږدول شو دا ځکه چې نوی سرليک له پخوا نه ځانته د خبرواترو يو مخ لري.
\84Ø·Ù\81اÙ\8f Ø¯ Ø®Ø¨Ø±Ù\88اترÙ\88 Ø¯Ø§ Ø¯Ù\88اÚ\93Ù\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ù¾Ù\87 Ù\84اسÙ\8a ØªÙ\88Ú«ه سره يو ځای کړی.'''",
\84Ø·Ù\81اÙ\8b Ø¯ Ø®Ø¨Ø±Ù\88اترÙ\88 Ø¯Ø§ Ø¯Ù\88اÚ\93Ù\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ù¾Ù\87 Ù\84اسÙ\8a ØªÙ\88Ú¯ه سره يو ځای کړی.'''",
 'movedto' => 'ته ولېږدول شو',
 'movetalk' => 'د خبرو اترو اړونده مخ ورسره لېږدول',
 'movelogpage' => 'د لېږدولو يادښت',
@@ -2058,23 +2060,23 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'movesubpagetext' => 'همدا مخ $1 {{PLURAL:$1|څېرمه مخ لري چې لاندې ښودل شوی|څېرمه مخونه لري چې لاندې ښودل شوي}}.',
 'movenosubpage' => 'دا مخ کوم څېرمه مخونه نه لري.',
 'movereason' => 'سبب:',
-'revertmove' => 'Ù¾Ù\87 Ú\85Ù¼ Ú«رځول',
-'delete_and_move' => 'Ú\93Ù\86Ú«ول او لېږدول',
-'delete_and_move_confirm' => 'Ù\87Ù\88, Ø¯Ø§ Ù\85Ø® Ú\93Ù\86Ú« کړه',
+'revertmove' => 'Ù¾Ù\87 Ú\85Ù¼ Ú¯رځول',
+'delete_and_move' => 'Ú\93Ù\86Ú¯ول او لېږدول',
+'delete_and_move_confirm' => 'Ù\87Ù\88, Ø¯Ø§ Ù\85Ø® Ú\93Ù\86Ú¯ کړه',
 'immobile-source-page' => 'دا مخ نه لېږدېدنونکی دی',
 'imageinvalidfilename' => 'د موخنې دوتنې نوم سم نه دی',
-'move-leave-redirect' => 'Ù\8aÙ\88 Ù\88رګرځونکی مخ پر ځای پرېښودل',
+'move-leave-redirect' => 'Ù\8aÙ\88 Ù\88رگرځونکی مخ پر ځای پرېښودل',
 'move-over-sharedrepo' => '== دوتنه شته ==
-د [[:$1]] دوتنه په يوه ګډ زېرمتون کې شته. دې نوم ته د يوې دوتنې لېږدون به د ګډې دوتنې د باطلېدلو سبب شي.',
+د [[:$1]] دوتنه په يو گډ زېرمتون کې شته. دې نوم ته د يوې دوتنې لېږدون به د گډې دوتنې د باطلېدلو سبب شي.',
 
 # Export
 'export' => 'مخونه صادرول',
 'exportall' => 'ټول مخونه صادرول',
 'export-submit' => 'صادرول',
-'export-addcattext' => 'Ù\85Ø®Ù\88Ù\86Ù\88 Ø¯ Ù\88رګډولو وېشنيزه:',
-'export-addcat' => 'Ù\88رګډول',
-'export-addnstext' => 'د Ù\86Ù\88Ù\85-تشÙ\8aاÙ\84 Ù\86Ù\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ù\88رګډول:',
-'export-addns' => 'Ù\88رګډول',
+'export-addcattext' => 'Ù\85Ø®Ù\88Ù\86Ù\88 Ø¯ Ù\88رگډولو وېشنيزه:',
+'export-addcat' => 'Ù\88رگډول',
+'export-addnstext' => 'د Ù\86Ù\88Ù\85-تشÙ\8aاÙ\84 Ù\86Ù\87 Ù\85Ø®Ù\88Ù\86Ù\87 Ù\88رگډول:',
+'export-addns' => 'Ù\88رگډول',
 'export-download' => 'د دوتنې په بڼه خوندي کول',
 'export-templates' => 'کينډۍ نغاړل',
 
@@ -2084,13 +2086,13 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'allmessagesdefault' => 'تلواليزه پيغام متن',
 'allmessagescurrent' => 'اوسنی پيغام متن',
 'allmessagestext' => 'دا د مېډياويکي په نوم-تشيال کې د غونډال د پيغامونو لړليک دی.
-Ú©Ù\87 Ú\86Û\90رتÙ\87 ØªØ§Ø³Û\90 Ø¯ Ù\85Ù\8aÚ\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ù¾Ù\87 Ú\81اÙ\8aتابÙ\87 Ú©Û\90 Ù\88Ù\86Ú\89Û\90 ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Ù\84 ØºÙ\88اÚ\93Û\8d Ù\86Ù\88 Ù\84Ø·Ù\81اÙ\8b [//www.mediawiki.org/wiki/Localisation Ø¯ Ù\88Ù\8aÚ\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ú\81اÙ\8aتابÙ\87] Ø§Ù\88 [//translatewiki.net translatewiki.net] Ù\86ه ليدنه وکړۍ.',
+Ú©Ù\87 Ú\86Û\90رتÙ\87 ØªØ§Ø³Û\90 Ø¯ Ù\85Ù\8aÚ\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ù¾Ù\87 Ú\81اÙ\8aتابÙ\87 Ú©Û\90 Ù\88Ù\86Ú\89Û\90 ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Ù\84 ØºÙ\88اÚ\93Û\8d Ù\86Ù\88 Ù\84Ø·Ù\81اÙ\8b [//www.mediawiki.org/wiki/Localisation Ø¯ Ù\85Ù\8aÚ\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ú\81اÙ\8aتابÙ\87] Ø§Ù\88 [//translatewiki.net translatewiki.net] Ú\85Ø®ه ليدنه وکړۍ.',
 'allmessagesnotsupportedDB' => "'''Special:Allmessages''' ترېنه کار نه اخيستل کېږي ځکه چې '''\$wgUseDatabaseMessages''' مړ دی.",
-'allmessages-filter-legend' => 'Ú\86اڼګر',
+'allmessages-filter-legend' => 'Ú\86اڼگر',
 'allmessages-filter-unmodified' => 'نابدلېدلي',
 'allmessages-filter-all' => 'ټول',
 'allmessages-filter-modified' => 'بدلېدلي',
-'allmessages-prefix' => 'د Ù\85ختاÚ\93Ù\8a Ù¾Ø± Ø¨Ù\86سټ Ø§Ú\93Ù\88Ù\86دÙ\87 Ú\86اڼګر:',
+'allmessages-prefix' => 'د Ù\85ختاÚ\93Ù\8a Ù¾Ø± Ø¨Ù\86سټ Ø§Ú\93Ù\88Ù\86دÙ\87 Ú\86اڼگر:',
 'allmessages-language' => 'ژبه:',
 'allmessages-filter-submit' => 'ورځه',
 
@@ -2125,15 +2127,15 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'tooltip-pt-anonlogin' => 'تاسو ته په غونډال کې د ننوتلو سپارښتنه کوو، که څه هم چې دا يو اړين کار نه دی.',
 'tooltip-pt-logout' => 'وتل',
 'tooltip-ca-talk' => 'د مخ د مېنځپانګې په اړه خبرې اترې',
-'tooltip-ca-edit' => 'تاسÛ\90 Ù\87Ù\85دا Ù\85Ø® Ø³Ù\85Ù\88Ù\84اÛ\8c Ø´Û\8c. Ù\84Ø·Ù\81اÙ\8b Ø¯ Ù\84Ù\8aÚ©Ù\86Û\90 Ø¯ Ø®Ù\88Ù\86دÙ\8a Ú©Ù\88Ù\84Ù\88 Ø¯Ù\85Ø®Ù\87Ø\8c Ø¯ Ù\87Ù\85دÛ\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\85Ø®Ù\84Ù\8aدÙ\86Ù\87 Ù\88Ú«ورۍ.',
+'tooltip-ca-edit' => 'تاسÛ\90 Ù\87Ù\85دا Ù\85Ø® Ø³Ù\85Ù\88Ù\84اÛ\8c Ø´Û\8c. Ù\84Ø·Ù\81اÙ\8b Ø¯ Ù\84Ù\8aÚ©Ù\86Û\90 Ø¯ Ø®Ù\88Ù\86دÙ\8a Ú©Ù\88Ù\84Ù\88 Ø¯Ù\85Ø®Ù\87Ø\8c Ø¯ Ù\87Ù\85دÛ\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\85Ø®Ù\84Ù\8aدÙ\86Ù\87 Ù\88Ú¯ورۍ.',
 'tooltip-ca-addsection' => 'يوه نوې برخه پيلول',
-'tooltip-ca-viewsource' => 'دا Ù\85Ø® Ú\98غÙ\88رÙ\84 Ø´Ù\88Û\8c. ØªØ§Ø³Û\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ Ø¯Û\90 Ù\85Ø® Ø³Ø±Ø¬Ù\8aÙ\86Ù\87 Ù\88Ú«ورۍ.',
+'tooltip-ca-viewsource' => 'دا Ù\85Ø® Ú\98غÙ\88رÙ\84 Ø´Ù\88Û\8c. ØªØ§Ø³Û\90 Ú©Ù\88Ù\84اÛ\8c Ø´Û\8c Ú\86Û\90 Ø¯ Ø¯Û\90 Ù\85Ø® Ø³Ø±Ø¬Ù\8aÙ\86Ù\87 Ù\88Ú¯ورۍ.',
 'tooltip-ca-history' => 'د دې مخ پخوانۍ بڼې',
 'tooltip-ca-protect' => 'دا مخ ژغورل',
 'tooltip-ca-unprotect' => 'د دې مخ ژغورنه بدلول',
-'tooltip-ca-delete' => 'دا Ù\85Ø® Ú\93Ù\86Ú«ول',
+'tooltip-ca-delete' => 'دا Ù\85Ø® Ú\93Ù\86Ú¯ول',
 'tooltip-ca-move' => 'همدا مخ لېږدول',
-'tooltip-ca-watch' => 'دا Ù\85Ø® Ù¾Ù\87 Ø®Ù¾Ù\84 Ú©ØªÙ\86Ù\84Ú\93Ú©Û\90 Ú«ډول',
+'tooltip-ca-watch' => 'دا Ù\85Ø® Ù¾Ù\87 Ø®Ù¾Ù\84 Ú©ØªÙ\86Ù\84Ú\93Ú©Û\90 Ú¯ډول',
 'tooltip-ca-unwatch' => 'همدا مخ خپل کتنلړ نه لرې کول',
 'tooltip-search' => '{{SITENAME}} پلټل',
 'tooltip-search-go' => 'په دې نوم د کټ مټ ورته مخ شتون په صورت کې، هماغه مخ ته ورځه',
@@ -2153,13 +2155,13 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'tooltip-t-contributions' => 'د دې کارن د ونډو لړليک کتل',
 'tooltip-t-emailuser' => 'دې کارن ته يو برېښليک لېږل',
 'tooltip-t-upload' => 'دوتنې پورته کول',
-'tooltip-t-specialpages' => 'د Ù¼Ù\88Ù\84Ù\88 Ú\81اÙ\86Ú«ړو پاڼو لړليک',
+'tooltip-t-specialpages' => 'د Ù¼Ù\88Ù\84Ù\88 Ú\81اÙ\86Ú¯ړو پاڼو لړليک',
 'tooltip-t-print' => 'د دې مخ چاپي بڼه',
 'tooltip-t-permalink' => 'د دې مخ د همدې بڼې تلپاتې تړنه',
-'tooltip-ca-nstab-main' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه کتل',
+'tooltip-ca-nstab-main' => 'د Ù\85Ø® Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه کتل',
 'tooltip-ca-nstab-user' => 'د کارن پاڼه کتل',
 'tooltip-ca-nstab-media' => 'د رسنۍ مخ کتل',
-'tooltip-ca-nstab-special' => 'دا Ù\8aÙ\88 Ú\81اÙ\86Ú«ړی مخ دی، تاسې په دې مخ کې سمون نه شی کولای.',
+'tooltip-ca-nstab-special' => 'دا Ù\8aÙ\88 Ú\81اÙ\86Ú¯ړی مخ دی، تاسې په دې مخ کې سمون نه شی کولای.',
 'tooltip-ca-nstab-project' => 'د پروژې مخ کتل',
 'tooltip-ca-nstab-image' => 'د دوتنې مخ کتل',
 'tooltip-ca-nstab-mediawiki' => 'د غونډال پيغامونه کتل',
@@ -2170,12 +2172,12 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'tooltip-save' => 'ستاسې بدلونونه خوندي کوي',
 'tooltip-preview' => 'ستاسې بدلونونه ښکاره کوي, لطفاً دا کړنه د خوندي کولو دمخه وکاروۍ! [alt-p]',
 'tooltip-diff' => 'دا هغه بدلونونه چې تاسې په متن کې ترسره کړي، ښکاره کوي. [alt-v]',
-'tooltip-compareselectedversions' => 'د Ù\87Ù\85دÛ\90 Ù\85Ø® Ø¯ Ø¯Ù\88Ù\88 Ù¼Ø§Ú©Ù\84 Ø´Ù\88Ù\8aÙ\88 Ø¨Ú¼Ù\88 ØªØ± Ù\85Û\90Ù\86Ú\81 ØªÙ\88Ù¾Ù\8aرÙ\88Ù\86Ù\87 Ù\88Ú«ورۍ.',
-'tooltip-watch' => 'دا Ù\85Ø® Ø³ØªØ§Ø³Û\90 Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ù\88رګډوي [alt-w]',
+'tooltip-compareselectedversions' => 'د Ù\87Ù\85دÛ\90 Ù\85Ø® Ø¯ Ø¯Ù\88Ù\88 Ù¼Ø§Ú©Ù\84 Ø´Ù\88Ù\8aÙ\88 Ø¨Ú¼Ù\88 ØªØ± Ù\85Û\90Ù\86Ú\81 ØªÙ\88Ù¾Ù\8aرÙ\88Ù\86Ù\87 Ù\88Ú¯ورۍ.',
+'tooltip-watch' => 'دا Ù\85Ø® Ø³ØªØ§Ø³Û\90 Ú©ØªÙ\86Ù\84Ú\93 Ú©Û\90 Ù\88رگډوي [alt-w]',
 'tooltip-upload' => 'د پورته کولو پيل',
 'tooltip-rollback' => 'په همدې مخ کې "په شابېول" د وروستني ونډوال سمون (سمونونه) په يوه کلېک په څټ ورګرځوي.',
-'tooltip-undo' => '"Ù\86اکÚ\93" Ù\87Ù\85دا Ø³Ù\85Ù\88Ù\86 Ù¾Ø± Ø´Ø§ Ú«رځوي او د سمون کړکۍ د مخکتنې په بڼه پرانيزي.
-دا Ú©Ú\93Ù\86Ù\87 Ø¯ Ù\84Ù\86Ú\89Ù\8aز Ù¾Ù\87 Ø¨Ø±Ø®Ù\87 Ú©Û\90 Ø¯ Ø³Ù\85Ù\88Ù\86Ù\88Ù\86Ù\88 Ø¯ Ø³Ø¨Ø¨Ù\88Ù\86Ù\88 Ø¯ Ù\88رګډولو آسانتيا برابروي.',
+'tooltip-undo' => '"Ù\86اکÚ\93" Ù\87Ù\85دا Ø³Ù\85Ù\88Ù\86 Ù¾Ø± Ø´Ø§ Ú¯رځوي او د سمون کړکۍ د مخکتنې په بڼه پرانيزي.
+دا Ú©Ú\93Ù\86Ù\87 Ø¯ Ù\84Ù\86Ú\89Ù\8aز Ù¾Ù\87 Ø¨Ø±Ø®Ù\87 Ú©Û\90 Ø¯ Ø³Ù\85Ù\88Ù\86Ù\88Ù\86Ù\88 Ø¯ Ø³Ø¨Ø¨Ù\88Ù\86Ù\88 Ø¯ Ù\88رگډولو آسانتيا برابروي.',
 'tooltip-preferences-save' => 'غوره توبونه خوندي کول',
 'tooltip-summary' => 'يو لنډ لنډيز کښل',
 
@@ -2210,15 +2212,15 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'pageinfo-robot-noindex' => 'ليکلړوړ نه',
 'pageinfo-views' => 'د کتنو شمېر',
 'pageinfo-watchers' => 'د مخ د کتونکو شمېر',
-'pageinfo-redirects-name' => 'دې مخ ته ورګرځونې',
+'pageinfo-redirects-name' => 'دې مخ ته د ورگرځونو شمېر',
 'pageinfo-subpages-name' => 'دې مخ ته څېرمه مخونه',
 'pageinfo-firstuser' => 'مخ جوړونکی',
 'pageinfo-firsttime' => 'د مخ جوړېدنې نېټه',
-'pageinfo-lastuser' => 'Ù\88رÙ\88ستÙ\86Û\8c Ø³Ù\85Ù\88Ù\86Ú«ر',
+'pageinfo-lastuser' => 'Ù\88رÙ\88ستÙ\86Û\8c Ø³Ù\85Ù\88Ù\86Ú¯ر',
 'pageinfo-edits' => 'د ټولو سمونونو شمېر',
 'pageinfo-toolboxlink' => 'د مخ مالومات',
 'pageinfo-redirectsto-info' => 'مالومات',
-'pageinfo-contentpage' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«يز مخ کې شمېرل شوی',
+'pageinfo-contentpage' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯يز مخ کې شمېرل شوی',
 'pageinfo-contentpage-yes' => 'هو',
 'pageinfo-protect-cascading-yes' => 'هو',
 'pageinfo-category-files' => 'د دوتنو شمېر',
@@ -2235,8 +2237,8 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'markedaspatrolled' => 'دا مخ څارل شوی په نخښه کول',
 
 # Image deletion
-'filedeleteerror-short' => 'د Ø¯Ù\88تÙ\86Û\90 Ø¯ Ú\93Ù\86Ú«ولو ستونزه: $1',
-'filedeleteerror-long' => 'د Ø¯Ù\88تÙ\86Û\90 Ù¾Ù\87 Ú\93Ù\86Ú«ولو کې تېروتنې پېښې شوې:
+'filedeleteerror-short' => 'د Ø¯Ù\88تÙ\86Û\90 Ø¯ Ú\93Ù\86Ú¯ولو ستونزه: $1',
+'filedeleteerror-long' => 'د Ø¯Ù\88تÙ\86Û\90 Ù¾Ù\87 Ú\93Ù\86Ú¯ولو کې تېروتنې پېښې شوې:
 
 $1',
 
@@ -2258,8 +2260,8 @@ $1',
 # Special:NewFiles
 'newimages' => 'د نوو دوتنو انځورتون',
 'imagelisttext' => "دلته لاندې د '''$1''' {{PLURAL:$1|دوتنه|دوتنې}} يو لړليک دی چې اوډل شوي $2.",
-'newimages-summary' => 'Ù\87Ù\85دا Ú\81اÙ\86Ú«ړی مخ، وروستنۍ پورته شوې دوتنې ښکاره کوي.',
-'newimages-legend' => 'Ú\86اڼګر',
+'newimages-summary' => 'Ù\87Ù\85دا Ú\81اÙ\86Ú¯ړی مخ، وروستنۍ پورته شوې دوتنې ښکاره کوي.',
+'newimages-legend' => 'Ú\86اڼگر',
 'newimages-label' => 'د دوتنې نوم (يا د دې برخه):',
 'showhidebots' => '($1 روباټ)',
 'noimages' => 'د کتلو لپاره څه نشته.',
@@ -2279,20 +2281,20 @@ $1',
 'just-now' => 'همدا اوس',
 
 # Bad image list
-'bad_image_list' => 'بڼÙ\87 Ù\8aÛ\90 Ù¾Ù\87 Ù\84اÙ\86دÛ\90 ØªÙ\88Ú«ه ده:
+'bad_image_list' => 'بڼÙ\87 Ù\8aÛ\90 Ù¾Ù\87 Ù\84اÙ\86دÛ\90 ØªÙ\88Ú¯ه ده:
 
 يواځې د لړليک توکي (هغه کرښې چې پېلېږي پر *) په پام کې نيول شوي.
 بايد چې په يوه کرښه کې لومړنۍ تړنه د يوې خرابې دوتنې سره وي.
-Ù¾Ù\87 Ù\8aÙ\88Û\90 Ú©Ø±Ú\9aÛ\90 Ø¨Ø§Ù\86دÛ\90 Ù\87ر Ú\89Ù\88Ù\84 Ù\88رÙ\88ستÛ\8d ØªÚ\93Ù\86Û\90 Ø¨Ù\87 Ø¯ Ø§Ø³ØªØ«Ù\86ا Ù¾Ù\87 ØªÙ\88Ú«Ù\87 Ù\88Ú«Ú¼Ù\84اÛ\8c Ø´Ù\8aØ\8c Ø¯ Ø³Ø§Ø±Ù\8a Ù¾Ù\87 ØªÙ\88Ú«ه هغه مخونو کې چې يوه دوتنه پر کرښه پرته وي.',
+Ù¾Ù\87 Ù\8aÙ\88Û\90 Ú©Ø±Ú\9aÛ\90 Ø¨Ø§Ù\86دÛ\90 Ù\87ر Ú\89Ù\88Ù\84 Ù\88رÙ\88ستÛ\8d ØªÚ\93Ù\86Û\90 Ø¨Ù\87 Ø¯ Ø§Ø³ØªØ«Ù\86ا Ù¾Ù\87 ØªÙ\88Ú¯Ù\87 Ù\88Ú¯Ú¼Ù\84اÛ\8c Ø´Ù\8aØ\8c Ø¯ Ø³Ø§Ø±Ù\8a Ù¾Ù\87 ØªÙ\88Ú¯ه هغه مخونو کې چې يوه دوتنه پر کرښه پرته وي.',
 
 # Metadata
 'metadata' => 'مېټاډاټا',
-'metadata-help' => 'Ù\87Ù\85دا Ø¯Ù\88تÙ\86Ù\87 Ù\86Ù\88ر Ø§Ø¶Ø§Ù\81Ù\87 Ù\85اÙ\84Ù\88Ù\85ات Ù\87Ù\85 Ù\84رÙ\8aØ\8c Ú\86Û\90 Ú©Û\90داÛ\8c Ø´Ù\8a Ø³ØªØ§Ø³Û\90 Ø¯ Ú«Ú¼Ù\8aاÙ\84Ù\8aزÛ\90 Ú©Ø§Ù\85رÛ\90 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ú\81Ù\8aرÚ\85ار Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 Ø¯ Ú«ڼيالېدنې په وخت کې ورسره مل شوي.
-Ú©Ù\87 Ù\87Ù\85دا Ø¯Ù\88تÙ\86Ù\87 Ø¯ Ø®Ù¾Ù\84 Ø¢Ø±Ù\86Ù\8a Ø¯Ø±Ù\8aÚ\81 Ú\85Ø®Ù\87 Ø¨Ø¯Ù\84Ù\87 Ø´Ù\88Û\90 Ù\88Ù\8a Ù\86Ù\88 Ú\81Ù\8aÙ\86Û\90 ØªÙ\81صÙ\8aÙ\84Ù\88Ù\86Ù\87 Ø¨Ù\87 Ù¾Ù\87 Ø¨Ø¯Ù\84 Ø´Ù\88Ù\8a Ø¯Ù\88تÙ\86Ù\87 Ú©Û\90 Ù¾Ù\87 Ø¨Ø´Ù¾Ú\93Ù\87 ØªÙ\88Ú«ه نه وي.',
+'metadata-help' => 'Ù\87Ù\85دا Ø¯Ù\88تÙ\86Ù\87 Ù\86Ù\88ر Ø§Ø¶Ø§Ù\81Ù\87 Ù\85اÙ\84Ù\88Ù\85ات Ù\87Ù\85 Ù\84رÙ\8aØ\8c Ú\86Û\90 Ú©Û\90داÛ\8c Ø´Ù\8a Ø³ØªØ§Ø³Û\90 Ø¯ Ú¯Ú¼Ù\8aاÙ\84Ù\8aزÛ\90 Ú©Ø§Ù\85رÛ\90 Ø§Ù\88 Ù\8aا Ù\87Ù\85 Ø¯ Ú\81Ù\8aرÚ\85ار Ù¾Ù\87 Ú©Ø§Ø±Ù\88Ù\84Ù\88 Ø³Ø±Ù\87 Ø¯ Ú¯ڼيالېدنې په وخت کې ورسره مل شوي.
+Ú©Ù\87 Ù\87Ù\85دا Ø¯Ù\88تÙ\86Ù\87 Ø¯ Ø®Ù¾Ù\84 Ø¢Ø±Ù\86Ù\8a Ø¯Ø±Ù\8aÚ\81 Ú\85Ø®Ù\87 Ø¨Ø¯Ù\84Ù\87 Ø´Ù\88Û\90 Ù\88Ù\8a Ù\86Ù\88 Ú\81Ù\8aÙ\86Û\90 ØªÙ\81صÙ\8aÙ\84Ù\88Ù\86Ù\87 Ø¨Ù\87 Ù¾Ù\87 Ø¨Ø¯Ù\84 Ø´Ù\88Ù\8a Ø¯Ù\88تÙ\86Ù\87 Ú©Û\90 Ù¾Ù\87 Ø¨Ø´Ù¾Ú\93Ù\87 ØªÙ\88Ú¯ه نه وي.',
 'metadata-expand' => 'غځېدلی تفصيل ښکاره کړی',
 'metadata-collapse' => 'غځېدلی تفصيل پټ کړی',
-'metadata-fields' => 'د Ø§Ù\86Ú\81Ù\88ر Ù\85Û\90ټاÚ\89اټا Ú\89ګرÙ\88Ù\86Ù\87 Ú\86Û\90 Ù\84Ú\93Ù\84Ù\8aÚ© Ù\8aÛ\90 Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ù¾Ù\8aغاÙ\85 Ú©Û\90 Ù¾Ù\87 Ù\84اÙ\86دÛ\90 ØªÙ\88Ú«Ù\87 Ø±Ø§ØºÙ\84Û\8c Ø¯ Ø§Ù\86Ú\81Ù\88ر Ù\85Ø® Ù¾Ù\87 Ú\9aکارÛ\90دÙ\86Ù\87 Ú©Û\90 Ø¨Ù\87 Ù\87غÙ\87 Ù\88خت Ù\88رګډ شي کله چې د مېټاډاټا لښتيال غځېږي.
\86Ù\88ر Ú\85Ù\87 Ø¨Ù\87 Ù¾Ù\87 ØªÙ\84Ù\88اÙ\84Ù\8aزÙ\87 ØªÙ\88Ú«ه پټ پاتې وي.
+'metadata-fields' => 'د Ø§Ù\86Ú\81Ù\88ر Ù\85Û\90ټاÚ\89اټا Ú\89گرÙ\88Ù\86Ù\87 Ú\86Û\90 Ù\84Ú\93Ù\84Ù\8aÚ© Ù\8aÛ\90 Ù¾Ù\87 Ù\87Ù\85دÛ\90 Ù¾Ù\8aغاÙ\85 Ú©Û\90 Ù¾Ù\87 Ù\84اÙ\86دÛ\90 ØªÙ\88Ú¯Ù\87 Ø±Ø§ØºÙ\84Û\8c Ø¯ Ø§Ù\86Ú\81Ù\88ر Ù\85Ø® Ù¾Ù\87 Ú\9aکارÛ\90دÙ\86Ù\87 Ú©Û\90 Ø¨Ù\87 Ù\87غÙ\87 Ù\88خت Ù\88رگډ شي کله چې د مېټاډاټا لښتيال غځېږي.
\86Ù\88ر Ú\85Ù\87 Ø¨Ù\87 Ù¾Ù\87 ØªÙ\84Ù\88اÙ\84Ù\8aزÙ\87 ØªÙ\88Ú¯ه پټ پاتې وي.
 * make
 * model
 * datetimeoriginal
@@ -2317,7 +2319,7 @@ $1',
 'exif-software' => 'کارېدلې ساوترۍ',
 'exif-artist' => 'ليکوال',
 'exif-copyright' => 'د رښتو خاوند',
-'exif-colorspace' => 'رÙ\86Ú« تشيال',
+'exif-colorspace' => 'رÙ\86Ú¯ تشيال',
 'exif-pixelydimension' => 'د انځور سور',
 'exif-pixelxdimension' => 'د انځور جګوالی',
 'exif-usercomment' => 'د کارن تبصرې',
@@ -2329,7 +2331,7 @@ $1',
 'exif-focallength' => 'د عدسيې کانوني واټن',
 'exif-flashenergy' => 'د فلش انرژي',
 'exif-filesource' => 'د دوتنې سرچينه',
-'exif-whitebalance' => 'د Ø³Ù¾Ù\8aÙ\86 Ø±Ù\86Ú« توازن',
+'exif-whitebalance' => 'د Ø³Ù¾Ù\8aÙ\86 Ø±Ù\86Ú¯ توازن',
 'exif-gpsaltituderef' => 'د لوړوالي سرچينه',
 'exif-gpsaltitude' => 'لوړوالی',
 'exif-gpsspeedref' => 'د سرعت يوون',
@@ -2365,7 +2367,7 @@ $1',
 'exif-giffilecomment' => 'د GIF دوتنې تبصره',
 
 'exif-copyrighted-true' => 'په رښتو سمبال',
-'exif-copyrighted-false' => 'ټولګړی شپول',
+'exif-copyrighted-false' => 'د خپراوي د رښتو دريځ نه دی ټاکل شوی',
 
 'exif-unknowndate' => 'نامالومه نېټه',
 
@@ -2476,7 +2478,7 @@ $1',
 
 # External editor support
 'edit-externally' => 'د باندنيو پروګرامونو په کارولو سره دا دوتنه سمول',
-'edit-externally-help' => 'د Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 [//www.mediawiki.org/wiki/Manual:External_editors Ø¯ Ø§Ù\85ستÙ\86Ù\88 Ù\84ارÚ\9aÙ\88Ù\88Ù\86Û\90] Ù\88Ú«ورۍ.',
+'edit-externally-help' => 'د Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 [//www.mediawiki.org/wiki/Manual:External_editors Ø¯ Ø§Ù\85ستÙ\86Ù\88 Ù\84ارÚ\9aÙ\88Ù\88Ù\86Û\90] Ù\88Ú¯ورۍ.',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'ټول',
@@ -2496,13 +2498,13 @@ $1',
 'confirmemail_error' => 'ستاسې د برېښليک پتې د تاييد په خوندي کولو کې يوه ستونزه رامېنڅ ته شوه.',
 'confirmemail_subject' => 'د {{SITENAME}} د برېښليک پتې تاييد',
 'confirmemail_body' => 'يو چا او يا هم کيدای شي چې تاسې پخپله، د $1 IP پتې نه،
-د "$2" Ù¾Ù\87 Ù\86اÙ\85Ù\87 Ù\8aÙ\88 Ú«ڼون په همدې بريښليک پتې د {{SITENAME}} په وېبځي کې ثبت کړی.
+د "$2" Ù¾Ù\87 Ù\86اÙ\85Ù\87 Ù\8aÙ\88 Ú¯ڼون په همدې بريښليک پتې د {{SITENAME}} په وېبځي کې ثبت کړی.
 
-دا Ú\86Û\90 Ù\85Ù\88Ú\96 Ø¯ Ø¯Û\90 Ù¾Ø®Ù\84Û\8c Ù\88Ú©Ú\93Ù\88 Ú\86Û\90 Ø¢Ù\8aا Ù\87Ù\85دا Ú«ڼون په رښتيا ستاسې دی او د دې لپاره چې د همدې برېښليک لپاره په {{SITENAME}} وېبځي کې کړنې فعاله کړو، نو پخپل کتنمل کې لاندينۍ تړنه پرانيزۍ:
+دا Ú\86Û\90 Ù\85Ù\88Ú\96 Ø¯ Ø¯Û\90 Ù¾Ø®Ù\84Û\8c Ù\88Ú©Ú\93Ù\88 Ú\86Û\90 Ø¢Ù\8aا Ù\87Ù\85دا Ú¯ڼون په رښتيا ستاسې دی او د دې لپاره چې د همدې برېښليک لپاره په {{SITENAME}} وېبځي کې کړنې فعاله کړو، نو پخپل کتنمل کې لاندينۍ تړنه پرانيزۍ:
 
 $3
 
-Ú©Ù\87 Ú\86Û\90رتÙ\87 ØªØ§Ø³Û\90 Ù\87Ù\85دا Ú«Ú¼Ù\88Ù\86 *Ù\86Ù\87 Ù\88Ù\8a Ø«Ø¨Øª Ú©Ú\93Û\8c\8c Ù\86Ù\88 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÛ\90 Ø¯ Ù¾Ø®Ù\84Ù\8a Ø¯ Ù\84غÙ\88Ù\87 Ú©Ù\88لو لپاره همدا لاندې تړنه وڅارۍ:
+Ú©Ù\87 Ú\86Û\90رتÙ\87 ØªØ§Ø³Û\90 Ù\87Ù\85دا Ú¯Ú¼Ù\88Ù\86 *Ù\86Ù\87 Ù\88Ù\8a Ø«Ø¨Øª Ú©Ú\93Û\8c\8c Ù\86Ù\88 Ø¯ Ø¨Ø±Û\90Ú\9aÙ\84Ù\8aÚ© Ù¾ØªÛ\90 Ø¯ Ù¾Ø®Ù\84Ù\8a Ø¯ Ù\86اگارلو لپاره همدا لاندې تړنه وڅارۍ:
 
 $5
 
@@ -2546,7 +2548,7 @@ $5
 'table_pager_empty' => 'بې پايلو',
 
 # Auto-summaries
-'autosumm-blank' => 'د مخ مېنځپانګه ليرې شوه',
+'autosumm-blank' => 'مخ تش شو',
 'autosumm-replace' => "دا مخ د '$1' پرځای راوستل",
 'autoredircomment' => '[[$1]] ته وګرځولی شو',
 'autosumm-new' => 'د "$1" تورو مخ جوړ شو',
@@ -2577,7 +2579,7 @@ $5
 'watchlistedit-raw-titles' => 'سرليکونه:',
 'watchlistedit-raw-submit' => 'کتنلړ اوسمهاله کول',
 'watchlistedit-raw-done' => 'ستاسې کتنلړ اوسمهاله شو.',
-'watchlistedit-raw-added' => '{{PLURAL:$1|1 Ø³Ø±Ù\84Ù\8aÚ© Ù\88رګÚ\89 Ø´Ù\88|$1 Ø³Ø±Ù\84Ù\8aÚ©Ù\88Ù\86Ù\87 Ù\88رګډ شوه}}:',
+'watchlistedit-raw-added' => '{{PLURAL:$1|1 Ø³Ø±Ù\84Ù\8aÚ© Ù\88رگÚ\89 Ø´Ù\88|$1 Ø³Ø±Ù\84Ù\8aÚ©Ù\88Ù\86Ù\87 Ù\88رگډ شوه}}:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 سرليک ليرې شو|$1 سرليکونه ليري شوه}}:',
 
 # Watchlist editing tools
@@ -2625,30 +2627,30 @@ $5
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|خبرې اترې]])',
 
 # Core parser functions
-'duplicate-defaultsort' => '\'\'\'Ú«واښنه:\'\'\'د "$2" تلواليزه اوډون تڼۍ تر دې پخوا ټاکلې تلواليزه اوډون تڼۍ "$1" پر ځای چارنه کېږي.',
+'duplicate-defaultsort' => '\'\'\'Ú¯واښنه:\'\'\'د "$2" تلواليزه اوډون تڼۍ تر دې پخوا ټاکلې تلواليزه اوډون تڼۍ "$1" پر ځای چارنه کېږي.',
 
 # Special:Version
 'version' => 'بڼه',
-'version-extensions' => 'Ù\84Ú«ېدلي شاتاړي',
-'version-specialpages' => 'Ú\81اÙ\86Ú«ړي مخونه',
+'version-extensions' => 'Ù\84Ú¯ېدلي شاتاړي',
+'version-specialpages' => 'Ú\81اÙ\86Ú¯ړي مخونه',
 'version-skins' => 'پوښۍ',
 'version-other' => 'بل',
 'version-version' => '(بڼه $1)',
 'version-license' => 'منښتليک',
 'version-poweredby-credits' => "دا ويکي د '''[//www.mediawiki.org/ مېډياويکي]''' په سېک چلېږي، ټولې رښتې خوندي دي © 2001-$1 $2.",
 'version-poweredby-others' => 'نور',
-'version-license-info' => 'Ù\85Û\90Ú\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ù\8aÙ\88 Ù\88Ú\93Ù\8aا Ø³Ø§Ù\88ترÛ\8c Ø¯Û\8cØ\9b ØªØ§Ø³Û\90 Ù\8aÛ\90 Ù¾Ù\87 Ú\89اÚ\89Ù\87 Ø²Ú\93Ù\87 Ø¯ GNU Ø¯ Ù¼Ù\88Ù\84Ú«ړو کارېدنو د منښتليک چې د وړيا ساوتريو د بنسټ له مخې خپور شوی، خپرولی او/يا بدلولی شی؛ د منښتليک ۲ بڼه او يا (ستاسې د خوښې) هر يوه وروستۍ بڼه.
+'version-license-info' => 'Ù\85Û\90Ú\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ù\8aÙ\88 Ù\88Ú\93Ù\8aا Ø³Ø§Ù\88ترÛ\8c Ø¯Û\8cØ\9b ØªØ§Ø³Û\90 Ù\8aÛ\90 Ù¾Ù\87 Ú\89اÚ\89Ù\87 Ø²Ú\93Ù\87 Ø¯ GNU Ø¯ Ù¼Ù\88Ù\84Ú¯ړو کارېدنو د منښتليک چې د وړيا ساوتريو د بنسټ له مخې خپور شوی، خپرولی او/يا بدلولی شی؛ د منښتليک ۲ بڼه او يا (ستاسې د خوښې) هر يوه وروستۍ بڼه.
 
\85Û\90Ú\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ø¯ Ú\9aÙ\87 Ú©Ø§Ø±Û\90دÙ\86Û\90 Ù¾Ù\87 Ù\86Ù\8aت Ø®Ù¾Ù\88ر Ø´Ù\88Û\8cØ\8c Ø®Ù\88 Ø¯ Ø¶Ù\85Ù\86Ù\8a Ø³Ù\88داګرÙ\8aز Ø§Ù\88 Ù\8aا Ø¯ Ú©Ù\88Ù\85 Ú\81اÙ\86Ú«Ú\93Ù\8a Ú©Ø§Ø± Ø¯ Ø¶Ù\85اÙ\86ت Ù\86Ù\87 Ù¾Ø±ØªÙ\87. Ø¯ Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ GNU Ø¯ Ù¼Ù\88Ù\84Ú«Ú\93Ù\88 Ú©Ø§Ø±Û\90دÙ\86Ù\88 Ù\85Ù\86Ú\9aتÙ\84Ù\8aÚ© Ù\88Ú«ورۍ.
\85Û\90Ú\89Ù\8aاÙ\88Ù\8aÚ©Ù\8a Ø¯ Ú\9aÙ\87 Ú©Ø§Ø±Û\90دÙ\86Û\90 Ù¾Ù\87 Ù\86Ù\8aت Ø®Ù¾Ù\88ر Ø´Ù\88Û\8cØ\8c Ø®Ù\88 Ø¯ Ø¶Ù\85Ù\86Ù\8a Ø³Ù\88داگرÙ\8aز Ø§Ù\88 Ù\8aا Ø¯ Ú©Ù\88Ù\85 Ú\81اÙ\86Ú¯Ú\93Ù\8a Ú©Ø§Ø± Ø¯ Ø¶Ù\85اÙ\86ت Ù\86Ù\87 Ù¾Ø±ØªÙ\87. Ø¯ Ù\86Ù\88رÙ\88 Ù\85اÙ\84Ù\88Ù\85اتÙ\88 Ù\84پارÙ\87 Ø¯ GNU Ø¯ Ù¼Ù\88Ù\84Ú¯Ú\93Ù\88 Ú©Ø§Ø±Û\90دÙ\86Ù\88 Ù\85Ù\86Ú\9aتÙ\84Ù\8aÚ© Ù\88Ú¯ورۍ.
 
-تاسÛ\90 Ø¨Ø§Ù\8aد Ø¯ Ø¯Û\90 Ù¾Ø±Ù\88Ú«رام سره يو [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU General Public License] ترلاسه کړی وي؛ که داسې نه وي، نو د وړيا ساوتريو بنسټ، Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ته يو ليک وليکۍ، او يا يې [//www.gnu.org/licenses/old-licenses/gpl-2.0.html پرليکه ولولۍ].',
+تاسÛ\90 Ø¨Ø§Ù\8aد Ø¯ Ø¯Û\90 Ù¾Ø±Ù\88Ú¯رام سره يو [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU General Public License] ترلاسه کړی وي؛ که داسې نه وي، نو د وړيا ساوتريو بنسټ، Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ته يو ليک وليکۍ، او يا يې [//www.gnu.org/licenses/old-licenses/gpl-2.0.html پرليکه ولولۍ].',
 'version-software' => 'نصب شوی ساوتری',
 'version-software-product' => 'اېبره',
 'version-software-version' => 'بڼه',
 
 # Special:FileDuplicateSearch
-'fileduplicatesearch' => 'د Ø¯Ù\88Ù\87 Ú«ونو دوتنو پلټنه',
-'fileduplicatesearch-legend' => 'د Ø¯Ù\88Ù\87 Ú«ونو دوتنو پلټنه',
+'fileduplicatesearch' => 'د Ø¯Ù\88Ù\87 Ú¯ونو دوتنو پلټنه',
+'fileduplicatesearch-legend' => 'د Ø¯Ù\88Ù\87 Ú¯ونو دوتنو پلټنه',
 'fileduplicatesearch-filename' => 'د دوتنې نوم:',
 'fileduplicatesearch-submit' => 'پلټل',
 'fileduplicatesearch-info' => '<span dir="ltr">$1 × $2</span> پېکسل<br />د دوتنې کچه: $3<br />ډول MIME: $4',
@@ -2656,14 +2658,14 @@ $5
 'fileduplicatesearch-noresults' => 'د "$1" په نوم دوتنه و نه موندل شوه.',
 
 # Special:SpecialPages
-'specialpages' => 'Ú\81اÙ\86Ú«ړي مخونه',
+'specialpages' => 'Ú\81اÙ\86Ú¯ړي مخونه',
 'specialpages-note' => '----
-* Ù\86Ù\88رÙ\85اÙ\84Ù\87 Ú\81اÙ\86Ú«ړي مخونه.
-* <strong class="mw-specialpagerestricted">Ù\85حدÙ\88دÙ\87 Ú\81اÙ\86Ú«ړي مخونه.</strong>
-* <span class="mw-specialpagecached">راÙ\86Ù\8aÙ\88Ù\84Ù\8a Ú\81اÙ\86Ú«ړي مخونه (کېدای شي منسوخ شوی وي).</span>',
+* Ù\86Ù\88رÙ\85اÙ\84Ù\87 Ú\81اÙ\86Ú¯ړي مخونه.
+* <strong class="mw-specialpagerestricted">Ù\85حدÙ\88دÙ\87 Ú\81اÙ\86Ú¯ړي مخونه.</strong>
+* <span class="mw-specialpagecached">راÙ\86Ù\8aÙ\88Ù\84Ù\8a Ú\81اÙ\86Ú¯ړي مخونه (کېدای شي منسوخ شوی وي).</span>',
 'specialpages-group-maintenance' => 'د څارنې راپورونه',
-'specialpages-group-other' => 'Ù\86Ù\88ر Ú\81اÙ\86Ú«ړي مخونه',
-'specialpages-group-login' => 'Ù\86Ù\86Ù\88تÙ\84 / Ú«ڼون جوړول',
+'specialpages-group-other' => 'Ù\86Ù\88ر Ú\81اÙ\86Ú¯ړي مخونه',
+'specialpages-group-login' => 'Ù\86Ù\86Ù\88تÙ\84 / Ú¯ڼون جوړول',
 'specialpages-group-changes' => 'وروستي بدلونونه او يادښتونه',
 'specialpages-group-media' => 'د رسنۍ راپورونه او پورته کېدنې',
 'specialpages-group-users' => 'کارنان او رښتې',
@@ -2677,20 +2679,20 @@ $5
 'intentionallyblankpage' => 'همدا مخ په لوی لاس تش پرېښودل شوی دی',
 
 # External image whitelist
-'external_image_whitelist' => ' #دا Ú©Ø±Ú\9aÙ\87 Ú\86Û\90 Ú\85Ù\86Ú«ه ده، همداسې پرېږدۍ<pre>
-#Ù\84اÙ\86دÛ\90 Ø¯ Ù\85Ù\86ظÙ\85Ù\88 Ø§ØµØ·Ù\84احګانو ټوټې (يوازې هغه برخه چې د // په مېنځ کې ليکلې) ځای پر ځای کړی
+'external_image_whitelist' => ' #دا Ú©Ø±Ú\9aÙ\87 Ú\86Û\90 Ú\85Ù\86Ú¯ه ده، همداسې پرېږدۍ<pre>
+#Ù\84اÙ\86دÛ\90 Ø¯ Ù\85Ù\86ظÙ\85Ù\88 Ø§ØµØ·Ù\84احگانو ټوټې (يوازې هغه برخه چې د // په مېنځ کې ليکلې) ځای پر ځای کړی
 #دا به د باندنيو انځورونو د يو آر اېل (hotlinked) سره مطابقه شي 
-#Ù\87غÙ\87 Ú\85Ù\87 Ú\86Û\90 Ù\85طابÙ\82ت Ù\84رÙ\8a Ù\87غÙ\87 Ø¨Ù\87 Ø¯ Ø§Ù\86Ú\81Ù\88رÙ\88Ù\86Ù\88 Ù¾Ù\87 ØªÙ\88Ú«ه ښکاره شي، کوم چې مطابقت نلري نو يوازې د انځور تړنه به ښکاره کېږي
-#Ù\87غÙ\87 Ú©Ø±Ú\9aÛ\90 Ú\86Û\90 Ù¾Ù\87 # Ù¾Ù\8aÙ\84 Ú©Û\90Ú\96Ù\8a Ø¯ ØªØ¨ØµØ±Ù\88 Ù¾Ù\87 ØªÙ\88Ú«ه په نظر کې نيول کېږي
+#Ù\87غÙ\87 Ú\85Ù\87 Ú\86Û\90 Ù\85طابÙ\82ت Ù\84رÙ\8a Ù\87غÙ\87 Ø¨Ù\87 Ø¯ Ø§Ù\86Ú\81Ù\88رÙ\88Ù\86Ù\88 Ù¾Ù\87 ØªÙ\88Ú¯ه ښکاره شي، کوم چې مطابقت نلري نو يوازې د انځور تړنه به ښکاره کېږي
+#Ù\87غÙ\87 Ú©Ø±Ú\9aÛ\90 Ú\86Û\90 Ù¾Ù\87 # Ù¾Ù\8aÙ\84 Ú©Û\90Ú\96Ù\8a Ø¯ ØªØ¨ØµØ±Ù\88 Ù¾Ù\87 ØªÙ\88Ú¯ه په نظر کې نيول کېږي
 #دا کرښې د غټو تورو او وړو تورو سره حساسې نه دي
 
-#Ù¼Ù\88Ù\84Û\90 regex Ù¼Ù\88Ù¼Û\90 Ø¯ Ø¯ØºÛ\90 Ú©Ø±Ú\9aÛ\90 Ù\86Ù\87 Ù¾Ù\88رتÙ\87 Ú\81اÛ\8c Ù¾Ø± Ú\81اÛ\8c Ú©Ú\93Û\8c. Ø¯Ø§ Ú©Ø±Ú\9aÙ\87 Ú\86Û\90 Ú\85Ù\86Ú«ه ده، همداسې يې پرېږدۍ</pre>',
+#Ù¼Ù\88Ù\84Û\90 regex Ù¼Ù\88Ù¼Û\90 Ø¯ Ø¯ØºÛ\90 Ú©Ø±Ú\9aÛ\90 Ù\86Ù\87 Ù¾Ù\88رتÙ\87 Ú\81اÛ\8c Ù¾Ø± Ú\81اÛ\8c Ú©Ú\93Û\8c. Ø¯Ø§ Ú©Ø±Ú\9aÙ\87 Ú\86Û\90 Ú\85Ù\86Ú¯ه ده، همداسې يې پرېږدۍ</pre>',
 
 # Special:Tags
-'tag-filter' => '[[Special:Tags|Ù\86Ú\9aÙ\84Ù\86]] Ú\86اڼګر:',
-'tag-filter-submit' => 'Ú\86اڼګر',
+'tag-filter' => '[[Special:Tags|Ù\86Ú\9aÙ\84Ù\86]] Ú\86اڼگر:',
+'tag-filter-submit' => 'Ú\86اڼگر',
 'tags-display-header' => 'د بدلون په لړليکونو کې ښکارېدنه',
-'tags-description-header' => 'د Ù\85اÙ\86ا Ø¨Ø´Ù¾Ú\93Ù\87 Ú\85رګندونه',
+'tags-description-header' => 'د Ù\85اÙ\86ا Ø¨Ø´Ù¾Ú\93Ù\87 Ú\85رگندونه',
 'tags-edit' => 'سمول',
 'tags-hitcount' => '$1 {{PLURAL:$1|بدلون|بدلونونه}}',
 
@@ -2705,17 +2707,16 @@ $5
 
 # Database error messages
 'dberr-header' => 'دا ويکي يوه ستونزه لري',
-'dberr-problems' => 'اوبخښۍ!
-دم مهال دا وېبپاڼه د تخنيکي ستونزو سره مخامخ شوې.',
-'dberr-usegoogle' => 'تاسې کولای شی چې هم مهاله د ګووګل له لخوا هم د پلټنې هڅه وکړۍ.',
+'dberr-problems' => 'اوبخښۍ! دم مهال دا وېبپاڼه د تخنيکي ستونزو سره مخامخ شوې.',
+'dberr-usegoogle' => 'تاسې کولای شی چې هم مهاله د گووگل له لخوا هم د پلټنې هڅه وکړۍ.',
 
 # HTML forms
 'htmlform-invalid-input' => 'ستاسې ځينې ورکړېينې ستونزې لري',
-'htmlform-select-badoption' => 'Ú\85Ù\87 Ú\86Û\90 ØªØ§Ø³Û\90 Ú\81اÙ\86Ú«ړي کړل هغه د منلو وړ خوښنه نه ده.',
-'htmlform-int-invalid' => 'Ú©Ù\88Ù\85 Ú\85Ù\87 Ú\86Û\90 ØªØ§Ø³Ù\88 Ú\81اÙ\86Ú«ړي کړي هغه يوه سمه شمېره نه ده.',
-'htmlform-float-invalid' => 'Ú©Ù\88Ù\85 Ú\85Ù\87 Ú\86Û\90 ØªØ§Ø³Ù\88 Ú\81اÙ\86Ú«ړي کړي هغه يوه شمېره نه ده.',
-'htmlform-int-toolow' => 'Ú©Ù\88Ù\85 Ø§Ø±Ø²Ú\9aت Ú\86Û\90 ØªØ§Ø³Û\90 Ú\81اÙ\86Ú«ړی کړی هغه تر $1 لږ دی',
-'htmlform-int-toohigh' => 'Ú©Ù\88Ù\85 Ø§Ø±Ø²Ú\9aت Ú\86Û\90 ØªØ§Ø³Û\90 Ú\81اÙ\86Ú«ړی کړی هغه تر $1 ډېر  دی',
+'htmlform-select-badoption' => 'Ú\85Ù\87 Ú\86Û\90 ØªØ§Ø³Û\90 Ú\81اÙ\86Ú¯ړي کړل هغه د منلو وړ خوښنه نه ده.',
+'htmlform-int-invalid' => 'Ú©Ù\88Ù\85 Ú\85Ù\87 Ú\86Û\90 ØªØ§Ø³Ù\88 Ú\81اÙ\86Ú¯ړي کړي هغه يوه سمه شمېره نه ده.',
+'htmlform-float-invalid' => 'Ú©Ù\88Ù\85 Ú\85Ù\87 Ú\86Û\90 ØªØ§Ø³Ù\88 Ú\81اÙ\86Ú¯ړي کړي هغه يوه شمېره نه ده.',
+'htmlform-int-toolow' => 'Ú©Ù\88Ù\85 Ø§Ø±Ø²Ú\9aت Ú\86Û\90 ØªØ§Ø³Û\90 Ú\81اÙ\86Ú¯ړی کړی هغه تر $1 لږ دی',
+'htmlform-int-toohigh' => 'Ú©Ù\88Ù\85 Ø§Ø±Ø²Ú\9aت Ú\86Û\90 ØªØ§Ø³Û\90 Ú\81اÙ\86Ú¯ړی کړی هغه تر $1 ډېر  دی',
 'htmlform-required' => 'دې ارزښت ته اړتيا ده',
 'htmlform-submit' => 'سپارل',
 'htmlform-reset' => 'بدلونونه ناکړل',
@@ -2724,21 +2725,21 @@ $5
 'htmlform-yes' => 'هو',
 
 # New logging system
-'logentry-delete-delete' => '$1 Ø¯ $3 Ù\85Ø® {{GENDER:$2|Ú\93Ù\86Ú« کړ}}',
-'revdelete-content-hid' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه پټېدلې',
+'logentry-delete-delete' => '$1 Ø¯ $3 Ù\85Ø® {{GENDER:$2|Ú\93Ù\86Ú¯ کړ}}',
+'revdelete-content-hid' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه پټېدلې',
 'revdelete-uname-hid' => 'کارن نوم پټ شوی',
-'revdelete-content-unhid' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú«ه ښکاره شوی',
+'revdelete-content-unhid' => 'Ù\85Û\90Ù\86Ú\81پاÙ\86Ú¯ه ښکاره شوی',
 'revdelete-uname-unhid' => 'ښکاره کارن-نوم',
 'logentry-move-move' => '$1 د $3 مخ $4 ته {{GENDER:$2|ولېږداوه}}',
-'logentry-newusers-newusers' => 'د $1 Ú©Ø§Ø±Ù\86 Ú«ڼون {{GENDER:$2|جوړ شو}}',
-'logentry-newusers-create' => 'د $1 Ú©Ø§Ø±Ù\86 Ú«ڼون {{GENDER:$2|جوړ شو}}',
-'logentry-newusers-autocreate' => 'د $1 Ú«ڼون په اتوماتيک ډول {{GENDER:$2|جوړ شو}}',
+'logentry-newusers-newusers' => 'د $1 Ú©Ø§Ø±Ù\86 Ú¯ڼون {{GENDER:$2|جوړ شو}}',
+'logentry-newusers-create' => 'د $1 Ú©Ø§Ø±Ù\86 Ú¯ڼون {{GENDER:$2|جوړ شو}}',
+'logentry-newusers-autocreate' => 'د $1 Ú¯ڼون په اتوماتيک ډول {{GENDER:$2|جوړ شو}}',
 'rightsnone' => '(هېڅ)',
 
 # Feedback
 'feedback-subject' => 'سکالو:',
 'feedback-message' => 'پيغام:',
-'feedback-cancel' => 'Ù\86اګارل',
+'feedback-cancel' => 'Ù\86اگارل',
 'feedback-close' => 'ترسره شو',
 
 # Search suggestions
@@ -2754,7 +2755,7 @@ $5
 'api-error-mustbeloggedin' => 'د دوتنو د پورته کولو لپاره بايد تاسې غونډال کې ننوتلی اوسۍ.',
 'api-error-unclassified' => 'يوه ناڅرګنده تېروتنه رامېنځته شوه.',
 'api-error-unknown-code' => 'ناڅرګنده تېروتنه: "$1"',
-'api-error-unknown-warning' => 'Ù\86اÚ\85رګÙ\86دÙ\87 Ú«واښنه: "$1".',
+'api-error-unknown-warning' => 'Ù\86اÚ\85رگÙ\86دÙ\87 Ú¯واښنه: "$1".',
 'api-error-unknownerror' => 'ناڅرګنده تېروتنه: "$1".',
 
 # Durations
index 2043e04..98598f3 100644 (file)
@@ -326,7 +326,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Esconder edições patrulhadas nas mudanças recentes',
 'tog-newpageshidepatrolled' => 'Esconder páginas patrulhadas na lista de páginas novas',
 'tog-extendwatchlist' => 'Listagem expandida de todas as mudanças às páginas vigiadas, não apenas das mais recentes',
-'tog-usenewrc' => 'Agrupar alterações por página nas mudanças recentes e páginas vigiadas (requer JavaScript)',
+'tog-usenewrc' => 'Agrupar alterações por página nas mudanças recentes e páginas vigiadas',
 'tog-numberheadings' => 'Auto-numerar cabeçalhos',
 'tog-showtoolbar' => 'Mostrar barra de edição (JavaScript)',
 'tog-editondblclick' => 'Editar páginas quando houver um clique duplo (JavaScript)',
@@ -367,7 +367,7 @@ $messages = array(
 
 'underline-always' => 'Sempre',
 'underline-never' => 'Nunca',
-'underline-default' => 'Aspeto ou padrão do browser',
+'underline-default' => 'Usar opção padrão do tema ou do browser',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Fonte de edição:',
@@ -1758,7 +1758,7 @@ Esta informação será pública.',
 'rc_categories_any' => 'Qualquer',
 'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} após mudança',
 'newsectionsummary' => '/* $1 */ nova seção',
-'rc-enhanced-expand' => 'Mostrar detalhes (requer JavaScript)',
+'rc-enhanced-expand' => 'Mostrar detalhes',
 'rc-enhanced-hide' => 'Esconder detalhes',
 'rc-old-title' => 'originalmente criado como "$1"',
 
@@ -2532,7 +2532,7 @@ alguém editou ou já reverteu a página.
 A última edição foi de [[User:$3|$3]] ([[User talk:$3|discussão]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "O resumo da edição era: \"''\$1''\".",
 'revertpage' => 'Foram revertidas as edições de [[Special:Contributions/$2|$2]] ([[User talk:$2|disc]]) para a última versão por [[User:$1|$1]]',
-'revertpage-nouser' => 'Revertidas as edições de um usuário ocultado para a última revisão por [[User:$1|$1]]',
+'revertpage-nouser' => 'Revertidas as edições de um usuário ocultado para a última revisão {{GENDER:$1|pelo|pela|por}} [[User:$1|$1]]',
 'rollback-success' => 'Foram revertidas as edições de $1, com o conteúdo passando a estar como na última edição de $2.',
 
 # Edit tokens
index db3565d..1a72451 100644 (file)
@@ -658,6 +658,10 @@ Uma lista de páginas especiais válidas poderá ser encontrada em [[Special:Spe
 # General errors
 'error' => 'Erro',
 'databaseerror' => 'Erro no banco de dados',
+'databaseerror-text' => 'Houve um erro na consulta ao banco de dados.
+Isto pode indicar um bug no software.',
+'databaseerror-textcl' => 'Houve um erro na consulta ao banco de dados.',
+'databaseerror-query' => 'Consulta: $1',
 'databaseerror-function' => 'Função: $1',
 'databaseerror-error' => 'Erro: $1',
 'laggedslavemode' => 'Aviso: a página poderá não conter atualizações recentes.',
@@ -1727,8 +1731,8 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'action-block' => 'impedir que este usuário edite',
 'action-protect' => 'alterar os níveis de proteção desta página',
 'action-rollback' => 'reverter rapidamente as edições do último usuário que editou uma página em particular',
-'action-import' => 'importar esta página a partir de outro wiki',
-'action-importupload' => 'importar esta página através do carregamento de um arquivo',
+'action-import' => 'importar páginas a partir de outra wiki',
+'action-importupload' => 'importar páginas de um arquivo carregado',
 'action-patrol' => 'marcar as edições de outros usuários como patrulhadas',
 'action-autopatrol' => 'ter suas edições marcadas como patrulhadas',
 'action-unwatchedpages' => 'ver a lista de páginas não-vigiadas',
@@ -2273,6 +2277,7 @@ Entradas <del>riscadas</del> foram resolvidas.',
 'listusers' => 'Lista de usuários',
 'listusers-editsonly' => 'Mostrar apenas usuários com edições',
 'listusers-creationsort' => 'Ordenar por data de criação',
+'listusers-desc' => 'Listar em ordem decrescente',
 'usereditcount' => '$1 {{PLURAL:$1|edição|edições}}',
 'usercreated' => '{{GENDER:$3|Criado|Criada}} em $1 às $2',
 'newpages' => 'Páginas novas',
@@ -2559,7 +2564,7 @@ alguém já editou ou reverteu a página.
 A última edição da página foi feita por [[User:$3|$3]] ([[User talk:$3|discussão]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "O sumário de edição era: \"''\$1''\".",
 'revertpage' => 'Foram revertidas as edições de [[Special:Contributions/$2|$2]] ([[User talk:$2|disc]]) para a última versão por [[User:$1|$1]]',
-'revertpage-nouser' => 'Revertidas as edições por um usuário oculto para a última revisão por [[User:$1|$1]]',
+'revertpage-nouser' => 'Revertidas as edições de um usuário oculto para a última revisão de {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Foram revertidas as edições de $1, com o conteúdo passando a estar como na última edição de $2.',
 
 # Edit tokens
@@ -4063,6 +4068,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'dberr-problems' => 'Desculpe! Este sítio está passando por dificuldades técnicas.',
 'dberr-again' => 'Experimente esperar alguns minutos e atualizar.',
 'dberr-info' => '(Não foi possível contactar o servidor de base de dados: $1)',
+'dberr-info-hidden' => '(Não foi possível contatar o banco de dados do servidor)',
 'dberr-usegoogle' => 'Você pode tentar pesquisar no Google entretanto.',
 'dberr-outofdate' => 'Note que os seus índices relativos ao nosso conteúdo podem estar desatualizados.',
 'dberr-cachederror' => 'A seguinte página é uma cópia em cache da página pedida e pode não ser atual.',
@@ -4204,7 +4210,10 @@ Caso contrário, você poderá usar o formulário simplificado a seguir. Seu com
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|segundo|segundos}}',
 'limitreport-walltime' => 'Tempo de uso real',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|segundo|segundos}}',
-'limitreport-postexpandincludesize-value' => '$1/$2 bytes',
+'limitreport-ppvisitednodes' => 'Número de nós visitados pelo pré-processador',
+'limitreport-ppgeneratednodes' => 'Número de nós gerados pelo pré-processador',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
 'limitreport-expansiondepth' => 'Máxima profundidade de expansão',
 
 );
index 304d9d3..59a7c3e 100644 (file)
@@ -1861,12 +1861,12 @@ See also:
 * {{msg-mw|Nocreatetext}}
 * {{msg-mw|Uploadnologintext}}',
 'accmailtitle' => 'Page title when temporary password was sent to a user via email.',
-'accmailtext' => '{{doc-important|Do not translate "<nowiki>[[User talk:$1|$1]]</nowiki>" and \'\'Special:ChangePassword\'\'.}}
-The message shown when a temporary password has been sent to the user\'s email address.
+'accmailtext' => "{{doc-important|Do not translate <code><nowiki>[[User talk:$1|$1]]</nowiki></code> and <code>Special:ChangePassword</code>.}}
+The message shown when a temporary password has been sent to the user's email address.
 
 Parameters:
 * $1 - username
-* $2 - email address',
+* $2 - email address",
 'newarticle' => '{{Identical|New}}',
 'newarticletext' => '{{doc-important|Do not translate <code><nowiki>{{MediaWiki:Helppage}}</nowiki></code>.}}
 Text displayed above the edit box in editor when trying to create a new page.
@@ -2206,9 +2206,7 @@ Parameters:
 
 See also:
 * {{msg-mw|Parser-unstrip-loop-warning}}',
-'converter-manual-rule-error' => "Used as error message when a manual conversion rule for the language converter has errors.
-
-For example it's not using the correct syntax, or not supplying text in all variants.",
+'converter-manual-rule-error' => "Used as error message when a manual conversion rule for the [[mw:Language_converter|language converter]] has errors. For example it's not using the correct syntax, or not supplying text in all variants.",
 
 # "Undo" feature
 'undo-success' => 'Text on special page to confirm edit revert. You arrive on this page by clicking on the "undo" link on a revision history special page.
@@ -2969,7 +2967,8 @@ This message indicates {{msg-mw|prefs-dateformat}} is default (= not specified).
 'prefs-datetime' => '{{Identical|Date}}',
 'prefs-labs' => "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-editing}}'', listing features that are experimental",
 'prefs-user-pages' => "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-misc}}'', listing features that are related to user pages",
-'prefs-personal' => 'Title of a tab in [[Special:Preferences]].',
+'prefs-personal' => 'Title of a tab in [[Special:Preferences]].
+{{Identical|User profile}}',
 'prefs-rc' => 'Used in user preferences.
 
 {{Identical|Recent changes}}',
@@ -4926,6 +4925,7 @@ See the following search results:
 'listusers' => '{{doc-special|ListUsers}}',
 'listusers-editsonly' => 'Option in [[Special:ListUsers]].',
 'listusers-creationsort' => 'Option in [[Special:ListUsers]].',
+'listusers-desc' => 'Used as label for the checkbox.',
 'usereditcount' => 'Shown behind every username on [[Special:ListUsers]]. Parameters:
 * $1 - number of edits',
 'usercreated' => 'Used in [[Special:ListUsers]]. Parameters:
@@ -5647,7 +5647,7 @@ See also:
 In other cases the message {{msg-mw|Revertpage}} is used.
 
 Parameters:
-* $1 - username 1
+* $1 - username 1, can be used for GENDER
 * $2 - (Optional) username 2
 * $3 - (Optional) revision ID of the revision reverted to
 * $4 - (Optional) timestamp of the revision reverted to
@@ -6033,10 +6033,9 @@ See also:
 * {{msg-mw|Tooltip-pt-mycontris}}
 {{Identical|Contribution}}',
 'contribsub2' => 'Contributions for "user" (links). Parameters:
-* $1 - any one of the following:
-** IP address (if anonymous user)
-** username, with a link which points to the user page (if registered user)
-* $2 - list of tool links. The list contains a link which has text {{msg-mw|Sp-contributions-talk}}
+* $1 is an IP address or a username, with a link which points to the user page (if registered user).
+* $2 is list of tool links. The list contains a link which has text {{msg-mw|Sp-contributions-talk}}.
+* $3 is a plain text username used for GENDER.
 {{Identical|For $1}}',
 'nocontribs' => 'Used in [[Special:Contributions]] and [[Special:DeletedContributions]].
 
@@ -9482,19 +9481,9 @@ Parameters:
 
 # Scary transclusion
 'scarytranscludedisabled' => 'Shown when scary transclusion is disabled.',
-'scarytranscludefailed' => 'Shown when the HTTP request for the template failed.
-
-Identical to {{msg-mw|Scarytranscludefailed-httpstatus}}, but does not show the HTTP error which was received.
-
-This will not be parsed as wikitext and will appear as is.
-
-Parameters:
+'scarytranscludefailed' => 'Shown when the HTTP request for the template failed. Identical to {{msg-mw|Scarytranscludefailed-httpstatus}}, but does not show the HTTP error which was received. This will not be parsed as wikitext and will appear as is. Parameters:
 * $1 - URL which points to interwiki template',
-'scarytranscludefailed-httpstatus' => 'Identical to {{msg-mw|Scarytranscludefailed}}, but shows the HTTP error which was received.
-
-This will not be parsed as wikitext and will appear as is.
-
-Parameters:
+'scarytranscludefailed-httpstatus' => 'Identical to {{msg-mw|Scarytranscludefailed}}, but shows the HTTP error which was received. This will not be parsed as wikitext and will appear as is. Parameters:
 * $1 - URL which points to interwiki template
 * $2 - HTTP status, integer (other than 200)',
 'scarytranscludetoolong' => 'The URL was too long.',
@@ -9910,13 +9899,10 @@ Preceded by the MediaWiki extension name.
 Parameters:
 * $1 - version number of the extension
 {{Identical|Version}}',
-'version-svn-revision' => '{{optional}}
-Used in [[Special:Version]], preceeding the subversion revision numbers of the extensions loaded inside brackets, like this: "({{int:version-revision}} r012345").
-
-Parameters:
+'version-svn-revision' => '{{Identical|Revision}}{{optional}}
+Used in [[Special:Version]], preceeding the Subversion revision numbers of the extensions loaded inside brackets, like this: "({{int:version-revision}} r012345"). Parameters:
 * $1 - (Unused) directory revision number or empty string
-* $2 - checkout revision number
-{{Identical|Revision}}',
+* $2 - checkout revision number',
 'version-license' => '{{Identical|License}}',
 'version-poweredby-credits' => 'Message shown on [[Special:Version]]. Parameters:
 * $1 - the current year
@@ -10051,7 +10037,10 @@ Parameters:
 'tags-tag' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
 'tags-display-header' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
 'tags-description-header' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
+'tags-active-header' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
 'tags-hitcount-header' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
+'tags-active-yes' => 'Table cell contents if given tag is "active".',
+'tags-active-no' => 'Table cell contents if given tag is not "active".',
 'tags-edit' => 'Used on [[Special:Tags]]. Verb. Used as display text on a link to create/edit a description.
 {{Identical|Edit}}',
 'tags-hitcount' => 'Shown in the "{{msg-mw|Tags-hitcount-header}}" column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].
@@ -10469,9 +10458,7 @@ Parameters:
 * $1 - the usage
 * $2 - the maximum',
 'limitreport-postexpandincludesize' => 'Label for the "Post-expand include size" row in the limit report table',
-'limitreport-postexpandincludesize-value' => 'Format for the "Post-expand include size" row in the limit report table.
-
-Parameters:
+'limitreport-postexpandincludesize-value' => 'Format for the "Post-expand include size" row in the limit report table. Parameters:
 * $1 - the usage (in bytes)
 * $2 - the maximum (in bytes)',
 'limitreport-templateargumentsize' => 'Label for the "Template argument size" row in the limit report table',
index 8e311a0..a83bdc3 100644 (file)
@@ -3619,8 +3619,7 @@ Ti duessas avair retschavì [{{SERVER}}{{SCRIPTPATH}}/COPYING ina copia da la GN
 
 # Database error messages
 'dberr-header' => 'Questa wiki ha in problem',
-'dberr-problems' => 'Stgisa!
-Questa pagina ha actualmain difficultads tecnicas.',
+'dberr-problems' => 'Stgisa! Questa pagina ha actualmain difficultads tecnicas.',
 'dberr-again' => 'Spetga in per minutas ed emprova alura da chargiar danovamain.',
 'dberr-info' => '(Betg pussaivel da contactar il server da la banca da datas: $1)',
 'dberr-usegoogle' => 'Ti pos empruvar da tschertgar cun Google en il fratemp.',
index fe21489..5ab64fc 100644 (file)
@@ -548,7 +548,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Despre {{SITENAME}}',
 'aboutpage' => 'Project:Despre',
-'copyright' => 'Conținutul este disponibil sub $1.',
+'copyright' => 'Conținutul este disponibil sub $1, exceptând cazurile în care se specifică altfel.',
 'copyrightpage' => '{{ns:project}}:Drepturi de autor',
 'currentevents' => 'Discută la cafenea',
 'currentevents-url' => 'Project:Cafenea',
@@ -1700,8 +1700,8 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'action-block' => 'blocați permisiunea de modificare a acestui utilizator',
 'action-protect' => 'modificați nivelurile de protecție pentru această pagină',
 'action-rollback' => 'faceți revocarea rapidă a modificărilor ultimului utilizator care a modificat o pagină particulară',
-'action-import' => 'importați această pagină din alt wiki',
-'action-importupload' => 'importați această pagină prin încărcarea unui fișier',
+'action-import' => 'importați pagini din alt wiki',
+'action-importupload' => 'importați pagini prin încărcarea unui fișier',
 'action-patrol' => 'marcați modificările celorlalți ca patrulate',
 'action-autopatrol' => 'marcați modificarea drept patrulată',
 'action-unwatchedpages' => 'vizualizați lista de pagini neurmărite',
@@ -2239,6 +2239,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'listusers' => 'Listă utilizatori',
 'listusers-editsonly' => 'Arată doar utilizatorii cu modificări',
 'listusers-creationsort' => 'Sortează după data creării',
+'listusers-desc' => 'Sortează descrescător',
 'usereditcount' => '$1 {{PLURAL:$1|editare|editări}}',
 'usercreated' => '{{GENDER:$3|Creat}} în $1 la $2',
 'newpages' => 'Pagini noi',
@@ -2521,7 +2522,7 @@ acționați cu precauție.',
 Ultima editare a fost făcută de către [[User:$3|$3]] ([[User talk:$3|discuție]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Descrierea modificărilor a fost: „''$1''”.",
 'revertpage' => 'Anularea modificărilor efectuate de către [[Special:Contributions/$2|$2]] ([[User talk:$2|discuție]]) și revenire la ultima versiune de către [[User:$1|$1]]',
-'revertpage-nouser' => 'Anularea modificărilor efectuate de un utilizator ascuns și revenirea la ultima modificare de către [[User:$1|$1]]',
+'revertpage-nouser' => 'Anularea modificărilor efectuate de un utilizator ascuns și revenirea la ultima modificare de către {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Anularea modificărilor făcute de $1;
 revenire la ultima versiune de $2.',
 
@@ -4172,9 +4173,9 @@ MediaWiki este distribuit în speranța că va fi folositor, dar FĂRĂ VREO GAR
 'limitreport-ppvisitednodes' => 'Număr de noduri de preprocesor vizitate',
 'limitreport-ppgeneratednodes' => 'Număr de noduri de preprocesor generate',
 'limitreport-postexpandincludesize' => 'Mărimea includerii post-expansiune',
-'limitreport-postexpandincludesize-value' => '$1/$2 octeți',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|octet|octeți|de octeți}}',
 'limitreport-templateargumentsize' => 'Mărimea argumentului formatului',
-'limitreport-templateargumentsize-value' => '$1/$2 octeți',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|octet|octeți|de octeți}}',
 'limitreport-expansiondepth' => 'Cea mai mare profunzime a expansiunii',
 'limitreport-expensivefunctioncount' => 'Număr de funcții de analiză costisitoare',
 
index 50a1a1a..393d036 100644 (file)
@@ -4191,9 +4191,9 @@ Ce nò, tu puè ausà 'u module facile aqquà sotte. 'U commende tune avène agg
 'limitreport-ppvisitednodes' => "Preprocessore d'u cunde de le node 'ndrucate",
 'limitreport-ppgeneratednodes' => "Preprocessore d'u cunde de le node generate",
 'limitreport-postexpandincludesize' => "Espanzione de apprisse ca 'nglude 'a dimenzione",
-'limitreport-postexpandincludesize-value' => '$1/$2 byte',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte}}',
 'limitreport-templateargumentsize' => "Dimenzione de le argomende d'u template",
-'limitreport-templateargumentsize-value' => '$1/$2 byte',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte}}',
 'limitreport-expansiondepth' => 'Espanzione massime de profonnetà',
 'limitreport-expensivefunctioncount' => "Analizzatore d'u cunde d'a funzione ca coste assaije",
 
index faaa635..9d17cb2 100644 (file)
@@ -82,6 +82,7 @@
  * @author Sk
  * @author Soul Train
  * @author Spider
+ * @author Sunpriat
  * @author TarzanASG
  * @author Temuri rajavi
  * @author Vago
@@ -684,7 +685,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Описание {{grammar:genitive|{{SITENAME}}}}',
 'aboutpage' => 'Project:Описание',
-'copyright' => 'СодеÑ\80жимое Ð´Ð¾Ñ\81Ñ\82Ñ\83пно Ð² Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вии Ñ\81 $1.',
+'copyright' => 'СодеÑ\80жимое Ð´Ð¾Ñ\81Ñ\82Ñ\83пно Ð¿Ð¾ Ð»Ð¸Ñ\86ензии $1 (еÑ\81ли Ð½Ðµ Ñ\83казано Ð¸Ð½Ð¾Ðµ).',
 'copyrightpage' => '{{ns:project}}:Авторские права',
 'currentevents' => 'Текущие события',
 'currentevents-url' => 'Project:Текущие события',
@@ -1063,6 +1064,9 @@ $2
 
 # Special:ResetTokens
 'resettokens' => 'Сбросить токены',
+'resettokens-text' => 'Вы можете сбросить токены, которые позволяют иметь доступ к некоторым личным данным, которые связаны с вашей учётной записью. 
+
+Вам необходимо сделать это, если вы случайно поделился ими с кем-то, или если ваш аккаунт был взломан.',
 'resettokens-no-tokens' => 'Нет токенов для сброса.',
 'resettokens-legend' => 'Сбросить токены',
 'resettokens-tokens' => 'Токены:',
@@ -1840,8 +1844,8 @@ $1",
 'action-block' => 'ограничивать возможность редактирования для этого участника',
 'action-protect' => 'изменение уровня защиты этой страницы',
 'action-rollback' => 'быстрый откат изменений участника, который последним редактировал страницу',
-'action-import' => 'импоÑ\80Ñ\82 Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b из другой вики',
-'action-importupload' => 'импоÑ\80Ñ\82 Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b из загруженного файла',
+'action-import' => 'импоÑ\80Ñ\82 Ñ\81Ñ\82Ñ\80аниÑ\86 из другой вики',
+'action-importupload' => 'импоÑ\80Ñ\82 Ñ\81Ñ\82Ñ\80аниÑ\86 из загруженного файла',
 'action-patrol' => 'отметка чужих правок как отпатрулированных',
 'action-autopatrol' => 'отметка своих правок как отпатрулированных',
 'action-unwatchedpages' => 'просмотр списка страниц, за которыми не следят',
@@ -2375,6 +2379,7 @@ $1',
 'listusers' => 'Список участников',
 'listusers-editsonly' => 'Показать только тех участников, кто сделал хотя бы одну правку',
 'listusers-creationsort' => 'Упорядочить по дате создания',
+'listusers-desc' => 'Сортировать по убыванию',
 'usereditcount' => '$1 {{PLURAL:$1|правка|правки|правок}}',
 'usercreated' => '{{GENDER:$3|зарегистрировался|зарегистрировалась}} $1 в $2',
 'newpages' => 'Новые страницы',
@@ -2662,7 +2667,7 @@ $UNWATCHURL
 Последние изменения {{GENDER:$3|внёс|внесла}} [[User:$3|$3]] ([[User talk:$3|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Было дано описание изменения: ''$1''.",
 'revertpage' => 'Откат правок [[Special:Contributions/$2|$2]] ([[User talk:$2|обсуждение]]) к версии [[User:$1|$1]]',
-'revertpage-nouser' => 'Правки (имя участника скрыто) откачены к версии [[User:$1|$1]]',
+'revertpage-nouser' => 'Правки (имя участника скрыто) откачены к версии {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Откачены правки $1; возврат к версии $2.',
 
 # Edit tokens
@@ -4007,6 +4012,8 @@ $5
 'confirm-unwatch-top' => 'Удалить эту страницу из вашего списка наблюдения?',
 
 # Separators for various lists, etc.
+'pipe-separator' => '&#32;|&#32;',
+'word-separator' => '&#32;',
 'ellipsis' => '…',
 'parentheses' => '($1)',
 
@@ -4407,14 +4414,17 @@ MediaWiki распространяется в надежде, что она бу
 'rotate-comment' => 'Изображение повёрнуто на $1 градус{{PLURAL:$1||а|ов}} по часовой стрелке',
 
 # Limit report
+'limitreport-title' => 'Данные анализатора:',
 'limitreport-cputime' => 'Использование времени процессора',
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|секунда|секунды|секунд}}',
 'limitreport-walltime' => 'Использование в режиме реального времени',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|секунда|секунды|секунд}}',
+'limitreport-ppvisitednodes' => 'Количество узлов, посещённых препроцессором',
 'limitreport-ppgeneratednodes' => 'Количество сгенерированных препроцессором узлов',
-'limitreport-postexpandincludesize-value' => '$1/$2 байт',
+'limitreport-postexpandincludesize' => 'Размер раскрытых включений',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|байт|байта|байтов}}',
 'limitreport-templateargumentsize' => 'Размер аргумента шаблона',
-'limitreport-templateargumentsize-value' => '$1/$2 байт',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|байт|байта|байтов}}',
 'limitreport-expansiondepth' => 'Наибольшая глубина расширения',
 'limitreport-expensivefunctioncount' => 'Количество «дорогих» функций анализатора',
 
index 26d4ce5..adcee78 100644 (file)
@@ -272,7 +272,7 @@ $messages = array(
 'july' => 'ජූලි',
 'august' => 'අගෝස්තු',
 'september' => 'සැප්තැම්බර්',
-'october' => 'à¶\94à¶\9aà·\8aතà·\9dබර්',
+'october' => 'à¶\94à¶\9aà·\8aතà·\9cමà·\8aබර්',
 'november' => 'නොවැම්බර්',
 'december' => 'දෙසැම්බර්',
 'january-gen' => 'ජනවාරි',
@@ -376,7 +376,7 @@ $messages = array(
 'errorpagetitle' => 'දෝෂය',
 'returnto' => '$1 වෙත නැවත යන්න.',
 'tagline' => '{{SITENAME}} වෙතින්',
-'help' => 'à¶\8bදà·\80à·\8a',
+'help' => 'à¶\8bදà·\80à·\94',
 'search' => 'සොයන්න',
 'searchbutton' => 'සොයන්න',
 'go' => 'යන්න',
@@ -410,7 +410,7 @@ $messages = array(
 'postcomment' => 'නව ඡේදයක්',
 'articlepage' => 'අන්තර්ගත පිටුව නරඹන්න',
 'talk' => 'සාකච්ඡාව',
-'views' => 'à¶\85දà·\84à·\83à·\8a à¶\8bදà·\84à·\83à·\8a',
+'views' => 'දà·\98à·\82à·\8aටà·\92',
 'toolbox' => 'මෙවලම් ගොන්න',
 'userpage' => 'පරිශීලක පිටුව නරඹන්න',
 'projectpage' => 'ව්‍යාපෘති පිටුව නරඹන්න',
@@ -466,7 +466,7 @@ $1",
 [[Special:Version|අනුවාද පිටුව]] බලන්න.',
 
 'ok' => 'හරි',
-'retrievedfrom' => '"$1" à·\80à·\99තà·\92නà·\8a à¶±à·\90à·\80ත à¶½à¶¶à·\8fà¶\9cනà·\8aනà·\8f à¶½à¶¯ි',
+'retrievedfrom' => '"$1" à·\80à·\99තà·\92නà·\8a à·\83මà·\8aපà·\8aâ\80\8dරà·\80à·\9aà·\81නය à¶\9aà·\99රà·\92ණි',
 'youhavenewmessages' => 'ඔබ හට $1 ($2)',
 'newmessageslink' => 'නව පණිවුඩ',
 'newmessagesdifflink' => 'අවසාන වෙනස',
@@ -1206,7 +1206,7 @@ $1",
 
 # Search results
 'searchresults' => 'ගවේෂණ ප්‍රතිඵල',
-'searchresults-title' => '"$1" à·\83ඳà·\84à·\8f à·\83à·\99à·\80à·\94මà·\8a ප්‍රතිඵල',
+'searchresults-title' => '"$1" à·\83ඳà·\84à·\8f à\9cà·\80à·\9aà·\82ණ ප්‍රතිඵල',
 'searchresulttext' => '{{SITENAME}} ගවේෂණය පිළිබඳ වැඩි විස්තර සඳහා , [[{{MediaWiki:Helppage}}|{{int:help}}]] බලන්න.',
 'searchsubtitle' => 'ඔබගේ ගවේෂණය වූයේ  \'\'\'[[:$1]]\'\'\'  සඳහාය ([[Special:Prefixindex/$1| "$1" යෙන් ඇරඹෙන සියළු පිටු]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1| "$1" වෙත සබැ‍ඳෙන සියළු පිටු]])',
 'searchsubtitleinvalid' => "ඔබගේ ගවේෂණය වූයේ  '''$1''' සඳහාය",
@@ -1219,7 +1219,7 @@ $1",
 'nextn' => 'ඊළඟ {{PLURAL:$1|$1}}',
 'prevn-title' => 'පූර්ව {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵලයන් $1}}',
 'nextn-title' => 'මීලඟ {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵල $1}}',
-'shown-title' => 'එක් පිටුවක {{PLURAL:$1|ප්‍රතිඵලයක්|ප්‍රතිඵල $1 ක්}} බැගින් පෙන්වන්න',
+'shown-title' => 'එක් පිටුවක {{PLURAL:$1|ප්‍රතිඵලයක්|ප්‍රතිඵල $1 ක්}} බැගින් පෙන්වන්න',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) නරඹන්න',
 'searchmenu-legend' => 'ගවේෂණ තෝරාගැනීම්',
 'searchmenu-exists' => "'''මෙම විකියෙහි \"[[:\$1]]\" ලෙස නම් කර ඇති පිටුවක් ඇත.'''",
@@ -1570,7 +1570,7 @@ HTML ටැගයන් පිරික්සන්න.',
 'rc_categories_any' => 'ඕනෑම',
 'rc-change-size' => '$1',
 'newsectionsummary' => '/* $1 */ නව ඡේදය',
-'rc-enhanced-expand' => 'විස්තර පෙන්වන්න (ජාවාස්ක්‍රිප්ට් අවශ්‍යයි)',
+'rc-enhanced-expand' => 'විස්තර පෙන්වන්න',
 'rc-enhanced-hide' => 'විස්තර සඟවන්න',
 
 # Recent changes linked
@@ -1978,7 +1978,7 @@ When filtered by user, only files where that user uploaded the most recent versi
 'fewestrevisions' => 'ස්වල්පතම සංශෝධන සහිත පිටු',
 
 # Miscellaneous special pages
-'nbytes' => '{{PLURAL:$1|බයà·\92ටà·\92|බයà·\92ටà·\8a}} $1 à¶\9aà·\8a',
+'nbytes' => '{{PLURAL:$1|à¶\91à¶\9aà·\8a à¶¶à¶ºà·\92ටයà¶\9aà·\8a|බයà·\92ට $1 à¶\9aà·\8a}}',
 'ncategories' => '{{PLURAL:$1|එක් ප්‍රවර්ගයකි|ප්‍රවර්ගයන් $1 කි}}',
 'ninterwikis' => '{{PLURAL:$1|අන්තර්විකි}} $1 ක්',
 'nlinks' => '{{PLURAL:$1|එක් සබැඳියකි|සබැඳියන් $1 කි}}',
@@ -2854,7 +2854,7 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 'tooltip-pt-preferences' => 'මගේ අභිරුචි',
 'tooltip-pt-watchlist' => 'වෙනස්වීම් සිදුවී තිබේදැයි යන්න පිලිබඳව ඔබගේ විමසුමට ලක්ව ඇති පිටු ලැයිස්තුව',
 'tooltip-pt-mycontris' => 'ඔබගේ දායකත්වයන් ලැයිස්තුව‍',
-'tooltip-pt-login' => 'පà·\92à·\80à·\92à·\83à·\93ම à·\80ඩà·\8f à¶ºà·\9dà¶\9cà·\8aâ\80\8dය à·\80à·\9a. à¶±à¶¸à·\94ත්, එය අනිවාර්ය නැත',
+'tooltip-pt-login' => 'පà·\92à·\80à·\92à·\83à·\93ම à\9aà·\99රà·\99à·\84à·\92 à¶\94බ à¶\8bදà·\8aâ\80\8dයà·\9dà¶\9cà·\92මතà·\8a à¶\9aà·\99රà·\99යà·\92. à¶\91à·\84à·\99ත්, එය අනිවාර්ය නැත',
 'tooltip-pt-anonlogin' => 'එය අවශ්‍ය‍යෙන් කල යුත්තක් ‍නොවුනද, ප්‍රවිෂ්ට වීම සඳහා ඔබ ධෛර්යමත් කරනු ලැබේ.',
 'tooltip-pt-logout' => 'නික්මීම',
 'tooltip-ca-talk' => 'අන්තර්ගත පිටුව පිළිබඳ සාකච්ඡාව',
@@ -2872,23 +2872,23 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 'tooltip-ca-unwatch' => 'මෙම පිටුව ඔබගේ මුර-ලැයිස්තුවෙන් ඉවත් කරන්න',
 'tooltip-search' => '{{SITENAME}} ගවේෂණය',
 'tooltip-search-go' => 'මෙම නාමය එලෙසම ඇති පිටුවක් ඇත්නම් එය වෙත යන්න',
-'tooltip-search-fulltext' => 'මà·\99ම à¶´à·\8fඨය සඳහා පිටු ගවේෂණය කරන්න',
+'tooltip-search-fulltext' => 'මà·\99ම à¶´à·\99à·\85 සඳහා පිටු ගවේෂණය කරන්න',
 'tooltip-p-logo' => 'මුල් පිටුව‍ට පිවිසෙන්න',
 'tooltip-n-mainpage' => 'මුල් පිටුව‍ට පිවිසෙන්න',
 'tooltip-n-mainpage-description' => 'මුල් පිටුව‍ට පිවිසෙන්න',
-'tooltip-n-portal' => 'ව්‍යාපෘතිය පිළිබඳ, ඔබට කල හැක්කේ කුමක්ද, තොරතුරු සොයාගත හැක්කේ කොතැනද',
+'tooltip-n-portal' => 'ව්‍යාපෘතිය පිළිබඳ විස්තර, ඔබට කල හැකි දේ, තොරතුරු සොයාගත හැකි තැන්',
 'tooltip-n-currentevents' => 'කාලීන සිදුවීම් පිළිබඳ පසුබිම් තොරතුරු සොයා දැනගන්න',
 'tooltip-n-recentchanges' => 'විකියෙහි මෑත වෙනස්කිරීම් ලැයිස්තුවක්',
-'tooltip-n-randompage' => 'à¶\85à·\84ඹà·\94 à¶´à·\92ටà·\94à·\80à¶\9aà·\8a à¶´à·\96රණය කරන්න',
+'tooltip-n-randompage' => 'à¶\85à·\84ඹà·\94 à¶´à·\92ටà·\94à·\80à¶\9aà·\8a à¶¶à·\8f à¶\9cත කරන්න',
 'tooltip-n-help' => 'සොයා දැනගත හැකි තැන',
-'tooltip-t-whatlinkshere' => 'මෙය හා සබැ‍ඳෙන සියළු විකි පිටු ලැයිස්තුව',
+'tooltip-t-whatlinkshere' => 'මෙය හා සබැ‍ඳෙන සියළු විකි පිටු ලැයිස්තුවක්',
 'tooltip-t-recentchangeslinked' => 'මෙම පිටුව හා සබැඳි පිටුවල ‍නව වෙනස්වීම්',
 'tooltip-feed-rss' => 'මෙම පිටුව සඳහා RSS පෝෂකය',
 'tooltip-feed-atom' => 'මෙම පිටුව සඳහා අටෝම් පෝෂකය',
 'tooltip-t-contributions' => 'මෙම පරිශීලකයාගේ දායකත්ව ලැයිස්තුව නරඹන්න',
 'tooltip-t-emailuser' => 'මෙම පරිශීලකයාට විද්‍යුත්-තැපෑලක් යවන්න',
 'tooltip-t-upload' => 'ගොනු උඩුගත කරන්න',
-'tooltip-t-specialpages' => 'සියලු විශේෂ පිටු ලැයිස්තුව',
+'tooltip-t-specialpages' => 'සියලු විශේෂ පිටු ලැයිස්තුවක්',
 'tooltip-t-print' => 'මෙම පිටුවෙහි මුද්‍රිත අනුවාදය',
 'tooltip-t-permalink' => 'පිටුවෙහි මෙම අනුවාදයට ස්ථාවර සබැඳිය',
 'tooltip-ca-nstab-main' => 'අන්තර්ගත පිටුව නරඹන්න',
@@ -3070,7 +3070,7 @@ $1',
 'bad_image_list' => 'ආකෘතිය පහත පරිදි වේ:
 
 ලැයිස්තු අයිතම පමණක් (* යන්නෙන් ආරම්භ වන පේළි) සළකා බලනු ලැබේ.
-පේළිය මත ඇති පළමු සබැඳිය අයහපත් ගොනුවකට යොමු වන සබැඳියක් විය යුතුය.
+පේළියක් මත ඇති පළමු සබැඳිය අයහපත් ගොනුවකට යොමු වන සබැඳියක් විය යුතුය.
 එම පේළියෙහිම ඉනික්බිති හමුවන ඕනෑම සබැඳියක් සලකනු ලබන්නේ ව්‍යහිවාරයක් ලෙසටය, එනම්, ගොනු එක පේළියට පැවතිය හැකි පිටු.',
 
 /*
index 56c3537..a1722ac 100644 (file)
@@ -435,7 +435,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'O {{GRAMMAR:dajalnik|{{SITENAME}}}}',
 'aboutpage' => 'Project:O {{GRAMMAR:dajalnik|{{SITENAME}}}}',
-'copyright' => 'Besedilo je na razpolago pod pogoji $1.',
+'copyright' => 'Razen, kjer je navedeno drugače, je besedilo na razpolago pod pogoji licence $1.',
 'copyrightpage' => '{{ns:project}}:Avtorske pravice',
 'currentevents' => 'Trenutni dogodki',
 'currentevents-url' => 'Project:Trenutni dogodki',
@@ -1018,7 +1018,7 @@ Lahko se vrnete nazaj in urejate že obstoječe strani, ali pa se [[Special:User
 'sectioneditnotsupported-text' => 'Urejanje razdelkov ni podprto na tej strani.',
 'permissionserrors' => 'Napaka dovoljenja',
 'permissionserrorstext' => 'Za izvedbo dejanja nimate dovoljenja zaradi {{PLURAL:$1|naslednjega razloga|naslednjih razlogov|naslednjih razlogov|naslednjih razlogov|naslednjih razlogov}}:',
-'permissionserrorstext-withaction' => 'Za $2 zaradi {{PLURAL:$1|naslednjega razloga|naslednjih $1 razlogov|naslednjih $1 razlogov|naslednjih $1 razlogov}} nimate dovoljenja:',
+'permissionserrorstext-withaction' => 'Za $2 zaradi {{PLURAL:$1|naslednjega razloga|naslednjih razlogov}} nimate dovoljenja:',
 'recreate-moveddeleted-warn' => "'''Opozorilo: Pišete stran, ki je bila nekoč že izbrisana.'''
 
 Premislite preden nadaljujete s pisanjem, morda bo stran zaradi istih razlogov ponovno odstranjena.
@@ -1604,7 +1604,7 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'action-block' => 'blokiranje urejanja s tega uporabniškega računa',
 'action-protect' => 'spremembo stopnje zaščite te strani',
 'action-rollback' => 'hitro vračanje urejanj zadnjega uporabnika, ki je urejal določeno stran',
-'action-import' => 'uvoz te strani iz drugega wikija',
+'action-import' => 'uvoz strani iz drugega wikija',
 'action-importupload' => 'uvoz strani iz naložene datoteke',
 'action-patrol' => 'označevanje sprememb drugih kot nadzorovane',
 'action-autopatrol' => 'označevanje svojih urejanj kot nadzorovane',
@@ -2153,6 +2153,7 @@ Sedaj je preusmeritev na [[$2]].',
 'listusers' => 'Seznam uporabnikov',
 'listusers-editsonly' => 'Pokaži samo uporabnike z urejanji',
 'listusers-creationsort' => 'Razvrsti po datumu ustvaritve',
+'listusers-desc' => 'Razvrsti padajoče',
 'usereditcount' => '$1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}',
 'usercreated' => '{{GENDER:$3|Ustvarjen|Ustvarjena}} dne $1 ob $2',
 'newpages' => 'Nove strani',
@@ -2438,7 +2439,7 @@ stran je spremenil ali vrnil že nekdo drug.
 Zadnji je stran urejal uporabnik [[User:$3|$3]] ([[User talk:$3|pogovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Povzetek urejanja je bil: »''$1''«.",
 'revertpage' => 'vrnitev sprememb uporabnika [[Special:Contributions/$2|$2]] ([[User talk:$2|pogovor]]) na zadnje urejanje uporabnika [[User:$1|$1]]',
-'revertpage-nouser' => 'vrnitev sprememb skritega uporabnika na zadnjo redakcijo uporabnika [[User:$1|$1]]',
+'revertpage-nouser' => 'vrnitev sprememb skritega uporabnika na zadnjo redakcijo {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Razveljavljene spremembe uporabnika $1;
 vrnjeno na urejanje uporabnika $2.',
 
@@ -3953,8 +3954,7 @@ Skupaj s programom bi morali bi prejeti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopijo
 
 # Database error messages
 'dberr-header' => 'Ta wiki ima težavo',
-'dberr-problems' => 'Oprostite!
-Ta stran se sooča s tehničnimi težavami.',
+'dberr-problems' => 'Oprostite! Ta stran se sooča s tehničnimi težavami.',
 'dberr-again' => 'Poskusite počakati nekaj minut in ponovno naložite stran.',
 'dberr-info' => '(Ne morem se povezati s strežnikom zbirke podatkov: $1)',
 'dberr-info-hidden' => '(Ne morem se povezati s strežnikom zbirke podatkov)',
@@ -4102,9 +4102,9 @@ V nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bom
 'limitreport-ppvisitednodes' => 'Število predprocesorjevih ogledanih vozlišč',
 'limitreport-ppgeneratednodes' => 'Število predprocesorjevih ustvarjenih vozlišč',
 'limitreport-postexpandincludesize' => 'Velikost vključitve po razširitvi',
-'limitreport-postexpandincludesize-value' => '$1/$2 bajtov',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|bajt|bajta|bajte|bajtov}}',
 'limitreport-templateargumentsize' => 'Velikost argumentov predloge',
-'limitreport-templateargumentsize-value' => '$1/$2 bajtov',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|bajt|bajta|bajte|bajtov}}',
 'limitreport-expansiondepth' => 'Največja globina razširitve',
 'limitreport-expensivefunctioncount' => 'Število dragih funkcij razčlenjevalnika',
 
index 37f6310..7c2e633 100644 (file)
@@ -3700,8 +3700,7 @@ Ju duhet të keni marrë [{{SERVER}}{{SCRIPTPATH}}/COPYING një kopje të GNU Ge
 
 # Database error messages
 'dberr-header' => 'Kjo wiki ka një problem',
-'dberr-problems' => 'Na vjen keq! 
-Kjo faqe është duke përjetuar vështirësi teknike.',
+'dberr-problems' => 'Na vjen keq! Kjo faqe po has vështirësi teknike.',
 'dberr-again' => 'Pritni disa minuta dhe provoni të ringarkoni faqen.',
 'dberr-info' => '(Nuk mund të lidhet me serverin bazë e të dhënave : $1)',
 'dberr-usegoogle' => 'Ju mund të provoni të kërkoni përmes Googles në ndërkohë.',
index 6d48fdc..c088025 100644 (file)
@@ -1268,7 +1268,7 @@ $2
 Проверите разлике испод, па сачувајте измене.',
 'undo-failure' => 'Не могу да вратим измену због постојања сукобљених међуизмена.',
 'undo-norev' => 'Не могу да вратим измену јер не постоји или је обрисана.',
-'undo-summary' => 'Ð\92Ñ\80аÑ\9bена Ð¸Ð·Ð¼ÐµÐ½Ð° $1 Ð¾Ð´ {{GENDER:$2|коÑ\80иÑ\81ника|коÑ\80иÑ\81ниÑ\86е|коÑ\80иÑ\81ника}} [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]])',
+'undo-summary' => 'Ð\9fониÑ\88Ñ\82ена Ð¸Ð·Ð¼ÐµÐ½Ð° $1  {{GENDER:$2|коÑ\80иÑ\81ника|коÑ\80иÑ\81ниÑ\86е}} [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]])',
 'undo-summary-username-hidden' => 'Поништи измену $1 скривеног корисника',
 
 # Account creation failure
@@ -1289,7 +1289,7 @@ $2
 'currentrevisionlink' => 'Текућа измена',
 'cur' => 'трен',
 'next' => 'след',
-'last' => 'претх',
+'last' => 'разл',
 'page_first' => 'прва',
 'page_last' => 'последња',
 'histlegend' => "Избор разлика: изаберите кутијице измена за упоређивање и притисните ентер или дугме на дну.<br />
@@ -2629,7 +2629,7 @@ $UNWATCHURL
 
 Последњу измену је {{GENDER:$3|направио|направила|направио}} [[User:$3|$3]] ([[User talk:$3|разговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Опис измене: \"''\$1''\".",
-'revertpage' => 'Враћене су измене {{GENDER:$2|корисника|кориснице|корисника}} [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]]) на последњу измену члана [[User:$1|$1]]',
+'revertpage' => 'Враћене измене [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]]) на последњу измену корисника [[User:$1|$1]]',
 'revertpage-nouser' => 'Враћене су измене скривеног корисника на последњу измену члана [[User:$1|$1]]',
 'rollback-success' => 'Враћене су измене {{GENDER:$1|корисника|кориснице|корисника}} $1
 на последњу измену {{GENDER:$2|корисника|кориснице|корисника}} $2.',
@@ -3108,7 +3108,7 @@ $1',
 
 # Thumbnails
 'thumbnail-more' => 'Повећај',
-'filemissing' => 'Ð\94аÑ\82оÑ\82ека Ð½ÐµÐ´Ð¾Ñ\81Ñ\82аÑ\98е',
+'filemissing' => 'Ð\9dедоÑ\81Ñ\82аÑ\98е Ð´Ð°Ñ\82оÑ\82ека',
 'thumbnail_error' => 'Грешка при стварању минијатуре: $1',
 'djvu_page_error' => 'DjVu страница је недоступна',
 'djvu_no_xml' => 'Не могу да преузмем XML за датотеку DjVu.',
@@ -3401,8 +3401,8 @@ $1',
 'thumbsize' => 'Величина минијатуре:',
 'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|страница|странице|страница}}',
-'file-info' => 'величина: $1, MIME врста: $2',
-'file-info-size' => '$1 × $2 пиксела, величина: $3, MIME врста: $4',
+'file-info' => 'величина датотеке: $1, MIME тип: $2',
+'file-info-size' => '$1 × $2 пиксела, величина датотеке: $3, MIME тип: $4',
 'file-info-size-pages' => '$1 × $2 пиксела, величина: $3, MIME врста: $4, $5 {{PLURAL:$5|страница|странице|страница}}',
 'file-nohires' => 'Већа резолуција није доступна.',
 'svg-long-desc' => 'SVG датотека, номинално $1 × $2 пиксела, величина: $3',
index 7a89772..c4148a1 100644 (file)
@@ -1154,7 +1154,7 @@ Ovakve argumente bi trebalo izbegavati.",
 Proverite razlike ispod, pa sačuvajte izmene.',
 'undo-failure' => 'Ne mogu da vratim izmenu zbog postojanja sukobljenih međuizmena.',
 'undo-norev' => 'Ne mogu da vratim izmenu jer ne postoji ili je obrisana.',
-'undo-summary' => 'Vraćena izmena $1 od {{GENDER:$2|korisnika|korisnice|korisnika}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])',
+'undo-summary' => 'Poništena izmena $1 {{GENDER:$2|korisnika|korisnice}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Ne mogu da otvorim nalog',
@@ -1174,7 +1174,7 @@ Razlog koji je naveo {{GENDER:$3|korisnik|korisnica|korisnik}} $3 je ''$2''",
 'currentrevisionlink' => 'Tekuća izmena',
 'cur' => 'tren',
 'next' => 'sled',
-'last' => 'preth',
+'last' => 'razl',
 'page_first' => 'prva',
 'page_last' => 'poslednja',
 'histlegend' => "Izbor razlika: izaberite kutijice izmena za upoređivanje i pritisnite enter ili dugme na dnu.<br />
@@ -2483,7 +2483,7 @@ Poslednji autor je ujedno i jedini.',
 
 Poslednju izmenu je {{GENDER:$3|napravio|napravila|napravio}} [[User:$3|$3]] ([[User talk:$3|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Opis izmene: \"''\$1''\".",
-'revertpage' => 'Vraćene su izmene {{GENDER:$2|korisnika|korisnice|korisnika}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na poslednju izmenu člana [[User:$1|$1]]',
+'revertpage' => 'Vraćene izmene [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na poslednju  izmenu korisnika [[User:$1|$1]]',
 'revertpage-nouser' => 'Vraćene su izmene skrivengo korisnika na poslednju izmenu člana [[User:$1|$1]]',
 'rollback-success' => 'Vraćene su izmene {{GENDER:$1|korisnika|korisnice|korisnika}} $1
 na poslednju izmenu {{GENDER:$2|korisnika|korisnice|korisnika}} $2.',
@@ -2962,7 +2962,7 @@ Posetite [//www.mediawiki.org/wiki/Localisation Medijaviki lokalizaciju] i [//tr
 
 # Thumbnails
 'thumbnail-more' => 'Povećaj',
-'filemissing' => 'Datoteka nedostaje',
+'filemissing' => 'Nedostaje datoteka',
 'thumbnail_error' => 'Greška pri stvaranju minijature: $1',
 'djvu_page_error' => 'DjVu stranica je nedostupna',
 'djvu_no_xml' => 'Ne mogu da preuzmem XML za datoteku DjVu.',
@@ -3253,8 +3253,8 @@ Ako ga pokrenete, vaš računar može biti ugrožen.",
 'thumbsize' => 'Veličina minijature:',
 'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|stranica|stranice|stranica}}',
-'file-info' => 'veličina: $1, MIME vrsta: $2',
-'file-info-size' => '$1 × $2 piksela, veličina: $3, MIME vrsta: $4',
+'file-info' => 'veličina datoteke: $1, MIME tip: $2',
+'file-info-size' => '$1 × $2 piksela, veličina datoteke: $3, MIME tip: $4',
 'file-info-size-pages' => '$1 × $2 piksela, veličina: $3, MIME vrsta: $4, $5 {{PLURAL:$5|stranica|stranice|stranica}}',
 'file-nohires' => 'Veća rezolucija nije dostupna.',
 'svg-long-desc' => 'SVG datoteka, nominalno $1 × $2 piksela, veličina: $3',
index 1dd34a5..1a0a09a 100644 (file)
@@ -335,7 +335,7 @@ $messages = array(
 'tog-extendwatchlist' => 'Utöka bevakningslistan till att visa alla ändringar, inte bara den senaste',
 'tog-usenewrc' => 'Gruppera ändringar efter sida i senaste ändringar och bevakningslistan',
 'tog-numberheadings' => 'Numrerade rubriker',
-'tog-showtoolbar' => 'Visa verktygsrad',
+'tog-showtoolbar' => 'Visa redigerings-verktygsraden',
 'tog-editondblclick' => 'Redigera sidor med dubbelklick',
 'tog-editsection' => 'Aktivera redigering av avsnitt genom [redigera]-länkar',
 'tog-editsectiononrightclick' => 'Aktivera redigering av avsnitt genom högerklick på underrubriker',
@@ -1721,8 +1721,8 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'action-block' => 'blockera denna användare från redigering',
 'action-protect' => 'ändra skyddsnivå för denna sida',
 'action-rollback' => 'snabbt rulla tillbaka ändringarna gjorda av den användare som senast redigerade en viss sida',
-'action-import' => 'importera denna sida från en annan wiki',
-'action-importupload' => 'importera denna sida från en uppladdad fil',
+'action-import' => 'importera sidor från en annan wiki',
+'action-importupload' => 'importera sidor från en filuppladdning',
 'action-patrol' => 'märka annans redigering som patrullerad',
 'action-autopatrol' => 'få din redigering märkt som patrullerad',
 'action-unwatchedpages' => 'se listan över obevakade sidor',
@@ -2258,6 +2258,7 @@ Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt
 'listusers' => 'Användarlista',
 'listusers-editsonly' => 'Visa endast användare som redigerat',
 'listusers-creationsort' => 'Sortera efter datum skapat',
+'listusers-desc' => 'Sortera i fallande ordning',
 'usereditcount' => '$1 {{PLURAL:$1|redigering|redigeringar}}',
 'usercreated' => '{{GENDER:$3|Skapat}} $1 $2',
 'newpages' => 'Nya sidor',
@@ -2398,7 +2399,7 @@ Den e-postadress du har angivit i [[Special:Preferences|dina användarinställni
 'emailnotarget' => 'Icke-existerande eller ogiltigt användarnamn för mottagaren.',
 'emailtarget' => 'Ange mottagarens användarnamn',
 'emailusername' => 'Användarnamn:',
-'emailusernamesubmit' => 'Fortsätt',
+'emailusernamesubmit' => 'Skicka in',
 'email-legend' => 'Skicka ett mail till en annan användare på {{SITENAME}}',
 'emailfrom' => 'Från:',
 'emailto' => 'Till:',
@@ -2540,7 +2541,7 @@ Se $2 för noteringar om de senaste raderingarna.',
 Sidan ändrades senast av [[User:$3|$3]] ([[User talk:$3|diskussion]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).',
 'editcomment' => "Redigeringskommentaren var: \"''\$1''\".",
 'revertpage' => 'Återställde redigeringar av  [[Special:Contributions/$2|$2]] ([[User talk:$2|användardiskussion]]) till senaste versionen av [[User:$1|$1]]',
-'revertpage-nouser' => 'Återställde redigeringar av en dold användare till den senaste versionen av [[User:$1|$1]]',
+'revertpage-nouser' => 'Återställde redigeringar av en dold användare till den senaste versionen av {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Återställde ändringar av $1;
 ändrade tillbaka till senaste version av $2.',
 
@@ -3311,7 +3312,7 @@ Om du kör den kan din dator skadas.",
 'show-big-image-other' => '{{PLURAL:$2|Annan upplösning|Andra upplösningar}}: $1.',
 'show-big-image-size' => '$1 × $2 pixlar',
 'file-info-gif-looped' => 'upprepad',
-'file-info-gif-frames' => '$1 {{PLURAL:$1|ram|ramar}}',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|bildruta|bildrutor}}',
 'file-info-png-looped' => 'upprepad',
 'file-info-png-repeat' => 'spelad $1 {{PLURAL:$1|gång|gånger}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|bild|bilder}}',
@@ -4207,11 +4208,11 @@ Annars kan du använda det enkla formuläret nedan. Din kommentar kommer att lä
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|sekund|sekunder}}',
 'limitreport-ppvisitednodes' => 'Antal nodbesök för preprocessor',
 'limitreport-ppgeneratednodes' => 'Antal noder genererade av preprocessor',
-'limitreport-postexpandincludesize' => 'Inkludera storlek efter utvidgning',
-'limitreport-postexpandincludesize-value' => '$1/$2 byte',
+'limitreport-postexpandincludesize' => 'Inkluderad storlek efter mallutvidgning',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte}}',
 'limitreport-templateargumentsize' => 'Storlek på mallargument',
-'limitreport-templateargumentsize-value' => '$1/$2 byte',
-'limitreport-expansiondepth' => 'Högsta expansionsdjup',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte}}',
+'limitreport-expansiondepth' => 'Största expansionsdjup',
 'limitreport-expensivefunctioncount' => 'Antal dyra parser-funktioner',
 
 );
index 9ab7abe..499b2b0 100644 (file)
@@ -3087,8 +3087,7 @@ Huwa unapokea [{{SERVER}}{{SCRIPTPATH}}/COPYING nakala ya GNU General Public Lic
 
 # Database error messages
 'dberr-header' => 'Wiki imekuta tatizo',
-'dberr-problems' => 'Kumradhi!
-Tovuti hii inapata matatatizo wakati huu.',
+'dberr-problems' => 'Kumradhi! Tovuti hii inapata matatatizo wakati huu.',
 'dberr-again' => 'Jaribu tena baada ya kusubiri dakika chache.',
 'dberr-info' => '(Hamna mawasiliano na seva ya hifadhidata: $1)',
 'dberr-usegoogle' => 'Unaposubiri unaweza kujaribu kutafuta kwa kutumia Google.',
index 03d72bc..9365a86 100644 (file)
@@ -3553,8 +3553,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'இந்த விக்கிக்குஒரு கோளாறு உள்ளது',
-'dberr-problems' => 'மன்னிக்கவும்!
-இந்த தளம், தொழில்நுட்ப பிரச்சினைகளுக்கு உள்ளாகியுள்ளது..',
+'dberr-problems' => 'மன்னிக்கவும்! இந்த தளம், தொழில்நுட்ப பிரச்சினைகளுக்கு உள்ளாகியுள்ளது..',
 'dberr-again' => 'சில நிமிடங்கள் காத்திரு மற்றும் மறுபடியும் முயற்சிக்கவும்',
 'dberr-info' => '(தரவுதள சேவகனை தொடர்பு கொள்ள முடியாது:  $1 )',
 'dberr-usegoogle' => 'இதே நேரத்தில் நீங்கள் கூகிள் வழியாக தேட முயற்சிக்கலாம்.',
index 0962373..5dd3011 100644 (file)
@@ -846,8 +846,7 @@ Others will be hidden by default.
 'compare-page2' => 'Faṭo 2',
 
 # Database error messages
-'dberr-problems' => 'Şubqono!
-iFaṭaṭe u3do kitla Qaṫre.',
+'dberr-problems' => 'Şubqono! iFaṭaṭe u3do kitla Qaṫre.',
 
 # HTML forms
 'htmlform-submit' => 'Mqayad',
index 68f9fb9..f30bce4 100644 (file)
@@ -3757,8 +3757,7 @@ MediaWiki ئىشلىتىش مەقسىتىنى ئاساس قىلىپ ئېلان 
 
 # Database error messages
 'dberr-header' => 'بۇ wiki مەسىلىگە يولۇقتى',
-'dberr-problems' => 'كەچۈرۈڭ!
-بۇ بېكەتتە تېخنىكىلىق قىيىنچىلىق كۆرۈلدى.',
+'dberr-problems' => 'كەچۈرۈڭ! بۇ بېكەتتە تېخنىكىلىق قىيىنچىلىق كۆرۈلدى.',
 'dberr-again' => 'بىر قانچە مىنۇت كۈتۈپ ئاندىن قايتا يۈكلەڭ.',
 'dberr-info' => '(ساندان مۇلازىمىتىرىغا ئۇلىنالمىدى:  $1)',
 'dberr-usegoogle' => 'بۇ ۋاقىتتا Google ئىزدىگۈچتىن ئىزدەشنى سىناپ بېقىڭ.',
index caaf42c..c5eb81b 100644 (file)
@@ -386,7 +386,7 @@ $messages = array(
 'tog-previewontop' => 'Показувати попередній перегляд перед вікном редагування, а не після',
 'tog-previewonfirst' => 'Показувати попередній перегляд під час першого редагування',
 'tog-nocache' => 'Відключити кешування сторінок браузером',
-'tog-enotifwatchlistpages' => 'Ð\9fовÑ\96домлÑ\8fÑ\82и ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ð¿Ð¾Ñ\88Ñ\82оÑ\8e Ð¿Ñ\80и Ð·Ð¼Ñ\96нÑ\96 сторінки або файлу з мого списку спостереження',
+'tog-enotifwatchlistpages' => 'Ð\9fовÑ\96домлÑ\8fÑ\82и ÐµÐ»ÐµÐºÑ\82Ñ\80онноÑ\8e Ð¿Ð¾Ñ\88Ñ\82оÑ\8e Ð¿Ñ\80о Ð·Ð¼Ñ\96нÑ\83 сторінки або файлу з мого списку спостереження',
 'tog-enotifusertalkpages' => 'Повідомляти електронною поштою про зміну моєї сторінки обговорення',
 'tog-enotifminoredits' => 'Надсилати мені електронного листа навіть при незначних редагуваннях сторінок та файлів',
 'tog-enotifrevealaddr' => 'Показувати мою поштову адресу в повідомленнях',
@@ -1779,8 +1779,8 @@ $1",
 'action-block' => 'блокування цього дописувача',
 'action-protect' => 'зміну рівня захисту цієї сторінки',
 'action-rollback' => 'швидко відкотити редагування останнього користувача, що змінював певну сторінку',
-'action-import' => 'Ñ\96мпоÑ\80Ñ\82 Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\81Ñ\82оÑ\80Ñ\96нки з іншої вікі',
-'action-importupload' => 'Ñ\96мпоÑ\80Ñ\82 Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\81Ñ\82оÑ\80Ñ\96нки Ð· файлу',
+'action-import' => 'Ñ\96мпоÑ\80Ñ\82 Ñ\81Ñ\82оÑ\80Ñ\96нок з іншої вікі',
+'action-importupload' => 'Ñ\96мпоÑ\80Ñ\82 Ñ\81Ñ\82оÑ\80Ñ\96нок Ñ\87еÑ\80ез Ð·Ð°Ð²Ð°Ð½Ñ\82аженнÑ\8f файлу',
 'action-patrol' => 'позначення чужих редагувань патрульованими',
 'action-autopatrol' => 'позначення власних редагувань патрульованими',
 'action-unwatchedpages' => 'перегляд списку сторінок, за якими ніхто не спостерігає',
@@ -2326,6 +2326,7 @@ $1',
 'listusers' => 'Список користувачів',
 'listusers-editsonly' => 'Показати лише користувачів, які зробили принаймні одне редагування',
 'listusers-creationsort' => 'Сортувати за датою створення',
+'listusers-desc' => 'Сортувати за спадним порядком',
 'usereditcount' => '$1 {{PLURAL:$1|редагування|редагування|редагувань}}',
 'usercreated' => '{{GENDER:$3|Створено}} $1 о $2',
 'newpages' => 'Нові сторінки',
@@ -2614,7 +2615,7 @@ $UNWATCHURL
 Останні редагування зроблено [[User:$3|$3]] ([[User talk:$3|обговорення]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Пояснення редагування було: «''$1''».",
 'revertpage' => 'Редагування користувача [[Special:Contributions/$2|$2]] ([[User talk:$2|обговорення]]) відкинуті до версії користувача [[User:$1|$1]]',
-'revertpage-nouser' => 'Відкинуто редагування прихованого користувача до останньої версії, зробленої користувачем [[User:$1|$1]]',
+'revertpage-nouser' => 'Відкинуто редагування прихованого користувача до останньої версії, зробленої {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'Відкинуті редагування користувача $1; повернення до версії користувача $2.',
 
 # Edit tokens
@@ -4277,7 +4278,10 @@ MediaWiki поширюється в надії, що вона буде кори
 'tags-tag' => 'Назва мітки',
 'tags-display-header' => 'Показ у списках змін',
 'tags-description-header' => 'Повний опис значення',
+'tags-active-header' => 'Активний?',
 'tags-hitcount-header' => 'Помічені редагування',
+'tags-active-yes' => 'Так',
+'tags-active-no' => 'Ні',
 'tags-edit' => 'редагувати',
 'tags-hitcount' => '$1 {{PLURAL:$1|зміна|зміни|змін}}',
 
@@ -4443,9 +4447,9 @@ MediaWiki поширюється в надії, що вона буде кори
 'limitreport-ppvisitednodes' => 'Число вузлів відвіданих препроцесором',
 'limitreport-ppgeneratednodes' => 'Число вузлів згенерованих препроцесором',
 'limitreport-postexpandincludesize' => 'Включений розмір після розширення',
-'limitreport-postexpandincludesize-value' => '$1/$2 байтів',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|байт|байти|байтів}}',
 'limitreport-templateargumentsize' => 'Розмір аргументів шаблону',
-'limitreport-templateargumentsize-value' => '$1/$2  байтів',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|байт|байти|байтів}}',
 'limitreport-expansiondepth' => 'Найвища глибина розширення',
 'limitreport-expensivefunctioncount' => 'Число дорогої функції аналізатора',
 
index 869a959..520eed7 100644 (file)
@@ -572,7 +572,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'Giới thiệu {{SITENAME}}',
 'aboutpage' => 'Project:Giới thiệu',
-'copyright' => 'Bản quyền $1.',
+'copyright' => 'Nội dung được phát hành theo $1, ngoại trừ khi có ghi chú khác.',
 'copyrightpage' => '{{ns:project}}:Bản quyền',
 'currentevents' => 'Tin tức',
 'currentevents-url' => 'Project:Thời sự',
@@ -1710,8 +1710,8 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'action-block' => 'cấm không cho người dùng này sửa đổi',
 'action-protect' => 'thay đổi mức khóa của trang này',
 'action-rollback' => 'nhanh chóng lùi tất cả sửa đổi của người dùng cuối cùng sửa đổi trang nào đó',
-'action-import' => 'nhập trang này từ wiki khác',
-'action-importupload' => 'nhập trang này bằng cách tải lên tập tin',
+'action-import' => 'nhập trang từ wiki khác',
+'action-importupload' => 'nhập trang bằng cách tải lên tập tin',
 'action-patrol' => 'đánh dấu đã tuần tra vào sửa đổi của người khác',
 'action-autopatrol' => 'tự động đánh dấu đã tuần tra vào sửa đổi của bạn',
 'action-unwatchedpages' => 'xem danh sách các trang chưa được theo dõi',
@@ -2248,6 +2248,7 @@ Các mục <del>bị gạch bỏ</del> là các trang đã được sửa.',
 'listusers' => 'Danh sách thành viên',
 'listusers-editsonly' => 'Chỉ hiện thành viên có tham gia sửa đổi',
 'listusers-creationsort' => 'Xếp theo ngày khởi tạo',
+'listusers-desc' => 'Sắp xếp thứ tự giảm dần',
 'usereditcount' => '$1 {{PLURAL:$1|sửa đổi|sửa đổi}}',
 'usercreated' => '{{GENDER:$3}}mở $1 lúc $2',
 'newpages' => 'Trang mới',
@@ -2530,7 +2531,7 @@ người viết trang cuối cùng cũng là tác giả duy nhất của trang n
 Sửa đổi cuối cùng tại trang do [[User:$3|$3]] ([[User talk:$3|thảo luận]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) thực hiện.',
 'editcomment' => "Tóm lược sửa đổi: “''$1''”.",
 'revertpage' => 'Đã lùi lại sửa đổi của [[Special:Contributions/$2|$2]] ([[User talk:$2|Thảo luận]]) quay về phiên bản cuối của [[User:$1|$1]]',
-'revertpage-nouser' => 'Đã lùi lại sửa đổi của người dùng ẩn quay về phiên bản cuối của [[User:$1|$1]]',
+'revertpage-nouser' => 'Đã lùi lại sửa đổi của người dùng ẩn quay về phiên bản cuối của {{GENDER:$1}}[[User:$1|$1]]',
 'rollback-success' => 'Đã hủy sửa đổi của $1;
 quay về phiên bản cuối của $2.',
 
index 05d1ea2..d2abf7e 100644 (file)
@@ -122,10 +122,10 @@ $messages = array(
 'tog-extendwatchlist' => 'Stäänükön galädalisedi ad jonön votükamis tefik valik, e no te nulikünos',
 'tog-usenewrc' => 'Grupön votükamis pado in votukäms nulik e galädalised (me JavaScript)',
 'tog-numberheadings' => 'Givön itjäfidiko nümis dilädatiädes',
-'tog-showtoolbar' => 'Jonön redakamastumemi (JavaScript)',
-'tog-editondblclick' => 'Dälön redakön padis pö drän telik mugaknopa (JavaScript)',
+'tog-showtoolbar' => 'Jonön redakamastumemi',
+'tog-editondblclick' => 'Dälön redakön padis pö drän telik mugaknopa',
 'tog-editsection' => 'Dälön redakami dilädas me yüms: [redakön]',
-'tog-editsectiononrightclick' => 'Dälön redakami diläda me klik mugaknopa detik su dilädatiäds (JavaScript)',
+'tog-editsectiononrightclick' => 'Dälön redakami diläda me klik mugaknopa detik su dilädatiäds',
 'tog-showtoc' => 'Jonön ninädalisedi (su pads labü diläds plu 3)',
 'tog-rememberpassword' => 'Dakipolös nunädamanünis obik in bevüresodatävöm at (muiko {{PLURAL:$1|del|dels}} $1)',
 'tog-watchcreations' => 'Läükön padis fa ob pejafölis e ragivis fa ob pelöpükölis lä galädalised obik',
@@ -143,7 +143,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Jonön numi gebanas galädöl',
 'tog-oldsig' => 'Dispenäd dabinöl:',
 'tog-fancysig' => 'Dispenäd balugik (nen yüms lü gebanapad)',
-'tog-uselivepreview' => 'Gebön büologedi itjäfidik (JavaScript) (Sperimäntik)',
+'tog-uselivepreview' => 'Gebön büologedi itjäfidik (sperimäntik)',
 'tog-forceeditsummary' => 'Sagön obe, ven redakaplän brefik vagon',
 'tog-watchlisthideown' => 'Klänedön redakamis obik se galädalised',
 'tog-watchlisthidebots' => 'Klänedön redakamis mäikamenas se galädalised',
@@ -419,6 +419,7 @@ Mögos i, das atos sinifon, das dabinon säkädil pö program fa {{SITENAME}} pa
 # General errors
 'error' => 'Pöl',
 'databaseerror' => 'Pöl in nünodem',
+'databaseerror-error' => 'Pöl: $1',
 'laggedslavemode' => 'Nuned: pad ba labon votükamis brefabüik',
 'readonly' => 'Vük pefärmükon',
 'enterlockreason' => 'Penolös kodi löka, keninükamü täxet dula onik e dela, kü pomoükon',
@@ -584,7 +585,7 @@ Stebedolös büä osteifülol nogna.',
 'newpassword' => 'Letavöd nulik:',
 'retypenew' => 'Klavolöd dönu letavödi nulik:',
 'resetpass_submit' => 'Välön letavödi e nunädön omi',
-'changepassword-success' => 'Letavöd olik pevotükon benosekiko! Anu sit nunädon oli...',
+'changepassword-success' => 'Letavöd olik pevotükon benosekiko!',
 'resetpass_forbidden' => 'Letavöds no kanons pavotükön',
 'resetpass-no-info' => 'Mutol nunädön oli ad logön padi at nemediko.',
 'resetpass-submit-loggedin' => 'Votükön letavödi',
@@ -763,7 +764,7 @@ Geban, kel efärmükon oni, egevon kodi at: $1",
 'nocreatetext' => '{{SITENAME}} emiedükon mögi ad jafön padis nulik.
 Kanol redakön padi dabinöl, u [[Special:UserLogin|nunädön oli u jafön kali]].',
 'nocreate-loggedin' => 'No dalol jafön padis nulik.',
-'permissionserrors' => 'Dälapöls',
+'permissionserrors' => 'Dälapöl',
 'permissionserrorstext' => 'No dalol dunön atosi sekü {{PLURAL:$1|kod|kods}} sököl:',
 'permissionserrorstext-withaction' => 'No dalol $2, sekü {{PLURAL:$1|kod|kods}} sököl:',
 'recreate-moveddeleted-warn' => "'''Nuned: Dönujafol padi büiko pemoüköl.'''
@@ -832,8 +833,8 @@ Plän: (anuik) = dif tefü fomam anuik,
 (lätik) = dif tefü fomam büik, p = redakam pülik.',
 'history-fieldset-title' => 'Logamajenotem',
 'history-show-deleted' => 'Te pemoüköls',
-'histfirst' => 'Balid',
-'histlast' => 'Lätik',
+'histfirst' => 'vönädikün',
+'histlast' => 'nulikün',
 'historysize' => '({{PLURAL:$1|jölät 1|jöläts $1}})',
 'historyempty' => '(vagik)',
 
@@ -852,7 +853,7 @@ Kanol [[Special:Search|sukön]] padis nulik tefik.',
 'rev-deleted-text-permission' => "Padafomam at '''pemoükon'''.
 Pats tefik ba patuvons in [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jenotalised moükamas].",
 'rev-deleted-text-view' => "Padafomam at '''pemoükon'''.
-As guvan, kanol logön oni; pats tefik ba binons in [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}  jenotalised moükamas].",
+Kanol logön oni; pats ba binons in [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}  jenotalised moükamas].",
 'rev-delundel' => 'jonön/klänedön',
 'rev-showdeleted' => 'jonön',
 'revisiondelete' => 'Moükön/sädunön moükami fomamas',
@@ -1044,7 +1045,7 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'timezoneregion-indian' => 'Lindean',
 'timezoneregion-pacific' => 'Pasifean',
 'allowemail' => 'Fägükolös siti ad getön poti leäktronik de gebans votik',
-'prefs-searchoptions' => 'Sukaparamets',
+'prefs-searchoptions' => 'Suk',
 'prefs-namespaces' => 'Nemaspads',
 'defaultns' => 'Votiko sukolös in nemaspads at:',
 'default' => 'stad kösömik',
@@ -1053,7 +1054,7 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'prefs-custom-js' => 'JavaScript nekösömik',
 'youremail' => 'Ladet leäktronik *:',
 'username' => '{{GENDER:$1|Gebananem}}:',
-'uid' => 'Gebanadientif:',
+'uid' => '{{GENDER:$1|Gebanadientif}}:',
 'prefs-memberingroups' => '{{GENDER:$2|Liman}} {{PLURAL:$1|grupa|grupas}}:',
 'prefs-registration' => 'Tim registarama:',
 'yourrealname' => 'Nem jenöfik *:',
@@ -1062,9 +1063,10 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'badsig' => 'Dispenäd no lonöföl: dönulogolös eli HTML.',
 'badsiglength' => 'Dispenäd olik binon tu lunik.
 Muton labön {{PLURAL:$1|malati|malatis}} läs $1.',
-'yourgender' => 'Gen:',
-'gender-male' => 'Manik',
-'gender-female' => 'Vomik',
+'yourgender' => 'Lio-li buükol ad pabepenön?',
+'gender-unknown' => 'Buükob ad no sagön',
+'gender-male' => 'Redakom padis ela wiki',
+'gender-female' => 'Redakof padis ela wiki',
 'email' => 'Ladet leäktronik',
 'prefs-help-realname' => 'Nem jenöfik no binon zesüdik. If vilol givön oni, pogebon ad dasevön vobi olik.',
 'prefs-help-email' => 'Ladet leäktronik no peflagon, ab dälon sedi letavöda nulik ole üf glömol letavödi olik.',
@@ -1079,7 +1081,7 @@ Muton labön {{PLURAL:$1|malati|malatis}} läs $1.',
 'userrights-lookup-user' => 'Guvön gebanagrupis',
 'userrights-user-editname' => 'Penolös gebananemi:',
 'editusergroup' => 'Redakön gebanagrupis',
-'editinguser' => "Votükam gitätas gebana: '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "Votükam gitätas gebana: '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Redakön gebanagrupis',
 'saveusergroups' => 'Dakipolöd gebanagrupis',
 'userrights-groupsmember' => 'Liman grupa(s):',
@@ -1091,7 +1093,7 @@ Muton labön {{PLURAL:$1|malati|malatis}} läs $1.',
 'userrights-no-interwiki' => 'No labol däli ad votükön gebanagitätis in vüks votik.',
 'userrights-nodatabase' => 'Nünodem: $1 no dabinon, u no binon topik.',
 'userrights-nologin' => 'Mutol [[Special:UserLogin|nunädön oli]] me guvanakal ad dalön gevön gitätis gebanes.',
-'userrights-notallowed' => 'Kal olik no labon däli ad votükön gebanagitätis.',
+'userrights-notallowed' => 'No labol däli ad läükön u moükön gebanagitätis.',
 'userrights-changeable-col' => 'Grups fa ol votükoviks',
 'userrights-unchangeable-col' => 'Grups fa ol nevotükoviks',
 
@@ -1250,7 +1252,7 @@ Muton labön {{PLURAL:$1|malati|malatis}} läs $1.',
 'rc_categories' => 'Te klads fovik (ditolös me el "|")',
 'rc_categories_any' => 'Alseimik',
 'newsectionsummary' => '/* $1 */ diläd nulik',
-'rc-enhanced-expand' => 'Jonön patis (el JavaScript zesüdon)',
+'rc-enhanced-expand' => 'Jonön patis',
 'rc-enhanced-hide' => 'Klänedön patis',
 
 # Recent changes linked
@@ -1763,7 +1765,7 @@ Küpets e yuf pluik:
 'exblank' => 'pad ävagon',
 'delete-confirm' => 'Moükön padi: "$1"',
 'delete-legend' => 'Moükön',
-'historywarning' => 'Nuned: pad, keli vilol moükön, labon jenotemi:',
+'historywarning' => "'''Nuned:''' Pad, keli vilol moükön, labon jenotemi  laböl za {{PLURAL:$1|revid|revids}} $1:",
 'confirmdeletetext' => 'Primikol ad moükön laidüpiko padi u magodi sa jenotem valik ona. Fümedolös, das desinol ad dunön atosi, das suemol sekis, e das dunol atosi bai [[{{MediaWiki:Policy-url}}]].',
 'actioncomplete' => 'Dunot eplöpon',
 'actionfailed' => 'Dunot eneplöpon',
@@ -1828,7 +1830,7 @@ Ekö! parametem anuik pada: '''$1''':",
 'protect-default' => 'Dälön gebanes valik',
 'protect-fallback' => 'Däl: "$1" zesüdon',
 'protect-level-autoconfirmed' => 'Blokön gebanis nulik e no peregistarölis',
-'protect-level-sysop' => 'Te guvans',
+'protect-level-sysop' => 'Dälön te guvans',
 'protect-summary-cascade' => 'as jän',
 'protect-expiring' => 'dul jü $1 (UTC)',
 'protect-expiry-indefinite' => 'nenfinik',
@@ -1871,8 +1873,8 @@ Ekö! parametem anuik pada: '''$1''':",
 'undeletepagetext' => '{{PLURAL:$1|Pad sököl pemoükon ab binon nog in registar: moükam ona|Pads sököl $1 pemoükons ab binons nog in registar: moükam onas}} kanon pasädunön.
 Registar pavagükon periodiko.',
 'undelete-fieldset-title' => 'Nätükön revidis',
-'undeleteextrahelp' => "Ad sädunön moükami pada lölik, vagükolös bügilis valik e välolös me mugaparat knopi: '''''Sädunolöd moükami'''''.
-Ad sädunön moükami no lölöfik, välolös me mugaparat bügilis revidas pavipöl, täno knopi: '''''Sädunolöd moükami'''''. Knop: '''''Vagükolöd vali''''' vagükön küpeti e bügilis valik.",
+'undeleteextrahelp' => "Ad sädunön moükami jenotema lölik pada, vagükolös bügilis valik e välolös me mugaparat knopi: '''''{{int:undeletebtn}}'''''.
+Ad sädunön moükami no lölöfik, välolös me mugaparat bügilis revidas pavipöl, täno knopi: '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '{{PLURAL:$1|revid 1 peregistaron|revids $1 peregistarons}}',
 'undeletehistory' => 'If osädunol moükami pada at, revids valik ogepubons in jenotem onik.
 If pad nulik labü tiäd ot pejafon pos moükam at, revids pada rigik ogepubons in jenotem ona.',
@@ -1892,7 +1894,7 @@ Ba labol yümi dädik, u ba fomam pegepübon u pemoükon se registar.',
 'undeletedrevisions' => 'Moükam {{PLURAL:$1|revida 1 pesädunon|revidas $1 pesädunons}}',
 'undeletedrevisions-files' => 'Moükam {{PLURAL:$1|revida 1|revidas $1}} e {{PLURAL:$2|ragiva 1|ragivas $2}} pesädunons',
 'undeletedfiles' => 'Moükam {{PLURAL:$1|ragiva 1|ragivas $1}} pesädunon',
-'cannotundelete' => 'Sädunam moükama no eplöpon. Ba ek ya esädunon moükami at.',
+'cannotundelete' => 'Sädunam moükama no eplöpon: $1',
 'undeletedpage' => "'''Moükam pada: $1 pesädunon'''
 
 Logolös [[Special:Log/delete|lisedi moükamas]] if vilol kontrolön moükamis e sädunamis brefabüikis.",
@@ -2031,7 +2033,8 @@ Logolös [[Special:BlockList|lisedi blokamas]] ad vestigön blokamis.',
 'blocklogpage' => 'Jenotalised blokamas',
 'blocklogentry' => '"[[$1]]" peblokon dü: $2 $3',
 'reblock-logentry' => 'blokamaparamets gebana: [[$1]] pevotükons, pro dul: $2 (kod: $3)',
-'blocklogtext' => 'Is binon lised gebanablokamas e gebanasäblokamas. Ladets-IP itjäfidiko pebloköls no pajonons. Logolös blokamis e xilis anu lonöfölis in [[Special:BlockList|lised IP-blokamas]].',
+'blocklogtext' => 'Is binon lised gebanablokamas e gebanasäblokamas. Ladets-IP itjäfidiko pebloköls no pajonons.
+Logolös blokamis e xilis anu lonöfölis in [[Special:BlockList|lised blokamas]].',
 'unblocklogentry' => '$1 pesäblokon',
 'block-log-flags-anononly' => 'te gebans nennemik',
 'block-log-flags-nocreate' => 'kalijaf penemögükon',
@@ -2136,7 +2139,7 @@ Välolös nemi votik.',
 
 Yeged nulik "[[:$1]]" ya dabinon. Vilol-li moükön oni ad jafön spadi pro topätükam?',
 'delete_and_move_confirm' => 'Si! moükolöd padi',
-'delete_and_move_reason' => 'Pemoükon ad jafön spadi pro topätükam',
+'delete_and_move_reason' => "Pemoükon ad jafön spadi pro topätükam se ''[[$1]]''",
 'selfmove' => 'Tiäds nulik e bäldik binons ots; pad no kanon patopätükön sui ok it.',
 'immobile-source-namespace' => 'Paditopätükön ini nemaspad: "$1" nemögon',
 'immobile-target-namespace' => 'Paditopätükam ini nemaspad: "$1" nemögon',
@@ -2845,7 +2848,7 @@ Kanol i [[Special:EditWatchlist|gebön redakametodi kösömik]].',
 'specialpages-group-highuse' => 'Pads suvo pegeböls',
 'specialpages-group-pages' => 'Padaliseds',
 'specialpages-group-pagetools' => 'Padastumem',
-'specialpages-group-wiki' => 'Nüns e stums vükiks',
+'specialpages-group-wiki' => 'Nüns e stums',
 'specialpages-group-redirects' => 'Lüodükam padas patik',
 'specialpages-group-spam' => 'Stums ta el spam',
 
index bc37c38..ec3353a 100644 (file)
@@ -170,6 +170,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nob',
 'dec' => 'Dis',
+'january-date' => 'Enero $1',
+'february-date' => 'Pebrero $1',
+'march-date' => 'Marso $1',
+'april-date' => 'Abril $1',
+'may-date' => 'Mayo $1',
+'june-date' => 'Hunyo $1',
+'july-date' => 'Hulyo $1',
+'august-date' => 'Agosto $1',
+'september-date' => 'Septyembre $1',
+'october-date' => 'Oktubre $1',
+'november-date' => 'Nobyembre $1',
+'december-date' => 'Disyembre $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kaarangay|Mga kaarangay}}',
@@ -197,7 +209,7 @@ $messages = array(
 'newwindow' => '(nabuklad hin bag-o nga tamboan o bintana)',
 'cancel' => 'Pasagdi',
 'moredotdotdot' => 'Damo pa nga…',
-'morenotlisted' => 'Damo pa nga waray gintalaan...',
+'morenotlisted' => 'Diri kompleto ini nga listahan.',
 'mypage' => 'Pakli',
 'mytalk' => 'Mga akon paghingay',
 'anontalk' => 'Paghingay para hini nga IP',
@@ -253,6 +265,7 @@ $messages = array(
 'create-this-page' => 'Himo-a ini nga pakli',
 'delete' => 'Para-a',
 'deletethispage' => 'Para-a ini nga pakli',
+'undeletethispage' => 'Igbalik an ini nga pakli nga napara',
 'undelete_short' => 'Igkansela an pagpara {{PLURAL:$1|usa nga pagliwat|$1 nga mga pagliwat}}',
 'viewdeleted_short' => '{{PLURAL:$1|usa nga ginpara nga pagliwat|$1 ka ginpara nga mga pagliwat}}',
 'protect' => 'Panalipdi',
@@ -384,6 +397,10 @@ Listahan o talaan hin puyde nga mga pinaurog nga pakli in mabibilngan ha [[Speci
 # General errors
 'error' => 'Sayop',
 'databaseerror' => 'Sayop hin database',
+'databaseerror-text' => 'Nagkamay-ada hin database query error.
+
+Ini in indikasyon nga may-ada bug hini nga software.',
+'databaseerror-textcl' => 'Nagkamay-ada hin database query error.',
 'laggedslavemode' => 'Pahimatngon: It pakli bangin waray mga kabag-ohan nga bag-o.',
 'readonly' => 'Gintrankahan an database',
 'enterlockreason' => 'Pagbutang hin rason para han pagtrangka, upod hin banabana kon san-o kukuha-on an pagtrangka',
@@ -416,6 +433,7 @@ Alayon la igsumat ini ha [[Special:ListUsers/sysop|administrator]], igsurat la a
 Bangin na ini ginpara hin iba.',
 'cannotdelete-title' => 'diri nakakapara han pakli "$1"',
 'delete-hook-aborted' => 'Pagpara ginpugngan han kawil.  Waray eksplenasyon an ginhatag.',
+'no-null-revision' => 'Diri nakakahimo hin bag-o nga null rebisyon para han pakli "$1"',
 'badtitle' => 'Maraot nga titulo',
 'badtitletext' => 'An ginhangyo nga pakli diri puyde, waray sulod, o sayop nga nasumpay nga inter-pinunongan o inter-wiki nga titulo.
 Bangin mayda usa o damo nga mga agi nga diri puyde magamit ha mga titulo.',
@@ -442,6 +460,10 @@ Para makadugang o makabag-o han mga paghubad para han ngatanan nga mga wiki, ala
 'namespaceprotected' => "Diri ka gintutugutan pagliwat han mga pakli ha ngaran-lat'ang nga '''$1'''.",
 'customcssprotected' => 'Diri ka gintutugotan pagliwat hini nga CSS nga pakli, tungod nga nagsusulod ini hin kanan iba nga tawo personal nga karuyagon.',
 'customjsprotected' => 'Diri ka gintutugotan pagliwat hini nga JavaScript nga pakli, tungod nga nagsusulod ini hin kanan iba nga tawo personal nga karuyagon.',
+'mycustomcssprotected' => 'Waray nim pagtugot hin pagliwat hini nga CSS nga pakli.',
+'mycustomjsprotected' => 'Waray nim pagtugot hit pagliwat hini nga JavaScript nga pakli.',
+'myprivateinfoprotected' => 'Waray nim pagtugot hit pagliwat hit imo pribado nga impormasyon.',
+'mypreferencesprotected' => 'Waray nim pagtugot hit pagliwat hit imo mga karuyag.',
 'ns-specialprotected' => 'Diri maliliwat an mga ispisyal nga pakli.',
 'titleprotected' => 'Ini nga titulo pinasalipod ha paghimo ni [[User:$1|$1]].
 An katadungan nga ginhatag amo in "\'\'$2\'\'".',
@@ -461,13 +483,14 @@ An magdudurmara nga nagtrangka hini in naghatag hini nga eksplenasyon: "$3".',
 # Login and logout pages
 'logouttext' => "'''Nakalog-out kana.'''
 
-Puydi ka magpadayon paggamit hin {{SITENAME}} nga diri magpapakilala, o puydi ka gihapon <span class='plainlinks'>[$1 mag-log in utro]</span> ha parehas o iba nga gumaramit.",
+Ginpapasabot ka la nga an iba nga pakli in magpapadayon nga magpakita komo nga ikaw naka-log-in pa, tubtob imo ginlimpyo an imo browser cache.",
 'welcomeuser' => '¡Uswag ngan Dayon, $1!',
 'welcomecreation-msg' => 'An im akawnt in nahimo na.
 Ayaw kalimti pagbalyo han imo [[Special:Preferences|{{SITENAME}} preperensya]].',
 'yourname' => 'Agnay hit gumaramit:',
 'userlogin-yourname' => 'Ngaran han gumaramit',
 'userlogin-yourname-ph' => 'Igbutang an imo ngaran-gumaramit',
+'createacct-another-username-ph' => 'Igbutang an imo agnay-gumaramit',
 'yourpassword' => 'Tigaman-pagsulod:',
 'userlogin-yourpassword' => 'Tigaman pagsakob',
 'userlogin-yourpassword-ph' => 'Igbutang an imo tigaman-pagsakob',
@@ -501,10 +524,12 @@ Ayaw kalimti pagbalyo han imo [[Special:Preferences|{{SITENAME}} preperensya]].'
 'helplogin-url' => 'Help:Pag-log-in',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bulig han pag-log-in]]',
 'createacct-join' => 'Igbutang an imo impormasyon ha ubos.',
+'createacct-another-join' => 'Igbutang an impormasyon han bag-o nga akwant ha ilarom.',
 'createacct-emailrequired' => 'Email address',
 'createacct-emailoptional' => 'Email address (opsyonal)',
 'createacct-email-ph' => 'Igbutang an imo email address',
-'createaccountmail' => 'Gamiti hin temporaryo nga bisan ano nag password ngan igpadangat ngada ha e-mail address nga nakasurat ha ubos',
+'createacct-another-email-ph' => 'Igbutang an email address',
+'createaccountmail' => 'Gamiti hin temporaryo nga bisan ano nag password ngan igpadangat ngada ha espesipikado nga e-mail address',
 'createacct-realname' => 'Tinuod nga ngaran (opsyonal)',
 'createaccountreason' => 'Rason:',
 'createacct-reason' => 'Rason',
@@ -512,6 +537,7 @@ Ayaw kalimti pagbalyo han imo [[Special:Preferences|{{SITENAME}} preperensya]].'
 'createacct-captcha' => 'Pagkita han seguridad',
 'createacct-imgcaptcha-ph' => 'Igbutang an sinurat nga nakikita mo ha igbaw',
 'createacct-submit' => 'Ighimo an im akawnt',
+'createacct-another-submit' => 'Paghimo hin lain nga akant',
 'createacct-benefit-heading' => '{{SITENAME}} in ginhimo hin tawo nga sugad ha imo.',
 'createacct-benefit-body1' => '{{PLURAL:$1|pagliwat|mga pagliwat}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|ka pakli|ka mga pakli}}',
@@ -605,6 +631,10 @@ Temporaryo nga tigaman han pagsakob: $2',
 'changeemail-submit' => 'Igbalyo an e-mail',
 'changeemail-cancel' => 'Pasagdi',
 
+# Special:ResetTokens
+'resettokens-tokens' => 'Mga token:',
+'resettokens-token-label' => '$1 (yana nga balor: $2)',
+
 # Edit page toolbar
 'bold_sample' => 'dakmola an agi',
 'bold_tip' => 'Dakmola an agi',
@@ -700,6 +730,7 @@ An taramdan han pagpara ngan pagbalhin para han pakli in ginhahatag ha ubos para
 'log-fulllog' => 'Kitaa an bug-os nga taramdan',
 'edit-conflict' => 'Diri pagkakauroyon han pagliwat.',
 'edit-no-change' => 'Ginpabay-an an im pagliwat, mahitungod nga waray pagbalyo nga nabuhat ha nakasurat.',
+'postedit-confirmation' => 'Natipig an imo ginliwat.',
 'edit-already-exists' => 'Diri nakakahimo hin bag-o nga pakli.
 Aada na ito.',
 'defaultmessagetext' => 'Aada-nga-daan nga teksto han mensahe',
@@ -748,7 +779,7 @@ Leyenda: '''({{int:cur}})''' = kaibhan ha giuurhii nga pag-bag-o, '''({{int:last
 'history-fieldset-title' => 'Kaagi han panngaykay',
 'history-show-deleted' => 'Ginpara la',
 'histfirst' => 'Giunhani',
-'histlast' => 'Giurhii',
+'histlast' => 'Gibag-ohi',
 'historysize' => '({{PLURAL:$1|1 nga byte|$1 ka mga byte}})',
 'historyempty' => '(waray sulod)',
 
@@ -816,6 +847,7 @@ Diri mo ini malalabtan.',
 
 # Diffs
 'history-title' => "Kaagi han pagbag-o han ''$1''",
+'difference-title' => 'An pagkakaiba han mga rebisyon han "$1"',
 'difference-multipage' => '(Kaibhan ha butnga han mga pakli)',
 'lineno' => 'Bagis $1:',
 'compareselectedversions' => 'Igkumpara an mga pinili nga pagbabag-o',
@@ -2311,8 +2343,7 @@ An iba in daan nakatago.
 
 # Database error messages
 'dberr-header' => 'Ini nga wiki mayda problema',
-'dberr-problems' => 'Pasayloi!
-Ini nga sityo in nageeksperyensya hin mga pagkuri teknikal.',
+'dberr-problems' => 'Pasayloi! Ini nga sityo in nageeksperyensya hin mga pagkuri teknikal.',
 
 # HTML forms
 'htmlform-submit' => 'Isumite',
index e30a8a2..f5233ee 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Benojan
  * @author Hercule
  * @author O
  * @author Reedy
@@ -19,68 +20,69 @@ $fallback = 'zh-hans';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'é\93¾æ\8e¥ä¸\8bå\88\92线:',
-'tog-justify' => '对é½\90段落',
-'tog-hideminor' => 'æ\9d¥è®¸è¿\91段辰å\85\89个æ\94¹å\8a¨é\87\8cå\90\91æ\8b¿ç»\86æ\94¹å\8a¨囥脱',
-'tog-hidepatrolled' => 'æ\9d¥æ\8b\89è¿\91段辰å\85\89个æ\94¹å\8a¨é\87\8cå\90\91å\9b¥è\84±å·¡æ\9f¥è¿\87æ­\87个æ\94¹å\8a¨',
-'tog-newpageshidepatrolled' => 'æ\9d¥æ\8b\89æ\96°é¡µé\9d¢å\88\97表é\87\8cå\90\91æ\8b¿å·²å·¡æ\9f¥æ­\87个页é\9d¢å\9b¥è\84±',
-'tog-extendwatchlist' => '扩展监控列表,显示所有改动,而弗仅仅是最近个',
+'tog-underline' => 'é\8f\88æ\8e¥ä¸\8bæ©«ç·\9a:',
+'tog-justify' => 'å°\8dé½\8a段落',
+'tog-hideminor' => 'æ­¤å\9e¡æ\94¹å\8b\95è£\8få\90\91å°\8fè®\8aå\8c\96囥脱',
+'tog-hidepatrolled' => 'æ­¤å\9e¡è®\8aå\8c\96è£\8få\90\91ç\95\80å·¡æ\9f¥é\81\8eå\80\8bæ\94¹å\8b\95å\9b¥è\84«',
+'tog-newpageshidepatrolled' => 'æ\96°å¼µé \81é\9d¢è¡¨è£\8fç\95\80å·¡æ\9f¥é\81\8eå\80\8bé \81é\9d¢å\9b¥è\84«',
+'tog-extendwatchlist' => '關注表裏顯示全部變化,弗止此垡個',
 'tog-usenewrc' => '使用强化版个近段辰光个改动(JavaScript)',
-'tog-numberheadings' => 'æ \87é¢\98è\87ªå\8a¨ç¼\96å\8f·',
+'tog-numberheadings' => 'æ¨\99é¡\8cè\87ªå\8b\95ç·¨è\99\9f',
 'tog-showtoolbar' => '顯示編寫傢伙欄',
-'tog-editondblclick' => '雙捺來編寫頁面',
-'tog-editsection' => 'å\85\81许é\80\9aè¿\87ç\82¹å\87»ã\80\90ç¼\96è¾\91ã\80\91é\93¾æ\8e¥æ\9d¥ç¼\96è¾\91段落',
-'tog-editsectiononrightclick' => '用右捺標題編輯段落',
-'tog-showtoc' => '显示目录(针对超过三只标题个页面)',
-'tog-rememberpassword' => '来许箇台电脑上记牢我个密码(可维持$1{{PLURAL:$1|日|日}})',
+'tog-editondblclick' => '捺兩記編寫頁面',
+'tog-editsection' => '好ç\94¨ã\80\90ç¼\96寫ã\80\91é\8f\88æ\8e¥ç·¨å¯«段落',
+'tog-editsectiononrightclick' => '右捺標題編寫段落',
+'tog-showtoc' => '顯示目錄(針對超過三個標題個頁面)',
+'tog-rememberpassword' => '箇個瀏覽器裏畀我個密碼記牢(記$1{{PLURAL:$1|日|日}})',
 'tog-watchcreations' => '拿我创建个页面添加到我个监控列表里向',
 'tog-watchdefault' => '拿我编辑个页面添加到我个监控列表里向',
 'tog-watchmoves' => '拿我移动个页面添加到我个监控列表里向',
-'tog-watchdeletion' => '拿我删除个页面添加到我个监控列表里向',
-'tog-minordefault' => '默认拿所有编辑标记成功细编辑',
-'tog-previewontop' => '来拉编辑框前头显示预览',
-'tog-previewonfirst' => '来拉首次编辑辰光显示预览',
+'tog-watchdeletion' => '畀我删脫個頁面搭文件加進我個關注表裏',
+'tog-minordefault' => '默认畀全部編寫都標起小編寫',
+'tog-previewontop' => '徠編寫框頭前顯示先望',
+'tog-previewonfirst' => '第一垡編寫顯示先望',
 'tog-nocache' => '禁用页面缓存',
-'tog-enotifwatchlistpages' => '我个监控列表里向个页面有改动个说话发电子邮件通知我',
-'tog-enotifusertalkpages' => '我个对话更改辰光发邮件通知我',
-'tog-enotifminoredits' => '页é\9d¢æ\9c\89ç»\86微修æ\94¹ä¸ªè¾°å\85\89ä¹\9få\8f\91é\82®ä»¶é\80\9aç\9f¥æ\88\91',
-'tog-enotifrevealaddr' => '来拉通知邮件列表里向显示我个邮件地址',
-'tog-shownumberswatching' => '显示监控此页个用户数目',
+'tog-enotifwatchlistpages' => '我關注表裏個頁面要弗文件有變化到發郵件搭我講',
+'tog-enotifusertalkpages' => '我個用戶討論頁變化到發郵件搭我講',
+'tog-enotifminoredits' => 'é \81é\9d¢æ\90­æ\96\87件å°\8få\8f¯è®\8aå\8c\96ä¹\9fç\99¼é\83µä»¶æ\90­æ\88\91è¬\9b',
+'tog-enotifrevealaddr' => '通知郵箱表裏顯示我個郵箱地址',
+'tog-shownumberswatching' => '显示關注箇頁個用戶數',
 'tog-oldsig' => '现在签名个预览:',
 'tog-fancysig' => '拿签名当成wiki文本(弗产生自动链接)',
 'tog-uselivepreview' => '使用实时预览(Javascript)(试验)',
-'tog-forceeditsummary' => 'ç¼\96è¾\91æ\91\98è¦\81为空个辰å\85\89æ\8f\90é\86\92æ\88\91',
-'tog-watchlisthideown' => '来许监控列表里向拿我个编辑囥脱佢',
-'tog-watchlisthidebots' => '来许监控列表里向拿机器人个编辑囥脱',
-'tog-watchlisthideminor' => '来拉监控列表里向拿细编辑囥脱',
-'tog-watchlisthideliu' => '来拉监控列表里拿登录用户个改动囥脱',
-'tog-watchlisthideanons' => '来拉监控列表里拿匿名用户个改动囥脱',
+'tog-forceeditsummary' => '編寫æ\91\98è¦\81空起æ\90­æ\88\91è¬\9b',
+'tog-watchlisthideown' => '畀關注表裏我個編寫囥起',
+'tog-watchlisthidebots' => '畀關注表裏機器人個編寫囥起',
+'tog-watchlisthideminor' => '畀關注表裏個小編寫囥起',
+'tog-watchlisthideliu' => '畀關注表裏登錄用戶個編寫囥起',
+'tog-watchlisthideanons' => '畀關注表裏隱姓埋名個用戶個編寫囥起',
 'tog-watchlisthidepatrolled' => '来拉监控列表里拿已巡查过歇个改动囥脱',
-'tog-ccmeonemails' => 'æ\8b¿æ\88\91å\8f\91æ\8b¨å\88«ä¸ªç\94¨æ\88·ä¸ªé\82®ä»¶å\90\8cæ\97¶ä¹\9få\8f\91å\8fªå\89¯æ\9c¬æ\8b¨æ\88\91è\87ªå®¶',
-'tog-diffonly' => '垃拉比较两只修订版本个两样个辰光弗显示页面内容',
-'tog-showhiddencats' => '显示囥脱个分类',
+'tog-ccmeonemails' => 'æ\88\91ç\99¼ç\95\80å\85¶ä»\96ç\94¨æ\88¶å\80\8bé\83µä»¶ä¹\9fç\99¼ä»½ç\95\80æ\88\91',
+'tog-diffonly' => '比較兩個版本個弗樣朞弗顯示頁面內容',
+'tog-showhiddencats' => '顯示囥起個分類',
 'tog-norollbackdiff' => '执行退回之后弗显示两样',
+'tog-useeditwarning' => '改變頁面朆保存朞提醒我',
 
-'underline-always' => '总归',
-'underline-never' => '从来弗',
-'underline-default' => '浏览器默认',
+'underline-always' => '老世',
+'underline-never' => '老世弗',
+'underline-default' => '皮膚要弗瀏覽器默認',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'ç¼\96è¾\91å\8cºå­\97ä½\93æ ·式:',
-'editfont-default' => '浏览器默认',
-'editfont-monospace' => '等宽字体',
-'editfont-sansserif' => 'Sans-serif字',
-'editfont-serif' => 'Serif字',
+'editfont-style' => '編寫å\8d\80å­\97é«\94樣式:',
+'editfont-default' => '瀏覽器默認',
+'editfont-monospace' => '樣闊字體',
+'editfont-sansserif' => 'Sans-serif字',
+'editfont-serif' => 'Serif字',
 
 # Dates
-'sunday' => '礼拜天',
-'monday' => '礼拜一',
-'tuesday' => '礼拜两',
-'wednesday' => '礼拜三',
-'thursday' => '礼拜四',
-'friday' => '礼拜五',
-'saturday' => '礼拜六',
-'sun' => '',
+'sunday' => '星期日',
+'monday' => '星期一',
+'tuesday' => '星期二',
+'wednesday' => '星期三',
+'thursday' => '星期四',
+'friday' => '星期五',
+'saturday' => '星期六',
+'sun' => '',
 'mon' => '一',
 'tue' => '二',
 'wed' => '三',
@@ -125,13 +127,13 @@ $messages = array(
 'dec' => '12月',
 
 # Categories related messages
-'pagecategories' => '$1å\8fªå\88\86ç±»',
-'category_header' => '“$1”分类里向个页面',
-'subcategories' => 'å­\90å\88\86ç±»',
-'category-media-header' => '"$1"分类中里向个媒体',
-'category-empty' => "''迭只分类里向还弗曾包含任何文章咾媒体。''",
-'hidden-categories' => '$1隐藏分类',
-'hidden-category-category' => '隐藏分类',
+'pagecategories' => '$1å\80\8bå\88\86é¡\9e',
+'category_header' => '“$1”分類裏向個頁面',
+'subcategories' => 'å\85\92å\88\86é¡\9e',
+'category-media-header' => '"$1"分類裏向個媒體',
+'category-empty' => "''箇個分類裏向還嘸頁面搭媒体。''",
+'hidden-categories' => '$1囥起分類',
+'hidden-category-category' => '囥起分類',
 'category-subcat-count' => '{{PLURAL:$2|此分类仅有下列一只子分类。|此分类包含下列$1只子分类,共计$2只子分类。}}',
 'category-subcat-count-limited' => '迭只分类包含下底$1只子分类。',
 'category-article-count' => '{{PLURAL:$2|迭只分类只有下底一只页面。|迭只分类包含下底$1只页面,共计$2只页面。}}',
@@ -147,6 +149,7 @@ $messages = array(
 'newwindow' => '(垃拉新窗口里向开开来)',
 'cancel' => '取消',
 'moredotdotdot' => '还有...',
+'morenotlisted' => '箇张表还朆完成',
 'mypage' => '我个页面',
 'mytalk' => '我个讨论',
 'anontalk' => '箇只IP个言论',
@@ -204,8 +207,8 @@ $messages = array(
 'protect' => '保护',
 'protect_change' => '改动',
 'protectthispage' => '保护此页',
-'unprotect' => '解除保护',
-'unprotectthispage' => '解除此页保护',
+'unprotect' => '改变保护状态',
+'unprotectthispage' => '改变箇页保护',
 'newpage' => '新页面',
 'talkpage' => '讨论箇只页面',
 'talkpagelinktext' => '讨论',
@@ -381,6 +384,8 @@ $2',
 注意,有眼页面作兴还是会搭侬登出前头一样显示,一脚到侬清除浏览器缓存。",
 'yourname' => '用户名:',
 'yourpassword' => '密码:',
+'userlogin-yourpassword-ph' => '密码打进去',
+'createacct-yourpassword-ph' => '密码打进去',
 'yourpasswordagain' => '再拍一遍密码:',
 'remembermypassword' => '垃拉箇部电脑上记牢我个密码(可维持$1{{PLURAL:$1|日|日}})',
 'yourdomainname' => '侬个域名:',
@@ -401,7 +406,7 @@ $2',
 'createaccountmail' => '通过 e-mail',
 'createaccountreason' => '理由:',
 'badretype' => '倷输入个密码搭倪个档案弗配。',
-'userexists' => 'ç®\87å\8fªIDå·²ç»\8fæ\8b¨æ³¨å\86\8cè\84±å\93\89ã\80\82请é\87\8dæ\96°å\86\8dæ\8b£ä¸ªç\94¨æ\88·å\90\8d。',
+'userexists' => 'ç\94¨æ\88¶å\90\8dæ\9c\89人ç\94¨å\93\89ã\80\82ç\9b¸å\8b\9eç\88¾æ\8f\80å\88¥æ¨£å\90\8då­\97。',
 'loginerror' => '登录错误',
 'createaccounterror' => '无法建立账户:$1',
 'nocookiesnew' => '侬个账户创建成功!Cookies像煞拨侬关拉许,请开开来再登录。',
@@ -460,8 +465,8 @@ $2',
 'newpassword' => '新密码:',
 'retypenew' => '再打一遍新密码:',
 'resetpass_submit' => '设置密码再登录',
-'changepassword-success' => 'å¯\86ç \81ä¿®æ\94¹æ\88\90å\8a\9f
-现在垃许登录...',
+'changepassword-success' => 'å¯\86碼æ\94¹å¥½å\93\89
+能界登錄當中...',
 'resetpass_forbidden' => '密码弗好更改',
 'resetpass-no-info' => '侬必须登录仔再好直接进入箇只页面。',
 'resetpass-submit-loggedin' => '更改密码',
@@ -470,6 +475,9 @@ $2',
 侬作兴已经成功拿密码改脱,或者已经请求一个新个临时密码。',
 'resetpass-temp-password' => '临时密码:',
 
+# Special:PasswordReset
+'passwordreset-username' => '用戶名',
+
 # Edit page toolbar
 'bold_sample' => '黑体文本',
 'bold_tip' => '黑体文本',
@@ -689,8 +697,8 @@ $3封禁个原因是''$2''",
 'histlegend' => '选择比较版本:标记要比较个两只版本,回车或者揿页面底里个揿钮。<br /> 图例:(当前) = 搭当前版本有啥两样, (上个) = 搭上个版本有啥两样,小 = 小改动。',
 'history-fieldset-title' => '浏览历史',
 'history-show-deleted' => '仅限已经删除个',
-'histfirst' => '顶早',
-'histlast' => '顶晏',
+'histfirst' => '最老',
+'histlast' => '最新',
 'historysize' => '($1字节)',
 'historyempty' => '(空)',
 
@@ -981,6 +989,22 @@ $1",
 'grouppage-sysop' => '{{ns:project}}:管理员',
 'grouppage-bureaucrat' => '{{ns:project}}:行政员',
 
+# Rights
+'right-read' => '閱讀頁面',
+'right-edit' => '編頁面',
+'right-createpage' => '做頁面(弗是討論頁面)',
+'right-createtalk' => '做討論頁',
+'right-createaccount' => '做新用戶帳號',
+'right-minoredit' => '標記編寫是小編寫',
+'right-move' => '移頁面',
+'right-movefile' => '移文件',
+'right-upload' => '傳文件',
+'right-reupload' => '文件以舊換新',
+'right-delete' => '刪頁面',
+'right-browsearchive' => '搜尋已刪頁',
+'right-viewmywatchlist' => '望自己個關注表',
+'right-sendemail' => '發郵件畀各許人',
+
 # Special:Log/newusers
 'newuserlogpage' => '用户创建日志',
 
@@ -988,14 +1012,40 @@ $1",
 'rightslog' => '用户权限日志',
 
 # Associated actions - in the sentence "You do not have permission to X"
+'action-read' => '讀箇頁',
 'action-edit' => '编辑箇只页面',
+'action-createpage' => '做新頁',
+'action-createtalk' => '做討論頁',
+'action-minoredit' => '標小編寫',
+'action-move' => '移箇頁',
+'action-move-subpages' => '移箇頁搭兒頁',
+'action-movefile' => '移箇文件',
+'action-upload' => '傳箇文件',
+'action-reupload' => '箇文件以舊換新',
+'action-upload_by_url' => '從URL傳文件',
+'action-delete' => '刪箇頁',
+'action-deleterevision' => '刪箇版本',
+'action-deletedhistory' => '望箇頁個刪史',
+'action-browsearchive' => '尋已刪頁',
+'action-undelete' => '弗刪箇頁',
+'action-userrights' => '編全部用戶權',
+'action-userrights-interwiki' => '編用戶徠各許維基個權',
+'action-siteadmin' => '數據庫鎖牢要勿開鎖',
+'action-sendemail' => '發郵件',
+'action-editmywatchlist' => '編關注表',
+'action-viewmywatchlist' => '望關注表',
+'action-viewmyprivateinfo' => '望私人信息',
+'action-editmyprivateinfo' => '編私人信息',
 
 # Recent changes
 'nchanges' => '$1趟更改',
+'enhancedrc-history' => '歷史',
 'recentchanges' => '近段辰光个改动',
 'recentchanges-legend' => '近段辰光个改动选项',
 'recentchanges-summary' => '登该个页面浪跟踪最近对维基百科个改动。',
 'recentchanges-feed-description' => '跟踪此订阅垃拉 wiki 高头个最近更改。',
+'recentchanges-label-newpage' => '此垡編寫開新頁',
+'recentchanges-label-minor' => '箇是小編寫',
 'rcnote' => "下底是垃拉$4 $5,最近'''$2'''日天里向个'''$1'''趟最近更改记录:",
 'rclistfrom' => '显示 $1 以来个新改动',
 'rcshowhideminor' => '$1小改动',
@@ -1028,6 +1078,7 @@ $1",
 # Upload
 'upload' => '上载文物',
 'uploadbtn' => '上载文件',
+'reuploaddesc' => '弗傳,轉到傳表單',
 'uploadnologin' => '朆登录',
 'uploadnologintext' => '倷板定要[[Special:UserLogin|登录]]仔再好上载文件。',
 'uploaderror' => '上载出错',
@@ -1047,13 +1098,52 @@ $1",
 'filesource' => '来源:',
 'uploadedfiles' => '已经上载个文件',
 'ignorewarning' => '弗管警告,随便哪亨要保存文件。',
+'ignorewarnings' => '任何警告都弗管',
+'minlength1' => '文件名至少一個字。',
+'illegalfilename' => '“$1”文件名裏有嘸處當頁題目個字。文件名轉改再傳上來試試相。',
+'filename-toolong' => '文件名嘸處比240字節長。',
+'filename-tooshort' => '文件名忒短。',
+'filetype-banned' => '弗準箇類型個文件。',
+'illegal-filename' => '弗準箇文件名。',
+'overwrite' => '弗準文件以舊換新。',
+'unknown-error' => '弗識個錯誤發生。',
+'tmp-create-error' => '臨時文件嘸處造。',
+'tmp-write-error' => '寫臨時文件出錯。',
+'large-file' => '文件名最好休要比$1長;
+箇文件有$2。',
+'largefileserver' => '箇文件比服務器配置個允許值大。',
+'windows-nonascii-filename' => '箇wiki弗支持文件名用特別個字符。',
 'uploadwarning' => '上载警告',
 'savefile' => '保存文件',
 'uploadedimage' => '上载 "[[$1]]"',
 'sourcefilename' => '源文件:',
 'destfilename' => '目标文件名:',
-'watchthisupload' => '监控该只页面',
+'watchthisupload' => '關注箇文件',
 'upload-success-subj' => '上载成功哉',
+'upload-failure-subj' => '傳個問題',
+'upload-warning-subj' => '傳個警告',
+
+'upload-misc-error' => '弗識個傳錯誤',
+'upload-unknown-size' => '弗識大細',
+
+# File backend
+'backend-fail-delete' => '文件“$1”刪弗爻。',
+'backend-fail-move' => '嘸處畀“$1”移到“$2”。',
+'backend-fail-opentemp' => '臨時文件開弗爻。',
+'backend-fail-writetemp' => '嘸處寫到臨時文件。',
+'backend-fail-closetemp' => '嘸處關臨時文件',
+'backend-fail-read' => '嘸處讀“$1”文件。',
+'backend-fail-create' => '嘸處寫“$1”文件。',
+'backend-fail-maxsize' => '嘸處寫"$1"文件,比{{PLURAL:$2|one byte|$2 bytes}}大之故。',
+
+# Lock manager
+'lockmanager-notlocked' => '“$1”朆鎖牢,嘸處開鎖。',
+
+# img_auth script messages
+'img-auth-nofile' => '“$1”文件嘸。',
+
+# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error6' => 'URL走弗進。',
 
 # Special:ListFiles
 'listfiles_search_for' => '寻图片名字:',
@@ -1064,6 +1154,8 @@ $1",
 'listfiles_user' => '用户',
 'listfiles_size' => '尺寸 (bytes)',
 'listfiles_description' => '描述',
+'listfiles-latestversion-yes' => '正是',
+'listfiles-latestversion-no' => '弗是',
 
 # File description page
 'file-anchor-link' => '文物',
@@ -1078,10 +1170,12 @@ $1",
 'filehist-thumbtext' => '于$1个缩图版本',
 'filehist-user' => '用户',
 'filehist-dimensions' => '维度',
+'filehist-filesize' => '文件大細',
 'filehist-comment' => '备注',
 'imagelinks' => '文件链接',
 'linkstoimage' => '下头$1只页面链接到本文件:',
 'nolinkstoimage' => '呒拨页面链接到该只文件。',
+'linkstoimage-redirect' => '$1(文件轉戳到)$2',
 'sharedupload' => '箇只文件来源于$1,渠作兴垃拉其它项目当中拨应用。',
 'uploadnewversion-linktext' => '上载该文件个新版',
 
@@ -1096,6 +1190,9 @@ $1",
 'filedelete-legend' => '删除文物',
 'filedelete-comment' => '理由:',
 'filedelete-submit' => '删除',
+'filedelete-reason-otherlist' => '別樣原因',
+'filedelete-edit-reasonlist' => '編刪個原因',
+'filedelete-maintenance-title' => '文件刪弗爻',
 
 # MIME search
 'download' => '下载',
@@ -1103,19 +1200,31 @@ $1",
 # List redirects
 'listredirects' => '重定向列表',
 
+# Unused templates
+'unusedtemplateswlh' => '別樣鏈接',
+
 # Random page
 'randompage' => '随便望望',
 
+# Random page in category
+'randomincategory' => '分類裏個隨便一頁',
+'randomincategory-selectcategory-submit' => '去',
+
 # Statistics
 'statistics' => '统计',
 'statistics-header-users' => '用户资料',
 'statistics-users-active' => '活跃用户',
 
+'pageswithprop-submit' => '去',
+
 'brokenredirects' => '坏脱个重定向',
-'brokenredirectstext' => 'ä¸\8båº\95个é\87\8då®\9aå\90\91é\93¾å\88°å¼\97å­\98å\9c¨ä¸ªé¡µé\9d¢:',
+'brokenredirectstext' => 'ä¸\8bå\90\91å\80\8bè½\89æ\88³é\8f\88æ\8e¥å\88°æ\9c\86è¦\8bå\80\8bé \81é\9d¢ï¼\9a',
 'brokenredirects-edit' => '编辑',
 'brokenredirects-delete' => '删除',
 
+'withoutinterwiki' => '嘸語言鏈接個頁面',
+'withoutinterwiki-summary' => '下向許頁面朆鏈接到別樣語言版本。',
+
 # Miscellaneous special pages
 'nbytes' => '$1字节',
 'nmembers' => '$1只成员',
@@ -1132,6 +1241,7 @@ $1",
 'protectedpages' => '已保护页面',
 'protectedtitles' => '已保护个标题',
 'listusers' => '用户列表',
+'listusers-creationsort' => '照建個日子排',
 'newpages' => '新页面',
 'newpages-username' => '用户名:',
 'ancientpages' => '顶顶老个页面',
@@ -1146,8 +1256,8 @@ $1",
 'booksources-go' => '转到',
 
 # Special:Log
-'specialloguserlabel' => 'ç\94¨æ\88·:',
-'speciallogtitlelabel' => '标题:',
+'specialloguserlabel' => 'ç\94¨æ\88¶ï¼\9a',
+'speciallogtitlelabel' => '目標(標題要弗用戶):',
 'log' => '记录',
 
 # Special:AllPages
@@ -1171,35 +1281,46 @@ $1",
 
 # Special:LinkSearch
 'linksearch' => '外部链接',
+'linksearch-ns' => '名字空間:',
+'linksearch-ok' => '搜尋',
 
 # Special:ListUsers
 'listusers-submit' => '显示',
+'listusers-noresult' => '嘸箇用戶。',
+
+# Special:ActiveUsers
+'activeusers' => '活躍用戶表',
 
 # Special:ListGroupRights
 'listgrouprights-members' => '(成员列表)',
 
 # Email user
 'emailuser' => '发E-mail拨该个用户',
-'emailfrom' => '从',
-'emailto' => '发拨',
-'emailsubject' => '主题',
+'emailuser-title-notarget' => '郵箱用戶',
+'emailpage' => '郵箱用戶',
+'emailfrom' => '從',
+'emailto' => '發畀',
+'emailsubject' => '主題',
 'emailmessage' => '信息',
 'emailsend' => '发罢',
+'emailccme' => '我個信息發份畀我',
 'emailsent' => '电子邮件发出去哉',
 'emailsenttext' => '倷个电子邮件讯息已经拨发送哉。',
 
 # Watchlist
-'watchlist' => '监控列表',
-'mywatchlist' => '我个监控列表',
+'watchlist' => '關注表',
+'mywatchlist' => '我個關注表',
 'nowatchlist' => '倷个监控列表是空个。',
 'watchnologin' => '朆登录',
-'addedwatchtext' => "该个页面 \"[[:\$1]]\" 已经加到侬个[[Special:Watchlist|监控列表]]哉。
-将来对该页面个改动搭仔搭界个讲张页个改动会列表垃该面,并且页面会垃拉[[Special:RecentChanges|近段辰光个改变列表]]里向显示成功'''黑体''',实梗好外加便当拿渠拣出来。假使侬歇仔两日又想拿箇个页面登侬个监控列表里向拿脱个说法,垃侧条里向点击“弗要监控。",
+'addedwatchtext' => '“[[:$1]]”箇頁加進爾個[[Special:Watchlist|關注表]]去哉。
+轉日箇頁搭渠討論頁個變化會排箇耷。',
+'removewatch' => '從關注表移爻',
 'removedwatchtext' => '页面[[:$1]]已经从[[Special:Watchlist|侬个监控页面]]里向拿脱。',
 'watch' => '监控',
 'watchthispage' => '监控该只页面',
 'unwatch' => '弗要监控',
 'unwatchthispage' => '停止监控',
+'notanarticle' => '弗是內容頁',
 'watchlist-details' => '弗包括讨论页,有 $1 页垃拉侬监控列表高头。',
 'watchlistcontains' => '倷个监控列表包括{{PLURAL:$1|1|$1}}只页面。',
 'wlshowlast' => '显示上个 $1 个钟头 $2 日 $3',
@@ -1248,14 +1369,19 @@ $1",
 'protect-cascadeon' => '下底个{{PLURAL:$1|一只|多只}}页面包含 本页面个同时,启动了连锁保护,因此本页面目前也拨保护拉许,弗好编辑。侬可以设置本页面个保护级别,但箇个并弗会对连锁保护有所影响。',
 'protect-default' => '允许所有用户',
 'protect-fallback' => '需要“$1”个许可',
-'protect-level-autoconfirmed' => 'å¼\97å\85\81许æ\96°ç\94¨æ\88·æ\90­ä»\94å¼\97æ\9b¾æ³¨å\86\8c个ç\94¨æ\88·',
-'protect-level-sysop' => '仅管理员',
+'protect-level-autoconfirmed' => 'å¼\97å\87\86æ\96°ç\94¨æ\88¶æ\90­é\82\84æ\9c\86註å\86\8aå\80\8bç\94¨æ\88',
+'protect-level-sysop' => '只准管理員',
 'protect-summary-cascade' => '联锁',
 'protect-expiring' => '终止于$1(UTC)',
 'protect-cascade' => '保护本页里向包含个页面(连锁保护)',
 'protect-cantedit' => '侬呒此更改迭只页面个保护等级,因为侬呒没权限编辑渠。',
+'protect-othertime' => '各許時間:',
+'protect-othertime-op' => '各許時間',
+'protect-otherreason-op' => '各許原因',
 'restriction-type' => '权限:',
 'restriction-level' => '限制级别:',
+'minimum-size' => '最小大細',
+'maximum-size' => '最大大細',
 
 # Restrictions (nouns)
 'restriction-edit' => '编辑',
@@ -1265,7 +1391,10 @@ $1",
 'undeletepage' => '查看搭仔恢复删脱个页面',
 'viewdeletedpage' => '望望删脱个页面',
 'undeletelink' => '查看/恢复',
+'undeleteviewlink' => '望',
+'undeletereset' => '轉設',
 'undeletecomment' => '理由:',
+'undelete-search-submit' => '搜尋',
 
 # Namespace form on various pages
 'namespace' => '名字空间:',
@@ -1283,7 +1412,7 @@ $1",
 
 'sp-contributions-newbies' => '仅显示新用户个贡献',
 'sp-contributions-blocklog' => '查封记录',
-'sp-contributions-talk' => '讲张',
+'sp-contributions-talk' => 'è¨\8eè«\96',
 'sp-contributions-search' => '搜索贡献记录',
 'sp-contributions-username' => 'IP地址或用户名:',
 'sp-contributions-submit' => '寻',
@@ -1296,7 +1425,7 @@ $1",
 'nolinkshere' => "呒拨页面链接到 '''[[:$1]]'''。",
 'isredirect' => '重定向页面',
 'istemplate' => '包含',
-'isimage' => '图片链接',
+'isimage' => '文件鏈接',
 'whatlinkshere-prev' => '前$1个',
 'whatlinkshere-next' => '后$1个',
 'whatlinkshere-links' => '←链入',
@@ -1314,7 +1443,7 @@ $1",
 'ipbother' => '其它时间:',
 'ipboptions' => '2个钟头:2 hours,1日天:1 day,3日天:3 days,1个礼拜:1 week,2个礼拜:2 weeks,1个号头:1 month,3个号头:3 months,6个号头:6 months,1年:1 year,永久:infinite',
 'badipaddress' => '无效 IP 地址',
-'ipblocklist' => '封禁拉许个IP地址搭仔用户名',
+'ipblocklist' => '封哉個用戶',
 'infiniteblock' => '永远',
 'blocklink' => '封禁',
 'unblocklink' => '解封',
@@ -1322,22 +1451,29 @@ $1",
 'contribslink' => '贡献',
 'blocklogpage' => '封禁日志',
 'blocklogentry' => '“[[$1]]”拨查封拉许,终止辰光为$2 $3',
-'blocklogtext' => '该个是用户封禁搭仔解禁操作个记录。自动封禁个IP地址弗会列勒该答。到[[Special:BlockList|IP 封禁列表]]去看当前生效个封禁列表。',
+'blocklogtext' => '箇是用戶封搭解封操作個記錄。自動封個IP地址弗排。到[[Special:BlockList|IP 封表]]裏望目前生效個封表。',
 'unblocklogentry' => '$1已经拨解封',
 'block-log-flags-nocreate' => '开户已经拨禁用',
 'proxyblocksuccess' => '好哉。',
 
+# Developer tools
+'lockdb' => '鎖數據庫',
+'unlockdb' => '開鎖數據庫',
+'lockbtn' => '鎖數據庫',
+'unlockbtn' => '數據庫開鎖',
+'databasenotlocked' => '數據庫朆鎖牢。',
+
 # Move page
 'move-page-legend' => '页面捅荡',
-'movepagetext' => "下底只表格会重新命名一只页面,拿俚所有个历史也侪捅到新名字下头
-旧个名字会变成到新名字个重定向页面
+'movepagetext' => "用下底個表會轉名字一張頁面,全部歷史都移到新名字裏
+老個名字會變成戳到新名字個轉戳頁
 到旧页面个连接弗会改变;注意检查双重定向或者坏脱个重定向。
 倷有实概个责任,即连接原要连到俚笃应该连到个场呵去。
 
 注意,如果新名字归面搭已经有页面个说话,老名字个页面'''弗'''会拨移动,除非归个是只空页面或者是只重定向并且呒拨编辑历史。个也就是讲,假使倷犯错误个说话,倷好拿一只重命名过个页面还原到原来个名字,但倷弗好覆盖一只已经来浪个页面。
 
 <b>警告!</b>
-个作兴会引起对一只热门页面剧烈个、想弗着个改变。
+箇嘸數會有名氣個引起对一只热门页面剧烈个、想弗着个改变。
 来操作前头请倷确定倷已经充分了解个能做法个后果。",
 'movepagetalktext' => "相关讨论页将自动搭该页面一淘移动,'''除非''':
 *新页面已经有仔一只非空个讨论页,或者
index 46d2c80..448785e 100644 (file)
@@ -443,7 +443,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => 'וועגן {{SITENAME}}',
 'aboutpage' => 'Project:וועגן',
-'copyright' => '×\93ער ×\90×\99× ×\94×\90Ö·×\9c×\98 ×\90×\99×\96 ×\91×\90רע×\9b×\98×\99×\92×\98 ×\90×\95× ×\98ער $1.',
+'copyright' => '×\93ער ×\90×\99× ×\94×\90Ö·×\9c×\98 ×\90×\99×\96 ×¤Ö¿×\90ַר×\90Ö·×\9f ×\90×\95× ×\98ער $1 ×\95×\95×¢×\9f × ×\99ש×\98 ×\91×\90×\95×\95×\99×\96×\9f ×\90× ×\93ערש.',
 'copyrightpage' => '{{ns:project}}:קאפירעכטן',
 'currentevents' => 'אקטועלע געשעענישן',
 'currentevents-url' => 'Project:אקטועלע געשענישען',
@@ -1218,6 +1218,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'באהאלטונגען לאג',
+'suppressionlogtext' => 'אונטן געפינט זיך א ליסטע פון אויסמעקונגען און בלאקן וואס באהאנדלען אינהאלט באהאלטן פון אדמיניסטראטארן.
+זעט די [[Special:BlockList|בלאקן ליסטע]] פאר דער ליסטע פון אקטועלע בלאקן.',
 
 # History merging
 'mergehistory' => 'צונויפֿגיסן בלאט היסטאריעס',
@@ -1538,6 +1540,7 @@ $1",
 'right-unblockself' => 'זיך אליין אויפֿשפאַרן',
 'right-protect' => 'ענדערן שוץ ניוואען און רעדאַגירן קאסקאד־געשיצטע בלעטער',
 'right-editprotected' => 'רעדאַגירן בלעטער געשיצט ווי "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'רעדאַגירן בלעטער געשיצט ווי "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'רעדאַקטירן די באַניצער אייבערפֿלאַך',
 'right-editusercssjs' => 'רעדאַקטירן אַנדערע באַניצערס CSS און JS טעקעס',
 'right-editusercss' => 'רעדאַקטירן אַנדערע באַניצערס CSS טעקעס',
@@ -1599,8 +1602,8 @@ $1",
 'action-block' => 'בלאקירן דעם באַניצער פֿון רעדאַקטירן',
 'action-protect' => 'ענדערן שיצונג ניוואען פֿאַר דעם בלאַט',
 'action-rollback' => 'גיך צוריקדרייען די רעדאַקטירונגען פונעם לעצטן באַניצער וואס האט רעדאַקטירט א געוויסן בלאַט',
-'action-import' => '×\90×\99×\9eפ×\90ר×\98×\99ר×\9f ×\93×¢×\9d ×\91×\9c×\90Ö·×\98 פֿון אַן אַנדער וויקי',
-'action-importupload' => '×\90×\99×\9eפ×\90ר×\98×\99ר×\9f ×\93×¢×\9d ×\91×\9c×\90Ö·×\98 דורך ארויפֿלאָדן אַ טעקע',
+'action-import' => '×\90×\99×\9eפ×\90ר×\98×\99ר×\9f ×\91×\9c×¢×\98ער פֿון אַן אַנדער וויקי',
+'action-importupload' => '×\90×\99×\9eפ×\90ר×\98×\99ר×\9f ×\91×\9c×¢×\98ער דורך ארויפֿלאָדן אַ טעקע',
 'action-patrol' => "אנצייכענען אנדערס' רעדאקטירונגן אלס נאכגעקוקט",
 'action-autopatrol' => 'אנצוצייכענען אייערע רעדאקטירונגן אלס איבערגעקוקטע',
 'action-unwatchedpages' => 'זען די ליסטע פון נישט אויפֿגעפאַסטע בלעטער',
@@ -1816,6 +1819,8 @@ $1",
 'backend-fail-read' => 'קען נישט ליינען טעקע "$1".',
 'backend-fail-create' => 'קען נישט שרייבן טעקע "$1".',
 'backend-fail-maxsize' => 'מ\'האט נישט געקענט שרייבן די טעקע "$1" ווייל זי איז גרעסער פון {{PLURAL:$2|איין בייט|$2 בייטן}}.',
+'backend-fail-connect' => 'מ\'קען נישט פארבינדן צום שפייכלער־בעקענד "$1".',
+'backend-fail-internal' => 'אן אומבאוואוסטער פֿעלער האט פאסירט אין שפייכלער־בעקענד "$1".',
 'backend-fail-contenttype' => 'מ\'קען נישט פעסטשטעלן דעם אינהאלט טיפ פון דער טעקע צו שפייכלערן ביי "$1".',
 
 # Lock manager
@@ -2370,7 +2375,7 @@ $UNWATCHURL
 די לעצטע ענדערונג צום בלאַט איז געווען פון [[User:$3|$3]] ([[User talk:$3|רעדן]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "קורץ ווארט איז געווען: \"'''\$1'''\".",
 'revertpage' => 'רעדאַקטירונגען פֿון  [[Special:Contributions/$2|$2]] צוריקגענומען ([[User talk:$2|רעדן]])  צו דער לעצטער ווערסיע פֿון [[User:$1|$1]]',
-'revertpage-nouser' => 'צוריקגעשטעלט רעדאַקטירונגען פֿון א באהאלטענעם באַניצער צו לעצטער רעוויזיע פֿון [[User:$1|$1]]',
+'revertpage-nouser' => 'צוריקגעשטעלט רעדאַקטירונגען פֿון א באהאלטענעם באַניצער צו לעצטער רעוויזיע פֿון {{GENDER:$1|[[User:$1|$1]]}}',
 'rollback-success' => 'צוריקגעדרייט רעדאַקטירונגען פֿון $1 צו דער לעצטע ווערסיע פֿון $2',
 
 # Edit tokens
@@ -3961,9 +3966,9 @@ $5
 'limitreport-ppvisitednodes' => 'פאר־פראצעסאר באזוכן נאדן־צאל',
 'limitreport-ppgeneratednodes' => 'פאר־פראצעסאר גענערירט נאדן־צאל',
 'limitreport-postexpandincludesize' => 'טעקסט גרייס נאכן שפרייטן',
-'limitreport-postexpandincludesize-value' => '$1/$2 בייטן',
+'limitreport-postexpandincludesize-value' => '{{PLURAL:$2|בייט|בייטן}}$1/$2',
 'limitreport-templateargumentsize' => ' מוסטער פאראמעטער גרייס',
-'limitreport-templateargumentsize-value' => '$1/$2 בייטן',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|בייט|בייטן}}',
 'limitreport-expansiondepth' => 'גרעסטע אויסשפרייט טיף',
 'limitreport-expensivefunctioncount' => 'צאל פזרנישע פארזער־פֿונקציעס',
 
index e20e6f5..d5b9bda 100644 (file)
@@ -3530,8 +3530,7 @@ $5
 
 # Database error messages
 'dberr-header' => 'Wiki yìí ní ìsòro',
-'dberr-problems' => 'Àforìjì!
-Ibiìtakùn yìí únkojú ìsòro ìṣìṣẹ́ẹ̀rọ.',
+'dberr-problems' => 'Àforìjì! Ibiìtakùn yìí únkojú ìsòro ìṣìṣẹ́ẹ̀rọ.',
 'dberr-again' => 'Ẹ mú sùúrù fún ìṣẹ́jú díẹ̀ kí ẹ tó tún ṣe ìrùsókè.',
 'dberr-info' => '(Kò le farakan ẹ̀rọ-ìpèsè ibùdó dátà: $1)',
 'dberr-usegoogle' => 'Ẹ le ṣàwárí lórí Google báyìí ná.',
index f4c5cc6..284ecc6 100644 (file)
@@ -3278,8 +3278,7 @@ MediaWiki是基於使用目的而加以發佈,但係就唔會負上任何嘅
 
 # Database error messages
 'dberr-header' => '呢個 wiki 出咗問題',
-'dberr-problems' => '對唔住!
-呢一版出現咗一啲技術性問題。',
+'dberr-problems' => '對唔住!呢一版出現咗一啲技術性問題。',
 'dberr-again' => '試吓等多幾分種然後開試。',
 'dberr-info' => '(唔能夠連繫個資料伺服器: $1)',
 'dberr-usegoogle' => '響現階段你可以用 Google 去搵嘢。',
index 8c33b35..01de748 100644 (file)
@@ -608,7 +608,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '关于{{SITENAME}}',
 'aboutpage' => 'Project:关于',
-'copyright' => '本站全部文字内容使用$1授权。',
+'copyright' => '本站文字内容依$1授权,特殊条款亦可能适用。',
 'copyrightpage' => '{{ns:project}}:著作权',
 'currentevents' => '新闻动态',
 'currentevents-url' => 'Project:新闻动态',
@@ -1497,10 +1497,10 @@ $1",
 'prefs-help-signature' => '讨论页面上的评论应该使用“<nowiki>~~~~</nowiki>”签名,它会自动转换为你的签名及时间戳。',
 'badsig' => '错误的原始签名。请检查HTML标签。',
 'badsiglength' => '签名过长。请不超过$1个字符。',
-'yourgender' => '您希望如何显示性别?',
-'gender-unknown' => 'æ\88\91ä¸\8dæ\83³æ\8c\87å®\9a',
-'gender-male' => '',
-'gender-female' => '女',
+'yourgender' => '你希望使用什么性别称呼?',
+'gender-unknown' => 'æ\88\91ä¸\8dæ\84¿æ\84\8fæ\8c\87æ\98\8eï¼\88被称为â\80\9cä»\96/她â\80\9dï¼\89',
+'gender-male' => '',
+'gender-female' => '她',
 'prefs-help-gender' => '这是选填项目。
 软件使用其以显示正确的性别称呼。
 该信息将会公开。',
@@ -1684,8 +1684,8 @@ $1",
 'action-block' => '阻止该用户编辑',
 'action-protect' => '更改本页面的保护级别',
 'action-rollback' => '快速回退最后编辑特定页面的用户的编辑',
-'action-import' => '从其他wiki导入页面',
-'action-importupload' => '从文件上传导入页面',
+'action-import' => '从其他wiki导入页面',
+'action-importupload' => '从文件上传导入页面',
 'action-patrol' => '标记他人的编辑为已巡查',
 'action-autopatrol' => '使你的编辑标记为已巡查',
 'action-unwatchedpages' => '查看未受监视页面的列表',
@@ -2187,6 +2187,7 @@ $1',
 'listusers' => '用户列表',
 'listusers-editsonly' => '只显示有编辑的用户',
 'listusers-creationsort' => '按建立日期排序',
+'listusers-desc' => '按降序排序',
 'usereditcount' => '$1次编辑',
 'usercreated' => '{{GENDER:$3|创建}}于$1 $2',
 'newpages' => '新页面',
@@ -2361,7 +2362,7 @@ $1',
 'notanarticle' => '非内容页面',
 'notvisiblerev' => '上次由不同用户所作的修订版本已经删除',
 'watchlist-details' => '不计讨论页面,你的监视列表中有$1个页面。',
-'wlheader-enotif' => '已启用电子邮件通知',
+'wlheader-enotif' => '已启用电子邮件通知',
 'wlheader-showupdated' => "你上次访问后更改的页面以'''粗体'''显示",
 'watchmethod-recent' => '检查被监视页面的最近编辑',
 'watchmethod-list' => '查看监视页中的最新修改',
@@ -2462,7 +2463,7 @@ $UNWATCHURL
 本页最后的编辑者是[[User:$3|$3]]([[User talk:$3|讨论]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])。',
 'editcomment' => '编辑摘要:"<i>$1</i>"。',
 'revertpage' => '已恢复[[Special:Contributions/$2|$2]]([[User talk:$2|讨论]])的编辑至[[User:$1|$1]]的最后一个修订版本',
-'revertpage-nouser' => '恢复由隐藏用户的编辑到[[User:$1|$1]]的最后一个修订版本',
+'revertpage-nouser' => '恢复由隐藏用户的编辑到{{GENDER:$1|[[User:$1|$1]]}}的最后一个修订版本',
 'rollback-success' => '已恢复$1的编辑,更改回$2的最后修订版本。',
 
 # Edit tokens
@@ -3984,8 +3985,7 @@ MediaWiki发表时预期有用,但对此'''无任何保证''',亦无隐含
 
 # Database error messages
 'dberr-header' => '本wiki出现了问题',
-'dberr-problems' => '抱歉!
-本网站出现了一些技术问题。',
+'dberr-problems' => '抱歉!本网站出现了一些技术问题。',
 'dberr-again' => '请等待几分钟后重试。',
 'dberr-info' => '(无法连接到数据库服务器:$1)',
 'dberr-info-hidden' => '(无法连接到数据库服务器)',
index 3bbd6f7..ae384e9 100644 (file)
@@ -13,6 +13,7 @@
  * @author Bencmq
  * @author Breawycker
  * @author Ch.Andrew
+ * @author Cwlin0416
  * @author Danny0838
  * @author FireJackey
  * @author Frankou
@@ -385,7 +386,7 @@ $messages = array(
 'december-date' => '12月$1日',
 
 # Categories related messages
-'pagecategories' => '$1個分類',
+'pagecategories' => '$1 個分類',
 'category_header' => '「$1」分類中的頁面',
 'subcategories' => '子分類',
 'category-media-header' => '「$1」分類中的媒體',
@@ -509,7 +510,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '關於 {{SITENAME}}',
 'aboutpage' => 'Project:關於',
-'copyright' => '本站內容以$1條款提供。',
+'copyright' => '除非另有說明,否則本站內容均以$1條款提供。',
 'copyrightpage' => '{{ns:project}}:版權訊息',
 'currentevents' => '新聞動態',
 'currentevents-url' => 'Project:新聞動態',
@@ -1626,8 +1627,8 @@ $1",
 'action-block' => '封鎖這位用戶的編輯',
 'action-protect' => '更改這個頁面的保護等級',
 'action-rollback' => '快速回退最後對特定頁面作出的編輯的用戶的所有編輯',
-'action-import' => 'ç\94±å\8f¦ä¸\80å\80\8bwikiå\8c¯å\85¥é\80\99å\80\8b頁面',
-'action-importupload' => '由一個檔案上載中匯入這個頁面',
+'action-import' => 'ç\94±å\85¶ä»\96 Wiki å\8c¯å\85¥頁面',
+'action-importupload' => '由檔案上傳匯入頁面',
 'action-patrol' => '標示其它的編輯為已巡查的',
 'action-autopatrol' => '將您的編輯標示為已巡查的',
 'action-unwatchedpages' => '檢視未被監視的頁面',
@@ -2090,7 +2091,7 @@ $1',
 
 # Miscellaneous special pages
 'nbytes' => '$1位元組',
-'ncategories' => '$1個分類',
+'ncategories' => '$1 個分類',
 'ninterwikis' => '$1 個跨維基',
 'nlinks' => '$1個連結',
 'nmembers' => '$1個成員',
@@ -2140,6 +2141,7 @@ $1',
 'listusers' => '用戶列表',
 'listusers-editsonly' => '只顯示有編輯的用戶',
 'listusers-creationsort' => '按建立日期排序',
+'listusers-desc' => '使用降冪排序',
 'usereditcount' => '$1 次編輯',
 'usercreated' => '$1 $2{{GENDER:$3|創建}}',
 'newpages' => '最新頁面',
@@ -2420,7 +2422,7 @@ $UNWATCHURL
 該頁最後的編輯者是[[User:$3|$3]]([[User talk:$3|討論]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])。',
 'editcomment' => "編輯摘要: \"''\$1''\"。",
 'revertpage' => '已恢復由[[Special:Contributions/$2|$2]]([[User talk:$2|對話]])的編輯至[[User:$1|$1]]的最後一個修訂版本',
-'revertpage-nouser' => 'å\8f\96æ¶\88ç\94±é\9a±è\97\8fç\94¨æ\88¶ä½\9cå\87ºç\9a\84編輯ï¼\8c並æ\81¢å¾©å\88°[[User:$1|$1]]ç\9a\84æ\9c\80å¾\8cä¸\80å\80\8bä¿®è¨\82版本',
+'revertpage-nouser' => 'å·²ç\94±é\9a±è\97\8fç\9a\84使ç\94¨è\80\85é\82\84å\8e\9f編輯è\87³ä¸\8aå\80\8b {{GENDER:$1|[[使ç\94¨è\80\85:$1|$1]]}} ä¿®è¨\82ç\9a\84版本',
 'rollback-success' => '已恢復$1的編輯;
 更改回$2的最後修訂版本。',
 
@@ -2600,7 +2602,7 @@ $1',
 'whatlinkshere-hidetrans' => '$1包含',
 'whatlinkshere-hidelinks' => '$1連結',
 'whatlinkshere-hideimages' => '$1檔案連結',
-'whatlinkshere-filters' => '過濾器',
+'whatlinkshere-filters' => '搜尋',
 
 # Block/unblock
 'autoblockid' => '自動查封 #$1',
@@ -2874,7 +2876,7 @@ $1被封禁的理由是“$2”',
 'allmessagestext' => '這裡列出所有可定製的系統界面。
 如果想貢獻正宗的MediaWiki本地化的話,請參閱[//www.mediawiki.org/wiki/Localisation MediaWiki本地化]以及[//translatewiki.net translatewiki.net]。',
 'allmessagesnotsupportedDB' => "這個頁面無法使用,因為'''\$wgUseDatabaseMessages'''已被設定關閉。",
-'allmessages-filter-legend' => '過濾',
+'allmessages-filter-legend' => '搜尋',
 'allmessages-filter' => '以自定狀況過濾:',
 'allmessages-filter-unmodified' => '未修改',
 'allmessages-filter-all' => '所有',
@@ -3103,7 +3105,7 @@ $2',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|重定向}}; $3 {{PLURAL:$3|非重定向}})',
 'pageinfo-firstuser' => '頁面的建立者',
 'pageinfo-firsttime' => '頁面創建日期',
-'pageinfo-lastuser' => '最近編者',
+'pageinfo-lastuser' => 'æ\9c\80è¿\91編輯è\80\85',
 'pageinfo-lasttime' => '最新編輯日期',
 'pageinfo-edits' => '編輯總次數',
 'pageinfo-authors' => '作者總數',
@@ -3192,7 +3194,7 @@ $1',
 'newimages' => '新建圖片畫廊',
 'imagelisttext' => "以下是按$2排列的'''$1'''個檔案列表。",
 'newimages-summary' => '這個特殊頁面中顯示最後已上傳的檔案。',
-'newimages-legend' => '過濾',
+'newimages-legend' => '搜尋',
 'newimages-label' => '檔案名稱(或它的一部份):',
 'showhidebots' => '(機器人$1)',
 'noimages' => '無可檢視圖片。',
@@ -3924,7 +3926,7 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 # Special:Tags
 'tags' => '有效標籤',
 'tag-filter' => '[[Special:Tags|標籤]]過濾器:',
-'tag-filter-submit' => '過濾器',
+'tag-filter-submit' => '搜尋',
 'tag-list-wrapper' => '([[Special:Tags|$1個標籤]]:$2)',
 'tags-title' => '標籤',
 'tags-intro' => '這個頁面列示出在軟件中已標示的編輯,以及它們的解釋。',
@@ -3949,8 +3951,7 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 
 # Database error messages
 'dberr-header' => '這個 wiki 出現了問題',
-'dberr-problems' => '抱歉!
-這個網站出現了一些技術上的問題。',
+'dberr-problems' => '歉!這個網站出現了一些技術上的問題。',
 'dberr-again' => '嘗試等候數分鐘後,然後再試。',
 'dberr-info' => '(無法連繫到資料庫伺服器: $1)',
 'dberr-info-hidden' => '(無法與資料庫伺服器聯繫)',
index 0023c6d..30e93c9 100644 (file)
@@ -477,15 +477,20 @@ abstract class Maintenance {
         * Do some sanity checking and basic setup
         */
        public function setup() {
-               global $wgCommandLineMode, $wgRequestTime;
+               global $IP, $wgCommandLineMode, $wgRequestTime;
 
                # Abort if called from a web server
                if ( isset( $_SERVER ) && isset( $_SERVER['REQUEST_METHOD'] ) ) {
                        $this->error( 'This script must be run from the command line', true );
                }
 
+               if ( $IP === null ) {
+                       $this->error( "\$IP not set, aborting!\n" .
+                               '(Did you forget to call parent::__construct() in your maintenance script?)', 1 );
+               }
+
                # Make sure we can handle script parameters
-               if ( !function_exists( 'hphp_thread_set_warmup_enabled' ) && !ini_get( 'register_argc_argv' ) ) {
+               if ( !defined( 'HPHP_VERSION' ) && !ini_get( 'register_argc_argv' ) ) {
                        $this->error( 'Cannot get command line arguments, register_argc_argv is set to false', true );
                }
 
diff --git a/maintenance/checkLess.php b/maintenance/checkLess.php
new file mode 100644 (file)
index 0000000..d02d8a7
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Checks LESS files in known resources for errors
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ */
+
+require_once __DIR__ . '/Maintenance.php';
+
+/**
+ * @ingroup Maintenance
+ */
+class CheckLess extends Maintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = 'Checks LESS files for errors';
+       }
+
+       public function execute() {
+               $result = false;
+               $resourceLoader = new ResourceLoader();
+               foreach ( $resourceLoader->getModuleNames() as $name ) {
+                       /** @var ResourceLoaderFileModule $module */
+                       $module = $resourceLoader->getModule( $name );
+                       if ( !$module || !$module instanceof ResourceLoaderFileModule ) {
+                               continue;
+                       }
+
+                       $hadErrors = false;
+                       foreach ( $module->getAllStyleFiles() as $file ) {
+                               if ( $module->getStyleSheetLang( $file ) !== 'less' ) {
+                                       continue;
+                               }
+                               try {
+                                       $compiler = ResourceLoader::getLessCompiler();
+                                       $compiler->compileFile( $file );
+                               } catch ( Exception $e ) {
+                                       if ( !$hadErrors ) {
+                                               $this->error( "Errors checking module $name:\n" );
+                                               $hadErrors = true;
+                                       }
+                                       $this->error( $e->getMessage() . "\n" );
+                                       $result = true;
+                               }
+                       }
+               }
+               if ( !$result ) {
+                       $this->output( "No errors found\n" );
+               } else {
+                       die( 1 );
+               }
+       }
+}
+
+$maintClass = 'CheckLess';
+require_once RUN_MAINTENANCE_IF_MAIN;
index 9dd62a3..c2ba555 100644 (file)
@@ -113,7 +113,7 @@ class UploadStashCleanup extends Maintenance {
 
                // Apparently lots of stash files are not registered in the DB...
                $dir = $tempRepo->getZonePath( 'public' );
-               $iterator = $tempRepo->getBackend()->getFileList( array( 'dir' => $dir ) );
+               $iterator = $tempRepo->getBackend()->getFileList( array( 'dir' => $dir, 'adviseStat' => 1 ) );
                $this->output( "Deleting orphaned temp files...\n" );
                if ( strpos( $dir, '/local-temp' ) === false ) { // sanity check
                        $this->error( "Temp repo is not using the temp container.", 1 ); // die
index 4f6bed5..0b21a1f 100644 (file)
@@ -378,7 +378,7 @@ class GenerateSitemap extends Maintenance {
        function open( $file, $flags ) {
                $resource = $this->compress ? gzopen( $file, $flags ) : fopen( $file, $flags );
                if ( $resource === false ) {
-                       wfDebugDieBacktrace( __METHOD__ . " error opening file $file with flags $flags. Check permissions?" );
+                       throw new MWException( __METHOD__ . " error opening file $file with flags $flags. Check permissions?" );
                }
                return $resource;
        }
@@ -388,7 +388,7 @@ class GenerateSitemap extends Maintenance {
         */
        function write( &$handle, $str ) {
                if ( $handle === true || $handle === false ) {
-                       wfDebugDieBacktrace( __METHOD__ . " was passed a boolean as a file handle.\n" );
+                       throw new MWException( __METHOD__ . " was passed a boolean as a file handle.\n" );
                }
                if ( $this->compress ) {
                        gzwrite( $handle, $str );
index c153fa7..d47138d 100644 (file)
@@ -261,6 +261,7 @@ $wgIgnoredMessages = array(
        'redirect-text',
        'edithelppage',
        'autocomment-prefix',
+       'move-redirect-text',
 );
 
 /** Optional messages, which may be translated only if changed in the target language. */
index 0e9cfef..01976f4 100644 (file)
@@ -1841,6 +1841,7 @@ $wgMessageStructure = array(
                'listusers-summary',
                'listusers-editsonly',
                'listusers-creationsort',
+               'listusers-desc',
                'usereditcount',
                'usercreated',
                'newpages',
@@ -2447,6 +2448,7 @@ $wgMessageStructure = array(
                'movesubpagetext',
                'movenosubpage',
                'movereason',
+               'move-redirect-text',
                'revertmove',
                'delete_and_move',
                'delete_and_move_text',
@@ -3772,7 +3774,10 @@ $wgMessageStructure = array(
                'tags-tag',
                'tags-display-header',
                'tags-description-header',
+               'tags-active-header',
                'tags-hitcount-header',
+               'tags-active-yes',
+               'tags-active-no',
                'tags-edit',
                'tags-hitcount',
        ),
index 0e6725c..98ea930 100644 (file)
@@ -160,7 +160,7 @@ class RefreshLinks extends Maintenance {
                        }
 
                        if ( !$redirectsOnly ) {
-                               $this->output( "Refreshing links table.\n" );
+                               $this->output( "Refreshing links tables.\n" );
                                $this->output( "Starting from page_id $start of $end.\n" );
 
                                for ( $id = $start; $id <= $end; $id++ ) {
index df1bc06..d37ca47 100644 (file)
@@ -1132,7 +1132,7 @@ CREATE TABLE /*_*/searchindex (
 
   -- Munged version of body text
   si_text mediumtext NOT NULL
-) ENGINE=MyISAM;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 CREATE UNIQUE INDEX /*i*/si_page ON /*_*/searchindex (si_page);
 CREATE FULLTEXT INDEX /*i*/si_title ON /*_*/searchindex (si_title);
index 60edb56..d8bd39a 100644 (file)
@@ -108,6 +108,25 @@ return array(
                'remoteBasePath' => $GLOBALS['wgStylePath'],
                'localBasePath' => $GLOBALS['wgStyleDirectory'],
        ),
+       'skins.vector.collapsibleNav' => array(
+               'styles' => array(
+                       'vector/collapsibleNav.css',
+               ),
+               'scripts' => array(
+                       'vector/collapsibleNav.js',
+               ),
+               'messages' => array(
+                       'vector-collapsiblenav-more',
+               ),
+               'dependencies' => array(
+                       'jquery.client',
+                       'jquery.cookie',
+                       'jquery.tabIndex',
+               ),
+               'remoteBasePath' => $GLOBALS['wgStylePath'],
+               'localBasePath' => $GLOBALS['wgStyleDirectory'],
+               'position' => 'bottom',
+       ),
 
        /* jQuery */
 
@@ -690,7 +709,10 @@ return array(
        ),
        'mediawiki.Title' => array(
                'scripts' => 'resources/mediawiki/mediawiki.Title.js',
-               'dependencies' => 'mediawiki.util',
+               'dependencies' => array(
+                       'jquery.byteLength',
+                       'mediawiki.util',
+               ),
        ),
        'mediawiki.Uri' => array(
                'scripts' => 'resources/mediawiki/mediawiki.Uri.js',
index c44816b..2b5a440 100644 (file)
                                                postFinished = false;
                                                periRange = document.selection.createRange().duplicate();
 
-                                               preRange = rangeForElementIE( e ),
+                                               preRange = rangeForElementIE( e );
                                                // Move the end where we need it
                                                preRange.setEndPoint( 'EndToStart', periRange );
 
index b86a14b..98277fc 100644 (file)
 /*!
  * @author Neil Kandalgaonkar, 2010
- * @author Timo Tijhof, 2011
+ * @author Timo Tijhof, 2011-2013
  * @since 1.18
- *
- * Relies on: mw.config (wgFormattedNamespaces, wgNamespaceIds, wgCaseSensitiveNamespaces), mw.util.wikiGetlink
  */
 ( function ( mw, $ ) {
 
-       /* Local space */
-
        /**
         * @class mw.Title
         *
+        * Parse titles into an object struture. Note that when using the constructor
+        * directly, passing invalid titles will result in an exception. Use
+        * #newFromText to use the logic directly and get null for invalid titles
+        * which is easier to work with.
+        *
         * @constructor
         * @param {string} title Title of the page. If no second argument given,
-        * this will be searched for a namespace.
-        * @param {number} [namespace] Namespace id. If given, title will be taken as-is.
+        *  this will be searched for a namespace
+        * @param {number} [namespace=NS_MAIN] If given, will used as default namespace for the given title
+        * @throws {Error} When the title is invalid
         */
        function Title( title, namespace ) {
-               this.ns = 0; // integer namespace id
-               this.name = null; // name in canonical 'database' form
-               this.ext = null; // extension
-
-               if ( arguments.length === 2 ) {
-                       setNameAndExtension( this, title );
-                       this.ns = fixNsId( namespace );
-               } else if ( arguments.length === 1 ) {
-                       setAll( this, title );
+               var parsed = parse( title, namespace );
+               if ( !parsed ) {
+                       throw new Error( 'Unable to parse title' );
                }
+
+               this.namespace = parsed.namespace;
+               this.title = parsed.title;
+               this.ext = parsed.ext;
+               this.fragment = parsed.fragment;
+
                return this;
        }
 
-var
-       /* Public methods (defined later) */
-       fn,
+       /* Private members */
+
+       var
 
        /**
-        * Strip some illegal chars: control chars, colon, less than, greater than,
-        * brackets, braces, pipe, whitespace and normal spaces. This still leaves some insanity
-        * intact, like unicode bidi chars, but it's a good start..
-        * @ignore
-        * @param {string} s
-        * @return {string}
+        * @private
+        * @static
+        * @property NS_MAIN
         */
-       clean = function ( s ) {
-               if ( s !== undefined ) {
-                       return s.replace( /[\x00-\x1f\x23\x3c\x3e\x5b\x5d\x7b\x7c\x7d\x7f\s]+/g, '_' );
-               }
-       },
+       NS_MAIN = 0,
 
        /**
-        * Convert db-key to readable text.
-        * @ignore
-        * @param {string} s
-        * @return {string}
+        * @private
+        * @static
+        * @property NS_TALK
         */
-       text = function ( s ) {
-               if ( s !== null && s !== undefined ) {
-                       return s.replace( /_/g, ' ' );
-               } else {
-                       return '';
-               }
-       },
+       NS_TALK = 1,
 
        /**
-        * Sanitize name.
-        * @ignore
+        * @private
+        * @static
+        * @property NS_SPECIAL
         */
-       fixName = function ( s ) {
-               return clean( $.trim( s ) );
-       },
+       NS_SPECIAL = -1,
 
        /**
-        * Sanitize extension.
-        * @ignore
+        * Get the namespace id from a namespace name (either from the localized, canonical or alias
+        * name).
+        *
+        * Example: On a German wiki this would return 6 for any of 'File', 'Datei', 'Image' or
+        * even 'Bild'.
+        *
+        * @private
+        * @static
+        * @method getNsIdByName
+        * @param {string} ns Namespace name (case insensitive, leading/trailing space ignored)
+        * @return {number|boolean} Namespace id or boolean false
         */
-       fixExt = function ( s ) {
-               return clean( s );
+       getNsIdByName = function ( ns ) {
+               var id;
+
+               // Don't cast non-strings to strings, because null or undefined should not result in
+               // returning the id of a potential namespace called "Null:" (e.g. on null.example.org/wiki)
+               // Also, toLowerCase throws exception on null/undefined, because it is a String method.
+               if ( typeof ns !== 'string' ) {
+                       return false;
+               }
+               ns = ns.toLowerCase();
+               id = mw.config.get( 'wgNamespaceIds' )[ns];
+               if ( id === undefined ) {
+                       return false;
+               }
+               return id;
        },
 
+       rUnderscoreTrim = /^_+|_+$/g,
+
+       rSplit = /^(.+?)_*:_*(.*)$/,
+
+       // See Title.php#getTitleInvalidRegex
+       rInvalid = new RegExp(
+               '[^' + mw.config.get( 'wgLegalTitleChars' ) + ']' +
+               // URL percent encoding sequences interfere with the ability
+               // to round-trip titles -- you can't link to them consistently.
+               '|%[0-9A-Fa-f]{2}' +
+               // XML/HTML character references produce similar issues.
+               '|&[A-Za-z0-9\u0080-\uFFFF]+;' +
+               '|&#[0-9]+;' +
+               '|&#x[0-9A-Fa-f]+;'
+       ),
+
        /**
-        * Sanitize namespace id.
-        * @ignore
-        * @param id {Number} Namespace id.
-        * @return {Number|Boolean} The id as-is or boolean false if invalid.
+        * Internal helper for #constructor and #newFromtext.
+        *
+        * Based on Title.php#secureAndSplit
+        *
+        * @private
+        * @static
+        * @method parse
+        * @param {string} title
+        * @param {number} [defaultNamespace=NS_MAIN]
+        * @return {Object|boolean}
         */
-       fixNsId = function ( id ) {
-               // wgFormattedNamespaces is an object of *string* key-vals (ie. arr["0"] not arr[0] )
-               var ns = mw.config.get( 'wgFormattedNamespaces' )[id.toString()];
+       parse = function ( title, defaultNamespace ) {
+               var namespace, m, id, i, fragment, ext;
+
+               namespace = defaultNamespace === undefined ? NS_MAIN : defaultNamespace;
+
+               title = title
+                       // Normalise whitespace to underscores and remove duplicates
+                       .replace( /[ _\s]+/g, '_' )
+                       // Trim underscores
+                       .replace( rUnderscoreTrim, '' );
 
-               // Check only undefined (may be false-y, such as '' (main namespace) ).
-               if ( ns === undefined ) {
+               if ( title === '' ) {
                        return false;
+               }
+
+               // Process initial colon
+               if ( title.charAt( 0 ) === ':' ) {
+                       // Initial colon means main namespace instead of specified default
+                       namespace = NS_MAIN;
+                       title = title
+                               // Strip colon
+                               .substr( 1 )
+                               // Trim underscores
+                               .replace( rUnderscoreTrim, '' );
+               }
+
+               // Process namespace prefix (if any)
+               m = title.match( rSplit );
+               if ( m ) {
+                       id = getNsIdByName( m[1] );
+                       if ( id !== false ) {
+                               // Ordinary namespace
+                               namespace = id;
+                               title = m[2];
+
+                               // For Talk:X pages, make sure X has no "namespace" prefix
+                               if ( namespace === NS_TALK && ( m = title.match( rSplit ) ) ) {
+                                       // Disallow titles like Talk:File:x (subject should roundtrip: talk:file:x -> file:x -> file_talk:x)
+                                       if ( getNsIdByName( m[1] ) !== false ) {
+                                               return false;
+                                       }
+                               }
+                       }
+               }
+
+               // Process fragment
+               i = title.indexOf( '#' );
+               if ( i === -1 ) {
+                       fragment = null;
                } else {
-                       return Number( id );
+                       fragment = title
+                               // Get segment starting after the hash
+                               .substr( i + 1 )
+                               // Convert to text
+                               // NB: Must not be trimmed ("Example#_foo" is not the same as "Example#foo")
+                               .replace( /_/g, ' ' );
+
+                       title = title
+                               // Strip hash
+                               .substr( 0, i )
+                               // Trim underscores, again (strips "_" from "bar" in "Foo_bar_#quux")
+                               .replace( rUnderscoreTrim, '' );
                }
-       },
 
-       /**
-        * Get namespace id from namespace name by any known namespace/id pair (localized, canonical or alias).
-        * Example: On a German wiki this would return 6 for any of 'File', 'Datei', 'Image' or even 'Bild'.
-        * @ignore
-        * @param ns {String} Namespace name (case insensitive, leading/trailing space ignored).
-        * @return {Number|Boolean} Namespace id or boolean false if unrecognized.
-        */
-       getNsIdByName = function ( ns ) {
-               // Don't cast non-strings to strings, because null or undefined
-               // should not result in returning the id of a potential namespace
-               // called "Null:" (e.g. on nullwiki.example.org)
-               // Also, toLowerCase throws exception on null/undefined, because
-               // it is a String.prototype method.
-               if ( typeof ns !== 'string' ) {
+
+               // Reject illegal characters
+               if ( title.match( rInvalid ) ) {
                        return false;
                }
-               ns = clean( $.trim( ns.toLowerCase() ) ); // Normalize
-               var id = mw.config.get( 'wgNamespaceIds' )[ns];
-               if ( id === undefined ) {
-                       mw.log( 'mw.Title: Unrecognized namespace: ' + ns );
+
+               // Disallow titles that browsers or servers might resolve as directory navigation
+               if (
+                       title.indexOf( '.' ) !== -1 && (
+                               title === '.' || title === '..' ||
+                               title.indexOf( './' ) === 0 ||
+                               title.indexOf( '../' ) === 0 ||
+                               title.indexOf( '/./' ) !== -1 ||
+                               title.indexOf( '/../' ) !== -1 ||
+                               title.substr( -2 ) === '/.' ||
+                               title.substr( -3 ) === '/..'
+                       )
+               ) {
                        return false;
                }
-               return fixNsId( id );
+
+               // Disallow magic tilde sequence
+               if ( title.indexOf( '~~~' ) !== -1 ) {
+                       return false;
+               }
+
+               // Disallow titles exceeding the 255 byte size limit (size of underlying database field)
+               // Except for special pages, e.g. [[Special:Block/Long name]]
+               // Note: The PHP implementation also asserts that even in NS_SPECIAL, the title should
+               // be less than 512 bytes.
+               if ( namespace !== NS_SPECIAL && $.byteLength( title ) > 255 ) {
+                       return false;
+               }
+
+               // Can't make a link to a namespace alone.
+               if ( title === '' && namespace !== NS_MAIN ) {
+                       return false;
+               }
+
+               // Any remaining initial :s are illegal.
+               if ( title.charAt( 0 ) === ':' ) {
+                       return false;
+               }
+
+               // For backwards-compatibility with old mw.Title, we separate the extension from the
+               // rest of the title.
+               i = title.lastIndexOf( '.' );
+               if ( i === -1 || title.length <= i + 1 ) {
+                       // Extensions are the non-empty segment after the last dot
+                       ext = null;
+               } else {
+                       ext = title.substr( i + 1 );
+                       title = title.substr( 0, i );
+               }
+
+               return {
+                       namespace: namespace,
+                       title: title,
+                       ext: ext,
+                       fragment: fragment
+               };
        },
 
        /**
-        * Helper to extract namespace, name and extension from a string.
+        * Convert db-key to readable text.
         *
-        * @ignore
-        * @param {mw.Title} title
-        * @param {string} raw
-        * @return {mw.Title}
+        * @private
+        * @static
+        * @method text
+        * @param {string} s
+        * @return {string}
         */
-       setAll = function ( title, s ) {
-               // In normal browsers the match-array contains null/undefined if there's no match,
-               // IE returns an empty string.
-               var matches = s.match( /^(?:([^:]+):)?(.*?)(?:\.(\w+))?$/ ),
-                       nsMatch = getNsIdByName( matches[1] );
-
-               // Namespace must be valid, and title must be a non-empty string.
-               if ( nsMatch && typeof matches[2] === 'string' && matches[2] !== '' ) {
-                       title.ns = nsMatch;
-                       title.name = fixName( matches[2] );
-                       if ( typeof matches[3] === 'string' && matches[3] !== '' ) {
-                               title.ext = fixExt( matches[3] );
-                       }
+       text = function ( s ) {
+               if ( s !== null && s !== undefined ) {
+                       return s.replace( /_/g, ' ' );
                } else {
-                       // Consistency with MediaWiki PHP: Unknown namespace -> fallback to main namespace.
-                       title.ns = 0;
-                       setNameAndExtension( title, s );
+                       return '';
                }
-               return title;
        },
 
+       // Polyfill for ES5 Object.create
+       createObject = Object.create || ( function () {
+               return function ( o ) {
+                       function Title() {}
+                       if ( o !== Object( o ) ) {
+                               throw new Error( 'Cannot inherit from a non-object' );
+                       }
+                       Title.prototype = o;
+                       return new Title();
+               };
+       }() );
+
+
+       /* Static members */
+
        /**
-        * Helper to extract name and extension from a string.
+        * Constructor for Title objects with a null return instead of an exception for invalid titles.
         *
-        * @ignore
-        * @param {mw.Title} title
-        * @param {string} raw
-        * @return {mw.Title}
+        * @static
+        * @method
+        * @param {string} title
+        * @param {number} [namespace=NS_MAIN] Default namespace
+        * @return {mw.Title|null} A valid Title object or null if the title is invalid
         */
-       setNameAndExtension = function ( title, raw ) {
-               // In normal browsers the match-array contains null/undefined if there's no match,
-               // IE returns an empty string.
-               var matches = raw.match( /^(?:)?(.*?)(?:\.(\w+))?$/ );
-
-               // Title must be a non-empty string.
-               if ( typeof matches[1] === 'string' && matches[1] !== '' ) {
-                       title.name = fixName( matches[1] );
-                       if ( typeof matches[2] === 'string' && matches[2] !== '' ) {
-                               title.ext = fixExt( matches[2] );
-                       }
-               } else {
-                       throw new Error( 'mw.Title: Could not parse title "' + raw + '"' );
+       Title.newFromText = function ( title, namespace ) {
+               var t, parsed = parse( title, namespace );
+               if ( !parsed ) {
+                       return null;
                }
-               return title;
-       };
 
+               t = createObject( Title.prototype );
+               t.namespace = parsed.namespace;
+               t.title = parsed.title;
+               t.ext = parsed.ext;
+               t.fragment = parsed.fragment;
 
-       /* Static space */
+               return t;
+       };
 
        /**
         * Whether this title exists on the wiki.
+        *
         * @static
-        * @param {Mixed} title prefixed db-key name (string) or instance of Title
-        * @return {Mixed} Boolean true/false if the information is available. Otherwise null.
+        * @param {string|mw.Title} title prefixed db-key name (string) or instance of Title
+        * @return {boolean|null} Boolean if the information is available, otherwise null
         */
        Title.exists = function ( title ) {
-               var type = $.type( title ), obj = Title.exist.pages, match;
+               var match,
+                       type = $.type( title ),
+                       obj = Title.exist.pages;
+
                if ( type === 'string' ) {
                        match = obj[title];
                } else if ( type === 'object' && title instanceof Title ) {
@@ -194,23 +318,23 @@ var
                } else {
                        throw new Error( 'mw.Title.exists: title must be a string or an instance of Title' );
                }
+
                if ( typeof match === 'boolean' ) {
                        return match;
                }
+
                return null;
        };
 
-       /**
-        * @static
-        * @property
-        */
        Title.exist = {
                /**
+                * Boolean true value indicates page does exist.
+                *
                 * @static
                 * @property {Object} exist.pages Keyed by PrefixedDb title.
-                * Boolean true value indicates page does exist.
                 */
                pages: {},
+
                /**
                 * Example to declare existing titles:
                 *     Title.exist.set(['User:John_Doe', ...]);
@@ -219,8 +343,8 @@ var
                 *
                 * @static
                 * @property exist.set
-                * @param {string|Array} titles Title(s) in strict prefixedDb title form.
-                * @param {boolean} [state] State of the given titles. Defaults to true.
+                * @param {string|Array} titles Title(s) in strict prefixedDb title form
+                * @param {boolean} [state=true] State of the given titles
                 * @return {boolean}
                 */
                set: function ( titles, state ) {
@@ -234,42 +358,60 @@ var
                }
        };
 
-       /* Public methods */
+       /* Public members */
 
-       fn = {
+       Title.prototype = {
                constructor: Title,
 
                /**
-                * Get the namespace number.
+                * Get the namespace number
+                *
+                * Example: 6 for "File:Example_image.svg".
+                *
                 * @return {number}
                 */
-               getNamespaceId: function (){
-                       return this.ns;
+               getNamespaceId: function () {
+                       return this.namespace;
                },
 
                /**
-                * Get the namespace prefix (in the content-language).
-                * In NS_MAIN this is '', otherwise namespace name plus ':'
+                * Get the namespace prefix (in the content language)
+                *
+                * Example: "File:" for "File:Example_image.svg".
+                * In #NS_MAIN this is '', otherwise namespace name plus ':'
+                *
                 * @return {string}
                 */
-               getNamespacePrefix: function (){
-                       return mw.config.get( 'wgFormattedNamespaces' )[this.ns].replace( / /g, '_' ) + (this.ns === 0 ? '' : ':');
+               getNamespacePrefix: function () {
+                       return this.namespace === NS_MAIN ?
+                               '' :
+                               ( mw.config.get( 'wgFormattedNamespaces' )[ this.namespace ].replace( / /g, '_' ) + ':' );
                },
 
                /**
-                * The name, like "Foo_bar"
+                * Get the page name without extension or namespace prefix
+                *
+                * Example: "Example_image" for "File:Example_image.svg".
+                *
+                * For the page title (full page name without namespace prefix), see #getMain.
+                *
                 * @return {string}
                 */
                getName: function () {
-                       if ( $.inArray( this.ns, mw.config.get( 'wgCaseSensitiveNamespaces' ) ) !== -1 ) {
-                               return this.name;
+                       if ( $.inArray( this.namespace, mw.config.get( 'wgCaseSensitiveNamespaces' ) ) !== -1 ) {
+                               return this.title;
                        } else {
-                               return $.ucFirst( this.name );
+                               return $.ucFirst( this.title );
                        }
                },
 
                /**
-                * The name, like "Foo bar"
+                * Get the page name (transformed by #text)
+                *
+                * Example: "Example image" for "File:Example_image.svg".
+                *
+                * For the page title (full page name without namespace prefix), see #getMainText.
+                *
                 * @return {string}
                 */
                getNameText: function () {
@@ -277,24 +419,30 @@ var
                },
 
                /**
-                * Get full name in prefixed DB form, like File:Foo_bar.jpg,
-                * most useful for API calls, anything that must identify the "title".
-                * @return {string}
+                * Get the extension of the page name (if any)
+                *
+                * @return {string|null} Name extension or null if there is none
                 */
-               getPrefixedDb: function () {
-                       return this.getNamespacePrefix() + this.getMain();
+               getExtension: function () {
+                       return this.ext;
                },
 
                /**
-                * Get full name in text form, like "File:Foo bar.jpg".
+                * Shortcut for appendable string to form the main page name.
+                *
+                * Returns a string like ".json", or "" if no extension.
+                *
                 * @return {string}
                 */
-               getPrefixedText: function () {
-                       return text( this.getPrefixedDb() );
+               getDotExtension: function () {
+                       return this.ext === null ? '' : '.' + this.ext;
                },
 
                /**
-                * The main title (without namespace), like "Foo_bar.jpg"
+                * Get the main page name (transformed by #text)
+                *
+                * Example: "Example_image.svg" for "File:Example_image.svg".
+                *
                 * @return {string}
                 */
                getMain: function () {
@@ -302,7 +450,10 @@ var
                },
 
                /**
-                * The "text" form, like "Foo bar.jpg"
+                * Get the main page name (transformed by #text)
+                *
+                * Example: "Example image.svg" for "File:Example_image.svg".
+                *
                 * @return {string}
                 */
                getMainText: function () {
@@ -310,23 +461,43 @@ var
                },
 
                /**
-                * Get the extension (returns null if there was none)
-                * @return {string|null}
+                * Get the full page name
+                *
+                * Eaxample: "File:Example_image.svg".
+                * Most useful for API calls, anything that must identify the "title".
+                *
+                * @return {string}
                 */
-               getExtension: function () {
-                       return this.ext;
+               getPrefixedDb: function () {
+                       return this.getNamespacePrefix() + this.getMain();
                },
 
                /**
-                * Convenience method: return string like ".jpg", or "" if no extension
+                * Get the full page name (transformed by #text)
+                *
+                * Example: "File:Example image.svg" for "File:Example_image.svg".
+                *
                 * @return {string}
                 */
-               getDotExtension: function () {
-                       return this.ext === null ? '' : '.' + this.ext;
+               getPrefixedText: function () {
+                       return text( this.getPrefixedDb() );
                },
 
                /**
-                * Return the URL to this title
+                * Get the fragment (if any).
+                *
+                * Note that this method (by design) does not include the hash character and
+                * the value is not url encoded.
+                *
+                * @return {string|null}
+                */
+               getFragment: function () {
+                       return this.fragment;
+               },
+
+               /**
+                * Get the URL to this title
+                *
                 * @see mw.util#wikiGetlink
                 * @return {string}
                 */
@@ -336,20 +507,27 @@ var
 
                /**
                 * Whether this title exists on the wiki.
+                *
                 * @see #static-method-exists
-                * @return {boolean|null} If the information is available. Otherwise null.
+                * @return {boolean|null} Boolean if the information is available, otherwise null
                 */
                exists: function () {
                        return Title.exists( this );
                }
        };
 
-       // Alias
-       fn.toString = fn.getPrefixedDb;
-       fn.toText = fn.getPrefixedText;
+       /**
+        * @alias #getPrefixedDb
+        * @method
+        */
+       Title.prototype.toString = Title.prototype.getPrefixedDb;
+
 
-       // Assign
-       Title.prototype = fn;
+       /**
+        * @alias #getPrefixedText
+        * @method
+        */
+       Title.prototype.toText = Title.prototype.getPrefixedText;
 
        // Expose
        mw.Title = Title;
index 741e231..39093e3 100644 (file)
@@ -1026,30 +1026,37 @@ var mw = ( function ( $, undefined ) {
                                        mw.messages.set( registry[module].messages );
                                }
 
-                               // Make sure we don't run the scripts until all (potentially asynchronous)
-                               // stylesheet insertions have completed.
-                               ( function () {
-                                       var pending = 0;
-                                       checkCssHandles = function () {
-                                               // cssHandlesRegistered ensures we don't take off too soon, e.g. when
-                                               // one of the cssHandles is fired while we're still creating more handles.
-                                               if ( cssHandlesRegistered && pending === 0 && runScript ) {
-                                                       runScript();
-                                                       runScript = undefined; // Revoke
-                                               }
-                                       };
-                                       cssHandle = function () {
-                                               var check = checkCssHandles;
-                                               pending++;
-                                               return function () {
-                                                       if (check) {
-                                                               pending--;
-                                                               check();
-                                                               check = undefined; // Revoke
+                               if ( $.isReady || registry[module].async ) {
+                                       // Make sure we don't run the scripts until all (potentially asynchronous)
+                                       // stylesheet insertions have completed.
+                                       ( function () {
+                                               var pending = 0;
+                                               checkCssHandles = function () {
+                                                       // cssHandlesRegistered ensures we don't take off too soon, e.g. when
+                                                       // one of the cssHandles is fired while we're still creating more handles.
+                                                       if ( cssHandlesRegistered && pending === 0 && runScript ) {
+                                                               runScript();
+                                                               runScript = undefined; // Revoke
                                                        }
                                                };
-                                       };
-                               }() );
+                                               cssHandle = function () {
+                                                       var check = checkCssHandles;
+                                                       pending++;
+                                                       return function () {
+                                                               if (check) {
+                                                                       pending--;
+                                                                       check();
+                                                                       check = undefined; // Revoke
+                                                               }
+                                                       };
+                                               };
+                                       }() );
+                               } else {
+                                       // We are in blocking mode, and so we can't afford to wait for CSS
+                                       cssHandle = function () {};
+                                       // Run immediately
+                                       checkCssHandles = runScript;
+                               }
 
                                // Process styles (see also mw.loader.implement)
                                // * back-compat: { <media>: css }
@@ -1190,7 +1197,7 @@ var mw = ( function ( $, undefined ) {
                         * @param {Object} moduleMap Module map, see #buildModulesString
                         * @param {Object} currReqBase Object with other parameters (other than 'modules') to use in the request
                         * @param {string} sourceLoadScript URL of load.php
-                        * @param {boolean} async If true, use an asynchrounous request even if document ready has not yet occurred
+                        * @param {boolean} async If true, use an asynchronous request even if document ready has not yet occurred
                         */
                        function doRequest( moduleMap, currReqBase, sourceLoadScript, async ) {
                                var request = $.extend(
@@ -1205,6 +1212,16 @@ var mw = ( function ( $, undefined ) {
 
                        /* Public Methods */
                        return {
+                               /**
+                                * The module registry is exposed as an aid for debugging and inspecting page
+                                * state; it is not a public interface for modifying the registry.
+                                *
+                                * @see #registry
+                                * @property
+                                * @private
+                                */
+                               moduleRegistry: registry,
+
                                /**
                                 * @inheritdoc #newStyleTag
                                 * @method
index 97b28ed..c07a593 100644 (file)
@@ -57,7 +57,7 @@ class SkinVector extends SkinTemplate {
                                "/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
                );
 
-               $out->addModules( 'skins.vector.js' );
+               $out->addModules( array( 'skins.vector.js', 'skins.vector.collapsibleNav' ) );
        }
 
        /**
index dd999ed..09f0910 100644 (file)
@@ -1,10 +1,14 @@
 // IE fixes javascript
+( function ( mw, $ ) {
 
-window.isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
-window.doneIETransform = undefined;
-window.doneIEAlphaFix = undefined;
+var doneIEAlphaFix, doneIETransform, expandedURLs, fixalpha, isMSIE55,
+       relativeforfloats, setrelative;
 
-window.hookit = function() {
+isMSIE55 = window.isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
+doneIETransform = window.doneIETransform = undefined;
+doneIEAlphaFix = window.doneIEAlphaFix = undefined;
+
+window.hookit = function () {
        if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) {
                doneIETransform = true;
                relativeforfloats();
@@ -17,26 +21,27 @@ if ( document.attachEvent ) {
 }
 
 // png alpha transparency fixes
-window.fixalpha = function( logoId ) {
+fixalpha = window.fixalpha = function ( logoId ) {
        // bg
        if ( isMSIE55 && !doneIEAlphaFix ) {
-               var plogo = document.getElementById( logoId || 'p-logo' );
+               var bg, imageUrl, linkFix, logoa, logospan, plogo;
+               plogo = document.getElementById( logoId || 'p-logo' );
                if ( !plogo ) {
                        return;
                }
 
-               var logoa = plogo.getElementsByTagName('a')[0];
+               logoa = plogo.getElementsByTagName('a')[0];
                if ( !logoa ) {
                        return;
                }
 
-               var bg = logoa.currentStyle.backgroundImage;
-               var imageUrl = bg.substring( 5, bg.length - 2 );
+               bg = logoa.currentStyle.backgroundImage;
+               imageUrl = bg.substring( 5, bg.length - 2 );
 
                doneIEAlphaFix = true;
 
-               if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase() == '.png' ) {
-                       var logospan = logoa.appendChild( document.createElement( 'span' ) );
+               if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase() === '.png' ) {
+                       logospan = logoa.appendChild( document.createElement( 'span' ) );
 
                        logoa.style.backgroundImage = 'none';
                        logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
@@ -45,7 +50,7 @@ window.fixalpha = function( logoId ) {
                        logospan.style.width = logoa.currentStyle.width;
                        logospan.style.cursor = 'hand';
                        // Center image with hack for IE5.5
-                       if ( document.documentElement.dir == 'rtl' ) {
+                       if ( document.documentElement.dir === 'rtl' ) {
                                logospan.style.right = '50%';
                                logospan.style.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' );
                        } else {
@@ -55,7 +60,7 @@ window.fixalpha = function( logoId ) {
                        logospan.style.top = '50%';
                        logospan.style.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );
 
-                       var linkFix = logoa.appendChild( logoa.cloneNode() );
+                       linkFix = logoa.appendChild( logoa.cloneNode() );
                        linkFix.style.position = 'absolute';
                        linkFix.style.height = '100%';
                        linkFix.style.width = '100%';
@@ -69,22 +74,23 @@ if ( isMSIE55 ) {
 }
 
 // fix ie6 disappering float bug
-window.relativeforfloats = function() {
-       var bc = document.getElementById( 'bodyContent' );
+relativeforfloats = window.relativeforfloats = function () {
+       var bc, tables, divs;
+       bc = document.getElementById( 'bodyContent' );
        if ( bc ) {
-               var tables = bc.getElementsByTagName( 'table' );
-               var divs = bc.getElementsByTagName( 'div' );
+               tables = bc.getElementsByTagName( 'table' );
+               divs = bc.getElementsByTagName( 'div' );
                setrelative( tables );
                setrelative( divs );
        }
 };
 
-window.setrelative = function( nodes ) {
+setrelative = window.setrelative = function ( nodes ) {
        var i = 0;
        while ( i < nodes.length ) {
-               if( ( ( nodes[i].style.float && nodes[i].style.float != ( 'none' ) ||
-                       ( nodes[i].align && nodes[i].align != ( 'none' ) ) ) &&
-                       ( !nodes[i].style.position || nodes[i].style.position != 'relative' ) ) )
+               if( ( ( nodes[i].style.float && nodes[i].style.float !== ( 'none' ) ||
+                       ( nodes[i].align && nodes[i].align !== ( 'none' ) ) ) &&
+                       ( !nodes[i].style.position || nodes[i].style.position !== 'relative' ) ) )
                {
                        nodes[i].style.position = 'relative';
                }
@@ -93,30 +99,31 @@ window.setrelative = function( nodes ) {
 };
 
 // Expand links for printing
-String.prototype.hasClass = function( classWanted ) {
-       var classArr = this.split(/\s/);
-       for ( var i = 0; i < classArr.length; i++ ) {
-               if ( classArr[i].toLowerCase() == classWanted.toLowerCase() ) {
+String.prototype.hasClass = function ( classWanted ) {
+       var i = 0, classArr = this.split(/\s/);
+       for ( i = 0; i < classArr.length; i++ ) {
+               if ( classArr[i].toLowerCase() === classWanted.toLowerCase() ) {
                        return true;
                }
        }
        return false;
 };
 
-window.expandedURLs = undefined;
+expandedURLs = window.expandedURLs = undefined;
 
-window.onbeforeprint = function() {
-       expandedURLs = [];
+window.onbeforeprint = function () {
+       var allLinks, contentEl, expandedLink, expandedText, i;
 
-       var contentEl = document.getElementById( 'content' );
+       expandedURLs = [];
+       contentEl = document.getElementById( 'content' );
 
        if ( contentEl ) {
-               var allLinks = contentEl.getElementsByTagName( 'a' );
+               allLinks = contentEl.getElementsByTagName( 'a' );
 
-               for ( var i = 0; i < allLinks.length; i++ ) {
+               for ( i = 0; i < allLinks.length; i++ ) {
                        if ( allLinks[i].className.hasClass( 'external' ) && !allLinks[i].className.hasClass( 'free' ) ) {
-                               var expandedLink = document.createElement( 'span' );
-                               var expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' );
+                               expandedLink = document.createElement( 'span' );
+                               expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' );
                                expandedLink.appendChild( expandedText );
                                allLinks[i].parentNode.insertBefore( expandedLink, allLinks[i].nextSibling );
                                expandedURLs[i] = expandedLink;
@@ -132,3 +139,5 @@ window.onafterprint = function() {
                }
        }
 };
+
+}( mediaWiki, jQuery ) );
index 540eaf9..fb8edc1 100644 (file)
@@ -97,7 +97,7 @@
 
                // Show/Hide memcached servers when needed
                $( 'input[name$="config_wgMainCacheType"]' ).change( function () {
-                       var $memc = $( "#config-memcachewrapper" );
+                       var $memc = $( '#config-memcachewrapper' );
                        if( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
                                $memc.show( 'slow' );
                        } else {
index 0118d20..7cc58e3 100644 (file)
@@ -59,9 +59,8 @@ input[dir="rtl"] {
 }
 
 /* Default style for semantic tags */
-abbr,
-acronym,
-.explain {
+abbr[title],
+.explain[title] {
        border-bottom: 1px dotted;
        cursor: help;
 }
diff --git a/skins/vector/collapsibleNav.css b/skins/vector/collapsibleNav.css
new file mode 100644 (file)
index 0000000..02799d7
--- /dev/null
@@ -0,0 +1,94 @@
+/**
+ * Stylesheet for collapsible nav
+ */
+
+#mw-panel.collapsible-nav .portal {
+       /* @embed */
+       background: url(images/portal-break.png) left top no-repeat;
+       padding: 0.25em 0 !important;
+       margin: -11px 9px 10px 11px;
+}
+
+#mw-panel.collapsible-nav .portal h3 {
+       color: #4D4D4D;
+       font-weight: normal;
+       /* @embed */
+       background: url(images/arrow-expanded.png) left center no-repeat;
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       /* @embed */
+       background-image: -webkit-linear-gradient(transparent, transparent), url(images/arrow-expanded.svg);
+       /* @embed */
+       background-image: linear-gradient(transparent, transparent), url(images/arrow-expanded.svg);
+       padding: 4px 0 3px 1.5em;
+       margin-bottom: 0;
+}
+
+#mw-panel.collapsible-nav .portal h3:hover {
+       cursor: pointer;
+       text-decoration: none;
+}
+
+#mw-panel.collapsible-nav .portal h3 a {
+       color: #4D4D4D;
+       text-decoration: none;
+}
+
+#mw-panel.collapsible-nav .portal .body {
+       background-image: none !important;
+       padding-top: 0;
+       display: none;
+}
+
+#mw-panel.collapsible-nav .portal .body ul li {
+       padding: 0.25em 0;
+}
+
+/* First */
+#mw-panel.collapsible-nav .portal.first h3 {
+       display: none;
+}
+
+#mw-panel.collapsible-nav .portal.first {
+       background-image: none;
+       margin-top: 0;
+}
+
+/* Persistent */
+
+#mw-panel.collapsible-nav .portal.persistent .body {
+       display: block;
+}
+
+#mw-panel.collapsible-nav .portal.persistent h3 {
+       background-image: none !important;
+       padding-left: 0.7em;
+       cursor: default;
+}
+
+#mw-panel.collapsible-nav .portal.persistent .body {
+       margin-left: 0.5em;
+}
+
+/* Collapsed */
+
+#mw-panel.collapsible-nav .portal.collapsed h3 {
+       color: #0645AD;
+       /* @embed */
+       background: url(images/arrow-collapsed-ltr.png) left center no-repeat;
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       /* @embed */
+       background-image: -webkit-linear-gradient(transparent, transparent), url(images/arrow-collapsed-ltr.svg);
+       /* @embed */
+       background-image: linear-gradient(transparent, transparent), url(images/arrow-collapsed-ltr.svg);
+       margin-bottom: 0;
+}
+
+#mw-panel.collapsible-nav .portal.collapsed h3 a {
+       color: #0645AD;
+}
+
+#mw-panel.collapsible-nav .portal.collapsed h3:hover {
+       text-decoration: underline;
+}
diff --git a/skins/vector/collapsibleNav.js b/skins/vector/collapsibleNav.js
new file mode 100644 (file)
index 0000000..67313c9
--- /dev/null
@@ -0,0 +1,121 @@
+/**
+ * Collapsible navigation for Vector
+ */
+( function ( mw, $ ) {
+       'use strict';
+       var map;
+
+       // Use the same function for all navigation headings - don't repeat
+       function toggle( $element ) {
+               $.cookie(
+                       'vector-nav-' + $element.parent().attr( 'id' ),
+                       $element.parent().is( '.collapsed' ),
+                       { 'expires': 30, 'path': '/' }
+               );
+               $element
+                       .parent()
+                       .toggleClass( 'expanded' )
+                       .toggleClass( 'collapsed' )
+                       .find( '.body' )
+                       .slideToggle( 'fast' );
+       }
+
+       /* Browser Support */
+
+       map = {
+               // Left-to-right languages
+               ltr: {
+                       // Collapsible Nav is broken in Opera < 9.6 and Konqueror < 4
+                       opera: [['>=', 9.6]],
+                       konqueror: [['>=', 4.0]],
+                       blackberry: false,
+                       ipod: false,
+                       iphone: false,
+                       ps3: false
+               },
+               // Right-to-left languages
+               rtl: {
+                       opera: [['>=', 9.6]],
+                       konqueror: [['>=', 4.0]],
+                       blackberry: false,
+                       ipod: false,
+                       iphone: false,
+                       ps3: false
+               }
+       };
+       if ( !$.client.test( map ) ) {
+               return true;
+       }
+
+       $( function ( $ ) {
+               var $headings, tabIndex;
+
+               /* General Portal Modification */
+
+               // Always show the first portal
+               $( '#mw-panel > .portal:first' ).addClass( 'first persistent' );
+               // Apply a class to the entire panel to activate styles
+               $( '#mw-panel' ).addClass( 'collapsible-nav' );
+               // Use cookie data to restore preferences of what to show and hide
+               $( '#mw-panel > .portal:not(.persistent)' )
+                       .each( function ( i ) {
+                               var id = $(this).attr( 'id' ),
+                                       state = $.cookie( 'vector-nav-' + id );
+                               // Add anchor tag to heading for better accessibility
+                               $( this ).find( 'h3' ).wrapInner( $( '<a href="#"></a>' ).click( false ) );
+                               // In the case that we are not showing the new version, let's show the languages by default
+                               if (
+                                       state === 'true' ||
+                                       ( state === null && i < 1 ) ||
+                                       ( state === null && id === 'p-lang' )
+                               ) {
+                                       $(this)
+                                               .addClass( 'expanded' )
+                                               .removeClass( 'collapsed' )
+                                               .find( '.body' )
+                                               .hide() // bug 34450
+                                               .show();
+                               } else {
+                                       $(this)
+                                               .addClass( 'collapsed' )
+                                               .removeClass( 'expanded' );
+                               }
+                               // Re-save cookie
+                               if ( state !== null ) {
+                                       $.cookie( 'vector-nav-' + $(this).attr( 'id' ), state, { 'expires': 30, 'path': '/' } );
+                               }
+                       } );
+
+               /* Tab Indexing */
+
+               $headings = $( '#mw-panel > .portal:not(.persistent) > h3' );
+
+               // Get the highest tab index
+               tabIndex = $( document ).lastTabIndex() + 1;
+
+               // Fix the search not having a tabindex
+               $( '#searchInput' ).attr( 'tabindex', tabIndex++ );
+
+               // Make it keyboard accessible
+               $headings.attr( 'tabindex', function () {
+                       return tabIndex++;
+               });
+
+               // Toggle the selected menu's class and expand or collapse the menu
+               $( '#mw-panel' )
+                       .delegate( '.portal:not(.persistent) > h3', 'keydown', function ( e ) {
+                               // Make the space and enter keys act as a click
+                               if ( e.which === 13 /* Enter */ || e.which === 32 /* Space */ ) {
+                                       toggle( $(this) );
+                               }
+                       } )
+                       .delegate( '.portal:not(.persistent) > h3', 'mousedown', function ( e ) {
+                               if ( e.which !== 3 ) { // Right mouse click
+                                       toggle( $(this) );
+                                       $(this).blur();
+                               }
+                               return false;
+                       } );
+       });
+
+}( mediaWiki, jQuery ) );
diff --git a/skins/vector/images/arrow-collapsed-ltr.png b/skins/vector/images/arrow-collapsed-ltr.png
new file mode 100644 (file)
index 0000000..063ac6f
Binary files /dev/null and b/skins/vector/images/arrow-collapsed-ltr.png differ
diff --git a/skins/vector/images/arrow-collapsed-ltr.svg b/skins/vector/images/arrow-collapsed-ltr.svg
new file mode 100644 (file)
index 0000000..d0c4729
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="16"
+   height="16"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-1036.0288)"
+     id="layer1">
+    <path
+       d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
+       transform="matrix(0,-2.7307791,1.576616,0,0.05143855,1066.4148)"
+       id="path2985"
+       style="fill:#797979;fill-opacity:1;stroke:none" />
+  </g>
+</svg>
diff --git a/skins/vector/images/arrow-collapsed-rtl.png b/skins/vector/images/arrow-collapsed-rtl.png
new file mode 100644 (file)
index 0000000..c346218
Binary files /dev/null and b/skins/vector/images/arrow-collapsed-rtl.png differ
diff --git a/skins/vector/images/arrow-collapsed-rtl.svg b/skins/vector/images/arrow-collapsed-rtl.svg
new file mode 100644 (file)
index 0000000..8c5e04b
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="16"
+   height="16"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-1036.0288)"
+     id="layer1">
+    <path
+       d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
+       transform="matrix(0,2.7307791,-1.576616,0,15.948561,1021.6428)"
+       id="path2985"
+       style="fill:#797979;fill-opacity:1;stroke:none" />
+  </g>
+</svg>
diff --git a/skins/vector/images/arrow-expanded.png b/skins/vector/images/arrow-expanded.png
new file mode 100644 (file)
index 0000000..0221028
Binary files /dev/null and b/skins/vector/images/arrow-expanded.png differ
diff --git a/skins/vector/images/arrow-expanded.svg b/skins/vector/images/arrow-expanded.svg
new file mode 100644 (file)
index 0000000..60704d2
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="16"
+   height="16"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-1036.3622)"
+     id="layer1">
+    <path
+       d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
+       transform="matrix(2.7307791,0,0,1.576616,-14.385956,1036.4136)"
+       id="path2985"
+       style="fill:#797979;fill-opacity:1;stroke:none" />
+  </g>
+</svg>
index f08e995..3f8d7f9 100644 (file)
@@ -143,7 +143,7 @@ class ParserTest {
        static function setUp() {
                global $wgParser, $wgParserConf, $IP, $messageMemc, $wgMemc,
                        $wgUser, $wgLang, $wgOut, $wgRequest, $wgStyleDirectory, $wgEnableParserCache,
-                       $wgNamespaceAliases, $wgNamespaceProtection, $wgLocalFileRepo,
+                       $wgExtraNamespaces, $wgNamespaceAliases, $wgNamespaceProtection, $wgLocalFileRepo,
                        $parserMemc, $wgThumbnailScriptPath, $wgScriptPath,
                        $wgArticlePath, $wgScript, $wgStylePath, $wgExtensionAssetsPath,
                        $wgMainCacheType, $wgMessageCacheType, $wgParserCacheType, $wgLockManagers;
@@ -182,6 +182,9 @@ class ParserTest {
                $wgNamespaceProtection[NS_MEDIAWIKI] = 'editinterface';
                $wgNamespaceAliases['Image'] = NS_FILE;
                $wgNamespaceAliases['Image_talk'] = NS_FILE_TALK;
+               # add a namespace shadowing a interwiki link, to test
+               # proper precedence when resolving links. (bug 51680)
+               $wgExtraNamespaces[100] = 'MemoryAlpha';
 
                // XXX: tests won't run without this (for CACHE_DB)
                if ( $wgMainCacheType === CACHE_DB ) {
@@ -239,6 +242,11 @@ class ParserTest {
                                        'iw_api' => '',
                                        'iw_wikiid' => '',
                                        'iw_local' => 0 ),
+                               'memoryalpha' => array(
+                                       'iw_url' => 'http://www.memory-alpha.org/en/index.php/$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 0 ),
                                'zh' => array(
                                        'iw_url' => 'http://zh.wikipedia.org/wiki/$1',
                                        'iw_api' => '',
index 47189fc..3266b16 100644 (file)
@@ -4634,6 +4634,22 @@ Link to namespaces
 </p>
 !! end
 
+!! article
+MemoryAlpha:AlphaTest
+!! text
+This is an article in the MemoryAlpha namespace
+(which shadows the memoryalpha interwiki link).
+!! endarticle
+
+!! test
+Namespace takes precedence over interwiki link (bug 51680)
+!! input
+[[MemoryAlpha:AlphaTest]]
+!! result
+<p><a href="/wiki/MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a>
+</p>
+!! end
+
 !! test
 Piped link to namespace
 !! input
         b</p>
 !! end
 
+#### --------------- Behavior Switches --------------------
+!! test
+1. Valid behavior switches should be escaped
+!! options
+parsoid=html2wt
+!! input
+<nowiki>__TOC__</nowiki>
+!! result
+__TOC__
+!! end
+
+!! test
+2. Invalid behavior switches should not be escaped
+!! options
+parsoid=html2wt
+!! input
+__TOO__
+__|__
+!! result
+__TOO__
+__|__
+!! end
+
 #### --------------- HTML tags ---------------
 #### 1. a tags
 #### 2. other tags
@@ -17483,6 +17522,176 @@ parsoid=wt2html
 <table></table>
 !!end
 
+!!test
+Encapsulation properly handles null DSR information from foster box
+!!options
+parsoid=wt2html,wt2wt
+!!input
+{{echo|<table>foo<tr><td>bar</td></tr></table>}}
+!!result
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;
+<table>foo
+<tr>
+<td>bar</td></tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</span>
+<table>
+<tbody>
+<tr>
+<td>bar</td></tr></tbody></table>
+!!end
+
+!!test
+1. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table>{{echo|foo<tr><td>bar</td></tr>}}</table>
+!!result
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo
+<tr>
+<td>bar</td></tr>&quot;}},&quot;i&quot;:0}},&quot;</table>&quot;]}">foo</span>
+<table>
+<tbody>
+<tr>
+<td>bar</td></tr></tbody></table>
+!!end
+
+!!test
+2. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table><div>{{echo|foo}}</div><tr><td>bar</td></tr></table>
+!!result
+<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>
+<div>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo&quot;}},&quot;i&quot;:0}},&quot;</div>
+<tr>
+<td>bar</td></tr></table>&quot;]}">foo</div>
+<table>
+<tbody>
+<tr>
+<td>bar</td></tr></tbody></table>
+!!end
+
+!!test
+3. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
+!!result
+<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>
+<div>
+<p>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo</p></div>
+<tr>
+<td>&quot;}},&quot;i&quot;:0}},&quot;bar</td></tr></table>&quot;]}">
+<p>foo</p></div>
+<table>
+<tbody>
+<tr>
+<td>bar</td></tr></tbody></table>
+!!end
+
+!!test
+4. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
+!!result
+<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>
+<div>
+<p>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo</p></div>
+<tr>
+<td>&quot;}},&quot;i&quot;:0}},&quot;bar</td></tr></table>&quot;]}">
+<p>foo</p></div>
+<table>
+<tbody>
+<tr>
+<td>bar</td></tr></tbody></table>
+!!end
+
+!!test
+5. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table><tr><td><div><p>{{echo|foo</p></div></td>foo}}</tr></table>
+!!result
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>
+<tr>
+<td>
+<div>
+<p>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo</p></div></td>foo&quot;}},&quot;i&quot;:0}},&quot;</tr></table>&quot;]}">foo</span>
+<table>
+<tbody>
+<tr>
+<td>
+<div>
+<p>foo</p></div></td></tr></tbody></table>
+!!end
+
+!!test
+6. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table><tr><td><div><p>{{echo|foo</p></div></td>foo</tr></table>}}<p>ok</p>
+!!result
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>
+<tr>
+<td>
+<div>
+<p>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo</p></div></td>foo</tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</span>
+<table>
+<tbody>
+<tr>
+<td>
+<div>
+<p>foo</p></div></td></tr></tbody></table>
+<p>ok</p>
+!!end
+
+!!test
+7. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+<table>{{echo|<p>foo</p>}}<td>bar</td></table>
+!!result
+<p typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
+<table>&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;
+<p>foo</p>&quot;}},&quot;i&quot;:0}},&quot;
+<td>bar</td></table>&quot;]}">foo</p>
+<table>
+<tbody>
+<tr>
+<td>bar</td></tr></tbody></table>
+!!end
+
+!!test
+8. Encapsulate foster-parented transclusion content
+!!options
+parsoid=wt2wt,wt2html
+!!input
+{{echo|a
+}}{|{{echo|style='color:red'}}
+|-
+|b
+|}
+!!result
+<p typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;a\n&quot;}},&quot;i&quot;:0}}]}">a</p><span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;{|&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;style&quot;:{&quot;wt&quot;:&quot;'color:red'&quot;}},&quot;i&quot;:0}},&quot;\n|-\n|b\n|}&quot;]}">{{{1}}}</span>
+<table>
+<tbody>
+<tr>
+<td>b</td></tr></tbody></table>
+!!end
+
 # -----------------------------------------------------------------
 # The following section of tests are primarily to spec requirements
 # around serialization of new/edited content.
 #-----------------------------
 
 !! test
-1. I/B qoute minimization: wikitext-only tags should be combined
+1. I/B quote minimization: wikitext-only tags should be combined
 !! options
 parsoid=html2wt
 !! input
@@ -17617,16 +17826,25 @@ parsoid=html2wt
 '''A''B'''''
 
 '''A''BC''D'''
+
+'''''AB'''''
+
+'''''AB'''''
+
+'''''AB'''''
 !! result
 <p><i>A</i><i>B</i></p>
 <p><b>A</b><b>B</b></p>
 <p><i>A</i><b><i>B</i></b></p>
 <p><b>A</b><i><b>B</b></i></p>
 <p><b>A</b><i><b>B</b><b>C</b></i><b>D</b></p>
+<p><i><b>A</b></i><i><b>B</b></i></p>
+<p><i><b>A</b></i><b><i>B</i></b></p>
+<p><b><i>A</i></b><i><b>B</b></i></p>
 !! end
 
 !! test
-2. I/B qoute minimization: wikitext and html tags should not be combined
+2. I/B quote minimization: wikitext and html tags should not be combined
 !! options
 parsoid=html2wt
 !! input
@@ -17639,7 +17857,7 @@ parsoid=html2wt
 !! end
 
 !! test
-3. I/B qoute minimization: templated content stops minimization
+3. I/B quote minimization: templated content stops minimization
 !! options
 parsoid=html2wt
 !! input
@@ -17652,7 +17870,7 @@ parsoid=html2wt
 !! end
 
 !! test
-4. I/B qoute minimization: new content should be mimimized with adjacent old content
+4. I/B quote minimization: new content should be mimimized with adjacent old content
 !! options
 parsoid=html2wt
 !! input
index 07dcb7d..3668046 100644 (file)
@@ -200,4 +200,101 @@ class TimestampTest extends MediaWikiLangTestCase {
                        ),
                );
        }
+
+       /**
+        * @test
+        * @dataProvider provideRelativeTimestampTests
+        */
+       public function testRelativeTimestamp(
+               $tsTime, // The timestamp to format
+               $currentTime, // The time to consider "now"
+               $timeCorrection, // The time offset to use
+               $dateFormat, // The date preference to use
+               $expectedOutput, // The expected output
+               $desc // Description
+       ) {
+               $user = $this->getMock( 'User' );
+               $user->expects( $this->any() )
+                       ->method( 'getOption' )
+                       ->with( 'timecorrection' )
+                       ->will( $this->returnValue( $timeCorrection ) );
+
+               $tsTime = new MWTimestamp( $tsTime );
+               $currentTime = new MWTimestamp( $currentTime );
+
+               $this->assertEquals(
+                       $expectedOutput,
+                       $tsTime->getRelativeTimestamp( $currentTime, $user ),
+                       $desc
+               );
+       }
+
+       public static function provideRelativeTimestampTests() {
+               return array(
+                       array(
+                               '20111231170000',
+                               '20120101000000',
+                               'Offset|0',
+                               'mdy',
+                               '7 hours ago',
+                               '"Yesterday" across years',
+                       ),
+                       array(
+                               '20120717190900',
+                               '20120717190929',
+                               'Offset|0',
+                               'mdy',
+                               '29 seconds ago',
+                               '"Just now"',
+                       ),
+                       array(
+                               '20120717190900',
+                               '20120717191530',
+                               'Offset|0',
+                               'mdy',
+                               '6 minutes and 30 seconds ago',
+                               'Combination of multiple units',
+                       ),
+                       array(
+                               '20121006173100',
+                               '20121006173200',
+                               'Offset|0',
+                               'mdy',
+                               '1 minute ago',
+                               '"1 minute ago"',
+                       ),
+                       array(
+                               '19910130151500',
+                               '20120716193700',
+                               'Offset|0',
+                               'mdy',
+                               '2 decades, 1 year, 168 days, 2 hours, 8 minutes and 48 seconds ago',
+                               'A long time ago',
+                       ),
+                       array(
+                               '20120101050000',
+                               '20120101080000',
+                               'Offset|-360',
+                               'mdy',
+                               '3 hours ago',
+                               '"Yesterday" across years with time correction',
+                       ),
+                       array(
+                               '20120714184300',
+                               '20120716184300',
+                               'Offset|-420',
+                               'mdy',
+                               '2 days ago',
+                               'Recent weekday with time correction',
+                       ),
+                       array(
+                               '20120714184300',
+                               '20120715040000',
+                               'Offset|-420',
+                               'mdy',
+                               '9 hours and 17 minutes ago',
+                               'Today at another time with time correction',
+                       ),
+               );
+       }
 }
index 33bd8d6..da663c4 100644 (file)
@@ -32,6 +32,150 @@ class TitleTest extends MediaWikiTestCase {
                }
        }
 
+       /**
+        * See also mediawiki.Title.test.js
+        */
+       function testSecureAndSplit() {
+               // Valid
+               foreach ( array(
+                       'Sandbox',
+                       'A "B"',
+                       'A \'B\'',
+                       '.com',
+                       '~',
+                       '"',
+                       '\'',
+                       'Talk:Sandbox',
+                       'Talk:Foo:Sandbox',
+                       'File:Example.svg',
+                       'File_talk:Example.svg',
+                       'Foo/.../Sandbox',
+                       'Sandbox/...',
+                       'A~~',
+                       // Length is 256 total, but only title part matters
+                       'Category:' . str_repeat( 'x', 248 ),
+                       str_repeat( 'x', 252 )
+               ) as $text ) {
+                       $this->assertInstanceOf( 'Title', Title::newFromText( $text ), "Valid: $text" );
+               }
+
+               // Invalid
+               foreach ( array(
+                       '',
+                       '__  __',
+                       '  __  ',
+                       // Bad characters forbidden regardless of wgLegalTitleChars
+                       'A [ B',
+                       'A ] B',
+                       'A { B',
+                       'A } B',
+                       'A < B',
+                       'A > B',
+                       'A | B',
+                       // URL encoding
+                       'A%20B',
+                       'A%23B',
+                       'A%2523B',
+                       // XML/HTML character entity references
+                       // Note: Commented out because they are not marked invalid by the PHP test as
+                       // Title::newFromText runs Sanitizer::decodeCharReferencesAndNormalize first.
+                       //'A &eacute; B',
+                       //'A &#233; B',
+                       //'A &#x00E9; B',
+                       // Subject of NS_TALK does not roundtrip to NS_MAIN
+                       'Talk:File:Example.svg',
+                       // Directory navigation
+                       '.',
+                       '..',
+                       './Sandbox',
+                       '../Sandbox',
+                       'Foo/./Sandbox',
+                       'Foo/../Sandbox',
+                       'Sandbox/.',
+                       'Sandbox/..',
+                       // Tilde
+                       'A ~~~ Name',
+                       'A ~~~~ Signature',
+                       'A ~~~~~ Timestamp',
+                       str_repeat( 'x', 256 ),
+                       // Namespace prefix without actual title
+                       // ':', // bug 54044
+                       'Talk:',
+                       'Category: ',
+                       'Category: #bar'
+               ) as $text ) {
+                       $this->assertNull( Title::newFromText( $text ), "Invalid: $text" );
+               }
+       }
+
+       public static function provideConvertByteClassToUnicodeClass() {
+               return array(
+                       array(
+                               ' %!"$&\'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+',
+                               ' %!"$&\'()*,\\-./0-9:;=?@A-Z\\\\\\^_`a-z~+\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               'QWERTYf-\\xFF+',
+                               'QWERTYf-\\x7F+\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               'QWERTY\\x66-\\xFD+',
+                               'QWERTYf-\\x7F+\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               'QWERTYf-y+',
+                               'QWERTYf-y+',
+                       ),
+                       array(
+                               'QWERTYf-\\x80+',
+                               'QWERTYf-\\x7F+\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               'QWERTY\\x66-\\x80+\\x23',
+                               'QWERTYf-\\x7F+#\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               'QWERTY\\x66-\\x80+\\xD3',
+                               'QWERTYf-\\x7F+\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               '\\\\\\x99',
+                               '\\\\\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               '-\\x99',
+                               '\\-\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               'QWERTY\\-\\x99',
+                               'QWERTY\\-\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               '\\\\x99',
+                               '\\\\x99',
+                       ),
+                       array(
+                               'A-\\x9F',
+                               'A-\\x7F\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               '\\x66-\\x77QWERTY\\x88-\\x91FXZ',
+                               'f-wQWERTYFXZ\\u0080-\\uFFFF',
+                       ),
+                       array(
+                               '\\x66-\\x99QWERTY\\xAA-\\xEEFXZ',
+                               'f-\\x7FQWERTYFXZ\\u0080-\\uFFFF',
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideConvertByteClassToUnicodeClass
+        */
+       function testConvertByteClassToUnicodeClass( $byteClass, $unicodeClass ) {
+               $this->assertEquals( $unicodeClass, Title::convertByteClassToUnicodeClass( $byteClass ) );
+       }
+
        /**
         * @dataProvider provideBug31100
         */
index d80a571..1c898f0 100644 (file)
@@ -196,6 +196,28 @@ class CSSJanusTest extends MediaWikiTestCase {
                                '.foo { padding: 1px; }'
                        ),
 
+                       // text-shadow and box-shadow
+                       array(
+                               '.foo { box-shadow: -6px 3px 8px 5px rgba(0, 0, 0, 0.25); }',
+                               '.foo { box-shadow: 6px 3px 8px 5px rgba(0, 0, 0, 0.25); }',
+                       ),
+                       array(
+                               '.foo { box-shadow: inset -6px 3px 8px 5px rgba(0, 0, 0, 0.25); }',
+                               '.foo { box-shadow: inset 6px 3px 8px 5px rgba(0, 0, 0, 0.25); }',
+                       ),
+                       array(
+                               '.foo { text-shadow: orange 2px 0; }',
+                               '.foo { text-shadow: orange -2px 0; }',
+                       ),
+                       array(
+                               '.foo { text-shadow: 2px 0 orange; }',
+                               '.foo { text-shadow: -2px 0 orange; }',
+                       ),
+                       array(
+                               // Don't mangle zeroes
+                               '.foo { text-shadow: orange 0 2px; }'
+                       ),
+
                        // Direction
                        // Note: This differs from the Python implementation,
                        // see also CSSJanus::fixDirection for more info.
index 73c85f0..ab8e77b 100644 (file)
@@ -37,7 +37,7 @@ class NewParserTest extends MediaWikiTestCase {
        }
 
        protected function setUp() {
-               global $wgNamespaceAliases;
+               global $wgNamespaceAliases, $wgContLang;
                global $wgHooks, $IP;
 
                parent::setUp();
@@ -132,6 +132,9 @@ class NewParserTest extends MediaWikiTestCase {
                $tmpHooks['ParserTestParser'][] = 'ParserTestParserHook::setup';
                $tmpHooks['ParserGetVariableValueTs'][] = 'ParserTest::getFakeTimestamp';
                $tmpGlobals['wgHooks'] = $tmpHooks;
+               # add a namespace shadowing a interwiki link, to test
+               # proper precedence when resolving links. (bug 51680)
+               $tmpGlobals['wgExtraNamespaces'] = array( 100 => 'MemoryAlpha' );
 
                $this->setMwGlobals( $tmpGlobals );
 
@@ -140,10 +143,13 @@ class NewParserTest extends MediaWikiTestCase {
 
                $wgNamespaceAliases['Image'] = NS_FILE;
                $wgNamespaceAliases['Image_talk'] = NS_FILE_TALK;
+
+               MWNamespace::getCanonicalNamespaces( true ); # reset namespace cache
+               $wgContLang->resetNamespaces(); # reset namespace cache
        }
 
        protected function tearDown() {
-               global $wgNamespaceAliases;
+               global $wgNamespaceAliases, $wgContLang;
 
                $wgNamespaceAliases['Image'] = $this->savedWeirdGlobals['image_alias'];
                $wgNamespaceAliases['Image_talk'] = $this->savedWeirdGlobals['image_talk_alias'];
@@ -159,6 +165,9 @@ class NewParserTest extends MediaWikiTestCase {
                MessageCache::destroyInstance();
 
                parent::tearDown();
+
+               MWNamespace::getCanonicalNamespaces( true ); # reset namespace cache
+               $wgContLang->resetNamespaces(); # reset namespace cache
        }
 
        public static function tearDownAfterClass() {
index 4274335..03bb898 100644 (file)
@@ -3,16 +3,7 @@
  * Helping class to run tests using a clean language instance.
  *
  * This is intended for the MediaWiki language class tests under
- * tests/phpunit/languages. You simply need to extends this test
- * and set it up with a language code using setUpBeforeClass:
- *
- * @par Setting up a language:
- * @code
- * class LanguageFooTest extends LanguageClassesTestCase {
- *   public static function setUpBeforeClass() {
- *     self::setLang( 'Foo' );
- *   }
- * @endcode
+ * tests/phpunit/languages.
  *
  * Before each tests, a new language object is build which you
  * can retrieve in your test using the $this->getLang() method:
  * @endcode
  */
 abstract class LanguageClassesTestCase extends MediaWikiTestCase {
-
-       /**
-        * Regex used to find out the language code out of the class name
-        * used by setUpBeforeClass
-        */
-       private static $reExtractLangFromClass = '/Language(.*)Test/';
-
-       /**
-        * Hold the language code we are going to use. This is extracted
-        * directly from the extending class.
-        */
-       private static $LanguageClassCode;
-
        /**
         * Internal language object
         *
@@ -57,9 +35,16 @@ abstract class LanguageClassesTestCase extends MediaWikiTestCase {
         */
        private $languageObject;
 
-       public static function setUpBeforeClass() {
-               $found = preg_match( self::$reExtractLangFromClass,
-                       get_called_class(), $m );
+       protected function getLang() {
+               return $this->languageObject;
+       }
+
+       /**
+        * Create a new language object before each test.
+        */
+       protected function setUp() {
+               parent::setUp();
+               $found = preg_match( '/Language(.+)Test/', get_called_class(), $m );
                if ( $found ) {
                        # Normalize language code since classes uses underscores
                        $m[1] = str_replace( '_', '-', $m[1] );
@@ -72,20 +57,7 @@ abstract class LanguageClassesTestCase extends MediaWikiTestCase {
                        );
                }
                // TODO: validate $m[1] which should be a valid language code
-               self::$LanguageClassCode = $m[1];
-       }
-
-       protected function getLang() {
-               return $this->languageObject;
-       }
-
-       /**
-        * Create a new language object before each test.
-        */
-       protected function setUp() {
-               parent::setUp();
-               $this->languageObject = Language::factory(
-                       self::$LanguageClassCode );
+               $this->languageObject = Language::factory( $m[1] );
        }
 
        /**
index 596c57c..22d2af1 100644 (file)
                description: 'Pass the limit and a callback as input filter',
                $input: $( '<input type="text"/>' )
                        .byteLimit( 6, function ( val ) {
-                               // Invalid title
-                               if ( val === '' ) {
-                                       return '';
-                               }
-
+                               var title = mw.Title.newFromText( String( val ) );
                                // Return without namespace prefix
-                               return new mw.Title( String( val ) ).getMain();
+                               return title ? title.getMain() : '';
                        } ),
                sample: 'User:Sample',
                expected: 'User:Sample'
                $input: $( '<input type="text"/>' )
                        .attr( 'maxlength', '6' )
                        .byteLimit( function ( val ) {
-                               // Invalid title
-                               if ( val === '' ) {
-                                       return '';
-                               }
-
+                               var title = mw.Title.newFromText( String( val ) );
                                // Return without namespace prefix
-                               return new mw.Title( String( val ) ).getMain();
+                               return title ? title.getMain() : '';
                        } ),
                sample: 'User:Sample',
                expected: 'User:Sample'
                description: 'Pass the limit and a callback as input filter',
                $input: $( '<input type="text"/>' )
                        .byteLimit( 6, function ( val ) {
-                               // Invalid title
-                               if ( val === '' ) {
-                                       return '';
-                               }
-
+                               var title = mw.Title.newFromText( String( val ) );
                                // Return without namespace prefix
-                               return new mw.Title( String( val ) ).getMain();
+                               return title ? title.getMain() : '';
                        } ),
                sample: 'User:Example',
                // The callback alters the value to be used to calculeate
index 30a31ef..e6bbe1e 100644 (file)
@@ -1,4 +1,4 @@
-( function ( mw ) {
+( function ( mw, $ ) {
        // mw.Title relies on these three config vars
        // Restore them after each test run
        var config = {
                        antarctic_waterfowl: 100
                },
                wgCaseSensitiveNamespaces: []
+       },
+       repeat = function ( input, multiplier ) {
+               return new Array( multiplier + 1 ).join( input );
+       },
+       cases = {
+               // See also TitleTest.php#testSecureAndSplit
+               valid: [
+                       'Sandbox',
+                       'A "B"',
+                       'A \'B\'',
+                       '.com',
+                       '~',
+                       '"',
+                       '\'',
+                       'Talk:Sandbox',
+                       'Talk:Foo:Sandbox',
+                       'File:Example.svg',
+                       'File_talk:Example.svg',
+                       'Foo/.../Sandbox',
+                       'Sandbox/...',
+                       'A~~',
+                       // Length is 256 total, but only title part matters
+                       'Category:' + repeat( 'x', 248 ),
+                       repeat( 'x', 252 )
+               ],
+               invalid: [
+                       '',
+                       '__  __',
+                       '  __  ',
+                       // Bad characters forbidden regardless of wgLegalTitleChars
+                       'A [ B',
+                       'A ] B',
+                       'A { B',
+                       'A } B',
+                       'A < B',
+                       'A > B',
+                       'A | B',
+                       // URL encoding
+                       'A%20B',
+                       'A%23B',
+                       'A%2523B',
+                       // XML/HTML character entity references
+                       // Note: The ones with # are commented out as those are interpreted as fragment and
+                       // as such end up being valid.
+                       'A &eacute; B',
+                       //'A &#233; B',
+                       //'A &#x00E9; B',
+                       // Subject of NS_TALK does not roundtrip to NS_MAIN
+                       'Talk:File:Example.svg',
+                       // Directory navigation
+                       '.',
+                       '..',
+                       './Sandbox',
+                       '../Sandbox',
+                       'Foo/./Sandbox',
+                       'Foo/../Sandbox',
+                       'Sandbox/.',
+                       'Sandbox/..',
+                       // Tilde
+                       'A ~~~ Name',
+                       'A ~~~~ Signature',
+                       'A ~~~~~ Timestamp',
+                       repeat( 'x', 256 ),
+                       // Extension separation is a js invention, for length
+                       // purposes it is part of the title
+                       repeat( 'x', 252 ) + '.json',
+                       // Namespace prefix without actual title
+                       // ':', // bug 54044
+                       'Talk:',
+                       'Category: ',
+                       'Category: #bar'
+               ]
        };
 
        QUnit.module( 'mediawiki.Title', QUnit.newMwEnvironment( { config: config } ) );
 
-       QUnit.test( 'Transformation', 8, function ( assert ) {
+       QUnit.test( 'constructor', cases.invalid.length, function ( assert ) {
+               var i, title;
+               for ( i = 0; i < cases.valid.length; i++ ) {
+                       title = new mw.Title( cases.valid[i] );
+               }
+               for ( i = 0; i < cases.invalid.length; i++ ) {
+                       /*jshint loopfunc:true */
+                       title = cases.invalid[i];
+                       assert.throws( function () {
+                               return new mw.Title( title );
+                       }, cases.invalid[i] );
+               }
+       } );
+
+       QUnit.test( 'newFromText', cases.valid.length + cases.invalid.length, function ( assert ) {
+               var i;
+               for ( i = 0; i < cases.valid.length; i++ ) {
+                       assert.equal(
+                               $.type( mw.Title.newFromText( cases.valid[i] ) ),
+                               'object',
+                               cases.valid[i]
+                       );
+               }
+               for ( i = 0; i < cases.invalid.length; i++ ) {
+                       assert.equal(
+                               $.type( mw.Title.newFromText( cases.invalid[i] ) ),
+                               'null',
+                               cases.invalid[i]
+                       );
+               }
+       } );
+
+       QUnit.test( 'Basic parsing', 12, function ( assert ) {
+               var title;
+               title = new mw.Title( 'File:Foo_bar.JPG' );
+
+               assert.equal( title.getNamespaceId(), 6 );
+               assert.equal( title.getNamespacePrefix(), 'File:' );
+               assert.equal( title.getName(), 'Foo_bar' );
+               assert.equal( title.getNameText(), 'Foo bar' );
+               assert.equal( title.getExtension(), 'JPG' );
+               assert.equal( title.getDotExtension(), '.JPG' );
+               assert.equal( title.getMain(), 'Foo_bar.JPG' );
+               assert.equal( title.getMainText(), 'Foo bar.JPG' );
+               assert.equal( title.getPrefixedDb(), 'File:Foo_bar.JPG' );
+               assert.equal( title.getPrefixedText(), 'File:Foo bar.JPG' );
+
+               title = new mw.Title( 'Foo#bar' );
+               assert.equal( title.getPrefixedText(), 'Foo' );
+               assert.equal( title.getFragment(), 'bar' );
+       } );
+
+       QUnit.test( 'Transformation', 11, function ( assert ) {
                var title;
 
                title = new mw.Title( 'File:quux pif.jpg' );
-               assert.equal( title.getName(), 'Quux_pif' );
+               assert.equal( title.getNameText(), 'Quux pif', 'First character of title' );
 
                title = new mw.Title( 'File:Glarg_foo_glang.jpg' );
-               assert.equal( title.getNameText(), 'Glarg foo glang' );
+               assert.equal( title.getNameText(), 'Glarg foo glang', 'Underscores' );
 
                title = new mw.Title( 'User:ABC.DEF' );
-               assert.equal( title.toText(), 'User:ABC.DEF' );
-               assert.equal( title.getNamespaceId(), 2 );
-               assert.equal( title.getNamespacePrefix(), 'User:' );
+               assert.equal( title.toText(), 'User:ABC.DEF', 'Round trip text' );
+               assert.equal( title.getNamespaceId(), 2, 'Parse canonical namespace prefix' );
+
+               title = new mw.Title( 'Image:quux pix.jpg' );
+               assert.equal( title.getNamespacePrefix(), 'File:', 'Transform alias to canonical namespace' );
 
                title = new mw.Title( 'uSEr:hAshAr' );
                assert.equal( title.toText(), 'User:HAshAr' );
-               assert.equal( title.getNamespaceId(), 2 );
+               assert.equal( title.getNamespaceId(), 2, 'Case-insensitive namespace prefix' );
 
-               title = new mw.Title( '   MediaWiki:  Foo   bar   .js   ' );
-               // Don't ask why, it's the way the backend works. One space is kept of each set
-               assert.equal( title.getName(), 'Foo_bar_.js', 'Merge multiple spaces to a single space.' );
-       } );
+               // Don't ask why, it's the way the backend works. One space is kept of each set.
+               title = new mw.Title( 'Foo  __  \t __ bar' );
+               assert.equal( title.getMain(), 'Foo_bar', 'Merge multiple types of whitespace/underscores into a single underscore' );
 
-       QUnit.test( 'Main text for filename', 8, function ( assert ) {
-               var title = new mw.Title( 'File:foo_bar.JPG' );
+               // Regression test: Previously it would only detect an extension if there is no space after it
+               title = new mw.Title( 'Example.js  ' );
+               assert.equal( title.getExtension(), 'js', 'Space after an extension is stripped' );
 
-               assert.equal( title.getNamespaceId(), 6 );
-               assert.equal( title.getNamespacePrefix(), 'File:' );
-               assert.equal( title.getName(), 'Foo_bar' );
-               assert.equal( title.getNameText(), 'Foo bar' );
-               assert.equal( title.getMain(), 'Foo_bar.JPG' );
-               assert.equal( title.getMainText(), 'Foo bar.JPG' );
-               assert.equal( title.getExtension(), 'JPG' );
-               assert.equal( title.getDotExtension(), '.JPG' );
+               title = new mw.Title( 'Example#foo' );
+               assert.equal( title.getFragment(), 'foo', 'Fragment' );
+
+               title = new mw.Title( 'Example#_foo_bar baz_' );
+               assert.equal( title.getFragment(), ' foo bar baz', 'Fragment' );
        } );
 
-       QUnit.test( 'Namespace detection and conversion', 6, function ( assert ) {
+       QUnit.test( 'Namespace detection and conversion', 10, function ( assert ) {
                var title;
 
+               title = new mw.Title( 'File:User:Example' );
+               assert.equal( title.getNamespaceId(), 6, 'Titles can contain namespace prefixes, which are otherwise ignored' );
+
+               title = new mw.Title( 'Example', 6 );
+               assert.equal( title.getNamespaceId(), 6, 'Default namespace passed is used' );
+
+               title = new mw.Title( 'User:Example', 6 );
+               assert.equal( title.getNamespaceId(), 2, 'Included namespace prefix overrides the given default' );
+
+               title = new mw.Title( ':Example', 6 );
+               assert.equal( title.getNamespaceId(), 0, 'Colon forces main namespace' );
+
                title = new mw.Title( 'something.PDF', 6 );
                assert.equal( title.toString(), 'File:Something.PDF' );
 
                assert.equal( title.getUrl(), '/wiki/User_talk:John_Doe', 'Escaping in title and namespace for urls' );
        } );
 
-}( mediaWiki ) );
+}( mediaWiki, jQuery ) );
index f2676d7..08adb93 100644 (file)
@@ -95,8 +95,8 @@
                        '</div>' +
                        '<ul><li></li></ul>' +
                        '</div>';
-               $( tocHtml ).appendTo( '#qunit-fixture' ),
-                       $toggleLink = $( '#togglelink' );
+               $( tocHtml ).appendTo( '#qunit-fixture' );
+               $toggleLink = $( '#togglelink' );
 
                assert.strictEqual( $toggleLink.length, 1, 'Toggle link is appended to the page.' );
 
index 2cda344..ef2af24 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -76,7 +76,7 @@ function wfThumbHandle404() {
                return;
        }
 
-       $params = wfExtractThumbParams( $matches['title'] ); // basic wiki URL param extracting
+       $params = wfExtractThumbRequestInfo( $matches['title'] ); // basic wiki URL param extracting
        if ( $params == null ) {
                wfThumbError( 400, 'The specified thumbnail parameters are not recognized.' );
                return;
@@ -88,7 +88,14 @@ function wfThumbHandle404() {
 /**
  * Stream a thumbnail specified by parameters
  *
- * @param $params Array
+ * @param $params Array List of thumbnailing parameters. In addition to parameters
+ *  passed to the MediaHandler, this may also includes the keys:
+ *   f (for filename), archived (if archived file), temp (if temp file),
+ *   w (alias for width), p (alias for page), r (ignored; historical),
+ *   rel404 (path for render on 404 to verify hash path correct),
+ *   thumbName (thumbnail name to potentially extract more parameters from
+ *   e.g. 'lossy-page1-120px-Foo.tiff' would add page, lossy and width
+ *   to the parameters)
  * @return void
  */
 function wfStreamThumb( array $params ) {
@@ -99,17 +106,6 @@ function wfStreamThumb( array $params ) {
        $headers = array(); // HTTP headers to send
 
        $fileName = isset( $params['f'] ) ? $params['f'] : '';
-       unset( $params['f'] );
-
-       // Backwards compatibility parameters
-       if ( isset( $params['w'] ) ) {
-               $params['width'] = $params['w'];
-               unset( $params['w'] );
-       }
-       if ( isset( $params['p'] ) ) {
-               $params['page'] = $params['p'];
-       }
-       unset( $params['r'] ); // ignore 'r' because we unconditionally pass File::RENDER
 
        // Is this a thumb of an archived file?
        $isOld = ( isset( $params['archived'] ) && $params['archived'] );
@@ -166,6 +162,16 @@ function wfStreamThumb( array $params ) {
                $varyHeader[] = 'Cookie';
        }
 
+       // Do rendering parameters extraction from thumbnail name.
+       if ( isset( $params['thumbName'] ) ) {
+               $params = wfExtractThumbParams( $img, $params );
+       }
+       if ( $params == null ) {
+               wfThumbError( 400, 'The specified thumbnail parameters are not recognized.' );
+               return;
+       }
+
+
        // Check the source file storage path
        if ( !$img->exists() ) {
                $redirectedLocation = false;
@@ -229,6 +235,18 @@ function wfStreamThumb( array $params ) {
                }
        }
 
+       // Backwards compatibility parameters
+       if ( isset( $params['w'] ) ) {
+               $params['width'] = $params['w'];
+               unset( $params['w'] );
+       }
+       if ( isset( $params['p'] ) ) {
+               $params['page'] = $params['p'];
+       }
+       unset( $params['r'] ); // ignore 'r' because we unconditionally pass File::RENDER
+       unset( $params['f'] ); // We're done with 'f' parameter.
+
+
        // Get the normalized thumbnail name from the parameters...
        try {
                $thumbName = $img->thumbName( $params );
@@ -317,13 +335,25 @@ function wfStreamThumb( array $params ) {
 }
 
 /**
- * Extract the required params for thumb.php from the thumbnail request URI.
- * At least 'width' and 'f' should be set if the result is an array.
+ * Convert pathinfo type parameter, into normal request parameters
+ *
+ * So for example, if the request was redirected from
+ * /w/images/thumb/a/ab/Foo.png/120px-Foo.png. The $thumbRel parameter
+ * of this function would be set to "a/ab/Foo.png/120px-Foo.png".
+ * This method is responsible for turning that into an array
+ * with the folowing keys:
+ *  * f => the filename (Foo.png)
+ *  * rel404 => the whole thing (a/ab/Foo.png/120px-Foo.png)
+ *  * archived => 1 (If the request is for an archived thumb)
+ *  * temp => 1 (If the file is in the "temporary" zone)
+ *  * thumbName => the thumbnail name, including parameters (120px-Foo.png)
+ *
+ * Transform specific parameters are set later via wfExtractThumbParams().
  *
  * @param $thumbRel String Thumbnail path relative to the thumb zone
  * @return Array|null associative params array or null
  */
-function wfExtractThumbParams( $thumbRel ) {
+function wfExtractThumbRequestInfo( $thumbRel ) {
        $repo = RepoGroup::singleton()->getLocalRepo();
 
        $hashDirReg = $subdirReg = '';
@@ -349,12 +379,59 @@ function wfExtractThumbParams( $thumbRel ) {
                $params['temp'] = 1;
        }
 
-       // Check hooks if parameters can be extracted
-       // Hooks return false if they manage to *resolve* the parameters
+       $params['thumbName'] = $thumbname;
+       return $params;
+}
+
+/**
+ * Convert a thumbnail name (122px-foo.png) to parameters, using
+ * file handler.
+ *
+ * @param File $file File object for file in question.
+ * @param $param Array Array of parameters so far.
+ * @return Array parameters array with more parameters.
+ */
+function wfExtractThumbParams( $file, $params ) {
+       if ( !isset( $params['thumbName'] ) ) {
+               throw new MWException( "No thumbnail name passed to wfExtractThumbParams" );
+       }
+
+       $thumbname = $params['thumbName'];
+       unset( $params['thumbName'] );
+
+       // Do the hook first for older extensions that rely on it.
        if ( !wfRunHooks( 'ExtractThumbParameters', array( $thumbname, &$params ) ) ) {
+               // Check hooks if parameters can be extracted
+               // Hooks return false if they manage to *resolve* the parameters
+               // This hook should be considered deprecated
+               wfDeprecated( 'ExtractThumbParameters', '1.22' );
                return $params; // valid thumbnail URL (via extension or config)
-       // Check if the parameters can be extracted from the thumbnail name...
-       } elseif ( preg_match( '!^(page(\d*)-)*(\d*)px-[^/]*$!', $thumbname, $matches ) ) {
+       }
+
+       // FIXME: Files in the temp zone don't set a mime type, which means
+       // they don't have a handler. Which means we can't parse the param
+       // string. However, not a big issue as what good is a param string
+       // if you have no handler to make use of the param string and
+       // actually generate the thumbnail.
+       $handler = $file->getHandler();
+
+       // Based on UploadStash::parseKey
+       $fileNamePos = strrpos( $thumbname, $params['f'] );
+       if ( $fileNamePos === false ) {
+               // Maybe using a short filename? (see FileRepo::nameForThumb)
+               $fileNamePos = strrpos( $thumbname, 'thumbnail' );
+       }
+
+       if ( $handler && $fileNamePos !== false ) {
+               $paramString = substr( $thumbname, 0, $fileNamePos - 1 );
+               $extraParams = $handler->parseParamString( $paramString );
+               if ( $handler !== false ) {
+                       return $params + $extraParams;
+               }
+       }
+
+       // As a last ditch fallback, use the traditional common parameters
+       if ( preg_match( '!^(page(\d*)-)*(\d*)px-[^/]*$!', $thumbname, $matches ) ) {
                list( /* all */, $pagefull, $pagenum, $size ) = $matches;
                $params['width'] = $size;
                if ( $pagenum ) {
@@ -362,8 +439,7 @@ function wfExtractThumbParams( $thumbRel ) {
                }
                return $params; // valid thumbnail URL
        }
-
-       return null; // not a valid thumbnail URL
+       return null;
 }
 
 /**
@@ -387,6 +463,7 @@ function wfThumbError( $status, $msg ) {
                header( 'HTTP/1.1 500 Internal server error' );
        }
        if ( $wgShowHostnames ) {
+               header( 'X-MW-Thumbnail-Renderer: ' . wfHostname() );
                $url = htmlspecialchars( isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] : '' );
                $hostname = htmlspecialchars( wfHostname() );
                $debug = "<!-- $url -->\n<!-- $hostname -->\n";