Merge "Have SquidUpdate::newFromTitles use getSquidURLs"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 17 Nov 2015 22:33:56 +0000 (22:33 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 17 Nov 2015 22:33:56 +0000 (22:33 +0000)
98 files changed:
RELEASE-NOTES-1.27
includes/DefaultSettings.php
includes/Linker.php
includes/PHPVersionCheck.php
includes/PHPVersionError.php
includes/PrefixSearch.php
includes/Revision.php
includes/Setup.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiMain.php
includes/api/i18n/br.json
includes/api/i18n/eu.json
includes/api/i18n/fr.json
includes/api/i18n/he.json
includes/api/i18n/lb.json
includes/api/i18n/mr.json
includes/api/i18n/nap.json
includes/api/i18n/ps.json
includes/api/i18n/vi.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/cache/MessageCache.php
includes/db/loadbalancer/LoadBalancer.php
includes/deferred/LinksUpdate.php
includes/diff/DairikiDiff.php
includes/diff/TableDiffFormatter.php
includes/installer/i18n/eu.json
includes/installer/i18n/frc.json
includes/installer/i18n/mr.json
includes/installer/i18n/nap.json
includes/installer/i18n/tr.json
includes/installer/i18n/vi.json
includes/jobqueue/JobRunner.php
includes/jobqueue/aggregator/JobQueueAggregatorRedis.php
includes/jobqueue/jobs/RefreshLinksJob.php
includes/libs/objectcache/WANObjectCache.php
includes/password/UserPasswordPolicy.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/specials/SpecialMovepage.php
includes/widget/TitleInputWidget.php
index.php
languages/i18n/az.json
languages/i18n/be-tarask.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ce.json
languages/i18n/diq.json
languages/i18n/el.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/frc.json
languages/i18n/he.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ko.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/lb.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/mr.json
languages/i18n/nb.json
languages/i18n/nl.json
languages/i18n/olo.json
languages/i18n/pl.json
languages/i18n/ps.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/ru.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sc.json
languages/i18n/te.json
languages/i18n/tr.json
languages/i18n/vi.json
languages/i18n/yi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/Maintenance.php
maintenance/install.php
maintenance/populateFilearchiveSha1.php
mw-config/index.php
resources/Resources.php
resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js
resources/src/mediawiki/mediawiki.Title.js
tests/phpunit/ResourceLoaderTestCase.php
tests/phpunit/includes/DiffHistoryBlobTest.php
tests/phpunit/includes/api/RandomImageGenerator.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js

index e124832..e426e83 100644 (file)
@@ -51,6 +51,7 @@ production.
   a thumbnail handler. See $wgForeignFileRepos documentation for tweaks.
 * (T27397) WebP is enabled by default as an uploadable filetype.
 * (T48998) $wgArticlePath must now be either a full url, or start with a "/".
+* $wgRateLimitLog was removed; use $wgDebugLogGroups['ratelimit'] instead.
 
 === New features in 1.27 ===
 * $wgDataCenterId and $wgDataCenterRoles where added, which will serve as
index bf6e245..ec600dc 100644 (file)
@@ -2358,8 +2358,15 @@ $wgMemCachedPersistent = false;
 $wgMemCachedTimeout = 500000;
 
 /**
- * Set this to true to make a local copy of the message cache, for use in
- * addition to memcached. The files will be put in $wgCacheDirectory.
+ * Set this to true to maintain a copy of the message cache on the local server.
+ *
+ * This layer of message cache is in addition to the one configured by $wgMessageCacheType.
+ *
+ * The local copy is put in APC. If APC is not installed, this setting does nothing.
+ *
+ * Note that this is about the message cache, which stores interface messages
+ * maintained as wiki pages. This is separate from the localisation cache for interface
+ * messages provided by the software, which is configured by $wgLocalisationCacheConf.
  */
 $wgUseLocalMessageCache = false;
 
@@ -5285,13 +5292,6 @@ $wgRateLimits = array(
        ),
 );
 
-/**
- * Set to a filename to log rate limiter hits.
- *
- * @deprecated since 1.23, use $wgDebugLogGroups['ratelimit'] instead
- */
-$wgRateLimitLog = null;
-
 /**
  * Array of IPs which should be excluded from rate limits.
  * This may be useful for whitelisting NAT gateways for conferences, etc.
index b5e7e2f..842d276 100644 (file)
@@ -1464,19 +1464,17 @@ class Linker {
                                        $linkText = $text;
                                        $linkTarget = Linker::normalizeSubpageLink( $title, $match[1], $linkText );
 
-                                       if ( $linkTarget !== null ) {
-                                               $target = Title::newFromText( $linkTarget );
-                                               if ( $target ) {
-                                                       if ( $target->getText() == '' && !$target->isExternal()
-                                                               && !$local && $title
-                                                       ) {
-                                                               $newTarget = clone $title;
-                                                               $newTarget->setFragment( '#' . $target->getFragment() );
-                                                               $target = $newTarget;
-                                                       }
-
-                                                       $thelink = Linker::makeCommentLink( $target, $linkText . $inside, $wikiId ) . $trail;
+                                       $target = Title::newFromText( $linkTarget );
+                                       if ( $target ) {
+                                               if ( $target->getText() == '' && !$target->isExternal()
+                                                       && !$local && $title
+                                               ) {
+                                                       $newTarget = clone $title;
+                                                       $newTarget->setFragment( '#' . $target->getFragment() );
+                                                       $target = $newTarget;
                                                }
+
+                                               $thelink = Linker::makeCommentLink( $target, $linkText . $inside, $wikiId ) . $trail;
                                        }
                                }
                                if ( $thelink ) {
index 333d040..41e88c2 100644 (file)
@@ -40,7 +40,9 @@ function wfEntryPointCheck( $entryPoint ) {
                wfPHPVersionError( $entryPoint, $mwVersion, $minimumVersionPHP, $phpVersion );
        }
 
+       // @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
        if ( !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' ) ) {
+               // @codingStandardsIgnoreEnd
                wfMissingVendorError( $entryPoint, $mwVersion );
        }
 }
index 007ea89..9fbcf89 100644 (file)
@@ -21,4 +21,6 @@
  * @deprecated 1.25
  * @file
  */
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
index f36635b..e328e9f 100644 (file)
@@ -368,10 +368,7 @@ abstract class PrefixSearch {
                        $ns = NS_MAIN; // if searching on many always default to main
                }
 
-               $t = null;
-               if ( is_string( $search ) ) {
-                       $t = Title::newFromText( $search, $ns );
-               }
+               $t = Title::newFromText( $search, $ns );
 
                $prefix = $t ? $t->getDBkey() : '';
                $dbr = wfGetDB( DB_SLAVE );
index a498817..3b98a65 100644 (file)
@@ -1505,11 +1505,18 @@ class Revision implements IDBAccessObject {
                }
 
                $content = $this->getContent( Revision::RAW );
+               $prefixedDBkey = $title->getPrefixedDBkey();
+               $revId = $this->mId;
 
-               if ( !$content || !$content->isValid() ) {
-                       $t = $title->getPrefixedDBkey();
-
-                       throw new MWException( "Content of $t is not valid! Content model is $model" );
+               if ( !$content ) {
+                       throw new MWException(
+                               "Content of revision $revId ($prefixedDBkey) could not be loaded for validation!"
+                       );
+               }
+               if ( !$content->isValid() ) {
+                       throw new MWException(
+                               "Content of revision $revId ($prefixedDBkey) is not valid! Content model is $model"
+                       );
                }
        }
 
index bd20ac3..44c1f71 100644 (file)
@@ -474,11 +474,6 @@ if ( $wgCookieSecure === 'detect' ) {
        $wgCookieSecure = ( WebRequest::detectProtocol() === 'https' );
 }
 
-// Back compatibility for $wgRateLimitLog deprecated with 1.23
-if ( $wgRateLimitLog && !array_key_exists( 'ratelimit', $wgDebugLogGroups ) ) {
-       $wgDebugLogGroups['ratelimit'] = $wgRateLimitLog;
-}
-
 if ( $wgProfileOnly ) {
        $wgDebugLogGroups['profileoutput'] = $wgDebugLogFile;
        $wgDebugLogFile = '';
index e8afcb6..77a3a21 100644 (file)
@@ -265,6 +265,13 @@ class ApiFeedWatchlist extends ApiBase {
                                if ( !isset( $p[ApiBase::PARAM_HELP_MSG] ) ) {
                                        $p[ApiBase::PARAM_HELP_MSG] = "apihelp-query+watchlist-param-$from";
                                }
+                               if ( is_array( $p[ApiBase::PARAM_TYPE] ) && isset( $p[ApiBase::PARAM_HELP_MSG_PER_VALUE] ) ) {
+                                       foreach ( $p[ApiBase::PARAM_TYPE] as $v ) {
+                                               if ( !isset( $p[ApiBase::PARAM_HELP_MSG_PER_VALUE][$v] ) ) {
+                                                       $p[ApiBase::PARAM_HELP_MSG_PER_VALUE][$v] = "apihelp-query+watchlist-paramvalue-$from-$v";
+                                               }
+                                       }
+                               }
                                $ret[$to] = $p;
                        }
                } else {
index 2768409..9d983d9 100644 (file)
@@ -1289,31 +1289,45 @@ class ApiMain extends ApiBase {
 
        /**
         * Log the preceding request
-        * @param int $time Time in seconds
+        * @param float $time Time in seconds
         */
        protected function logRequest( $time ) {
                $request = $this->getRequest();
-               $milliseconds = $time === null ? '?' : round( $time * 1000 );
-               $s = 'API' .
-                       ' ' . $request->getMethod() .
-                       ' ' . wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) .
-                       ' ' . $request->getIP() .
-                       ' T=' . $milliseconds . 'ms';
+               $logCtx = array(
+                       'dt' => date( 'c' ),
+                       'client_ip' => $request->getIP(),
+                       'user_agent' => $this->getUserAgent(),
+                       'wiki' => wfWikiId(),
+                       'time_backend_ms' => round( $time * 1000 ),
+                       'params' => array(),
+               );
+
+               // Construct space separated message for 'api' log channel
+               $msg = "API {$request->getMethod()} " .
+                       wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) .
+                       " {$logCtx['client_ip']} " .
+                       "T={$logCtx['time_backend_ms']}ms";
+
                foreach ( $this->getParamsUsed() as $name ) {
                        $value = $request->getVal( $name );
                        if ( $value === null ) {
                                continue;
                        }
-                       $s .= ' ' . $name . '=';
+
                        if ( strlen( $value ) > 256 ) {
-                               $encValue = $this->encodeRequestLogValue( substr( $value, 0, 256 ) );
-                               $s .= $encValue . '[...]';
+                               $value = substr( $value, 0, 256 );
+                               $encValue = $this->encodeRequestLogValue( $value ) . '[...]';
                        } else {
-                               $s .= $this->encodeRequestLogValue( $value );
+                               $encValue = $this->encodeRequestLogValue( $value );
                        }
+
+                       $logCtx['params'][$name] = $value;
+                       $msg .= " {$name}={$encValue}";
                }
-               $s .= "\n";
-               wfDebugLog( 'api', $s, 'private' );
+
+               wfDebugLog( 'api', $msg, 'private' );
+               // ApiRequest channel is for structured data consumers
+               wfDebugLog( 'ApiRequest', '', 'private', $logCtx );
        }
 
        /**
index 6810235..9ed9dcb 100644 (file)
@@ -6,8 +6,14 @@
        },
        "apihelp-block-description": "Stankañ un implijer",
        "apihelp-block-param-reason": "Abeg evit stankañ.",
+       "apihelp-createaccount-param-name": "Anv implijer.",
        "apihelp-delete-description": "Diverkañ ur bajenn.",
+       "apihelp-edit-param-text": "Danvez ar bajenn.",
        "apihelp-edit-param-minor": "Kemmig dister.",
        "apihelp-edit-example-edit": "Kemmañ ur bajenn.",
-       "apihelp-expandtemplates-param-title": "Titl ar bajenn."
+       "apihelp-expandtemplates-param-title": "Titl ar bajenn.",
+       "apihelp-login-param-name": "Anv implijer.",
+       "apihelp-login-param-password": "Ger-tremen.",
+       "apihelp-login-example-login": "Kevreañ.",
+       "apihelp-protect-example-protect": "Gwareziñ ur bajenn."
 }
index b6a64dd..9f6d881 100644 (file)
@@ -5,6 +5,7 @@
                        "Sator"
                ]
        },
+       "apihelp-main-param-format": "Irteerako formatua.",
        "apihelp-block-description": "Blokeatu erabiltzaile bat.",
        "apihelp-block-param-reason": "Blokeatzeko arrazoia.",
        "apihelp-createaccount-description": "Erabiltzaile kontu berria sortu.",
        "apihelp-createaccount-param-email": "Erabiltzailearen helbide elektronikoa (aukerakoa).",
        "apihelp-createaccount-param-realname": "Erabiltzailearen benetako izena (aukerakoa).",
        "apihelp-delete-description": "Orrialde bat ezabatu.",
+       "apihelp-delete-example-simple": "Ezabatu <kbd>Main Page</kbd>.",
        "apihelp-edit-description": "Orrialdeak sortu eta aldatu.",
+       "apihelp-edit-param-text": "Orrialdearen edukia.",
        "apihelp-edit-param-minor": "Aldaketa txikia.",
        "apihelp-edit-example-edit": "Orrialde bat aldatu",
        "apihelp-emailuser-description": "Erabiltzaileari e-maila bidali",
+       "apihelp-emailuser-param-subject": "Gaiaren goiburua.",
+       "apihelp-emailuser-param-text": "Mezuaren gorputza.",
        "apihelp-expandtemplates-param-title": "Orrialdearen izenburua.",
        "apihelp-feedcontributions-param-year": "Urtetik aurrera (eta lehenagotik)",
        "apihelp-feedcontributions-param-month": "Hilabetetik aurrera (eta lehenagotik)",
        "apihelp-query+prefixsearch-param-search": "Bilatu katea.",
        "apihelp-query+protectedtitles-example-simple": "Zerrendatu babestutako izenburuak",
        "apihelp-query+recentchanges-example-simple": "Zerrendatu aldaketa berriak.",
+       "apihelp-upload-param-file": "Fitxategiaren edukia.",
        "apihelp-upload-example-url": "Igo URL batetik.",
        "apihelp-userrights-param-reason": "Aldaketarako arrazoia.",
        "api-help-main-header": "Modulu nagusia",
        "api-help-flag-deprecated": "Modulu hau zaharkitua dago.",
+       "api-help-source": "Iturria: $1",
+       "api-help-source-unknown": "Iturria: <span class=\"apihelp-unknown\">ezezaguna</span>",
+       "api-help-license": "Lizentzia: [[$1|$2]]",
+       "api-help-license-noname": "Lizentzia: [[$1|Ikusi esteka]]",
+       "api-help-license-unknown": "Lizentzia: <span class=\"apihelp-unknown\">ezezaguna</span>",
        "api-help-parameters": "{{PLURAL:$1|Parametroa|Parametroak}}:",
        "api-help-param-deprecated": "Zaharkitua.",
        "api-help-param-required": "Parametro hau beharrezkoa da.",
+       "api-help-datatypes-header": "Datu-motak",
+       "api-help-param-type-limit": "Mota: osokoa edo <kbd>max</kbd>",
+       "api-help-param-type-integer": "Mota: {{PLURAL:$1|1=osokoa|2=osokoen zerrenda}}",
+       "api-help-param-type-boolean": "Mota: boolearra ([[Special:ApiHelp/main#main/datatypes|xehetasunak]])",
+       "api-help-param-type-timestamp": "Mota: {{PLURAL:$1|1=data-zigilua|2=data-zigiluen zerrenda}} ([[Special:ApiHelp/main#main/datatypes|onartutako formatuak]])",
+       "api-help-param-type-user": "Mota: {{PLURAL:$1|1=erabiltzaile-izena|2=erabiltzaile-izenen zerrenda}}",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Hutsik egon behar du|Hutsik egon daiteke edo $2}}",
        "api-help-param-limit": "Ez dira $1 baino gehiago onartzen.",
        "api-help-param-limit2": "Ez dira $1 ($2 botentzat) baino gehiago onartzen.",
index 7eb49d2..7bf1c06 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrer par balise.",
        "apihelp-feedrecentchanges-param-target": "Afficher uniquement les modifications sur les pages liées depuis cette page.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Afficher les modifications plutôt sur les pages liées vers la page sélectionnée.",
+       "apihelp-feedrecentchanges-param-categories": "Afficher uniquement les modifications sur les pages dans toutes ces catégories",
+       "apihelp-feedrecentchanges-param-categories_any": "Afficher plutôt uniquement les modifications sur les pages dans n’importe laquelle de ces catégories.",
        "apihelp-feedrecentchanges-example-simple": "Afficher les modifications récentes",
        "apihelp-feedrecentchanges-example-30days": "Afficher les modifications récentes sur 30 jours",
        "apihelp-feedwatchlist-description": "Renvoie un flux de liste de suivi.",
index 310e2d0..94166f2 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "סינון לפי תגית.",
        "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.",
        "apihelp-feedrecentchanges-param-showlinkedto": "להציג את השינויים בדפים שמקושרים לדף שנבחר במקום זה.",
+       "apihelp-feedrecentchanges-param-categories": "להציג רק שינויים בדפים בכל הקטגוריות האלו.",
+       "apihelp-feedrecentchanges-param-categories_any": "להציג רק שינויים בדפים בכל הקטגוריות במקום.",
        "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.",
        "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.",
        "apihelp-feedwatchlist-description": "החזרת הזנת רשימת מעקב.",
index a49c481..c334d38 100644 (file)
@@ -39,6 +39,8 @@
        "apihelp-feedrecentchanges-param-hideliu": "Ännerunge vu registréierte Benotzer verstoppen.",
        "apihelp-feedrecentchanges-param-hidemyself": "Ännerunge vum aktuelle Benotzer verstoppen.",
        "apihelp-feedrecentchanges-param-hidecategorization": "Ännerunge vun der Memberschaft a Kategorie verstoppen.",
+       "apihelp-feedrecentchanges-param-categories": "Nëmmen Ännerunge vu Säiten aus all dëse Kategorië weisen.",
+       "apihelp-feedrecentchanges-param-categories_any": "Nëmmen Ännerunge vu Säiten aus enger vun dëse Kategorië weisen.",
        "apihelp-feedrecentchanges-example-simple": "Rezent Ännerunge weisen",
        "apihelp-help-example-main": "Hëllef fir den Haaptmodul.",
        "apihelp-help-example-recursive": "All Hëllef op enger Säit",
index acb0b28..ca2dd0f 100644 (file)
        "apihelp-query+allrevisions-description": "सर्व आवृत्त्यांची यादी",
        "apihelp-query+allrevisions-param-user": "फक्त या सदस्याच्याच आवृत्त्यांची यादी करा",
        "apihelp-query+allrevisions-param-excludeuser": "या सदस्याच्या आवृत्त्यांची यादी करु नका.",
+       "apihelp-query+allusers-paramvalue-prop-rights": "सदस्यास असलेल्या अधिकारांची यादी करते.",
+       "apihelp-query+allusers-paramvalue-prop-editcount": "सदस्याची संपादन मोजणी जोडते.",
+       "apihelp-query+allusers-paramvalue-prop-registration": "जर उपलब्ध असेल तर,सदस्याने केंव्हा नोंदणी केली त्याचा वेळठसा(रिक्त असू शकतो)",
+       "apihelp-query+allusers-param-witheditsonly": "फक्त संपादन केलेल्या सदस्यांचीच यादी करा.",
+       "apihelp-query+allusers-param-activeusers": "मागील $1 {{PLURAL:$1|दिवसात}} सक्रिय सदस्यांचीच यादी करा.",
+       "apihelp-query+allusers-example-Y": "<kbd>य</kbd> पासून सदस्यनाव सुरु होणाऱ्या सदस्यांचीच यादी करा.",
+       "apihelp-query+backlinks-description": "दिलेल्या पानास दुवे असणारी सर्व पाने शोधा.",
+       "apihelp-query+backlinks-param-title": "शोधावयाचे शीर्षक.<var>$1pageid</var>यासमवेत वापरु शकत नाही.",
+       "apihelp-query+backlinks-param-pageid": "शोधावयाची पान ओळखण.<var>$1title</var>यासमवेत वापरु शकत नाही.",
+       "apihelp-query+backlinks-param-namespace": "प्रगणन करावयाचे नामविश्व.",
+       "apihelp-query+backlinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+backlinks-param-filterredir": "पुनर्निर्देशनांची कशी गाळणी करावयाची. जर <var>$1redirect</var>सक्षम करुन <kbd>nonredirects</kbd>ला स्थापले तर, ते केवळ दुसऱ्या स्तरासच लागू होते.",
+       "apihelp-query+backlinks-param-redirect": "जर दुवा जोडणारे पान एक पुनर्निर्देशन असेल तर,त्या पुनर्निर्देशनास दुवे असलेली पानेही शोधा. महत्तम मर्यादा अर्धी केल्या जाते.",
+       "apihelp-query+backlinks-example-simple": "<kbd>मुखपृष्ठास</kbd> असणारे दुवे दाखवा.",
+       "apihelp-query+backlinks-example-generator": "<kbd>मुखपृष्ठास</kbd> दुवे असणाऱ्या पानांची माहिती घ्या.",
+       "apihelp-query+blocks-description": "सर्व प्रतिबंधित सदस्यांची व अंकपत्त्यांची यादी करा.",
+       "apihelp-query+blocks-param-start": "च्यापासून प्रगणना सुरु करावयाची त्याचा वेळठसा.",
+       "apihelp-query+blocks-param-end": "कुठपर्यंत प्रगणना संपवायची त्याचा वेळठसा.",
+       "apihelp-query+blocks-paramvalue-prop-user": "प्रतिबंधित सदस्याचे सदस्यनाव जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-userid": "प्रतिबंधित सदस्याची सदस्यओळखण जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-by": "प्रतिबंधन करणाऱ्या सदस्याचे सदस्यनाव जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-byid": "प्रतिबंधन करणाऱ्या सदस्याची सदस्यओळखण जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-timestamp": "प्रतिबंधन केंव्हा केले त्याचा वेळठसा जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-expiry": "प्रतिबंधनाची मुदत केंव्हा संपते त्याचा वेळठसा.",
+       "apihelp-query+blocks-paramvalue-prop-reason": "प्रतिबंधनाची दिलेली कारणे जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-range": "प्रतिबंधनाने बाधित अंकपत्त्यांचा आवाका जोडते.",
+       "apihelp-query+blocks-example-simple": "प्रतिबंधनाची यादी करा.",
+       "apihelp-query+blocks-example-users": "सदस्य<kbd>अलिस</kbd> व <kbd>बॉब</kbd> या सदस्यांचे प्रतिबंधनाची यादी करा.",
+       "apihelp-query+categories-description": "ही पाने कोणकोणत्या वर्गात आहेत त्याची यादी करा.",
+       "apihelp-query+categories-param-show": "कोणत्या प्रकारचे वर्ग दाखवायचेत.",
+       "apihelp-query+categories-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+categories-example-simple": "<kbd>अल्बर्ट आईन्स्टाईन</kbd>हे पान कोणकोणत्या वर्गात आहे त्याची यादी करा.",
+       "apihelp-query+categories-example-generator": "<kbd>अल्बर्ट आईन्स्टाईन</kbd>या पानात वापरलेल्या सर्व वर्गांची माहिती द्या.",
+       "apihelp-query+categorymembers-description": "दिलेल्या वर्गात असलेल्या सर्व पानांची यादी करते.",
+       "apihelp-query+deletedrevs-param-end": "कुठपर्यंत प्रगणना संपवायची त्याचा वेळठसा.",
+       "apihelp-query+deletedrevs-param-from": "या शीर्षकापासून यादी करणे सुरु करा.",
+       "apihelp-query+deletedrevs-param-to": "या शीर्षकास यादी करणे थांबवा.",
+       "apihelp-query+deletedrevs-param-unique": "प्रत्येक पानाच्या फक्त एकाच आवृत्तीची यादी करा.",
+       "apihelp-query+deletedrevs-param-user": "या सदस्याच्या आवृत्तीचीच यादी करा.",
+       "apihelp-query+deletedrevs-param-excludeuser": "या सदस्याच्या आवृत्तीची यादी करु नका.",
+       "apihelp-query+deletedrevs-param-namespace": "या नामविश्वात असलेल्या पानांचीच यादी करा.",
+       "apihelp-query+deletedrevs-param-limit": "यादी करावयाच्या आवृत्त्यांचे महत्तम प्रमाण.",
+       "apihelp-query+duplicatefiles-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+embeddedin-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+filearchive-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+images-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+imageusage-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+iwlinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+langbacklinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+langlinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+links-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+recentchanges-param-end": "कुठपर्यंत प्रगणना संपवायची त्याचा वेळठसा.",
        "apihelp-stashedit-param-title": "पानाच्या मथळ्याचे संपादन होत आहे.",
        "apihelp-stashedit-param-sectiontitle": "नविन विभागाचा मथळा"
 }
index e515646..e2d862f 100644 (file)
@@ -5,7 +5,12 @@
                        "C.R."
                ]
        },
+       "apihelp-main-param-servedby": "Include 'o risultato 'e nomme d' 'o host ca servette 'a richiesta.",
+       "apihelp-main-param-curtimestamp": "Include dint' 'o risultato 'o timestamp 'e mò.",
        "apihelp-block-description": "Blocca n'utente.",
+       "apihelp-block-param-user": "Nomme utente, indirizzo IP o range IP 'a bluccà.",
+       "apihelp-block-param-reason": "Mutive p' 'o blocco.",
+       "apihelp-block-param-nocreate": "Nun premmmettere 'a criazione 'e cunte",
        "apihelp-compare-param-fromtitle": "Primmo titolo 'a cunfruntà.",
        "apihelp-compare-param-fromid": "Primmo ID 'e paggena a cunfruntà.",
        "apihelp-compare-param-fromrev": "Primma verziona a cunfruntà.",
index a0d0502..bb3aa46 100644 (file)
@@ -33,6 +33,7 @@
        "apihelp-query+search-example-simple": "د <kbd>meaning</kbd> پلټل.",
        "apihelp-query+search-example-text": "د <kbd>مانا</kbd> لپاره متنونه پلټل.",
        "apihelp-query+watchlist-paramvalue-prop-title": "د يو مخ سرليک ورگډوي.",
+       "apihelp-query+watchlist-paramvalue-type-new": "مخ جوړونې.",
        "apihelp-stashedit-param-sectiontitle": "د يوې نوې برخې سرليک.",
        "apihelp-tag-param-reason": "د بدلون سبب.",
        "apihelp-unblock-param-reason": "د بنديز ليرې کولو سبب.",
index 8e4f790..76ce1c2 100644 (file)
@@ -9,12 +9,12 @@
        },
        "apihelp-main-param-action": "Tác vụ để thực hiện.",
        "apihelp-main-param-format": "Định dạng của dữ liệu được cho ra.",
-       "apihelp-main-param-uselang": "Ngôn ngữ để sử dụng cho các phiên dịch thông điệp. Một danh sách các mã có thể được lấy từ <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> với <kbd>siprop=languages</kbd>, hoặc <kbd>user</kbd> cụ thể sử dụng ngôn ngữ tham khảo của người dùng hiện tại, hoặc <kbd>content</kbd> cụ thể để sử dụng ngôn ngữ nội dung của wiki này.",
+       "apihelp-main-param-uselang": "Ngôn ngữ để sử dụng cho các bản dịch thông điệp. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> với <kbd>siprop=languages</kbd> trả về một danh sách các mã ngôn ngữ, hoặc định rõ <kbd>user</kbd> để sử dụng ngôn ngữ của người dùng hiện tại, hoặc định rõ <kbd>content</kbd> để sử dụng ngôn ngữ nội dung của wiki này.",
        "apihelp-block-description": "Cấm người dùng.",
        "apihelp-block-param-user": "Tên truy nhập, địa chỉ IP hoặc dãi IP mà bạn muốn chặn.",
        "apihelp-block-param-reason": "Lý do cấm.",
        "apihelp-block-param-nocreate": "Cấm tạo tài khoản.",
-       "apihelp-block-param-reblock": "Nếu người dùng này đã bị khóa, ghi đè lên người này.",
+       "apihelp-block-param-reblock": "Nếu người dùng này đã bị cấm, ghi đè lên vụ cấm đã tồn tại.",
        "apihelp-checktoken-param-type": "Kiểu dấu hiệu được kiểm thử.",
        "apihelp-checktoken-param-token": "Dấu hiệu để kiểm thử.",
        "apihelp-checktoken-example-simple": "Kiểm thử dấu hiệu <kbd>csrf</kbd> có hợp lệ hay không.",
        "apihelp-createaccount-param-token": "Dấu hiệu mở tài khoản được lấy trong yêu cầu đầu tiên.",
        "apihelp-createaccount-param-email": "Địa chỉ thư điện tử của thành viên (tùy chọn).",
        "apihelp-createaccount-param-realname": "Tên thật của thành viên (tùy chọn).",
-       "apihelp-createaccount-param-mailpassword": "Nếu đặt bất kỳ giá trị nào, một mật khẩu ngẫu nhiên sẽ được email lại cho người dùng.",
+       "apihelp-createaccount-param-mailpassword": "Nếu đặt bất kỳ giá trị nào, một mật khẩu ngẫu nhiên sẽ được gửi lại cho người dùng qua thư điện tử.",
        "apihelp-createaccount-param-reason": "Lý do tùy chọn cho việc tạo tài khoản để đăng nhập.",
        "apihelp-createaccount-param-language": "Mã ngôn ngữ để thiết lập mặc định cho người dùng (tùy chọn, mặc định là ngôn ngữ nội dung).",
        "apihelp-createaccount-example-pass": "Tạo người dùng <kbd>người kiểm tra</kbd> với mật khẩu <kbd>test123</kbd>.",
-       "apihelp-createaccount-example-mail": "Tạo người dùng <kbd>người dùng kiểm tra email> và email một mật khẩu được tạo ra ngẫu nhiên.",
+       "apihelp-createaccount-example-mail": "Tạo người dùng <kbd>người dùng thử gửi</kbd> và gửi một mật khẩu được tạo ra ngẫu nhiên qua thư điện tử.",
        "apihelp-delete-description": "Xóa trang.",
        "apihelp-delete-param-title": "Xóa tiêu đề của trang. Không thể sử dụng cùng với <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "Xóa ID của trang. Không thể sử dụng cùng với <var>$1title</var>.",
        "apihelp-query-param-list": "Các danh sách để lấy.",
        "apihelp-query-param-meta": "Siêu dữ liệu để lấy.",
        "apihelp-query+allcategories-param-dir": "Hướng xếp loại.",
-       "apihelp-rollback-description": "Hoàn tác chỉnh sửa cuối cùng của trang này.\n\nNếu người dùng cuối cùng đã cỉnh sửa trang này nhiều lần, tất cả chúng sẽ được hoàn tác lại như ban đầu.",
+       "apihelp-rollback-description": "Lùi lại sửa đổi cuối cùng của trang này.\n\nNếu người dùng cuối cùng đã sửa đổi trang này nhiều lần, tất cả chúng sẽ được lùi lại cùng một lúc.",
        "apihelp-format-example-generic": "Cho ra kết quả truy vấn dưới dạng $1.",
        "apihelp-dbg-description": "Cho ra dữ liệu dưới dạng <code>var_export()</code> của PHP.",
        "apihelp-dbgfm-description": "Cho ra dữ liệu dưới dạng <code>var_export()</code> của PHP (định dạng bằng HTML).",
        "api-help-parameters": "{{PLURAL:$1|Tham số|Các tham số}}:",
        "api-help-param-deprecated": "Bị phản đối.",
        "api-help-param-required": "Tham số này là bắt buộc.",
-       "api-help-param-list": "{{PLURAL:$1|1=Một giá trị|2=Các giá trị (phân tách bằng <kbd>{{!}}</kbd>)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Một trong các giá trị|2=Các giá trị (phân tách bằng <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Cần phải để trống|Cần phải để trống hoặc là $2}}",
        "api-help-param-limit": "Không cho phép hơn $1.",
        "api-help-param-limit2": "Không cho phép hơn $1 ($2 đối với các bot).",
index 5247258..4d0e4cd 100644 (file)
        "apihelp-feedcontributions-param-newonly": "仅仅显示那些作为页面创建的编辑。",
        "apihelp-feedcontributions-param-showsizediff": "显示修订版本之间的大小差别。",
        "apihelp-feedcontributions-example-simple": "返回用户<kbd>Example</kbd>的贡献。",
-       "apihelp-feedrecentchanges-description": "返回最新变更纲要。",
+       "apihelp-feedrecentchanges-description": "返回最近更改的摘要。",
        "apihelp-feedrecentchanges-param-feedformat": "纲要的格式。",
        "apihelp-feedrecentchanges-param-namespace": "用于限制结果的命名空间。",
        "apihelp-feedrecentchanges-param-invert": "除所选定者外的所有命名空间。",
        "apihelp-feedrecentchanges-param-tagfilter": "按标签过滤。",
        "apihelp-feedrecentchanges-param-target": "仅仅显示从该页面链出的那些页面的变更。",
        "apihelp-feedrecentchanges-param-showlinkedto": "仅仅显示链入到该页面的那些页面的变更。",
+       "apihelp-feedrecentchanges-param-categories": "只显示所有这些分类中的页面上的更改。",
+       "apihelp-feedrecentchanges-param-categories_any": "只显示这些分类以外页面的更改。",
        "apihelp-feedrecentchanges-example-simple": "显示最近更改。",
        "apihelp-feedrecentchanges-example-30days": "显示最近30天的更改。",
        "apihelp-feedwatchlist-description": "返回监视列表纲要。",
index 226d448..66c56b7 100644 (file)
@@ -92,7 +92,7 @@
        "apihelp-feedcontributions-param-feedformat": "Feed 的格式。",
        "apihelp-feedcontributions-param-showsizediff": "顯示修訂版本之間的差異大小。",
        "apihelp-feedcontributions-example-simple": "返回使用者<kbd>Example</kbd>的貢獻。",
-       "apihelp-feedrecentchanges-description": "返回近期邊更摘要。",
+       "apihelp-feedrecentchanges-description": "返回最近更改摘要。",
        "apihelp-feedrecentchanges-param-feedformat": "摘要格式。",
        "apihelp-feedrecentchanges-param-namespace": "用於限制結果的命名空間。",
        "apihelp-feedrecentchanges-param-invert": "除所選定者外的所有命名空間。",
        "apihelp-query+prefixsearch-param-limit": "回傳的結果數量上限。",
        "apihelp-query+protectedtitles-param-limit": "要回傳的頁面總數。",
        "apihelp-query+querypage-param-limit": "回傳的結果數量。",
-       "apihelp-query+recentchanges-description": "列舉出近期變動。",
+       "apihelp-query+recentchanges-description": "列舉出最近更改。",
        "apihelp-query+recentchanges-param-limit": "要回傳變更總數。",
-       "apihelp-query+recentchanges-example-simple": "近期變動清單",
+       "apihelp-query+recentchanges-example-simple": "最近更改清單",
        "apihelp-query+redirects-description": "回傳連結至指定頁面的所有重新導向。",
        "apihelp-query+redirects-param-limit": "要回傳的重新導向數量。",
        "apihelp-query+search-param-limit": "要回傳的頁面總數。",
        "apihelp-yaml-description": "使用 YAML 格式輸出資料。",
        "apihelp-yamlfm-description": "使用 YAML 格式輸出資料 (使用 HTML 格式顯示)。",
        "api-format-title": "MediaWiki API 結果",
-       "api-orm-param-props": "要查詢的欄位。",
-       "api-orm-param-limit": "回傳的列數上限。",
        "api-pageset-param-titles": "要使用的標題清單。",
        "api-pageset-param-pageids": "要使用的頁面 ID 清單。",
        "api-pageset-param-revids": "要使用的修訂 ID 清單。",
index a9af9c4..47960ca 100644 (file)
@@ -724,8 +724,6 @@ class MessageCache {
         *   message (which can be empty)
         */
        function get( $key, $useDB = true, $langcode = true, $isFullKey = false ) {
-               global $wgContLang;
-
                if ( is_int( $key ) ) {
                        // Fix numerical strings that somehow become ints
                        // on their way here
@@ -749,14 +747,11 @@ class MessageCache {
 
                Hooks::run( 'MessageCache::get', array( &$lckey ) );
 
-               $uckey = $wgContLang->ucfirst( $lckey );
-
                // Loop through each language in the fallback list until we find something useful
                $lang = wfGetLangObj( $langcode );
                $message = $this->getMessageFromFallbackChain(
                        $lang,
                        $lckey,
-                       $uckey,
                        !$this->mDisable && $useDB
                );
 
@@ -798,21 +793,21 @@ class MessageCache {
        }
 
        /**
-        * Given a language, try and fetch a message from that language, then the
-        * fallbacks of that language, then the site language, then the fallbacks for the
-        * site language.
+        * Given a language, try and fetch messages from that language.
         *
-        * @param Language $lang Requested language
-        * @param string $lckey Lowercase key for the message
-        * @param string $uckey Uppercase key for the message
-        * @param bool $useDB Whether to use the database
+        * Will also consider fallbacks of that language, the site language, and fallbacks for
+        * the site language.
         *
         * @see MessageCache::get
+        * @param Language|StubObject $lang Preferred language
+        * @param string $lckey Lowercase key for the message (as for localisation cache)
+        * @param bool $useDB Whether to include messages from the wiki database
         * @return string|bool The message, or false if not found
         */
-       protected function getMessageFromFallbackChain( $lang, $lckey, $uckey, $useDB ) {
+       protected function getMessageFromFallbackChain( $lang, $lckey, $useDB ) {
                global $wgLanguageCode, $wgContLang;
 
+               $uckey = $wgContLang->ucfirst( $lckey );
                $langcode = $lang->getCode();
                $message = false;
 
@@ -900,7 +895,7 @@ class MessageCache {
         * @param string $code Code denoting the language to try.
         * @return string|bool The message, or false if it does not exist or on error
         */
-       function getMsgFromNamespace( $title, $code ) {
+       public function getMsgFromNamespace( $title, $code ) {
                $this->load( $code );
                if ( isset( $this->mCache[$code][$title] ) ) {
                        $entry = $this->mCache[$code][$title];
index afd4ba8..19b2d1c 100644 (file)
@@ -208,8 +208,6 @@ class LoadBalancer {
                        return false;
                }
 
-               # wfDebugLog( 'connect', var_export( $loads, true ) );
-
                # Return a random representative of the remainder
                return ArrayUtils::pickRandom( $loads );
        }
@@ -247,7 +245,7 @@ class LoadBalancer {
                                $nonErrorLoads = $this->mGroupLoads[$group];
                        } else {
                                # No loads for this group, return false and the caller can use some other group
-                               wfDebug( __METHOD__ . ": no loads for group $group\n" );
+                               wfDebugLog( 'connect', __METHOD__ . ": no loads for group $group\n" );
 
                                return false;
                        }
@@ -347,7 +345,8 @@ class LoadBalancer {
                                }
                        }
                        $serverName = $this->getServerName( $i );
-                       wfDebug( __METHOD__ . ": using server $serverName for group '$group'\n" );
+                       wfDebugLog( 'connect', __METHOD__ .
+                               ": using server $serverName for group '$group'\n" );
                }
 
                return $i;
@@ -686,10 +685,10 @@ class LoadBalancer {
                        $conn = $this->reallyOpenConnection( $server, false );
                        $serverName = $this->getServerName( $i );
                        if ( $conn->isOpen() ) {
-                               wfDebug( "Connected to database $i at $serverName\n" );
+                               wfDebugLog( 'connect', "Connected to database $i at $serverName\n" );
                                $this->mConns['local'][$i][0] = $conn;
                        } else {
-                               wfDebug( "Failed to connect to database $i at $serverName\n" );
+                               wfDebugLog( 'connect', "Failed to connect to database $i at $serverName\n" );
                                $this->mErrorConnection = $conn;
                                $conn = false;
                        }
@@ -964,14 +963,10 @@ class LoadBalancer {
                        for ( $i = 1; $i < $serverCount; $i++ ) {
                                $conn = $this->getAnyOpenConnection( $i );
                                if ( $conn ) {
-                                       wfDebug( "Master pos fetched from slave\n" );
-
                                        return $conn->getSlavePos();
                                }
                        }
                } else {
-                       wfDebug( "Master pos fetched from master\n" );
-
                        return $masterConn->getMasterPos();
                }
 
index dbfdab0..a6290ed 100644 (file)
@@ -145,7 +145,11 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
        public function doUpdate() {
                Hooks::run( 'LinksUpdate', array( &$this ) );
                $this->doIncrementalUpdate();
-               Hooks::run( 'LinksUpdateComplete', array( &$this ) );
+
+               $that = $this;
+               $this->mDb->onTransactionIdle( function() use ( $that ) {
+                       Hooks::run( 'LinksUpdateComplete', array( &$that ) );
+               } );
        }
 
        protected function doIncrementalUpdate() {
index 14810da..264c87f 100644 (file)
@@ -324,7 +324,8 @@ class DiffEngine {
 
                        for ( $yi = $skip; $yi < $n_to - $endskip; $yi++ ) {
                                $line = $to_lines[$yi];
-                               if ( ( $this->ychanged[$yi] = empty( $xhash[$this->lineHash( $line )] ) ) ) {
+                               $this->ychanged[$yi] = empty( $xhash[$this->lineHash( $line )] );
+                               if ( $this->ychanged[$yi] ) {
                                        continue;
                                }
                                $yhash[$this->lineHash( $line )] = 1;
@@ -333,7 +334,8 @@ class DiffEngine {
                        }
                        for ( $xi = $skip; $xi < $n_from - $endskip; $xi++ ) {
                                $line = $from_lines[$xi];
-                               if ( ( $this->xchanged[$xi] = empty( $yhash[$this->lineHash( $line )] ) ) ) {
+                               $this->xchanged[$xi] = empty( $yhash[$this->lineHash( $line )] );
+                               if ( $this->xchanged[$xi] ) {
                                        continue;
                                }
                                $this->xv[] = $line;
index 4737f08..be38e87 100644 (file)
@@ -204,10 +204,12 @@ class TableDiffFormatter extends DiffFormatter {
                # Notice that WordLevelDiff returns HTML-escaped output.
                # Hence, we will be calling addedLine/deletedLine without HTML-escaping.
 
-               while ( $line = array_shift( $del ) ) {
+               $line = array_shift( $del );
+               while ( $line ) {
                        $aline = array_shift( $add );
                        echo '<tr>' . $this->deletedLine( $line ) .
                                $this->addedLine( $aline ) . "</tr>\n";
+                       $line = array_shift( $del );
                }
                foreach ( $add as $line ) { # If any leftovers
                        echo '<tr>' . $this->emptyLine() .
index a2dbfc3..60d1f57 100644 (file)
@@ -10,6 +10,9 @@
        "config-desc": "MediaWiki instalatzailea",
        "config-title": "MediaWiki $1 instalazioa",
        "config-information": "Informazioa",
+       "config-localsettings-upgrade": "<code>LocalSettings.php</code> fitxategi bat detektatu da.\nInstalazioa eguneratzeko, mesedez, sar ezazu <code>$wgUpgradeKey</code> balioa beheko koadroan.\n<code>LocalSettings.php</code> fitxategian aurkituko duzu.",
+       "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> fitxategi bat detektatu da.\nInstalazioa eguneratzeko, exekuta ezazu <code>update.php</code>, mesedez",
+       "config-localsettings-key": "Eguneratze-gakoa:",
        "config-session-error": "Saio hasierako errorea: $1",
        "config-your-language": "Zure hizkuntza:",
        "config-your-language-help": "Aukeratu instalazio prozesuan erabiliko den hizkuntza",
@@ -54,6 +57,7 @@
        "config-header-postgres": "PostgreSQL hobespenak",
        "config-header-sqlite": "SQLite hobespenak",
        "config-header-oracle": "Oracle hobespenak",
+       "config-header-mssql": "Microsoft SQL Server-en ezarpenak",
        "config-invalid-db-type": "Datu-base mota baliogabea.",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
@@ -77,6 +81,7 @@
        "config-license-pd": "Domeinu Askea",
        "config-email-settings": "E-posta hobespenak",
        "config-logo": "Logo URL:",
+       "config-advanced-settings": "Konfigurazio aurreratua",
        "config-extensions": "Luzapenak",
        "config-skins": "Itxurak",
        "config-install-step-done": "egina",
index ac60dea..c78c15e 100644 (file)
@@ -4,21 +4,80 @@
                        "Hangmanwa7id"
                ]
        },
+       "config-information": "Informations",
+       "config-localsettings-key": "Clef de mise à jour:",
+       "config-localsettings-badkey": "La clef que vous avez fournie est incorrecte.",
        "config-your-language": "Ton langue:",
+       "config-wiki-language": "Langue du wiki:",
+       "config-back": "← Retour",
+       "config-continue": "Continuer →",
+       "config-page-language": "Langue",
+       "config-page-welcome": "Bienvenue en MediaWiki!",
+       "config-page-dbconnect": "Connexion à la base de données",
+       "config-page-upgrade": "Mettre à jour l’installation existante",
+       "config-page-dbsettings": "Paramètres de la base de données",
        "config-page-name": "Nom",
        "config-page-options": "Options",
        "config-page-install": "Installer",
        "config-page-complete": "Terminé!",
+       "config-page-readme": "Lisez-moi",
+       "config-page-releasenotes": "Notes de version",
+       "config-page-copying": "Copie",
+       "config-page-upgradedoc": "Mise à jour",
+       "config-page-existingwiki": "Wiki existant",
+       "config-restart": "Oui, le relancer",
+       "config-env-php": "PHP $1 est installé.",
+       "config-env-hhvm": "HHVM $1 est installé.",
+       "config-unicode-using-intl": "Utilisation de [http://pecl.php.net/intl l'extension PECL intl] pour la normalisation Unicode.",
+       "config-diff3-bad": "GNU diff3 introuvable.",
+       "config-db-username": "Nom d’useur de la base de données:",
+       "config-db-password": "Mot de passe de la base de données:",
+       "config-db-install-username": "Entrez le nom d’useur qui sera usé pour se connecter à la base de données pendant le processus d'installation. Il s’agit pas du nom d’useur du compte MediaWiki, mais du nom d’useur pour votre base de données.",
+       "config-db-install-password": "Entrez le mot de passe qui sera usé pour se connecter à la base de données pendant le processus d'installation. Il s’agit pas du mot de passe du compte MediaWiki, mais du mot de passe pour votre base de données.",
+       "config-db-wiki-account": "Compte d'useur pour le fonctionnement normal",
+       "config-db-wiki-help": "Entrez le nom d'useur et le mot de passe qui seront usés pour se connecter à la base de données pendant le fonctionnement normal du wiki.\nSi le compte existe pas, et le compte d'installation dispose de privilèges suffisants, ce compte d'useur sera créé avec les privilèges minimum requis pour faire fonctionner le wiki.",
+       "config-db-prefix": "Préfixe des tables de la base de données:",
+       "config-db-charset": "Ensemble de caractères de la base de données",
+       "config-charset-mysql5-binary": "binaire MySQL 4.1/5.0",
+       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-charset-mysql4": "MySQL 4.0 rétrocompatible UTF-8",
+       "config-oracle-def-ts": "Espace de stockage (''tablespace'') par défaut:",
+       "config-oracle-temp-ts": "Espace de stockage (''tablespace'') temporaire:",
+       "config-type-mysql": "MySQL (ou compatible)",
+       "config-type-mssql": "Microsoft SQL Server",
+       "config-header-mysql": "Paramètres de MySQL",
+       "config-header-postgres": "Paramètres de PostgreSQL",
+       "config-header-sqlite": "Paramètres de SQLite",
+       "config-header-oracle": "Paramètres d’Oracle",
+       "config-header-mssql": "Paramètres de Microsoft SQL Server",
+       "config-invalid-db-type": "Type de base de données non valide",
        "config-sqlite-name-help": "Choisir un nom qui identifie ton wiki.\nFait user pas ni d'espaces ni des traits d'union\nIl va user pour fichier de données SQLite.",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-binary": "Binaire",
        "config-mysql-utf8": "UTF-8",
+       "config-site-name": "Nom du wiki:",
        "config-ns-generic": "Projet",
        "config-ns-other-default": "MonWiki",
        "config-admin-name": "Ton nom d'useur:",
        "config-admin-password": "Mot de passe:",
        "config-admin-email": "Adresse d'email:",
+       "config-profile-wiki": "Wiki ouvert",
+       "config-email-settings": "Paramètres d'email",
+       "config-enable-email": "Activer les emails sortants",
+       "config-email-user": "Activer les emails d'useur à useur",
+       "config-email-watchlist": "Activer la notification de la liste de suivi",
+       "config-cc-again": "Choisissez à nouveau...",
+       "config-install-step-done": "fait",
+       "config-install-step-failed": "échoué",
+       "config-install-extensions": "Inclusion des extensions",
+       "config-install-database": "Création de la base de données",
+       "config-install-schema": "Création de schéma",
+       "config-install-pg-schema-not-exist": "Le schéma PostgreSQL existe pas",
+       "config-install-pg-schema-failed": "Échoué lors de la création des tables.\nAssurez-vous que l'useur \"$1\" peut écrire selon le schéma \"$2\".",
+       "config-install-pg-commit": "Validation des modifications",
+       "config-help": "aide",
+       "config-help-tooltip": "cliquer pour agrandir",
        "mainpagetext": "'''Vous avez bien installé MediaWiki.'''",
        "mainpagedocfooter": "Lisez la [//meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.\n\n== Pour Commencer ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Réglage]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: Questions Souvent Posées]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]"
 }
index 03f236b..246902e 100644 (file)
@@ -31,8 +31,8 @@
        "config-header-mssql": "मायक्रोसॉफ्ट एसक्युएल सर्व्हर मांडणावळ",
        "config-mssql-old": "मायक्रोसॉफ्ट एसक्युएल सर्व्हर $1 किंवा त्यानंतरची आवृत्ती हवी. आपणापाशी $2 आहे.",
        "config-mssql-auth": "अधिप्रमाणन प्रकार:",
-       "config-mssql-install-auth": "उभारणीच्या(इन्स्टॉलेशन) प्रक्रियेदरम्यान,'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्याचा वापर डाटाबेसशी अनुबंधनात करण्यात येईल.जर आपण \"विंडोज ऑथेंटीकेशन\" निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
-       "config-mssql-web-auth": "या विकिचे सामन्य चालनादरम्यान,'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्याचा वापर डाटाबेसशी अनुबंधनात करण्यात येईल.जर आपण \"विंडोज ऑथेंटीकेशन\" निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
+       "config-mssql-install-auth": "उभारणीच्या(इन्स्टॉलेशन) प्रक्रियेदरम्यान,'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्याचा वापर डाटाबेसशी अनुबंधनात करण्यात येईल.जर आपण \"{{int:config-mssql-windowsauth}} निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
+       "config-mssql-web-auth": "'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्यास,या विकिचे सामान्य चालनादरम्यान, वेब सर्व्हर हा डाटाबेसशी अनुबंधन करण्यास वापरेल.जर आपण\"{{int:config-mssql-windowsauth}}\" निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
        "config-mssql-sqlauth": "एसक्युएल सर्व्हर अधिप्रमाणन",
        "config-mssql-windowsauth": "विंडोजचे अधिप्रमाणन",
        "config-site-name": "विकिचे नाव:",
index 35db182..561d097 100644 (file)
        "config-logo": "URL d\"o logo:",
        "config-logo-help": "'A skin predefinita 'e MediaWiki tene spazion p' 'o logo 'e 135 x 160 pixel ncopp' 'o menu laterale.\nCarreca n'immaggene 'e diminziuna apprupriata e azzecca l'URL ccà.\n\nFosse pussibbele ausà <code>$wgStylePath</code> o <code>$wgScriptPath</code> si 'o logo è relativo a sti percurze. Si nun vulite nu logo, lassate abbacante sta casciulella.",
        "config-instantcommons": "Appiccia Instant Commons",
+       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] è na funziunalita ca premmettesse 'e wiki 'ausà immaggene, suone e ati file multimediale ca ve truvate ncopp' 'o sito 'e [//commons.wikimedia.org/ Wikimedia Commons].\nSi chesto vulite fà, MediaWiki vulesse accieso a Internet.\n\nPe n'avé cchiù nfurmaziune ncopp'a sta funziunalità, ncludenno 'e struziune ncopp' 'a configuraziona pe' wiki divierze 'e Wikimedia Commons, fermateve nu poco a stureà [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 'o manuale].",
        "config-cc-error": "'O selettore 'e licienze Creative Commons nun mmustaje nisciuno risultato.\nNzertate manualmente 'o nomme d' 'a licienza.",
        "config-cc-again": "Selezziona n'ata vota...",
        "config-cc-not-chosen": "Sciglite quale licienza Creative Commons desiderate e cliccate ncopp' 'a \"prucede\".",
        "config-skins-missing": "Nisciuna skin s'è truvata, MediaWiki ausasse na soluzione 'e ripiego nfin'a quanno nun sarrà installata una buona.",
        "config-skins-must-enable-some": "Avit'a scegliere minimo na skin p' 'a puté appiccià.",
        "config-skins-must-enable-default": "'A skin scigliuta comme predefinita s'avess'appiccià.",
+       "config-install-alreadydone": "'''Attenziò:''' pare c'avite già installato MediaWiki e state tentanno 'e installà chesto n'ata vota.\nPrucedete 'a paggena aroppa.",
+       "config-install-begin": "Spremmènno \"{{int:config-continue}}\", s'abbiàsse l'installaziona 'e MediaWiki.\nSi primma vulite dà ati cagnamiente, spremmìte \"{{int:config-back}}\".",
        "config-install-step-done": "fatto",
        "config-install-step-failed": "fallito",
        "config-install-extensions": "Ncludenno 'estenziune",
        "config-install-database": "Configurazione database",
        "config-install-schema": "Crianno schema",
        "config-install-pg-schema-not-exist": "'O schema PostgreSQL nun esiste.",
+       "config-install-pg-schema-failed": "Criazione 'e tabbelle scassata.\nCuntrullate si l'utente \"$1\" può scrivere dint' 'o schema \"$2\".",
        "config-install-pg-commit": "Mannann' 'e cagnamiente",
        "config-install-pg-plpgsql": "Cuntrollo p' 'o lenguaggio PL/pgSQL",
        "config-pg-no-plpgsql": "Ce vulesse 'a installazione d' 'o linguagio PL/pgSQL dint' 'o database $1",
+       "config-pg-no-create-privs": "'O cunto innecato p' 'a installazione nun tene premmesse abbastanza pe' puté crià n'utenza.",
        "config-pg-not-in-role": "'O cunto c'avite nzegnato p' 'o utente web esiste già.\n'O cunto dato pe' ce fà 'installazione nun è n'utente avanzato e nun è nu membro d' 'o ruolo 'utente web, picciò nun è in grado 'e se crià oggette 'e pruprietà 'utente web.\n\nMediaWiki mo' addimanna ch' 'e tabbelle fossero pruprietà 'e ll'utente web. Putite nzegnà n'atu cunto web, o facite pure \"arreto\" e specificate n'utente pe' ce ffà 'installazione opportunamente privileggiato.",
        "config-install-user": "Crianno utente 'e database",
        "config-install-user-alreadyexists": "L'utente \"$1\" esiste già",
        "config-install-interwiki-exists": "'''Attenziò:''' 'a tabbella interwiki pare ca cuntenesse già elemente.\nZumpann' 'a lista predefinita.",
        "config-install-stats": "Inizializzaziona d' 'e statistiche",
        "config-install-keys": "Generaziona d' 'e chiave segrete",
+       "config-insecure-keys": "'''Attenziò:''' {{PLURAL:$2|Na chiave sicura|'E chiave sicure}} ($1) {{PLURAL:$2|generata|generate}} pe' tramente ca se fà l'installazione nun {{PLURAL:$2|è|songo}} completamente {{PLURAL:$2|sicura|sicure}}. Cunziderate d' {{PLURAL:$2|'a|'e}} cagnà manualmente.",
        "config-install-updates": "Mpiccià ll'agghiurnamiente ca nun fossero necessarie",
+       "config-install-updates-failed": "<strong>Errore:</strong> l'inserimento d' 'e chiave 'agghiurnamiento dint' 'e tabbelle nun è asciuto pecché se cunfermaje l'errore ccà annanze: $1",
        "config-install-sysop": "Crianno nu cunto utente ammenistratore",
        "config-install-subscribe-fail": "Nun se pò sottoscrivere mediawiki-announce: $1",
+       "config-install-subscribe-notpossible": "cURL nun è installato e <code>allow_url_fopen</code> nun è disponibbele.",
        "config-install-mainpage": "Crianno 'a paggena prencepale ch' 'e cuntenute predefinite",
        "config-install-extension-tables": "Crianno tabelle pe' estenziune appicciate",
        "config-install-mainpage-failed": "Nun se pò nzertà 'a paggena prencepale: $1",
+       "config-install-done": "<strong>Cumplimente!</strong>\nAvite installato MediaWiki apposto.\n\n'O prugramma 'installazione ha generato nu file <code>LocalSettings.php</code> ca cuntene tuttuquante 'e mpustaziune.\n\nAvit'a scarrecà chisto e 'o nzertà dint' 'a cartella bbase d' 'o wiki vuosto ('a stessa addò fosse prisente l' index.php). 'A scarreca avess'a partì automaticamente.\n\nSi nu download nun s'avviasse, o si è stato annullato, putite riavvià cliccanno ncopp' 'o cullegamento 'e seguito:\n\n$3\n\n<strong>Nota:</strong> si ascite mò 'a ll'installazione senza manco scarrecà 'o file 'e configurazione che s'è criato, po chesto nun sarrà cchiù dispunibbele.\n\nQuanno fosse tutto fernuto allora <strong>[$2 trasite dint' 'o wiki vuosto]</strong>.",
        "config-download-localsettings": "Scarreca <code>LocalSettings.php</code>",
        "config-help": "ajùto",
        "config-help-tooltip": "cliccà pe' 'o spannere",
        "config-nofile": "'O file \"$1\" nun se trova. Forse è stato scancellato?",
-       "mainpagetext": "<strong>MediaWiki è stato nstallato.</strong>"
+       "config-extension-link": "'O sapevate ch' 'o wiki vuosto suppurtasse 'e [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions estensiune]?\n\nPutite navigà nfra chiste [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category estensiune pe' categurìa].",
+       "mainpagetext": "<strong>MediaWiki è stato nstallato.</strong>",
+       "mainpagedocfooter": "Iate a cunzultà [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe' n'avé nfurmaziune ncopp' 'o modo aùso d' 'o software wiki.\n\n== P'accummincià ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Elenco 'e mpustaziune pe' sta configuraziona]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ 'e Mediawiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenco 'e nutizie 'e Mediawiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizzazzione 'e MediaWiki p' 'a lengua vuosta]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Mparate a cumbattere 'o spammo dint' 'a wiki d' 'a vosta]"
 }
index c3fb23b..20c8c38 100644 (file)
@@ -13,7 +13,9 @@
                        "Sadrettin",
                        "Captantrips",
                        "Stultiwikia",
-                       "Meelo"
+                       "Meelo",
+                       "HakanIST",
+                       "McAang"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
@@ -96,8 +98,6 @@
        "config-db-install-account": "Yükleme için kullanıcı hesabı",
        "config-db-username": "Veritabanı kullanıcı adı:",
        "config-db-password": "Veritabanı parolası:",
-       "config-db-password-empty": "Şu yeni veritabanı kullanıcısı için bir parola belirleyin: $1\nParolası olmayan hesaplar yaratmak mümkün olabilirse de, güvenli değildir.",
-       "config-db-username-empty": "\"{{int:config-db-username}}\" için bir değer girmelisiniz.",
        "config-db-install-username": "Yükleme sırasında veritabanına bağlanmak için kullanılan kullanıcı adını girin.\nBu MediaWiki hesabının kullanıcı adı değildir; Bu veritabanın kullanıcı adıdır.",
        "config-db-install-password": "Kurulum işlemi boyunca veritabanına bağlanmak için kullanılacak şifreyi girin.\nBu şifre MediaWiki hesap şifresi değil, veritabanınızın şifresidir.",
        "config-db-install-help": "Kurulum işlemi boyunca veritabanına bağlanmak için kullanıcı adı ve şifre giriniz.",
        "config-nofile": "\"$1\" dosyası bulunamadı. Silindi mi?",
        "config-extension-link": "Vikinizin [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions eklentileri] desteklediğini biliyor musunuz?\n\n[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Eklentileri kategorilerine göre] inceleyebilir ya da tüm eklentilerin listesini görmek için [//www.mediawiki.org/wiki/Extension_Matrix Eklenti Matrisine] bakabilirsiniz.",
        "mainpagetext": "'''MediaWiki başarı ile kuruldu.'''",
-       "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]"
+       "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Kendi diliniz için MediaWiki yerelleştirmesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Kendi vikinizde spam ile nasıl savaşılacağını öğrennin]"
 }
index 3d85b7b..08c2ae9 100644 (file)
        "config-mysql-utf8": "UTF-8",
        "config-mysql-charset-help": "Trong <strong>chế độ nhị phân</strong>, MediaWiki lưu văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL, và cho phép bạn sử dụng đầy đủ các ký tự Unicode.\n\nTrong <strong>chế độ UTF-8 </strong>, MySQL sẽ biết những ký tự nào thiết lập dữ liệu của bạn, và có thể trình bày và chuyển đổi nó một cách thích hợp, nhưng nó sẽ không cho phép bạn lưu trữ các ký tự nằm trên [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Kiểu xác thực:",
-       "config-mssql-install-auth": "Chọn loại xác thực sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nNếu bạn chọn \"{{int:config-mssql-windowsauth}}\", thông tin của bất cứ người sử dụng nào mà máy chủ web đang chạy sẽ được sử dụng.",
-       "config-mssql-web-auth": "Chọn kiểu xác thực mà máy chủ web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu, trong quá trình hoạt động bình thường của wiki.\nNếu bạn chọn \"{{int:config-mssql-windowsauth}}\", thông tin của bất cứ người sử dụng nào mà máy chủ web đang hoạt động sẽ được sử dụng.",
+       "config-mssql-install-auth": "Chọn loại xác thực sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nNếu bạn chọn “{{int:config-mssql-windowsauth}}”, thông tin của bất cứ người sử dụng nào mà máy chủ web đang chạy sẽ được sử dụng.",
+       "config-mssql-web-auth": "Chọn kiểu xác thực mà máy chủ web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu, trong quá trình hoạt động bình thường của wiki.\nNếu bạn chọn “{{int:config-mssql-windowsauth}}”, thông tin của bất cứ người sử dụng nào mà máy chủ web đang hoạt động sẽ được sử dụng.",
        "config-mssql-sqlauth": "Xác thực SQL Server",
        "config-mssql-windowsauth": "Xác thực Windows",
        "config-site-name": "Tên wiki:",
        "config-admin-password-blank": "Nhập mật khẩu của tài khoản bảo quản viên.",
        "config-admin-password-mismatch": "Bạn đã nhập hai mật khẩu không khớp với nhau.",
        "config-admin-email": "Địa chỉ thư điện tử:",
-       "config-admin-email-help": "Nhập một địa chỉ email vào đây để cho phép bạn nhận được email từ những người dùng khác trên wiki, thiết lập lại mật khẩu của bạn, và sẽ được thông báo về những thay đổi trong các trang nằm trong danh sách theo dõi của bạn. Bạn có thể để trống trường này.",
+       "config-admin-email-help": "Nhập một địa chỉ thư điện tử vào đây để cho phép bạn nhận được thư điện tử từ những người dùng khác trên wiki, đặt lại mật khẩu của bạn, và được thông báo về những thay đổi trong các trang nằm trong danh sách theo dõi của bạn. Bạn có thể để trống trường này.",
        "config-admin-error-user": "Lỗi nội bộ khi tạo một admin với tên <nowiki>$1</nowiki>\".",
        "config-admin-error-password": "Lỗi nội bộ khi thiết lập một mật khẩu cho admin \" <nowiki>$1</nowiki>\": <pre>$2</pre>",
        "config-admin-error-bademail": "Bạn đã nhập một địa chỉ thư điện tử không hợp lệ.",
        "config-subscribe": "Theo dõi [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce danh sách thư thông báo phát hành].",
        "config-subscribe-help": "thông báo an ninh.\nBạn nên đồng ý với nó và cập nhật bản cài đặt MediaWiki của bạn khi phiên bản mới xuất hiện.",
-       "config-subscribe-noemail": "Bạn đã cố gắng để đăng ký vào danh sách nhận thư thông báo phát hành mà không cung cấp một địa chỉ email nào cả.\nVui lòng cung cấp một địa chỉ email nếu bạn muốn đăng ký vào danh sách nhận thư.",
+       "config-subscribe-noemail": "Bạn đã cố gắng để đăng ký vào danh sách thư thông báo phát hành mà không cung cấp một địa chỉ thư điện tử nào cả.\nVui lòng cung cấp một địa chỉ thư điện tử nếu bạn muốn đăng ký vào danh sách thư.",
        "config-almost-done": "Bạn gần như đã hoàn tất!\nBây giờ bạn có thể bỏ qua cấu hình còn lại và cài đặt wiki ngay bây giờ.",
        "config-optional-continue": "Hỏi tôi về thêm chi tiết.",
        "config-optional-skip": "Chán quá, cài đặt wiki rỗi.",
        "config-profile-no-anon": "Bắt buộc mở tài khoản",
        "config-profile-fishbowl": "Chỉ những người dùng được phép",
        "config-profile-private": "Wiki riêng tư",
-       "config-profile-help": "Wiki làm việc tốt nhất khi có càng nhiều người chỉnh sửa chúng nhất có thể.\nTrong MediaWiki, rất dễ dàng để xem lại các thay đổi gần đây, và quay trở lại tình trạng ban đầu trước bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia chỉnh sửa, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nKịch bản <strong>{{int:config-profile-fishbowl}}</strong>  cho phép người dùng được duyệt chỉnh sửa, nhưng công chúng có thể xem các trang web, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép chỉnh sửa.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entry].",
+       "config-profile-help": "Wiki hoạt động tốt nhất khi có càng nhiều người sửa đổi nó nhất có thể.\nTrong MediaWiki, có thể rất dễ dàng xem lại các thay đổi gần đây và lùi lại bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia sửa đổi, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nTùy chọn <strong>{{int:config-profile-fishbowl}}</strong> cho phép người dùng được duyệt sửa đổi, nhưng công chúng có thể xem các trang, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép sửa đổi.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights mục liên quan trong sách hướng dẫn].",
        "config-license": "Bản quyền và giấy phép:",
        "config-license-none": "Không hiển thị giấy phép ở chân trang",
        "config-license-cc-by-sa": "Creative Commons Ghi công–Chia sẻ tương tự",
        "config-license-help": "Nhiều wiki công khai phát hành tất cả các đóng góp theo một [http://freedomdefined.org/Definition/Vi?uselang=vi giấy phép tự do].\nĐiều này giúp tạo nên thái độ cộng đồng sở hữu và ủng hộ sự đóng góp lâu dài.\nNói chung, một wiki riêng tư hoặc của công ty không nhất thiết phải sử dụng một giấy phép tự do.\n\nNếu bạn muốn được phép sử dụng văn bản từ Wikipedia và muốn Wikipedia nhận được những văn bản được sao chép từ wiki của bạn, bạn nên chọn <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nWikipedia từng sử dụng Giấy phép Tài liệu Tự do GNU.\nGFDL là một giấy phép hợp lệ nhưng khó hiểu trên thực tế.\nNội dung được phát hành theo GFDL cũng khó tái sử dụng.",
        "config-email-settings": "Thiết lập thư điện tử",
        "config-enable-email": "Cho phép gửi thư điện tử đi",
-       "config-enable-email-help": "Nếu bạn muốn email để làm việc, [http://www.php.net/manual/en/mail.configuration.php thiết lập mail của PHP] cần phải được cấu hình đúng.\nNếu bạn không muốn sử dụng bất kỳ tính năng email nào, bạn có thể vô hiệu chúng ở đây.",
+       "config-enable-email-help": "Nếu bạn muốn khả năng gửi thư điện tử, [http://www.php.net/manual/en/mail.configuration.php thiết lập mail của PHP] cần phải được cấu hình đúng.\nNếu bạn không muốn sử dụng bất kỳ tính năng thư điện tử nào, bạn có thể vô hiệu chúng ở đây.",
        "config-email-user": "Cho phép người dùng gửi thư điện tử cho người dùng khác",
-       "config-email-user-help": "Cho phép tất cả người dùng gửi email cho nhau, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
+       "config-email-user-help": "Cho phép tất cả người dùng gửi thư điện tử cho nhau, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
        "config-email-usertalk": "Gửi thư thông báo về tin nhắn mới",
        "config-email-usertalk-help": "Cho phép người dùng nhận được thông báo về các thay đổi trong trang thảo luận người dùng, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
        "config-email-watchlist": "Gửi thư thông báo về bài theo dõi",
        "config-email-watchlist-help": "Cho phép người dùng nhận được thông báo về các trang theo dõi của họ nếu họ đã kích hoạt nó trong ưu tiên của họ.",
        "config-email-auth": "Xác minh qua thư điện tử",
-       "config-email-auth-help": "Nếu tùy chọn này được kích hoạt, người dùng phải xác nhận địa chỉ email của họ bằng cách sử dụng một liên kết được gửi tới cho họ bất cứ khi nào họ thiết lập hoặc thay đổi nó.\nChỉ có địa chỉ email được xác thực mới có thể nhận email từ những người dùng khác hoặc các email thông báo thay đổi.\nThiết lập tùy chọn này <strong>khuyến cáo sử dụng</strong> cho các wiki công cộng do khả năng các tính năng email dễ bị lạm dụng để gây hại.",
+       "config-email-auth-help": "Nếu tùy chọn này được kích hoạt, người dùng phải xác nhận địa chỉ thư điện tử của họ bằng cách sử dụng một liên kết được gửi tới cho họ bất cứ khi nào họ thiết lập hoặc thay đổi nó.\nChỉ có địa chỉ thư điện tử được xác thực mới có thể nhận thư điện tử từ những người dùng khác hoặc thay đổi địa chỉ thông báo.\nThiết lập tùy chọn này <strong>khuyến cáo sử dụng</strong> cho các wiki công cộng do khả năng các tính năng gửi thư điện tử dễ bị lạm dụng để gây hại.",
        "config-email-sender": "Địa chỉ thư điện tử trả lại:",
-       "config-email-sender-help": "Nhập địa chỉ email để làm địa chỉ trở về trong mail gửi đi.\nĐây là nơi mà thư từ chối sẽ được gửi đi.\nNhiều máy chủ mail yêu cầu phải có ít nhất là phần tên miền để đảm bảo tính hợp lệ.",
+       "config-email-sender-help": "Nhập địa chỉ thư điện tử để làm địa chỉ trở về trong thư gửi đi.\nĐây là nơi mà thư từ chối sẽ được gửi đi.\nNhiều máy chủ thư điện tử yêu cầu phải có ít nhất là phần tên miền để đảm bảo tính hợp lệ.",
        "config-upload-settings": "Hình ảnh và tập tin tải lên",
        "config-upload-enable": "Cho phép tải lên tập tin",
        "config-upload-help": "Tập tin tải lên có khả năng làm lộ các nguy cơ bảo mật của máy chủ của bạn.\nĐể biết thêm thông tin, xin đọc [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security phần bảo mật] trong tài liệu hướng dẫn.\n\nĐể kích hoạt tính năng tải tập tin lên, thay đổi chế độ trên thư mục con <code>hình ảnh</code> trong thư mục gốc (root) của MediaWiki để máy chủ web có thể lưu dữ liệu vào đó.\nSau đó kích hoạt tùy chọn này.",
        "config-skins-must-enable-some": "Phải chọn ít nhất một giao diện để kích hoạt.",
        "config-skins-must-enable-default": "Giao diện được chọn làm mặc định phải được kích hoạt.",
        "config-install-alreadydone": "<strong>Cảnh báo:</strong> Bạn dường như đã cài đặt MediaWiki và đang cố gắng để cài đặt nó lại một lần nữa.\nXin hãy chuyển sang trang tiếp theo.",
-       "config-install-begin": "Bằng cách nhấn \"{{int:config-continue}}\", bạn sẽ bắt đầu cài đặt MediaWiki của mình.\nNếu bạn vẫn muốn thay đổi, nhấn \"{{int:config-back}}\".",
+       "config-install-begin": "Bằng cách nhấn “{{int:config-continue}}”, bạn sẽ bắt đầu cài đặt MediaWiki của mình.\nNếu bạn vẫn muốn thay đổi, nhấn “{{int:config-back}}”.",
        "config-install-step-done": "hoàn tất",
        "config-install-step-failed": "thất bại",
        "config-install-extensions": "Đang bao gồm phần mở rộng",
        "config-install-interwiki-exists": "'''Cảnh báo:''' Hình như đã có mục trong bảng liên wiki.\nĐã bỏ qua danh sách mặc định.",
        "config-install-stats": "Đang khởi tạo các thống kê",
        "config-install-keys": "Tạo ra các chìa khóa bí mật",
-       "config-insecure-keys": "<strong>Cảnh báo:</strong>{{PLURAL:$2|Một khóa an toàn|Khóa an toàn}} ($1) được tạo ra trong quá trình cài đặt {{PLURAL:$2|là}} không hoàn toàn an toàn. Hãy cân nhắc việc thay đổi {{PLURAL: $2|nó|chúng}} bằng tay.",
+       "config-insecure-keys": "<strong>Cảnh báo:</strong> {{PLURAL:$2|Một khóa an toàn|Khóa an toàn}} ($1) được tạo ra trong quá trình cài đặt {{PLURAL:$2}}không phải an toàn hẳn. Hãy cân nhắc việc thay đổi {{PLURAL:$2|nó|chúng}} thủ công.",
        "config-install-updates": "Tránh các cập nhật không cần thiết",
        "config-install-updates-failed": "<strong>Lỗi:</strong> Chèn phím cập nhật vào các bảng không thành công với các lỗi sau:1$",
        "config-install-sysop": "Đang mở tài khoản người dùng bảo quản viên",
        "config-install-mainpage": "Đang tạo trang đầu với nội dung mặc định",
        "config-install-extension-tables": "Đang tạo bảng cho các phần mở rộng được kích hoạt",
        "config-install-mainpage-failed": "Không thể chèn trang đầu: $1",
-       "config-install-done": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt thành công MediaWiki.\n\nBộ cài đặt đã tạo ra một file <code>LocalSettings.php</code>.\nFile này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu việc tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
+       "config-install-done": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt thành công MediaWiki.\n\nBộ cài đặt đã tạo ra một tập tin <code>LocalSettings.php</code>.\nTập tin này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu bản tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
        "config-download-localsettings": "Tải về <code>LocalSettings.php</code>",
        "config-help": "Trợ giúp",
        "config-help-tooltip": "nhấn chuột để mở rộng",
        "config-nofile": "Không tìm thấy tập tin “$1”. Nó có phải bị xóa không?",
        "config-extension-link": "Bạn có biết rằng wiki của bạn có hỗ trợ [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions mở rộng]?\n\nBạn có thể truy cập [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category phần mở rộng theo thể loại] hoặc [//www.mediawiki.org/wiki/Extension_Matrix Ma trận Mở rộng] để xem danh sách đầy đủ các phần mở rộng.",
        "mainpagetext": "'''MediaWiki đã được cài đặt thành công.'''",
-       "mainpagedocfooter": "Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]"
+       "mainpagedocfooter": "Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Tìm hiểu cách chống spam tại wiki của bạn]"
 }
index 318330e..b121dfe 100644 (file)
@@ -191,7 +191,10 @@ class JobRunner implements LoggerAwareInterface {
                                }
                                // Commit all outstanding connections that are in a transaction
                                // to get a fresh repeatable read snapshot on every connection.
+                               // Note that jobs are still responsible for handling slave lag.
                                wfGetLBFactory()->commitAll();
+                               // Clear out title cache data from prior snapshots
+                               LinkCache::singleton()->clear();
                                $timeMs = intval( ( microtime( true ) - $jobStartTime ) * 1000 );
                                $timeMsTotal += $timeMs;
 
@@ -448,7 +451,7 @@ class JobRunner implements LoggerAwareInterface {
                global $wgJobSerialCommitThreshold;
 
                $lb = wfGetLB( wfWikiID() );
-               if ( $wgJobSerialCommitThreshold !== false ) {
+               if ( $wgJobSerialCommitThreshold !== false && $lb->getServerCount() > 1 ) {
                        // Generally, there is one master connection to the local DB
                        $dbwSerial = $lb->getAnyOpenConnection( $lb->getWriterIndex() );
                } else {
index f8a0040..9b4e7e9 100644 (file)
 class JobQueueAggregatorRedis extends JobQueueAggregator {
        /** @var RedisConnectionPool */
        protected $redisPool;
-
        /** @var array List of Redis server addresses */
        protected $servers;
+       /** @var bool */
+       protected $registeredQueue = false;
 
        /**
         * @param array $params Possible keys:
@@ -59,11 +60,7 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
                        return false;
                }
                try {
-                       // Make sure doNotifyQueueNonEmpty() takes precedence to avoid races
-                       $conn->watch( $this->getReadyQueueKey() );
-                       $conn->multi()
-                               ->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) )
-                               ->exec();
+                       $conn->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) );
 
                        return true;
                } catch ( RedisException $e ) {
@@ -80,11 +77,16 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
                }
                try {
                        $conn->multi( Redis::PIPELINE );
-                       $conn->hSetNx( $this->getQueueTypesKey(), $type, 'enabled' );
-                       $conn->sAdd( $this->getWikiSetKey(), $wiki );
+                       if ( !$this->registeredQueue ) {
+                               // Make sure the queue is registered as existing
+                               $conn->hSetNx( $this->getQueueTypesKey(), $type, 'enabled' );
+                               $conn->sAdd( $this->getWikiSetKey(), $wiki );
+                       }
                        $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
                        $conn->exec();
 
+                       $this->registeredQueue = true;
+
                        return true;
                } catch ( RedisException $e ) {
                        $this->handleException( $conn, $e );
index 5f1a1a6..c42a4c6 100644 (file)
@@ -139,10 +139,6 @@ class RefreshLinksJob extends Job {
                        wfGetLB()->waitFor( $this->params['masterPos'] );
                }
 
-               // Clear out title cache data from prior job transaction snapshots
-               $linkCache = LinkCache::singleton();
-               $linkCache->clear();
-
                // Fetch the current page and revision...
                $page = WikiPage::factory( $title );
                $revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
index 7e3fa4f..128999a 100644 (file)
@@ -217,7 +217,8 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *
         * @param array $keys List of cache keys
         * @param array $curTTLs Map of (key => approximate TTL left) for existing keys [returned]
-        * @param array $checkKeys List of "check" keys to apply to all of $keys
+        * @param array $checkKeys List of check keys to apply to all $keys. May also apply "check"
+        *  keys to specific cache keys only by using cache keys as keys in the $checkKeys array.
         * @return array Map of (key => value) for keys that exist
         */
        final public function getMulti(
@@ -228,26 +229,32 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
 
                $vPrefixLen = strlen( self::VALUE_KEY_PREFIX );
                $valueKeys = self::prefixCacheKeys( $keys, self::VALUE_KEY_PREFIX );
-               $checkKeys = self::prefixCacheKeys( $checkKeys, self::TIME_KEY_PREFIX );
+
+               $checksForAll = array();
+               $checksByKey = array();
+               $checkKeysFlat = array();
+               foreach ( $checkKeys as $i => $keys ) {
+                       $prefixed = self::prefixCacheKeys( (array)$keys, self::TIME_KEY_PREFIX );
+                       $checkKeysFlat = array_merge( $checkKeysFlat, $prefixed );
+                       // Is this check keys for a specific cache key, or for all keys being fetched?
+                       if ( is_int( $i ) ) {
+                               $checksForAll = array_merge( $checksForAll, $prefixed );
+                       } else {
+                               $checksByKey[$i] = isset( $checksByKey[$i] )
+                                       ? array_merge( $checksByKey[$i], $prefixed )
+                                       : $prefixed;
+                       }
+               }
 
                // Fetch all of the raw values
-               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeys ) );
+               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeysFlat ) );
                $now = microtime( true );
 
-               // Get/initialize the timestamp of all the "check" keys
-               $checkKeyTimes = array();
-               foreach ( $checkKeys as $checkKey ) {
-                       $timestamp = isset( $wrappedValues[$checkKey] )
-                               ? self::parsePurgeValue( $wrappedValues[$checkKey] )
-                               : false;
-                       if ( !is_float( $timestamp ) ) {
-                               // Key is not set or invalid; regenerate
-                               $this->cache->add( $checkKey,
-                                       self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
-                               $timestamp = $now;
-                       }
-
-                       $checkKeyTimes[] = $timestamp;
+               // Collect timestamps from all "check" keys
+               $checkKeyTimesForAll = $this->processCheckKeys( $checksForAll, $wrappedValues, $now );
+               $checkKeyTimesByKey = array();
+               foreach ( $checksByKey as $cacheKey => $checks ) {
+                       $checkKeyTimesByKey[$cacheKey] = $this->processCheckKeys( $checks, $wrappedValues, $now );
                }
 
                // Get the main cache value for each key and validate them
@@ -261,22 +268,49 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                        list( $value, $curTTL ) = $this->unwrap( $wrappedValues[$vKey], $now );
                        if ( $value !== false ) {
                                $result[$key] = $value;
+
+                               // Force dependant keys to be invalid for a while after purging
+                               // to reduce race conditions involving stale data getting cached
+                               $checkKeyTimes = $checkKeyTimesForAll;
+                               if ( isset( $checkKeyTimesByKey[$key] ) ) {
+                                       $checkKeyTimes = array_merge( $checkKeyTimes, $checkKeyTimesByKey[$key] );
+                               }
                                foreach ( $checkKeyTimes as $checkKeyTime ) {
-                                       // Force dependant keys to be invalid for a while after purging
-                                       // to reduce race conditions involving stale data getting cached
                                        $safeTimestamp = $checkKeyTime + self::HOLDOFF_TTL;
                                        if ( $safeTimestamp >= $wrappedValues[$vKey][self::FLD_TIME] ) {
                                                $curTTL = min( $curTTL, $checkKeyTime - $now );
                                        }
                                }
                        }
-
                        $curTTLs[$key] = $curTTL;
                }
 
                return $result;
        }
 
+       /**
+        * @since 1.27
+        * @param array $timeKeys List of prefixed time check keys
+        * @param array $wrappedValues
+        * @param float $now
+        * @return array List of timestamps
+        */
+       private function processCheckKeys( array $timeKeys, array $wrappedValues, $now ) {
+               $times = array();
+               foreach ( $timeKeys as $timeKey ) {
+                       $timestamp = isset( $wrappedValues[$timeKey] )
+                               ? self::parsePurgeValue( $wrappedValues[$timeKey] )
+                               : false;
+                       if ( !is_float( $timestamp ) ) {
+                               // Key is not set or invalid; regenerate
+                               $this->cache->add( $timeKey, self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
+                               $timestamp = $now;
+                       }
+                       $times[] = $timestamp;
+               }
+               return $times;
+       }
+
        /**
         * Set the value of a key in cache
         *
index 80dc669..d57adb8 100644 (file)
@@ -56,7 +56,7 @@ class UserPasswordPolicy {
                foreach ( $checks as $statement => $check ) {
                        if ( !is_callable( $check ) ) {
                                throw new InvalidArgumentException(
-                                       'Policy check functions must be callable'
+                                       "Policy check functions must be callable. '$statement' isn't callable."
                                );
                        }
                        $this->policyCheckFunctions[$statement] = $check;
@@ -105,11 +105,18 @@ class UserPasswordPolicy {
                );
        }
 
+       /**
+        * @param User $user
+        * @param string $password
+        * @param array $policies
+        * @param array $policyCheckFunctions
+        * @return Status
+        */
        private function checkPolicies( User $user, $password, $policies, $policyCheckFunctions ) {
                $status = Status::newGood();
                foreach ( $policies as $policy => $value ) {
                        if ( !isset( $policyCheckFunctions[$policy] ) ) {
-                               throw new DomainException( 'Invalid password policy config' );
+                               throw new DomainException( "Invalid password policy config. No check defined for '$policy'." );
                        }
                        $status->merge(
                                call_user_func(
index 6c4cdfe..6ecee4c 100644 (file)
@@ -333,12 +333,20 @@ class ResourceLoaderContext {
        }
 
        /**
+        * All factors that uniquely identify this request, except 'modules'.
+        *
+        * The list of modules is excluded here for legacy reasons as most callers already
+        * split up handling of individual modules. Including it here would massively fragment
+        * the cache and decrease its usefulness.
+        *
+        * E.g. Used by RequestFileCache to form a cache key for storing the reponse output.
+        *
         * @return string
         */
        public function getHash() {
                if ( !isset( $this->hash ) ) {
                        $this->hash = implode( '|', array(
-                               $this->getLanguage(), $this->getDirection(), $this->getSkin(), $this->getUser(),
+                               $this->getLanguage(), $this->getSkin(), $this->getUser(),
                                $this->getImage(), $this->getVariant(), $this->getFormat(),
                                $this->getDebug(), $this->getOnly(), $this->getVersion()
                        ) );
index 8fd94f7..73eb8a7 100644 (file)
@@ -371,9 +371,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        protected function getCssDeclarations( $primary, $fallback ) {
                return array(
                        "background-image: url($fallback);",
-                       "background-image: -webkit-linear-gradient(transparent, transparent), url($primary);",
                        "background-image: linear-gradient(transparent, transparent), url($primary);",
-                       "background-image: -o-linear-gradient(transparent, transparent), url($fallback);",
                );
        }
 
index e900200..9e840d5 100644 (file)
@@ -187,8 +187,8 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
                $resourceLoader = $context->getResourceLoader();
                $target = $context->getRequest()->getVal( 'target', 'desktop' );
-               // Bypass target filter if this request is from a unit test context. To prevent misuse in
-               // production, this is only allowed if testing is enabled server-side.
+               // Bypass target filter if this request is Special:JavaScriptTest.
+               // To prevent misuse in production, this is only allowed if testing is enabled server-side.
                $byPassTargetFilter = $this->getConfig()->get( 'EnableJavaScriptTest' ) && $target === 'test';
 
                $out = '';
index 589c39f..e88aa1a 100644 (file)
@@ -77,11 +77,9 @@ class MovePageForm extends UnlistedSpecialPage {
                // Yes, the use of getVal() and getText() is wanted, see bug 20365
 
                $oldTitleText = $request->getVal( 'wpOldTitle', $target );
-               if ( is_string( $oldTitleText ) ) {
-                       $this->oldTitle = Title::newFromText( $oldTitleText );
-               }
+               $this->oldTitle = Title::newFromText( $oldTitleText );
 
-               if ( $this->oldTitle === null ) {
+               if ( !$this->oldTitle ) {
                        // Either oldTitle wasn't passed, or newFromText returned null
                        throw new ErrorPageError( 'notargettitle', 'notargettext' );
                }
index 25030b1..8226148 100644 (file)
@@ -15,6 +15,8 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
        protected $namespace = null;
        protected $relative = null;
        protected $suggestions = null;
+       protected $highlightFirst = null;
+       protected $validate = null;
 
        /**
         * @param array $config Configuration options
@@ -22,6 +24,9 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
         * @param bool|null $config['relative'] If a namespace is set,
         *  return a title relative to it (default: true)
         * @param bool|null $config['suggestions'] Display search suggestions (default: true)
+        * @param bool|null $config['highlightFirst'] Automatically highlight
+        *  the first result (default: true)
+        * @param bool|null $config['validate'] Whether the input must be a valid title (default: true)
         */
        public function __construct( array $config = array() ) {
                // Parent constructor
@@ -42,6 +47,9 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
                if ( isset( $config['highlightFirst'] ) ) {
                        $this->highlightFirst = $config['highlightFirst'];
                }
+               if ( isset( $config['validate'] ) ) {
+                       $this->validate = $config['validate'];
+               }
 
                // Initialization
                $this->addClasses( array( 'mw-widget-titleInputWidget' ) );
@@ -64,6 +72,9 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
                if ( $this->highlightFirst !== null ) {
                        $config['highlightFirst'] = $this->highlightFirst;
                }
+               if ( $this->validate !== null ) {
+                       $config['validate'] = $this->validate;
+               }
                return parent::getConfig( $config );
        }
 }
index 67bd0c9..2423092 100644 (file)
--- a/index.php
+++ b/index.php
@@ -32,7 +32,9 @@
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
 // dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
 wfEntryPointCheck( 'index.php' );
 
 require __DIR__ . '/includes/WebStart.php';
index f5e0e57..f39f299 100644 (file)
        "disclaimers": "Məsuliyyətdən imtina",
        "disclaimerpage": "Project:Məsuliyyətdən imtina",
        "edithelp": "Redaktə kömək",
+       "helppage-top-gethelp": "Kömək",
        "mainpage": "Ana Səhifə",
        "mainpage-description": "Ana Səhifə",
        "policy-url": "Project:Qaydalar",
        "hidetoc": "gizlə",
        "collapsible-collapse": "Gizlə",
        "collapsible-expand": "Göstər",
+       "confirmable-confirm": "{{GENDER:$1|Siz}} əminsiniz?",
        "confirmable-yes": "Bəli",
        "confirmable-no": "Xeyr",
        "thisisdeleted": "$1 bax və ya bərpa et?",
        "nstab-template": "Şablon",
        "nstab-help": "Kömək",
        "nstab-category": "Kateqoriya",
+       "mainpage-nstab": "Ana Səhifə",
        "nosuchaction": "Bu cür fəaliyyət mövcud deyil.",
        "nosuchactiontext": "URL-də göstərilən əməliyyat düzgün deyil.\nOla bilsin ki, URL-i səhv daxil etmisiniz və ya düzgün olmayan keçiddən istifadə etmisiniz.\nBu həmçinin, {{SITENAME}} saytındakı xətanın göstəricisi ola bilər.",
        "nosuchspecialpage": "Bu adda xüsusi səhifə mövcud deyil",
        "createaccountreason": "Səbəb:",
        "createacct-reason": "Səbəb",
        "createacct-reason-ph": "Niyə başqa bir hesab yaradırsınız",
-       "createacct-captcha": "Təhlükəsizlik nəzarəti",
-       "createacct-imgcaptcha-ph": "Yuxarıda gördüyünüz mətni daxil edin",
        "createacct-submit": "İstifadəçi hesabı yarat",
        "createacct-another-submit": "Başqa bir istifadəçi hesabı yarat",
        "createacct-benefit-heading": "{{SITENAME}} sizin kimi insanlar tərəfindən yaradılır.",
        "notextmatches": "Məqalələrdə uyğun məzmun tapılmadı",
        "prevn": "əvvəlki {{PLURAL:$1|$1}}",
        "nextn": "sonrakı {{PLURAL:$1|$1}}",
+       "prev-page": "əvvəlki səhifə",
+       "next-page": "növbəti səhifə",
        "prevn-title": "Əvvəlki bir $1 {{PLURAL:$1|nəticə|nəticə}}",
        "nextn-title": "Əvvəlki bir $1 {{PLURAL:$1|nəticə|nəticə}}",
        "shown-title": "Səhifə üçün $1 {{PLURAL:$1|nəticə|nəticəyə}} bax",
        "search-result-category-size": "{{PLURAL:$1|$1 element|$1 elementlər}} ({{PLURAL:$2|$2 alt kateqoriya|$2 alt kateqoriyalar}}, {{PLURAL:$3|$3 fayl|$3 fayllar}})",
        "search-redirect": "(yönləndirmə $1)",
        "search-section": "(bölmə $1)",
+       "search-category": "(kateqoriya $1)",
        "search-suggest": "Bəlkə, bunu nəzərdə tuturdunuz: $1",
        "search-interwiki-caption": "Qardaş layihələr",
        "search-interwiki-default": "$1 nəticələri:",
        "skin-preview": "Sınaq görüntüsü",
        "datedefault": "Seçim yoxdur",
        "prefs-labs": "eksperimental imkanlar",
+       "prefs-user-pages": "İstifadəçi səhifəsi",
        "prefs-personal": "İstifadəçi profili",
        "prefs-rc": "Son dəyişikliklər",
        "prefs-watchlist": "İzləmə siyahısı",
        "prefs-dateformat": "Tarix formatı",
        "prefs-timeoffset": "Saat qurşağının fərqi",
        "prefs-advancedediting": "Ümumi parametrlər",
+       "prefs-editor": "Redaktor",
        "prefs-advancedrc": "Ətraflı variantlar",
        "prefs-advancedrendering": "Ətraflı variantlar",
        "prefs-advancedsearchoptions": "Ətraflı variantlar",
        "rcshowhidebots-show": "Göstər",
        "rcshowhidebots-hide": "Gizlət",
        "rcshowhideliu": "Qeydiyyatlı istifadəçiləri $1",
+       "rcshowhideliu-show": "Göstər",
        "rcshowhideliu-hide": "Gizlət",
        "rcshowhideanons": "Anonim istifadəçiləri $1",
        "rcshowhideanons-show": "Göstər",
        "rcshowhideanons-hide": "Gizlət",
        "rcshowhidepatr": "Yoxlanılmış redaktələri $1",
+       "rcshowhidepatr-show": "Göstər",
+       "rcshowhidepatr-hide": "Gizlət",
        "rcshowhidemine": "Mənim redaktələrimi $1",
        "rcshowhidemine-show": "Göstər",
        "rcshowhidemine-hide": "Gizlət",
+       "rcshowhidecategorization-show": "Göstər",
+       "rcshowhidecategorization-hide": "Gizlət",
        "rclinks": "Son $2 gün ərzindəki son $1 dəyişikliyi göstər <br />$3",
        "diff": "fərq",
        "hist": "tarixçə",
        "upload-misc-error": "Naməlum yükləmə xətası",
        "upload-too-many-redirects": "URL-də xeyli yönləndirmə var",
        "upload-http-error": " HTTP xətası var : $1",
+       "upload-dialog-title": "Fayl yüklə",
+       "upload-dialog-button-cancel": "İmtina",
+       "upload-dialog-button-done": "Oldu",
+       "upload-dialog-button-save": "Qeyd et",
+       "upload-dialog-button-upload": "Yüklə",
+       "upload-form-label-select-file": "Fayl seç",
+       "upload-form-label-infoform-title": "Detallar",
+       "upload-form-label-infoform-name": "Ad",
+       "upload-form-label-infoform-description": "İzah",
+       "upload-form-label-usage-title": "İstifadə",
+       "upload-form-label-usage-filename": "Fayl adı",
+       "foreign-structured-upload-form-label-own-work": "Bu mənim öz işimdir",
+       "foreign-structured-upload-form-label-infoform-categories": "Kateqoriyalar",
+       "foreign-structured-upload-form-label-infoform-date": "Tarix",
        "backend-fail-notexists": "\"$1\" faylı mövcud deyil",
        "backend-fail-delete": "\"$1\" faylı sililmədi.",
        "backend-fail-copy": "\"$1\" faylı \"$2\" faylına kopyalanmır.",
        "nolicense": "Heç biri seçilməmişdir",
        "upload_source_url": "(siz düzgün, hər kəsin daxil ola biləcəyi URL seçdiniz)",
        "upload_source_file": "(siz kompüterinizdəki faylı seçdiniz)",
+       "listfiles-delete": "sil",
        "listfiles_search_for": "Media adı üçün axtar:",
        "imgfile": "fayl",
        "listfiles": "Fayl siyahısı",
        "listfiles_size": "Həcm",
        "listfiles_description": "İzah",
        "listfiles_count": "Versiya",
+       "listfiles-latestversion-yes": "Bəli",
+       "listfiles-latestversion-no": "Xeyr",
        "file-anchor-link": "Fayl",
        "filehist": "Faylın tarixçəsi",
        "filehist-help": "Faylın əvvəlki versiyasını görmək üçün gün/tarix bölməsindəki tarixləri tıqlayın.",
        "unusedtemplates": "İstifadəsiz şablonlar",
        "unusedtemplateswlh": "digər keçidlər",
        "randompage": "İxtiyari səhifə",
+       "randomincategory-category": "Kateqoriya:",
+       "randomincategory-submit": "Get",
        "randomredirect": "İxtiyari istiqamətləndirmə",
        "randomredirect-nopages": "\"$1\" ad sahəsində heç bir yönləndirmə yoxdur.",
        "statistics": "Statistika",
        "statistics-users": "Qeydiyyatdan keçmiş [[Special:ListUsers|istifadəçilər]]",
        "statistics-users-active": "Aktiv istifadəçilər",
        "statistics-users-active-desc": "Son {{PLURAL:$1|gün|$1 gündə}} iş görən istifadəçilər",
+       "pageswithprop-submit": "Get",
        "doubleredirects": "İkiqat istiqamətləndirmələr",
        "double-redirect-fixed-move": "[[$1]] səhifəsinin yeri dəyişdirilib.\nO avtomatik yenilənib və [[$2]] səhifəsinə yönləndirilib.",
        "double-redirect-fixed-maintenance": "[[$1]] səhifəsindən [[$2]] səhifəsinə ikiqat yönləndirmə avtomatik düzəldilir.",
        "protectedpages-indef": "Yalnız müddətsiz mühafizələr",
        "protectedpages-cascade": "Yalnız kaskad mühafizələr",
        "protectedpagesempty": "Hal-hazırda bu parametrə uyğun heç bir mühafizəli səhifə yoxdur",
+       "protectedpages-page": "Səhifə",
+       "protectedpages-unknown-timestamp": "Naməlum",
        "protectedtitles": "Mühafizəli başlıqlar",
        "listusers": "İstifadəçi siyahısı",
        "listusers-editsonly": "Yalnız redaktələri olan istifadəçiləri göstər",
        "listgrouprights-removegroup-self": "Öz hesabından $1 {{PLURAL:$2|qrupunu|qruplarını}} sil",
        "listgrouprights-addgroup-self-all": "Bütün qrupları öz hesabına əlavə edə bilər",
        "listgrouprights-removegroup-self-all": "Bütün qrupları öz hesabından çıxara bilər",
+       "listgrouprights-namespaceprotection-namespace": "Adlar fəzası",
        "mailnologin": "Ünvan yoxdur",
        "emailuser": "İstifadəçiyə e-məktub göndər",
        "defemailsubject": "\"$1\" adlı istifadəçidən {{SITENAME}} e-məktubu",
        "wlheader-showupdated": "Son ziyarətinizdən sonra edilən dəyişikliklər '''qalın şriftlərlə''' göstərilmişdir.",
        "wlnote": "Aşağıdakı {{PLURAL:$1|'''$1''' dəyişiklik|'''$1''' dəyişiklik}} son {{PLURAL:$2|saatda|'''$2''' saatda}} edilmişdir.",
        "wlshowlast": "Bunları göstər: son $1 saatı $2 günü",
+       "watchlistall2": "hamısı",
+       "wlshowhidemine": "mənimn redaktələrim",
        "watchlist-options": "İzləmə siyahısının nizamlamaları",
        "watching": "İzlənilir...",
        "unwatching": "İzlənilmir...",
        "revertpage-nouser": "(istifadəçi adı çıxarılmış) tərəfindən edilən dəyişikliklər [[User:$1|$1]] tərəfindən edilən son dəyişikliyə geri alındı",
        "rollback-success": "$1 tərəfindən edilmiş redaktələr geri qaytarıldı; $2 tərəfindən yaradılmış son versiya bərpa olundu.",
        "sessionfailure-title": "Giriş səhvi",
+       "changecontentmodel-reason-label": "Səbəb:",
+       "logentry-contentmodel-change-revertlink": "geri qaytar",
+       "logentry-contentmodel-change-revert": "geri qaytar",
        "protectlogpage": "Mühafizə etmə qeydləri",
        "protectedarticle": "\"[[$1]]\" səhifəsi mühafizə edildi",
        "modifiedarticleprotection": "\"[[$1]]\" səhifəsi üçün mühafizə səviyyəsi dəyişildi",
        "allmessages-filter-modified": "Dəyişdirilmiş",
        "allmessages-language": "Dil:",
        "allmessages-filter-submit": "Keç",
+       "allmessages-filter-translate": "Tərcümə et",
        "thumbnail-more": "Böyüt",
        "filemissing": "Şəkil gözlənilir",
        "thumbnail_error": "Kiçik şəkil yaratma xətası: $1",
        "pageinfo-contentpage": "Məzmunlu səhifə kimi sayılır",
        "pageinfo-contentpage-yes": "Bəli",
        "pageinfo-protect-cascading": "Kaskad mühafizə burada qoşulub",
+       "pageinfo-protect-cascading-yes": "Bəli",
        "pageinfo-category-pages": "Səhifələrin sayı",
        "pageinfo-category-subcats": "Altkateqoriyaların sayı",
        "pageinfo-category-files": "Faylların sayı",
        "confirm-purge-top": "Bu səhifə keşdən (cache) silinsin?",
        "confirm-watch-button": "OK",
        "confirm-unwatch-button": "OK",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "&larr; əvvəlki səhifə",
        "imgmultipagenext": "sonrakı səhifə &rarr;",
        "imgmultigo": "Seç!",
        "version-software-product": "Məhsul",
        "version-software-version": "Versiya",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "Kitabxana",
+       "version-libraries-authors": "Müəlliflər",
+       "redirect-user": "İstifadəçi ID-si",
+       "redirect-page": "Səhifə ID-si",
        "fileduplicatesearch": "Dublikat fayl axtarışı",
        "fileduplicatesearch-legend": "Dublikatı axtar",
        "fileduplicatesearch-filename": "Fayl adı:",
        "tags-title": "Etiketlər",
        "tags-tag": "Etiket adı",
        "tags-description-header": "Anlamının tam açıqlaması",
+       "tags-source-header": "Mənbə",
        "tags-active-header": "Aktiv?",
        "tags-hitcount-header": "Etiketli dəyişikliklər",
+       "tags-actions-header": "Hərəkətlər",
        "tags-active-yes": "Bəli",
        "tags-active-no": "Xeyr",
        "tags-edit": "redaktə",
+       "tags-delete": "sil",
+       "tags-activate": "aktivləşdirmək",
        "tags-hitcount": "$1 {{PLURAL:$1|dəyişiklik|dəyişiklik}}",
+       "tags-create-reason": "Səbəb:",
+       "tags-create-submit": "Yarat",
+       "tags-delete-reason": "Səbəb:",
+       "tags-activate-reason": "Səbəb:",
+       "tags-deactivate-reason": "Səbəb:",
+       "tags-edit-existing-tags-none": "\"Yox\"",
+       "tags-edit-new-tags": "Yeni taqlar:",
+       "tags-edit-reason": "Səbəb:",
        "comparepages": "Səhifələri qarşılaşdır",
        "compare-page1": "Səhifə 1",
        "compare-page2": "Səhifə 2",
        "htmlform-submit": "Təsdiq et",
        "htmlform-reset": "Dəyişiklikləri geri qaytar",
        "htmlform-selectorother-other": "Digər",
+       "htmlform-no": "Xeyr",
+       "htmlform-yes": "Bəli",
        "sqlite-has-fts": "$1 tam mətn axtarma ilə",
        "sqlite-no-fts": "$1 tam mətn axtarma olmadan",
        "logentry-delete-delete": "$1 $3 səhifəsini {{GENDER:$2|sildi}}",
        "feedback-bugnew": "Mən yoxladım. Yeni xəta barədə xəbər ver",
        "feedback-cancel": "İmtina",
        "feedback-close": "Oldu",
+       "feedback-error-title": "Xəta",
        "feedback-error2": "Xəta: Redaktə qeydə alınmadı",
        "feedback-message": "Mesaj:",
        "feedback-subject": "Mövzu:",
+       "feedback-thanks-title": "Təşəkkür!",
        "searchsuggest-search": "Axtar",
        "api-error-filename-tooshort": "Fayl adı qısadır.",
        "api-error-filetype-banned": "Bu tip fayllar qadağandır.",
        "limitreport-walltime": "Real vaxt istifadəsi",
        "expand_templates_output": "Nəticə",
        "expand_templates_ok": "OK",
+       "pagelang-name": "Səhifə",
+       "pagelang-language": "Dil",
+       "mediastatistics-header-unknown": "Naməlum",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Videolar",
+       "mediastatistics-header-office": "Ofis",
+       "mediastatistics-header-text": "Mətn",
        "special-characters-group-latin": "Latın",
        "special-characters-group-latinextended": "Latın genişləndirilmiş",
        "special-characters-group-ipa": "IPA",
index dc5a410..06c98f3 100644 (file)
        "wlshowlast": "Паказаць за апошнія $1 гадзінаў, $2 дзён",
        "watchlistall2": "усё",
        "wlshowtime": "Паказаць апошнія:",
+       "wlshowhideminor": "дробныя праўкі",
+       "wlshowhidebots": "робатаў",
+       "wlshowhideliu": "зарэгістраваных удзельнікаў",
+       "wlshowhideanons": "ананімных удзельнікаў",
        "watchlist-options": "Налады сьпісу назіраньня",
        "watching": "Дадаецца ў сьпіс назіраньня…",
        "unwatching": "Выдаляецца са сьпісу назіраньня…",
        "blocklist-userblocks": "Схаваць блякаваньні рахункаў",
        "blocklist-tempblocks": "Схаваць часовыя блякаваньні",
        "blocklist-addressblocks": "Схаваць блякаваньні асобных IP-адрасоў",
-       "blocklist-rangeblocks": "хаваньне блякаваньняў дыяпазонаў",
+       "blocklist-rangeblocks": "Схаваць блякаваньні дыяпазонаў",
        "blocklist-timestamp": "Дата/час",
        "blocklist-target": "Мэта",
        "blocklist-expiry": "Сканчаецца",
index b6209b1..f45e43c 100644 (file)
        "createaccountreason": "Abeg :",
        "createacct-reason": "Abeg",
        "createacct-reason-ph": "Perak emaoc'h o krouiñ ur gont all",
-       "createacct-captcha": "Kontroll surentez",
-       "createacct-imgcaptcha-ph": "Ebarzhit an destenn a welit a-us",
        "createacct-submit": "Krouiñ ho kont",
-       "createacct-another-submit": "Krouiñ ur gont all",
+       "createacct-another-submit": "Krouiñ ur gont",
        "createacct-benefit-heading": "{{SITENAME}} zo graet gant tud eveldoc'h.",
        "createacct-benefit-body1": "$1 {{PLURAL:$1|kemm}}",
        "createacct-benefit-body2": "pajenn{{PLURAL:$1|}}",
        "sig_tip": "Ho sinadur gant an deiziad",
        "hr_tip": "Liamm a-led (arabat implijout re)",
        "summary": "Diverrañ :",
-       "subject": "Danvez/titl:",
+       "subject": "Danvez :",
        "minoredit": "Kemm dister",
        "watchthis": "Evezhiañ ar pennad-mañ",
        "savearticle": "Enrollañ ar bajenn",
        "upload-too-many-redirects": "Re a adkasoù zo en URL-mañ.",
        "upload-http-error": "Ur fazi HTTP zo bet : $1",
        "upload-copy-upload-invalid-domain": "N'haller ket seveniñ enporzhiadennoù a-bell adalek an domani-mañ.",
+       "upload-dialog-button-cancel": "Nullañ",
+       "upload-dialog-button-done": "Graet",
+       "upload-dialog-button-save": "Enrollañ",
+       "upload-dialog-button-upload": "Enporzhiañ",
+       "upload-form-label-select-file": "Diuzañ ur restr",
+       "upload-form-label-infoform-title": "Munudoù",
+       "upload-form-label-infoform-name": "Anv",
+       "upload-form-label-infoform-description": "Deskrivadur",
+       "upload-form-label-usage-title": "Implij",
+       "upload-form-label-usage-filename": "Anv ar restr",
+       "foreign-structured-upload-form-label-infoform-categories": "Rummadoù",
+       "foreign-structured-upload-form-label-infoform-date": "Deiziad",
        "backend-fail-stream": "Dibosupl eo lenn ar restr $1.",
        "backend-fail-backup": "Dibosupl enrollañ ar restr $1.",
        "backend-fail-notexists": "N'eus ket eus ar restr $1.",
        "wlheader-showupdated": "E '''tev''' emañ merket ar pajennoù bet kemmet abaoe ar wezh ziwezhañ hoc'h eus sellet outo",
        "wlnote": "Setu aze {{PLURAL:$1|ar c'hemm diwezhañ|ar '''$1''' kemm diwezhañ}} c'hoarvezet e-kerzh an {{PLURAL:$2|eurvezh|'''$2''' eurvezh}} diwezhañ, d'an $3 da $4.",
        "wlshowlast": "Diskouez an $1 eurvezh $2 devezh diwezhañ",
+       "watchlistall2": "pep tra",
+       "wlshowhidemine": "ma c'hemmoù",
        "watchlist-options": "Dibarzhioù ar roll evezhiañ",
        "watching": "Heuliet...",
        "unwatching": "Paouez da evezhiañ...",
        "rollback-success": "Disteuler kemmoù $1; distreiñ da stumm diwezhañ $2.",
        "sessionfailure-title": "Fazi dalc'h",
        "sessionfailure": "Evit doare ez eus ur gudenn gant ho talc'h;\nNullet eo bet an ober-mañ a-benn en em wareziñ diouzh an tagadennoù preizhañ.\nKlikit war \"kent\" hag adkargit ar bajenn oc'h deuet drezi; goude klaskit en-dro.",
+       "changecontentmodel-title-label": "Anv ar bajenn",
+       "changecontentmodel-reason-label": "Abeg :",
        "protectlogpage": "Log_gwareziñ",
        "protectlogtext": "Setu aze a-is roll ar c'hemmoù degaset ouzh live gwareziñ ar pajennoù.\nSellet ouzh ar [[Special:ProtectedPages|roll ar pajennoù gwarezet]] evit kaout roll ar pajennoù gwarezet bremañ.",
        "protectedarticle": "{{Gender:.|en|he}} deus gwarezet [[$1]]",
        "cant-move-to-user-page": "Noc'h ket aotreet da adenvel ur bajenn gant anv hini un implijer all (nemet un ispajenn e vefe).",
        "cant-move-category-page": "N'oc'h ket aotreet da zilec'hiañ pajennoù rummad.",
        "cant-move-to-category-page": "N'oc'h ket aotreet da zilec'hiañ ur bajenn d'ur bajenn rummad.",
-       "newtitle": "anv nevez",
+       "newtitle": "Titl nevez :",
        "move-watch": "Evezhiañ ar bajenn-mañ",
        "movepagebtn": "Adenvel ar pennad",
        "pagemovedsub": "Dilec'hiadenn kaset da benn vat",
        "version-entrypoints": "URLoù ar poent mont e-barzh",
        "version-entrypoints-header-entrypoint": "Poent mont e-barzh",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "Levraoueg",
+       "version-libraries-version": "Stumm",
+       "version-libraries-license": "Aotre-implijout",
+       "version-libraries-description": "Deskrivadur",
        "redirect-legend": "Adkas d'ur restr pe d'ur bajenn",
        "redirect-submit": "Mont",
        "redirect-lookup": "Klask :",
        "tags-tag": "Anv ar valizenn",
        "tags-display-header": "Neuz e rolloù ar c'hemmoù",
        "tags-description-header": "Deskrivadur klok ar valizenn",
+       "tags-source-header": "Mammenn",
        "tags-active-header": "Oberiant ?",
        "tags-hitcount-header": "Kemmoù balizennet",
        "tags-active-yes": "Ya",
        "tags-active-no": "Ket",
        "tags-edit": "aozañ",
+       "tags-activate": "gweredekaat",
+       "tags-deactivate": "diweredekaat",
        "tags-hitcount": "$1 {{PLURAL:$1|kemm|kemm}}",
+       "tags-create-reason": "Abeg :",
+       "tags-create-submit": "Krouiñ",
+       "tags-delete-reason": "Abeg :",
+       "tags-activate-reason": "Abeg :",
+       "tags-activate-submit": "Gweredekaat",
+       "tags-deactivate-reason": "Abeg :",
+       "tags-deactivate-submit": "Diweredekaat",
+       "tags-edit-existing-tags-none": "''Hini ebet''",
+       "tags-edit-reason": "Abeg :",
        "comparepages": "Keñveriañ pajennoù",
        "compare-page1": "Pajenn 1",
        "compare-page2": "Pajenn 2",
        "logentry-newusers-create2": "Gant $1 eo bet krouet ar gont implijer $3",
        "logentry-newusers-byemail": "Krouet eo bet ar gont implijer $3 gant $1 ha kaset eo bet ar ger-tremen dre bostel",
        "logentry-newusers-autocreate": "{{GENDER:$2|Krouet}} eo bet kont $1 ent emgefre",
+       "logentry-protect-protect": "$1 {{GENDER:$2|en|he}} deus gwarezet $3 $4",
        "logentry-rights-autopromote": "$1 zo bet {{GENDER:$2|anvet}} ent emgefre a $4 da $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|en deus|he deus}} ezporzhiet $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|en deus|he deus}} ezporzhiet ur stumm nevez eus $3",
        "rightsnone": "(netra)",
        "revdelete-summary": "diverradenn eus ar c'hemmoù",
        "feedback-adding": "Oc'h ouzhpennañ ho soñj war ar bajenn...",
+       "feedback-back": "Distreiñ",
        "feedback-bugcheck": "Eus ar c'hentañ ! Gwiriit mat n'emañ ket e-touez an [$1 draen diskoachet c'hoazh].",
        "feedback-bugnew": "Gwiriet em eus. Kemenn un draen nevez",
        "feedback-bugornote": "Ma'z oc'h prest da zeskrivañ ur gudenn deknikel dre ar munud e c'hallit [$1 kemenn un draen].\nA-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc'h evezhiadenn d'ar bajenn \"[$3 $2]\", a-gevret gant hoc'h anv implijer hag anv ar merdeer a rit gantañ.",
        "feedback-cancel": "Nullañ",
        "feedback-close": "Graet",
+       "feedback-error-title": "Fazi",
        "feedback-error1": "Fazi : disoc'h dianav a-berzh an API",
        "feedback-error2": "Fazi : N'eus ket bet gallet degemer ar c'hemmoù",
        "feedback-error3": "Fazi : respont ebet a-berzh an API",
        "feedback-subject": "Danvez :",
        "feedback-submit": "Kas",
        "feedback-thanks": "Ho trugarekaat ! Postet eo bet hoc'h evezhiadenn d'ar bajenn \"[$2 $1]\".",
+       "feedback-thanks-title": "Trugarez !",
        "searchsuggest-search": "Klask",
        "searchsuggest-containing": "ennañ...",
        "api-error-badaccess-groups": "N'oc'h ket aotreet da enporzhiañ restroù war ar wiki-mañ.",
index 177928e..c0ff606 100644 (file)
        "passwordreset-emailerror-capture": "E-poruka za resetiranje lozinke, prikazano ispod, poslana je, ali slanje {{GENDER:$2|korisniku|korisnici}} nije uspjelo: $1",
        "changeemail": "Promjena ili uklanjanje e-adrese",
        "changeemail-header": "Ispunite sljedeći formular da biste promijenili adresu e-pošte. Ako želite ukloniti postojeću adresu e-pošte s vašeg korisničkog računa, pri ispunjavanju formulara, polje nove adrese e-pošte ostavite prazno.",
+       "changeemail-passwordrequired": "Morat ćete unijeti šifru da biste potvrdili ovu izmjenu.",
        "changeemail-no-info": "Morate biti prijavljeni za direktan pristup ovoj stranici.",
        "changeemail-oldemail": "Trenutna adresa e-pošte:",
        "changeemail-newemail": "Nova adresa e-pošte:",
+       "changeemail-newemail-help": "Ovo polje možete ostaviti prazno ako želite ukloniti svoju adresu e-pošte. Ako je uklonite, nećete moći resetirati zaboravljenu šifru niti primati e-poruke sa ove wiki.",
        "changeemail-none": "(ništa)",
-       "changeemail-password": "Vaša šifra za {{SITENAME}}:",
+       "changeemail-password": "Vaša šifra za {{GRAMMAR:akuzativ|{{SITENAME}}}}:",
        "changeemail-submit": "Promijeni adresu e-pošte",
        "changeemail-throttled": "Previše puta ste se pokušali prijaviti.\nMolimo Vas da sačekate $1 prije nego što pokušate ponovo.",
        "resettokens": "Resetovanje žetona",
        "prefs-edits": "Broj izmjena:",
        "prefsnologintext2": "Prijavite se da biste sačuvali postavke.",
        "prefs-skin": "Tema",
-       "skin-preview": "Pregled",
+       "skin-preview": "Pregledaj",
        "datedefault": "Nije bitno",
        "prefs-labs": "Eksperimentalne mogućnosti",
        "prefs-user-pages": "Korisničke stranice",
        "allowemail": "Dozvoli e-poštu od ostalih korisnika",
        "prefs-searchoptions": "Traži",
        "prefs-namespaces": "Imenski prostori",
-       "default": "standardno",
+       "default": "predodređeno",
        "prefs-files": "Datoteke",
        "prefs-custom-css": "Prilagođeni CSS",
        "prefs-custom-js": "Prilagođeni JavaScript",
index d9fd232..7190ba0 100644 (file)
        "password-change-forbidden": "Хьан йиш яц хӀокху вики чохь пароль хийца.",
        "externaldberror": "Арахьара хаамийн базан гӀоьнца аутентификаци ечу хенахь гӀалат даьлла я хьа дӀаяздаран хийцам бан бакъонаш яц.",
        "login": "Системин довзийтар",
-       "nav-login-createaccount": "СиÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85олла",
+       "nav-login-createaccount": "Ð\94овзийÑ\82аÑ\80 / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85оллаÑ\80",
        "userlogin": "Довзийтар я декъашхочун дӀаяздар кхоллар",
        "userloginnocreate": "Довзийта",
        "logout": "Болх дӀаберзор",
        "saveusergroups": "Декъашхочун бакъонаш Ӏалашъян",
        "userrights-groupsmember": "Декъашхо:",
        "userrights-groupsmember-auto": "Бакъонашан тоба:",
-       "userrights-groups-help": "Ð¥Ñ\8cона Ñ\85ийÑ\86а Ð»Ð¾ Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð±Ð°ÐºÑ\8aонаÑ\88.\n* Ð\91акÑ\8aона Ñ\86Ó\80еÑ\80а Ñ\8eÑ\85Ñ\85еÑ\85Ñ\8c Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾ ÐµÐ»Ð°Ñ\85Ñ\8c, Ñ\86Ñ\83на Ð¸ Ð±Ð°ÐºÑ\8aо Ð¹Ð¾Ð»Ñ\83Ñ\88 Ñ\8e.\n* Ð\91илгало Ñ\8fÑ\86аÑ\85Ñ\8c â\80\94 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð¸ Ð±Ð°ÐºÑ\8aо Ñ\8fÑ\86.\n* Ð\97нако * билгала до ахьа бакъо еллачул тӀаьхьа хьона и дӀаяккха цалуш хилар.",
+       "userrights-groups-help": "Ð¥Ñ\8cона Ñ\85ийÑ\86а Ð»Ð¾ Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð±Ð°ÐºÑ\8aонаÑ\88.\n* Ð\91акÑ\8aона Ñ\86Ó\80еÑ\80а Ñ\8eÑ\85Ñ\85еÑ\85Ñ\8c Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾ ÐµÐ»Ð°Ñ\85Ñ\8c, Ñ\86Ñ\83на Ð¸ Ð±Ð°ÐºÑ\8aо Ð¹Ð¾Ð»Ñ\83Ñ\88 Ñ\8e.\n* Ð\91илгало Ñ\8fÑ\86аÑ\85Ñ\8c â\80\94 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð¸ Ð±Ð°ÐºÑ\8aо Ñ\8fÑ\86.\n* Ð¥Ñ\8cаÑ\8cÑ\80ко * билгала до ахьа бакъо еллачул тӀаьхьа хьона и дӀаяккха цалуш хилар.",
        "userrights-reason": "Бахьана:",
        "userrights-no-interwiki": "Хьан бакъо яц декъашхой бакъо хийца кхечу википеди чохь.",
        "userrights-nologin": "Куьйгалхочунна бакъо йолу [[Special:UserLogin|дӀаяздарца]] ло декъашхочун бакъо.",
        "linkstoimage": "ХӀара файл лахарчу {{PLURAL:$1|$1 агӀонгахь}} лелош ю:",
        "linkstoimage-more": "$1 дукха {{PLURAL:$1|агӀонаш}} чохь лелош ю хӀара файл.\nХӀокху могӀам чохь {{PLURAL:$1|гойтуш ю $1 хьажорг|гойтуш ю $1 хьажоргаш}} хӀокху файланца.\nКхин хьажа йиш ю [[Special:WhatLinksHere/$2|буьззина могӀаме]].",
        "nolinkstoimage": "АгӀонашчохь файл лелош яц.",
-       "linkstoimage-redirect": "$1 (Ñ\84айлан Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80аг) $2",
+       "linkstoimage-redirect": "$1 (файлан дӀасахьажорг) $2",
        "duplicatesoffile": "{{PLURAL:$1|Лахара файл ю дубликат|Лахара $1 файлаш ю дубликаташ}} хӀокху файлан ([[Special:FileDuplicateSearch/$2|мадарра]]):",
        "sharedupload": "ХӀара хӀума оцун $1 чура ю иза хила мега лелош кхечу проекташкахь.",
        "sharedupload-desc-here": "ХӀара файл $1 чура ю и лело йиш ю массо проекташкахь.\nЦунна хаам гайтина лахахь. [$2 Файл Викигуламехь]",
        "usercreated": "{{GENDER:$3|дӀавазвелла|дӀаязелла}} $1 $2",
        "newpages": "Керла агӀонаш",
        "newpages-username": "Декъашхо:",
-       "ancientpages": "ТÓ\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80леÑ\80аÑ\87Ñ\83 Ñ\85енаÑ\86а Ð½Ð¸Ñ\81бина Ñ\8fззамаш",
+       "ancientpages": "ШиÑ\80а Ð°Ð³Ó\80онаш",
        "move": "ЦӀе хийца",
        "movethispage": "ХӀокху агӀон цӀе хийца",
        "unusedimagestext": "Лахара файлаш цхьана агӀонгахь лелош яц.\nДехар до, тидаме бе, кхин йолу веб-сайташ а лелош хила мега нийсса йогӀу хьажорг (URL), хӀокху могӀаме йогӀуш ялахь а иза хила мега жигара лелош.",
        "imagetypemismatch": "Файлан керла шоръелла оцунна тайпанца йогӀуш яц",
        "imageinvalidfilename": "Файлан цӀе гӀалате ю",
        "fix-double-redirects": "Хьалхара цӀе йолу дӀасахьажорг нисъян",
-       "move-leave-redirect": "Ó\80адйиÑ\82а Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80аг",
+       "move-leave-redirect": "Ӏадйита дӀасахьажорг",
        "protectedpagemovewarning": "'''ДӀахьедар.''' ХӀара агӀо ларйина ю; цӀе хийца я нисъян а бакъо йолуш куьйгалхой бен бац.\nЛахахь тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "semiprotectedpagemovewarning": "'''ДӀахьедо.''' ХӀара агӀо ларйина ю; дӀабазбиначу декъашхошка бе цӀе хийцалуш яц.\nЛахахьа тептаро балийна тӀаьххьаралера дӀаязбина хаам:",
        "move-over-sharedrepo": "== Файл йолуш ю ==\nВикигулам чохь йолуш ю [[:$1]]. ХӀокху файлан цӀе хийцича Викигулам чуьраниг дӀакъовлу.",
        "specialpages-note": "* Гуттарлера белха агlонаш.\n* <strong class=\"mw-specialpagerestricted\">Кlеззиг таронаш йолу леррина агlонаш.</strong>",
        "specialpages-group-maintenance": "Техникийн хьашташ кхочушдаран хаамаш",
        "specialpages-group-other": "Кхин белхан агӀонаш",
-       "specialpages-group-login": "СиÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85олла",
+       "specialpages-group-login": "Ð\94овзийÑ\82аÑ\80 / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85оллаÑ\80",
        "specialpages-group-changes": "Керла нисдарш а, тéптарш а",
        "specialpages-group-media": "Медиа-гӀирсийн а, чуяхарийн а хаамаш",
        "specialpages-group-users": "Декъашхой а, бакъонаш а",
index 9cf3952..60e8989 100644 (file)
        "tooltip-pt-mycontris": "Listeya dekerdışan de şıma",
        "tooltip-pt-login": "Mayê şıma ronıştış akerdışi rê dawet keme; labelê ronıştış mecburi niyo",
        "tooltip-pt-logout": "Bıveciye",
+       "tooltip-pt-createaccount": "Şıma rê tewsiyey ma xorê jew hesab akerê. Fına zi hesab akerdış mecburi niyo.",
        "tooltip-ca-talk": "Zerrekê pele sero werênayış",
        "tooltip-ca-edit": "Ena pele bıvurne",
        "tooltip-ca-addsection": "Zu bınnusteya newi ak",
index 48a36ed..2d229e7 100644 (file)
@@ -43,7 +43,8 @@
                        "Ah3kal",
                        "Macofe",
                        "Stam.nikos",
-                       "Giorgos456"
+                       "Giorgos456",
+                       "SucreRouge"
                ]
        },
        "tog-underline": "Υπογράμμιση συνδέσμων:",
        "faq": "Συχνές ερωτήσεις",
        "faqpage": "Project:Συχνές ερωτήσεις",
        "actions": "Ενέργειες",
-       "namespaces": "ΧÏ\8eÏ\81οι Î¿Î½Î¿Î¼Î¬Ï\84Ï\89ν",
+       "namespaces": "Î\9fνομαÏ\84οÏ\87Ï\8eÏ\81οι",
        "variants": "Παραλλαγές",
        "navigation-heading": "Μενού πλοήγησης",
        "errorpagetitle": "Σφάλμα",
        "viewsource": "Προβολή κώδικα",
        "viewsource-title": "Προβολή πηγαίου κώδικα για τη σελίδα $1",
        "actionthrottled": "Η ενέργεια παρεμποδίστηκε",
-       "actionthrottledtext": "Σαν Î¼Î­Ï\84Ï\81ο ÎºÎ±Ï\84ά Ï\84οÏ\85 spam, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.",
+       "actionthrottledtext": "Σαν Î¼Î­Ï\84Ï\81ο ÎºÎ±Ï\84ά Ï\84ηÏ\82 ÎºÎ±Ï\84άÏ\87Ï\81ηÏ\83ηÏ\82, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.",
        "protectedpagetext": "Αυτή η σελίδα έχει προστατευθεί για πρόληψη επεξεργασίας ή άλλες ενέργειες.",
        "viewsourcetext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα αυτής της σελίδας.",
        "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα των <strong>επεξεργασιών σας</strong> σε αυτήν τη σελίδα.",
        "newarticle": "(Νέο)",
        "newarticletext": "Ακολουθήσατε ένα σύνδεσμο προς μια σελίδα που δεν υπάρχει ακόμα. \nΓια να δημιουργήσετε τη σελίδα, αρχίστε να πληκτρολογείτε στο παρακάτω πλαίσιο (δείτε τη [$1 σελίδα βοήθειας] για περισσότερες πληροφορίες).\nΑν έχετε βρεθεί εδώ κατά λάθος, πατήστε το κουμπί '''πίσω''' στον περιηγητή σας.",
        "anontalkpagetext": "----''Αυτή η σελίδα συζήτησης προορίζεται για ανώνυμο χρήστη που δεν έχει δημιουργήσει ακόμα λογαριασμό ή που δεν τον χρησιμοποιεί. Έτσι για την ταυτοποίηση ενός ανώνυμου χρήστη χρησιμοποιείται η διεύθυνση IP του. Είναι όμως πιθανόν η διεύθυνση αυτή να είναι κοινή για πολλούς διαφορετικούς χρήστες.  Αν είστε ανώνυμος χρήστης και νομίζετε ότι άσχετα σχόλια απευθύνθηκαν σε σας, παρακαλούμε να [[Special:UserLogin/signup|δημιουργήσετε ένα λογαριασμό]] ή να  [[Special:UserLogin|συνδεθείτε]] για να αποφεύγεται η μελλοντική σύγχυση με άλλους ανώνυμους χρήστες.''",
-       "noarticletext": "Î\94εν Ï\85Ï\80άÏ\81Ï\87ει Ï\80Ï\81οÏ\82 Ï\84ο Ï\80αÏ\81Ï\8cν ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Ï\83ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα. Î\9cÏ\80οÏ\81είÏ\84ε Î½Î± [[Special:Search/{{PAGENAME}}|αναζηÏ\84ήÏ\83εÏ\84ε Î±Ï\85Ï\84Ï\8cν Ï\84ον Ï\84ίÏ\84λο Ï\83ελίδαÏ\82]] Ï\83ε Î¬Î»Î»ÎµÏ\82 Ï\83ελίδεÏ\82,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Î½Î± Î±Î½Î±Î¶Î·Ï\84ήÏ\83εÏ\84ε Ï\84α Ï\83Ï\87εÏ\84ικά Î¹Ï\83Ï\84οÏ\81ικά],\nή Î½Î± [{{fullurl:{{FULLPAGENAME}}|action=edit}} ÎµÏ\80εξεÏ\81γαÏ\83Ï\84είÏ\84ε Ï\84η Ï\83ελίδα Î±Ï\85Ï\84ή]</span>.",
-       "noarticletext-nopermission": "Δεν υπάρχει κείμενο σε αυτή τη σελίδα αυτή τη στιγμή.\nΜπορείτε να [[Special:Search/{{PAGENAME}}|αναζητήσετε αυτόν τον τίτλο σελίδας]] σε άλλες σελίδες, ή <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} να ψάξετε στις σχετικές καταγραφές]</span>, αλλά δεν έχετε την άδεια να δημιουργήσετε αυτή τη σελίδα.",
+       "noarticletext": "Î\94εν Ï\85Ï\80άÏ\81Ï\87ει Ï\80Ï\81οÏ\82 Ï\84ο Ï\80αÏ\81Ï\8cν ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Ï\83ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα. Î\9cÏ\80οÏ\81είÏ\84ε Î½Î± [[Special:Search/{{PAGENAME}}|αναζηÏ\84ήÏ\83εÏ\84ε Î±Ï\85Ï\84Ï\8cν Ï\84ον Ï\84ίÏ\84λο Ï\83ελίδαÏ\82]] Ï\83ε Î¬Î»Î»ÎµÏ\82 Ï\83ελίδεÏ\82,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Î½Î± Î±Î½Î±Î¶Î·Ï\84ήÏ\83εÏ\84ε Ï\84ιÏ\82 Ï\83Ï\87εÏ\84ικέÏ\82 ÎºÎ±Ï\84αγÏ\81αÏ\86έÏ\82],\nή Î½Î± [{{fullurl:{{FULLPAGENAME}}|action=edit}} ÎµÏ\80εξεÏ\81γαÏ\83Ï\84είÏ\84ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα]</span>.",
+       "noarticletext-nopermission": "Δεν υπάρχει προς το παρόν κείμενο σε αυτή τη σελίδα.\nΜπορείτε να [[Special:Search/{{PAGENAME}}|αναζητήσετε αυτόν τον τίτλο σελίδας]] σε άλλες σελίδες, ή <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} να ψάξετε στις σχετικές καταγραφές]</span>, αλλά δεν έχετε την άδεια να δημιουργήσετε αυτή τη σελίδα.",
        "missing-revision": "Δεν υπάρχει αναθεώρηση με αριθμό $1 για τη σελίδα με όνομα «{{FULLPAGENAME}}».\n\nΑυτό συνήθως προκαλείται από παλιό σύνδεσμο ιστορικού προς σελίδα που έχει διαγραφεί.\nΛεπτομέρειες θα βρείτε στο [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ημερολόγιο καταγραφής διαγραφών].",
        "userpage-userdoesnotexist": "Ο Λογαριασμός του χρήστη \"<nowiki>$1</nowiki>\" δεν είναι καταχωρημένος. Παρακαλώ δείτε αν θα θέλατε να δημιουργήσετε/επεξεργαστείτε αυτή τη σελίδα.",
        "userpage-userdoesnotexist-view": "Ο λογαριασμός χρήστη «$1» δεν είναι εγγεγραμμένος.",
        "currentrev-asof": "Τελευταία αναθεώρηση της $1",
        "revisionasof": "Αναθεώρηση της $1",
        "revision-info": "Αναθεώρηση ως προς $1 από {{GENDER:$6|τον|την}} $2 $7",
-       "previousrevision": "&larr;Παλαιότερη αναθεώρηση",
+       "previousrevision": "← Παλαιότερη αναθεώρηση",
        "nextrevision": "Νεώτερη αναθεώρηση &rarr;",
        "currentrevisionlink": "Τελευταία αναθεώρηση",
        "cur": "τρέχουσα",
        "recentchanges-noresult": "Χωρίς αλλαγές κατά τη διάρκεια της συγκεκριμένης χρονικής περιόδου, με αυτά τα κριτήρια.",
        "recentchanges-feed-description": "Παρακολούθηση των πιο πρόσφατων αλλαγών στο wiki σε αυτή τη ροή.",
        "recentchanges-label-newpage": "Αυτή η επεξεργασία δημιούργησε μια νέα σελίδα",
-       "recentchanges-label-minor": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± Î¼Î¹ÎºÏ\81οαλλαγή",
+       "recentchanges-label-minor": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± Î¼Î¹ÎºÏ\81ή αλλαγή",
        "recentchanges-label-bot": "Αυτή η επεξεργασία έγινε από ένα ρομπότ",
        "recentchanges-label-unpatrolled": "Αυτή η επεξεργασία δεν έχει ελεγχθεί ακόμα",
        "recentchanges-label-plusminus": "Μεταβολή του μεγέθους της σελίδας σε bytes",
        "recentchangeslinked-feed": "Σχετικές αλλαγές",
        "recentchangeslinked-toolbox": "Σχετικές αλλαγές",
        "recentchangeslinked-title": "Αλλαγές σχετικές με το «$1»",
-       "recentchangeslinked-summary": "Î\91Ï\85Ï\84Ï\8cÏ\82 ÎµÎ¯Î½Î±Î¹ Î­Î½Î± ÎºÎ±Ï\84άλογοÏ\82 Î±Î»Î»Î±Î³Ï\8eν Ï\80οÏ\85 Î­Î³Î¹Î½Î±Î½ Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84α Ï\83ε Ï\83ελίδεÏ\82 Ï\80οÏ\85 Ï\83Ï\85νδέονÏ\84αι Î±Ï\80Ï\8c Î¼Î¹Î± ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένη Ï\83ελίδα (ή Ï\83ε Î¼Î­Î»Î· Î¼Î¹Î±Ï\82 ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένηÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίαÏ\82).\nΣελίδεÏ\82 Ï\83Ï\84ην [[Special:Watchlist|λίστα παρακολούθησής]] σας είναι '''έντονες'''.",
+       "recentchangeslinked-summary": "Î\91Ï\85Ï\84Ï\8cÏ\82 ÎµÎ¯Î½Î±Î¹ Î­Î½Î± ÎºÎ±Ï\84άλογοÏ\82 Î±Î»Î»Î±Î³Ï\8eν Ï\80οÏ\85 Î­Î³Î¹Î½Î±Î½ Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84α Ï\83ε Ï\83ελίδεÏ\82 Ï\80οÏ\85 Ï\83Ï\85νδέονÏ\84αι Î±Ï\80Ï\8c Î¼Î¹Î± ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένη Ï\83ελίδα (ή Ï\83ε Î¼Î­Î»Î· Î¼Î¹Î±Ï\82 ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένηÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίαÏ\82).\nΣελίδεÏ\82 Ï\80οÏ\85 Ï\85Ï\80άÏ\81Ï\87οÏ\85ν Ï\83Ï\84η [[Special:Watchlist|λίστα παρακολούθησής]] σας είναι '''έντονες'''.",
        "recentchangeslinked-page": "Όνομα σελίδας:",
        "recentchangeslinked-to": "Εμφάνιση αλλαγών σε σελίδες συνδεδεμένες με την δεδομένη σελίδα αντί αυτής",
        "recentchanges-page-added-to-category": "Η σελίδα [[:$1]] προστέθηκε στην κατηγορία",
        "duplicatesoffile": "{{PLURAL:$1|Το ακόλουθο αρχείο είναι διπλότυπο|Τα $1 ακόλουθα αρχεία είναι διπλότυπα}} αυτού του αρχείου ([[Special:FileDuplicateSearch/$2|περισσότερες λεπτομέρειες]]):",
        "sharedupload": "Το αρχείο αυτό είναι από το $1 και είναι δυνατόν να χρησιμοποιείται από άλλα εγχειρήματα.",
        "sharedupload-desc-there": "Αυτό το αρχείο προέρχεται από το $1 και ενδέχεται να χρησιμοποιείται και από άλλα εγχειρήματα.\nΠαρακαλούμε δείτε τη [$2 σελίδα περιγραφής του αρχείου] για περισσότερες πληροφορίες.",
-       "sharedupload-desc-here": "Το Î±Ï\81Ï\87είο ÎµÎ¯Î½Î±Î¹ Î±Ï\80Ï\8c Ï\84ο $1 ÎºÎ±Î¹ ÎµÎ½Î´Î­Ï\87εÏ\84αι Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84αι Î±Ï\80Ï\8c Î¬Î»Î»Î± ÎµÎ³Ï\87ειÏ\81ήμαÏ\84α.\nÎ\97 Ï\80εÏ\81ιγÏ\81αÏ\86ή Ï\83Ï\84η [$2 Ï\83ελίδα Ï\80εÏ\81ιγÏ\81αÏ\86ήÏ\82 Î±Ï\81Ï\87είοÏ\85] εμφανίζεται παρακάτω.",
+       "sharedupload-desc-here": "Î\91Ï\85Ï\84Ï\8c Ï\84ο Î±Ï\81Ï\87είο ÎµÎ¯Î½Î±Î¹ Î±Ï\80Ï\8c Ï\84ο $1 ÎºÎ±Î¹ ÎµÎ½Î´Î­Ï\87εÏ\84αι Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84αι Î±Ï\80Ï\8c Î¬Î»Î»Î± ÎµÎ³Ï\87ειÏ\81ήμαÏ\84α.\nÎ\97 Ï\80εÏ\81ιγÏ\81αÏ\86ή Ï\83Ï\84ην [$2 Ï\83ελίδα Ï\80εÏ\81ιγÏ\81αÏ\86ήÏ\82 Ï\84οÏ\85 ÎµÎºÎµÎ¯], εμφανίζεται παρακάτω.",
        "sharedupload-desc-edit": "Αυτό το αρχείο είναι από  $1  και μπορεί να χρησιμοποιείται από άλλα εγχειρήματα.\nΊσως θέλετε να επεξεργαστείτε την περιγραφή του στην   [$2  σελίδα περιγραφής αρχείου] εκεί.",
        "sharedupload-desc-create": "Αυτό το αρχείο είναι από $1 και μπορεί να χρησιμοποιείται από άλλα εγχειρήματα.\nΊσως θέλετε να επεξεργαστείτε την περιγραφή του στην [$2 σελίδα περιγραφής αρχείου] εκεί.",
        "filepage-nofile": "Κανένα αρχείο με αυτό το όνομα δεν υπάρχει",
        "undelete-show-file-submit": "Ναι",
        "namespace": "Ονοματοχώρος:",
        "invert": "Αντιστροφή επιλογής",
-       "tooltip-invert": "Επιλέξτε αυτό το πλαίσιο για να αποκρύψετε αλλαγές σε σελίδες μέσα στον επιλεγμένο χώρο ονομάτων (και των συσχετικών χώρων ονομάτων, εάν επιλεγχθούν)",
+       "tooltip-invert": "Επιλέξτε αυτό το κουτάκι για να αποκρύψετε αλλαγές σε σελίδες μέσα στον επιλεγμένο χώρο ονομάτων (και των συσχετικών χώρων ονομάτων, εάν επιλεχθούν)",
        "tooltip-whatlinkshere-invert": "Ενεργοποιήστε αυτό το πλαίσιο ελέγχου για να αποκρύψετε συνδέσμους από σελίδες εντός του επιλεγμένου ονοματοχώρου.",
        "namespace_association": "Συσχετισμένος ονοματοχώρος",
        "tooltip-namespace_association": "Επιλέξτε αυτό το κουτάκι για να συμπεριλάβετε τον ονοματοχώρο συζήτησης ή θέματος που σχετίζεται με τον επιλεγμένο ονοματοχώρο",
        "tooltip-pt-preferences": "Οι προτιμήσεις σας",
        "tooltip-pt-watchlist": "Η λίστα με τις σελίδες που παρακολουθείτε για αλλαγές",
        "tooltip-pt-mycontris": "Κατάλογος των συνεισφορών σας",
-       "tooltip-pt-login": "Σας ενθαρρύνουμε να συνδεθείτε&middot; ωστόσο δεν είναι υποχρεωτικό",
+       "tooltip-pt-login": "Σας ενθαρρύνουμε να συνδεθείτε· ωστόσο, δεν είναι υποχρεωτικό",
        "tooltip-pt-logout": "Έξοδος",
        "tooltip-pt-createaccount": "Σας ενθαρρύνουμε να δημιουργήσετε ένα λογαριασμό και να συνδεθείτε· ωστόσο, δεν είναι υποχρεωτικό",
        "tooltip-ca-talk": "Συζήτηση για τη σελίδα περιεχομένου",
        "tooltip-ca-edit": "Επεξεργασία αυτής της σελίδας",
        "tooltip-ca-addsection": "Ξεκίνημα νέας ενότητας",
        "tooltip-ca-viewsource": "Αυτή η σελίδα είναι προστατευμένη.\nΜπορείτε να προβάλετε τον πηγαίο της κώδικα.",
-       "tooltip-ca-history": "ΠαλιέÏ\82 Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83ειÏ\82 Ï\84οÏ\85 Î¬Ï\81θÏ\81οÏ\85.",
+       "tooltip-ca-history": "ΠαλιέÏ\82 Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83ειÏ\82 Ï\84ηÏ\82 Ï\83ελίδαÏ\82",
        "tooltip-ca-protect": "Προστασία αυτής της σελίδας",
        "tooltip-ca-unprotect": "Αλλαγή ρυθμίσεων προστασίας αυτής της σελίδας",
        "tooltip-ca-delete": "Διαγραφή αυτής της σελίδας",
        "tooltip-search-go": "Μετάβαση σε μια σελίδα με αυτό ακριβώς το όνομα εάν υπάρχει",
        "tooltip-search-fulltext": "Αναζήτηση σε σελίδες για αυτό το κείμενο",
        "tooltip-p-logo": "Επίσκεψη στην αρχική σελίδα",
-       "tooltip-n-mainpage": "Î\95Ï\80ιÏ\83κεÏ\85τείτε την αρχική σελίδα",
-       "tooltip-n-mainpage-description": "Î\95Ï\80ιÏ\83κεÏ\86θείÏ\84ε Ï\84ην ÎºÏ\8dÏ\81ια σελίδα",
+       "tooltip-n-mainpage": "Î\95Ï\80ιÏ\83κεÏ\86τείτε την αρχική σελίδα",
+       "tooltip-n-mainpage-description": "Î\95Ï\80ιÏ\83κεÏ\86θείÏ\84ε Ï\84ην Î±Ï\81Ï\87ική σελίδα",
        "tooltip-n-portal": "Σχετικά με το εγχείρημα, τι μπορείτε να κάνετε, πού μπορείτε να βρείτε τι",
-       "tooltip-n-currentevents": "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82 Î³Î¹Î± Ï\80Ï\81Ï\8cÏ\83Ï\86ατα γεγονότα",
+       "tooltip-n-currentevents": "Î\92Ï\81είÏ\84ε Î²Î±Ï\83ικέÏ\82 Ï\80ληÏ\81οÏ\86οÏ\81ίεÏ\82 Î³Î¹Î± Ï\84Ï\81έÏ\87οντα γεγονότα",
        "tooltip-n-recentchanges": "Λίστα πρόσφατων αλλαγών στο wiki",
        "tooltip-n-randompage": "Φόρτωση μιας τυχαίας σελίδας",
-       "tooltip-n-help": "Το μέρος για να βρείτε τις απαντήσεις που ψάχνετε.",
-       "tooltip-t-whatlinkshere": "Î\9bίÏ\83Ï\84α Ï\8cλÏ\89ν Ï\84Ï\89ν Ï\83ελίδÏ\89ν Ï\80οÏ\85 Î­Ï\87οÏ\85ν Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\82 Ï\84α εδώ",
-       "tooltip-t-recentchangeslinked": "ΠÏ\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­Ï\82 Ï\83ε Ï\83ελίδεÏ\82 Ï\83Ï\84ιÏ\82 Î¿Ï\80οίεÏ\82 Î¿Î´Î·Î³Î¿Ï\8dν Ï\83Ï\8dνδεÏ\83μοι Î±Ï\80Ï\8c Î±Ï\85Ï\84ήν Ï\84η Ï\83ελίδα",
+       "tooltip-n-help": "Το μέρος για να βρείτε αυτό που ψάχνετε",
+       "tooltip-t-whatlinkshere": "Î\9aαÏ\84άλογοÏ\82 Ï\8cλÏ\89ν Ï\84Ï\89ν Ï\83ελίδÏ\89ν wiki Ï\80οÏ\85 Î­Ï\87οÏ\85ν Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\82 εδώ",
+       "tooltip-t-recentchangeslinked": "ΠÏ\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­Ï\82 Ï\83ε Ï\83ελίδεÏ\82 Ï\80οÏ\85 Ï\80αÏ\81αÏ\80έμÏ\80οÏ\85ν Î¿Î¹ Ï\83Ï\8dνδεÏ\83μοι Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 Ï\83ελίδαÏ\82",
        "tooltip-feed-rss": "RSS feed για αυτή τη σελίδα",
        "tooltip-feed-atom": "Ροή Atom για αυτήν τη σελίδα",
        "tooltip-t-contributions": "Λίστα με τις συνεισφορές αυτού του χρήστη",
        "tooltip-t-emailuser": "Αποστολή μηνύματος ηλεκτρονικής αλληλογραφίας σε αυτόν το χρήστη",
        "tooltip-t-info": "Περισσότερες πληροφορίες σχετικά με αυτήν τη σελίδα",
        "tooltip-t-upload": "Ανέβασμα αρχείων",
-       "tooltip-t-specialpages": "Î\97 Î»ίστα με όλες τις ειδικές σελίδες",
+       "tooltip-t-specialpages": "Î\9bίστα με όλες τις ειδικές σελίδες",
        "tooltip-t-print": "Εκτυπώσιμη έκδοση αυτής της σελίδας",
        "tooltip-t-permalink": "Μόνιμος σύνδεσμος σε αυτή την έκδοση της σελίδας",
-       "tooltip-ca-nstab-main": "Προβολή σελίδας περιεχομένου",
+       "tooltip-ca-nstab-main": "ΠÏ\81οβολή Ï\84ηÏ\82 Ï\83ελίδαÏ\82 Ï\80εÏ\81ιεÏ\87ομένοÏ\85",
        "tooltip-ca-nstab-user": "Προβολή της σελίδας χρήστη",
        "tooltip-ca-nstab-media": "Δείτε τη σελίδα πολυμέσων",
-       "tooltip-ca-nstab-special": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± ÎµÎ¹Î´Î¹ÎºÎ® Ï\83ελίδα, ÎºÎ±Î¹ Î´ÎµÎ½ Î¼Ï\80οÏ\81εί Î½Î± ÎµÏ\80εξεÏ\81γαÏ\83Ï\84εί",
+       "tooltip-ca-nstab-special": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± ÎµÎ¹Î´Î¹ÎºÎ® Ï\83ελίδα, ÎºÎ±Î¹ Î´ÎµÎ½ ÎµÏ\80ιδέÏ\87εÏ\84αι ÎµÏ\80εξεÏ\81γαÏ\83ία",
        "tooltip-ca-nstab-project": "Προβολή της σελίδας εγχειρήματος",
        "tooltip-ca-nstab-image": "Προβολή της σελίδας αρχείου",
        "tooltip-ca-nstab-mediawiki": "Δείτε το μήνυμα του συστήματος",
        "htmlform-cloner-create": "Προσθήκη περισσοτέρων",
        "htmlform-cloner-delete": "Αφαίρεση",
        "htmlform-cloner-required": "Απαιτείται τουλάχιστον μία τιμή.",
-       "htmlform-title-not-exists": "Î\9f Ï\84ίÏ\84λοÏ\82 $1 δεν υπάρχει.",
+       "htmlform-title-not-exists": "Το $1 δεν υπάρχει.",
        "htmlform-user-not-exists": "Δεν υπάρχει χρήστης με όνομα <strong>$1</strong>.",
        "htmlform-user-not-valid": "Το <strong>$1</strong> δεν είναι έγκυρο όνομα χρήστη.",
        "sqlite-has-fts": "$1 με υποστήριξη αναζήτησης πλήρους κειμένου",
index f98bbef..d86d49e 100644 (file)
        "wlheader-showupdated": "Leheküljed, mida on muudetud peale sinu viimast külastust, on '''rasvases kirjas'''.",
        "wlnote": "Allpool on {{PLURAL:$1|viimane muudatus|viimased <strong>$1</strong> muudatust}} viimase {{PLURAL:$2|tunni|<strong>$2</strong> tunni}} jooksul seisuga $3, kell $4.",
        "wlshowlast": "Näita viimast $1 tundi $2 päeva.",
-       "watchlistall2": "Näita kõiki",
+       "watchlistall2": "kõike",
+       "wlshowtime": "Näita viimast:",
+       "wlshowhideminor": "pisimuudatused",
+       "wlshowhidebots": "robotid",
+       "wlshowhideliu": "registreeritud kasutajad",
+       "wlshowhideanons": "anonüümsed kasutajad",
+       "wlshowhidepatr": "kontrollitud muudatused",
+       "wlshowhidemine": "minu muudatused",
        "watchlist-options": "Jälgimisloendi seaded",
        "watching": "Jälgimine...",
        "unwatching": "Jälgimise lõpetamine...",
index 530bf5d..80e495c 100644 (file)
        "wlnote": "Jarraian {{PLURAL:$2|ikus daiteke azken orduko|ikus daitezke azken '''$2''' orduetako}} azken {{PLURAL:$1|aldaketa|'''$1''' aldaketak}}, $3, $4 gisa.",
        "wlshowlast": "Erakutsi azken $1 orduak, azken $2 egunak",
        "watchlistall2": "guztiak",
+       "wlshowtime": "Erakutsi azkenak:",
+       "wlshowhideminor": "aldaketa txikiak",
+       "wlshowhidebots": "bot-ak",
+       "wlshowhideanons": "erabiltzaile anonimoak",
+       "wlshowhidemine": "nire edizioak",
        "watchlist-options": "Jarraitze-zerrendaren aukerak",
        "watching": "Zerrendan gehitzen...",
        "unwatching": "Zerrendatik kentzen...",
index 7a7db3c..8518b6d 100644 (file)
        "wlnote": "در زیر {{PLURAL:$1|تغییری|<strong>$1</strong> تغییری}} که در {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
        "wlshowlast": "نمایش آخرین $1 ساعت $2 روز",
        "watchlistall2": "همه",
+       "wlshowtime": "‌نمایش آخرین:",
+       "wlshowhideminor": "ویرایش‌های جزئی",
+       "wlshowhidebots": "ربات‌ها",
+       "wlshowhideliu": "کاربران ثبت‌شده",
+       "wlshowhideanons": "کاربران ناشناس",
+       "wlshowhidepatr": "ویرایش‌های گشت‌خورده",
+       "wlshowhidemine": "ویرایش‌های من",
        "watchlist-options": "گزینه‌های پی‌گیری",
        "watching": "پی‌گیری...",
        "unwatching": "توقف پی‌گیری...",
index 48903b6..9f41965 100644 (file)
        "wlheader-showupdated": "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
        "wlnote": "Alla {{PLURAL:$1|on viimeisin muutos|ovat viimeisimmät <strong>$1</strong> muutosta}} edellisen {{PLURAL:$2|tunnin|<strong>$2</strong> tunnin}} ajalta $3 kello $4 lukien.",
        "wlshowlast": "Näytä edelliset $1 tuntia tai $2 päivää",
-       "watchlistall2": "koko historia",
+       "watchlistall2": "kaikki",
+       "wlshowtime": "Näytä viimeiset:",
+       "wlshowhideminor": "pienet muutokset",
+       "wlshowhidebots": "botit",
+       "wlshowhideliu": "rekisteröityneet käyttäjät",
+       "wlshowhideanons": "anonyymit käyttäjät",
+       "wlshowhidepatr": "tarkastetut muutokset",
+       "wlshowhidemine": "omat muokkaukseni",
        "watchlist-options": "Tarkkailulistan asetukset",
        "watching": "Lisätään tarkkailulistalle...",
        "unwatching": "Poistetaan tarkkailulistalta...",
index 5fbd645..1090e33 100644 (file)
        "undeleterevision-missing": "Version incorrecte ou manquante.\nVous avez peut-être un mauvais lien, ou la version a pu être restaurée ou supprimée de l’archive.",
        "undelete-nodiff": "Aucune version précédente trouvée.",
        "undeletebtn": "Restaurer",
-       "undeletelink": "visualiser/rétablir",
+       "undeletelink": "voir/restaurer",
        "undeleteviewlink": "voir",
        "undeleteinvert": "Inverser la sélection",
        "undeletecomment": "Motif :",
index 3c89d9a..42b050f 100644 (file)
        "nstab-template": "Patron",
        "nstab-help": "Aide",
        "nstab-category": "Classe",
+       "mainpage-nstab": "Page Principale",
        "nosuchaction": "Action inconnue",
        "nosuchactiontext": "L'action spécifiée dans l'adresse URL est invalide.\nTu as peut-être mal entré l'URL ou suivi un lien erroné.\nIl peut aussi s'indiquer d'un bug dans le logiciel utilisé par {{SITENAME}}.",
        "nosuchspecialpage": "Page espéciale inconnue",
        "prevn-title": "$1 {{PLURAL:$1|résultat dernier|résultats derniers}}",
        "nextn-title": "$1 {{PLURAL:$1|résultat suivant|résultats suivants}}",
        "viewprevnext": "Regarder ($1 {{int:pipe-separator}} $2) ($3).",
+       "searchprofile-images": "Multimédia",
        "searchprofile-everything": "Tout",
        "searchprofile-advanced": "Charche avancée",
        "searchprofile-articles-tooltip": "Charcher dans $1",
        "powersearch-toggleall": "Tout",
        "powersearch-togglenone": "Aucun",
        "preferences": "Réglage",
-       "mypreferences": "Mon réglage",
+       "mypreferences": "Préférences",
        "skin-preview": "Vue d'avance",
        "prefs-user-pages": "Pages d'useur",
        "prefs-personal": "Profil d'useur",
        "action-undelete": "restaurer cette page",
        "action-sendemail": "envoyer des emails",
        "nchanges": "$1 changement{{PLURAL:$1||s}}",
+       "enhancedrc-history": "changements",
        "recentchanges": "Changements récent",
+       "recentchanges-legend-heading": "'''Légende:'''",
+       "rcshowhideminor-hide": "Cacher",
        "rcshowhidebots": "$1 les robots",
+       "rcshowhidebots-show": "Afficher",
+       "rcshowhideliu-hide": "Cacher",
+       "rcshowhideanons-hide": "Cacher",
        "rcshowhidepatr": "$1 les modifications patrouillés",
+       "rcshowhidemine-hide": "Cacher",
        "diff": "diff",
        "hist": "hist",
+       "show": "Afficher",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
+       "rc-change-size-new": "$1 {{PLURAL:$1|octet|octets}} après changement",
        "recentchangeslinked-page": "Nom de la page:",
        "filename": "Nom du fichier",
        "filedesc": "Sommaire",
        "filehist": "Historique du fichier",
        "filehist-deleteall": "effacer tout",
        "filehist-deleteone": "effacer",
+       "filehist-current": "Courant",
+       "filehist-datetime": "Date et heure",
        "filehist-user": "Useur",
+       "filehist-comment": "Commentaire",
        "imagelinks": "Utilisation du fichier",
+       "nolinkstoimage": "Aucune page uses ce fichier.",
        "shared-repo-from": "de: $1",
        "filerevert-comment": "Raison:",
        "filedelete": "Effacer $1",
        "emailuser": "Emailer cet useur",
        "emailuser-title-target": "Emailer {{GENDER:$1|cet useur|cette useuse}}",
        "emailuser-title-notarget": "Emailer useur",
-       "emailpage": "Emailer useur",
        "noemailtitle": "Aucune adresse d'email",
        "emailusername": "Nom d'useur:",
        "emailfrom": "De:",
        "deletecomment": "Raison:",
        "deleteotherreason": "Raison autre ou supplémentaire:",
        "deletereasonotherlist": "Autre raison",
+       "rollbacklink": "révoquer",
        "protectcomment": "Raison:",
        "restriction-edit": "Changer",
        "restriction-move": "Renommer",
        "undelete-search-submit": "Charcher",
        "undelete-show-file-submit": "Oui",
        "namespace": "Espace de noms:",
+       "invert": "Inverser la sélection",
        "blanknamespace": "(Principal)",
        "contributions": "Changements de l'useur",
-       "mycontris": "Mes changements",
+       "mycontris": "Contributions",
        "uctop": "(actuel)",
        "sp-contributions-talk": "Discuter",
        "sp-contributions-submit": "Charcher",
+       "whatlinkshere": "Pages liées",
+       "whatlinkshere-title": "Pages qui connectent vers \"$1\"",
        "whatlinkshere-page": "Page:",
        "whatlinkshere-links": "← liens",
        "whatlinkshere-hidelinks": "$1 les liens",
+       "whatlinkshere-filters": "Filtres",
        "block": "Bloquer l’useur",
        "unblock": "Débloquer l’useur",
        "blockip": "Bloquer l’{{GENDER:$1|useur|useuse}}",
        "block-log-flags-nocreate": "création de compte interdite",
        "tooltip-pt-login": "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier mais ce n’est pas obligatoire.",
        "tooltip-ca-talk": "Discussion de cette page de contenu",
+       "tooltip-ca-edit": "Changer cette page",
        "tooltip-ca-watch": "Additionner cette page à votre liste de suivi",
        "tooltip-search": "Charche {{SITENAME}}",
        "tooltip-search-fulltext": "Charche les pages pour ce texte",
        "tooltip-n-recentchanges": "La liste de changement récent dans ce wiki",
        "tooltip-n-randompage": "Afficher un page au hasard",
        "tooltip-n-help": "La place pour savoir",
+       "tooltip-t-whatlinkshere": "Liste des pages liées à celle-ci",
        "tooltip-t-specialpages": "Liste de tout les pages speciales",
+       "tooltip-t-print": "Version imprimable de cette page",
+       "tooltip-ca-nstab-user": "Voir la page d'useur",
        "tooltip-ca-nstab-special": "Ceci est une page spéciale, vous ne pouvez pas la changer.",
+       "pageinfo-toolboxlink": "Information sur la page",
        "bad_image_list": "Le format est le suivant :\n\nSeules 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.\nLes 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": "Métadonnées",
+       "exif-colorspace": "Espace des couleurs",
+       "exif-orientation-1": "Normale",
        "namespacesall": "Tous",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussion]])",
        "redirect-file": "Nom du fichier",
+       "specialpages": "Pages spéciales",
        "searchsuggest-search": "Charcher"
 }
index 7ccef12..a296b9d 100644 (file)
        "wlshowhideminor": "עריכות משניות",
        "wlshowhidebots": "בוטים",
        "wlshowhideliu": "משתמשים רשומים",
-       "wlshowhideanons": "×\9eשת×\9eש×\99×\9d ×\90×\9c×\9e×\95× יים",
+       "wlshowhideanons": "×\9eשת×\9eש×\99×\9d ×\90× ×\95× ×\99×\9eיים",
        "wlshowhidepatr": "עריכות בדוקות",
        "wlshowhidemine": "עריכות שלי",
        "watchlist-options": "אפשרויות ברשימת המעקב",
index a5fbd84..455da5b 100644 (file)
        "svg-long-error": "Érvénytelen SVG-fájl: $1",
        "show-big-image": "Eredeti fájl",
        "show-big-image-preview": "Az előnézet mérete: $1",
+       "show-big-image-preview-differ": "Ennek a(z) $2 fájlnak ezen $3 formátumú előnézete: $1.",
        "show-big-image-other": "További {{PLURAL:$2|felbontás|felbontások}}: $1.",
        "show-big-image-size": "$1 × $2 képpont",
        "file-info-gif-looped": "ismétlődik",
index ba0af4e..d7bfc7d 100644 (file)
        "nstab-template": "Կաղապար",
        "nstab-help": "Օգնության էջ",
        "nstab-category": "Կատեգորիա",
+       "mainpage-nstab": "Գլխավոր էջ",
        "nosuchaction": "Նման գործողություն չկա",
        "nosuchactiontext": "URL-ում նշված գործողությունը սխալ է։\nՀնարավոր է դուք վրիպակ եք թույլ տվել URL-ի մուտքագրման ժամանակ կամ հետևել եք սխալ հղմամբ։\nՍա կարող է նաև լինել {{SITENAME}} նախագծում օգտագործվող ծրագրի սխալ։",
        "nosuchspecialpage": "Նման սպասարկող էջ չկա",
        "wlheader-showupdated": "Էջերը, որոնք փոփոխվել են ձեր դրանց վերջին այցից հետո բերված են '''թավատառ'''։",
        "wlnote": "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում։",
        "wlshowlast": "Ցուցադրել վերջին $1 ժամերը $2 օրերը",
+       "watchlistall2": "բոլոր",
        "watchlist-options": "Հսկացանկի նախընտրություններ",
        "watching": "Հսկվում է...",
        "unwatching": "Հանվում է հսկումից...",
index b2549a6..a182bb5 100644 (file)
        "content-model-css": "CSS",
        "content-json-empty-object": "빈 오브젝트",
        "content-json-empty-array": "빈 배열",
+       "duplicate-args-warning": "<strong>경고:</strong> [[:$1]] 문서는 [[:$2]]에 \"$3\" 변수를 하나보다 더 많이 입력했습니다. 마지막으로 주어진 값만이 유효합니다.",
        "duplicate-args-category": "중복된 인수를 사용한 틀의 호출을 포함한 문서",
        "duplicate-args-category-desc": "문서에 <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>나 <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>와 같은, 인수를 중복하여 사용한 틀 호출을 포함합니다.",
        "expensive-parserfunction-warning": "<strong>경고:</strong> 이 문서는 너무 많은 파서 함수를 포함하고 있습니다.\n\n$2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개를 쓰고 있습니다}}.",
index 46a6565..d5c037a 100644 (file)
        "actions": "Akßjuhne",
        "namespaces": "Appachtemangs",
        "variants": "Variante",
-       "navigation-heading": "Menü för et Navijeere",
+       "navigation-heading": "Navijehre",
        "errorpagetitle": "Fähler",
        "returnto": "Jangk widder noh: „$1“.",
        "tagline": "Uß {{GRAMMAR:Dativ | {{ucfirst:{{SITENAME}}}}}}",
        "printableversion": "För ze Dröcke",
        "permalink": "Permalengk noh heh",
        "print": "Drocke",
-       "view": "Beloore",
+       "view": "Belohre",
        "view-foreign": "Op $1 beloohre",
        "edit": "Ändere",
        "edit-local": "Aanmärkonge heh em Wikki beärbeide",
        "rcshowhidebots": "de Bots ehr Änderonge $1",
        "rcshowhidebots-show": "aanzeije",
        "rcshowhidebots-hide": "verschteihsche",
-       "rcshowhideliu": "$1 de aanjemällte Metmaacher ehr Änderonge",
+       "rcshowhideliu": "de aanjemällte Metmaacher ehr Änderonge $1",
        "rcshowhideliu-show": "aanzeije",
        "rcshowhideliu-hide": "verschteihsche",
-       "rcshowhideanons": "$1 de nahmelohse Metmaacher ehr Änderonge",
+       "rcshowhideanons": "de nahmelohse Metmaacher ehr Änderonge $1",
        "rcshowhideanons-show": "aanzeije",
        "rcshowhideanons-hide": "verschteihsche",
        "rcshowhidepatr": "de nohjeluhrte Änderonge $1",
        "rclinks": "Zeisch de läzde {{int:pipe-separator}}$1{{int:pipe-separator}} Änderonge us de läzde {{int:pipe-separator}}$2{{int:pipe-separator}} Däch, un dun {{int:pipe-separator}} $3.",
        "diff": "Ongerscheid",
        "hist": "Väsjohne",
-       "hide": "Ußblände!",
+       "hide": "ußblände!",
        "show": "Zeije:",
        "minoreditletter": "M",
        "newpageletter": "N",
        "whatlinkshere-prev": "de vörijje {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-next": "de nächste {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-links": "← Links",
-       "whatlinkshere-hideredirs": "$1 de Ömleidonge",
-       "whatlinkshere-hidetrans": "$1 de Oproofe",
-       "whatlinkshere-hidelinks": "$1 de nommale Lengks",
+       "whatlinkshere-hideredirs": "de Ömleijdonge $1",
+       "whatlinkshere-hidetrans": "de Oproofe $1",
+       "whatlinkshere-hidelinks": "de nommahle Lengks $1",
        "whatlinkshere-hideimages": "$1 de Lengks op Datteihje",
        "whatlinkshere-filters": "Ußsööke",
        "autoblockid": "Automattesche Sperr Nommer $1",
        "exif-urgency-low": "Klein ($1)",
        "exif-urgency-high": "Huh ($1)",
        "exif-urgency-other": "Selfs faßjelaat ($1)",
-       "namespacesall": "all",
+       "namespacesall": "alle",
        "monthsall": "all",
        "confirmemail": "E-Mail Adress bestätije",
        "confirmemail_noemail": "En [[Special:Preferences|Ding Ennschtällonge]] es kein öhntlije Adräß för de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>.",
index b496fbc..dda2c8f 100644 (file)
        "userlogin-resetlink": "Te agahiyên hesabê xwe ji bîr kirin?",
        "userlogin-resetpassword-link": "Te şîfreya xwe ji bîr kir?",
        "userlogin-helplink2": "Alîkariya têketinê",
-       "userlogin-createanother": "Hesabekî din çeke",
+       "userlogin-createanother": "Hesabekî din çêke",
        "createacct-emailrequired": "E-name",
        "createacct-emailoptional": "E-name",
        "createacct-email-ph": "E-nameya xwe binivîse",
        "wlheader-showupdated": "Ev rûpela hatî guhertin dema te lê meyzand bi '''nivîsa stûr''' tê xuyakirin.",
        "wlnote": "Niha {{PLURAL:$1|xeyrandinê|'''$1''' xeyrandinên}} dawî yê {{PLURAL:$2|seetê|'''$2''' seetên}} dawî {{PLURAL:$1|tê|tên}} dîtin.",
        "wlshowlast": "Guhertinên berî $1 saetan, $2 rojan, ya  nîşan bide",
+       "watchlistall2": "hemû",
        "watchlist-options": "Vebijarkên lîsteya şopandinê",
        "watching": "Tê şopandin...",
        "unwatching": "Nay şopandin…",
index ba6ff2b..bd7b399 100644 (file)
        "wlnote": "Hei {{PLURAL:$1|ass déi lescht Ännerung|sinn déi lescht <strong>$1</strong> Ännerunge}} vun {{PLURAL:$2|der leschter Stonn|de leschte(n) <strong>$2</strong> Stonnen}}, Stand: $3 ëm $4 Auer.",
        "wlshowlast": "Déi lescht $1 Stonnen $2 Deeg weisen",
        "watchlistall2": "all",
+       "wlshowtime": "Lëscht weisen",
+       "wlshowhideminor": "kleng Ännerungen",
+       "wlshowhidebots": "Botten",
+       "wlshowhideliu": "registréiert Benotzer",
+       "wlshowhideanons": "anonym Benotzer",
+       "wlshowhidepatr": "iwwerwaacht Ännerungen",
+       "wlshowhidemine": "meng Ännerungen",
        "watchlist-options": "Optioune vun der Iwwerwaachungslëscht",
        "watching": "Iwwerwaachen …",
        "unwatching": "Net méi iwwerwaachen …",
index ce7691d..3eadd91 100644 (file)
        "wlheader-showupdated": "Puslapiai pakeisti nuo tada, kai paskutinį kartą apsilankėte juose, yra pažymėti '''pastorintai'''",
        "wlnote": "{{PLURAL:$1|Rodomas '''$1''' paskutinis pakeitimas, atliktas|Rodomi '''$1''' paskutiniai pakeitimai, atlikti|Rodoma '''$1''' paskutinių pakeitimų, atliktų}} per '''$2''' {{PLURAL:$2|paskutinę valandą|paskutines valandas|paskutinių valandų}}, nuo $3 $4.",
        "wlshowlast": "Rodyti paskutinių $1 valandų, $2 dienų",
-       "watchlistall2": "visus",
+       "watchlistall2": "visi",
+       "wlshowtime": "Rodyti paskutinį:",
+       "wlshowhideminor": "smulkūs pakeitimai",
+       "wlshowhidebots": "robotai",
+       "wlshowhideliu": "prisiregistravę naudotojai",
+       "wlshowhideanons": "anoniminiai naudotojai",
+       "wlshowhidepatr": "prižiūrėti pakeitimai",
+       "wlshowhidemine": "mano pakeitimai",
        "watchlist-options": "Stebimųjų sąrašo parinktys",
        "watching": "Įtraukiama į stebimųjų sąrašą...",
        "unwatching": "Šalinama iš stebimųjų sąrašo...",
index 22053d7..4ca9a9f 100644 (file)
        "wlheader-enotif": "E-pasta paziņojumi ir ieslēgti.",
        "wlheader-showupdated": "Lapas, kuras ir tikušas izmainītas, kopš tu tās pēdējoreiz apskatījies, te rādās ar '''pustrekniem''' burtiem",
        "wlshowlast": "Parādīt izmaiņas pēdējo $1 stundu laikā vai $2 dienu laikā, vai arī .",
+       "watchlistall2": "visas",
        "watchlist-options": "Uzraugāmo rakstu saraksta opcijas",
        "watching": "Uzrauga...",
        "unwatching": "Neuzrauga...",
        "tooltip-ca-nstab-main": "Apskatīt rakstu",
        "tooltip-ca-nstab-user": "Apskatīt dalībnieka lapu",
        "tooltip-ca-nstab-media": "Apskatīt multimediju lapu",
-       "tooltip-ca-nstab-special": "Šī ir īpašā lapa, tu nevari izmainīt pašu lapu.",
+       "tooltip-ca-nstab-special": "Šī ir īpašā lapa un to nevar mainīt.",
        "tooltip-ca-nstab-project": "Apskatīt projekta lapu",
        "tooltip-ca-nstab-image": "Apskatīt attēla lapu",
        "tooltip-ca-nstab-mediawiki": "Apskatīt sistēmas paziņojumu",
        "logentry-newusers-create": "Lietotāja konts $1 tika {{GENDER:$2|izveidots}}",
        "logentry-newusers-create2": "$1 {{GENDER:$2|izveidoja}} lietotāja kontu $3",
        "logentry-newusers-autocreate": "Lietotaja konts $1 tika {{GENDER:$2|izveidots}} automātiski",
+       "logentry-upload-upload": "$1 {{GENDER:$2|augšupielādēja}} $3",
        "logentry-upload-overwrite": "$1 augšupielādēja jaunu $3 versiju",
        "rightsnone": "(nav)",
        "revdelete-summary": "izmaiņu kopsavilkums",
index 11dfe83..dcdd902 100644 (file)
        "faqpage": "Project:प्रश्नावली",
        "actions": "क्रिया",
        "namespaces": "नामविश्वे",
-       "variants": "à¤\85सà¥\8dथिरà¤\95à¥\87",
+       "variants": "à¤\9aलà¥\87(वà¥\8dहà¥\87रियà¤\82à¤\9fà¥\8dस)",
        "navigation-heading": "दिक्चालन यादी",
        "errorpagetitle": "चूक",
        "returnto": "$1 कडे परत चला.",
        "search": "शोधा",
        "searchbutton": "शोधा",
        "go": "चला",
-       "searcharticle": "शà¥\8bधा",
+       "searcharticle": "à¤\9cा",
        "history": "पानाचा इतिहास",
        "history_short": "इतिहास",
        "updatedmarker": "माझ्या शेवटच्या भेटीनंतर अद्यतन केले",
        "feed-invalid": "अयोग्य रसद नोंदणी (Invalid subscription feed type).",
        "feed-unavailable": "सिंडीकेशन रसद उपलब्ध नाहीत",
        "site-rss-feed": "$1 आरएसएस रसद",
-       "site-atom-feed": "$1 à¤\8dटम रसद (Atom Feed)",
+       "site-atom-feed": "$1 à¤\85à¥\85टम रसद (Atom Feed)",
        "page-rss-feed": "\"$1\" आर.एस.एस.रसद (RSS Feed)",
-       "page-atom-feed": "\"$1\" à¤\8dटम रसद (Atom Feed)",
+       "page-atom-feed": "\"$1\" à¤\85à¥\85टम रसद (Atom Feed)",
        "feed-atom": "अॅटम",
        "feed-rss": "आर.एस.एस.",
        "red-link-title": "$1 (पान अस्तित्वात नाही)",
        "nstab-template": "साचा",
        "nstab-help": "साहाय्य पान",
        "nstab-category": "वर्ग",
-       "mainpage-nstab": "मà¥\81à¤\96à¥\8dय à¤ªà¤¾à¤¨",
+       "mainpage-nstab": "मà¥\81à¤\96पà¥\83षà¥\8dठ",
        "nosuchaction": "अशी कृती अस्तित्वात नाही",
        "nosuchactiontext": "URL ने नमूद केलेली कृती चुकीची आहे.\nतुम्ही कदाचित URL चुकीची दिली असेल, किंवा चुकीच्या दुव्यावर टिचकी दिली असेल.\nकदाचित, ही कृती {{SITENAME}} वापरत असलेल्या सॉफ्टवेअर मधील गणकदोष \nसुद्धा दर्शवीत असेल.",
        "nosuchspecialpage": "असे कोणतेही विशेष पृष्ठ अस्तित्वात नाही",
        "delete-hook-aborted": "खोडण्याची  क्रिया मधेच थांबविण्यात येत आहे.\nकोणतेही कारण देण्यात आले नाही",
        "no-null-revision": "\"$1\" या पानाची नविन रिक्त आवृत्ती निर्मिता आली नाही.",
        "badtitle": "खराब शीर्षक",
-       "badtitletext": "à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\87 à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\85यà¥\8bà¤\97à¥\8dय, à¤°à¤¿à¤\95ामà¥\87 à¤\85थवा à¤\9aà¥\81à¤\95िनà¥\87 à¤\9cà¥\8bडलà¥\87लà¥\87 à¤\86à¤\82तर-भाषिय à¤\95िà¤\82वा à¤\86à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤\86हà¥\87. à¤¤à¥\8dयात,शà¥\80रà¥\8dषà¤\95ास à¤\85यà¥\8bà¤\97à¥\8dय à¤\85शà¥\80 à¤\8fà¤\95 à¤\95िà¤\82वा à¤\85धिà¤\95 à¤\9aिनà¥\8dहे आहेत.",
+       "badtitletext": "à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\87 à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\85यà¥\8bà¤\97à¥\8dय, à¤°à¤¿à¤\95ामà¥\87 à¤\85थवा à¤\9aà¥\81à¤\95िनà¥\87 à¤\9cà¥\8bडलà¥\87लà¥\87 à¤\86à¤\82तर-भाषिय à¤\95िà¤\82वा à¤\86à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤\86हà¥\87. à¤¤à¥\8dयात,शà¥\80रà¥\8dषà¤\95ास à¤\85यà¥\8bà¤\97à¥\8dय à¤\85शà¥\80 à¤\8fà¤\95 à¤\95िà¤\82वा à¤\85धिà¤\95 à¤\85à¤\95à¥\8dषरे आहेत.",
        "title-invalid-empty": "आपण विनंति केलेले पान-शिर्षक एकतर रिकामे आहे किंवा त्यात एखाद्या नामविश्वाचे नाव आहे.",
        "title-invalid-utf8": "आपण विनंती केलेल्या पानाच्या शिर्षकात अवैध यूटिएफ-८ क्रमवारी आहेत.",
        "title-invalid-interwiki": "आपण विनंती केलेल्या पानात आंतरविकि दुवे आहेत जे शिर्षकात वापरता येउ शकत नाहीत.",
        "protectedinterface": "हे पान सॉफ्टवेअरला इंटरफेस लेखन पुरवते, म्हणून दुरूपयोग टाळण्यासाठी संरक्षित केलेले आहे.\n\nसर्व विकिंवर, अनुवाद जोडण्याकरता किंवा बदलण्याकरता अथवा शुद्धलेखन चिकित्सेकरीता , कृपया [//translatewiki.net/ translatewiki.net], या मिडियाविकि स्थानिकीकरण प्रकल्पावर जा.",
        "editinginterface": "<strong>सावधान</strong>तुम्ही संचेतनाचे (सॉफ्टवेअर) संपर्क माध्यम मजकूर असलेले पान संपादित करित आहात. या पानावरील बदल या विकिवरील इतर सदस्यांच्या सदस्य संपर्क माध्यमाचे स्वरूप बदलू शकते.",
        "translateinterface": "सर्व विकिंवर अनुवाद जोडण्याकरता किंवा बदलण्याकरता, कृपया [//translatewiki.net/ ट्रांसलेटविकि.नेट]चा वापर करा,जो मिडियाविकिचा स्थानिकीकरण प्रकल्प आहे.",
-       "cascadeprotected": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¤\82पादनाà¤\82पासà¥\82न à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\8dया à¤\97à¥\87लà¥\87 à¤\86हà¥\87, à¤\95ारण à¤¤à¥\87 à¤\96ालà¥\80ल {{PLURAL:$1|पानात|पानाà¤\82मधà¥\8dयà¥\87}} à¤\85à¤\82तरà¥\8dभà¥\82त केलेले आहे,{{PLURAL:$1|जे पान|जी पाने }} निपतन पर्याय सुरु केल्यामुळे सुरक्षित आहेत:\n$2",
+       "cascadeprotected": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¤\82पादनाà¤\82पासà¥\82न à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\8dया à¤\97à¥\87लà¥\87 à¤\86हà¥\87, à¤\95ारण à¤¤à¥\87 à¤\96ालà¥\80ल {{PLURAL:$1|पानात|पानाà¤\82मधà¥\8dयà¥\87}} à¤\86à¤\82तरविनà¥\8dयासित केलेले आहे,{{PLURAL:$1|जे पान|जी पाने }} निपतन पर्याय सुरु केल्यामुळे सुरक्षित आहेत:\n$2",
        "namespaceprotected": "'''$1''' नामविश्वातील पाने संपादण्याची आपणांस परवानगी नाही.",
        "customcssprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.",
        "customjsprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे 'जावास्क्रिप्ट' पान संपादित करण्याची परवानगी नाही.",
        "newarticle": "(नवीन लेख)",
        "newarticletext": "आपण सध्या अस्तित्त्वात नसलेल्या पानाच्या दुव्याचा मागोवा घेत आला आहात.\nहे पान नव्याने तयार करण्यासाठी खालील पेटीत टंकन करणे सुरु करा(अधिक माहितीसाठी [$1 साहाय्य पान] बघा).\n\nजर आपण येथे चुकून आला असाल तर ब्राउझरच्या  <strong>परत</strong>(बॅक) कळीवर टिचकी द्या.",
        "anontalkpagetext": "---- ''हे चर्चापान अशा अज्ञात सदस्यासाठी आहे, ज्यांनी खाते तयार केलेले नाही किंवा त्याचा वापर करत नाहीत. त्यांच्या ओळखीसाठी आम्ही आंतरजाल अंकपत्ता वापरतो आहोत. असा अंकपत्ता बऱ्याच लोकांचा एकच असू शकतो. जर आपण अज्ञात सदस्य असाल आणि आपल्याला काही अप्रासंगिक संदेश मिळाला असेल तर कृपया [[Special:UserLogin| खाते तयार करा]] किंवा [[Special:UserLogin/signup|सनोंद-प्रवेश करा]] ज्यामुळे, पुढे असे गैरसमज होणार नाहीत.''",
-       "noarticletext": "या लेखात सध्या काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}| मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर नोंदी शोधा],\nकिंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}} लिहू शकता]</span>.",
+       "noarticletext": "या लेखात सध्या काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}| मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर नोंदी शोधा],\nकिंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}}संपादू शकता]</span>.",
        "noarticletext-nopermission": "सध्या या लेखात  काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये [[Special:Search/{{PAGENAME}}| या मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME}}}}आपण या लेखाच्या इतर नोंदी शोधा]</span>,परंतु, आपणास हा लेख लिहीण्याची परवानगी देण्यात येउ शकत नाही.",
        "missing-revision": "\"{{FULLPAGENAME}}\" या लेखाचे #$1 हे संस्करण अस्तित्वात नाही.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे असे होते.याबाबत विस्तृत माहिती  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी]येथे बघता येईल.",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" सदस्य खात्याची नोंद नाही. कृपया हे पान तुम्ही संपादित किंवा नव्याने तयार करू इच्छिता काय याबद्दल विचार करा.",
        "invalid-content-data": "अवैध माहिती",
        "content-not-allowed-here": "\"$1\" हा आशय [[$2]] लेखावर टाकण्याची अनुमती नाही.",
        "editwarning-warning": "या पानावरुन दुसर्‍या पानावर गेल्यास, तुम्ही येथे केलेले बदल जतन होणार नाहीत.\nजर आपण सनोंद-प्रवेशित असाल तर, ही सूचना घालवण्यासाठी ''{{int:prefs-editing}}'' मधील संपादनपसंतीत बदल करा.",
+       "editpage-notsupportedcontentformat-title": "आशय प्रारुप सहाय्यीकृत नाही",
        "content-model-wikitext": "विकिमजकूर",
        "content-model-text": "साधा मजकूर",
        "content-model-javascript": "जावास्क्रिप्ट",
        "content-model-css": "सीएसएस",
+       "content-json-empty-object": "रिक्त उद्दीष्ट",
+       "content-json-empty-array": "रिकामा चतुष्कोन(array)",
+       "duplicate-args-warning": "<strong>इशारा:</strong> [[:$1]] हा [[:$2]] ला \"$3\" प्राचलासाठी, एकाधिक किंमतींसमवेत हाक देत आहे.दिलेली शेवटची किंमतच वापरल्या जाईल.",
+       "duplicate-args-category": "साचास हाक देण्यात पाने द्विरुक्त कारणमीमांसा(arguments) वापरत आहेत.",
+       "duplicate-args-category-desc": "या पानात साच्याची ती हाक(calls) आहे ज्यात द्विरुक्त कारणमिमांसेचा (arguments)वापर करण्यात आला आहे,जसे<code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> किंवा <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "”’इशारा:”’ या पानावर खूप सारे खर्चीक पार्सर क्रिया कॉल्स आहेत.\n\nते $2{{PLURAL:$2|कॉल|कॉल्स}} पेक्षा कमी असायला हवेत, सध्या $1{{PLURAL:$1| $1 कॉल| $1 कॉल्स}} एवढे आहेत.",
        "expensive-parserfunction-category": "खूप सारे खर्चीक पार्सर क्रिया कॉल्स असणारी पाने",
        "post-expand-template-inclusion-warning": "<strong>ईशारा:</strong> साचे वाढविण्याची मर्यादा संपलेली आहे.\nकाही साचे वगळले जातील.",
        "parser-template-recursion-depth-warning": "साचा पुनरावर्तन खोली मर्यादा ओलांडली ($1)",
        "language-converter-depth-warning": "भाषा रुपांतरण खोली मर्यादा ओलांडली ($1)",
        "node-count-exceeded-category": "लेख जेथे निस्पंद-गणना(नोड-काऊंट) पार केल्या गेला",
+       "node-count-exceeded-category-desc": "या पानाने उच्चतम गाठविंदूंची (node)  मोजणीमर्यादा पार केली.",
        "node-count-exceeded-warning": "लेखाची पर्वसंधि-गणना(नोड-काऊंट)मर्यादा पार झाली",
        "expansion-depth-exceeded-category": "लेख जेथे विस्तार-तळ(एक्सपांशन डेप्थ) पार केल्या गेली",
+       "expansion-depth-exceeded-category-desc": "या पानाने उच्चतम प्रसरण-खोली(expansion depth) मर्यादा पार केली.",
        "expansion-depth-exceeded-warning": "लेखाने विस्तार-तळ(एक्सपांशन डेप्थ) पार केला",
        "parser-unstrip-loop-warning": "'अनस्ट्रिप'(अरोखीत) वलय(लुप) आढळले",
        "parser-unstrip-recursion-limit": "'अनस्ट्रिप'(अरोखीत) आवर्तन मर्यादा पार झाली ($1)",
        "undo-summary-username-hidden": "अज्ञात सदस्याची $1 आवृत्ती परतवा",
        "cantcreateaccounttitle": "खाते उघडू शकत नाही",
        "cantcreateaccount-text": "('''$1''')या आंतरजाल अंकपत्त्याकडूनच्या खाते निर्मितीस [[User:$3|$3]]ने अटकाव केला आहे.\n\n$3ने ''$2'' कारण दिले आहे.",
+       "cantcreateaccount-range-text": "'''$1'''आवाक्यातील आंतरजाल अंकपत्ते,ज्यात आपल्या ('''$4''') या अंकपत्त्याचा समावेश आहे, [[User:$3|$3]] ने त्यांच्या खाते निर्मितीस प्रतिबंध केला आहे.\n\n$3 ने ''$2''कारण दिले आहे.",
        "viewpagelogs": "या पानाच्या नोंदी पहा",
        "nohistory": "या पृष्ठासाठी संपादन इतिहास अस्तित्वात नाही.",
        "currentrev": "सध्याची आवृत्ती",
        "history-feed-description": "विकिवरील या पानाच्या आवृत्त्यांचा इतिहास",
        "history-feed-item-nocomment": "$2 वर $1",
        "history-feed-empty": "विनंती केलेले पान अस्तित्वात नाही.\n\nते विकिवरून वगळले किंवा नाव बदललेले असण्याची शक्यता आहे.\n\nसंबधीत नव्या पानांकरिता [[Special:Search|विकिवर शोध घेण्याचा ]] प्रयत्न करा.",
+       "history-edit-tags": "निवडलेल्या आवृत्त्यांची खूणपताका संपादा",
        "rev-deleted-comment": "(संपादन सारांश वगळला)",
        "rev-deleted-user": "(सदस्यनाव वगळले)",
        "rev-deleted-event": "(क्रिया नोंद वगळली)",
        "revdelete-no-file": "नमूद केलेली संचिका अस्तित्वात नाही.",
        "revdelete-show-file-confirm": "तुम्ही \"<nowiki>$1</nowiki>\" या संचिकेची  $2 ला $3 वेळी  वगळलेली आवृत्ती नक्की पहाणार आहात?",
        "revdelete-show-file-submit": "होय",
+       "revdelete-selected-text": "[[:$2]] ची/च्या {{PLURAL:$1|निवडलेली आवृत्ती|निवडलेल्या आवृत्त्या}} :",
+       "revdelete-selected-file": "[[:$2]] ची/च्या {{PLURAL:$1|निवडलेली संचिका आवृत्ती|निवडलेल्या संचिका आवृत्त्या}} :",
        "logdelete-selected": "{{PLURAL:$1|निवडलेली नोंदीकृत घटना|निवडलेल्या नोंदीकृत घटना}}:",
+       "revdelete-text-text": "वगळलेल्या आवृत्त्या ह्या पानाच्या इतिहासात दिसणार नाहीत, पण त्याच्या आशयाचा काही भाग हा जनतेच्या पोहोचीबाहेर असेल.",
+       "revdelete-text-file": "वगळलेल्या संचिकेच्या आवृत्त्या ह्या पानाच्या इतिहासात अद्यापही दिसतील, पण त्याच्या आशयाचा काही भाग हा जनतेच्या पोहोचीबाहेर असेल.",
+       "logdelete-text": "वगळलेल्या नोंदी ह्या पानाच्या इतिहासात अजूनही दिसतील, पण त्याच्या आशयाचा काही भाग हा जनतेच्या पोहोचीबाहेर असेल.",
+       "revdelete-text-others": "अतिरिक्त बंधने स्थापिल्या गेली नसतील तर,दुसरे प्रशासक हे अजूनही लपविलेल्या आशयावर पोहोचु शकतील व त्याचे वगळणे पुनर्स्थापन करु शकतील.",
        "revdelete-confirm": "कृपया '''याची खात्री करा''' की तुम्ही जे करीत आहात, त्याचे परिणाम आपण जाणत आहात आणि, ते काम [[{{MediaWiki:Policy-url}}|मीडियाविकीच्या नीती]]नुसार आहे.",
        "revdelete-suppress-text": "लपवण्याचा वापर '''फक्त''' पुढील बाबतीत होतो:\n* उच्च दर्जाची बदनामीकारक माहिती\n* अयोग्य व्यक्तिगत माहिती\n*: ''गृहपत्ते, दूरध्वनी क्रमांक व राष्ट्रीय ओळख क्रमांक वगैरे''",
        "revdelete-legend": "दृश्य बंधने स्थापित करा",
        "mergehistory-empty": "कोणतेही आवर्तन एकत्रित करता येत नाही.",
        "mergehistory-done": "$1 {{PLURAL:$3|चे|ची}} $3 {{PLURAL:$3|आवर्तन|आवर्तने}} [[:$2]] मध्ये यशस्वीरीत्या एकत्रित केली.",
        "mergehistory-fail": "इतिहासाचे एकत्रीकरण कार्य करू शकत नाही आहे, कृपया पान आणि वेळ प्राचलांची पुनर्तपासणी करा.",
+       "mergehistory-fail-toobig": "इतिहास एकत्रिकरण करणे शक्य झाले नाही कारण $1 मर्यादेपेक्षा अधिक {{PLURAL:$1|आवृत्ती|आवृत्त्या}} स्थानांतरीत केल्या जातील.",
        "mergehistory-no-source": "स्रोत पान $1 अस्तित्वात नाही.",
        "mergehistory-no-destination": "लक्ष्य पान $1  अस्तित्वात नाही.",
        "mergehistory-invalid-source": "स्रोत पानाचे शीर्षक वैध असणे आवश्यक आहे.",
        "showhideselectedversions": "निवडलेल्या आवृत्त्या दाखवा / लपवा",
        "editundo": "उलटवा",
        "diff-empty": "(काही फरक नाही)",
-       "diff-multi-sameuser": "({{PLURAL:$1|याच सदस्याची एक माध्यमिक आवृत्ती|$1 याच सदस्याच्या माध्यमिक आवृत्त्या}} दर्श्यविण्यात आलेल्या नाहीत)",
+       "diff-multi-sameuser": "({{PLURAL:$1|याच सदस्याची एक माध्यमिक आवृत्ती|$1 याच सदस्याच्या माध्यमिक आवृत्त्या}} दर्शविण्यात आलेल्या नाहीत)",
+       "diff-multi-otherusers": "({{PLURAL:$2|एका दुसऱ्या सदस्याची/च्या|$2 सदस्यांची/च्या}}{{PLURAL:$1|एक आंतरवर्ती आवृत्ती दर्शविली नाही|$1 आंतरवर्ती आवृत्त्या दर्शविल्या नाहीत}})",
        "diff-multi-manyusers": "{{PLURAL:$2|सदस्याची|$2 सदस्यांच्या}} ({{PLURAL:$1|आवृत्ती|$1 आवृत्त्या}} दाखवल्या नाहीत)",
        "difference-missing-revision": "या लेखाचे/ची  ($1) हे {{PLURAL:$2|संस्करण|$2 संस्करणे}} {{PLURAL:$2|सापडले नाही|सापडली नाहीत}}.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे, शक्यतोवर,असे घडु शकते.याबाबत अधिक तपशील  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी] येथे बघता येईल.",
        "searchresults": "शोध निकाल",
        "searchprofile-articles-tooltip": "$1 मध्ये शोधा",
        "searchprofile-images-tooltip": "संचिकांसाठी शोधा",
        "searchprofile-everything-tooltip": "सर्व पाने शोधा (चर्चापानांसहित)",
-       "searchprofile-advanced-tooltip": "निवडलà¥\87लà¥\8dया à¤¨à¤¾à¤®à¤µà¤¿à¤¶à¥\8dवाà¤\82मधà¥\8dयà¥\87 à¤¶à¥\8bधा:",
+       "searchprofile-advanced-tooltip": "पारà¤\82परित(à¤\95सà¥\8dà¤\9fम) à¤¨à¤¾à¤®à¤µà¤¿à¤¶à¥\8dवाà¤\82मधà¥\8dयà¥\87 à¤¶à¥\8bधा",
        "search-result-size": "$1 ({{PLURAL:$2|१ शब्द|$2 शब्द}})",
        "search-result-category-size": "{{PLURAL:$1|१ सदस्य|$1 सदस्य}} ({{PLURAL:$2|१ उपवर्ग|$2 उपवर्ग}}, {{PLURAL:$3|1 संचिका|$3 संचिका}})",
        "search-redirect": "(पुनर्निर्देशन $1)",
        "search-section": "(विभाग $1)",
+       "search-category": "(वर्ग $1)",
+       "search-file-match": "(संचिका आशयाशी अनुरुपते)",
        "search-suggest": "तुम्हाला हेच म्हणायचे का: $1",
+       "search-rewritten": "$1 साठीचे निकाल दाखवित आहे.त्याऐवजी $2 चा शोध घ्या.",
        "search-interwiki-caption": "सह प्रकल्प",
        "search-interwiki-default": "$1चे निकाल:",
        "search-interwiki-more": "(आणखी)",
        "powersearch-togglelabel": "तपासा:",
        "powersearch-toggleall": "सर्व",
        "powersearch-togglenone": "काहीही नाही",
+       "powersearch-remember": "भविष्यातील शोधांच्या निवडींची आठवण ठेवा",
        "search-external": "बाह्य शोध",
        "searchdisabled": "{{SITENAME}} शोध अनुपलब्ध केला आहे.तो पर्यंत गूगलवरून शोध घ्या.{{SITENAME}}च्या मजकुराची त्यांची सूचिबद्धता शिळी असण्याची शक्यता असू शकते हे लक्षात घ्या.",
        "search-error": "शोध घेतांना घडलेली त्रूटी:$1",
        "prefs-diffs": "फरक",
        "prefs-help-prefershttps": "हा पसंतीक्रम आपल्या पुढील सनोंद प्रवेशानंतर कार्यान्वित होईल.",
        "prefswarning-warning": "आपण आपल्या पसंतीक्रमात केलेला बदल अद्याप जतन झाला नाही.जर आपण \"$1\" न टिचकता, या पानावरुन दुसरीकडे गेलात तर आपला पसंतीक्रम अद्यतन होणार नाही.",
+       "prefs-tabs-navigation-hint": "उपयुक्त सूचना:आपण कळींच्या यादीत, कळींदरम्यानच्या सुचालनास डावी व उजवी बाण-कळ वापरु शकता.",
        "email-address-validity-valid": "विपत्रपत्ता वैध दिसत आहे",
        "email-address-validity-invalid": "वैध विपत्रपत्ता लिहा",
        "userrights": "सदस्य अधिकार व्यवस्थापन",
        "userrights-lookup-user": "सदस्य गटांचे(ग्रूप्स) व्यवस्थापन करा.",
        "userrights-user-editname": "सदस्य नाव टाका:",
        "editusergroup": "सदस्याचे गट संपादित करा",
-       "editinguser": "{{GENDER:$1|सदस्य}}चे सदस्य अधिकारात बदल केला जात आहे <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "या {{GENDER:$1|सदस्या}}चे सदस्य-अधिकारात बदल केला जात आहे<strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "सदस्याचे गट संपादित करा",
        "saveusergroups": "सदस्य गट जतन करा",
-       "userrights-groupsmember": "(चा) सभासद:",
-       "userrights-groupsmember-auto": "à¤\9aा à¤¨à¤¿à¤°à¥\8dविवाद सदस्य:",
+       "userrights-groupsmember": "याचा सभासद:",
+       "userrights-groupsmember-auto": "याà¤\9aा à¤\85वà¥\8dयà¤\95à¥\8dत सदस्य:",
        "userrights-groups-help": "तुम्ही एखाद्या सदस्याचे गट सदस्यत्व बदलू शकता:\n* निवडलेला चौकोन म्हणजे सदस्य त्या गटात आहे.\n* न निवडलेला चौकोन म्हणजे सदस्य त्या गटात नाही.\n* एक * चा अर्थ तुम्ही एकदा समावेश केल्यानंतर तो गट बदलू शकत नाही, किंवा काढल्यानंतर समावेश करू शकत नाही.",
        "userrights-reason": "कारण:",
        "userrights-no-interwiki": "इतर विकींवरचे सदस्य अधिकार बदलण्याची परवानगी तुम्हाला नाही.",
        "right-move": "पानांचे स्थानांतरण करा",
        "right-move-subpages": "पाने उपपानांसकट स्थानांतरीत करा",
        "right-move-rootuserpages": "मूळ सदस्यपाने हलवा",
+       "right-move-categorypages": "वर्ग पाने स्थानांतरील करा",
        "right-movefile": "संचिका हलवा",
        "right-suppressredirect": "एखाद्या पानाचे नवीन नावावर स्थानांतरण करत असताना पुनर्निर्देशन वगळा",
        "right-upload": "संचिका अपभारण करा",
        "right-browsearchive": "वगळलेली पाने शोधा",
        "right-undelete": "एखादे पान पुनर्स्थापित करा",
        "right-suppressrevision": "कोणत्याही सदस्यास विशिष्ट आवृत्त्या दर्शवा,लपवा किंवा प्रगट करा",
+       "right-viewsuppressed": "कोणत्याही सदस्यापासून लपविलेल्या आवृत्त्या पहा",
        "right-suppressionlog": "खासगी नोंदी पहा",
        "right-block": "इतर सदस्यांना संपादन करण्यापासून प्रतिबंधित करा",
        "right-blockemail": "एखाद्या सदस्याला इ-मेल पाठविण्यास प्रतिबंधित करा",
        "right-proxyunbannable": "प्रॉक्सी असताना ब्लॉक्स कडे दुर्लक्ष करा",
        "right-unblockself": "कोण्या-एकास अप्रतिबंधित करा",
        "right-protect": "सुरक्षा पातळी बदलवा व निपात-प्रतिबंधित पानांचे संपादन करा",
-       "right-editprotected": " \"{{int:protect-level-sysop}}\"म्हणून नमुद केलेली सुरक्षित पाने संपादा",
+       "right-editprotected": "\"{{int:protect-level-sysop}}\"म्हणून नमुद केलेली सुरक्षित पाने संपादा",
        "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" म्हणून नमुद केलेली सुरक्षित पाने संपादा",
+       "right-editcontentmodel": "पानाचा आशय नमूना संपादा",
        "right-editinterface": "सदस्य पसंतीक्रम बदला",
        "right-editusercssjs": "इतर सदस्यांच्या CSS व JS संचिका संपादित करा",
        "right-editusercss": "इतर सदस्यांच्या CSS संचिका संपादित करा",
        "right-viewmyprivateinfo": "आपली स्वत:ची वैयक्तिक माहिती बघा (उदा.विपत्रपत्ता, खरे नाव)",
        "right-editmyprivateinfo": "आपली स्वत:ची वैयक्तिक माहिती संपादा (उदा.विपत्रपत्ता, खरे नाव)",
        "right-editmyoptions": "आपल्या स्वत:चा 'पसंतीक्रम' संपादा",
-       "right-rollback": "या आधीच्या सदस्याचे नुकतेच संपादन केलेले एखादे विशिष्ट पानाचे बदल लवकर आधीच्य स्थितीत न्या",
+       "right-rollback": "या आधीच्या सदस्याचे नुकतेच संपादन केलेले एखादे विशिष्ट पानाचे बदल लवकर आधीच्य स्थितीत न्या",
        "right-markbotedits": "निवडलेली संपादने सांगकाम्यांची म्हणून जतन करा",
        "right-noratelimit": "रेट लिमिट्स चा परिणाम होत नाही.",
        "right-import": "इतर विकिंमधून पाने आयात करा",
        "right-override-export-depth": "जोडलेल्या पानांचा पाचव्या पातळीपर्यंत अंतर्भाव करुन पाने निर्यात करा",
        "right-sendemail": "इतर सदस्यांना विपत्रे पाठवा",
        "right-passwordreset": "परवलीचा शब्द पुनर्स्थापित केल्याचे विपत्र पहा.",
+       "right-managechangetags": "डाटाबेस मधून [[Special:Tags|खूणपताका]] तयार करा किंवा  वगळा",
+       "right-applychangetags": "कोणाच्याही बदलास [[Special:Tags|खूणपताका]] जोडा",
+       "right-changetags": "वैयक्तिक आवृत्त्यांना व नोंद प्रवेष्ट्यांना, आहेतुक(arbitrary) [[Special:Tags|खूणपताका]] जोडा अथवा हटवा",
        "newuserlogpage": "नवीन सदस्यांची नोंद",
        "newuserlogpagetext": "ही नवीन सदस्यांची नोंद यादी आहे.",
        "rightslog": "सदस्य आधिकार नोंद",
        "action-viewmywatchlist": "'माझी निरीक्षणसूची' बघा",
        "action-viewmyprivateinfo": "आपली वैयक्तिक माहिती बघा",
        "action-editmyprivateinfo": "आपली वैयक्तिक माहिती संपादा",
+       "action-editcontentmodel": "पानाचा आशय नमूना संपादा",
+       "action-managechangetags": "डाटाबेसमध्ये खूणपतका तयार करा किंवा वगळा",
+       "action-applychangetags": "आपल्या बदलांसोबतच खूणपताका जोडा",
+       "action-changetags": "वैयक्तिक आवृत्त्यांना व नोंद प्रवेष्ट्यांना, आहेतुक(arbitrary) खूणपताका जोडा अथवा हटवा",
        "nchanges": "$1 {{PLURAL:$1|बदल}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|मागील भेटीनंतर}}",
        "enhancedrc-history": "इतिहास",
        "recentchanges": "अलीकडील बदल",
-       "recentchanges-legend": "à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²à¤¾à¤\8fवजी पर्याय",
+       "recentchanges-legend": "à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²à¤¾à¤\90वजी पर्याय",
        "recentchanges-summary": "या विकिवर झालेल्या सर्वात अलीकडील बदलांचा या पानावर मागोवा घ्या.",
        "recentchanges-noresult": "नमुद कालावधीतील कोणतेही बदला या निकषांशी जुळत नाहीत.",
        "recentchanges-feed-description": "या रसदीत,या विकिवर झालेल्या सर्वात अलीकडील बदलांचा मागोवा घ्या.",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नविन पानांची यादी]] हेही पाहा)",
        "recentchanges-legend-plusminus": "(''±१२३'')",
        "rcnotefrom": "खाली {{PLURAL:$5|हा बदल आहे|हे बदल आहेत}} <strong>$3, $4</strong>पासून ते(<strong>$1</strong>पर्यंतचे  बदल दाखविले आहेत).",
-       "rclistfrom": "$2,$3  नंतर केले गेलेले बदल दाखवा.",
+       "rclistfrom": "$2,$3 पासून सुरुवात करुन, नविन केल्या गेलेले बदल दाखवा.",
        "rcshowhideminor": "छोटे बदल $1",
        "rcshowhideminor-show": "दाखवा",
        "rcshowhideminor-hide": "लपवा",
        "rcshowhidemine": "माझे बदल $1",
        "rcshowhidemine-show": "दाखवा",
        "rcshowhidemine-hide": "लपवा",
+       "rcshowhidecategorization": "$1 पान वर्गीकरण",
        "rcshowhidecategorization-show": "दाखवा",
        "rcshowhidecategorization-hide": "लपवा",
        "rclinks": "मागील $2 दिवसांतील $1 बदल पहा.<br />$3",
        "diff": "फरक",
-       "hist": "इति",
+       "hist": "इति.",
        "hide": "लपवा",
        "show": "दाखवा",
-       "minoreditletter": "छो",
-       "newpageletter": "न",
-       "boteditletter": "सां",
+       "minoreditletter": "छो.ब.",
+       "newpageletter": "न.पा.",
+       "boteditletter": "सां.",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|सदस्याने|सदस्यांनी}} पहारा दिलेला आहे]",
        "rc_categories": "वर्गांपुरते मर्यादित ठेवा (\"|\"ने वेगळे करा):",
        "rc_categories_any": "निवडल्यापैकी कोणतेही",
        "recentchangeslinked-feed": "या पृष्ठासंबंधीचे बदल",
        "recentchangeslinked-toolbox": "या पृष्ठासंबंधीचे बदल",
        "recentchangeslinked-title": "\"$1\" च्या संदर्भातील बदल",
-       "recentchangeslinked-summary": "हे पृष्ठ एखाद्या विशिष्ट पानाशी (किंवा एखाद्या विशिष्ट वर्गात असणाऱ्या पानांशी) जोडलेल्या पानांवरील बदल दर्शवते.\nतुमच्या [[Special:Watchlist|नित्य पहाण्याच्या सूचीमधील]] ही पाने '''ठळक''' दिसतील.",
+       "recentchangeslinked-summary": "हे पृष्ठ एखाद्या विशिष्ट पानाशी, (किंवा एखाद्या विशिष्ट वर्गात असणाऱ्या पानांशी), जोडलेल्या पानांवरील बदल दर्शविते.\nआपल्या [[Special:Watchlist|निरीक्षणसूचीत]] ही पाने <strong>ठळक</strong> दिसतील.",
        "recentchangeslinked-page": "पृष्ठ नाव:",
        "recentchangeslinked-to": "याऐवजी दिलेल्या पानाला जोडलेल्या पानांवरील बदल दाखवा",
        "recentchanges-page-added-to-category": "[[:$1]] वर्गास जोडले",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] व {{PLURAL:$2|एक पान वर्गास जोडले|$2 पाने वर्गास जोडलीत}}",
+       "recentchanges-page-removed-from-category": "[[:$1]] ला वर्गातून हटविले",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] व {{PLURAL:$2|एक पान वर्गातून हटविले|$2 पाने वर्गातून हटविलीत}}",
+       "autochange-username": "मिडियाविकि आपोआप बदल",
        "upload": "संचिका चढवा",
        "uploadbtn": "संचिकेचे अपभारण करा",
        "reuploaddesc": "अपभारण रद्द करुन ,अपभारणाच्या अर्जाकडे परत जा",
        "fileexists-shared-forbidden": "हे नाव असलेली एक संचिका शेअर्ड संचिका कोशात आधी पासून आहे; कृपया परत मागे जा आणि नवीन, वेगळ्या नावाने ही संचिका पुन्हा चढवा. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "ही संचिका खालील {{PLURAL:$1|संचिकेची|संचिकांची}} प्रत आहे:",
        "file-deleted-duplicate": "या संचिकेसारखीच् संचिका ([[:$1]]) या आधी वगळण्यात आली आहे.\nहि संचिका पुनः चढवण्यापूर्वी आपण त्या संचिकेची वगळण्याची नोंद तपासावी.",
+       "file-deleted-duplicate-notitle": "या संचिकेसम असलेली दुसरी संचिका मागे वगळण्यात आलेली आहे व त्या शीर्षकाचे दमन केले आहे.आपण,त्या संचिकेच्या पुनर्-अपभारणापूर्वी, ज्या कोणास दमन केलेली संचिका बघण्याचे अधिकार असतील त्यास, या स्थितीच्या पुनर्विलोकनाची विनंती करा.",
        "uploadwarning": "चढवताना सूचना",
        "uploadwarning-text": "कृपया खालील संचिका वर्णन संपादित करून पुनर्प्रयत्न करा.",
        "savefile": "संचिका जतन करा",
        "uploaddisabledtext": "{{SITENAME}} वर संचिका चढविण्यास बंदी घालण्यात आलेली आहे.",
        "php-uploaddisabledtext": "PHP मध्ये संचिका चढवणे प्रतिबंधित केले आहे.\nकृपया file_uploads मांडणी (setting) तपासावी.",
        "uploadscripted": "या संचिकेत HTML किंवा स्क्रिप्ट कोडचा आंतर्भाव आहे, त्याचा एखाद्या विचरकाकडून विचित्र अर्थ लावला जाऊ शकतो.",
+       "upload-scripted-pi-callback": "ज्या संचिकेत XML-stylesheet च्या प्रक्रियेचे अनुदेश असतील अशी संचिकेचे अपभारण करु शकत नाही.",
+       "uploaded-script-svg": "अपभारीलेल्या SVG संचिकेत,\"$1\" हे लेखनीय अवयव आढळले.",
+       "uploaded-hostile-svg": "अपभारीलेल्या SVG संचिकेत,असुरक्षित CSS स्टाईल अवयव आढळले.",
+       "uploadscriptednamespace": "या SVG संचिकेत \"$1\" हे अवैध नामविश्व आहे.",
        "uploadinvalidxml": "अपभारीत संचिकेतील XML पार्स करता आले नाही.",
        "uploadvirus": "ह्या संचिकेत व्हायरस आहे. अधिक माहिती: $1",
        "uploadjava": "ही फाईल झीप ह्या प्रकारातील आहे ज्यामधे जावा .क्लास फाईल. आहे,जावा फाईलचे अपभारणास परवानगी नाही कारण त्याने सुरक्षा-बंधने टाळल्या जाऊ शकतात.",
        "http-invalid-scheme": "URL सोबत \"$1\" पद्धत चालत नाही",
        "http-request-error": "एचटीटीपी मागणी अज्ञात कारणामुळे अयशस्वी.",
        "http-read-error": "एचटीटीपी वाचन त्रुटी.",
-       "http-timed-out": "विनंती वेळ सपला आहे",
+       "http-timed-out": "HTTP विनंती मुदतबाह्य झाली.",
        "http-curl-error": "आंतरजालपत्ता पकडताना चूक: $1",
        "http-bad-status": "एचटीटीपी मागणीदरम्यान एक चूक उद्भवली: $1 $2",
        "upload-curl-error6": "आंतरजाल पत्त्यापाशी पोहोचले नाही",
        "listfiles-latestversion-no": "नाही",
        "file-anchor-link": "संचिका",
        "filehist": "संचिकेचा इतिहास",
-       "filehist-help": "सà¤\82à¤\9aिà¤\95à¥\87à¤\9aà¥\80 à¤¤à¥\8dयावà¥\87ळà¤\9aà¥\80 à¤\86वà¥\83तà¥\8dतà¥\80 à¤¬à¤\98णà¥\8dयासाठà¥\80 à¤¤à¥\8dया à¤¦à¤¿à¤¨à¤¾à¤\82à¤\95/वà¥\87ळà¥\87वर à¤µà¤° à¤\9fिà¤\9aà¤\95à¥\80 à¤¦à¥\8dया.",
+       "filehist-help": "संचिकेची त्यावेळची आवृत्ती बघण्यासाठी त्या दिनांक/वेळेवर टिचकी द्या.",
        "filehist-deleteall": "सर्व वगळा",
        "filehist-deleteone": "वगळा",
        "filehist-revert": "उलटवा",
        "filehist-filesize": "संचिकेचा आकार (बाईट्स)",
        "filehist-comment": "प्रतिक्रीया",
        "imagelinks": "संचिका वापर",
-       "linkstoimage": "खालील {{PLURAL:$1|पान चित्राशी जोडले आहे|$1 पाने चित्राशी जोडली आहेत}}:",
+       "linkstoimage": "à¤\96ालà¥\80ल {{PLURAL:$1|पान à¤\9aितà¥\8dराशà¥\80 à¤\9cà¥\8bडलà¥\87 à¤\86हà¥\87|$1 à¤ªà¤¾à¤¨à¥\87 à¤\9aितà¥\8dराà¤\82शà¥\80 à¤\9cà¥\8bडलà¥\80 à¤\86हà¥\87त}}:",
        "linkstoimage-more": "या संचिके ला $1 {{PLURAL:$1|पान जोडले|पाने जोडली}} आहेत.\nखालील यादी या संचिके ला जोडलेल्या {{PLURAL:$1|पहिल्या पानाचा दुवा |पहिल्या $1 पानांचे दुवे }}दर्शविते.\n[[Special:WhatLinksHere/$2|संपुर्ण यादी]] उपलब्ध आहे.",
        "nolinkstoimage": "या चित्राशी जोडलेली पृष्ठे नाही आहेत.",
        "morelinkstoimage": "या संचिकेचे [[Special:WhatLinksHere/$1|अधिक दुवे]] पहा.",
        "withoutinterwiki-legend": "उपपद",
        "withoutinterwiki-submit": "दाखवा",
        "fewestrevisions": "सगळ्यात कमी बदल असलेले लेख",
-       "nbytes": "$1 {{PLURAL:$1|बाइट}}",
+       "nbytes": "$1 {{PLURAL:$1|बाइट|बाइटस्}}",
        "ncategories": "$1 {{PLURAL:$1|वर्ग}}",
        "ninterwikis": "$1 {{PLURAL:$1|आंतरविकि}}",
        "nlinks": "$1 {{PLURAL:$1|दुवा|दुवे}}",
        "specialloguserlabel": "कार्यकर्ता:",
        "speciallogtitlelabel": "लक्ष (शिर्षक किंवा {{ns:user}}:सदस्याचे सदस्यनाव):",
        "log": "नोंदी",
-       "all-logs-page": "सर्व नोंदी",
+       "all-logs-page": "सरà¥\8dव à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95 à¤¨à¥\8bà¤\82दà¥\80",
        "alllogstext": "{{SITENAME}}च्या सर्व नोंदीचे एकत्र दर्शन.नोंद प्रकार, सदस्यनाव किंवा बाधित पान निवडून तुम्ही तुमचे दृश्यपान मर्यादित करू शकता.",
        "logempty": "नोंदीत अशी बाब नाही.",
        "log-title-wildcard": "या मजकुरापासून सुरू होणारी शीर्षके शोधा.",
        "listgrouprights-namespaceprotection-header": "नामविश्व प्रतिबंध",
        "listgrouprights-namespaceprotection-namespace": "नामविश्व",
        "trackingcategories": "वर्ग शोधत आहोत",
-       "trackingcategories-summary": "या à¤ªà¤¾à¤¨à¤¾à¤¤ à¤°à¥\87à¤\96ापथनातà¥\80ल à¤¤à¥\87 à¤µà¤°à¥\8dà¤\97 à¤\86हà¥\87त, à¤\9cà¥\87, à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¤\82à¤\9aà¥\87तनादà¥\8dवारà¥\87 à¤¸à¥\8dवयà¤\82à¤\9aलितरितà¥\8dया à¤µà¤¸à¤µà¤¿à¤£à¥\8dयात (तयार à¤\95रणà¥\8dयात) à¤\86लà¥\87 à¤\86हà¥\87त. à¤¤à¥\8dयाà¤\82à¤\9aà¥\80 à¤¨à¤¾à¤µà¥\87{ns:8}} नामविश्वातील संबंधित प्रणाली संदेशात फेरफार करुन, बदलविता येतात.",
+       "trackingcategories-summary": "या à¤ªà¤¾à¤¨à¤¾à¤¤ à¤¤à¥\87 à¤°à¥\87à¤\96ापथनातà¥\80ल à¤µà¤°à¥\8dà¤\97(tracking categories) à¤\86हà¥\87त, à¤\9cà¥\87, à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¤\82à¤\9aà¥\87तनादà¥\8dवारà¥\87 à¤¸à¥\8dवयà¤\82à¤\9aलितरितà¥\8dया à¤µà¤¸à¤µà¤¿à¤£à¥\8dयात (तयार à¤\95रणà¥\8dयात) à¤\86लà¥\87 à¤\86हà¥\87त. à¤¤à¥\8dयाà¤\82à¤\9aà¥\80 à¤¨à¤¾à¤µà¥\87, {{ns:8}} नामविश्वातील संबंधित प्रणाली संदेशात फेरफार करुन, बदलविता येतात.",
        "trackingcategories-name": "संदेश नाम",
        "trackingcategories-nodesc": "वर्णन उपलब्ध नाही.",
        "trackingcategories-disabled": "वर्ग अक्षम केल्या गेला आहे",
        "emailuser-title-notarget": "विपत्र (ईमेल) उपयोगकर्ता",
        "emailpagetext": "या {{GENDER:$1|सदस्याला}}विपत्र पाठविण्यास खालील आवेदनाचा आपण वापर करु शकता.\n\nआपल्या [[Special:Preferences|पसंतीक्रमात]] नमूद केलेला विपत्रपत्ता, \"च्या कडून\" पत्त्यात येईल म्हणजे  प्राप्तकर्ता आपल्याला थेट उत्तर देऊ शकेल.",
        "defemailsubject": "{{SITENAME}} \"$1\" सदस्याकडून विपत्र",
-       "usermaildisabled": "सदसà¥\8dय à¤µà¤¿à¤ªà¤¤à¥\8dर à¤¨à¤¿à¤·à¥\8dà¤\95à¥\8dरिय आहे",
+       "usermaildisabled": "सदसà¥\8dय à¤µà¤¿à¤ªà¤¤à¥\8dर à¤\85à¤\95à¥\8dषम आहे",
        "usermaildisabledtext": "या विकिवर तुम्हाला इतर सदस्यांना विपत्रे पाठवता येत नाहीत",
        "noemailtitle": "विपत्र पत्ता नाही",
        "noemailtext": "या सदस्याने वैध विपत्र पत्ता नमूद केलेला नाही.",
        "emailccsubject": "$1 ला पाठविलेल्या आपल्या विपत्राची प्रत: $2",
        "emailsent": "विपत्र पाठवले",
        "emailsenttext": "तुमचा विपत्र संदेश पाठवण्यात आला आहे.",
-       "emailuserfooter": "$1 ने $2 ला हे विपत्र, {{SITENAME}} वरील, \"सदस्यास विपत्र पाठवा\" ही प्रक्रिया वापरुन पाठवले आहे.",
+       "emailuserfooter": "हे विपत्र,{{SITENAME}} वरील, \"{{int:emailuser}}\" ही प्रक्रिया वापरुन $1 ने {{GENDER:$2|$2}} ला {{GENDER:$1|पाठविले}} आहे.",
        "usermessage-summary": "प्रणाली संदेश देत आहे.",
        "usermessage-editor": "प्रणाली संदेशवाहक",
        "watchlist": "निरीक्षणसूची",
        "mywatchlist": "माझी निरीक्षणसूची",
        "watchlistfor2": "$1 $2 साठी",
        "nowatchlist": "तुमची पहाऱ्याची सूची रिकामी आहे.",
-       "watchlistanontext": "तुमच्या पहाऱ्याच्या सूचीमधील बाबी पाहण्याकरता किंवा संपादित करण्याकरता, कृपया $1.",
+       "watchlistanontext": "तुमच्या पहाऱ्याच्या सूचीमधील बाबी पाहण्याकरता किंवा संपादित करण्याकरता, कृपया सनोंद प्रवेश करा.",
        "watchnologin": "सनोंद-प्रवेशित नाही",
        "addwatch": "पहाऱ्याच्या सूचीमध्ये टाका",
-       "addedwatchtext": "\"[[:$1]]\"  à¤¹à¥\87 à¤ªà¤¾à¤¨ à¤¤à¥\81मà¤\9aà¥\8dया  [[Special:Watchlist|'माà¤\9dà¥\80 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80']]मधà¥\8dयà¥\87 à¤\9fाà¤\95लà¥\87 à¤\86हà¥\87. à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤µà¤°à¥\80ल à¤¤à¤¸à¥\87à¤\9a à¤¤à¥\8dयाà¤\9aà¥\8dया à¤\9aरà¥\8dà¤\9aा à¤ªà¤¾à¤¨à¤¾à¤µà¤°à¥\80ल à¤­à¤µà¤¿à¤·à¥\8dयातà¥\80ल à¤¬à¤¦à¤² à¤¤à¥\87थà¥\87 à¤¦à¤¾à¤\96वलà¥\87 à¤\9cातà¥\80ल",
+       "addedwatchtext": "\"[[:$1]]\"  à¤¹à¥\87 à¤ªà¤¾à¤¨ à¤µ à¤¤à¥\8dयाà¤\9aà¥\87 à¤\9aरà¥\8dà¤\9aापान à¤¤à¥\81मà¤\9aà¥\8dया  [[Special:Watchlist|'माà¤\9dà¥\80 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80']] à¤®à¤§à¥\8dयà¥\87 à¤\9fाà¤\95लà¥\87 à¤\86हà¥\87.",
        "addedwatchtext-short": "\"$1\" हे पान आपल्या निरीक्षणसूचीत जोडण्यात आले आहे.",
        "removewatch": "पहाऱ्याच्या सूचीतून वगळा",
        "removedwatchtext": "\"[[:$1]]\" हे पान व त्याची चर्चापाने तुमच्या [[Special:Watchlist|निरीक्षण सूचीतून]] हटविण्यात आले आहे.",
        "watchlist-details": "पहाऱ्याच्या सूचीमधील {{PLURAL:$1|$1 पान|$1 पाने}}, यात चर्चा पाने  वेगळी मोजलेली नाहीत.",
        "wlheader-enotif": "विपत्र अधिसूचना सुविधा शक्य केली.",
        "wlheader-showupdated": "ती पाने, जी आपण दिलेल्या शेवटच्या भेटीनंतर बदललेली आहेत, '''ठळक''' दाखवली आहेत.",
-       "wlnote": "à¤\96ालà¥\80 $3, $4 à¤ªà¤°à¥\8dयà¤\82तà¤\9aà¥\87 à¤\97à¥\87लà¥\8dया {{PLURAL:$2| '''१''' à¤¤à¤¾à¤¸à¤¾à¤¤à¥\80ल|'''$2''' à¤¤à¤¾à¤¸à¤¾à¤¤à¥\80ल}} {{PLURAL:$1|शà¥\87वà¤\9fà¤\9aा à¤¬à¤¦à¤² à¤¦à¤¿à¤²à¤¾ à¤\86हà¥\87|शà¥\87वà¤\9fाà¤\9aà¥\87 '''$1'''बदल दिले आहेत}}.",
-       "wlshowlast": "मागील $1 तास $2 दिवस  पहा",
+       "wlnote": "à¤\96ालà¥\80 $3, $4 à¤\9aà¥\87 à¤\97à¥\87लà¥\8dया {{PLURAL:$2|तासातà¥\80ल|<strong>$2</strong> à¤¤à¤¾à¤¸à¤¾à¤\82तà¥\80ल}} {{PLURAL:$1|शà¥\87वà¤\9fà¤\9aा à¤¬à¤¦à¤² à¤¦à¤¿à¤²à¤¾ à¤\86हà¥\87|शà¥\87वà¤\9fाà¤\9aà¥\87<strong>$1</strong>बदल दिले आहेत}}.",
+       "wlshowlast": "मागील $1 तास $2 दिवस दाखवा",
        "watchlistall2": "सर्व",
+       "wlshowtime": "शेवटचे दाखवा:",
+       "wlshowhideminor": "छोटी संपादने",
+       "wlshowhidebots": "सांगकामे",
+       "wlshowhideliu": "नोंदणीकृत सदस्य",
+       "wlshowhideanons": "अनामिक सदस्य",
+       "wlshowhidepatr": "पहारा केलेली संपादने",
+       "wlshowhidemine": "माझी संपादने",
        "watchlist-options": "पहाऱ्याच्या सूचीचे पर्याय",
        "watching": "पहारा देत आहे...",
        "unwatching": "पहारा काढत आहे...",
        "enotif_lastvisited": "तुमच्या शेवटच्या भेटीनंतरचे बदल बघण्यासाठी $1 पहा.",
        "enotif_lastdiff": "हा बदल पहाण्याकरिता $1 पहा.",
        "enotif_anon_editor": "अनामिक सदस्य $1",
-       "enotif_body": "पà¥\8dरिय $WATCHINGUSERNAME,\n\n{{SITENAME}}या à¤²à¥\87à¤\96नावाà¤\9aà¥\87 $PAGETITLE (या à¤®à¤¥à¤³à¥\8dयाà¤\9aà¥\87) à¤ªà¤¾à¤¨ $PAGEEDITOR à¤¨à¥\87 $PAGEEDITDATE ( à¤¯à¤¾ à¤¤à¤¾à¤°à¤\96à¥\87स) $CHANGEDORCREATED à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87 à¤\95िà¤\82वा à¤¬à¤¦à¤²à¤²à¥\87 à¤\86हà¥\87. à¤¸à¤§à¥\8dयाà¤\9aà¥\80 à¤\86वà¥\83तà¥\8dतà¥\80 à¤ªà¤¾à¤¹à¤£à¥\8dयासाठà¥\80 à¤\96ालà¥\80ल à¤¦à¥\81वà¥\8dयावर à¤\9fिà¤\9aà¤\95à¥\80 à¤®à¤¾à¤°à¤¾.\n$PAGETITLE_URL\n\n$NEWPAGE\n\nसà¤\82पादà¤\95ाà¤\9aा à¤\86ढावा : $PAGESUMMARY $PAGEMINOREDIT\n\nया à¤¸à¤\82पादà¤\95ास à¤¸à¤\82परà¥\8dà¤\95 à¤\95रा :\nविपतà¥\8dर: $PAGEEDITOR_EMAIL\nविà¤\95ि: $PAGEEDITOR_WIKI\n\nतà¥\81मà¥\8dहà¥\80 à¤ªà¤¾à¤¨à¤¾à¤¸ à¤­à¥\87à¤\9f à¤¦à¥\87त à¤¨à¤¾à¤¹à¥\80 à¤¤à¥\8bपरà¥\8dयà¤\82त,या à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤ªà¥\81ढà¥\87 à¤¹à¥\8bणाऱà¥\8dया à¤\95à¥\8bणतà¥\8dयाहà¥\80 à¤\95à¥\8dरियाà¤\82à¤\9aà¥\80 à¤\87तर à¤\95à¥\8bणतà¥\80हà¥\80 à¤µà¥\87à¤\97ळà¥\80 सूचना तुम्हाला देण्यात येणार नाही. तुमच्या निरीक्षणसूचीमध्ये असलेल्या पानांच्या सूचना-पताकांचे तुम्ही पुर्नयोजन करु शकता.\n\nतुमची मैत्रीपूर्ण {{SITENAME}} सूचना प्रणाली\n\n--\n\nतुमच्या निरीक्षणसूचीमध्ये पानांची मांडणावळ (कोंदण)तुम्ही बदलू शकता, त्यासाठी {{canonicalurl:{{#special:EditWatchlist}}}} या पानावर जा.\n\nहे पान तुमच्या निरीक्षणसूचीमधून काढून टाकण्यासाठी खालील दुव्यावर टिचकी मारा.\n$UNWATCHURL\n\nपुढील साहाय्य आणि प्रतिक्रिया:\n$HELPPAGE",
+       "enotif_body": "पà¥\8dरिय $WATCHINGUSERNAME,\n\n{{SITENAME}}या à¤²à¥\87à¤\96नावाà¤\9aà¥\87 $PAGETITLE (या à¤®à¤¥à¤³à¥\8dयाà¤\9aà¥\87) à¤ªà¤¾à¤¨ $PAGEEDITOR à¤¨à¥\87 $PAGEEDITDATE ( à¤¯à¤¾ à¤¤à¤¾à¤°à¤\96à¥\87स) $CHANGEDORCREATED à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87 à¤\95िà¤\82वा à¤¬à¤¦à¤²à¤²à¥\87 à¤\86हà¥\87. à¤¸à¤§à¥\8dयाà¤\9aà¥\80 à¤\86वà¥\83तà¥\8dतà¥\80 à¤ªà¤¾à¤¹à¤£à¥\8dयासाठà¥\80 à¤\96ालà¥\80ल à¤¦à¥\81वà¥\8dयावर à¤\9fिà¤\9aà¤\95à¥\80 à¤®à¤¾à¤°à¤¾.\n$PAGETITLE_URL\n\n$NEWPAGE\n\nसà¤\82पादà¤\95ाà¤\9aा à¤\86ढावा : $PAGESUMMARY $PAGEMINOREDIT\n\nया à¤¸à¤\82पादà¤\95ास à¤¸à¤\82परà¥\8dà¤\95 à¤\95रा :\nविपतà¥\8dर: $PAGEEDITOR_EMAIL\nविà¤\95ि: $PAGEEDITOR_WIKI\n\nतà¥\81मà¥\8dहà¥\80 à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शà¥\81न à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤¸ à¤­à¥\87à¤\9f à¤¦à¥\87त à¤¨à¤¾à¤¹à¥\80 à¤¤à¥\8bपरà¥\8dयà¤\82त,या à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤ªà¥\81ढà¥\87 à¤¹à¥\8bणाऱà¥\8dया à¤\95à¥\8bणतà¥\8dयाहà¥\80 à¤\95à¥\8dरियाà¤\82à¤\9aà¥\80 à¤\87तर à¤\95à¥\8bणतà¥\80हà¥\80 à¤µà¥\87à¤\97ळà¥\80 à¤\85धिसूचना तुम्हाला देण्यात येणार नाही. तुमच्या निरीक्षणसूचीमध्ये असलेल्या पानांच्या सूचना-पताकांचे तुम्ही पुर्नयोजन करु शकता.\n\nतुमची मैत्रीपूर्ण {{SITENAME}} सूचना प्रणाली\n\n--\n\nतुमच्या निरीक्षणसूचीमध्ये पानांची मांडणावळ (कोंदण)तुम्ही बदलू शकता, त्यासाठी {{canonicalurl:{{#special:EditWatchlist}}}} या पानावर जा.\n\nहे पान तुमच्या निरीक्षणसूचीमधून काढून टाकण्यासाठी खालील दुव्यावर टिचकी मारा.\n$UNWATCHURL\n\nपुढील साहाय्य आणि प्रतिक्रिया:\n$HELPPAGE",
        "created": "तयार केले",
        "changed": "बदलले",
        "deletepage": "पान वगळा",
        "delete-edit-reasonlist": "वगळण्याची कारणे संपादित करा",
        "delete-toobig": "या पानाला, $1 {{PLURAL:$1|आवृत्ती|आवृत्त्यां}}मुळे तयार झालेला खूप मोठा संपादन इतिहास आहे. {{SITENAME}} वर आकस्मिक होणारी उलथापालथ वाचविण्यासाठी, अश्या पानांचे वगळणे प्रतिबंधित केल्या गेले आहे.",
        "delete-warning-toobig": "या पानाला, $1 {{PLURAL:$1|आवृत्ती|आवृत्त्यां}}मुळे तयार झालेला खूप मोठा संपादन इतिहास आहे.त्याचे वगळण्याने {{SITENAME}} वर डाटाबेसच्या क्रियांची उलथापालथ होऊ शकते; सावधगिरीने पुढे जा.",
+       "deleteprotected": "आपण हे पान वगळू शकत नाही कारण ते सुरक्षित केले आहे.",
        "deleting-backlinks-warning": "'''ईशारा:'''  आपण वगळत असणाऱ्या पानास, [[Special:WhatLinksHere/{{FULLPAGENAME}}|इतर पाने]] जोडलेली किंवा आंतरविन्यासित आहेत.",
        "rollback": "बदल वेगात माघारी न्या",
        "rollbacklink": "द्रुतमाघार",
        "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|Talk]] [[Special:Contributions/$2|{{int:contribslink}}]])चे शेवटाचे [[:$1]]वे संपादन माघारी परतवता येत नाही; पान आधीच कुणी माघारी परतवले आहे किंवा संपादित केले आहे.\n\nशेवटचे संपादन [[User:$3|$3]] ([[User talk:$3|Talk]] [[Special:Contributions/$3|{{int:contribslink}}]])-चे होते.",
        "editcomment": "संपादन सारांश \"''$1''\" होता.",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|चर्चा]]) यांनी केलेले बदल [[User:$1|$1]] यांच्या आवृत्तीकडे पूर्वपदास नेले.",
-       "revertpage-nouser": "लपविलेल्या सदस्याची संपादने उलटवून मागील आवृत्तीप्रमाणे पूर्ववत केले{{GENDER:$1|[[सदस्य:$1|$1]]}}",
+       "revertpage-nouser": "लपविलेल्या सदस्याची संपादने उलटवून {{GENDER:$1|[[User:$1|$1]]}}च्या मागील आवृत्तीप्रमाणे पूर्ववत केले",
        "rollback-success": "$1 ने उलटवलेली संपादने;$2 च्या आवृत्तीस परत नेली.",
        "sessionfailure-title": "सत्र त्रुटी",
        "sessionfailure": "तुमच्या दाखल सत्रात काही समस्या दिसते;सत्र अपहारणापासून \nवाचविण्याचे दृष्टीने ही कृती रद्द केल्या गेली आहे.कृपया आपल्या विचरकाच्या \"back\" कळीवर टिचकी मारा आणि तुम्ही ज्या पानावरून आला ते पुन्हा चढवा,आणि परत प्रयत्न करा.",
        "changecontentmodel-title-label": "लेखपान शीर्ष",
        "changecontentmodel-reason-label": "कारण:",
+       "logentry-contentmodel-change-revertlink": "उलटवा",
+       "logentry-contentmodel-change-revert": "उलटवा",
        "protectlogpage": "सुरक्षा नोंदी",
        "protectlogtext": "पानांना लावलेल्या ताळ्यांची आणि ताळे उघडण्याबद्दलच्या पानाची खाली सूची दिली आहे.सध्याच्या सुरक्षित पानांबद्दलच्या माहितीकरिता [[Special:ProtectedPages|सुरक्षीत पानांची सूची]] पहा.",
        "protectedarticle": "\"[[$1]]\" सुरक्षित केला",
        "protect-locked-blocked": "तुम्ही प्रतिबंधित असताना सुरक्षा पातळी बदलू शकत नाही.येथे <strong>$1</strong> पानाकरिता सध्याची मांडणावळ आहे:",
        "protect-locked-dblock": "विदागारास ताळे लागलेले असताना सुरक्षा पातळी बदलता येत नाही.येथे <strong>$1</strong> पानाकरिता सध्याची मांडणावळ आहे:",
        "protect-locked-access": "तुम्हाला या पानाची सुरक्षा पातळी बदलण्याचे अधिकार नाहीत.\n<strong>$1</strong> या पानाची सुरक्षा पातळी पुढीलप्रमाणे:",
-       "protect-cascadeon": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¤§à¥\8dया à¤¸à¥\81रà¤\95à¥\8dषित à¤\86हà¥\87 à¤\95ारण à¤¤à¥\87 {{PLURAL:$1|या à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\8dया|या à¤ªà¤¾à¤¨à¤¾à¤\82à¤\9aà¥\8dया}} à¤¸à¥\81रà¤\95à¥\8dषा à¤¶à¤¿à¤¡à¥\80वर à¤\86हà¥\87. à¤¤à¥\81मà¥\8dहà¥\80 à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\80 à¤¸à¥\81रà¤\95à¥\8dषा à¤ªà¤¾à¤¤à¤³à¥\80 à¤¬à¤¦à¤²à¥\82 à¤¶à¤\95ता, à¤ªà¤£ à¤¤à¥\8dयानà¥\87 à¤¸à¥\81रà¤\95à¥\8dषाशिडà¥\80 à¤®à¤§à¥\8dयà¥\87 à¤¬à¤¦à¤² à¤¹à¥\8bणार à¤¨à¤¾à¤¹à¥\80त.",
+       "protect-cascadeon": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\8dया à¤\97à¥\87लà¥\87 à¤\86हà¥\87, à¤\95ारण à¤¤à¥\87 à¤\96ालà¥\80ल {{PLURAL:$1|पानात|पानाà¤\82मधà¥\8dयà¥\87}} à¤\86à¤\82तरविनà¥\8dयासित à¤\95à¥\87लà¥\87लà¥\87 à¤\86हà¥\87,{{PLURAL:$1|à¤\9cà¥\87 à¤ªà¤¾à¤¨|à¤\9cà¥\80 à¤ªà¤¾à¤¨à¥\87 }} à¤¨à¤¿à¤ªà¤¤à¤¨ à¤ªà¤°à¥\8dयाय à¤¸à¥\81रà¥\81 à¤\95à¥\87लà¥\8dयामà¥\81ळà¥\87 à¤¸à¥\81रà¤\95à¥\8dषित à¤\86हà¥\87त.या à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\80 à¤¸à¥\81रà¤\95à¥\8dषापातळà¥\80 à¤¬à¤¦à¤²à¤£à¥\8dयानà¥\87 à¤¤à¥\8dयाà¤\9aà¥\80 à¤¨à¤¿à¤ªà¤¤à¤¨ à¤¸à¥\81रà¤\95à¥\8dषा à¤¬à¤¦à¤²à¤£à¤¾à¤° à¤¨à¤¾à¤¹à¥\80.",
        "protect-default": "सर्व सदस्यांना परवानगी द्या",
        "protect-fallback": "फक्त \"$1\" परवानगी असणाऱ्यांनाच परवानगी द्या",
        "protect-level-autoconfirmed": "फक्त स्वयंशाबीत (ऑटोकन्फर्म) सदस्यांनाच परवानगी आहे",
        "protect-othertime": "इतर वेळ:",
        "protect-othertime-op": "इतर वेळ",
        "protect-existing-expiry": "शेवट दिनांक: $3, $2",
+       "protect-existing-expiry-infinity": "सध्याच्या वेळेची मुदत:अनंत",
        "protect-otherreason": "इतर / अतिरिक्त कारण:",
        "protect-otherreason-op": "दुसरे कारण",
        "protect-dropdown": "* सुरक्षित करण्याची सामान्य कारणे\n** अती उपद्रव\n** अती उत्पात\n** अनुत्पादक संपादन युद्ध\n** अत्यधिक वाचकभेटींचे पान",
        "contributions-title": "$1 साठी सदस्य-योगदान",
        "mycontris": "योगदान",
        "contribsub2": "{{GENDER:$3|$1}} ($2) साठी",
+       "contributions-userdoesnotexist": "सदस्यखाते \"$1\"  हे नोंदलेले नाही.",
        "nocontribs": "या मानदंडाशी जुळणारे बदल सापडले नाहीत.",
        "uctop": "(सद्य)",
        "month": "या महिन्यापासून (आणि पूर्वीचे):",
        "sp-contributions-search": "योगदान शोधयंत्र",
        "sp-contributions-username": "आंतरजाल अंकपत्ता किंवा सदस्यनाम:",
        "sp-contributions-toponly": "केवळ नवीनतम आवर्तने असलेलीच संपादने दाखवा",
-       "sp-contributions-newonly": "à¤\95à¥\87वळ à¤ªà¤¾à¤¨ à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87लà¥\80 à¤¸à¤\82पादनà¥\87à¤\9a दाखवा",
+       "sp-contributions-newonly": "à¤\9cà¥\8dयानà¥\87 à¤¨à¤µà¤¿à¤¨ à¤ªà¤¾à¤¨ à¤¤à¤¯à¤¾à¤° à¤\9dालà¥\87, à¤\95à¥\87वळ à¤\85शà¥\80à¤\9a à¤¸à¤\82पादनà¥\87 दाखवा",
        "sp-contributions-submit": "शोध",
        "whatlinkshere": "येथे काय जोडले आहे",
        "whatlinkshere-title": "\"$1\" ला जुळलेली पाने",
        "nolinkshere": "'''[[:$1]]''' येथे कोणत्याही पानांचे दुवे नाहीत.",
        "nolinkshere-ns": "निवडलेल्या नामविश्वातील कोणतीही पाने <strong>[[:$1]]</strong>ला दुवा देत नाहीत .",
        "isredirect": "पुनर्निर्देशित पान",
-       "istemplate": "मिळवा",
+       "istemplate": "à¤\86à¤\82तरà¥\8dनà¥\8dयास (à¤\9fà¥\8dराà¤\82सà¤\95à¥\8dलà¥\82à¤\9cन)",
        "isimage": "संचिका दुवा",
        "whatlinkshere-prev": "{{PLURAL:$1|पूर्वीचा|पूर्वीचे $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|पुढील|पुढील $1}}",
        "blocklink": "अडवा",
        "unblocklink": "रोध हटवा",
        "change-blocklink": "रोध बदला",
-       "contribslink": "योगदान",
+       "contribslink": "योगदान",
        "emaillink": "ई-मेल पाठवा.",
        "autoblocker": "स्वयंचलित प्रतिबंधन केले गेले कारण तुमचा अंकपत्ता अलीकडे \"[[User:$1|$1]]\"ने वापरला होता. $1च्या प्रतिबंधनाकरिता दिलेले कारण \"$2\" आहे",
        "blocklogpage": "रोध नोंदी",
        "importcantopen": "आयातीत संचिका उघडणे जमले नाही",
        "importbadinterwiki": "अयोग्य आंतरविकि दुवा",
        "importsuccess": "आयात पूर्ण झाली!",
-       "importnosources": "à¤\95à¥\8bणतà¥\87हà¥\80 à¤\86à¤\82तरविà¤\95ि à¤\86यात à¤¸à¥\8dरà¥\8bत à¤µà¥\8dयà¤\95à¥\8dत à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80त à¤\86णि à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dष à¤\87तिहास à¤\9aढवा à¤\85नà¥\81पलबà¥\8dध à¤\95à¥\87लà¥\87 à¤\86हà¥\87.",
+       "importnosources": "à¤\95à¥\8bणतà¥\87हà¥\80 à¤µà¤¿à¤\95ि à¤\9cà¥\8dयापासà¥\82न à¤\86यात à¤\95रावयाà¤\9aà¥\80 à¤¤à¥\87 à¤µà¥\8dयाà¤\96à¥\8dयिà¤\95à¥\83त à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80त à¤\86णि à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dष à¤\87तिहास à¤\85पभारणà¥\87 à¤\85à¤\95à¥\8dषम à¤\95à¥\87लà¥\80 à¤\86हà¥\87त.",
        "importnofile": "कोणतीही आयातीत संचिका चढवलेली नाही.",
        "importuploaderrorsize": "आयात संचिकेचे चढवणे फसले.संचिका चढवण्याच्या मान्यताप्राप्त आकारा पेक्षा मोठी आहे.",
        "importuploaderrorpartial": "आयात संचिकेचे चढवणे फसले.संचिका केवळ अर्धवटच चढू शकली.",
        "tooltip-pt-preferences": "तुमचा पसंतीक्रम",
        "tooltip-pt-watchlist": "तुम्ही पहारा दिलेल्या पानांची यादी",
        "tooltip-pt-mycontris": "तुमच्या योगदानांची यादी",
-       "tooltip-pt-login": "à¤\86पणाà¤\82स à¤¸à¤¦à¤¸à¥\8dयतà¥\8dव à¤\98à¥\87णà¥\8dयाà¤\9aà¥\80 à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95रणà¥\8dयात à¤¯à¥\87त à¤\86हà¥\87. à¤¸à¤¦à¤¸à¥\8dयतà¥\8dव à¤\98à¥\87णे अनिवार्य नाही.",
+       "tooltip-pt-login": "à¤\86पणाà¤\82स à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शासाठà¥\80 à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रणà¥\8dयात à¤¯à¥\87त à¤\86हà¥\87;à¤\85रà¥\8dथातà¤\9a, à¤¤े अनिवार्य नाही.",
        "tooltip-pt-logout": "सनोंद निर्गम",
-       "tooltip-pt-createaccount": "à¤\86मà¥\8dहà¥\80 à¤\86पणास à¤\96ातà¥\87 à¤\89à¤\98डà¥\82न à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शास à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रत à¤\86हà¥\87;पण à¤¤à¥\87 à¤\85तà¥\8dयावशà¥\8dयà¤\95 नाही.",
-       "tooltip-ca-talk": "à¤\86शय à¤ªà¤¾à¤¨à¤¾à¤¬à¤¦à¥\8dदलà¤\9aà¥\8dया चर्चा",
+       "tooltip-pt-createaccount": "à¤\86मà¥\8dहà¥\80 à¤\86पणास à¤\96ातà¥\87 à¤\89à¤\98डà¥\82न à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शास à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रत à¤\86हà¥\87;à¤\85रà¥\8dथातà¤\9a, à¤¤à¥\87 à¤\85निवारà¥\8dय नाही.",
+       "tooltip-ca-talk": "à¤\86शय à¤ªà¤¾à¤¨à¤¾à¤¬à¤¦à¥\8dदलà¤\9aà¥\80 चर्चा",
        "tooltip-ca-edit": "या पानाचे संपादन करा",
        "tooltip-ca-addsection": "नवीन विभाग सुरू करा",
        "tooltip-ca-viewsource": "हे पान सुरक्षित आहे. तुम्ही याचा स्रोत पाहू शकता.",
        "tooltip-ca-watch": "हे पान तुमच्या पहाऱ्याच्या सूचीमध्ये टाका",
        "tooltip-ca-unwatch": "हे पान पहाऱ्याच्या सूचीतून काढा.",
        "tooltip-search": "{{SITENAME}} शोधा",
-       "tooltip-search-go": "नà¥\87मà¤\95à¥\8dया à¤¯à¤¾à¤\9a à¤¨à¤¾à¤µà¤¾à¤\9aà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\95डà¥\87,तà¥\87 à¤\85सà¥\8dतितà¥\8dवात à¤\85सलà¥\8dयास, à¤\9aला",
+       "tooltip-search-go": "तà¥\87 à¤\85सà¥\8dतितà¥\8dवात à¤\85सलà¥\8dयास,नà¥\87मà¤\95à¥\8dया à¤¯à¤¾à¤\9a à¤¨à¤¾à¤µà¤¾à¤\9aà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\95डà¥\87 à¤\9cा",
        "tooltip-search-fulltext": "या मजकुराकरिता पान शोधा",
-       "tooltip-p-logo": "मुखपृष्ठ",
+       "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": "कोणतेही अविशिष्ट पान पाहा",
        "tooltip-t-whatlinkshere": "येथे जोडलेल्या सर्व विकिपानांची यादी",
        "tooltip-t-recentchangeslinked": "या पानास जोडलेल्या सर्व पानांवरील अलीकडील बदल",
        "tooltip-feed-rss": "या पानाकरिता आर.एस.एस. रसद",
-       "tooltip-feed-atom": "या à¤ªà¤¾à¤¨à¤¾à¤\95रिता à¤\8dटम रसद",
+       "tooltip-feed-atom": "या à¤ªà¤¾à¤¨à¤¾à¤\95रिता à¤\85à¥\85टम रसद",
        "tooltip-t-contributions": "या सदस्याच्या योगदानांची यादी पहा",
        "tooltip-t-emailuser": "या सदस्याला ई-मेल पाठवा",
        "tooltip-t-info": "या पानाबाबत अधिक माहिती",
        "svg-long-desc-animated": "सामान्यतः $1 × $2 पिक्सेलची असलेली संजीवक एसव्हीजी संचिका, संचिका-आकार: $3",
        "svg-long-error": "अयोग्य SVG प्रकारातील संचिका: $1",
        "show-big-image": "मूळ संचिका",
-       "show-big-image-preview": "या झलकेचा आकार: $1. पिक्सेल",
+       "show-big-image-preview": "या झलकेचा आकार: $1 पिक्सेल.",
        "show-big-image-other": "इतर {{PLURAL:$2|resolution|resolutions}}: $1.",
        "show-big-image-size": "$1 × $2 पिक्सेल",
        "file-info-gif-looped": "विळख्यात सापडलेले",
        "metadata-help": "या संचिकेत जास्तीची माहिती आहे. बहुधा ही संचिका बनवताना वापरलेल्या कॅमेरा किंवा स्कॅनर कडून ही माहिती जमा झाली आहे. जर या संचिकेत निर्मितीपश्चात बदल करण्यात आले असतील, तर कदाचित काही माहिती नवीन संचिकेशी पूर्णपणे जुळणार नाही.",
        "metadata-expand": "जास्तीची माहिती दाखवा",
        "metadata-collapse": "जास्तीची माहिती लपवा",
-       "metadata-fields": "या à¤¸à¤\82दà¥\87शाà¤\9aà¥\8dया à¤¯à¤¾à¤¦à¥\80तà¥\80ल à¤\9aितà¥\8dर à¤®à¥\87à¤\9fाडाà¤\9fा à¤\95à¥\8dषà¥\87तà¥\8dराà¤\82à¤\9aा à¤\85à¤\82तरà¥\8dभाव à¤\9aितà¥\8dर à¤ªà¤¾à¤¨ à¤¦à¤°à¥\8dशनात à¤¹à¥\8bà¤\88ल, à¤\9cà¥\87à¤\82वà¥\8dहा à¤®à¥\87à¤\9fाडाà¤\9fा à¤¤à¤\95à¥\8dता à¤¨à¤¿à¤ªà¤¤à¤¨ à¤¸à¥\8dथितà¥\80त à¤\85सà¥\87ल. à¤¬à¤¾à¤\95à¥\80à¤\9aà¥\80 à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤\9dाà¤\95लà¥\87लà¥\80 à¤°à¤¾à¤¹à¥\80ल.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "या à¤¸à¤\82दà¥\87शाà¤\9aà¥\8dया à¤¯à¤¾à¤¦à¥\80तà¥\80ल à¤\9aितà¥\8dर à¤®à¥\87à¤\9fाडाà¤\9fा à¤\95à¥\8dषà¥\87तà¥\8dराà¤\82à¤\9aा à¤\85à¤\82तरà¥\8dभाव à¤\9aितà¥\8dर à¤ªà¤¾à¤¨ à¤¦à¤°à¥\8dशविणà¥\8dयात à¤¹à¥\8bà¤\88ल, à¤\9cà¥\87à¤\82वà¥\8dहा à¤®à¥\87à¤\9fाडाà¤\9fा à¤¤à¤\95à¥\8dता à¤¨à¤¿à¤ªà¤¤à¤¨ à¤¸à¥\8dथितà¥\80त à¤\85सà¥\87ल. à¤\87तर à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤\85विà¤\9aलरितà¥\8dया à¤²à¤ªà¤µà¤¿à¤²à¥\87लà¥\80 à¤°à¤¾à¤¹à¥\80ल.\n* à¤\89तà¥\8dपादन(मà¥\87à¤\95)\n* à¤®à¥\89डà¥\87ल\n* à¤®à¥\82ळदिनाà¤\82à¤\95वà¥\87ळ\n* à¤\85नावà¥\83तà¥\8dतà¥\80वà¥\87ळ(à¤\8fà¤\95à¥\8dसà¥\8dपà¥\8bà¤\9cरà¤\9fाà¤\88म)\n* à¤\86यà¤\8fसà¤\93à¤\97तà¥\80निरà¥\8dधारण(à¤\86यà¤\8fसà¤\93सà¥\8dपà¥\80डरà¥\87à¤\9fिà¤\82à¤\97à¥\8dà¤\9c)\n* à¤\95à¥\87à¤\82दà¥\8dरवरà¥\8dतà¥\80लाà¤\82बà¥\80(फà¥\8bà¤\95ललà¥\87à¤\82à¤\97à¥\8dथ)\n* à¤\95लाà¤\95ार\n* à¤ªà¥\8dरताधिà¤\95ार\n* à¤\9aितà¥\8dरवरà¥\8dणन\n* à¤\9cà¥\80पà¥\80à¤\8fसà¤\85à¤\95à¥\8dषाà¤\82श\n* à¤\9cà¥\80पà¥\80à¤\8fसरà¥\87à¤\96ाà¤\82श\n* à¤\9cà¥\80पà¥\80à¤\8fसà¤\89नà¥\8dनतन",
        "exif-imagewidth": "रूंदी",
        "exif-imagelength": "उंची",
        "exif-bitspersample": "प्रती घटक बीट्स",
        "exif-imagedescription": "चित्र शीर्षक",
        "exif-make": "कॅमेरा उत्पादक",
        "exif-model": "कॅमेरा उपकरण",
-       "exif-software": "वापरलà¥\87लà¥\80 à¤¸à¤\82à¤\97णन à¤\85ज्ञावली",
+       "exif-software": "वापरलà¥\87लà¥\80 à¤¸à¤\82à¤\97णन à¤\86ज्ञावली",
        "exif-artist": "लेखक",
        "exif-copyright": "प्रताधिकार धारक",
        "exif-exifversion": "Exif आवृत्ती",
        "compare-revision-not-exists": "आपण नमूद करत असलेली आवृत्ती अस्तित्वात नाही.",
        "dberr-problems": "माफ करा, हे संकेतस्थळ सध्या तांत्रिक अडचणींना सामोरे जात आहे.",
        "dberr-again": "थोडा वेळ थांबून पुन्हा पहा.",
-       "dberr-info": "( विदादाताशी संपर्क साधण्यात  असमर्थ : $1)",
-       "dberr-info-hidden": "( विदादात्याशी संपर्क साधण्यात  असमर्थ)",
+       "dberr-info": "(विदादातापर्यंत पोहोचण्यास असमर्थ: $1)",
+       "dberr-info-hidden": "(विदादातापर्यंत पोहोचण्यास असमर्थ)",
        "dberr-usegoogle": "तोपर्यंत गूगलवर शोधून पहा",
        "dberr-outofdate": "लक्षात घ्या, आमच्या मजकुराबाबत त्यांची सूची कालबाह्य असू शकते",
        "dberr-cachederror": "ही मागवलेल्या पानाची सयीतील प्रत आहे, ती अद्ययावत नसण्याची शक्यता आहे.",
index bb03b23..5444583 100644 (file)
        "mw-widgets-dateinput-no-date": "Ingen dato valgt",
        "mw-widgets-dateinput-placeholder-day": "ÅÅÅÅ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
-       "mw-widgets-titleinput-description-new-page": "side eksisterer ikke enda",
+       "mw-widgets-titleinput-description-new-page": "siden eksisterer ikke enda",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
        "api-error-blacklisted": "Vennligst velg en annen beskrivende tittel."
 }
index 1863afe..2c067ad 100644 (file)
        "wlnote": "Hieronder {{PLURAL:$1|staat de laaste wijziging|staan de laatste $1 wijzigingen}} in {{PLURAL:$2|het laatste uur|de laatste $2 uur}} per $3 om $4.",
        "wlshowlast": "Laatste $1 uur, $2 dagen bekijken",
        "watchlistall2": "alles",
+       "wlshowtime": "Tijdspanne:",
+       "wlshowhideminor": "kleine bewerkingen",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "geregistreerde gebruikers",
+       "wlshowhideanons": "anonieme gebruikers",
+       "wlshowhidepatr": "gecontroleerde bewerkingen",
+       "wlshowhidemine": "mijn bewerkingen",
        "watchlist-options": "Opties voor volglijst",
        "watching": "Bezig met plaatsen op volglijst…",
        "unwatching": "Bezig met verwijderen van volglijst…",
index e7b51d8..47cdf43 100644 (file)
@@ -11,6 +11,7 @@
        "tog-hideminor": "Peitä pienet muutokset uuvet muutokset -listaspäi",
        "tog-hidepatrolled": "Peitä tarkastetut muutokset uvvet muutokset -listaspäi",
        "tog-newpageshidepatrolled": "Peitä tarkastetut sivut uuzien sivuloin listalpäi",
+       "tog-hidecategorization": "Peitä sivuloin kategourizatsii",
        "tog-extendwatchlist": "Levitä valvonduluvettelo ku ozuttua kai muutokset, ei vaiku jälgimäzii",
        "tog-numberheadings": "Automuattizesti numeroija kirjutuksien nimet",
        "tog-showtoolbar": "Ozuta ruadovälinehpalki",
@@ -39,6 +40,7 @@
        "tog-watchlisthideliu": "Peitä kirjutannuhuoloin käyttäjien kohendukset valvondulistalpäi",
        "tog-watchlisthideanons": "Peitä registriiruičemattomien käyttäjien kohendukset valvondulistalpäi",
        "tog-watchlisthidepatrolled": "Peitä muutoksientarkistajien hyväksytyt kohendukset valvondulistalpäi",
+       "tog-watchlisthidecategorization": "Peitä sivuloin kategourizatsii",
        "tog-ccmeonemails": "Työnnä minule koupii MediiWikin kauti työttylöis sähköpoštuviestilöis",
        "tog-diffonly": "Älä ozuta sivun syväindyö eroverdailun alapuolel",
        "tog-showhiddencats": "Ozuta peitetyt kategouriet",
        "delete": "Ota iäre",
        "deletethispage": "Ota tämä sivu iäre",
        "undeletethispage": "Tuo sivu järilleh",
+       "viewdeleted_short": "Ozuta {{PLURAL:$1|yksi iäreotettu kohendus|$1 iäreotettuu kohendustu}}",
        "protect": "Suojua",
        "protect_change": "vaihta",
        "protectthispage": "Suojua tämä sivu",
        "redirectpagesub": "uvvellehohjavussivu",
        "redirectto": "Uvvellehohjuau sivuh:",
        "lastmodifiedat": "Tädä sivuu on muutettu jälgimäzen kerran $1, $2 aigah.",
+       "viewcount": "Tädä sivuu on kačottu {{PLURAL:$1|kerran|$1kerdua}}.",
        "protectedpage": "Suojattu sivu",
        "jumpto": "Siirry",
        "jumptonavigation": "navigatsii",
        "directoryreadonlyerror": "Al'bom $1 on kirjutussuojattu.",
        "directorynotreadableerror": "Al'bom $1 ei ole lugiettavis.",
        "filenotfound": "Failua \"$1\" ei lövvetty.",
+       "unexpected": "Vuottamatoi arvo: \"$1\"=\"$2\".",
+       "formerror": "Haireh: Ankietan tiijot ei päitä.",
        "badarticleerror": "Tädä toimindua ei voi ruadua täl sivul.",
        "cannotdelete": "Sivuu libo failua \"$1\" ei voi ottua iäre. Kentah toine on jo toinah ottanuh sen iäre.",
        "cannotdelete-title": "Ei voi ottua iäre sivuu \"$1\"",
        "noarticletext-nopermission": "Täl sivul ei ole tekstua.\nVoit [[Special:Search/{{PAGENAME}}|eččie sivun nimel]] toizis sivuloispäi, libo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} eččie sivuu koskijua logua]</span>, ga sinul ei ole oigevuksii luadie tädä sivuu.",
        "userpage-userdoesnotexist-view": "Käyttäitunnustu ”$1” ei ole registruittu.",
        "updated": "(Päivitetty)",
+       "previewnote": "'''Tämä on vaiku sivun ezikaččelu.'''\nSinun luajittuloi kohenduksii ei ole vie tallendettu.",
        "continue-editing": "Mene edituičendualovehele",
        "editing": "Kohendellah sivuu $1",
        "creating": "Luajitah sivuu \"$1\"",
        "template-protected": "(suojattu)",
        "template-semiprotected": "(puolekse suojattu)",
        "hiddencategories": "Tämä sivu kuuluu {{PLURAL:$1|1 peitettyh kategourieh|$1 peitettyh kategourieh}}:",
+       "nocreate-loggedin": "Sinul ei ole oigevuksii luadie uuzii sivuloi.",
        "sectioneditnotsupported-title": "Sektsien kohendustu ei tuveta.",
        "sectioneditnotsupported-text": "Sektsien kohendustu ei tuveta täl sivul.",
        "permissionserrors": "Ei oigevuksii",
        "permissionserrorstext": "Sinul ei ole lubua toimindoh {{PLURAL:$1|tämän syyn periä|nämmien syylöin periä}}:",
        "permissionserrorstext-withaction": "Sinul ei ole lubua toimindoh $2 niškoi, {{PLURAL:$1|tämän syyn periä|nämmien syylöin periä}}:",
        "moveddeleted-notice": "Tämä sivu on otettu iäre. Sivun iäreotandu- da siirdohistourii ollah annettu al viittavuksennu.",
+       "log-fulllog": "Ozuta kai histourii",
        "postedit-confirmation-created": "Sivu on nygöi luajittu.",
        "postedit-confirmation-restored": "Sivun aijembi versii on tuodu järilleh.",
        "postedit-confirmation-saved": "Sinun kohendus tallendettih.",
        "revdelete-nooldid-title": "Ei kohtehversielöi",
        "revdelete-show-file-submit": "Muga",
        "revdelete-selected-text": "{{PLURAL:$1|Vallittu versii|Vallitut versiet}} kohtehes [[:$2]]:",
+       "revdelete-hide-image": "Peitä failan syväindö",
+       "revdelete-hide-name": "Peitä kohteh da parametrat",
+       "revdelete-hide-comment": "Kohendele yhtehveduo",
+       "revdelete-hide-user": "Peitä kirjuttajan nimi libo IP-adressu",
        "revdelete-radio-same": "(älä vaihta)",
        "revdelete-radio-set": "Peitetty",
        "revdelete-radio-unset": "Nägövil",
+       "logdelete-success": "'''Tapahtumuhistourien nägyvytty on muutettu.'''",
+       "logdelete-failure": "'''Tapahtumuhistourien nägyvytty ei voitu azettua:'''\n$1",
+       "revdel-restore": "vaihta nägyvys",
        "pagehist": "Sivuhistourii",
        "deletedhist": "Iäre otettuloin versielöin histourii",
        "revdelete-offender": "Versien luadii:",
        "powersearch-togglelabel": "Valliče:",
        "powersearch-toggleall": "Kai",
        "powersearch-togglenone": "Nimidä",
+       "preferences": "Azetukset",
        "mypreferences": "Azetukset",
        "prefs-edits": "Kohenduksii kaikkiedah:",
+       "prefsnologintext2": "Ole hyvä, kirjuttai ku vaihtua sinun azetuksii.",
        "prefs-skin": "Kettu",
+       "skin-preview": "Ezikačo",
        "prefs-user-pages": "Käyttäisivut",
+       "prefs-rc": "Jälgimäzet kohendukset",
        "prefs-watchlist": "Valvondulistu",
+       "prefs-editwatchlist": "Kohendele valvonduluvetteluo",
+       "prefs-editwatchlist-label": "Kohendele valvonduluvettelon merkindölöi:",
+       "prefs-editwatchlist-edit": "Ozuta da ota iäre kohtehii valvonduluvettelos",
+       "prefs-editwatchlist-clear": "Tyhjendä valvonduluvettelo",
+       "prefs-watchlist-days": "Ozutettuloin päivien lugu valvonduluvettelos:",
+       "prefs-watchlist-days-max": "Ei enämbi $1 {{PLURAL:$1|päiviä}}",
+       "prefs-watchlist-token": "Valvonduluvettelon avain:",
        "prefs-resetpass": "Vaihta peittosana",
        "prefs-changeemail": "Vaihta libo ota iäre sähköpoštuadressu",
        "prefs-setemail": "Kirjuta sähköpoštuadressu",
index 60674de..066fd0f 100644 (file)
        "wlnote": "Poniżej pokazano {{PLURAL:$1|zmianę wykonaną|<strong>$1</strong> zmiany wykonane|<strong>$1</strong> zmian wykonanych}} w ciągu {{PLURAL:$2|ostatniej godziny|ostatnich <strong>$2</strong> godzin}}, licząc od $4 dnia $3.",
        "wlshowlast": "Pokaż ostatnie $1 godzin, $2 dni",
        "watchlistall2": "wszystkie",
+       "wlshowhideminor": "drobne edycje",
        "wlshowhidebots": "boty",
+       "wlshowhideanons": "anonimowi użytkownicy",
        "watchlist-options": "Opcje obserwowanych",
        "watching": "Dodaję do obserwowanych...",
        "unwatching": "Przestaję obserwować...",
        "cantrollback": "Nie można cofnąć edycji tego autora, ponieważ jest jedynym autorem tej strony.",
        "alreadyrolled": "Nie można dla strony [[:$1|$1]] cofnąć ostatniej zmiany, którą wykonał [[User:$2|$2]] ([[User talk:$2|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).\nKtoś inny zdążył już to zrobić lub wprowadził własne poprawki do treści strony.\n\nAutorem 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": "Wycofano edycje użytkownika [[Special:Contributions/$2|$2]]. 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;\nprzywrócono ostatnią wersję autorstwa $2.",
        "sessionfailure-title": "Błąd sesji",
index fb435db..55d655d 100644 (file)
        "createacct-realname": "آر نوم (اختياري)",
        "createaccountreason": "سبب:",
        "createacct-reason": "سبب",
-       "createacct-reason-ph": "ولې تاسې بل گڼون جوړول غوااړۍ",
+       "createacct-reason-ph": "تاسې ولې بل گڼون جوړوئ؟",
        "createacct-submit": "گڼون مو جوړ کړئ",
        "createacct-another-submit": "گڼون جوړول",
        "createacct-benefit-heading": "{{SITENAME}} ستاسې په څېر خلکو جوړ کړی.",
index 4271c1d..e0dd3f4 100644 (file)
        "wlheader-showupdated": "Message at the top of [[Special:Watchlist]], after {{msg-mw|watchlist-details}}. Has to be a full sentence.",
        "wlnote": "Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.\n\nParameters:\n* $1 - the number of changes shown\n* $2 - the number of hours for which the changes are shown\n* $3 - a date alone\n* $4 - a time alone",
        "wlshowlast": "Appears on [[Special:Watchlist]]. Parameters:\n* $1 - a choice of different numbers of hours (\"1 | 2 | 6 | 12\")\n* $2 - a choice of different numbers of days (\"1 | 3 | 7\" and the maximum number of days available)\nClicking on your choice changes the list of changes you see (without changing the default in my preferences).",
-       "watchlistall2": "Appears on [[Special:Watchlist]], after {{msg-mw|wlshowtime}}, as the option to display all available data regardless of age.",
+       "watchlistall2": "Appears on [[Special:Watchlist]], after {{msg-mw|wlshowtime}}, as the option to display all available data regardless of age.\n{{Identical|All}}",
        "wlshowtime": "Appears on [[Special:Watchlist]].",
-       "wlshowhideminor": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideminor}}.",
-       "wlshowhidebots": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidebots}}.",
-       "wlshowhideliu": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideliu}}.",
-       "wlshowhideanons": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideanons}}.",
+       "wlshowhideminor": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideminor}}.\n{{Identical|Minor edit}}",
+       "wlshowhidebots": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidebots}}.\n{{Identical|Bot}}",
+       "wlshowhideliu": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideliu}}.\n{{Identical|Registered user}}",
+       "wlshowhideanons": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideanons}}.\n{{Identical|Anonymous user}}",
        "wlshowhidepatr": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidepatr}}.",
        "wlshowhidemine": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidemine}}.",
        "watchlist-options": "Legend of the fieldset of [[Special:Watchlist]]\n\nSee also:\n* {{msg-mw|Watchlist-details|watchlist header}}\n* {{msg-mw|Wlheader-enotif|watchlist header}}\n* {{msg-mw|enotif reset|Submit button text}}",
index a0740a3..519c19b 100644 (file)
        "missingarticle-rev": "(versiunea#: $1)",
        "missingarticle-diff": "(Dif: $1, $2)",
        "readonly_lag": "Baza de date a fost închisă automatic în timp ce serverele secundare ale bazei de date îl urmează pe cel principal.",
+       "nonwrite-api-promise-error": "Antetul HTTP „Promise-Non-Write-API-Action” a fost trimis, dar cererea s-a făcut către un modul de scriere API.",
        "internalerror": "Eroare internă",
        "internalerror_info": "Eroare internă: $1",
        "internalerror-fatal-exception": "Excepție fatală pentru tipul „$1”",
        "wantedfiletext-nocat-noforeign": "Următoarele fișiere sunt utilizate, dar nu există.",
        "wantedtemplates": "Formate dorite",
        "mostlinked": "Cele mai căutate articole",
-       "mostlinkedcategories": "Cele mai căutate categorii",
+       "mostlinkedcategories": "Cele mai utilizate categorii",
        "mostlinkedtemplates": "Cele mai transcluse pagini",
        "mostcategories": "Articole cu cele mai multe categorii",
-       "mostimages": "Cele mai căutate imagini",
+       "mostimages": "Cele mai utilizate imagini",
        "mostinterwikis": "Pagini cu cele mai multe legături interwiki",
        "mostrevisions": "Articole cu cele mai multe revizuiri",
        "prefixindex": "Toate paginile cu prefix",
        "wlnote": "Mai jos se află {{PLURAL:$1|ultima schimbare|ultimele <strong>$1</strong> schimbări|ultimele <strong>$1</strong> de schimbări}} din {{PLURAL:$2|ultima oră|ultimele <strong>$2</strong> ore|ultimele <strong>$2</strong> de ore}}, așa cum era situația la $3, $4.",
        "wlshowlast": "Arată ultimele $1 ore $2 zile",
        "watchlistall2": "toate",
+       "wlshowtime": "Arată ultimele:",
+       "wlshowhideminor": "modificări minore",
+       "wlshowhidebots": "roboți",
+       "wlshowhideliu": "utilizatori înregistrați",
+       "wlshowhideanons": "utilizatori anonimi",
+       "wlshowhidepatr": "modificări patrulate",
+       "wlshowhidemine": "modificările mele",
        "watchlist-options": "Opțiuni listă de pagini urmărite",
        "watching": "Se urmărește...",
        "unwatching": "Așteptați...",
index 2e01eb5..f37b0e8 100644 (file)
        "wlnote": "Ниже {{PLURAL:$1|показано последнее изменение|показаны <strong>$1</strong> последние изменения|показаны <strong>$1</strong> последних изменений}} за {{PLURAL:$2|последний час|последние <strong>$2</strong> часа|последние <strong>$2</strong> часов}}, по состоянию на $3 $4.",
        "wlshowlast": "Показать за последние $1 часов $2 дней",
        "watchlistall2": "все",
+       "wlshowtime": "Показать последние:",
+       "wlshowhideminor": "малые правки",
+       "wlshowhidebots": "ботов",
+       "wlshowhideliu": "зарегистрированных участников",
+       "wlshowhideanons": "анонимных участников",
+       "wlshowhidepatr": "проверенные правки",
+       "wlshowhidemine": "мои правки",
        "watchlist-options": "Настройки списка наблюдения",
        "watching": "Добавление в список наблюдения…",
        "unwatching": "Удаление из списка наблюдения…",
index 96b8e89..db8f4ee 100644 (file)
        "welcomeuser": "स्वागतम्, $1!",
        "welcomecreation-msg": "भवता/भवत्या सदस्यता प्राप्ता ।\nस्वस्य [[Special:Preferences|{{SITENAME}} इष्टतमानि]] परिवर्तयितुं मा विस्मरतु ।",
        "yourname": "योजकनाम:",
-       "userlogin-yourname": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम",
-       "userlogin-yourname-ph": "सà¥\8dवसà¥\8dय à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम लिख्यताम्",
-       "createacct-another-username-ph": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम लिख्यताम्",
+       "userlogin-yourname": "सदसà¥\8dयनाम",
+       "userlogin-yourname-ph": "सà¥\8dवसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयनाम लिख्यताम्",
+       "createacct-another-username-ph": "सदसà¥\8dयनाम लिख्यताम्",
        "yourpassword": "कूटशब्दः :",
        "userlogin-yourpassword": "कूटशब्दः",
        "userlogin-yourpassword-ph": "स्वस्य कूटशब्दः लिख्यताम्",
        "createaccountreason": "कारणम् :",
        "createacct-reason": "कारणम्",
        "createacct-reason-ph": "भवतः/भवत्याः अन्यसदस्यतां प्राप्तुं किं प्रयोजनमस्ति ?",
-       "createacct-captcha": "सुरक्षानिरीक्षणम्",
-       "createacct-imgcaptcha-ph": "उपरि लिखिताः वर्णाः लिख्यन्तादम्",
        "createacct-submit": "स्वसदस्यता प्राप्यताम्",
        "createacct-another-submit": "अन्यसदस्यता प्राप्यताम्",
        "createacct-benefit-heading": "{{SITENAME}} इति भवत्सदृशैः जनैः रचितमस्ति ।",
        "createacct-benefit-body2": "{{PLURAL:$1|पृष्ठम्|पृष्ठानि}}",
        "createacct-benefit-body3": "नवीन{{PLURAL:$1|योजकः|योजकाः}}",
        "badretype": "भवता/भवत्या लिखितौ कूटशब्दौ समानौ न स्तः ।",
-       "userexists": "भवता/भवतà¥\8dया à¤\88षà¥\8dà¤\9fà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¥\82रà¥\8dवमà¥\87व à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ \nà¤\95à¥\83पया à¤\85परà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम चिनोतु ।",
-       "loginerror": "पà¥\8dरवà¥\87शà¥\87 à¤¦à¥\8bषà¤\83",
+       "userexists": "भवता/भवतà¥\8dया à¤\88षà¥\8dà¤\9fà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम à¤ªà¥\82रà¥\8dवमà¥\87व à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ \nà¤\95à¥\83पया à¤\85परà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम चिनोतु ।",
+       "loginerror": "प्रवेशदोषः",
        "createacct-error": "सदस्यताप्राप्तिकाले दोषः",
        "createaccounterror": "$1 सदस्यता न प्राप्ता :",
        "nocookiesnew": "भवता/भवत्या सदस्यता प्राप्ता, परन्तु प्रवेशः न कृतः । {{SITENAME}} इत्यस्य कृते योजकज्ञापकम् (uses cookies) अनिवार्यम् अस्ति । \nभवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।\nकृपया सा समर्थ्यताम्, ततश्च नवीनसदस्यतायाः प्रयोक्तृनाम्ना प्रविश्यताम् ।",
        "nocookieslogin": "{{SITENAME}} इत्यत्र ज्ञापकेन (cookies) विना प्रवेशः न शक्यः । \nभवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।\nकृपया सा समर्थ्यताम्, ततश्च पुनः प्रयासः क्रियताम् ।",
        "nocookiesfornew": "योजकसदस्यता न सिद्धा यतः स्रोतः प्रमाणीकृतं न जातम् । \nभवता कुक्कीस् इत्येतत् समर्थितानि किम् इति परिशील्य इदं पृष्ठं पुनरारोप्य प्रयतताम् ।",
-       "noname": "भवता/भवतà¥\8dया à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम न प्रदत्तम् ।",
+       "noname": "भवता/भवतà¥\8dया à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम न प्रदत्तम् ।",
        "loginsuccesstitle": "स्वागतं ! प्रवेशः सिद्धः ।",
        "loginsuccess": "भवता/भवत्या {{SITENAME}} इत्यत्र \"$1\"-योजकत्वेन प्रवेशः प्राप्तः ।",
        "nosuchuser": "'''$1''' नाम्नः न कोऽपि योजकः विद्यते ।\n\nप्रयोक्तृनामानि पक्षानुगुणं (case sensitive) भवन्ति ।\n\nयत् टङ्कितं, तत् पश्यतु अथवा [[Special:UserLogin/signup|नूतनसदस्यता प्राप्यताम्]] ।",
        "nosuchusershort": "'''$1''' नाम्नः न कोऽपि सदस्यः विद्यते ।\n\nयत् टङ्कितं, तत् पश्यतु ।",
-       "nouserspecified": "भवता/भवतà¥\8dया à¤\8fà¤\95à¤\82 à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अवश्यमेव दातव्यम् ।",
+       "nouserspecified": "भवता/भवतà¥\8dया à¤\8fà¤\95à¤\82 à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम अवश्यमेव दातव्यम् ।",
        "login-userblocked": "एषः सदस्यः प्रतिबन्धितः । प्रवेष्टुम् अनुमतिः नास्ति ।",
        "wrongpassword": "भवता/भवत्या लिखितः कूटशब्दः त्रुटियुक्तः । \nकृपया पुनः लिख्यताम् ।",
        "wrongpasswordempty": "कूटशब्दपेटिकायां कूटशब्दः न लिखितः ।\n\nकृपया पुनः प्रयासः क्रियताम् ।",
        "passwordtooshort": "न्यूनातिन्यूनं {{PLURAL:$1| 1 अक्षरात्मकः|$1 अक्षरात्मकः}} कूटशब्दः भवेदेव ।",
        "passwordtoolong": "कूटशब्दः {{PLURAL:$1| 1 अक्षरात्|$1 अक्षरेभ्यः}} बृहत् न स्यात् ।",
-       "password-name-match": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम, कूटशब्दः च समानः न भवेत् ।",
+       "password-name-match": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयनाम, कूटशब्दः च समानः न भवेत् ।",
        "password-login-forbidden": "अस्य प्रयोक्तृनाम्नः कूटशब्दस्य च प्रयोगः वर्जितोऽस्ति ।",
        "mailmypassword": "कूटशब्दः परिवर्त्यताम्",
        "passwordremindertitle": "{{SITENAME}} इत्यस्मै नूतनः अस्थायी कूटशब्दः ।",
        "createaccount-text": "{{SITENAME}} ($4) इत्यत्र, \"$2\" नाम्ना, \"$3\" कूटशब्देन, च कोऽपि भवतः/भवत्याः वि-पत्रसङ्केतस्य उपयोगं कृत्वा सदस्यतां प्रापत् ।\nअधुना भवान्/भवती प्रवेशं कृत्वा गुप्तसङ्ख्यां परिवर्तयितं शक्नोति ।\nएषा सदस्यताप्राप्तिः क्षत्या अभवत् चेत्, एनं सन्देशम् उपेक्षताम् ।",
        "login-throttled": "भवता/भवत्या अत्यधिकाः प्रवेशप्रयासाः कृताः । \nकृपया $1 कालं यावत् प्रतीक्ष्यताम् ।",
        "login-abort-generic": "भवतः/भवत्याः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः",
-       "login-migrated-generic": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयतà¥\8dवà¤\82 à¤¸à¥\8dथानानà¥\8dतरितà¤\82, à¤¯à¥\87न à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
+       "login-migrated-generic": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयतà¥\8dवà¤\82 à¤¸à¥\8dथानानà¥\8dतरितà¤\82, à¤¯à¥\87न à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयनाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
        "loginlanguagelabel": "भाषा : $1",
        "suspicious-userlogout": "भवतः/भवत्याः \"निर्गम्यताम्\" इत्यस्य विज्ञप्तिं स्वीकर्तुं न शक्यते । यतः भवता/भवत्या एषा विज्ञप्तिं तृटियुक्तगवेक्षणात् प्रतिनिधि(proxy)-तः वा कृता ।",
        "createacct-another-realname-tip": "वास्तविकनाम ऐच्छिकम् अस्ति । भवान्/भवती एनं विकल्पं समर्थयति चेत्, भवतः/भवत्याः योगदानश्रेयसः उल्लेखसमये अस्य उपयोगः भविष्यति ।",
        "passwordreset-emailtitle": "{{SITENAME}} इत्यत्र योजकविषये",
        "passwordreset-emailtext-ip": "कोऽपि (कदाचित् भवान्/भवती, $1 अन्तर्जालसंविदः (from IP)) {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|योजकः|योजकाः}} अनेन वि-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विनतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
        "passwordreset-emailtext-user": "$1 सदस्यः {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|सदस्यः|सदस्याः}} अनेन वि-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विज्ञप्तिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
-       "passwordreset-emailelement": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम : \n$1\n\nअल्पकालीनकूटशब्दः : \n$2",
+       "passwordreset-emailelement": "सदसà¥\8dयनाम : \n$1\n\nअल्पकालीनकूटशब्दः : \n$2",
        "passwordreset-emailsent": "परिवर्तितकूटशब्दस्य वि-पत्रं प्रेषितम् अस्ति ।",
        "passwordreset-emailsent-capture": "परिवर्तितकूटशब्दस्य वि-पत्रं प्रेषितम् अस्ति । तत् अधः द्रष्टुं शक्यते ।",
        "passwordreset-emailerror-capture": "परिवर्तितकूटशब्दस्य वि-पत्रं निर्मितम् अस्ति । तत् अधः द्रष्टुं शक्यते । परन्तु {{GENDER:$2|योजकाय}} प्रेषणकाले तत् निरस्तम् अभवत् : $1",
        "noarticletext": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "noarticletext-nopermission": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "missing-revision": "\"{{FULLPAGENAME}}\" पृष्ठस्य संस्करणं #$1 नोपलभ्यम् ।\nयस्य पृष्ठस्य इतिहासे परिसन्धयः कालातीताः सन्ति, तेषु पृष्ठेषु एवं भवति ।\nअधिकसूचनाः अत्र प्राप्तुं शक्यते [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} अपाकृतानाम् आवलिः].",
-       "userpage-userdoesnotexist": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम पञ्जीकृतं न विद्यते । अस्य\nनवरचनायै/सम्पादनाय तत् पश्यतु ।",
-       "userpage-userdoesnotexist-view": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम पञ्जीकृतं न विद्यते ।",
+       "userpage-userdoesnotexist": "\"$1\" à¤\87ति à¤¸à¤¦à¤¸à¥\8dयनाम पञ्जीकृतं न विद्यते । अस्य\nनवरचनायै/सम्पादनाय तत् पश्यतु ।",
+       "userpage-userdoesnotexist-view": "\"$1\" à¤\87ति à¤¸à¤¦à¤¸à¥\8dयनाम पञ्जीकृतं न विद्यते ।",
        "blocked-notice-logextract": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते ।\nसन्दर्भार्थम् अधः नूतनतमा अवरोधाभिलेख-प्रविष्टिः प्रदत्ताऽस्ति :",
        "clearyourcache": "<strong>सूचना :</strong> भवता/भवत्या कृतानि सम्पादनानि संरक्ष्य तानि परिवर्तनेषु द्रष्टुं गवेषकस्य पृष्ठस्य पुनरारोपणम् (reload) आवश्यकं भवति ।\n* <strong>Firefox / Safari:</strong> <em>Shift</em>कुड्मलेन सह <em>Reload</em>कुड्मलं नुदतु । \n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> नोदनेन पुनरारोपणं भवति । (<em>⌘-R</em> इति Mac तन्त्रांशप्रयोक्तॄभ्यः)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em>कुड्मलेन सह <em>Refresh</em>कुड्मलं नुदतु, <em>Ctrl-F5</em> नुदतु वा ।\n* <strong>Opera:</strong> <em>Tools → Preferences</em> इत्यत्र गत्वा कर्तुं शक्नोति ।",
        "usercssyoucanpreview": "'''सूचना :''' CSS नवीनलिप्याः संरक्षणं करणात् प्राक् एतत् \"{{int:showpreview}}\" नुद्य प्रयोगं करोतु ।",
        "history-feed-empty": "एतत् पृष्ठं न विद्यते । \nएतस्य पृष्ठस्य नामपरिवर्तनम्, अपाकरणं च कृतं स्यात् । \n अनेन सम्बद्धानि पृष्ठानि [[Special:Search|विकि-जालस्थाने अन्विष्यन्ताम्]] ।",
        "history-edit-tags": "चितस्य संस्ककरणस्य चिह्नानि सम्पाद्यन्ताम्",
        "rev-deleted-comment": "(सम्पादनस्य सारः अपाकृतः)",
-       "rev-deleted-user": "(पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अपाकृतमस्ति)",
+       "rev-deleted-user": "(सदसà¥\8dयनाम अपाकृतमस्ति)",
        "rev-deleted-event": "(संरक्षिताऽऽवल्यः(log) अपाकृताः)",
-       "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अन्तर्जालसंविद् वा अपाकृतम् - योगदानाऽऽवल्याम् एतानि परिवर्तनानि निगूहितानि सन्ति ।]",
+       "rev-deleted-user-contribs": "[सदसà¥\8dयनाम अन्तर्जालसंविद् वा अपाकृतम् - योगदानाऽऽवल्याम् एतानि परिवर्तनानि निगूहितानि सन्ति ।]",
        "rev-deleted-text-permission": "एतस्य पृष्ठस्य संस्करणम् <strong>अपाकृतमस्ति</strong> ।\nविस्तृतं विवरणम् अत्र प्राप्स्यति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-text-permission": "एतस्य पृष्ठस्य संस्कृतम् <strong>अपाकृतम्</strong> । तस्य विस्तृतं विवकणं [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} गूहितऽऽवल्याः] प्राप्यते ।",
        "rev-deleted-text-unhide": "एतस्य पृष्ठस्य संस्करणम् <strong>अपाकृतमस्ति</strong> ।\nविस्तृतं ज्ञानम् अत्र प्राप्स्यति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
        "email-address-validity-invalid": "मान्यः वि-पत्रसङ्केतः लिख्यताम्",
        "userrights": "योजकाधिकारस्य प्रबन्धनम्",
        "userrights-lookup-user": "योजकसमूहस्य प्रबन्धनं करोतु",
-       "userrights-user-editname": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम दीयताम्",
+       "userrights-user-editname": "सदसà¥\8dयनाम दीयताम्",
        "editusergroup": "योजकसमूहः सम्पाद्यताम्",
        "editinguser": "'''[[User:$1|$1]]''' इत्यस्य योजकस्य योजकाधिकारः परिवर्त्यते । $2",
        "userrights-editusergroup": "योजकसमूहः सम्पाद्यताम्",
        "right-suppressionlog": "वैयक्तिकसंस्करणानि दृश्यन्ताम्",
        "right-block": "अस्य योजकस्य सम्पादनानि अवरुध्यन्ताम्",
        "right-blockemail": "वि-पत्रप्रेषयितुम् एषः सदस्यः अवरुध्यताम्",
-       "right-hideuser": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
+       "right-hideuser": "सदसà¥\8dयनाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
        "right-ipblock-exempt": "स्वयम् अवरोधितं, समूहावरोधितम् अन्तर्जालसङ्केतम् (IP) अवगण्य अग्रे गच्छतु",
        "right-proxyunbannable": "प्रतिनिधीनां (of prxies) स्वयम्-अवरोधान् अवगण्य अग्रे गच्छतु",
        "right-unblockself": "स्वं मा अवरुध्यताम्",
        "wlheader-showupdated": " येषु पृष्ठेषु भवता/भवत्या परिवर्तनं कृतम् आसीत्, तानि पृष्ठानि अत्र <strong>bold</strong> प्राप्यन्ते ।",
        "wlnote": "$3 : $4 वादनं यावत् <strong>$2</strong> होरां यवात् {{PLURAL:$2|होरायां|होरासु}} {{PLURAL:$1|एकं परिवर्तनं|परिवर्तनानि <strong>$1</strong>}} अधः {{PLURAL:$1|अस्ति|सन्ति}}।",
        "wlshowlast": "अन्तिमाः $1 होराः, अन्तिमानि $2 दिनानि  दृश्यन्ताम्",
+       "watchlistall2": "सर्वाणि",
        "watchlist-options": "निरीक्षासूचेः विकल्पाः",
        "watching": "निरीक्षते...",
        "unwatching": "निरीक्षाम् अपाकरोति...",
index bbdd11d..614a877 100644 (file)
        "wlnote": "Манна кэлиҥҥи {{PLURAL:$2|чаас|<strong>$2</strong> чаас}} иһигэр оҥоһуллубут бүтэһик <strong>$1</strong> уларытыы көрдөрүлүннэ, бу кэминээҕи туругунан $3, $4.",
        "wlshowlast": "Бүтэһик $2 күҥҥэ $1 чааска көрдөр",
        "watchlistall2": "бары",
+       "wlshowtime": "Тиһэҕи көрдөр:",
+       "wlshowhideminor": "кыра суолталаах уларытыы",
+       "wlshowhidebots": "оруобат",
+       "wlshowhideliu": "бэлиэтэммит кыттааччы",
+       "wlshowhideanons": "ааттарын эппэтэх кыттааччы",
+       "wlshowhidepatr": "тургутуллубут уларытыы",
+       "wlshowhidemine": "бэйэм уларытыым",
        "watchlist-options": "Кэтээн көрүү туруоруутун уларытыы",
        "watching": "Кэтээ...",
        "unwatching": "Кэтээмэ...",
        "feedback-bugornote": "Туох кыһалҕаны көрсүбүккүн сиһилии суруйар кыахтаах буоллаххына, бука диэн [$1 алҕас туһунан биллэр].\nОл сатаммат буоллаҕына бу судургу форманы толор. Эн этииҥ ааккын уонна туһанар браузерыҥ аатын кытта манна «[$3 $2]» бэчээттэниэ.",
        "feedback-cancel": "Салҕаама",
        "feedback-close": "Сатанна",
+       "feedback-external-bug-report-button": "Тех. садаанньаны ыытыы",
        "feedback-dialog-title": "Санааҕын ыыт",
        "feedback-dialog-intro": "Санааҕын этэргэ аллара баар судургу форманы туһаныаххын сөп. Оччоҕо Эн аатыҥ уонна этииҥ «$1» сирэйгэ эбиллиэ.",
        "feedback-error-title": "Алҕас",
        "feedback-subject": "Тиэмэ:",
        "feedback-submit": "Ыыт",
        "feedback-terms": "Ыытар сурукпар мин браузерым уонна эпэрээсийэлиир систиэмэм туһунан сибидиэнньэлэр бэчээттэнэллэрин уонна дьоҥҥо аһаҕастык көстүөхтэрин өйдүүбүн.",
+       "feedback-termsofuse": "Туһаныы усулуобуйатынан миигиттэн информация барарын утарбаппын.",
        "feedback-thanks": "Махтал! Эн санааҥ бу сирэйгэ \"[$2 $1]\" сурулунна.",
        "feedback-thanks-title": "Махтал!",
        "feedback-useragent": "Браузерым:",
index 3748b83..c81d0e5 100644 (file)
@@ -12,7 +12,7 @@
                        "Taxandru"
                ]
        },
-       "tog-underline": "Sutalìnia sos ligàmenes",
+       "tog-underline": "Sutalìnia sos ligòngios",
        "tog-hideminor": "Cua is acontzos minores in sa pàgina de is ùrtimas mudàntzias",
        "tog-hidepatrolled": "Cua is mudas verificadas in is ùrtimos càmbios",
        "tog-newpageshidepatrolled": "Cua sas pàginas verificadas dae sa lista de sas pàginas noas",
        "badarticleerror": "Operatzione non cunsentida pro custa pàgina.",
        "cannotdelete": "No est istadu possìbile a burrare sa pàgina o su file \"$1\".\nPodet èsser stadu burradu dae calicunu àteru.",
        "cannotdelete-title": "Impossìbile burrare sa pàgina \"$1\"",
-       "delete-hook-aborted": "Sa burradura est istada annullada dae su hook de s'estensione.\nNo est istadu dadu acrarimentu.",
+       "delete-hook-aborted": "Sa burradura est istada annullada dae su hook de s'estensione.\nNo est istadu datu acrarimentu.",
        "no-null-revision": "Non si podet creare una versione lulla pro sa pàgina \"$1\"",
        "badtitle": "Tìtulu malu",
        "badtitletext": "Su tìtulu de sa pàgina chi as pregontadu est bùidu, isballiadu, o iscritu in is cullegamentus inter-wiki a manera non currègia.\nPodet cuntènnere uno o unos cantos caràteres no ammìtidos pro is tìtulos.",
        "createaccountreason": "Motivu:",
        "createacct-reason": "Motivu",
        "createacct-reason-ph": "Pro ite ses creende un àteru contu",
-       "createacct-captcha": "Còmpudu de siguresa",
-       "createacct-imgcaptcha-ph": "Inseri su testu chi ses bidende in artu",
        "createacct-submit": "Crea su contu tuo",
        "createacct-another-submit": "Crea un àteru contu",
        "createacct-benefit-heading": "{{SITENAME}} est òpera de gente che tue.",
        "passwordreset-emailtitle": "Particulares de s'impitadore in {{SITENAME}}",
        "passwordreset-emailelement": "Nùmene utente: \n$1\n\nPassword temporànea: \n$2",
        "changeemail": "Càmbia indiritzu email",
+       "changeemail-header": "Càmbia s'indirìtzu email de su contu",
        "changeemail-oldemail": "Indiritzu email atuale:",
        "changeemail-newemail": "Indiritzu email nou:",
        "changeemail-none": "(nudda)",
        "notanarticle": "Custa pàgina no est unu artìculu",
        "watchlist-details": "Tenes {{PLURAL:$1|$1 pàgina annotada paris a sa pagina de cuntierra sua|$1 pàginas annotadas paris a is pàginas de cuntierra issoro}}.",
        "wlshowlast": "Ammustra is ùrtimas $1 oras, $2 dies",
+       "watchlistall2": "totu",
        "watchlist-options": "Optziones subra sa lista de pàginas annotadas",
        "watching": "Giunghende a sa watchlist...",
        "unwatching": "Boghende dae sa watchlist...",
        "move-page-legend": "Movimentu pàgina",
        "movepagetext": "Cun custu mòdellu podes renumenare una pàgina, movende totu sa stòria sua a sa pàgina noa.\nSu tìtulu bèciu at a diventare una pàgina de reindiritzamentu a su tìtulu nou.\nPodes agiornare automaticamente is redirects ca ligant a su tìtulu originàriu.\nSi sèberas de no, assicura·ti de controllare pro [[Special:DoubleRedirects| reindiritzaduras dòpias]] o [[Special:BrokenRedirects|sballiadas]].\nSes responsàbile de t'assigurare ca is cullegamentos sighint a puntare  a ue depent puntare.\n\nAnnota ca sa pàgina <strong>non</strong> s'at a mòver si nde esistit giai un'àtera a su tìtulu nou, si no est ki siat bùida o cun sceti unu reindiritzamentu a sa bècia e siat chentza acontzos in antis. In casu de movimentu sballiadu, duncas, si podet torrare a su tìtulu bèciu, ma non podes subrascrìer una pàgina chi giai esistit.\n\n<strong>ATENTZIONE!</strong>\nUnu cambiamentu dràsticu podet creare problemas, mescamente a is pàginas prus populares;\npro praxere depes èsser seguru de àer cumpresu is cunsighèntzias prima de sighire a in antis.",
        "movepagetalktext": "Sa pàgina cuntierras asotziada, chi esistit, at a èssere movida automaticamenti impare a sa pàgina base, '''a parte in custos casos''':\n* su movimentu de sa pàgina est intre namespaces diversos;\n* in currispondèntzia de su tìtulu nou esistit giai una pàgina de cuntierras (non bùida);\n* sa casella inoe in bàsciu no est istata sceberada.\n\nIn custos casos, si cheres, depes mòvere a manu su cuntenutu de sa pàgina.",
-       "movearticle": "Move sa pàgina",
        "movenologintext": "Depes èsser unu impitadore registradu e [[Special:UserLogin|identificadu]] pro pòder mòver una pàgina",
        "newtitle": "Tìtulu nou:",
        "move-watch": "Pone ogru a custa pàgina",
index 5c92af1..e7880ba 100644 (file)
        "nstab-template": "మూస",
        "nstab-help": "సహాయ పేజీ",
        "nstab-category": "వర్గం",
+       "mainpage-nstab": "మొదటి పేజీ",
        "nosuchaction": "అటువంటి కార్యం లేదు",
        "nosuchactiontext": "మీరు URLలో పేర్కొన్న కార్యం సరైనది కాదు.\nమీరు URLని తప్పుగా టైపు చేసివుండవచ్చు లేదా తప్పుడు లింకుని అనుసరించివుండొచ్చు.\n{{SITENAME}} ఉపయోగించే మృదుపరికరంలో దోషమైనా అయివుండవచ్చు.",
        "nosuchspecialpage": "అటువంటి ప్రత్యేక పేజీ లేదు",
        "tooltip-pt-logout": "లాగౌటవండి",
        "tooltip-pt-createaccount": "మీరొక ఖాతాని సృష్టించుకొని ప్రవేశించటాన్ని సమర్ధిస్తున్నాము; కానీ, అది అవసరం కాదు, ఐచ్ఛికం మాత్రమే.",
        "tooltip-ca-talk": "విషయపు పేజీ గురించి చర్చ",
-       "tooltip-ca-edit": "à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80à°°à±\81 à°¸à°°à°¿à°¦à°¿à°¦à±\8dదవà°\9aà±\8dà°\9aà±\81. à°­à°¦à±\8dరపరà°\9aà±\87 à°®à±\81à°\82à°¦à±\81 à°®à±\81à°¨à±\81à°\9cà±\82à°ªà±\81 à°¬à±\8aà°¤à±\8dతానà±\8dని à°µà°¾à°¡à°\82à°¡à°¿.",
+       "tooltip-ca-edit": "à°\88 à°ªà±\87à°\9cà±\80ని à°¸à°µà°°à°¿à°\82à°\9aà°\82à°¡à°¿",
        "tooltip-ca-addsection": "కొత్త విభాగాన్ని మొదలుపెట్టండి",
        "tooltip-ca-viewsource": "ఈ పుటని సంరక్షించారు. మీరు దీని మూలాన్ని చూడవచ్చు",
        "tooltip-ca-history": "ఈ పేజీ యొక్క వెనుకటి కూర్పులు",
        "tooltip-ca-nstab-main": "విషయపు పేజీని చూడండి",
        "tooltip-ca-nstab-user": "వాడుకరి పేజీని చూడండి",
        "tooltip-ca-nstab-media": "మీడియా పేజీని చూడండి",
-       "tooltip-ca-nstab-special": "à°\87ది à°\92à°\95 à°ªà±\8dà°°à°¤à±\8dà°¯à±\87à°\95 à°ªà±\81à°\9f, దీన్ని మీరు సరిదిద్దలేరు",
+       "tooltip-ca-nstab-special": "à°\87ది à°\92à°\95 à°ªà±\8dà°°à°¤à±\8dà°¯à±\87à°\95 à°ªà±\87à°\9cà±\80, దీన్ని మీరు సరిదిద్దలేరు",
        "tooltip-ca-nstab-project": "ప్రాజెక్టు పేజీని చూడండి",
        "tooltip-ca-nstab-image": "ఫైలు పేజీని చూడండి",
        "tooltip-ca-nstab-mediawiki": "వ్యవస్థా సందేశం చూడండి",
        "spam_reverting": "$1 కు లింకులు లేని గత కూర్పుకు తిరిగి తీసుకెళ్తున్నాం",
        "spam_blanking": "$1 కు లింకులు ఉన్న కూర్పులన్నిటినీ ఖాళీ చేస్తున్నాం",
        "spam_deleting": "$1 కు లింకులున్న కూర్పులను తొలగిస్తున్నాం",
-       "simpleantispam-label": "యాà°\82à°\9fà±\80 à°¸à±\8dపామà±\8d à°ªà°°à±\80à°\95à±\8dà°·.\nà°¦à±\80à°¨à±\8dని <strong>à°ªà±\82à°°à°¿à°\82à°\9aకండి</strong>!",
+       "simpleantispam-label": "యాà°\82à°\9fà±\80 à°¸à±\8dపామà±\8d à°ªà°°à±\80à°\95à±\8dà°·.\nà°¦à±\80à°¨à±\8dని <strong>నిà°\82à°ªకండి</strong>!",
        "pageinfo-title": "\"$1\" గురించి సమాచారం",
        "pageinfo-not-current": "పాత కూర్పులకు సంబంధించి ఈ సమాచారాన్ని ఇవ్వడం అసాధ్యం, సారీ.",
        "pageinfo-header-basic": "ప్రాథమిక సమాచారం",
index 1005fa2..69ce4b3 100644 (file)
        "recentchanges-label-unpatrolled": "Bu değişiklik henüz gözlenmemiş",
        "recentchanges-label-plusminus": "Sayfa boyutundaki değişikliğin bayt bazında değeri",
        "recentchanges-legend-heading": "'''Gösterge:'''",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Aynı zamanda bkz: [[Special:NewPages|Yeni sayfaların listesi]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ayrıca [[Special:NewPages|yeni sayfalar listesine]] bakınız)",
        "rcnotefrom": "<strong>$3, $4</strong> tarihinden itibaren yapılan {{PLURAL:$5|değişiklik|değişiklik}} aşağıdadır (<strong>$1</strong> tarhine kadar olanlar gösterilmektedir).",
        "rclistfrom": "$3 $2 tarihinden itibaren yeni değişiklikleri göster",
        "rcshowhideminor": "Küçük değişiklikleri $1",
index 67b7518..9422a77 100644 (file)
        "october-date": "$1 tháng 10",
        "november-date": "$1 tháng 11",
        "december-date": "$1 tháng 12",
-       "pagecategories": "{{PLURAL:$1|Thể loại|Thể loại}}",
+       "pagecategories": "{{PLURAL:$1}}Thể loại",
        "category_header": "Các trang trong thể loại “$1”",
        "subcategories": "Thể loại con",
        "category-media-header": "Các tập tin trong thể loại “$1”",
        "category-empty": "''Thể loại này hiện không có trang hay tập tin nào.''",
-       "hidden-categories": "{{PLURAL:$1|Thể loại ẩn|Thể loại ẩn}}",
+       "hidden-categories": "{{PLURAL:$1}}Thể loại ẩn",
        "hidden-category-category": "Thể loại ẩn",
-       "category-subcat-count": "Thể loại này gồm {{PLURAL:$2|thể loại con sau|{{PLURAL:$1||$1}} thể loại con sau, trên tổng số $2 thể loại con}}.",
+       "category-subcat-count": "Thể loại này gồm {{PLURAL:$2|thể loại con sau|{{PLURAL:$1|thể loại|$1 thể loại}} con sau, trên tổng số $2 thể loại con}}.",
        "category-subcat-count-limited": "Thể loại này gồm {{PLURAL:$1|thể loại con|$1 thể loại con}} sau.",
        "category-article-count": "{{PLURAL:$2|Thể loại này gồm trang sau.|{{PLURAL:$1|Trang|$1 trang}} sau nằm trong thể loại này, trên tổng số $2 trang.}}",
        "category-article-count-limited": "{{PLURAL:$1|Trang|$1 trang}} sau nằm trong thể loại hiện hành.",
        "missingarticle-rev": "(số phiên bản: $1)",
        "missingarticle-diff": "(Khác: $1, $2)",
        "readonly_lag": "Cơ sở dữ liệu bị khóa tự động trong khi các máy chủ cập nhật thông tin của nhau.",
+       "nonwrite-api-promise-error": "Đầu đề HTTP “Promise-Non-Write-API-Action” được gửi nhưng yêu cầu là cho mô đun ghi của API.",
        "internalerror": "Lỗi nội bộ",
        "internalerror_info": "Lỗi nội bộ: $1",
        "internalerror-fatal-exception": "Ngoại lệ chí tử loại “$1”",
        "badtitle": "Tựa trang sai",
        "badtitletext": "Tựa trang yêu cầu không đúng, rỗng, hoặc là một liên kết ngôn ngữ hoặc liên kết wiki sai. Nó có thể chứa một hoặc nhiều ký tự mà tựa trang không thể sử dụng.",
        "title-invalid-empty": "Tiêu đề trang được yêu cầu rỗng hoặc chỉ chứa tên của một không gian tên.",
-       "title-invalid-utf8": "Tiêu đề trang được yêu cầu chứa một chuỗi UTF-8 không hợp lệ",
-       "title-invalid-interwiki": "Tiêu đề trang yêu cầu có chứa một liên kết liên wiki mà không thể được sử dụng làm tiêu đề",
+       "title-invalid-utf8": "Tiêu đề trang được yêu cầu chứa một chuỗi UTF-8 không hợp lệ.",
+       "title-invalid-interwiki": "Tiêu đề trang yêu cầu có chứa một liên kết liên wiki mà không thể được sử dụng làm tiêu đề.",
        "title-invalid-talk-namespace": "Tiêu đề trang đã yêu cầu chỉ đến trang thảo luận không thể tồn tại.",
-       "title-invalid-characters": "Tiêu đề trang đã yêu cầu chứa ký tự không hợp lệ: \"$1\".",
+       "title-invalid-characters": "Tiêu đề trang đã yêu cầu chứa ký tự không hợp lệ: “$1”.",
        "title-invalid-relative": "Tiêu đề có đường dẫn tương đối. Tiêu đề trang tương đối (./, ../) là không hợp lệ , bởi chúng thường sẽ không thể đến được khi được xử lý bởi trình duyệt của người dùng.",
        "title-invalid-magic-tilde": "Tiêu đề trang đã yêu cầu chứa dãy dấu ngã không hợp lệ (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Tiêu đề trang đã yêu cầu quá dài. Tiêu đề phải ngắn hơn $1 {{PLURAL:$1|byte|bytes}} byte theo mã hóa UTF-8.",
+       "title-invalid-too-long": "Tiêu đề trang đã yêu cầu quá dài. Tiêu đề phải ngắn hơn $1 byte theo mã hóa UTF-8.",
        "title-invalid-leading-colon": "Tiêu đề trang đã yêu cầu chứa dấu hai chấm ở đầu là không hợp lệ.",
        "perfcached": "Dữ liệu sau được lấy từ bộ nhớ đệm và có thể đã lỗi thời. Tối đa có sẵn {{PLURAL:$1|một kết quả|$1 kết quả}} trong bộ nhớ đệm.",
        "perfcachedts": "Dữ liệu dưới đây được đưa vào vùng nhớ đệm và được cập nhật lần cuối lúc $1. Tối đa có sẵn {{PLURAL:$4|một kết quả|$4 kết quả}} trong vùng nhớ đệm.",
        "accountcreated": "Mở tài khoản thành công",
        "accountcreatedtext": "Tài khoản thành viên cho [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|thảo luận]]) đã được mở.",
        "createaccount-title": "Tài khoản mới tại {{SITENAME}}",
-       "createaccount-text": "Ai đó đã tạo một tài khoản với tên $2 tại {{SITENAME}} ($4). Mật khẩu của \"$2\" là \"$3\". Bạn nên đăng nhập và đổi mật khẩu ngay bây giờ.\n\nXin hãy bỏ qua thông điệp này nếu tài khoản này không phải do bạn tạo ra.",
+       "createaccount-text": "Ai đó đã tạo một tài khoản với tên $2 tại {{SITENAME}} ($4). Mật khẩu của “$2” là “$3”. Bạn nên đăng nhập và đổi mật khẩu ngay bây giờ.\n\nXin hãy bỏ qua thông điệp này nếu tài khoản này không phải do bạn tạo ra.",
        "login-throttled": "Bạn đã hết quyền thử mật khẩu tài khoản này vì bạn đã nhập sai quá nhiều. Xin hãy đợi $1 rồi hãy thử lại.",
        "login-abort-generic": "Thất bại khi đăng nhập",
        "login-migrated-generic": "Tài khoản của bạn đã được hợp nhất, và tên đăng nhập của bạn không còn tồn tại trên wiki này.",
        "passwordreset-emailsent-capture": "Thư điện tử để tái tạo mật khẩu đã được gửi, nội dung như sau.",
        "passwordreset-emailerror-capture": "Chúng tôi đã tạo thư tái tạo mật khẩu dưới đây, nhưng không thể gửi đến {{GENDER:$2}}người dùng: $1",
        "changeemail": "Đổi hoặc gỡ địa chỉ thư điện tử",
-       "changeemail-header": "Đổi địa chỉ thư điện tử của tài khoản",
+       "changeemail-header": "Điền biểu mẫu này để đổi địa chỉ thư điện tử của bạn. Nếu bạn muốn gỡ địa chỉ thư điện tử nào khỏi tài khoản của bạn, để trống hộp địa chỉ thư điện tử mới và lưu biểu mẫu.",
+       "changeemail-passwordrequired": "Bạn sẽ cần phải nhập mật khẩu của bạn để xác nhận thay đổi này.",
        "changeemail-no-info": "Bạn phải đăng nhập mới có thể truy cập trực tiếp trang này.",
        "changeemail-oldemail": "Địa chỉ thư điện tử hiện tại:",
        "changeemail-newemail": "Địa chỉ thư điện tử mới:",
        "missingsummary": "'''Nhắc nhở:''' Bạn đã không ghi lại tóm lược sửa đổi. Nếu bạn nhấn Lưu trang một lần nữa, sửa đổi của bạn sẽ được lưu mà không có tóm lược.",
        "selfredirect": "<strong>Cảnh báo:</strong> Bạn sắp đổi hướng trang này đến chính trang này.\nCó lẽ bạn đã định rõ mục tiêu sai hoặc bạn đang sửa trang sai.\nNếu bạn bấm “{{int:savearticle}}” lần nữa, trang đổi hướng sẽ được tạo ra.",
        "missingcommenttext": "Xin hãy gõ vào lời bàn luận ở dưới.",
-       "missingcommentheader": "'''Nhắc nhở:''' Bạn chưa ghi chủ đề/tiêu đề cho bàn luận này.\nNếu bạn nhấn nút \"{{int:savearticle}}\" lần nữa, sửa đổi của bạn sẽ được lưu mà không có đề mục.",
+       "missingcommentheader": "<strong>Nhắc nhở:</strong> Bạn chưa ghi chủ đề/tiêu đề cho bàn luận này.\nNếu bạn nhấn nút “{{int:savearticle}}” lần nữa, sửa đổi của bạn sẽ được lưu mà không có đề mục.",
        "summary-preview": "Xem trước dòng tóm lược:",
        "subject-preview": "Xem trước đề mục:",
        "previewerrortext": "Có lỗi xảy ra khi xem trước những thay đổi của bạn.",
        "yourdiff": "Khác",
        "copyrightwarning": "Xin chú ý rằng tất cả các đóng góp của bạn tại {{SITENAME}} được xem là sẽ phát hành theo giấy phép $2 (xem $1 để biết thêm chi tiết). Nếu bạn không muốn trang của bạn bị sửa đổi không thương tiếc và không sẵn lòng cho phép phát hành lại, đừng đăng trang ở đây.<br />\nBạn phải đảm bảo với chúng tôi rằng chính bạn là người viết nên, hoặc chép nó từ một nguồn thuộc phạm vi công cộng hoặc tự do tương đương.\n'''ĐỪNG ĐĂNG TÁC PHẨM CÓ BẢN QUYỀN MÀ CHƯA XIN PHÉP!'''",
        "copyrightwarning2": "Xin chú ý rằng tất cả các đóng góp của bạn tại {{SITENAME}} có thể được sửa đổi, thay thế, hoặc xóa bỏ bởi các thành viên khác. Nếu bạn không muốn trang của bạn bị sửa đổi không thương tiếc, đừng đăng trang ở đây.<br />\nBạn phải đảm bảo với chúng tôi rằng chính bạn là người viết nên, hoặc chép nó từ một nguồn thuộc phạm vi công cộng hoặc tự do tương đương (xem $1 để biết thêm chi tiết).\n'''ĐỪNG ĐĂNG TÁC PHẨM CÓ BẢN QUYỀN MÀ CHƯA XIN PHÉP!'''",
-       "editpage-cannot-use-custom-model": "Mẫu nội dung của trang này không thể thay.",
+       "editpage-cannot-use-custom-model": "Không thể thay đổi kiểu nội dung của trang này.",
        "longpageerror": "'''Lỗi: Văn bạn mà bạn muốn lưu dài $1 kilôbyte, dài hơn độ dài tối đa cho phép $2 kilôbyte.'''\nKhông thể lưu trang.",
        "readonlywarning": "'''CẢNH BÁO: Cơ sở dữ liệu đã bị khóa để bảo dưỡng, do đó bạn không thể lưu các sửa đổi của mình. Bạn nên cắt-dán đoạn bạn vừa sửa vào một tập tin và lưu nó lại để sửa đổi sau này.'''\n\nBảo quản viên khi khóa dữ liệu đã đưa ra lý do: $1",
        "protectedpagewarning": "'''Cảnh báo: Trang này đã bị khóa và chỉ có các thành viên có quyền quản lý mới có thể sửa được.'''\nThông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
        "sectioneditnotsupported-title": "Không hỗ trợ sửa đổi đề mục",
        "sectioneditnotsupported-text": "Trang sửa đổi này không hỗ trợ sửa đổi đề mục.",
        "permissionserrors": "Không có quyền thực hiện",
-       "permissionserrorstext": "Bạn không có quyền thực hiện thao tác đó, vì {{PLURAL:$1|lý do|lý do}}:",
-       "permissionserrorstext-withaction": "Bạn không quyền $2, với {{PLURAL:$1|lý do|lý do}} sau:",
+       "permissionserrorstext": "Bạn không có quyền thực hiện thao tác đó, vì {{PLURAL:$1|lý do|các lý do}} sau:",
+       "permissionserrorstext-withaction": "Bạn không quyền $2, với {{PLURAL:$1|lý do|các lý do}} sau:",
+       "contentmodelediterror": "Bạn không thể sửa đổi phiên bản này vì kiểu nội dung của nó là <code>$1</code>, trong khi kiểu nội dung của trang là <code>$2</code>.",
        "recreate-moveddeleted-warn": "'''Cảnh báo: Bạn sắp tạo lại một trang từng bị xóa trước đây.'''\n\nBạn nên cân nhắc trong việc tiếp tục soạn thảo trang này.\nCác nhật trình xóa và di chuyển của trang được đưa ra dưới đây để tiện theo dõi:",
        "moveddeleted-notice": "Trang này đã bị xóa.\nCác nhật trình xóa và di chuyển của trang được đưa ra dưới đây để tiện theo dõi.",
        "moveddeleted-notice-recent": "Rất tiếc, trang này vừa bị xóa (trong vòng 24 giờ trước).\nCác nhật trình xóa và di chuyển của trang được đưa ra dưới đây để tiện theo dõi.",
        "content-not-allowed-here": "Không cho phép đưa nội dung “$1” vào trang [[$2]]",
        "editwarning-warning": "Rời khỏi trang này sẽ khiến bạn mất các sửa đổi đã thực hiện.\nNếu đã đăng nhập, bạn có thể tắt cảnh báo này tại mục “{{int:prefs-editing}}” trong tùy chọn cá nhân.",
        "editpage-notsupportedcontentformat-title": "Không hỗ trợ định dạng nội dung",
-       "editpage-notsupportedcontentformat-text": "Mô hình nội dung $2 không hỗ trợ định dạng nội dung $1.",
+       "editpage-notsupportedcontentformat-text": "Kiểu nội dung $2 không hỗ trợ định dạng nội dung $1.",
        "content-model-wikitext": "mã wiki",
        "content-model-text": "văn bản thuần",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "content-json-empty-object": "Đối tượng trống",
        "content-json-empty-array": "Mảng trống",
-       "duplicate-args-warning": "<strong>Cảnh báo:</strong> [[:$1]] đang gọi  [[:$2]] với nhiều hơn một giá trị cho thông số \"$3\". Chỉ giá trị cuối cùng mới được sử dụng.",
+       "duplicate-args-warning": "<strong>Cảnh báo:</strong> [[:$1]] đang gọi  [[:$2]] với nhiều hơn một giá trị cho thông số “$3”. Chỉ giá trị cuối cùng mới được sử dụng.",
        "duplicate-args-category": "Trang đưa đối số thừa vào bản mẫu",
        "duplicate-args-category-desc": "Trang đưa một đối số nhiều lần vào một bản mẫu được nhúng, thí dụ <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> hoặc <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
-       "expensive-parserfunction-warning": "Cảnh báo: Trang này có quá nhiều lần gọi hàm cú pháp cần mức độ xử lý cao.\n\nNó nên ít hơn $2 {{PLURAL:$2|lần gọi|lần gọi}}, hiện giờ đang là {{PLURAL:$1|$1 lần gọi|$1 lần gọi}}.",
+       "expensive-parserfunction-warning": "Cảnh báo: Trang này có quá nhiều lần gọi hàm cú pháp cần mức độ xử lý cao.\n\nNó nên ít hơn $2 lần gọi, hiện giờ đang là $1 lần gọi.",
        "expensive-parserfunction-category": "Trang có quá nhiều lời gọi hàm cú pháp cần mức độ xử lý cao",
        "post-expand-template-inclusion-warning": "Cảnh báo: Kích thước bản mẫu nhúng vào quá lớn.\nMột số bản mẫu sẽ không được đưa vào.",
        "post-expand-template-inclusion-category": "Trang có kích thước bản mẫu nhúng vào vượt quá giới hạn cho phép",
        "history-feed-description": "Lịch sử thay đổi của trang này ở wiki",
        "history-feed-item-nocomment": "$1 vào lúc $2",
        "history-feed-empty": "Trang bạn yêu cầu không tồn tại. Có thể là nó đã bị xóa khỏi wiki hay được đổi tên. Hãy [[Special:Search|tìm kiếm trong wiki]] về các trang mới có liên quan.",
-       "history-edit-tags": "Sửa đổi thẻ đánh dấu của các bản xem trước đã chọn",
+       "history-edit-tags": "Sửa đổi thẻ của các phiên bản đã chọn",
        "rev-deleted-comment": "(tóm lược sửa đổi đã bị xóa)",
        "rev-deleted-user": "(tên người dùng đã bị xóa)",
        "rev-deleted-event": "(chi tiết nhật trình đã bị xóa)",
        "mergehistory-go": "Hiển thị các sửa đổi có thể trộn được",
        "mergehistory-submit": "Trộn các sửa đổi",
        "mergehistory-empty": "Không thể trộn được sửa đổi nào.",
-       "mergehistory-done": "$3 {{PLURAL:$3|sửa đổi|sửa đổi}} của $1 đã được trộn vào [[:$2]].",
+       "mergehistory-done": "$3 phiên bản của $1 đã được trộn vào [[:$2]].",
        "mergehistory-fail": "Không thể thực hiện được việc trộn lịch sử sửa đổi, vui lòng chọn lại trang cũng như thông số ngày giờ.",
        "mergehistory-fail-toobig": "Không thể trộn lịch sử vì phải di chuyển $1 phiên bản và vượt quá giới hạn cho phép.",
        "mergehistory-no-source": "Trang nguồn $1 không tồn tại.",
        "nextn": "{{PLURAL:$1|$1}} mục sau",
        "prev-page": "Trang trước",
        "next-page": "Trang sau",
-       "prevn-title": "$1 {{PLURAL:$1|kết quả|kết quả}} trước",
-       "nextn-title": "$1 {{PLURAL:$1|kết quả|kết quả}} sau",
-       "shown-title": "Hiển thị $1 {{PLURAL:$1|kết quả|kết quả}} mỗi trang",
+       "prevn-title": "$1 kết quả trước",
+       "nextn-title": "$1 kết quả sau",
+       "shown-title": "Hiển thị $1 kết quả mỗi trang",
        "viewprevnext": "Xem ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "<strong>Có trang với tên “[[:$1]]” trên wiki này.</strong> {{PLURAL:$2|0=|Xem thêm các kết quả tìm kiếm bên dưới:}}",
        "searchmenu-new": "'''Tạo trang “[[:$1]]” trên wiki này!''' {{PLURAL:$2|0=|Xem thêm {{PLURAL:$2|kết quả|các kết quả}} tìm kiếm:}}",
        "search-relatedarticle": "Liên quan",
        "searchrelated": "có liên quan",
        "searchall": "tất cả",
-       "showingresults": "Dưới đây là {{PLURAL:$1|'''1'''|'''$1'''}} kết quả bắt đầu từ #'''$2'''.",
+       "showingresults": "Dưới đây là cho đến <strong>$1</strong> kết quả bắt đầu từ #<strong>$2</strong>.",
        "showingresultsinrange": "Dưới đây là cho tới <strong>$1</strong> kết quả từ #<strong>$2</strong> đến #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Kết quả thứ <strong>$1</strong> trong tổng số <strong>$3</strong>|Các kết quả <strong>$1–$2</strong> trong tổng số <strong>$3</strong>}}",
        "search-nonefound": "Không có kết quả nào khớp với câu truy vấn.",
+       "search-nonefound-thiswiki": "Không có kết quả nào khớp với truy câu truy vấn trong website này.",
        "powersearch-legend": "Tìm kiếm nâng cao",
        "powersearch-ns": "Tìm trong không gian tên:",
        "powersearch-togglelabel": "Chọn:",
        "prefs-rc": "Thay đổi gần đây",
        "prefs-watchlist": "Theo dõi",
        "prefs-editwatchlist": "Sửa các trang tôi theo dõi",
-       "prefs-editwatchlist-label": "Chỉnh sửa các mục trong danh sách theo dõi của bạn:",
+       "prefs-editwatchlist-label": "Sửa đổi các mục trong danh sách theo dõi của bạn:",
        "prefs-editwatchlist-edit": "Xem và xoá các tiêu đề trong danh sách theo dõi của bạn",
        "prefs-editwatchlist-raw": "Sửa danh sách theo dõi dạng thô",
        "prefs-editwatchlist-clear": "Xóa sạch danh sách theo dõi của bạn",
        "stub-threshold-sample-link": "ví dụ",
        "stub-threshold-disabled": "Tắt",
        "recentchangesdays": "Số ngày hiển thị trong thay đổi gần đây:",
-       "recentchangesdays-max": "(tối đa $1 {{PLURAL:$1|ngày|ngày}})",
+       "recentchangesdays-max": "(tối đa $1 ngày)",
        "recentchangescount": "Số sửa đổi hiển thị mặc định:",
        "prefs-help-recentchangescount": "Số này bao gồm các thay đổi gần đây, lịch sử trang, và nhật trình.",
        "prefs-help-watchlist-token2": "Đây là chìa khóa bí mật cho nguồn cấp dữ liệu danh sách theo dõi của bạn.\nBất cứ ai biết nó sẽ có thể để đọc danh sách theo dõi của bạn, vì vậy đừng chia sẻ nó.\n[[Special:ResetTokens|Nhấn chuột vào đây nếu bạn cần phải thiết lập lại nó]].",
        "savedprefs": "Đã lưu các tùy chọn cá nhân.",
+       "savedrights": "Đã lưu các quyền hạn của người dùng {{GENDER:$1}}$1.",
        "timezonelegend": "Múi giờ:",
        "localtime": "Giờ hiện tại:",
        "timezoneuseserverdefault": "Sử dụng giờ mặc định của wiki ($1)",
        "badsig": "Chữ ký không hợp lệ; hãy kiểm tra thẻ HTML.",
        "badsiglength": "Chữ ký của bạn quá dài.\nNó không được dài quá $1 ký tự.",
        "yourgender": "Bạn muốn được miêu tả như thế nào?",
-       "gender-unknown": "Khi nhắc nhở bạn, phần mềm sẽ sử dụng các từ chỉ giới tính trung tính bất cứ khi nào có thể",
+       "gender-unknown": "Khi nhắc đến bạn, phần mềm sẽ sử dụng các từ chỉ giới tính trung tính bất cứ khi nào có thể",
        "gender-male": "Nam",
        "gender-female": "Nữ",
        "prefs-help-gender": "Tùy chỉnh này không được bắt buộc.\nPhần mềm sử dụng giá trị này để xưng hô bạn với giới tính đúng.\nThông tin này là công khai.",
        "userrights-lookup-user": "Quản lý nhóm thành viên",
        "userrights-user-editname": "Nhập tên thành viên:",
        "editusergroup": "Sửa nhóm thành viên",
-       "editinguser": "Thay đổi quyền hạn thành viên  của {{GENDER:$1|user}} <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "Thay đổi quyền hạn của người dùng <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Sửa nhóm thành viên",
        "saveusergroups": "Lưu nhóm thành viên",
        "userrights-groupsmember": "Thuộc nhóm:",
        "right-protect": "Thay đổi mức khóa và sửa trang khóa theo tầng",
        "right-editprotected": "Sửa trang khóa ở mức “{{int:protect-level-sysop}}”",
        "right-editsemiprotected": "Sửa trang khóa ở mức “{{int:protect-level-autoconfirmed}}”",
-       "right-editcontentmodel": "Sửa mô hình nội dung của trang",
+       "right-editcontentmodel": "Sửa kiểu nội dung của trang",
        "right-editinterface": "Sửa giao diện người dùng",
        "right-editusercssjs": "Sửa tập tin CSS và JS của người dùng khác",
        "right-editusercss": "Sửa tập tin CSS của người dùng khác",
        "right-passwordreset": "Xem các thư điện tử đặt lại mật khẩu",
        "right-managechangetags": "Tạo và xóa [[Special:Tags|thẻ]] từ cơ sở dữ liệu",
        "right-applychangetags": "Áp dụng [[Special:Tags|thẻ]], cùng với những thay đổi của một người",
-       "right-changetags": "Thêm và loại bỏ tùy ý các [[Special:Tags|thẻ]]  vào các phiên bản cá nhân và các mục đăng nhập",
+       "right-changetags": "Thêm và loại bỏ tùy ý các [[Special:Tags|thẻ]] vào các phiên bản riêng và các mục nhật trình",
        "newuserlogpage": "Nhật trình mở tài khoản",
        "newuserlogpagetext": "Đây là danh sách những tài khoản thành viên mở lên gần đây.",
        "rightslog": "Nhật trình cấp quyền thành viên",
        "action-viewmywatchlist": "xem danh sách theo dõi của mình",
        "action-viewmyprivateinfo": "xem thông tin cá nhân của bạn",
        "action-editmyprivateinfo": "sửa đổi thông tin cá nhân của bạn",
-       "action-editcontentmodel": "sửa mô hình nội dung của trang",
+       "action-editcontentmodel": "sửa kiểu nội dung của trang",
        "action-managechangetags": "tạo và xóa các thẻ từ cơ sở dữ liệu",
        "action-applychangetags": "áp dụng các thẻ cùng với những thay đổi của bạn",
-       "action-changetags": "thêm và loại bỏ các thẻ tùy ý trên các phiên bản cá nhân và các mục đăng nhập",
-       "nchanges": "$1 {{PLURAL:$1|thay đổi|thay đổi}}",
+       "action-changetags": "thêm và loại bỏ các thẻ tùy ý trên các phiên bản riêng và các mục nhật trình",
+       "nchanges": "$1 thay đổi",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sau lần truy cập vừa rồi}}",
        "enhancedrc-history": "lịch sử",
        "recentchanges": "Thay đổi gần đây",
        "uploaddisabledtext": "Chức năng tải tập tin đã bị tắt.",
        "php-uploaddisabledtext": "Việc tải tập tin trong PHP đã bị tắt. Xin hãy kiểm tra lại thiết lập file_uploads.",
        "uploadscripted": "Tập tin này có chứa mã HTML hoặc kịch bản có thể khiến trình duyệt web thông dịch sai.",
-       "upload-scripted-pi-callback": "Không thể tải lên một file có chứa lệnh xử lý XML-stylesheet",
+       "upload-scripted-pi-callback": "Không thể tải lên một tập tin có chứa lệnh xử lý xml-stylesheet.",
        "uploaded-script-svg": "Tìm thấy phần tử “$1” có khả năng chạy kịch bản trong tập tin SVG được tải lên.",
        "uploaded-hostile-svg": "Tìm thấy CSS nguy hiểm trong phần tử style của tập tin SVG được tải lên.",
        "uploaded-event-handler-on-svg": "Không cho phép đặt thuộc tính xử lý sự kiện <code>$1=\"$2\"</code> trong tập tin SVG.",
        "uploaded-href-unsafe-target-svg": "Tìm thấy href đến đích nguy hiểm <code>&lt;$1 $2=\"$3\"&gt;</code> trong tập tin SVG được tải lên.",
        "uploaded-animate-svg": "Tìm thấy thẻ “animate” có thể thay đổi href qua thuộc tính “from” <code>&lt;$1 $2=\"$3\"&gt;</code> trong tập tin SVG được tải lên.",
        "uploaded-setting-event-handler-svg": "Đã ngăn cản việc đặt thuộc tính xử lý sự kiện khi tìm thấy <code>&lt;$1 $2=\"$3\"&gt;</code> trong tập tin SVG được tải lên.",
-       "uploaded-setting-href-svg": "Sử dụng tag \"set\" để thêm thuộc tính \"href\" tới thành phần mẹ bị khóa.",
+       "uploaded-setting-href-svg": "Cấm sử dụng thẻ “set” để thêm thuộc tính “href” vào phần tử mẹ.",
        "uploaded-wrong-setting-svg": "Đã ngăn cản việc sử dụng thẻ “set” để thêm đích bên ngoài/dữ liệu/kịch bản vào thuộc tính nào đó. Tìm thấy <code>&lt;set to=\"$1\"&gt;</code> trong tập tin SVG được tải lên.",
        "uploaded-setting-handler-svg": "Đã ngăn cản mã SVG đặt thuộc tính “handler” là từ xa/dữ liệu/kịch bản. Tìm thấy <code>$1=\"$2\"</code> trong tập tin SVG được tải lên.",
        "uploaded-remote-url-svg": "Đã ngăn cản mã SVG đặt thuộc tính style nào đó là URL ngoài máy. Tìm thấy <code>$1=\"$2\"</code> trong tập tin SVG được tải lên.",
        "upload-options": "Tùy chọn tải lên",
        "watchthisupload": "Theo dõi tập tin này",
        "filewasdeleted": "Một tên với tên này đã được tải lên trước đã rồi sau đó bị xóa. Bạn nên kiểm tra lại $1 trước khi tải nó lên lại lần nữa.",
+       "filename-thumb-name": "Hình như đây là tên của một hình thu nhỏ được tự động tạo ra. Xin đừng tải lên những hình nhỏ lại vào wiki ban đầu. Nếu không phải, xin vui lòng sửa tên tập tin để rõ ràng hơn và dời tiền tố cỡ hình khỏi tên.",
        "filename-bad-prefix": "Tên cho tập tin mà bạn đang tải lên bắt đầu bằng '''“$1”''', đây không phải là dạng tên tiêu biểu có tính chất miêu tả do các máy chụp ảnh số tự động đặt. Xin hãy chọn một tên có tính chất miêu tả và gợi nhớ hơn cho tập tin của bạn.",
        "filename-prefix-blacklist": " #<!-- xin để nguyên hàng này --> <pre>\n# Cú pháp như sau:\n#   * Các ký tự từ dấu \"#\" trở đến cuối hàng là chú thích\n#   * Các dòng sau là các tiền tố do các máy ảnh số gán tự động cho tên tập tin\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # một số điện thoại di động\nIMG # tổng quát\nJD # Jenoptik\nMGP # Pentax\nPICT # khác\n #</pre> <!-- xin để nguyên hàng này -->",
        "upload-success-subj": "Đã tải xong",
        "foreign-structured-upload-form-label-own-work": "Đây là tác phẩm của chính tôi",
        "foreign-structured-upload-form-label-infoform-categories": "Thể loại",
        "foreign-structured-upload-form-label-infoform-date": "Ngày tháng",
+       "foreign-structured-upload-form-label-own-work-message-local": "Tôi xác nhận rằng tôi tải lên tập tin này tuân theo các điều khoản sử dụng và quy định giấy phép của {{SITENAME}}.",
+       "foreign-structured-upload-form-label-not-own-work-message-local": "Nếu bạn không được phép tải lên tập tin này tuân theo quy định của {{SITENAME}}, xin vui lòng đóng hộp thoại này và thử tải lên bằng một phương pháp khác.",
+       "foreign-structured-upload-form-label-not-own-work-local-local": "Bạn cũng có thể muốn sử dụng [[Special:Upload|trang tải lên mặc định]].",
        "foreign-structured-upload-form-label-own-work-message-default": "Tôi hiểu rằng tôi đang tải tập tin này lên một kho dùng chung. Tôi xác nhận rằng tôi làm việc này tuân theo các điều khoản sử dụng và quy định về giấy phép tại đấy.",
        "foreign-structured-upload-form-label-not-own-work-message-default": "Nếu bạn không có thể tải tập tin này lên mà tuân theo quy định của kho dùng chung, xin vui lòng đóng hộp thoại này và thử một cách khác.",
        "foreign-structured-upload-form-label-not-own-work-local-default": "Bạn có thể muốn thử [[Special:Upload|trang tải lên tại {{SITENAME}}]] nếu tập tin này có thể được tải lên đấy theo các quy định của họ.",
        "listfiles-delete": "xóa",
        "listfiles-summary": "Trang đặc biệt này liệt kê các tập tin được tải lên.",
        "listfiles_search_for": "Tìm kiếm theo tên tập tin:",
-       "listfiles-userdoesnotexist": "Tài khoản người dùng \"$1\" không được đăng ký.",
+       "listfiles-userdoesnotexist": "Tài khoản người dùng “$1” không được đăng ký.",
        "imgfile": "tập tin",
        "listfiles": "Danh sách tập tin",
        "listfiles_thumb": "Hình nhỏ",
        "withoutinterwiki-legend": "Tiền tố",
        "withoutinterwiki-submit": "Xem",
        "fewestrevisions": "Trang có ít sửa đổi nhất",
-       "nbytes": "$1 {{PLURAL:$1|byte|byte}}",
-       "ncategories": "$1 {{PLURAL:$1|thể loại|thể loại}}",
+       "nbytes": "$1 byte",
+       "ncategories": "$1 thể loại",
        "ninterwikis": "$1 liên kết liên wiki",
-       "nlinks": "$1 {{PLURAL:$1|liên kết|liên kết}}",
+       "nlinks": "$1 liên kết",
        "nmembers": "$1 trang",
        "nmemberschanged": "$1 → $2 trang",
        "nrevisions": "$1 phiên bả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}}",
+       "usereditcount": "$1 sửa đổi",
        "usercreated": "{{GENDER:$3}}mở $1 lúc $2",
        "newpages": "Trang mới",
        "newpages-username": "Tên người dùng:",
        "listgrouprights-removegroup-self-all": "Có thể loại tài khoản của chính mình ra khỏi tất cả các nhóm",
        "listgrouprights-namespaceprotection-header": "Hạn chế không gian tên",
        "listgrouprights-namespaceprotection-namespace": "Không gian tên",
-       "listgrouprights-namespaceprotection-restrictedto": "Quyền cho phép người dùng chỉnh sửa",
+       "listgrouprights-namespaceprotection-restrictedto": "Quyền cho phép người dùng sửa đổi",
        "trackingcategories": "Thể loại phần mềm",
        "trackingcategories-summary": "Đây là danh sách các thể loại được phần mềm MediaWiki tự động xếp trang vào. Các tên thể loại được định rõ trong các thông điệp thuộc không gian tên {{ns:8}}.",
        "trackingcategories-msg": "Thể loại phần mềm",
        "emailuser-title-target": "{{GENDER:$1}}Gửi thư cho người dùng này",
        "emailuser-title-notarget": "Gửi thư cho người dùng",
        "emailpagetext": "{{GENDER:$1}}Mẫu dưới đây sẽ gửi một bức thư điện tử tới người dùng này.\nĐịa chỉ thư điện tử mà bạn đã cung cấp trong [[Special:Preferences|tùy chọn cá nhân của mình]] sẽ xuất hiện trong phần địa chỉ “Người gửi” của bức thư, do đó người nhận sẽ có thể trả lời trực tiếp cho bạn.",
-       "defemailsubject": "Thư của người dùng \"$1\" tại {{SITENAME}}",
+       "defemailsubject": "Thư của người dùng “$1” tại {{SITENAME}}",
        "usermaildisabled": "Chức năng gửi thư cho người dùng đã bị tắt.",
        "usermaildisabledtext": "Bạn không thể gửi thư điện tử cho những người dùng khác trên wiki này.",
        "noemailtitle": "Không có địa chỉ nhận thư",
        "wlnote": "Dưới đây là {{PLURAL:$1|thay đổi duy nhất|<strong>$1</strong> thay đổi gần nhất}} trong {{PLURAL:$2|giờ|<strong>$2</strong> giờ}} qua, tính tới $3 lúc $4.",
        "wlshowlast": "Hiển thị $1 giờ $2 ngày gần đây",
        "watchlistall2": "tất cả",
+       "wlshowtime": "Hiện các mục gần đây:",
+       "wlshowhideminor": "sửa đổi nhỏ",
+       "wlshowhidebots": "bot",
+       "wlshowhideliu": "người dùng có tài khoản",
+       "wlshowhideanons": "người dùng vô danh",
+       "wlshowhidepatr": "sửa đổi đã tuần tra",
+       "wlshowhidemine": "sửa đổi của tôi",
        "watchlist-options": "Tùy chọn về danh sách theo dõi",
        "watching": "Đang theo dõi…",
        "unwatching": "Đang ngừng theo dõi…",
        "deletereasonotherlist": "Lý do khác",
        "deletereason-dropdown": "*Các lý do xóa phổ biến\n** Đăng tỉ thư rác\n** Phá hoại\n** Vi phạm bản quyền\n** Tác giả yêu cầu\n** Chuyển hướng sai",
        "delete-edit-reasonlist": "Sửa lý do xóa",
-       "delete-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn {{PLURAL:$1|lần|lần}} sửa đổi.\nViệc xóa các trang như vậy bị hạn chế để ngăn ngừa phá hoại do vô ý cho {{SITENAME}}.",
-       "delete-warning-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn {{PLURAL:$1|lần|lần}} sửa đổi.\nViệc xóa các trang có thể làm tổn hại đến hoạt động của cơ sở dữ liệu {{SITENAME}};\nhãy cẩn trọng khi thực hiện.",
+       "delete-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn $1 lần sửa đổi.\nViệc xóa các trang như vậy bị hạn chế để ngăn ngừa phá hoại do vô ý cho {{SITENAME}}.",
+       "delete-warning-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn $1 lần sửa đổi.\nViệc xóa các trang có thể làm tổn hại đến hoạt động của cơ sở dữ liệu {{SITENAME}};\nhãy cẩn trọng khi thực hiện.",
        "deleteprotected": "Bạn không thể xóa trang này vì nó đã được khóa lại.",
        "deleting-backlinks-warning": "'''Cảnh báo:''' Có [[Special:WhatLinksHere/{{FULLPAGENAME}}|trang khác]] liên kết đến hoặc nhúng trang mà bạn sắp xóa.",
        "rollback": "Lùi tất cả sửa đổi",
        "changecontentmodel-model-label": "Kiểu nội dung mới",
        "changecontentmodel-reason-label": "Lý do:",
        "changecontentmodel-success-title": "Kiểu nội dung đã thay đổi",
-       "changecontentmodel-success-text": "Loại nội dung của [[:$1]] đã được thay đổi.",
+       "changecontentmodel-success-text": "Kiểu nội dung của [[:$1]] đã được thay đổi.",
        "changecontentmodel-cannot-convert": "Không thể chuyển đổi nội dung [[:$1]] thành nội dung dưới dạng $2.",
-       "changecontentmodel-nodirectediting": "Mô hình nội dung $1 không hỗ trợ sửa đổi trực tiếp",
-       "log-name-contentmodel": "Nhật trình thay đổi mô hình nội dung",
-       "log-description-contentmodel": "Sự kiện có liên quan đến mô hình nội dung của trang.",
-       "logentry-contentmodel-change": "$1 {{GENDER:$2}}đã thay đổi mô hình nội dung của trang $3 từ “$4” thành “$5”",
+       "changecontentmodel-nodirectediting": "Kiểu nội dung $1 không hỗ trợ sửa đổi trực tiếp",
+       "log-name-contentmodel": "Nhật trình thay đổi kiểu nội dung",
+       "log-description-contentmodel": "Sự kiện có liên quan đến kiểu nội dung của trang.",
+       "logentry-contentmodel-change": "$1 {{GENDER:$2}}đã thay đổi kiểu nội dung của trang $3 từ “$4” thành “$5”",
        "logentry-contentmodel-change-revertlink": "lùi lại",
        "logentry-contentmodel-change-revert": "lùi lại",
        "protectlogpage": "Nhật trình khóa",
        "undeleteviewlink": "xem",
        "undeleteinvert": "Đảo sự lựa chọn",
        "undeletecomment": "Lý do:",
-       "undeletedrevisions": "$1 {{PLURAL:$1|bản|bản}} được phục hồi",
-       "undeletedrevisions-files": "$1 {{PLURAL:$1|bản|bản}} và $2 {{PLURAL:$2|tập tin|tập tin}} đã được phục hồi",
-       "undeletedfiles": "$1 {{PLURAL:$1|tập tin|tập tin}} đã được phục hồi",
+       "undeletedrevisions": "$1 phiên bản được phục hồi",
+       "undeletedrevisions-files": "$1 phiên bản và $2 tập tin đã được phục hồi",
+       "undeletedfiles": "$1 tập tin đã được phục hồi",
        "cannotundelete": "Phục hồi thất bại:\n$1",
        "undeletedpage": "'''$1 đã được khôi phục'''\n\nXem nhật trình xóa và phục hồi các trang gần đây tại [[Special:Log/delete|nhật trình xóa]].",
        "undelete-header": "Xem các trang bị xóa gần đây tại [[Special:Log/delete|nhật trình xóa]].",
        "movelogpage": "Nhật trình di chuyển",
        "movelogpagetext": "Dưới đây là danh sách các trang đã được di chuyển.",
        "movesubpage": "{{PLURAL:$1|Trang con|Các trang con}}",
-       "movesubpagetext": "Trang này có $1 {{PLURAL:$1|trang con|trang con}} như hiển thị dưới đây.",
+       "movesubpagetext": "Trang này có $1 trang con như hiển thị dưới đây.",
        "movenosubpage": "Trang này không có trang con.",
        "movereason": "Lý do:",
        "revertmove": "lùi lại",
        "immobile-target-namespace-iw": "Không cho phép di chuyển trang đến một liên kết liên wiki.",
        "immobile-source-page": "Bạn không thể di chuyển trang này.",
        "immobile-target-page": "Không thể di chuyển đến tựa đề đích.",
-       "bad-target-model": "Trang đích sử dụng mô hình nội dung khác. Không thể chuyển đổi nội dung từ $1 đến $2.",
+       "bad-target-model": "Trang đích sử dụng kiểu nội dung khác. Không thể chuyển đổi nội dung từ $1 đến $2.",
        "imagenocrossnamespace": "Không thể di chuyển tập tin ra khỏi không gian tên Tập tin",
        "nonfile-cannot-move-to-file": "Không thể di chuyển những gì không phải là tập tin vào không gian tên Tập tin",
        "imagetypemismatch": "Phần mở rộng trong tên tập tin mới không hợp dạng của tập tin",
        "import-error-interwiki": "Trang “$1” không được nhập vì tên của nó được dành riêng cho liên kết ngoài (liên wiki).",
        "import-error-special": "Trang “$1” không được nhập vì nó thuộc về không gian tên đặc biệt không cho phép các trang không mặc định.",
        "import-error-invalid": "Trang “$1” không được nhập vì ứng với một tên tập tin không hợp lệ trên wiki này.",
-       "import-error-unserialize": "Không thể giải tuần tự hóa phiên bản $2 của trang “$1”. Tập tin kết xuất cho rằng phiên bản có mô hình nội dung $3 được tuần tự hóa theo định dạng $4.",
-       "import-error-bad-location": "Không thể lưu giữ phiên bản $2 với mô hình nội dung $3 vào “$1” trên wiki này vì trang này không hỗ trợ mô hình đó.",
+       "import-error-unserialize": "Không thể giải tuần tự hóa phiên bản $2 của trang “$1”. Tập tin kết xuất cho rằng phiên bản có kiểu nội dung $3 được tuần tự hóa theo định dạng $4.",
+       "import-error-bad-location": "Không thể lưu giữ phiên bản $2 với kiểu nội dung $3 vào “$1” trên wiki này vì trang này không hỗ trợ kiểu đó.",
        "import-options-wrong": "{{PLURAL:$2|Tùy chọn|Các tùy chọn}} có vấn đề: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Trang đích không hợp lệ.",
        "import-rootpage-nosubpage": "Không gian tên “$1” của trang gốc không cho phép các trang con.",
        "tooltip-pt-logout": "Đăng xuất",
        "tooltip-pt-createaccount": "Khuyến khích bạn mở tài khoản và đăng nhập; tuy nhiên, không phải bắt buộc phải có tài khoản",
        "tooltip-ca-talk": "Thảo luận về trang này",
-       "tooltip-ca-edit": "Chỉnh sửa trang này",
+       "tooltip-ca-edit": "Sửa đổi trang này",
        "tooltip-ca-addsection": "Bắt đầu một đề mục mới",
        "tooltip-ca-viewsource": "Trang này được khóa. Bạn có thể xem mã nguồn.",
        "tooltip-ca-history": "Các phiên bản cũ của trang này",
        "svg-long-error": "Tập tin SVG có lỗi: $1",
        "show-big-image": "Tập tin gốc",
        "show-big-image-preview": "Kích thước của hình xem trước: $1.",
+       "show-big-image-preview-differ": "Kích thước bản xem trước $3 này của tập tin $2: $1.",
        "show-big-image-other": "{{PLURAL:$2|Độ phân giải|Các độ phân giải}} khác: $1.",
        "show-big-image-size": "$1×$2 điểm ảnh",
        "file-info-gif-looped": "có lặp",
-       "file-info-gif-frames": "$1 {{PLURAL:$1|khung ảnh|khung ảnh}}",
+       "file-info-gif-frames": "$1 khung ảnh",
        "file-info-png-looped": "có lặp",
        "file-info-png-repeat": "chơi $1 lần",
        "file-info-png-frames": "$1 khung ảnh",
        "file-no-thumb-animation": "'''Lưu ý: Do hạn chế kỹ thuật, các hình nhỏ của tập tin này sẽ không phải là hình động.'''",
        "file-no-thumb-animation-gif": "'''Lưu ý: Do hạn chế kỹ thuật, các hình nhỏ của những hình GIF có độ phân giải cao, chẳng hạn tập tin này, sẽ không phải là hình động.'''",
        "newimages": "Trang trưng bày hình ảnh mới",
-       "imagelisttext": "Dưới đây là danh sách '''$1''' {{PLURAL:$1|tập tin|tập tin}} xếp theo $2.",
+       "imagelisttext": "Dưới đây là danh sách <strong>$1</strong> tập tin xếp theo $2.",
        "newimages-summary": "Trang đặc biệt này hiển thị các tập tin được tải lên gần đây nhất.",
        "newimages-legend": "Bộ lọc",
        "newimages-label": "Tên tập tin (hoặc một phần tên):",
        "exif-datetime": "Ngày giờ sửa tập tin",
        "exif-imagedescription": "Tiêu đề của hình",
        "exif-make": "Hãng máy ảnh",
-       "exif-model": "Kiểu máy ảnh",
-       "exif-software": "Phần mềm đã dùng",
+       "exif-model": "Dòng máy ảnh",
+       "exif-software": "Phần mềm sử dụng",
        "exif-artist": "Tác giả",
        "exif-copyright": "Bản quyền",
        "exif-exifversion": "Phiên bản Exif",
        "exif-subsectime": "Ngày giờ nhỏ hơn giây",
        "exif-subsectimeoriginal": "Ngày giờ gốc nhỏ hơn giây",
        "exif-subsectimedigitized": "Ngày giờ số hóa nhỏ hơn giây",
-       "exif-exposuretime": "Thời gian mở ống kính",
+       "exif-exposuretime": "Tốc độ màn trập",
        "exif-exposuretime-format": "$1 giây ($2)",
-       "exif-fnumber": "Số F",
+       "exif-fnumber": "Khẩu độ ống kính",
        "exif-fnumber-format": "f/$1",
-       "exif-exposureprogram": "Chương trình phơi sáng",
+       "exif-exposureprogram": "Chế độ phơi sáng",
        "exif-spectralsensitivity": "Độ nhạy quang phổ",
-       "exif-isospeedratings": "Điểm tốc độ ISO",
+       "exif-isospeedratings": "Độ nhạy sáng (tốc độ ISO)",
        "exif-shutterspeedvalue": "Tốc độ cửa chớp (APEX)",
        "exif-aperturevalue": "Độ mở ống kính (APEX)",
        "exif-brightnessvalue": "Độ sáng (APEX)",
        "exif-exposureprogram-2": "Chương trình chuẩn",
        "exif-exposureprogram-3": "Ưu tiên độ mở ống kính",
        "exif-exposureprogram-4": "Ưu tiên tốc độ sập",
-       "exif-exposureprogram-5": "Chương trình sáng tạo (thiên về chiều sâu)",
+       "exif-exposureprogram-5": "Chế độ sáng tạo (thiên về độ sâu trường ảnh)",
        "exif-exposureprogram-6": "Chương trình chụp (thien về tốc độ sập nhanh)",
        "exif-exposureprogram-7": "Chế độ chân dung (đối với ảnh chụp gần với phông nền ở ngoài tầm tiêu cự)",
        "exif-exposureprogram-8": "Chế độ phong cảnh (đối với ảnh phong cảnh với phông ở trong tiêu cự)",
        "exif-subjectdistance-value": "$1 mét",
        "exif-meteringmode-0": "Không biết",
        "exif-meteringmode-1": "Trung bình",
-       "exif-meteringmode-2": "Trung bình trọng lượng ở giữa",
+       "exif-meteringmode-2": "Đo sáng trung bình, tập trung vào vùng trung tâm",
        "exif-meteringmode-3": "Vết",
        "exif-meteringmode-4": "Đa vết",
        "exif-meteringmode-5": "Lấy mẫu",
        "confirmemail_success": "Thư điện tử của bạn đã được xác nhận. Bạn đã có thể đăng nhập và bắt đầu sử dụng wiki.",
        "confirmemail_loggedin": "Địa chỉ thư điện tử của bạn đã được xác nhận.",
        "confirmemail_subject": "Xác nhận thư điện tử tại {{SITENAME}}",
-       "confirmemail_body": "Ai đó, có thể là bạn, từ địa chỉ IP $1,\nđã mở tài khoản có tên \"$2\" với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng thư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu bạn *không* mở tài khoản, hãy nhấn vào liên kết này\nđể hủy thủ tục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
-       "confirmemail_body_changed": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã mở tài khoản có\ntên \"$2\" với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ\ntục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
-       "confirmemail_body_set": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã đặt địa chỉ này là địa\nchỉ thư điện tử của tài khoản \"$2\" tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt các tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ tục\nxác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
+       "confirmemail_body": "Ai đó, có thể là bạn, từ địa chỉ IP $1,\nđã mở tài khoản có tên “$2” với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng thư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu bạn *không* mở tài khoản, hãy nhấn vào liên kết này\nđể hủy thủ tục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
+       "confirmemail_body_changed": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã mở tài khoản có\ntên “$2” với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ\ntục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
+       "confirmemail_body_set": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã đặt địa chỉ này là địa\nchỉ thư điện tử của tài khoản “$2” tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt các tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ tục\nxác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
        "confirmemail_invalidated": "Đã hủy xác nhận địa chỉ thư điện tử",
        "invalidateemail": "Hủy xác nhận thư điện tử",
        "scarytranscludedisabled": "[Nhúng giữa các wiki bị tắt]",
        "bitrate-zetabits": "$1 Zbit/s",
        "bitrate-yottabits": "$1 Ybit/s",
        "lag-warn-normal": "Những thay đổi trong vòng $1 {{PLURAL:||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.",
-       "lag-warn-high": "Do độ trễ của máy chủ cơ sở dữ liệu, những thay đổi trong vòng $1 {{PLURAL:$1||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.",
+       "lag-warn-high": "Do độ trễ của máy chủ cơ sở dữ liệu, những thay đổi trong vòng $1 giây trở lại đây có thể chưa xuất hiện trong danh sách.",
        "watchlistedit-normal-title": "Sửa các trang tôi theo dõi",
        "watchlistedit-normal-legend": "Gỡ trang khỏi danh sách",
        "watchlistedit-normal-explain": "Tên các trang bạn theo dõi được hiển thị dưới đây. Để xóa một tên trang, chọn vào hộp kiểm bên cạnh nó, rồi nhấn “{{int:Watchlistedit-normal-submit}}”. Bạn cũng có thể [[Special:EditWatchlist/raw|sửa danh sách theo dạng thô]].",
        "watchlistedit-normal-submit": "Bỏ trang đã chọn",
-       "watchlistedit-normal-done": "$1 {{PLURAL:$1|tựa đề|tựa đề}} đã được xóa khỏi danh sách các trang theo dõi:",
+       "watchlistedit-normal-done": "$1 tựa đề đã được xóa khỏi danh sách các trang theo dõi:",
        "watchlistedit-raw-title": "Sửa danh sách theo dõi dạng thô",
        "watchlistedit-raw-legend": "Sửa danh sách theo dõi dạng thô",
        "watchlistedit-raw-explain": "Danh sách này có tên các trang bạn theo dõi để bạn sửa chữa bằng cách thêm vào hoặc bỏ ra khỏi danh sách; mỗi trang một hàng.\nKhi xong, nhấn nút ”{{int:Watchlistedit-raw-submit}}”.\nBạn cũng có thể [[Special:EditWatchlist|dùng trang sửa đổi bình thường]] để sửa danh sách này.",
        "watchlistedit-raw-titles": "Tên các trang:",
        "watchlistedit-raw-submit": "Cập nhật Trang tôi theo dõi",
        "watchlistedit-raw-done": "Danh sách các trang bạn theo dõi đã được cập nhật.",
-       "watchlistedit-raw-added": "$1 {{PLURAL:$1|tựa đề|tựa đề}} đã được thêm vào:",
-       "watchlistedit-raw-removed": "$1 {{PLURAL:$1|tựa đề|tựa đề}} đã được xóa khỏi danh sách:",
+       "watchlistedit-raw-added": "$1 tựa đề đã được thêm vào:",
+       "watchlistedit-raw-removed": "$1 tựa đề đã được xóa khỏi danh sách:",
        "watchlistedit-clear-title": "Đã xóa sạch danh sách theo dõi",
        "watchlistedit-clear-legend": "Xóa sạch danh sách theo dõi",
        "watchlistedit-clear-explain": "Tất cả các tiêu đề sẽ được xóa khỏi danh sách theo dõi của bạn.",
        "tags-delete": "xóa",
        "tags-activate": "Kích hoạt",
        "tags-deactivate": "vô hiệu",
-       "tags-hitcount": "$1 {{PLURAL:$1|thay đổi|thay đổi}}",
+       "tags-hitcount": "$1 thay đổi",
        "tags-manage-no-permission": "Bạn không có quyền hạn để quản lý các thẻ thay đổi.",
        "tags-create-heading": "Tạo một thẻ mới",
        "tags-create-explanation": "Theo mặc định, các thẻ mới được tạo ra sẽ được hợp lệ hóa để người dùng và các bot sử dụng.",
        "tags-create-no-name": "Bạn phải chỉ định một tên thẻ.",
        "tags-create-invalid-chars": "Tên thẻ không được chứa dấu phẩy (<code>,</code>) hoặc dấu gạch chéo lên (<code>/</code>).",
        "tags-create-invalid-title-chars": "Tên thẻ không được chứa các ký tự mà không thể được sử dụng trong tiêu đề của trang .",
-       "tags-create-already-exists": "Các từ khóa \"$1\" đã tồn tại.",
-       "tags-create-warnings-above": "{{PLURAL:$2| Cảnh báo}} sau gặp phải khi cố gắng để tạo ra các thẻ \"$1\":",
+       "tags-create-already-exists": "Các từ khóa “$1” đã tồn tại.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Cảnh báo|Các cảnh báo}} sau gặp phải khi cố gắng để tạo ra thẻ “$1”:",
        "tags-create-warnings-below": "Bạn có muốn tiếp tục tạo thẻ này?",
        "tags-delete-title": "Xóa thẻ",
-       "tags-delete-explanation-initial": "Bạn muốn xóa thẻ \"$1\" từ cơ sở dữ liệu.",
-       "tags-delete-explanation-in-use": "Nó sẽ được gỡ bỏ từ {{PLURAL:$2|$2 mục sửa đổi hoặc mục đăng nhập|tất cả $2 bản sửa đổi và/hoặc đăng nhập các mục}} mà nó hiện đang áp dụng.",
+       "tags-delete-explanation-initial": "Bạn muốn xóa thẻ “$1” từ cơ sở dữ liệu.",
+       "tags-delete-explanation-in-use": "Nó sẽ được gỡ bỏ từ {{PLURAL:$2|$2 phiên bản hoặc mục nhật trình|tất cả $2 phiên bản và/hoặc mục nhật trình}} mà nó hiện đang áp dụng.",
        "tags-delete-explanation-warning": "Hành động này là <strong>không thể đảo ngược</strong> và <strong>không thể hoàn tác</strong>, ngay cả bởi người quản trị cơ sở dữ liệu. Hãy chắc chắn đây là thẻ mà bạn muốn xóa.",
        "tags-delete-explanation-active": "<strong>Thẻ “$1” vẫn còn kích hoạt.</strong> Để ngừng áp dụng thẻ này trong tương lai, đi đến những nơi áp dụng thẻ và vô hiệu nó tại đấy.",
        "tags-delete-reason": "Lý do:",
        "tags-delete-submit": "Không thể phục hồi xóa thẻ này",
        "tags-delete-not-allowed": "Thẻ được định nghĩa bởi một mở rộng không thể bị xóa trừ khi mở rộng đặc biệt cho phép điều đó xảy ra.",
-       "tags-delete-not-found": "Thẻ \"$1\" không tồn tại.",
-       "tags-delete-too-many-uses": "Từ khóa \"$1\" được áp dụng cho hơn $2 {{PLURAL:$2|phiên bản}}, có nghĩa là nó không thể bị xóa.",
+       "tags-delete-not-found": "Thẻ “$1” không tồn tại.",
+       "tags-delete-too-many-uses": "Thẻ “$1” được áp dụng cho hơn $2 phiên bản, có nghĩa là nó không thể bị xóa.",
        "tags-delete-warnings-after-delete": "Thẻ “$1” bị xóa thành công, nhưng gặp {{PLURAL:$2|cảnh báo|các cảnh báo}} sau:",
        "tags-activate-title": "Kích hoạt thẻ",
-       "tags-activate-question": "Bạn sắp sửa kích hoạt thẻ \"$1\".",
+       "tags-activate-question": "Bạn sắp sửa kích hoạt thẻ “$1”.",
        "tags-activate-reason": "Lý do:",
-       "tags-activate-not-allowed": "Không thể kích hoạt thẻ \"$1\".",
-       "tags-activate-not-found": "Thẻ \"$1\" không tồn tại.",
+       "tags-activate-not-allowed": "Không thể kích hoạt thẻ “$1”.",
+       "tags-activate-not-found": "Thẻ “$1” không tồn tại.",
        "tags-activate-submit": "Kích hoạt",
        "tags-deactivate-title": "Vô hiệu thẻ",
-       "tags-deactivate-question": "Bạn sắp sửa vô hiệu thẻ \"$1\".",
+       "tags-deactivate-question": "Bạn sắp sửa vô hiệu thẻ “$1”.",
        "tags-deactivate-reason": "Lý do:",
-       "tags-deactivate-not-allowed": "Không thể vô hiệu hóa thẻ \"$1\".",
+       "tags-deactivate-not-allowed": "Không thể vô hiệu hóa thẻ “$1”.",
        "tags-deactivate-submit": "Vô hiệu",
        "tags-apply-no-permission": "Bạn không có quyền áp dụng các thẻ thay đổi cùng các thay đổi của bạn.",
-       "tags-apply-not-allowed-one": "Thẻ \"$1\" không được phép được áp dụng thủ công.",
-       "tags-apply-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép áp dụng thủ công: $1",
-       "tags-update-no-permission": "Bạn không có quyền thêm hoặc loại bỏ các thẻ thay đổi từ phiên bản cá nhân hoặc mục đăng nhập.",
-       "tags-update-add-not-allowed-one": "Thẻ \"$1\" không được phép thêm vào thủ công.",
-       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép thêm thủ công: $1",
-       "tags-update-remove-not-allowed-one": "Thẻ đánh dấu \"$1\" không được phép loại bỏ.",
-       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép loại bỏ thủ công: $1",
-       "tags-edit-title": "Chỉnh sửa thẻ",
+       "tags-apply-not-allowed-one": "Thẻ “$1” không được phép được áp dụng thủ công.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Thẻ|Các thẻ}} sau không được phép áp dụng thủ công: $1",
+       "tags-update-no-permission": "Bạn không có quyền thêm hoặc loại bỏ các thẻ thay đổi từ phiên bản riêng hoặc mục nhật trình.",
+       "tags-update-add-not-allowed-one": "Thẻ “$1” không được phép thêm vào thủ công.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Thẻ|Các thẻ}} sau không được phép thêm thủ công: $1",
+       "tags-update-remove-not-allowed-one": "Thẻ đánh dấu “$1” không được phép loại bỏ.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Thẻ|Các thẻ}} sau không được phép loại bỏ thủ công: $1",
+       "tags-edit-title": "Sửa đổi thẻ",
        "tags-edit-manage-link": "Quản lý thẻ",
        "tags-edit-revision-selected": "{{PLURAL:$1|Phiên bản|Các phiên bản}} [[:$2]] được chọn:",
        "tags-edit-logentry-selected": "{{PLURAL:$1|Nhật trình đã chọn|Các nhật trình đã chọn}}:",
-       "tags-edit-revision-legend": "Thêm và loại bỏ các thẻ đánh dấu từ {{PLURAL:$1|bản xem trước này|tất cả $1 bản xem trước}}",
+       "tags-edit-revision-legend": "Thêm và loại bỏ các thẻ từ {{PLURAL:$1|phiên bản này|tất cả $1 phiên bản}}",
        "tags-edit-logentry-legend": "Thêm và loại bỏ thẻ đánh dấu từ {{PLURAL:$1|mục nhật trình này|tất cả $1 mục nhật trình}}",
        "tags-edit-existing-tags": "Thẻ đã có:",
        "tags-edit-existing-tags-none": "''Không''",
        "tags-edit-chosen-placeholder": "Chọn vài thẻ",
        "tags-edit-chosen-no-results": "Không thẻ nào được tìm thấy trùng khớp",
        "tags-edit-reason": "Lý do:",
-       "tags-edit-revision-submit": "Áp dụng các thay đổi lên {{PLURAL:$1|bản xem trước này|$1 bản xem trước}}",
-       "tags-edit-logentry-submit": "Áp dụng các thay đổi đối với {{PLURAL:$1|this log entry|$1 log entries}}",
+       "tags-edit-revision-submit": "Áp dụng các thay đổi lên {{PLURAL:$1|phiên bản này|$1 phiên bản}}",
+       "tags-edit-logentry-submit": "Áp dụng các thay đổi đối với {{PLURAL:$1|mục nhật ký này|$1 mục nhật trình}}",
        "tags-edit-success": "Các thay đổi được áp dụng thành công.",
        "tags-edit-failure": "Các thay đổi không thể được áp dụng: $1",
        "tags-edit-nooldid-title": "Kiểm tra các mục tiêu không hợp lệ",
-       "tags-edit-nooldid-text": "Bạn chưa định rõ đối tượng xem trước để thực hiện chức năng này hoặc bản xem trước đã định không tồn tại.",
+       "tags-edit-nooldid-text": "Bạn chưa định rõ phiên bản đích để thực hiện tác vụ này, hoặc phiên bản đã định không tồn tại.",
        "tags-edit-none-selected": "Vui lòng chọn ít nhất một thẻ để thêm hoặc loại bỏ.",
        "comparepages": "So sánh trang",
        "compare-page1": "Trang 1",
        "logentry-block-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2}}đã cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
-       "logentry-import-upload": "$1 {{GENDER:$2|đã nhập}} $3 bằng cách tải lên tập tin",
-       "logentry-import-interwiki": "$1 {{GENDER:$2|đã nhập}} $3 từ một wiki khác",
+       "logentry-import-upload": "$1 {{GENDER:$2}}đã nhập $3 bằng cách tải lên tập tin",
+       "logentry-import-interwiki": "$1 {{GENDER:$2}}đã nhập $3 từ một wiki khác",
        "logentry-merge-merge": "$1 {{GENDER:$2}}đã hợp nhất $3 vào $4 (các phiên bản cho tới $5)",
        "logentry-move-move": "$1 {{GENDER:$2}}đã đổi $3 thành $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2}}đã đổi $3 thành $4 (đã tắt đổi hướng)",
        "logentry-upload-revert": "$1 {{GENDER:$2}}đã tải lên $3",
        "log-name-managetags": "Danh sách quản lý thẻ",
        "log-description-managetags": "Trang này có các công việc quản lý [[Special:Tags|thẻ]]. Nhật trình chỉ bao gồm các tác vụ do bảo quản viên thực hiện thủ công; phần mềm wiki có thể tạo hoặc xóa thẻ mà không ghi tác vụ vào nhật trình này.",
-       "logentry-managetags-create": "$1 {{GENDER:$2| đã tạo}} thẻ \"$4\"",
+       "logentry-managetags-create": "$1 {{GENDER:$2}}đã tạo thẻ “$4”",
        "logentry-managetags-delete": "$1 {{GENDER:$2}}đã xóa thẻ “$4” (và gỡ nó khỏi $5 phiên bản hoặc mục nhật trình)",
-       "logentry-managetags-activate": "$1 {{GENDER:$2|đã kích hoạt}} tag \"$4\" để sử dụng bởi người dùng và các bot",
-       "logentry-managetags-deactivate": "$1 {{GENDER:$2|đã vô hiệu}} thẻ \"$4\" để sử dụng bởi người dùng và các bot",
+       "logentry-managetags-activate": "$1 {{GENDER:$2}}đã kích hoạt thẻ “$4” để sử dụng bởi người dùng và các bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2}}đã vô hiệu thẻ “$4” để sử dụng bởi người dùng và các bot",
        "log-name-tag": "Nhật trình đánh dấu",
-       "log-description-tag": "Trang này hiện khi người dùng vừa thêm hoặc loại bỏ [[Special:Tags|thẻ đánh dấu]] từ các bản xem trước hoặc các mục nhật trình riêng biệt. Nhật trình không liệt kê các hoạt động đánh dấu khi chúng là một phần của hoạt động sửa đổi, xóa hoặc các hoạt động tương tự.",
-       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|đã thêm}} {{PLURAL:$7|thẻ đánh dấu|thẻ đánh dấu}} $6 vào bản xem trước $4 của trang $3",
-       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|đã thêm}} {{PLURAL:$7|thẻ đánh dấu|thẻ đánh dấu}} $6 vào mục nhật trình $5 của trang $3",
-       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|đã loại bỏ}} {{PLURAL:$9|thẻ đánh dấu|thẻ đánh dấu}} $8 khỏi bản xem trước $4 của trang $3",
-       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|đã loại bỏ}} {{PLURAL:$9|thẻ đánh dấu|thẻ đánh dấu}} $8 khỏi mục nhật trình $5 của trang $3",
-       "logentry-tag-update-revision": "$1 {{GENDER:$2|đã cập nhật}} thẻ đánh dấu của bản xem trước $4 của trang $3 ({{PLURAL:$7|đã thêm}} $6; {{PLURAL:$9|loại bỏ}} $8)",
-       "logentry-tag-update-logentry": "$1 {{GENDER:$2|đã cập nhật}} thẻ đánh dấu của mục nhật trình $5 của trang $3 ({{PLURAL:$7|đã thêm}} $6; {{PLURAL:$9|loại bỏ}} $8)",
+       "log-description-tag": "Trang này hiện khi người dùng vừa thêm hoặc loại bỏ [[Special:Tags|thẻ đánh dấu]] từ các phiên bản hoặc các mục nhật trình riêng biệt. Nhật trình không liệt kê các hoạt động đánh dấu khi chúng là một phần của hoạt động sửa đổi, xóa, hoặc các hoạt động tương tự.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2}}đã thêm {{PLURAL:$7|thẻ|các thẻ}} $6 vào phiên bản $4 của trang $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2}}đã thêm {{PLURAL:$7|thẻ|các thẻ}} $6 vào mục nhật trình $5 của trang $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2}}đã loại bỏ {{PLURAL:$9|thẻ|các thẻ}} $8 khỏi phiên bản $4 của trang $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2}}đã loại bỏ {{PLURAL:$9|thẻ|các thẻ}} $8 khỏi mục nhật trình $5 của trang $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2}}đã cập nhật thẻ của phiên bản $4 của trang $3 ({{PLURAL:$7}}đã thêm $6; {{PLURAL:$9}}loại bỏ $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2}}đã cập nhật thẻ của mục nhật trình $5 của trang $3 ({{PLURAL:$7}}đã thêm $6; {{PLURAL:$9}}loại bỏ $8)",
        "rightsnone": "(không có)",
        "revdelete-summary": "tóm lược sửa đổi",
        "feedback-adding": "Đang thêm thông tin phản hồi vào trang…",
        "feedback-back": "Lùi",
        "feedback-bugcheck": "Tuyệt! Chỉ cần kiểm tra nó chưa được [$1 báo cáo trước đây].",
-       "feedback-bugnew": "Tôi đã kiểm tra – báo cáo lỗi mới",
-       "feedback-bugornote": "Nếu bạn đã sẵn sàng để miêu tả các chi tiết của một vấn đề kỹ thuật, xin vui lòng [$1 báo cáo lỗi].\nNếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới. Lời ghi của bạn sẽ được đăng lên trang “[$3 $2]”, cùng với tên người dùng và trình duyệt của bạn.",
+       "feedback-bugnew": "Tôi đã kiểm tra – báo lỗi mới",
+       "feedback-bugornote": "Nếu bạn đã sẵn sàng để miêu tả các chi tiết của một vấn đề kỹ thuật, xin vui lòng [$1 báo lỗi].\nNếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới. Lời ghi của bạn sẽ được đăng lên trang “[$3 $2]”, cùng với tên người dùng của bạn.",
        "feedback-cancel": "Hủy bỏ",
        "feedback-close": "Xong",
        "feedback-external-bug-report-button": "Tạo một công việc kỹ thuật",
        "mw-widgets-dateinput-no-date": "Không chọn ngày tháng",
        "mw-widgets-dateinput-placeholder-day": "YYYY-MM-DD (năm-tháng-ngày)",
        "mw-widgets-dateinput-placeholder-month": "YYYY-MM (năm-tháng)",
-       "mw-widgets-titleinput-description-new-page": "Trang này chưa tồn tại",
-       "mw-widgets-titleinput-description-redirect": "Ä\90ổi hướng đến $1",
+       "mw-widgets-titleinput-description-new-page": "trang này chưa tồn tại",
+       "mw-widgets-titleinput-description-redirect": "Ä\91ổi hướng đến $1",
        "api-error-blacklisted": "Xin vui lòng chọn một tên khác miêu tả đầy đủ."
 }
index 96db1ca..36ebd26 100644 (file)
        "prefs-help-recentchangescount": "כולל לעצטע ענדערונגען, בלאַט היסטאָריעס, און לאָגביכער.",
        "prefs-help-watchlist-token2": "דאס איז דער געהיימער שליסל צום וועבפֿיד פון אײַער אויפֿפאסונג ליסטע.\nיעדער וואס ווייסט אים וועט קענען לייענען אײַער אויפֿפאסונג ליסטע; טוט אים נישט טיילן.\n[[Special:ResetTokens|קליקט דא ווען איר דארפט אים צוריקשטעלן]].",
        "savedprefs": "אייערע פרעפערענצן איז אפגעהיטן געווארן.",
+       "savedrights": "די באניצער־רעכטן פֿון {{GENDER:$1|$1}} זענען געווארן געשפייכלערט.",
        "timezonelegend": "צײַט זאנע:",
        "localtime": "לאקאלע צייט:",
        "timezoneuseserverdefault": "ניצן סערווירער גרונט ($1)",
index a0d70c5..4dd5227 100644 (file)
        "wlnote": "下面是{{PLURAL:$2|过去<strong>$2</strong>小时}}的{{PLURAL:$1|最后<strong>$1</strong>个更改}},截至$3 $4。",
        "wlshowlast": "显示过去$1小时$2天",
        "watchlistall2": "所有",
+       "wlshowtime": "显示最近:",
+       "wlshowhideminor": "小编辑",
+       "wlshowhidebots": "机器人",
+       "wlshowhideliu": "注册用户",
+       "wlshowhideanons": "匿名用户",
+       "wlshowhidepatr": "已巡查的编辑",
+       "wlshowhidemine": "我的编辑",
        "watchlist-options": "监视列表选项",
        "watching": "正在监视...",
        "unwatching": "正在取消监视...",
index 31ff48e..3ea94d6 100644 (file)
                        "Macofe",
                        "578985s",
                        "Matma Rex",
-                       "范"
+                       "范",
+                       "Jasonzhuocn"
                ]
        },
        "tog-underline": "底線標示連結:",
-       "tog-hideminor": "隱藏近期變更中的小修訂",
+       "tog-hideminor": "隱藏最近更改中的小修訂",
        "tog-hidepatrolled": "隱藏近期變更中巡查過的編輯",
        "tog-newpageshidepatrolled": "隱藏新頁面清單中巡查過的頁面",
        "tog-hidecategorization": "隱藏頁面分類",
        "tog-extendwatchlist": "展開監視清單顯示包含最近以外的所有變更",
-       "tog-usenewrc": "依近期變更與監視清單的頁面分類顯示變更",
+       "tog-usenewrc": "依最近更改與監視清單的頁面分類顯示更改",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
        "tog-editondblclick": "開啟滑鼠雙擊編輯頁面",
        "aboutpage": "Project:關於",
        "copyright": "除非額外說明,否則本站內容均使用 $1 授權條款。",
        "copyrightpage": "{{ns:project}}:版權",
-       "currentevents": "æ\9c\80æ\96°動態",
+       "currentevents": "æ\96°è\81\9e動態",
        "currentevents-url": "Project:Current events",
        "disclaimers": "免責聲明",
        "disclaimerpage": "Project:一般免責聲明",
        "stub-threshold": "短頁面連結格式門檻值 ($1):",
        "stub-threshold-sample-link": "樣本",
        "stub-threshold-disabled": "已停用",
-       "recentchangesdays": "近期變更顯示的天數:",
+       "recentchangesdays": "最近更改顯示的天數:",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
-       "prefs-help-recentchangescount": "這包含近期變更、頁面歷史以及日誌。",
+       "prefs-help-recentchangescount": "這包含最近更改、頁面歷史以及日誌。",
        "prefs-help-watchlist-token2": "訂閱您的監視清單所需的密鑰。\n任何人只要知道密鑰就能夠讀取您的監視清單,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
        "savedprefs": "已儲存您的偏好設定。",
        "savedrights": "已儲存 {{GENDER:$1|$1}} 的使用者權限。",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|自上次拜訪}}已有 $1",
        "enhancedrc-history": "歷史",
        "recentchanges": "近期變更",
-       "recentchanges-legend": "近期變更選項",
-       "recentchanges-summary": "追蹤 Wiki 中此頁面的近期變更。",
+       "recentchanges-legend": "最近更改選項",
+       "recentchanges-summary": "追蹤 Wiki 中此頁面的最近更改。",
        "recentchanges-noresult": "於指定時間內沒有符合條件的變更。",
-       "recentchanges-feed-description": "追蹤 Wiki 中此訂閱來源的近期變更。",
+       "recentchanges-feed-description": "追蹤 Wiki 中此訂閱來源的最近更改。",
        "recentchanges-label-newpage": "該編輯建立了新頁面",
        "recentchanges-label-minor": "該編輯是一個小修訂",
        "recentchanges-label-bot": "該編輯由機器人執行",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (請參考[[Special:NewPages|新頁面]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
-       "rclistfrom": "顯示自 $3 $2 以來的近期變更",
+       "rclistfrom": "顯示自 $3 $2 以來的最近更改",
        "rcshowhideminor": "$1 小修訂",
        "rcshowhideminor-show": "顯示",
        "rcshowhideminor-hide": "隱藏",
        "rcshowhidecategorization": "$1 頁面分類",
        "rcshowhidecategorization-show": "顯示",
        "rcshowhidecategorization-hide": "隱藏",
-       "rclinks": "顯示近期 $2 天內的 $1 次變更。<br />$3",
+       "rclinks": "顯示最近 $2 天內的 $1 次更改。<br />$3",
        "diff": "差異",
        "hist": "歷史",
        "hide": "隱藏",
        "wlnote": "以下為自 $3 $4 之後的 <strong>$2</strong> 小時內所做的 <strong>$1</strong> 次變更。",
        "wlshowlast": "顯示最近 $1 小時 $2 天",
        "watchlistall2": "全部",
+       "wlshowtime": "顯示最近:",
+       "wlshowhideminor": "小編輯",
+       "wlshowhidebots": "機器人",
+       "wlshowhideliu": "已註冊使用者",
+       "wlshowhideanons": "匿名使用者",
+       "wlshowhidepatr": "已巡查編輯",
+       "wlshowhidemine": "我的編輯",
        "watchlist-options": "監視清單選項",
        "watching": "正在監視...",
        "unwatching": "正在停止監視...",
        "tooltip-n-mainpage": "前往首頁",
        "tooltip-n-mainpage-description": "前往首頁",
        "tooltip-n-portal": "關於本專案、您可以做什麼、哪裡可以找到您需要的事物",
-       "tooltip-n-currentevents": "æ\96¼æ\9c\80æ\96°å\8b\95æ\85\8b中å°\8bæ\89¾è\83\8cæ\99¯è³\87è¨\8a",
-       "tooltip-n-recentchanges": "列出此 Wiki 中的近期變更清單",
+       "tooltip-n-currentevents": "æ\96¼æ\96°è\81\9eäº\8b件中æ\89¾å\88°ç\9b¸é\97\9cè\83\8cæ\99¯è³\87æ\96\99",
+       "tooltip-n-recentchanges": "列出此 Wiki 中的最近更改清單",
        "tooltip-n-randompage": "隨機進入一個頁面",
        "tooltip-n-help": "尋求協助的地方",
        "tooltip-t-whatlinkshere": "列出所有連結此頁面的頁面",
index 8dad5dc..7825ce9 100644 (file)
@@ -22,7 +22,9 @@
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
 // dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
 wfEntryPointCheck( 'cli' );
 
 /**
index 212e42a..ae3074a 100644 (file)
@@ -23,7 +23,9 @@
 
 // Checking for old versions of PHP is done in Maintenance.php
 // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/Maintenance.php';
+// @codingStandardsIgnoreEnd
 
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
 define( 'MEDIAWIKI_INSTALL', true );
index 850a5a5..a3099f9 100644 (file)
@@ -21,7 +21,7 @@
  * @ingroup Maintenance
  */
 
-require_once dirname( __FILE__ ) . '/Maintenance.php';
+require_once __DIR__ . '/Maintenance.php';
 
 /**
  * Maintenance script to populate the fa_sha1 field.
index be811dc..31b201c 100644 (file)
@@ -22,7 +22,9 @@
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
 // dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
 wfEntryPointCheck( 'mw-config/index.php' );
 
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
index fa04e41..4b8cffe 100644 (file)
@@ -1320,7 +1320,8 @@ return array(
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.raggett' => array(
-               'styles' => 'resources/src/mediawiki/mediawiki.raggett.css'
+               'styles' => 'resources/src/mediawiki/mediawiki.raggett.css',
+               'targets' => array( 'desktop', 'mobile' ),
        ),
 
        /* MediaWiki Action */
index 67f3e01..84732aa 100644 (file)
@@ -23,6 +23,7 @@
         * @cfg {boolean} [showRedlink] Show red link to exact match if it doesn't exist
         * @cfg {boolean} [showImages] Show page images
         * @cfg {boolean} [showDescriptions] Show page descriptions
+        * @cfg {boolean} [validate=true] Whether the input must be a valid title
         * @cfg {Object} [cache] Result cache which implements a 'set' method, taking keyed values as an argument
         */
        mw.widgets.TitleWidget = function MwWidgetsTitleWidget( config ) {
@@ -44,6 +45,7 @@
                this.showRedlink = !!config.showRedlink;
                this.showImages = !!config.showImages;
                this.showDescriptions = !!config.showDescriptions;
+               this.validate = config.validate !== undefined ? config.validate : true;
                this.cache = config.cache;
 
                // Initialization
         * @return {boolean} The query is valid
         */
        mw.widgets.TitleWidget.prototype.isQueryValid = function () {
-               return !!this.getTitle();
+               return this.validate ? !!this.getTitle() : true;
        };
 
 }( jQuery, mediaWiki ) );
index 910a78f..47250ee 100644 (file)
                        thumbPhpRegex = /thumb\.php/,
                        regexes = [
                                // Thumbnails
-                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
+                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-[^\s\/]*$/,
 
                                // Thumbnails in non-hashed upload directories
                                /\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
index 325b20e..f22f4a1 100644 (file)
@@ -13,7 +13,7 @@ abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
                                'modules' => 'startup',
                                'only' => 'scripts',
                                'skin' => 'vector',
-                               'target' => 'test',
+                               'target' => 'phpunit',
                ) );
                $ctx = $this->getMockBuilder( 'ResourceLoaderContext' )
                        ->setConstructorArgs( array( $resourceLoader, $request ) )
@@ -67,7 +67,7 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
        protected $styles = '';
        protected $skipFunction = null;
        protected $isRaw = false;
-       protected $targets = array( 'test' );
+       protected $targets = array( 'phpunit' );
 
        public function __construct( $options = array() ) {
                foreach ( $options as $key => $value ) {
index e28a92c..786e05d 100644 (file)
@@ -10,7 +10,6 @@ class DiffHistoryBlobTest extends MediaWikiTestCase {
 
                if ( !function_exists( 'xdiff_string_rabdiff' ) ) {
                        $this->markTestSkipped( 'The version of xdiff extension is lower than 1.5.0' );
-
                        return;
                }
        }
@@ -28,7 +27,13 @@ class DiffHistoryBlobTest extends MediaWikiTestCase {
                        "Hash of " . addcslashes( $input, "\0..\37!@\@\177..\377" ) );
        }
 
-       public static function provideXdiffAdler32() {
+       public function provideXdiffAdler32() {
+               // Hack non-empty early return since PHPUnit expands this provider before running
+               // the setUp() which marks the test as skipped.
+               if ( !function_exists( 'xdiff_string_rabdiff' ) ) {
+                       return array( array( '', 'Empty string' ) );
+               }
+
                return array(
                        array( '', 'Empty string' ),
                        array( "\0", 'Null' ),
index 6374cfa..e27ba1c 100644 (file)
@@ -256,7 +256,8 @@ class RandomImageGenerator {
                        $shape->addAttribute( 'points', self::shapePointsToString( $drawSpec['shape'] ) );
                }
 
-               if ( !$fh = fopen( $filename, 'w' ) ) {
+               $fh = fopen( $filename, 'w' );
+               if ( !$fh ) {
                        throw new Exception( "couldn't open $filename for writing" );
                }
                fwrite( $fh, $svg->asXML() );
index a1fdd91..b301f28 100644 (file)
@@ -26,7 +26,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
        }
 
        /**
-        * @dataProvider provider_testSetAndGet
+        * @dataProvider provideSetAndGet
         * @covers WANObjectCache::set()
         * @covers WANObjectCache::get()
         * @param mixed $value
@@ -46,7 +46,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                }
        }
 
-       public static function provider_testSetAndGet() {
+       public static function provideSetAndGet() {
                return array(
                        array( 14141, 3 ),
                        array( 3535.666, 3 ),
@@ -60,6 +60,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @covers WANObjectCache::get()
+        */
        public function testGetNotExists() {
                $key = wfRandomString();
                $curTTL = null;
@@ -69,6 +72,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertNull( $curTTL, "Non-existing key has null current TTL" );
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testSetOver() {
                $key = wfRandomString();
                for ( $i = 0; $i < 3; ++$i ) {
@@ -79,6 +85,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                }
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testStaleSet() {
                $key = wfRandomString();
                $value = wfRandomString();
@@ -89,6 +98,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
        /**
         * @covers WANObjectCache::getWithSetCallback()
+        * @covers WANObjectCache::doGetWithSetCallback()
         */
        public function testGetWithSetCallback() {
                $cache = $this->cache;
@@ -163,6 +173,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
        /**
         * @covers WANObjectCache::getWithSetCallback()
+        * @covers WANObjectCache::doGetWithSetCallback()
         */
        public function testLockTSE() {
                $cache = $this->cache;
@@ -188,6 +199,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
        /**
         * @covers WANObjectCache::getWithSetCallback()
+        * @covers WANObjectCache::doGetWithSetCallback()
         */
        public function testLockTSESlow() {
                $cache = $this->cache;
@@ -279,6 +291,85 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertLessThan( 0, $curTTLs[$key2], 'Key 2 has negative current TTL' );
        }
 
+       /**
+        * @covers WANObjectCache::getMulti()
+        * @covers WANObjectCache::processCheckKeys()
+        */
+       public function testGetMultiCheckKeys() {
+               $cache = $this->cache;
+
+               $checkAll = wfRandomString();
+               $check1 = wfRandomString();
+               $check2 = wfRandomString();
+               $check3 = wfRandomString();
+               $value1 = wfRandomString();
+               $value2 = wfRandomString();
+
+               // Fake initial check key to be set in the past. Otherwise we'd have to sleep for
+               // several seconds during the test to assert the behaviour.
+               foreach ( array( $checkAll, $check1, $check2 ) as $checkKey ) {
+                       $this->internalCache->set( $cache::TIME_KEY_PREFIX . $checkKey,
+                               $cache::PURGE_VAL_PREFIX . microtime( true ) - $cache::HOLDOFF_TTL, $cache::CHECK_KEY_TTL );
+               }
+
+               $cache->set( 'key1', $value1, 10 );
+               $cache->set( 'key2', $value2, 10 );
+
+               $curTTLs = array();
+               $result = $cache->getMulti( array( 'key1', 'key2', 'key3' ), $curTTLs, array(
+                       'key1' => $check1,
+                       $checkAll,
+                       'key2' => $check2,
+                       'key3' => $check3,
+               ) );
+               $this->assertEquals(
+                       array( 'key1' => $value1, 'key2' => $value2 ),
+                       $result,
+                       'Initial values'
+               );
+               $this->assertEquals(
+                       array( 'key1' => 0, 'key2' => 0 ),
+                       $curTTLs,
+                       'Initial ttls'
+               );
+
+               $cache->touchCheckKey( $check1 );
+               usleep( 100 );
+
+               $curTTLs = array();
+               $result = $cache->getMulti( array( 'key1', 'key2', 'key3' ), $curTTLs, array(
+                       'key1' => $check1,
+                       $checkAll,
+                       'key2' => $check2,
+                       'key3' => $check3,
+               ) );
+               $this->assertEquals(
+                       array( 'key1' => $value1, 'key2' => $value2 ),
+                       $result,
+                       'key1 expired by check1, but value still provided'
+               );
+               $this->assertLessThan( 0, $curTTLs['key1'], 'key1 TTL expired' );
+               $this->assertEquals( 0, $curTTLs['key2'], 'key2 still valid' );
+
+               $cache->touchCheckKey( $checkAll );
+               usleep( 100 );
+
+               $curTTLs = array();
+               $result = $cache->getMulti( array( 'key1', 'key2', 'key3' ), $curTTLs, array(
+                       'key1' => $check1,
+                       $checkAll,
+                       'key2' => $check2,
+                       'key3' => $check3,
+               ) );
+               $this->assertEquals(
+                       array( 'key1' => $value1, 'key2' => $value2 ),
+                       $result,
+                       'All keys expired by checkAll, but value still provided'
+               );
+               $this->assertLessThan( 0, $curTTLs['key1'], 'key1 expired by checkAll' );
+               $this->assertLessThan( 0, $curTTLs['key2'], 'key2 expired by checkAll' );
+       }
+
        /**
         * @covers WANObjectCache::delete()
         */
@@ -343,6 +434,40 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertEquals( $t5, $t6, 'Check key time did not change' );
        }
 
+       /**
+        * @covers WANObjectCache::getMulti()
+        */
+       public function testGetWithSeveralCheckKeys() {
+               $key = wfRandomString();
+               $tKey1 = wfRandomString();
+               $tKey2 = wfRandomString();
+               $value = 'meow';
+
+               // Two check keys are newer (given hold-off) than $key, another is older
+               $this->internalCache->set(
+                       WANObjectCache::TIME_KEY_PREFIX . $tKey2,
+                       WANObjectCache::PURGE_VAL_PREFIX . ( microtime( true ) - 3 )
+               );
+               $this->internalCache->set(
+                       WANObjectCache::TIME_KEY_PREFIX . $tKey2,
+                       WANObjectCache::PURGE_VAL_PREFIX . ( microtime( true ) - 5 )
+               );
+               $this->internalCache->set(
+                       WANObjectCache::TIME_KEY_PREFIX . $tKey1,
+                       WANObjectCache::PURGE_VAL_PREFIX . ( microtime( true ) - 30 )
+               );
+               $this->cache->set( $key, $value, 30 );
+
+               $curTTL = null;
+               $v = $this->cache->get( $key, $curTTL, array( $tKey1, $tKey2 ) );
+               $this->assertEquals( $value, $v, "Value matches" );
+               $this->assertLessThan( -5, $curTTL, "Correct CTL" );
+               $this->assertGreaterThan( -5.1, $curTTL, "Correct CTL" );
+       }
+
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testSetWithLag() {
                $value = 1;
 
@@ -362,6 +487,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertEquals( false, $this->cache->get( $key ), "Lagged value not written." );
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testWritePending() {
                $value = 1;
 
index 0d11f62..b457cec 100644 (file)
@@ -25,7 +25,7 @@ class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals( $derived->getModules(), array( 'test.context' ) );
                $this->assertEquals( $derived->getOnly(), 'scripts' );
                $this->assertEquals( $derived->getSkin(), 'fallback' );
-               $this->assertEquals( $derived->getHash(), 'zh|ltr|fallback||||||scripts|' );
+               $this->assertEquals( $derived->getHash(), 'zh|fallback||||||scripts|' );
        }
 
        public function testSetLanguage() {
@@ -72,7 +72,7 @@ class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
 
                $derived->setLanguage( 'nl' );
                // Assert that subclass is able to clear parent class "hash" member
-               $this->assertEquals( $derived->getHash(), 'nl|ltr|fallback||||||scripts|' );
+               $this->assertEquals( $derived->getHash(), 'nl|fallback||||||scripts|' );
        }
 
 }
index 9d97b28..a6d1d05 100644 (file)
@@ -21,7 +21,7 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
 
        private static function getModules() {
                $base = array(
-                       'localBasePath' => realpath( dirname( __FILE__ ) ),
+                       'localBasePath' => realpath( __DIR__ ),
                );
 
                return array(
index cb91614..c552b80 100644 (file)
@@ -2,6 +2,17 @@
 
 class ResourceLoaderStartUpModuleTest extends ResourceLoaderTestCase {
 
+       // Version hash for a blank file module.
+       // Result of ResourceLoader::makeHash(), ResourceLoaderTestModule
+       // and ResourceLoaderFileModule::getDefinitionSummary().
+       protected static $blankVersion = 'wvTifjse';
+
+       protected static function expandPlaceholders( $text ) {
+               return strtr( $text, array(
+                       '{blankVer}' => self::$blankVersion
+               ) );
+       }
+
        public static function provideGetModuleRegistrations() {
                return array(
                        array( array(
@@ -25,7 +36,7 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ]
 ] );',
                        ) ),
@@ -43,17 +54,17 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.group.foo",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-foo"
     ],
     [
         "test.group.bar",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-bar"
     ]
@@ -72,7 +83,7 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ]
 ] );'
                        ) ),
@@ -95,7 +106,7 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse",
+        "{blankVer}",
         [],
         null,
         "example"
@@ -132,11 +143,11 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.x.core",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.x.polyfill",
-        "wvTifjse",
+        "{blankVer}",
         [],
         null,
         null,
@@ -144,7 +155,7 @@ mw.loader.register( [
     ],
     [
         "test.y.polyfill",
-        "wvTifjse",
+        "{blankVer}",
         [],
         null,
         null,
@@ -152,7 +163,7 @@ mw.loader.register( [
     ],
     [
         "test.z.foo",
-        "wvTifjse",
+        "{blankVer}",
         [
             0,
             1,
@@ -229,36 +240,36 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.x.core",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.x.util",
-        "wvTifjse",
+        "{blankVer}",
         [
             1
         ]
     ],
     [
         "test.x.foo",
-        "wvTifjse",
+        "{blankVer}",
         [
             1
         ]
     ],
     [
         "test.x.bar",
-        "wvTifjse",
+        "{blankVer}",
         [
             2
         ]
     ],
     [
         "test.x.quux",
-        "wvTifjse",
+        "{blankVer}",
         [
             3,
             4,
@@ -267,25 +278,25 @@ mw.loader.register( [
     ],
     [
         "test.group.foo.1",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-foo"
     ],
     [
         "test.group.foo.2",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-foo"
     ],
     [
         "test.group.bar.1",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-bar"
     ],
     [
         "test.group.bar.2",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-bar",
         "example"
@@ -309,12 +320,12 @@ mw.loader.register( [
 
                $context = $this->getResourceLoaderContext();
                $rl = $context->getResourceLoader();
-
                $rl->register( $case['modules'] );
-
                $module = new ResourceLoaderStartUpModule();
+               $out = ltrim( $case['out'], "\n" );
+
                $this->assertEquals(
-                       ltrim( $case['out'], "\n" ),
+                       self::expandPlaceholders( $out ),
                        $module->getModuleRegistrations( $context ),
                        $case['msg']
                );
@@ -348,13 +359,15 @@ mw.loader.register( [
                $rl = $context->getResourceLoader();
                $rl->register( $modules );
                $module = new ResourceLoaderStartUpModule();
+               $out = 'mw.loader.addSource({"local":"/w/load.php"});' . "\n"
+               . 'mw.loader.register(['
+               . '["test.blank","{blankVer}"],'
+               . '["test.min","{blankVer}",[0],null,null,'
+               . '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
+               . ']]);';
+
                $this->assertEquals(
-'mw.loader.addSource({"local":"/w/load.php"});' . "\n"
-. 'mw.loader.register(['
-. '["test.blank","wvTifjse"],'
-. '["test.min","wvTifjse",[0],null,null,'
-. '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
-. ']]);',
+                       self::expandPlaceholders( $out ),
                        $module->getModuleRegistrations( $context ),
                        'Minified output'
                );
@@ -368,18 +381,18 @@ mw.loader.register( [
                $rl = $context->getResourceLoader();
                $rl->register( $modules );
                $module = new ResourceLoaderStartUpModule();
-               $this->assertEquals(
+               $out =
 'mw.loader.addSource( {
     "local": "/w/load.php"
 } );
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.min",
-        "wvTifjse",
+        "{blankVer}",
         [
             0
         ],
@@ -387,7 +400,10 @@ mw.loader.register( [
         null,
         "return !!(    window.JSON \u0026\u0026    JSON.parse \u0026\u0026    JSON.stringify);"
     ]
-] );',
+] );';
+
+               $this->assertEquals(
+                       self::expandPlaceholders( $out ),
                        $module->getModuleRegistrations( $context ),
                        'Unminified output'
                );
index 641a5a5..4bcb12e 100644 (file)
                assert.equal( title.getUrl(), '/wiki/User_talk:John_Doe', 'Escaping in title and namespace for urls' );
        } );
 
-       QUnit.test( 'newFromImg', 40, function ( assert ) {
+       QUnit.test( 'newFromImg', 44, function ( assert ) {
                var title, i, thisCase, prefix,
                        cases = [
                                {
                                        nameText: 'Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V)',
                                        prefixedText: 'File:Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V).jpg'
                                },
+
+                               {
+                                       url: '//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Princess_Alexandra_of_Denmark_%28later_Queen_Alexandra%2C_wife_of_Edward_VII%29_with_her_two_eldest_sons%2C_Prince_Albert_Victor_%28Eddy%29_and_George_Frederick_Ernest_Albert_%28later_George_V%29.jpg/939px-ki708pr1r6g2dl5lbhvwdqxenhait13.jpg',
+                                       typeOfUrl: 'Hashed thumb with sha1-ed path',
+                                       nameText: 'Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V)',
+                                       prefixedText: 'File:Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V).jpg'
+                               },
+
                                {
                                        url: '/wiki/images/thumb/9/91/Anticlockwise_heliotrope%27s.jpg/99px-Anticlockwise_heliotrope%27s.jpg',
                                        typeOfUrl: 'Normal hashed directory thumbnail',