Merge "Stop updating tag_summary table"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 17 Dec 2018 12:48:33 +0000 (12:48 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 17 Dec 2018 12:48:33 +0000 (12:48 +0000)
85 files changed:
Gruntfile.js
RELEASE-NOTES-1.32
RELEASE-NOTES-1.33
autoload.php
includes/DefaultSettings.php
includes/MediaWiki.php
includes/Title.php
includes/actions/RollbackAction.php
includes/api/ApiHelp.php
includes/api/ApiPageSet.php
includes/api/ApiQueryQueryPage.php
includes/api/ApiRollback.php
includes/api/i18n/es.json
includes/api/i18n/zh-hant.json
includes/diff/DifferenceEngine.php
includes/http/GuzzleHttpRequest.php
includes/http/HttpRequestFactory.php
includes/http/MWHttpRequest.php
includes/installer/PostgresUpdater.php
includes/installer/i18n/bg.json
includes/libs/filebackend/FileBackendStore.php
includes/libs/objectcache/WinCacheBagOStuff.php
includes/libs/rdbms/TransactionProfiler.php
includes/profiler/ProfilerExcimer.php [new file with mode: 0644]
includes/profiler/output/ProfilerOutputDb.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialBlock.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialPreferences.php
includes/specials/SpecialUndelete.php
includes/specials/pagers/AllMessagesTablePager.php
includes/widget/TagMultiselectWidget.php [new file with mode: 0644]
includes/widget/TitlesMultiselectWidget.php
includes/widget/UsersMultiselectWidget.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/ca.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/diq.json
languages/i18n/en.json
languages/i18n/es.json
languages/i18n/fr.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/it.json
languages/i18n/kjp.json
languages/i18n/ko.json
languages/i18n/lij.json
languages/i18n/mai.json
languages/i18n/mk.json
languages/i18n/mni.json
languages/i18n/mr.json
languages/i18n/oc.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ru.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/th.json
languages/i18n/tl.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/uz.json
languages/i18n/yue.json
languages/i18n/zh-hant.json
maintenance/postgres/tables.sql
resources/Resources.php
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js
resources/src/mediawiki.special/special.css
resources/src/mediawiki.widgets/mw.widgets.TagMultiselectWidget.base.css [new file with mode: 0644]
resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css [deleted file]
resources/src/startup/mediawiki.js
tests/parser/preprocess/All_system_messages.expected
tests/parser/preprocess/All_system_messages.txt
tests/phan/config.php
tests/phan/stubs/excimer.php [new file with mode: 0644]

index 6be908e..707a1fb 100644 (file)
@@ -21,6 +21,9 @@ module.exports = function ( grunt ) {
 
        grunt.initConfig( {
                eslint: {
+                       options: {
+                               reportUnusedDisableDirectives: true
+                       },
                        all: [
                                '**/*.js',
                                '!docs/**',
index cc250ef..5f034b5 100644 (file)
@@ -662,6 +662,8 @@ because of Phabricator reports.
   should be mediated by the CommentStore class, this change shouldn't affect
   external code.
 * (T206147) Database::close() will no longer commit any open transactions.
+* (T64103) Dropped columns category.cat_hidden, site_stats.ss_admins, and
+  recentchanges.rc_cur_time from the PostgreSQL schema.
 
 == Compatibility ==
 MediaWiki 1.32 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
index f68875b..1ab9d4e 100644 (file)
@@ -182,6 +182,8 @@ because of Phabricator reports.
   This will help identify the issue if you added it to $wgAuthManagerConfig.
 * wfSplitWikiId() is now deprecated. Cache key generation should have the wiki
   domain ID as a key component and use makeGlobalKey().
+* (T202094) Title::getUserCaseDBKey() is deprecated; instead, please use
+  Title::getDBKey(), which doesn't vary case.
 * …
 
 === Other changes in 1.33 ===
index c411948..6a5a9df 100644 (file)
@@ -940,6 +940,7 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\Widget\\Search\\SimpleSearchResultWidget' => __DIR__ . '/includes/widget/search/SimpleSearchResultWidget.php',
        'MediaWiki\\Widget\\SelectWithInputWidget' => __DIR__ . '/includes/widget/SelectWithInputWidget.php',
        'MediaWiki\\Widget\\SizeFilterWidget' => __DIR__ . '/includes/widget/SizeFilterWidget.php',
+       'MediaWiki\\Widget\\TagMultiselectWidget' => __DIR__ . '/includes/widget/TagMultiselectWidget.php',
        'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php',
        'MediaWiki\\Widget\\TitlesMultiselectWidget' => __DIR__ . '/includes/widget/TitlesMultiselectWidget.php',
        'MediaWiki\\Widget\\UserInputWidget' => __DIR__ . '/includes/widget/UserInputWidget.php',
@@ -1130,6 +1131,7 @@ $wgAutoloadLocalClasses = [
        'ProcessCacheLRU' => __DIR__ . '/includes/libs/ProcessCacheLRU.php',
        'Processor' => __DIR__ . '/includes/registration/Processor.php',
        'Profiler' => __DIR__ . '/includes/profiler/Profiler.php',
+       'ProfilerExcimer' => __DIR__ . '/includes/profiler/ProfilerExcimer.php',
        'ProfilerOutput' => __DIR__ . '/includes/profiler/output/ProfilerOutput.php',
        'ProfilerOutputDb' => __DIR__ . '/includes/profiler/output/ProfilerOutputDb.php',
        'ProfilerOutputDump' => __DIR__ . '/includes/profiler/output/ProfilerOutputDump.php',
index a63d352..2f1efbf 100644 (file)
@@ -4478,28 +4478,28 @@ $wgCentralIdLookupProvider = 'local';
 $wgPasswordPolicy = [
        'policies' => [
                'bureaucrat' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
                        'PasswordCannotMatchUsername' => true,
                        'PasswordCannotBePopular' => 25,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'sysop' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
                        'PasswordCannotMatchUsername' => true,
                        'PasswordCannotBePopular' => 25,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'interface-admin' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
                        'PasswordCannotMatchUsername' => true,
                        'PasswordCannotBePopular' => 25,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'bot' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
                        'PasswordCannotMatchUsername' => true,
                        'PasswordNotInLargeBlacklist' => true,
index 267b589..f5a954d 100644 (file)
@@ -893,8 +893,7 @@ class MediaWiki {
 
                // Loosen DB query expectations since the HTTP client is unblocked
                $trxProfiler = Profiler::instance()->getTransactionProfiler();
-               $trxProfiler->resetExpectations();
-               $trxProfiler->setExpectations(
+               $trxProfiler->redefineExpectations(
                        $this->context->getRequest()->hasSafeMethod()
                                ? $this->config->get( 'TrxProfilerLimits' )['PostSend-GET']
                                : $this->config->get( 'TrxProfilerLimits' )['PostSend-POST'],
index 972d5b1..55c5cd9 100644 (file)
@@ -954,6 +954,7 @@ class Title implements LinkTarget {
 
        /**
         * Get the DB key with the initial letter case as specified by the user
+        * @deprecated since 1.33; please use Title::getDBKey() instead
         *
         * @return string DB key
         */
index 3e6d402..03a5bc8 100644 (file)
@@ -73,9 +73,9 @@ class RollbackAction extends FormlessAction {
                $fname = __METHOD__;
                $trxLimits = $this->context->getConfig()->get( 'TrxProfilerLimits' );
                $trxProfiler = Profiler::instance()->getTransactionProfiler();
-               $trxProfiler->setExpectations( $trxLimits['POST'], $fname );
+               $trxProfiler->redefineExpectations( $trxLimits['POST'], $fname );
                DeferredUpdates::addCallableUpdate( function () use ( $trxProfiler, $trxLimits, $fname ) {
-                       $trxProfiler->setExpectations( $trxLimits['PostSend-POST'], $fname );
+                       $trxProfiler->redefineExpectations( $trxLimits['PostSend-POST'], $fname );
                } );
 
                $data = null;
index 84fcbef..886dbcc 100644 (file)
@@ -102,7 +102,6 @@ class ApiHelp extends ApiBase {
                        'mediawiki.apihelp',
                ] );
                if ( !empty( $options['toc'] ) ) {
-                       $out->addModules( 'mediawiki.toc' );
                        $out->addModuleStyles( 'mediawiki.toc.styles' );
                }
                $out->setPageTitle( $context->msg( 'api-help-title' ) );
index 913f45b..4ffe873 100644 (file)
@@ -821,7 +821,7 @@ class ApiPageSet extends ApiBase {
         * @param array $pageids Array of page IDs
         * @param bool $filterIds Whether the IDs need filtering
         */
-       private function initFromPageIds( $pageids, $filterIds = false ) {
+       private function initFromPageIds( $pageids, $filterIds = true ) {
                if ( !$pageids ) {
                        return;
                }
index 8758d9c..ea20664 100644 (file)
  * @file
  */
 
+use MediaWiki\MediaWikiServices;
+use MediaWiki\Special\SpecialPageFactory;
+
 /**
  * Query module to get the results of a QueryPage-based special page
  *
  * @ingroup API
  */
 class ApiQueryQueryPage extends ApiQueryGeneratorBase {
-       private $qpMap;
+
+       /**
+        * @var string[] list of special page names
+        */
+       private $queryPages;
+
+       /**
+        * @var SpecialPageFactory
+        */
+       private $specialPageFactory;
 
        public function __construct( ApiQuery $query, $moduleName ) {
                parent::__construct( $query, $moduleName, 'qp' );
-               // Build mapping from special page names to QueryPage classes
-               $uselessQueryPages = $this->getConfig()->get( 'APIUselessQueryPages' );
-               $this->qpMap = [];
-               foreach ( QueryPage::getPages() as $page ) {
-                       if ( !in_array( $page[1], $uselessQueryPages ) ) {
-                               $this->qpMap[$page[1]] = $page[0];
-                       }
-               }
+               $this->queryPages = array_values( array_diff(
+                       array_column( QueryPage::getPages(), 1 ), // [ class, name ]
+                       $this->getConfig()->get( 'APIUselessQueryPages' )
+               ) );
+               $this->specialPageFactory = MediaWikiServices::getInstance()->getSpecialPageFactory();
        }
 
        public function execute() {
@@ -48,6 +57,27 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                $this->run( $resultPageSet );
        }
 
+       /**
+        * @param string $name
+        * @return QueryPage
+        */
+       private function getSpecialPage( $name ) {
+               $qp = $this->specialPageFactory->getPage( $name );
+               if ( !$qp ) {
+                       self::dieDebug(
+                               __METHOD__,
+                               'SpecialPageFactory failed to create special page ' . $name
+                       );
+               }
+               if ( !( $qp instanceof QueryPage ) ) {
+                       self::dieDebug(
+                               __METHOD__,
+                               'Special page ' . $name . ' is not a QueryPage'
+                       );
+               }
+               return $qp;
+       }
+
        /**
         * @param ApiPageSet|null $resultPageSet
         */
@@ -55,8 +85,7 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                $params = $this->extractRequestParams();
                $result = $this->getResult();
 
-               /** @var QueryPage $qp */
-               $qp = new $this->qpMap[$params['page']]();
+               $qp = $this->getSpecialPage( $params['page'] );
                if ( !$qp->userCanExecute( $this->getUser() ) ) {
                        $this->dieWithError( 'apierror-specialpage-cantexecute' );
                }
@@ -125,8 +154,7 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
        }
 
        public function getCacheMode( $params ) {
-               /** @var QueryPage $qp */
-               $qp = new $this->qpMap[$params['page']]();
+               $qp = $this->getSpecialPage( $params['page'] );
                if ( $qp->getRestriction() != '' ) {
                        return 'private';
                }
@@ -137,7 +165,7 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
        public function getAllowedParams() {
                return [
                        'page' => [
-                               ApiBase::PARAM_TYPE => array_keys( $this->qpMap ),
+                               ApiBase::PARAM_TYPE => $this->queryPages,
                                ApiBase::PARAM_REQUIRED => true
                        ],
                        'offset' => [
index 78696da..18aa6da 100644 (file)
@@ -59,9 +59,9 @@ class ApiRollback extends ApiBase {
                $fname = __METHOD__;
                $trxLimits = $this->getConfig()->get( 'TrxProfilerLimits' );
                $trxProfiler = Profiler::instance()->getTransactionProfiler();
-               $trxProfiler->setExpectations( $trxLimits['POST'], $fname );
+               $trxProfiler->redefineExpectations( $trxLimits['POST'], $fname );
                DeferredUpdates::addCallableUpdate( function () use ( $trxProfiler, $trxLimits, $fname ) {
-                       $trxProfiler->setExpectations( $trxLimits['PostSend-POST'], $fname );
+                       $trxProfiler->redefineExpectations( $trxLimits['PostSend-POST'], $fname );
                } );
 
                $retval = $pageObj->doRollback(
index 31c9d8f..afddc10 100644 (file)
@@ -32,7 +32,8 @@
                        "Javiersanp",
                        "KATRINE1992",
                        "Adjen",
-                       "Tiberius1701"
+                       "Tiberius1701",
+                       "Jelou"
                ]
        },
        "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentación]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correo]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> La API de MediaWiki es una interfaz madura y estable que se mejora y prueba activamente. Aunque tratamos de evitarlo, es posible que ocasionalmente debamos hacer cambios importantes; Suscribase a la [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de correo the mediawiki-api-announce] para recibir avisos de actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se enviará un encabezado HTTP con la clave \"MediaWiki-API-Error\" y, luego, el valor del encabezado y el código de error devuelto se establecerán en el mismo valor. Para obtener más información, consulte [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errores y advertencias]].\n\n<p class=\"mw-apisandbox-link\"><strong>Pruebas:</strong> Para facilitar la comprobación de las solicitudes de API, consulte [[Special:ApiSandbox]].</p>",
        "apihelp-paraminfo-example-1": "Mostrar información para <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> y <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
        "apihelp-paraminfo-example-2": "Mostrar información para todos los submódulos de <kbd>[[Special:ApiHelp/query|action=query]]</kbd>.",
        "apihelp-parse-summary": "Analiza el contenido y devuelve la salida del analizador sintáctico.",
-       "apihelp-parse-extended-description": "Véanse los distintos módulos prop de <kbd>[[Special:ApiHelp/query|action=query]]</kbd> para obtener información de la versión actual de una página.\n\nHay varias maneras de especificar el texto que analizar:\n# Especificar una página o revisión, mediante <var>$1page</var>, <var>$1pageid</var> o <var>$1oldid</var>.\n# Especificar explícitamente el contenido, mediante <var>$1text</var>, <var>$1title</var> y <var>$1contentmodel</var>.\n# Especificar solamente un resumen que analizar. Se debería asignar a <var>$1prop</var> un valor vacío.",
+       "apihelp-parse-extended-description": "Véanse los distintos módulos prop de <kbd>[[Special:ApiHelp/query|action=query]]</kbd> para obtener información de la versión actual de una página.\n\nHay varias maneras de especificar el texto que analizar:\n# Especificar una página o revisión, mediante <var>$1page</var>, <var>$1pageid</var> o <var>$1oldid</var>.\n# Especificar explícitamente el contenido, mediante <var>$1text</var>, <var>$1title</var>, <var>$1revid</var>, y <var>$1contentmodel</var>.\n# Especificar solamente un resumen que analizar. Se debería asignar a <var>$1prop</var> un valor vacío.",
        "apihelp-parse-param-title": "Título de la página a la que pertenece el texto. Si se omite se debe especificar <var>$1contentmodel</var> y se debe utilizar el [[API]] como título.",
        "apihelp-parse-param-text": "Texto a analizar. Utiliza <var>$1title</var> or <var>$1contentmodel</var> para controlar el modelo del contenido.",
        "apihelp-parse-param-summary": "Resumen a analizar.",
        "apihelp-query+filearchive-paramvalue-prop-archivename": "Añade el nombre de archivo de la versión archivada para las versiones que no son las últimas.",
        "apihelp-query+filearchive-example-simple": "Mostrar una lista de todos los archivos eliminados.",
        "apihelp-query+filerepoinfo-summary": "Devuelve metainformación sobre los repositorios de imágenes configurados en el wiki.",
-       "apihelp-query+filerepoinfo-param-prop": "Propiedades del repositorio a obtener (puede haber más disponibles en algunos wikis):\n;apiurl:URL del repositorio API - útil para obtener información de imagen del servidor.\n;name:La clave del repositorio - usado in e.g. <var>[[mw:Special:MyLanguage/Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> y [[Special:ApiHelp/query+imageinfo|imageinfo]] devuelve valores.\n;displayname:El nombre legible del repositorio  wiki.\n;rooturl:Raíz URL para rutas de  imágenes.\n;local:Si ese repositorio es local o no.",
+       "apihelp-query+filerepoinfo-param-prop": "Qué propiedades del repositorio obtener (las propiedades disponibles pueden variar en otras wikis).",
        "apihelp-query+filerepoinfo-example-simple": "Obtener información acerca de los repositorios de archivos.",
        "apihelp-query+fileusage-summary": "Encontrar todas las páginas que utilizan los archivos dados.",
        "apihelp-query+fileusage-param-prop": "Qué propiedades se obtendrán:",
        "apihelp-query+info-paramvalue-prop-notificationtimestamp": "La hora de notificación de la lista de seguimiento de cada página.",
        "apihelp-query+info-paramvalue-prop-subjectid": "La ID de página de la página principal de cada página de discusión.",
        "apihelp-query+info-paramvalue-prop-url": "Muestra una URL completa, una URL de edición y la URL canónica de cada página.",
-       "apihelp-query+info-paramvalue-prop-readable": "Si el usuario puede leer esta página.",
+       "apihelp-query+info-paramvalue-prop-readable": "Si el usuario puede leer esta página. Usa <kbd>intestactions=read</kbd> en su lugar.",
        "apihelp-query+info-paramvalue-prop-preload": "Muestra el texto devuelto por EditFormPreloadText.",
        "apihelp-query+info-paramvalue-prop-displaytitle": "Proporciona la manera en que se muestra realmente el título de la página",
        "apihelp-query+info-param-testactions": "Comprobar su el usuario actual puede realizar determinadas acciones en la página.",
        "apihelp-query+revisions-summary": "Obtener información de la revisión.",
        "apihelp-query+revisions-extended-description": "Puede ser utilizado de varias maneras:\n# Obtener datos sobre un conjunto de páginas (última revisión), estableciendo títulos o ID de paginas.\n# Obtener revisiones para una página determinada, usando títulos o ID de páginas con inicio, fin o límite.\n# Obtener datos sobre un conjunto de revisiones estableciendo sus ID con revids.",
        "apihelp-query+revisions-paraminfo-singlepageonly": "Solo se puede usar con una sola página (modo n.º 2).",
-       "apihelp-query+revisions-param-startid": "Identificador de revisión a partir del cual empezar la enumeración.",
-       "apihelp-query+revisions-param-endid": "Identificador de revisión en el que detener la enumeración.",
+       "apihelp-query+revisions-param-startid": "Iniciar la enumeración desde la marca de tiempo de esta revisión. La revisión debe existir, pero no es necesario que pertenezca a esta página.",
+       "apihelp-query+revisions-param-endid": "Detener la enumeración en la marca de tiempo de esta revisión. La revisión debe existir, pero no es necesario que pertenezca a esta página.",
        "apihelp-query+revisions-param-start": "Marca de tiempo a partir de la cual empezar la enumeración.",
        "apihelp-query+revisions-param-end": "Enumerar hasta esta marca de tiempo.",
        "apihelp-query+revisions-param-user": "Incluir solo las revisiones realizadas por el usuario.",
        "apihelp-query+revisions+base-paramvalue-prop-userid": "Identificador de usuario del creador de la revisión.",
        "apihelp-query+revisions+base-paramvalue-prop-size": "Longitud (en bytes) de la revisión.",
        "apihelp-query+revisions+base-paramvalue-prop-sha1": "SHA-1 (base 16) de la revisión.",
-       "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "Identificador del modelo de contenido de la revisión.",
+       "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "Id. del modelo de contenido en cada espacio de revisión.",
        "apihelp-query+revisions+base-paramvalue-prop-comment": "Comentario del usuario para la revisión.",
        "apihelp-query+revisions+base-paramvalue-prop-parsedcomment": "Comentario analizado del usuario para la revisión.",
-       "apihelp-query+revisions+base-paramvalue-prop-content": "Texto de la revisión.",
+       "apihelp-query+revisions+base-paramvalue-prop-content": "Contenido de cada espacio de revisión.",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "Etiquetas para la revisión.",
-       "apihelp-query+revisions+base-paramvalue-prop-parsetree": "El árbol de análisis sintáctico XML del contenido de la revisión (requiere el modelo de contenido <code>$1</code>).",
+       "apihelp-query+revisions+base-paramvalue-prop-parsetree": "Usa <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> o <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd> en su lugar.\nEl árbol de análisis sintáctico XML del contenido de la revisión (necesita el modelo de contenido <code>$1</code>).",
        "apihelp-query+revisions+base-param-limit": "Limitar la cantidad de revisiones que se devolverán.",
-       "apihelp-query+revisions+base-param-expandtemplates": "Expandir las plantillas en el contenido de la revisión (requiere $1prop=content).",
-       "apihelp-query+revisions+base-param-generatexml": "Generar el árbol de análisis sintáctico XML para el contenido de la revisión (requiere $1prop=content; reemplazado por <kbd>$1prop=parsetree</kbd>).",
-       "apihelp-query+revisions+base-param-parse": "Analizar el contenido de la revisión (requiere $1prop=content). Por motivos de rendimiento, si se utiliza esta opción, el valor de $1limit es forzado a 1.",
+       "apihelp-query+revisions+base-param-expandtemplates": "Usa <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> en su lugar.\nExpandir las plantillas en el contenido de la revisión (necesita $1prop=content).",
+       "apihelp-query+revisions+base-param-generatexml": "Usa <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> o <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd> en su lugar.\nGenerar el árbol de análisis sintáctico XML para el contenido de la revisión (necesita $1prop=content).",
+       "apihelp-query+revisions+base-param-parse": "Usa <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd> en su lugar.\nAnalizar el contenido de la revisión (requiere $1prop=content). Por razones de rendimiento, si se usa esta opción, el valor de $1limit es forzado a 1.",
        "apihelp-query+revisions+base-param-section": "Recuperar solamente el contenido de este número de sección.",
        "apihelp-query+revisions+base-param-contentformat": "Formato de serialización utilizado para <var>$1difftotext</var> y esperado para la salida de contenido.",
        "apihelp-query+search-summary": "Realizar una búsqueda de texto completa.",
        "apihelp-rollback-param-tags": "Etiquetas que aplicar a la reversión.",
        "apihelp-rollback-param-user": "Nombre del usuario cuyas ediciones se van a revertir.",
        "apihelp-rollback-param-summary": "Resumen de edición personalizado. Si se deja vacío se utilizará el predeterminado.",
-       "apihelp-rollback-param-markbot": "Marcar las acciones revertidas y la reversión como ediciones por bots.",
+       "apihelp-rollback-param-markbot": "Marca las ediciones como revertidas y las revierte como ediciones de un bot.",
        "apihelp-rollback-param-watchlist": "Añadir o borrar incondicionalmente la página de la lista de seguimiento del usuario actual, usar preferencias o no cambiar seguimiento.",
        "apihelp-rollback-example-simple": "Revertir las últimas ediciones de la página <kbd>Main Page</kbd> por el usuario <kbd>Example</kbd>.",
        "apihelp-rollback-example-summary": "Revertir las últimas ediciones de la página <kbd>Main Page</kbd> por el usuario de IP <kbd>192.0.2.5</kbd> con resumen <kbd>Reverting vandalism</kbd>, y marcar esas ediciones y la reversión como ediciones realizadas por bots.",
        "apihelp-json-param-callback": "Si se especifica, envuelve la salida dentro de una llamada a una función dada. Por motivos de seguridad, cualquier dato específico del usuario estará restringido.",
        "apihelp-json-param-utf8": "Si se especifica, codifica la mayoría (pero no todos) de los caracteres no pertenecientes a ASCII como UTF-8 en lugar de reemplazarlos por secuencias de escape hexadecimal. Toma el comportamiento por defecto si <var>formatversion</var> no es <kbd>1</kbd>.",
        "apihelp-json-param-ascii": "Si se especifica, codifica todos los caracteres no pertenecientes a ASCII mediante secuencias de escape hexadecimal. Toma el comportamiento por defecto si <var>formatversion</var> no es <kbd>1</kbd>.",
-       "apihelp-json-param-formatversion": "Formato de salida:\n;1: Formato retrocompatible (booleanos con estilo XML, claves <samp>*</samp> para nodos de contenido, etc.).\n;2: Formato moderno experimental. ¡Atención, las especificaciones pueden cambiar!\n;latest: Utiliza el último formato (actualmente <kbd>2</kbd>). Puede cambiar sin aviso.",
+       "apihelp-json-param-formatversion": "Formato de salida:\n;1: Formato retrocompatible (booleanos con estilo XML, claves <samp>*</samp> para nodos de contenido, etc.).\n;2: Formato moderno.\n;último: Utiliza el último formato (actualmente <kbd>2</kbd>), puede cambiar sin aviso.",
        "apihelp-jsonfm-summary": "Producir los datos de salida en formato JSON (con resaltado sintáctico en HTML).",
        "apihelp-none-summary": "No extraer nada.",
        "apihelp-php-summary": "Extraer los datos de salida en formato serializado PHP.",
-       "apihelp-php-param-formatversion": "Formato de salida:\n;1: Formato retrocompatible (booleanos con estilo XML, claves <samp>*</samp> para nodos de contenido, etc.).\n;2: Formato moderno experimental. ¡Atención, las especificaciones pueden cambiar!\n;latest: Utilizar el último formato (actualmente <kbd>2</kbd>). Puede cambiar sin aviso.",
+       "apihelp-php-param-formatversion": "Formato de salida:\n;1: Formato retrocompatible (booleanos con estilo XML, claves <samp>*</samp> para nodos de contenido, etc.).\n;2: Formato moderno.\n;último: Utiliza el último formato (actualmente <kbd>2</kbd>), puede cambiar sin aviso.",
        "apihelp-phpfm-summary": "Producir los datos de salida en formato PHP serializado (con resaltado sintáctico en HTML).",
        "apihelp-rawfm-summary": "Extraer los datos de salida, incluidos los elementos de depuración, en formato JSON (embellecido en HTML).",
        "apihelp-xml-summary": "Producir los datos de salida en formato XML.",
        "apierror-nosuchuserid": "No hay ningún usuario con ID $1.",
        "apierror-notarget": "No has especificado un destino válido para esta acción.",
        "apierror-notpatrollable": "La revisión r$1 no se puede patrullar por ser demasiado antigua.",
-       "apierror-offline": "No se puede continuar debido a problemas de conectividad de la red. Asegúrate de que tienes una conexión activa a internet e inténtalo de nuevo.",
+       "apierror-offline": "No se pudo continuar debido a problemas de conectividad de red. Asegúrate de tener una conexión a Internet que funcione y vuelve a intentarlo.",
        "apierror-opensearch-json-warnings": "No se pueden representar los avisos en formato JSON de OpenSearch.",
        "apierror-pagecannotexist": "En este espacio de nombres no se permiten páginas reales.",
        "apierror-pagedeleted": "La página ha sido borrada en algún momento desde que obtuviste su marca de tiempo.",
index a516888..34ecc71 100644 (file)
        "apihelp-edit-summary": "建立與編輯頁面。",
        "apihelp-edit-param-title": "您欲編輯的頁面標題。 無法與 <var>$1pageid</var> 同時使用。",
        "apihelp-edit-param-pageid": "您欲編輯頁面的頁面 ID。 無法與 <var>$1title</var> 同時使用。",
-       "apihelp-edit-param-section": "章節編號。 <kbd>0</kbd> 代表最上層章節,<kbd>new</kbd> 代表新章節。",
+       "apihelp-edit-param-section": "章節編號。<kbd>0</kbd> 代表最上層章節,<kbd>new</kbd> 代表新章節。",
        "apihelp-edit-param-sectiontitle": "新章節的標題。",
        "apihelp-edit-param-text": "頁面內容。",
        "apihelp-edit-param-summary": "編輯摘要。 當未設定 $1section=new 與 $1sectiontitle 時也會當做章節標題。",
        "apihelp-parse-param-generatexml": "產生 XML 解析樹狀(需要被 <kbd>$2prop=parsetree</kbd> 給取代的 <code>$1</code> 內容模組)。",
        "apihelp-parse-param-preview": "在預覽模式下解析。",
        "apihelp-parse-param-disabletoc": "在輸出裡忽略目錄。",
+       "apihelp-parse-param-useskin": "套用所選的外觀至解析輸出。可能會影響以下參數:<kbd>langlinks</kbd>、<kbd>headitems</kbd>、<kbd>modules</kbd>、<kbd>jsconfigvars</kbd>、<kbd>indicators</kbd>。",
        "apihelp-parse-example-page": "解析頁面。",
        "apihelp-parse-example-text": "解析 wikitext。",
        "apihelp-parse-example-texttitle": "解析 wikitext,指定頁面標題。",
        "apihelp-query+allusers-paramvalue-prop-rights": "列出使用者所擁有的權限。",
        "apihelp-query+allusers-paramvalue-prop-editcount": "添加使用者的編輯次數。",
        "apihelp-query+allusers-paramvalue-prop-registration": "若可能的話,添加當使用者註冊時的時間戳記(可能為空白)。",
+       "apihelp-query+allusers-paramvalue-prop-centralids": "替使用者添加中心 ID 與附加狀態。",
        "apihelp-query+allusers-param-limit": "要回傳的使用者名稱總數。",
        "apihelp-query+allusers-param-witheditsonly": "僅列出有做過編輯的使用者。",
        "apihelp-query+allusers-param-activeusers": "僅列出在最近 $1 {{PLURAL:$1|天|天}}裡活躍的使用者。",
        "apihelp-query+filearchive-paramvalue-prop-timestamp": "添加上傳版本的時間戳記。",
        "apihelp-query+filearchive-paramvalue-prop-user": "添加上傳該圖片版本的使用者。",
        "apihelp-query+filearchive-paramvalue-prop-size": "添加圖片大小(位元組)、高度、寬度、頁面計數(若可套用的話)。",
+       "apihelp-query+filearchive-paramvalue-prop-dimensions": "大小的別名。",
        "apihelp-query+filearchive-paramvalue-prop-description": "添加圖片版本的描述。",
        "apihelp-query+filearchive-paramvalue-prop-parseddescription": "解析版本的描述。",
        "apihelp-query+filearchive-paramvalue-prop-mime": "添加圖片的 MIME。",
        "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "添加檔案的規範標題。",
        "apihelp-query+imageinfo-paramvalue-prop-url": "提供檔案與描述頁面的 URL。",
        "apihelp-query+imageinfo-paramvalue-prop-size": "添加以位元組為單位的檔案大小、高度、寬度、頁面計數(若可套用的話)。",
+       "apihelp-query+imageinfo-paramvalue-prop-dimensions": "大小的別名。",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "替檔案添加 SHA-1 雜湊值。",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "替檔案添加 MIME 類型。",
        "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "添加圖片縮圖的 MIME 類型(需要 url 與參數 $1urlwidth)。",
        "apihelp-query+revisions+base-paramvalue-prop-sha1": "修訂的 SHA-1(base 16)。",
        "apihelp-query+revisions+base-paramvalue-prop-slotsha1": "各修訂間隔的 SHA-1(base 16)。",
        "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "各修訂間隔的內容模組 ID。",
+       "apihelp-query+revisions+base-paramvalue-prop-comment": "由使用者對於修訂所做出的註釋。",
+       "apihelp-query+revisions+base-paramvalue-prop-parsedcomment": "由使用者對於修訂所解析的註釋。",
        "apihelp-query+revisions+base-paramvalue-prop-content": "各修訂間隔的內容。",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "修訂標籤。",
        "apihelp-query+revisions+base-paramvalue-prop-parsetree": "請改用 <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> 或 <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>。修訂內容的 XML 解析樹狀(需要內容模組 <code>$1</code>)。",
        "apihelp-query+templates-summary": "回傳指定頁面中所有引用的頁面。",
        "apihelp-query+templates-param-namespace": "僅顯示在這些命名空間的模板。",
        "apihelp-query+templates-param-limit": "要回傳的模板數量。",
+       "apihelp-query+templates-param-templates": "僅列出這些模板。在檢查某一頁面是否擁有某一模板時很有用。",
        "apihelp-query+templates-param-dir": "列出時所採用的方向。",
        "apihelp-query+templates-example-simple": "取得在頁面 <kbd>Main Page</kbd> 使用到的模坂。",
        "apihelp-query+templates-example-generator": "取得使用在 <kbd>Main Page</kbd> 的模版頁面相關資訊。",
        "apihelp-query+usercontribs-summary": "按使用者來取得所有編輯。",
        "apihelp-query+usercontribs-param-limit": "回傳的貢獻數量上限。",
        "apihelp-query+usercontribs-param-user": "要檢索貢獻的使用者。不能與 <var>$1userids</var> 或 <var>$1userprefix</var> 一起使用。",
+       "apihelp-query+usercontribs-param-userids": "要檢索貢獻的使用者 ID。不能與 <var>$1user</var> 或 <var>$1userprefix</var> 一起使用。",
        "apihelp-query+usercontribs-param-namespace": "僅列出這些命名空間的貢獻。",
        "apihelp-query+usercontribs-param-prop": "包含的額外資訊部份:",
        "apihelp-query+usercontribs-paramvalue-prop-ids": "添加頁面 ID 與修訂 ID。",
        "apihelp-setpagelanguage-extended-description-disabled": "您不被允許在此 wiki 上變更頁面的語言。\n\n請啟用 <var>[[mw:Special:MyLanguage/Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> 來進行此操作。",
        "apihelp-setpagelanguage-param-title": "您所想要更改語言的頁面之標題。不能與 <var>$1pageid</var> 一起使用。",
        "apihelp-setpagelanguage-param-pageid": "您所想要更改語言的頁面之頁面 ID。不能與 <var>$1title</var> 一起使用。",
+       "apihelp-setpagelanguage-param-lang": "要更改頁面的語言之代碼。使用 <kbd>default</kbd> 來重新設定頁面成 wiki 的預設內容語言。",
        "apihelp-setpagelanguage-param-reason": "變更的原因。",
        "apihelp-setpagelanguage-param-tags": "更改對應自此項操作所導致出日誌項目的標籤。",
        "apihelp-setpagelanguage-example-language": "更改 <kbd>Main Page</kbd> 的語言成巴斯克語。",
        "apihelp-setpagelanguage-example-default": "將 ID 是 123 頁面的語言更改為 wiki 的預設內容語言。",
        "apihelp-stashedit-summary": "在分享快取裡預備編輯。",
        "apihelp-stashedit-param-title": "正在編輯此頁面的標題。",
+       "apihelp-stashedit-param-section": "章節編號。<kbd>0</kbd> 代表最上層章節,<kbd>new</kbd> 代表新章節。",
        "apihelp-stashedit-param-sectiontitle": "新章節的標題。",
        "apihelp-stashedit-param-text": "頁面內容。",
        "apihelp-stashedit-param-stashedtexthash": "要替代使用的來自先前儲藏裡頁面內容雜湊。",
        "apihelp-undelete-param-title": "要恢復的頁面標題。",
        "apihelp-undelete-param-reason": "還原的原因。",
        "apihelp-undelete-param-tags": "在刪除日誌裡更改套用到項目的標籤。",
+       "apihelp-undelete-param-timestamps": "要復原的修訂時間戳記。若 <var>$1timestamps</var> 與 <var>$1fileids</var> 皆為空,則所有都會被復原。",
+       "apihelp-undelete-param-fileids": "要復原的檔案修訂 ID。若 <var>$1timestamps</var> 與 <var>$1fileids</var> 皆為空,則所有都會被復原。",
        "apihelp-undelete-param-watchlist": "使用偏好設定無條件地將頁面加入至或移除自目前使用者的監視清單,或不更改監視。",
        "apihelp-undelete-example-page": "取消刪除頁面 <kbd>Main Page</kbd>。",
        "apihelp-undelete-example-revisions": "取消刪除 <kbd>Main Page</kbd> 的兩筆修訂。",
        "apihelp-upload-param-ignorewarnings": "忽略所有警告。",
        "apihelp-upload-param-file": "檔案內容。",
        "apihelp-upload-param-url": "索取檔案的來源 URL。",
+       "apihelp-upload-param-sessionkey": "如同 $1filekey,維持向下相容性。",
        "apihelp-upload-param-stash": "若設定的話,伺服器將會把檔案臨時暫存;而不是添加至儲存庫裡。",
        "apihelp-upload-param-filesize": "整體上傳的檔案大小。",
        "apihelp-upload-param-chunk": "大量內容。",
        "apihelp-upload-param-async": "在可能的情況下讓潛在的大型檔案非同步處理。",
+       "apihelp-upload-param-checkstatus": "僅檢索指定檔案鍵的上傳狀態。",
        "apihelp-upload-example-url": "從 URL 上傳。",
        "apihelp-upload-example-filekey": "完成出於警告而失敗的上傳。",
        "apihelp-userrights-summary": "變更一位使用者的群組成員。",
        "apihelp-userrights-param-remove": "從這些群組移除使用者。",
        "apihelp-userrights-param-reason": "變更的原因。",
        "apihelp-userrights-param-tags": "在使用者權限日誌裡更改套用到項目的標籤。",
+       "apihelp-userrights-example-user": "添加使用者 <kbd>FooBot</kbd> 至群組 <kbd>bot</kbd>,並從群組 <kbd>sysop</kbd> 與 <kbd>bureaucrat</kbd> 裡移除。",
+       "apihelp-userrights-example-userid": "添加 ID 為 <kbd>123</kbd> 的使用者至群組 <kbd>bot</kbd>,並從群組 <kbd>sysop</kbd> 與 <kbd>bureaucrat</kbd> 裡移除。",
        "apihelp-userrights-example-expiry": "添加使用者 <kbd>SometimeSysop</kbd> 至群組 <kbd>sysop</kbd> 為期一個月時間。",
        "apihelp-validatepassword-summary": "驗證密碼是否符合 wiki 的密碼方針。",
        "apihelp-validatepassword-param-password": "要驗證的密碼。",
        "apihelp-phpfm-summary": "使用序列化 PHP 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-rawfm-summary": "使用 JSON 格式的除錯元素輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-xml-summary": "使用 XML 格式輸出資料。",
+       "apihelp-xml-param-xslt": "若有指定,添加命名頁面成 XSL 樣式表。值必須是在 <code>.xsl</code> 結尾處 {{ns:MediaWiki}} 命名空間裡的標題。",
        "apihelp-xml-param-includexmlnamespace": "若有指定,添加一個 XML 命名空間。",
        "apihelp-xmlfm-summary": "使用 XML 格式輸出資料 (使用 HTML 格式顯示)。",
        "api-format-title": "MediaWiki API 結果",
        "api-format-prettyprint-header-only-html": "這是用來除錯的HTML呈現,不適合實際應用。\n\n參見[[mw:Special:MyLanguage/API|完整文件]]或[[Special:ApiHelp/main|API幫助]]以取得更多資訊。",
        "api-format-prettyprint-header-hyperlinked": "這是$1格式的HTML實現。HTML對除錯很有用,但不適合應用程式使用。\n\n指定<var>format</var>參數以更改輸出格式。要查看$1格式的非HTML實現,設置[$3 <kbd>format=$2</kbd>]。\n\n參見[[mw:API|完整文件]],或[[Special:ApiHelp/main|API幫助]]以獲取更多信息。",
        "api-format-prettyprint-status": "此回應將會傳回HTTP狀態$1 $2。",
+       "api-login-fail-aborted-nobotpw": "驗證需要使用者互動,該不被 <kbd>action=login</kbd> 所支援。要登入請查看 <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>。",
        "api-login-fail-badsessionprovider": "當使用$1無法登入。",
        "api-login-fail-sameorigin": "當未套用相同原有方針時無法登入。",
        "api-pageset-param-titles": "要使用的標題清單。",
        "apierror-integeroutofrange-belowminimum": "<var>$1</var> 不能小於 $2(設定為 $3)。",
        "apierror-invalidcategory": "您所輸入的分類名稱無效。",
        "apierror-invalidexpiry": "無效的期限時間「$1」。",
+       "apierror-invalid-file-key": "不是有效的檔案鍵。",
        "apierror-invalidlang": "用於參數 <var>$1</var> 的語言代碼無效。",
        "apierror-invalidmethod": "無效的 HTTP 方式。請考慮採用 GET 或 POST。",
        "apierror-invalidoldimage": "<var>oldimage</var> 參數含有無效格式。",
        "apierror-stashfilestorage": "在儲藏裡不能儲存上傳:$1。",
        "apierror-stashinvalidfile": "無效的儲藏檔案。",
        "apierror-stashnosuchfilekey": "沒有這樣的檔案鍵:$1。",
+       "apierror-stashpathinvalid": "不正確格式或是其它無效的檔案鍵:$1。",
        "apierror-stashwrongowner": "錯誤擁有者:$1",
        "apierror-stashzerolength": "檔案長度為零,且無法儲存於儲藏:$1。",
        "apierror-systemblocked": "您已被 MediaWiki 給自動封鎖。",
        "apiwarn-truncatedresult": "結果會被截短,否則將會大於 $1 位元組限制。",
        "apiwarn-unrecognizedvalues": "參數 <var>$1</var> 有無法識別的{{PLURAL:$3|值|值}}:$2。",
        "apiwarn-unsupportedarray": "參數 <var>$1</var> 使用了不被支援的 PHP 陣列語法。",
+       "apiwarn-validationfailed-badchars": "在鍵裡的字元無效(僅允許 <code>a-z</code>、<code>A-Z</code>、<code>0-9</code>、<code>_</code>、和 <code>-</code> are allowed)。",
        "apiwarn-validationfailed-badpref": "不是有效的偏好設定。",
        "apiwarn-validationfailed-cannotset": "不能透過此模組設定。",
+       "apiwarn-validationfailed-keytoolong": "鍵太長(不允許超過 $1 位元組)。",
        "apiwarn-validationfailed": "<kbd>$1</kbd>驗證錯誤:$2",
        "apiwarn-wgDebugAPI": "<strong>安全警告</strong>:<var>$wgDebugAPI</var> 已啟用。",
        "api-feed-error-title": "錯誤($1)",
index 63cc2a8..826eecb 100644 (file)
  * @ingroup DifferenceEngine
  */
 
+use MediaWiki\MediaWikiServices;
 use MediaWiki\Revision\RevisionRecord;
 use MediaWiki\Revision\SlotRecord;
+use MediaWiki\Storage\NameTableAccessException;
 
 /**
  * DifferenceEngine is responsible for rendering the difference between two revisions as HTML.
@@ -1797,22 +1799,42 @@ class DifferenceEngine extends ContextSource {
 
                // Load tags information for both revisions
                $dbr = wfGetDB( DB_REPLICA );
+               $changeTagDefStore = MediaWikiServices::getInstance()->getChangeTagDefStore();
                if ( $this->mOldid !== false ) {
-                       $this->mOldTags = $dbr->selectField(
-                               'tag_summary',
-                               'ts_tags',
-                               [ 'ts_rev_id' => $this->mOldid ],
+                       $tagIds = $dbr->selectFieldValues(
+                               'change_tag',
+                               'ct_tag_id',
+                               [ 'ct_rev_id' => $this->mOldid ],
                                __METHOD__
                        );
+                       $tags = [];
+                       foreach ( $tagIds as $tagId ) {
+                               try {
+                                       $tags[] = $changeTagDefStore->getName( (int)$tagId );
+                               } catch ( NameTableAccessException $exception ) {
+                                       continue;
+                               }
+                       }
+                       $this->mOldTags = implode( ',', $tags );
                } else {
                        $this->mOldTags = false;
                }
-               $this->mNewTags = $dbr->selectField(
-                       'tag_summary',
-                       'ts_tags',
-                       [ 'ts_rev_id' => $this->mNewid ],
+
+               $tagIds = $dbr->selectFieldValues(
+                       'change_tag',
+                       'ct_tag_id',
+                       [ 'ct_rev_id' => $this->mNewid ],
                        __METHOD__
                );
+               $tags = [];
+               foreach ( $tagIds as $tagId ) {
+                       try {
+                               $tags[] = $changeTagDefStore->getName( (int)$tagId );
+                       } catch ( NameTableAccessException $exception ) {
+                               continue;
+                       }
+               }
+               $this->mNewTags = implode( ',', $tags );
 
                return true;
        }
index 5654a71..db8a09b 100644 (file)
@@ -91,7 +91,11 @@ class GuzzleHttpRequest extends MWHttpRequest {
 
                if ( $this->method == 'POST' ) {
                        $postData = $this->postData;
-                       $this->guzzleOptions['body'] = $postData;
+                       if ( is_array( $postData ) ) {
+                               $this->guzzleOptions['form_params'] = $postData;
+                       } else {
+                               $this->guzzleOptions['body'] = $postData;
+                       }
 
                        // Suppress 'Expect: 100-continue' header, as some servers
                        // will reject it with a 417 and Curl won't auto retry
index a3a14d0..0faef17 100644 (file)
@@ -44,7 +44,7 @@ class HttpRequestFactory {
         */
        public function create( $url, array $options = [], $caller = __METHOD__ ) {
                if ( !Http::$httpEngine ) {
-                       Http::$httpEngine = 'guzzle';
+                       Http::$httpEngine = function_exists( 'curl_init' ) ? 'curl' : 'php';
                } elseif ( Http::$httpEngine == 'curl' && !function_exists( 'curl_init' ) ) {
                        throw new DomainException( __METHOD__ . ': curl (https://secure.php.net/curl) is not ' .
                           'installed, but Http::$httpEngine is set to "curl"' );
index b087019..2cf5320 100644 (file)
@@ -387,7 +387,7 @@ abstract class MWHttpRequest implements LoggerAwareInterface {
 
                // Failure without (valid) headers gets a response status of zero
                if ( !$this->status->isOK() ) {
-                       $this->respStatus = '0';
+                       $this->respStatus = '0 Error';
                }
 
                foreach ( $this->headerList as $header ) {
index 917f589..9ddc85a 100644 (file)
@@ -598,6 +598,9 @@ class PostgresUpdater extends DatabaseUpdater {
                        [ 'addPgField', 'ipblocks', 'ipb_sitewide', 'SMALLINT NOT NULL DEFAULT 1' ],
                        [ 'addTable', 'ipblocks_restrictions', 'patch-ipblocks_restrictions-table.sql' ],
                        [ 'migrateImageCommentTemp' ],
+                       [ 'dropPgField', 'category', 'cat_hidden' ],
+                       [ 'dropPgField', 'site_stats', 'ss_admins' ],
+                       [ 'dropPgField', 'recentchanges', 'rc_cur_time' ],
 
                        // 1.33
                        [ 'dropField', 'change_tag', 'ct_tag', 'patch-drop-ct_tag.sql' ],
@@ -953,8 +956,7 @@ END;
        protected function changeNullableField( $table, $field, $null, $update = false ) {
                $fi = $this->db->fieldInfo( $table, $field );
                if ( is_null( $fi ) ) {
-                       $this->output( "...ERROR: expected column $table.$field to exist\n" );
-                       exit( 1 );
+                       return;
                }
                if ( $fi->isNullable() ) {
                        # # It's NULL - does it need to be NOT NULL?
index ca67a25..94aff80 100644 (file)
        "config-sqlite-cant-create-db": "Файлът за базата от данни <code>$1</code> не може да бъде създаден.",
        "config-sqlite-fts3-downgrade": "Липсва поддръжката на FTS3 за PHP, извършен беше downgradе на таблиците.",
        "config-can-upgrade": "В базата от данни има таблици за МедияУики.\nЗа надграждането им за MediaWiki $1, натиска се <strong>Продължаване</strong>.",
+       "config-upgrade-error": "Възникна грешка при актуализиране на таблиците от базата от данни на МедияУики.\n\nЗа повече инфоремация вижте дневника по-горе, за да опитате отново щракнете <strong>Продължаване</strong>.",
        "config-upgrade-done": "Обновяването приключи.\n\nВече е възможно [$1 да използвате уикито].\n\nАко е необходимо, възможно е файлът <code>LocalSettings.php</code> да бъде създаден отново чрез натискане на бутона по-долу.\nТова <strong>не е препоръчително действие</strong>, освен ако не срещате затруднения с уикито.",
        "config-upgrade-done-no-regenerate": "Обновяването приключи.\n\nВече е възможно [$1 да използвате уикито].",
        "config-regenerate": "Повторно създаване на LocalSettings.php →",
index 33afe65..28a293f 100644 (file)
@@ -644,20 +644,18 @@ abstract class FileBackendStore extends FileBackend {
                }
 
                $stat = $this->cheapCache->getField( $path, 'stat', self::CACHE_TTL );
-               if ( $stat !== null ) {
-                       // If we want the latest data, check that this cached
-                       // value was in fact fetched with the latest available data.
-                       if ( is_array( $stat ) ) {
-                               if (
-                                       ( !$latest || $stat['latest'] ) &&
-                                       ( !$requireSHA1 || isset( $stat['sha1'] ) )
-                               ) {
-                                       return $stat;
-                               }
-                       } elseif ( in_array( $stat, [ 'NOT_EXIST', 'NOT_EXIST_LATEST' ] ) ) {
-                               if ( !$latest || $stat === 'NOT_EXIST_LATEST' ) {
-                                       return false;
-                               }
+               // If we want the latest data, check that this cached
+               // value was in fact fetched with the latest available data.
+               if ( is_array( $stat ) ) {
+                       if (
+                               ( !$latest || $stat['latest'] ) &&
+                               ( !$requireSHA1 || isset( $stat['sha1'] ) )
+                       ) {
+                               return $stat;
+                       }
+               } elseif ( in_array( $stat, [ 'NOT_EXIST', 'NOT_EXIST_LATEST' ], true ) ) {
+                       if ( !$latest || $stat === 'NOT_EXIST_LATEST' ) {
+                               return false;
                        }
                }
 
index 98f44d1..9c6c907 100644 (file)
@@ -61,4 +61,40 @@ class WinCacheBagOStuff extends BagOStuff {
 
                return $ok;
        }
+
+       /**
+        * Construct a cache key.
+        *
+        * @since 1.27
+        * @param string $keyspace
+        * @param array $args
+        * @return string
+        */
+       public function makeKeyInternal( $keyspace, $args ) {
+               // WinCache keys have a maximum length of 150 characters. From that,
+               // subtract the number of characters we need for the keyspace and for
+               // the separator character needed for each argument. To handle some
+               // custom prefixes used by thing like WANObjectCache, limit to 125.
+               // NOTE: Same as in memcached, except the max key length there is 255.
+               $charsLeft = 125 - strlen( $keyspace ) - count( $args );
+
+               $args = array_map(
+                       function ( $arg ) use ( &$charsLeft ) {
+                               // 33 = 32 characters for the MD5 + 1 for the '#' prefix.
+                               if ( $charsLeft > 33 && strlen( $arg ) > $charsLeft ) {
+                                       $arg = '#' . md5( $arg );
+                               }
+
+                               $charsLeft -= strlen( $arg );
+                               return $arg;
+                       },
+                       $args
+               );
+
+               if ( $charsLeft < 0 ) {
+                       return $keyspace . ':BagOStuff-long-key:##' . md5( implode( ':', $args ) );
+               }
+
+               return $keyspace . ':' . implode( ':', $args );
+       }
 }
index 8ea28f0..e4dad01 100644 (file)
@@ -114,10 +114,12 @@ class TransactionProfiler implements LoggerAwareInterface {
        }
 
        /**
-        * Set multiple performance expectations
+        * Set one or multiple performance expectations
         *
         * With conflicting expectations, the most narrow ones will be used
         *
+        * Use this to initialize expectations or make them stricter mid-request
+        *
         * @param array $expects Map of (event => limit)
         * @param string $fname
         * @since 1.26
@@ -129,7 +131,11 @@ class TransactionProfiler implements LoggerAwareInterface {
        }
 
        /**
-        * Reset performance expectations and hit counters
+        * Reset all performance expectations and hit counters
+        *
+        * Use this for unit testing or before applying a totally different set of expectations
+        * for a different part of the request, such as during "post-send" (execution after HTTP
+        * response completion)
         *
         * @since 1.25
         */
@@ -145,6 +151,21 @@ class TransactionProfiler implements LoggerAwareInterface {
                $this->expectBy = [];
        }
 
+       /**
+        * Clear all expectations and hit counters and set new performance expectations
+        *
+        * Use this to apply a totally different set of expectations for a different part
+        * of the request, such as during "post-send" (execution after HTTP response completion)
+        *
+        * @param array $expects Map of (event => limit)
+        * @param string $fname
+        * @since 1.33
+        */
+       public function redefineExpectations( array $expects, $fname ) {
+               $this->resetExpectations();
+               $this->setExpectations( $expects, $fname );
+       }
+
        /**
         * Mark a DB as having been connected to with a new handle
         *
diff --git a/includes/profiler/ProfilerExcimer.php b/includes/profiler/ProfilerExcimer.php
new file mode 100644 (file)
index 0000000..776136f
--- /dev/null
@@ -0,0 +1,131 @@
+<?php
+
+class ProfilerExcimer extends Profiler {
+       private $cpuProf;
+       private $realProf;
+       private $period;
+
+       public function __construct( array $params = [] ) {
+               parent::__construct( $params );
+
+               $this->period = $params['period'] ?? 0.01;
+               $maxDepth = $params['maxDepth'] ?? 100;
+
+               $this->cpuProf = new ExcimerProfiler;
+               $this->cpuProf->setEventType( EXCIMER_CPU );
+               $this->cpuProf->setPeriod( $this->period );
+               $this->cpuProf->setMaxDepth( $maxDepth );
+
+               $this->realProf = new ExcimerProfiler;
+               $this->realProf->setEventType( EXCIMER_REAL );
+               $this->realProf->setPeriod( $this->period );
+               $this->realProf->setMaxDepth( $maxDepth );
+
+               $this->cpuProf->start();
+               $this->realProf->start();
+       }
+
+       public function scopedProfileIn( $section ) {
+       }
+
+       public function close() {
+               $this->cpuProf->stop();
+               $this->realProf->stop();
+       }
+
+       public function getFunctionStats() {
+               $this->close();
+               $cpuStats = $this->cpuProf->getLog()->aggregateByFunction();
+               $realStats = $this->realProf->getLog()->aggregateByFunction();
+               $allNames = array_keys( $realStats + $cpuStats );
+               $cpuSamples = $this->cpuProf->getLog()->getEventCount();
+               $realSamples = $this->realProf->getLog()->getEventCount();
+
+               $resultStats = [ [
+                       'name' => '-total',
+                       'calls' => 1,
+                       'memory' => 0,
+                       '%memory' => 0,
+                       'min_real' => 0,
+                       'max_real' => 0,
+                       'cpu' => $cpuSamples * $this->period * 1000,
+                       '%cpu' => 100,
+                       'real' => $realSamples * $this->period * 1000,
+                       '%real' => 100,
+               ] ];
+
+               foreach ( $allNames as $funcName ) {
+                       $cpuEntry = $cpuStats[$funcName] ?? false;
+                       $realEntry = $realStats[$funcName] ?? false;
+                       $resultEntry = [
+                               'name' => $funcName,
+                               'calls' => 0,
+                               'memory' => 0,
+                               '%memory' => 0,
+                               'min_real' => 0,
+                               'max_real' => 0,
+                       ];
+
+                       if ( $cpuEntry ) {
+                               $resultEntry['cpu'] = $cpuEntry['inclusive'] * $this->period * 1000;
+                               $resultEntry['%cpu'] = $cpuEntry['inclusive'] / $cpuSamples * 100;
+                       } else {
+                               $resultEntry['cpu'] = 0;
+                               $resultEntry['%cpu'] = 0;
+                       }
+                       if ( $realEntry ) {
+                               $resultEntry['real'] = $realEntry['inclusive'] * $this->period * 1000;
+                               $resultEntry['%real'] = $realEntry['inclusive'] / $realSamples * 100;
+                       } else {
+                               $resultEntry['real'] = 0;
+                               $resultEntry['%real'] = 0;
+                       }
+
+                       $resultStats[] = $resultEntry;
+               }
+               return $resultStats;
+       }
+
+       public function getOutput() {
+               $this->close();
+               $cpuLog = $this->cpuProf->getLog();
+               $realLog = $this->realProf->getLog();
+               $cpuStats = $cpuLog->aggregateByFunction();
+               $realStats = $realLog->aggregateByFunction();
+               $allNames = array_keys( $cpuStats + $realStats );
+               $cpuSamples = $cpuLog->getEventCount();
+               $realSamples = $realLog->getEventCount();
+
+               $result = '';
+
+               $titleFormat = "%-70s %10s %11s %10s %11s %10s %11s %10s %11s\n";
+               $statsFormat = "%-70s %10d %10.1f%% %10d %10.1f%% %10d %10.1f%% %10d %10.1f%%\n";
+               $result .= sprintf( $titleFormat,
+                       'Name',
+                       'CPU incl', 'CPU incl%', 'CPU self', 'CPU self%',
+                       'Real incl', 'Real incl%', 'Real self', 'Real self%'
+               );
+
+               foreach ( $allNames as $funcName ) {
+                       $realEntry = $realStats[$funcName] ?? false;
+                       $cpuEntry = $cpuStats[$funcName] ?? false;
+                       $realIncl = $realEntry ? $realEntry['inclusive'] : 0;
+                       $realSelf = $realEntry ? $realEntry['self'] : 0;
+                       $cpuIncl = $cpuEntry ? $cpuEntry['inclusive'] : 0;
+                       $cpuSelf = $cpuEntry ? $cpuEntry['self'] : 0;
+                       $result .= sprintf( $statsFormat,
+                               $funcName,
+                               $cpuIncl * $this->period * 1000,
+                               $cpuIncl == 0 ? 0 : $cpuIncl / $cpuSamples * 100,
+                               $cpuSelf * $this->period * 1000,
+                               $cpuSelf == 0 ? 0 : $cpuSelf / $cpuSamples * 100,
+                               $realIncl * $this->period * 1000,
+                               $realIncl == 0 ? 0 : $realIncl / $realSamples * 100,
+                               $realSelf * $this->period * 1000,
+                               $realSelf == 0 ? 0 : $realSelf / $realSamples * 100
+                       );
+               }
+
+               return $result;
+       }
+}
index 6e0085d..ea5f7ad 100644 (file)
@@ -21,7 +21,6 @@
  * @ingroup Profiler
  */
 
-use Wikimedia\Rdbms\Database;
 use Wikimedia\Rdbms\DBError;
 
 /**
@@ -56,7 +55,7 @@ class ProfilerOutputDb extends ProfilerOutput {
                }
 
                $fname = __METHOD__;
-               $dbw->onTransactionCommitOrIdle( function ( Database $dbw ) use ( $stats, $fname ) {
+               $dbw->onTransactionCommitOrIdle( function () use ( $stats, $fname, $dbw ) {
                        $pfhost = $this->perHost ? wfHostname() : '';
                        // Sqlite: avoid excess b-tree rebuilds (mostly for non-WAL mode)
                        // non-Sqlite: lower contention with small transactions
index 1bb995a..4201f80 100644 (file)
@@ -1279,7 +1279,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        $this->getOutput()->redirect( $this->getPageTitle()->getCanonicalURL( $query ) );
                }
 
-               $opts->validateIntBounds( 'limit', 0, 1000 );
+               $opts->validateIntBounds( 'limit', 0, 5000 );
                $opts->validateBounds( 'days', 0, $this->getConfig()->get( 'RCMaxAge' ) / ( 3600 * 24 ) );
        }
 
index 78b8f8a..67d1873 100644 (file)
@@ -394,7 +394,7 @@ class SpecialBlock extends FormSpecialPage {
         * @return string
         */
        protected function preText() {
-               $this->getOutput()->addModuleStyles( 'mediawiki.widgets.TitlesMultiselectWidget.styles' );
+               $this->getOutput()->addModuleStyles( 'mediawiki.widgets.TagMultiselectWidget.styles' );
                $this->getOutput()->addModules( [ 'mediawiki.special.block' ] );
 
                $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
@@ -1034,18 +1034,20 @@ class SpecialBlock extends FormSpecialPage {
         * Exception: Users can block the user who blocked them, to reduce
         * advantage of a malicious account blocking all admins (T150826)
         *
-        * @param User|int|string $user Target to block or unblock
+        * @param User|int|string|null $target Target to block or unblock; could be a User object,
+        *   or a user ID or username, or null when the target is not known yet (e.g. when
+        *   displaying Special:Block)
         * @param User $performer User doing the request
         * @return bool|string True or error message key
         */
-       public static function checkUnblockSelf( $user, User $performer ) {
-               if ( is_int( $user ) ) {
-                       $user = User::newFromId( $user );
-               } elseif ( is_string( $user ) ) {
-                       $user = User::newFromName( $user );
+       public static function checkUnblockSelf( $target, User $performer ) {
+               if ( is_int( $target ) ) {
+                       $target = User::newFromId( $target );
+               } elseif ( is_string( $target ) ) {
+                       $target = User::newFromName( $target );
                }
                if ( $performer->isBlocked() ) {
-                       if ( $user instanceof User && $user->getId() == $performer->getId() ) {
+                       if ( $target instanceof User && $target->getId() == $performer->getId() ) {
                                # User is trying to unblock themselves
                                if ( $performer->isAllowed( 'unblockself' ) ) {
                                        return true;
@@ -1056,10 +1058,10 @@ class SpecialBlock extends FormSpecialPage {
                                        return 'ipbnounblockself';
                                }
                        } elseif (
-                               $user instanceof User &&
+                               $target instanceof User &&
                                $performer->getBlock() instanceof Block &&
                                $performer->getBlock()->getBy() &&
-                               $performer->getBlock()->getBy() === $user->getId()
+                               $performer->getBlock()->getBy() === $target->getId()
                        ) {
                                // Allow users to block the user that blocked them.
                                // This is to prevent a situation where a malicious user
index 16cebe0..70b4207 100644 (file)
@@ -159,7 +159,6 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                        $out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) );
                } elseif ( $this->toc !== false ) {
                        $out->prependHTML( $this->toc );
-                       $out->addModules( 'mediawiki.toc' );
                        $out->addModuleStyles( 'mediawiki.toc.styles' );
                }
        }
index 7ea9ba0..3524d79 100644 (file)
@@ -79,7 +79,8 @@ class SpecialPasswordReset extends FormSpecialPage {
                $a = [];
                if ( isset( $resetRoutes['username'] ) && $resetRoutes['username'] ) {
                        $a['Username'] = [
-                               'type' => 'user',
+                               'type' => 'text',
+                               'default' => $this->getRequest()->getSession()->suggestLoginUsername(),
                                'label-message' => 'passwordreset-username',
                        ];
 
index 04be22b..cc7ed55 100644 (file)
@@ -53,7 +53,10 @@ class SpecialPreferences extends SpecialPage {
                }
 
                $out->addModules( 'mediawiki.special.preferences.ooui' );
-               $out->addModuleStyles( 'mediawiki.special.preferences.styles.ooui' );
+               $out->addModuleStyles( [
+                       'mediawiki.special.preferences.styles.ooui',
+                       'mediawiki.widgets.TagMultiselectWidget.styles',
+               ] );
                $out->addModuleStyles( 'oojs-ui-widgets.styles' );
 
                $session = $this->getRequest()->getSession();
index 6a01b0c..cd754ca 100644 (file)
@@ -23,6 +23,7 @@
 
 use MediaWiki\MediaWikiServices;
 use MediaWiki\Revision\RevisionRecord;
+use MediaWiki\Storage\NameTableAccessException;
 use Wikimedia\Rdbms\IResultWrapper;
 
 /**
@@ -596,12 +597,22 @@ class SpecialUndelete extends SpecialPage {
 
                $minor = $rev->isMinor() ? ChangesList::flag( 'minor' ) : '';
 
-               $tags = wfGetDB( DB_REPLICA )->selectField(
-                       'tag_summary',
-                       'ts_tags',
-                       [ 'ts_rev_id' => $rev->getId() ],
+               $tagIds = wfGetDB( DB_REPLICA )->selectFieldValues(
+                       'change_tag',
+                       'ct_tag_id',
+                       [ 'ct_rev_id' => $rev->getId() ],
                        __METHOD__
                );
+               $tags = [];
+               $changeTagDefStore = MediaWikiServices::getInstance()->getChangeTagDefStore();
+               foreach ( $tagIds as $tagId ) {
+                       try {
+                               $tags[] = $changeTagDefStore->getName( (int)$tagId );
+                       } catch ( NameTableAccessException $exception ) {
+                               continue;
+                       }
+               }
+               $tags = implode( ',', $tags );
                $tagSummary = ChangeTags::formatSummaryRow( $tags, 'deleteddiff', $this->getContext() );
 
                // FIXME This is reimplementing DifferenceEngine#getRevisionHeader
index a9479c4..18c1d70 100644 (file)
@@ -345,6 +345,7 @@ class AllMessagesTablePager extends TablePager {
                return '';
        }
 
+       /** @return string HTML */
        function formatRow( $row ) {
                // Do all the normal stuff
                $s = parent::formatRow( $row );
@@ -365,28 +366,28 @@ class AllMessagesTablePager extends TablePager {
                return $s;
        }
 
-       function getRowAttrs( $row, $isSecond = false ) {
-               $arr = [];
-
-               if ( $row->am_customised ) {
-                       $arr['class'] = 'allmessages-customised';
-               }
-
-               return $arr;
+       function getRowAttrs( $row ) {
+               return [];
        }
 
+       /** @return array HTML attributes */
        function getCellAttrs( $field, $value ) {
-               if ( $this->mCurrentRow->am_customised && $field === 'am_title' ) {
-                       return [ 'rowspan' => '2', 'class' => $field ];
-               } elseif ( $field === 'am_title' ) {
-                       return [ 'class' => $field ];
+               $attr = [];
+               if ( $field === 'am_title' ) {
+                       if ( $this->mCurrentRow->am_customised ) {
+                               $attr += [ 'rowspan' => '2' ];
+                       }
                } else {
-                       return [
+                       $attr += [
                                'lang' => $this->lang->getHtmlCode(),
                                'dir' => $this->lang->getDir(),
-                               'class' => $field
                        ];
+                       if ( $this->mCurrentRow->am_customised ) {
+                               // CSS class: am_default, am_actual
+                               $attr += [ 'class' => $field ];
+                       }
                }
+               return $attr;
        }
 
        // This is not actually used, as getStartBody is overridden above
diff --git a/includes/widget/TagMultiselectWidget.php b/includes/widget/TagMultiselectWidget.php
new file mode 100644 (file)
index 0000000..43e184c
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+
+namespace MediaWiki\Widget;
+
+use OOUI\MultilineTextInputWidget;
+
+/**
+ * Abstract base class for widgets to select multiple users, titles,
+ * namespaces, etc.
+ *
+ * @copyright 2017 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license MIT
+ */
+abstract class TagMultiselectWidget extends \OOUI\Widget {
+
+       protected $selectedArray = [];
+       protected $inputName = null;
+       protected $inputPlaceholder = null;
+       protected $tagLimit = null;
+
+       /**
+        * @param array $config Configuration options
+        *   - array $config['default'] Array of items to use as preset data
+        *   - array $config['name'] Name attribute (used in forms)
+        *   - array $config['placeholder'] Placeholder message for input
+        *   - array $config['input'] Config options for the input widget
+        *   - number $config['tagLimit'] Maximum number of selected items
+        */
+       public function __construct( array $config = [] ) {
+               parent::__construct( $config );
+
+               // Properties
+               if ( isset( $config['default'] ) ) {
+                       $this->selectedArray = $config['default'];
+               }
+               if ( isset( $config['name'] ) ) {
+                       $this->inputName = $config['name'];
+               }
+               if ( isset( $config['placeholder'] ) ) {
+                       $this->inputPlaceholder = $config['placeholder'];
+               }
+               if ( isset( $config['input'] ) ) {
+                       $this->input = $config['input'];
+               } else {
+                       $this->input = [];
+               }
+               if ( isset( $config['tagLimit'] ) ) {
+                       $this->tagLimit = $config['tagLimit'];
+               }
+
+               $textarea = new MultilineTextInputWidget( array_merge( [
+                       'name' => $this->inputName,
+                       'value' => implode( "\n", $this->selectedArray ),
+                       'rows' => 10,
+                       'classes' => [
+                               'mw-widgets-tagMultiselectWidget-multilineTextInputWidget'
+                       ],
+               ], $this->input ) );
+
+               $pending = new PendingTextInputWidget();
+
+               $this->appendContent( $textarea, $pending );
+               $this->addClasses( [ 'mw-widgets-tagMultiselectWidget' ] );
+       }
+
+       public function getConfig( &$config ) {
+               if ( $this->selectedArray !== null ) {
+                       $config['selected'] = $this->selectedArray;
+               }
+               if ( $this->inputName !== null ) {
+                       $config['name'] = $this->inputName;
+               }
+               if ( $this->inputPlaceholder !== null ) {
+                       $config['placeholder'] = $this->inputPlaceholder;
+               }
+               if ( $this->input !== null ) {
+                       $config['input'] = $this->input;
+               }
+               if ( $this->tagLimit !== null ) {
+                       $config['tagLimit'] = $this->tagLimit;
+               }
+
+               $config['$overlay'] = true;
+               return parent::getConfig( $config );
+       }
+
+}
index f62ee83..3246e7d 100644 (file)
@@ -2,66 +2,28 @@
 
 namespace MediaWiki\Widget;
 
-use OOUI\MultilineTextInputWidget;
-
 /**
  * Widget to select multiple titles.
  *
  * @copyright 2017 MediaWiki Widgets Team and others; see AUTHORS.txt
  * @license MIT
  */
-class TitlesMultiselectWidget extends \OOUI\Widget {
+class TitlesMultiselectWidget extends TagMultiselectWidget {
 
-       protected $titlesArray = [];
-       protected $inputName = null;
-       protected $inputPlaceholder = null;
-       protected $tagLimit = null;
        protected $showMissing = null;
 
        /**
         * @param array $config Configuration options
-        *   - array $config['default'] Array of titles to use as preset data
-        *   - array $config['placeholder'] Placeholder message for input
-        *   - array $config['name'] Name attribute (used in forms)
-        *   - number $config['tagLimit'] Maximum number of selected titles
         *   - bool $config['showMissing'] Show missing pages
-        *   - array $config['input'] Config options for the input widget
         */
        public function __construct( array $config = [] ) {
                parent::__construct( $config );
 
                // Properties
-               if ( isset( $config['default'] ) ) {
-                       $this->titlesArray = $config['default'];
-               }
-               if ( isset( $config['name'] ) ) {
-                       $this->inputName = $config['name'];
-               }
-               if ( isset( $config['placeholder'] ) ) {
-                       $this->inputPlaceholder = $config['placeholder'];
-               }
-               if ( isset( $config['tagLimit'] ) ) {
-                       $this->tagLimit = $config['tagLimit'];
-               }
                if ( isset( $config['showMissing'] ) ) {
                        $this->showMissing = $config['showMissing'];
                }
-               if ( isset( $config['input'] ) ) {
-                       $this->input = $config['input'];
-               }
-
-               $textarea = new MultilineTextInputWidget( array_merge( [
-                       'name' => $this->inputName,
-                       'value' => implode( "\n", $this->titlesArray ),
-                       'rows' => 10,
-                       'classes' => [
-                               'mw-widgets-titlesMultiselectWidget-multilineTextInputWidget'
-                       ],
-               ], $this->input ) );
 
-               $pending = new PendingTextInputWidget();
-
-               $this->appendContent( $textarea, $pending );
                $this->addClasses( [ 'mw-widgets-titlesMultiselectWidget' ] );
        }
 
@@ -70,26 +32,10 @@ class TitlesMultiselectWidget extends \OOUI\Widget {
        }
 
        public function getConfig( &$config ) {
-               if ( $this->titlesArray !== null ) {
-                       $config['selected'] = $this->titlesArray;
-               }
-               if ( $this->inputName !== null ) {
-                       $config['name'] = $this->inputName;
-               }
-               if ( $this->inputPlaceholder !== null ) {
-                       $config['placeholder'] = $this->inputPlaceholder;
-               }
-               if ( $this->tagLimit !== null ) {
-                       $config['tagLimit'] = $this->tagLimit;
-               }
                if ( $this->showMissing !== null ) {
                        $config['showMissing'] = $this->showMissing;
                }
-               if ( $this->input !== null ) {
-                       $config['input'] = $this->input;
-               }
 
-               $config['$overlay'] = true;
                return parent::getConfig( $config );
        }
 
index aaa46ae..066a2f3 100644 (file)
@@ -2,46 +2,19 @@
 
 namespace MediaWiki\Widget;
 
-use OOUI\MultilineTextInputWidget;
-
 /**
  * Widget to select multiple users.
  *
  * @copyright 2017 MediaWiki Widgets Team and others; see AUTHORS.txt
  * @license MIT
  */
-class UsersMultiselectWidget extends \OOUI\Widget {
-
-       protected $usersArray = [];
-       protected $inputName = null;
-       protected $inputPlaceholder = null;
+class UsersMultiselectWidget extends TagMultiselectWidget {
 
        /**
         * @param array $config Configuration options
-        *   - array $config['users'] Array of usernames to use as preset data
-        *   - array $config['placeholder'] Placeholder message for input
-        *   - array $config['name'] Name attribute (used in forms)
         */
        public function __construct( array $config = [] ) {
                parent::__construct( $config );
-
-               // Properties
-               if ( isset( $config['default'] ) ) {
-                       $this->usersArray = $config['default'];
-               }
-               if ( isset( $config['name'] ) ) {
-                       $this->inputName = $config['name'];
-               }
-               if ( isset( $config['placeholder'] ) ) {
-                       $this->inputPlaceholder = $config['placeholder'];
-               }
-
-               $textarea = new MultilineTextInputWidget( [
-                       'name' => $this->inputName,
-                       'value' => implode( "\n", $this->usersArray ),
-                       'rows' => 10,
-               ] );
-               $this->prependContent( $textarea );
        }
 
        protected function getJavaScriptClassName() {
@@ -49,17 +22,6 @@ class UsersMultiselectWidget extends \OOUI\Widget {
        }
 
        public function getConfig( &$config ) {
-               if ( $this->usersArray !== null ) {
-                       $config['selected'] = $this->usersArray;
-               }
-               if ( $this->inputName !== null ) {
-                       $config['name'] = $this->inputName;
-               }
-               if ( $this->inputPlaceholder !== null ) {
-                       $config['placeholder'] = $this->inputPlaceholder;
-               }
-
-               $config['$overlay'] = true;
                return parent::getConfig( $config );
        }
 
index f976904..86e91aa 100644 (file)
        "createacct-another-realname-tip": "Regte naam is opsioneel.\nAs u dit verskaf, sal dit gebruik word om u erkenning vir u werk te gee.",
        "pt-login": "Meld aan",
        "pt-login-button": "Meld aan",
+       "pt-login-continue-button": "Meld verder aan",
        "pt-createaccount": "Skep gebruiker",
        "pt-userlogout": "Meld af",
        "php-mail-error-unknown": "Onbekende fout in PHP se mail()-funksie",
        "user-mail-no-addy": "Geprobeer om e-pos te stuur sonder 'n e-posadres.",
        "user-mail-no-body": "Daar is probeer om 'n leë of 'n onredelike kort boodskap te stuur.",
        "changepassword": "Verander wagwoord",
-       "resetpass_announce": "U het aangeteken met 'n tydelike e-poskode.\nOm voort te gaan moet u 'n nuwe wagwoord hier kies:",
+       "resetpass_announce": "Om klaar aan te meld, kies 'n nuwe wagwoord.",
        "resetpass_text": "<!-- Voeg teks hier by -->",
        "resetpass_header": "Verander wagwoord",
        "oldpassword": "Ou wagwoord",
        "newpassword": "Nuwe wagwoord",
        "retypenew": "Tik nuwe wagwoord weer in",
        "resetpass_submit": "Stel wagwoord en meld aan",
-       "changepassword-success": "U wagwoord is suksesvol gewysig!",
+       "changepassword-success": "U wagwoord is verander!",
        "botpasswords-label-create": "Skep",
        "botpasswords-label-update": "Opdateer",
        "botpasswords-label-cancel": "Kanselleer",
index de5d715..bb3261a 100644 (file)
        "accmailtext": "أُرسِلت كلمة سر مولدة عشوائيا ل[[User talk:$1|$1]] إلى $2. يمكن تغييرها في صفحة ''[[Special:ChangePassword|تغيير كلمة السر]]'' بعد تسجيل الدخول.",
        "newarticle": "(جديد)",
        "newarticletext": "لقد تبعت وصلة لصفحة لم يتم إنشائها بعد.\nلإنشاء هذه الصفحة ابدأ الكتابة في الصندوق بالأسفل (انظر في [$1 صفحة المساعدة] للمزيد من المعلومات).\nإذا كانت زيارتك لهذه الصفحة بالخطأ، اضغط على زر ''رجوع'' في متصفح الإنترنت لديك.",
-       "anontalkpagetext": "----\n<em>هذه صفحة نقاش لمستخدم مجهول لم يقم بإنشاء حساب بعد أو لا يستعمل ذلك الحساب.</em>\nلذا فيجب علينا استعمال رقم الأيبي للتعرف عليه/عليها.\nمثل هذا العنوان يمكن أن يشترك فيه عدة مستخدمين.\nلو كنت مستخدما مجهولا وتشعر بأن تعليقات لا تخصك تم توجيهها إليك، من فضلك [[Special:CreateAccount|أنشئ حسابا]] أو [[Special:UserLogin|سجل الدخول]] لتجنب الارتباك المستقبلي مع مستخدمين مجهولين آخرين.",
+       "anontalkpagetext": "----\n<em>هذه صفحة نقاش لمستخدم مجهول لم يقم بإنشاء حساب بعد أو لا يستعمل ذلك الحساب;</em>\nلذا يجب علينا استعمال رقم الأيبي للتعرف عليهم،\nمثل هذا العنوان يمكن أن يشترك فيه عدة مستخدمين.\nلو كنت مستخدما مجهولا وتشعر بأن تعليقات لا تخصك تم توجيهها إليك، من فضلك [[Special:CreateAccount|أنشئ حسابا]] أو [[Special:UserLogin|سجل الدخول]] لتجنب الارتباك المستقبلي مع مستخدمين مجهولين آخرين.",
        "noarticletext": "هذه الصفحة خالية حاليا. يمكنك [[Special:Search/{{PAGENAME}}|البحث عن عنوانها]] في الصفحات الأخرى أو\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} البحث في السجلات] (لتعرف إن كانت قد حُذِفَت)،\nأو '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} إنشاؤها]'''</span>.",
        "noarticletext-nopermission": "لا يوجد حاليا أي نص في هذه الصفحة.\nيمكنك [[Special:Search/{{PAGENAME}}|البحث عن عنوان هذه الصفحة]] في الصفحات الأخرى، أو <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} البحث في السجلات المتعلقة بها]</span>، لكن ليست لك صلاحية إنشاء هذه الصفحة.",
        "missing-revision": "المراجعة #$1 من الصفحة المسماة \"{{FULLPAGENAME}}\" غير موجودة.\n\nهذا يحدث عادة عن طريق اتباع وصلة تاريخ قديمة لصفحة تم حذفها.\nالتفاصيل يمكن إيجادها في [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سجل الحذف].",
index 4e6c1c4..646787e 100644 (file)
        "accmailtext": "Выпадковы пароль для [[User talk:$1|$1]] быў адасланы па адрасе $2. Яго можна зьмяніць на старонцы <em>[[Special:ChangePassword|зьмены паролю]]</em> пасьля ўваходу.",
        "newarticle": "(Новая)",
        "newarticletext": "Вы прыйшлі па спасылцы на старонку, якая яшчэ не існуе.\nКаб стварыць яе, напішыце тэкст у полі ніжэй (глядзіце [$1 старонку дапамогі] для дадатковай інфармацыі).\nКалі Вы трапілі сюды памылкова, націсьніце кнопку «<strong>назад</strong>» у вашым браўзэры.",
-       "anontalkpagetext": "----\n<em>Ð\93Ñ\8dÑ\82а Ñ\81Ñ\82аÑ\80онка Ð³Ñ\83Ñ\82аÑ\80ак Ð°Ð½Ð°Ð½Ñ\96мнага Ñ\9eдзелÑ\8cнÑ\96ка, Ñ\8fкÑ\96 Ñ\8fÑ\88Ñ\87Ñ\8d Ð½Ðµ Ñ\81Ñ\82ваÑ\80Ñ\8bÑ\9e Ñ\81абе Ñ\80аÑ\85Ñ\83нак Ð°Ð»Ñ\8cбо Ð½Ðµ Ñ\9eжÑ\8bвае Ñ\8fго.</em>\nТамÑ\83 Ð¼Ñ\8b Ð²Ñ\8bмÑ\83Ñ\88анÑ\8bÑ\8f Ñ\9eжÑ\8bваÑ\86Ñ\8c Ð»Ñ\96Ñ\87бавÑ\8b IP-адÑ\80аÑ\81 Ð´Ð·ÐµÐ»Ñ\8f Ñ\8fгонай Ñ\96дÑ\8dнÑ\82Ñ\8bÑ\84Ñ\96каÑ\86Ñ\8bÑ\96. Ð\90дзÑ\96н IP-адÑ\80аÑ\81 Ð¼Ð¾Ð¶Ð° Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваÑ\86Ñ\86а Ð½ÐµÐºÐ°Ð»Ñ\8cкÑ\96мÑ\96 Ñ\9eдзелÑ\8cнÑ\96камÑ\96. Ð\9aалÑ\96 Ð\92Ñ\8b â\80\94 Ð°Ð½Ð°Ð½Ñ\96мнÑ\8b Ñ\9eдзелÑ\8cнÑ\96к Ñ\96 Ð»Ñ\96Ñ\87Ñ\8bÑ\86е, Ñ\88Ñ\82о Ð°Ñ\82Ñ\80Ñ\8bмалÑ\96 Ð½Ðµ Ð¿Ñ\80Ñ\8bзнаÑ\87анÑ\8bÑ\8f Ð\92ам камэнтары, калі ласка, [[Special:CreateAccount|стварыце рахунак]] альбо [[Special:UserLogin|ўвайдзіце ў сыстэму]], каб у будучыні пазьбегнуць магчымай блытаніны зь іншымі ананімнымі ўдзельнікамі.",
+       "anontalkpagetext": "----\n<em>Ð\93Ñ\8dÑ\82а Ñ\81Ñ\82аÑ\80онка Ð³Ñ\83Ñ\82аÑ\80ак Ð°Ð½Ð°Ð½Ñ\96мнага Ñ\9eдзелÑ\8cнÑ\96ка, Ñ\8fкÑ\96 Ñ\8fÑ\88Ñ\87Ñ\8d Ð½Ðµ Ñ\81Ñ\82ваÑ\80Ñ\8bÑ\9e Ñ\81абе Ñ\80аÑ\85Ñ\83нак Ð°Ð»Ñ\8cбо Ð½Ðµ Ñ\9eжÑ\8bвае Ñ\8fго.</em>\nТамÑ\83 Ð¼Ñ\8b Ð²Ñ\8bмÑ\83Ñ\88анÑ\8bÑ\8f Ñ\9eжÑ\8bваÑ\86Ñ\8c Ð»Ñ\96Ñ\87бавÑ\8b IP-адÑ\80аÑ\81 Ð´Ð·ÐµÐ»Ñ\8f Ñ\8fгонай Ñ\96дÑ\8dнÑ\82Ñ\8bÑ\84Ñ\96каÑ\86Ñ\8bÑ\96. Ð\90дзÑ\96н IP-адÑ\80аÑ\81 Ð¼Ð¾Ð¶Ð° Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваÑ\86Ñ\86а Ð½ÐµÐºÐ°Ð»Ñ\8cкÑ\96мÑ\96 Ñ\9eдзелÑ\8cнÑ\96камÑ\96. Ð\9aалÑ\96 Ð²Ñ\8b â\80\94 Ð°Ð½Ð°Ð½Ñ\96мнÑ\8b Ñ\9eдзелÑ\8cнÑ\96к Ñ\96 Ð»Ñ\96Ñ\87Ñ\8bÑ\86е, Ñ\88Ñ\82о Ð°Ñ\82Ñ\80Ñ\8bмалÑ\96 Ð½Ðµ Ð¿Ñ\80Ñ\8bзнаÑ\87анÑ\8bÑ\8f Ð²ам камэнтары, калі ласка, [[Special:CreateAccount|стварыце рахунак]] альбо [[Special:UserLogin|ўвайдзіце ў сыстэму]], каб у будучыні пазьбегнуць магчымай блытаніны зь іншымі ананімнымі ўдзельнікамі.",
        "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={{FULLPAGENAMEE}}}} пашукаць зьвязаныя запісы ў журналах]</span>, але ў вас няма дазволу ствараць гэтую старонку.",
        "missing-revision": "Вэрсія старонкі №$1 з назвай «{{FULLPAGENAME}}» не існуе.\n\nЗвычайна гэта здараецца з-за пераходу па састарэлай спасылцы на старонку, якая была выдаленая.\nПадрабязнасьці можна знайсьці ў [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале выдаленьняў].",
        "filedelete-intro-old": "Вы выдаляеце вэрсію <strong>[[Media:$1|$1]]</strong> ад [$4 $3, $2].",
        "filedelete-comment": "Прычына:",
        "filedelete-submit": "Выдаліць",
-       "filedelete-success": "'''$1''' выдалены.",
+       "filedelete-success": "<strong>$1</strong> выдалены.",
        "filedelete-success-old": "Вэрсія '''[[Media:$1|$1]]''' ад $3, $2 была выдаленая.",
-       "filedelete-nofile": "Файл '''$1''' не існуе.",
-       "filedelete-nofile-old": "Не існуе архіўнай вэрсіі '''$1''' з пазначанымі атрыбутамі.",
+       "filedelete-nofile": "Файл <strong>$1</strong> не існуе.",
+       "filedelete-nofile-old": "Не існуе архіўнай вэрсіі <strong>$1</strong> з пазначанымі атрыбутамі.",
        "filedelete-otherreason": "Іншая/дадатковая прычына:",
        "filedelete-reason-otherlist": "Іншая прычына",
        "filedelete-reason-dropdown": "* Звычайныя прычыны выдаленьня\n** парушэньне аўтарскіх правоў\n** файл-дублікат",
        "pageinfo-display-title": "Загаловак для адлюстраваньня",
        "pageinfo-default-sort": "Перадвызначаны ключ сартаваньня",
        "pageinfo-length": "Памер старонкі (у байтах)",
+       "pageinfo-namespace": "Прастора назваў",
        "pageinfo-article-id": "Ідэнтыфікатар старонкі",
        "pageinfo-language": "Мова зьместу старонкі",
        "pageinfo-language-change": "зьмяніць",
index a815186..3bded91 100644 (file)
        "botpasswords-existing": "Съществуващи пароли за ботове",
        "botpasswords-createnew": "Създаване на нова парола за бота",
        "botpasswords-editexisting": "Редактиране на съществуваща парола на бот",
+       "botpasswords-label-needsreset": "(нужна е нова парола)",
        "botpasswords-label-appid": "Име на бота:",
        "botpasswords-label-create": "Създаване",
        "botpasswords-label-update": "Обновяване",
        "content-not-allowed-here": "На страницата [[:$2]] не е позволено използването на $1",
        "editwarning-warning": "Ако излезете от тази страница, може да загубите всички несъхранени промени, които сте направили.\nАко сте влезли в системата, можете да изключите това предупреждение чрез менюто „{{int:prefs-editing}}“ в личните ви настройки.",
        "editpage-invalidcontentmodel-title": "Форматът на съдържанието не се поддържа",
+       "editpage-invalidcontentmodel-text": "Модел на съдържание „$1“ не се поддържа.",
        "editpage-notsupportedcontentformat-title": "Форматът на съдържанието не се поддържа",
+       "slot-name-main": "Основно",
        "content-model-wikitext": "уикитекст",
        "content-model-text": "обикновен текст",
        "content-model-javascript": "JavaScript",
        "movepage-moved": "<strong>Страницата „$1“ беше преместена под името „$2“</strong>",
        "movepage-moved-redirect": "Беше създадено пренасочване.",
        "movepage-moved-noredirect": "Създаването на пренасочване беше спряно.",
-       "articleexists": "Вече съществува страница с това име или името, което сте избрали, е невалидно. Изберете друго име.",
-       "cantmove-titleprotected": "Страницата не може да бъде преместена под новото заглавие, тъй като то е защитено от създаване",
+       "articleexists": "Вече съществува страница с това име или името, което сте избрали е невалидно.\nИзберете друго име.",
+       "cantmove-titleprotected": "Страницата не може да бъде преместена под новото заглавие, тъй като то е защитено от създаване.",
        "movetalk": "Преместване и на беседата, ако е приложимо",
        "move-subpages": "Преместване на всички подстраници (до $1)",
        "move-talk-subpages": "Преместване на всички подстраници на беседата (до $1)",
        "special-characters-title-emdash": "дълго тире",
        "special-characters-title-minus": "знак минус",
        "mw-widgets-abandonedit": "Сигурни ли сте, че искате да напуснете режима за редактиране без да запишете статията преди това?",
-       "mw-widgets-abandonedit-discard": "Ð\9eÑ\82кажеÑ\82е редакциите",
-       "mw-widgets-abandonedit-keep": "Ð\9fÑ\80одÑ\8aлжеÑ\82е редактирането",
+       "mw-widgets-abandonedit-discard": "Ð\9eÑ\82казване Ð½Ð° редакциите",
+       "mw-widgets-abandonedit-keep": "Ð\9fÑ\80одÑ\8aлжаване Ð½Ð° редактирането",
        "mw-widgets-abandonedit-title": "Сигурни ли сте?",
        "mw-widgets-dateinput-no-date": "Нищо не е избрано",
        "mw-widgets-dateinput-placeholder-day": "ГГГГ-ММ-ДД",
index 6e13ac9..1206f08 100644 (file)
        "returnto": "$1-এ ফেরত যান।",
        "tagline": "{{SITENAME}} থেকে",
        "help": "সাহায্য",
+       "help-mediawiki": "মিডিয়াউইকি সম্পর্কে সাহায্য",
        "search": "অনুসন্ধান",
        "search-ignored-headings": " #<!-- এই লাইনটিকে ঠিক যেমন আছে তেমনটি রেখে দিন --> <pre>\n# যেসব শিরোনাম অনুসন্ধানে অগ্রাহ্য করা হবে।\n# যখনই শিরোনামযুক্ত পাতাটি সূচীভুক্ত হবে, তখনই এখানকার কোন পরিবর্তন বাস্তবায়িত হবে।\n# আপনি একটি নাল/শূন্য সম্পাদনা করে পাতাটিকে বলপূর্বক পুনঃসূচীভুক্ত করতে পারেন।\n# সিনট্যাক্স বা পদক্রম/পদবিন্যাসের নিয়মগুলি নিম্নরূপ:\n#   * অক্ষর থেকে শুরু করে লাইনের শেষ পর্যন্ত সবকিছু হচ্ছে একটি মন্তব্য।\n#   * প্রতিটি অশূন্য লাইন হচ্ছে যে শিরোনামটি অগ্রাহ্য করা হবে, বড় হাতের লেখা এবং অন্যান্য সবকিছু গণনায় ধরে।\nতথ্যসূত্র\nবহিঃসংযোগ\nআরও দেখুন\n#</pre> <!-- এই লাইনটিকে ঠিক যেমন আছে তেমনটি রেখে দিন -->",
        "searchbutton": "অনুসন্ধান",
        "editpage-invalidcontentmodel-text": "এই \"$1\" বিষয়বস্তু মডেলটি অসমর্থিত।",
        "editpage-notsupportedcontentformat-title": "উল্লেখিত পদ্ধতি সমর্থনযোগ্য নয়।",
        "editpage-notsupportedcontentformat-text": "$1 লেখার ফরম্যাট, $2 কন্টেন্ট মডেলের উপযোগী নয়।",
+       "slot-name-main": "প্রধান",
        "content-model-wikitext": "উইকিপাঠ্য",
        "content-model-text": "সাধারণ লেখা",
        "content-model-javascript": "জাভাস্ক্রিপ্ট",
        "pageinfo-display-title": "শিরনাম প্রদর্শন",
        "pageinfo-default-sort": "পূর্বনির্ধারিত বাছাইয়ের চাবি",
        "pageinfo-length": "পাতার দৈর্ঘ্য (বাইটে)",
+       "pageinfo-namespace": "নামস্থান",
        "pageinfo-article-id": "পাতার আইডি",
        "pageinfo-language": "পাতার তথ্যের ভাষা",
        "pageinfo-language-change": "পরিবর্তন",
        "authprovider-confirmlink-success-line": "$1: সংযোগ করা সফল হয়েছে।",
        "authprovider-confirmlink-failed": "অ্যাকাউন্ট সংযোগ করা সম্পূর্ণরূপে সফল হয়নি: $1",
        "authprovider-confirmlink-ok-help": "সংযোগ করা ব্যর্থতাসূচক বার্তাগুলি প্রদর্শন করার পরেও চালিয়ে যান।",
-       "authprovider-resetpass-skip-label": "à¦\89পà§\87à¦\95à§\8dষা à¦\95রà§\8b",
+       "authprovider-resetpass-skip-label": "à¦\89পà§\87à¦\95à§\8dষা à¦\95রà§\81ন",
        "authprovider-resetpass-skip-help": "পাসওয়ার্ড পুনঃস্থাপন করা উপেক্ষা করুন।",
        "authform-nosession-login": "প্রমাণীকরণ সফল ছিল, কিন্তু আপনার ব্রাউজার \"স্মরণ\" রাখতে পারবে না যে আপনি প্রবেশ করেছেন।\n\n$1",
        "authform-nosession-signup": "অ্যাকাউন্ট তৈরি করা হয়েছে, কিন্তু আপনার ব্রাউজার \"স্মরণ\" রাখতে পারবে না যে আপনি প্রবেশ করেছেন।\n\n$1",
index 1ee34b4..07a93b2 100644 (file)
        "returnto": "Torna cap a $1.",
        "tagline": "De {{SITENAME}}",
        "help": "Ajuda",
+       "help-mediawiki": "Ajuda de MediaWiki",
        "search": "Cerca",
        "search-ignored-headings": " #<!-- deixeu aquesta línia tal com està --> <pre>\n# Títols que seran ignorats pel cercador.\n# Els canvis fets aquí tindran efecte tant aviat com la pàgina amb el títol sigui indexada.\n# Podeu forçar que una pàgina s'indexi de nou fent una edició nul·la.\n# La sintaxi és la següent:\n#   * Tot el que hi hagi des d'un caràcter \"#\" fins el final de línia és un comentari\n#   * Tota línia no buida és el títol exacte a ignorar, amb les majúscules i complet\nReferències\nEnllaços externs\nVegeu també\n #</pre> <!-- deixeu aquesta línia tal com està -->",
        "searchbutton": "Cerca",
        "editpage-invalidcontentmodel-text": "El model de contingut «$1» no és permès.",
        "editpage-notsupportedcontentformat-title": "No s'admet el format del contingut",
        "editpage-notsupportedcontentformat-text": "No s'admet el format del contingut $1 pel model de contingut $2.",
+       "slot-name-main": "Principal",
        "content-model-wikitext": "wikitext",
        "content-model-text": "text net",
        "content-model-javascript": "JavaScript",
        "localtime": "Hora local:",
        "timezoneuseserverdefault": "Utilitza l'hora per defecte del wiki ($1)",
        "timezoneuseoffset": "Altres (especifiqueu la diferència)",
+       "timezone-useoffset-placeholder": "Valors d'exemple: «-07:00» o «01:00»",
        "servertime": "Hora del servidor:",
        "guesstimezone": "Omple-ho des del navegador",
        "timezoneregion-africa": "Àfrica",
        "ipb-disableusertalk": "Impedeix que aquest usuari pugui modificar la seva pàgina de discussió mentre dura el blocatge",
        "ipb-change-block": "Torna a blocar l'usuari amb aquests paràmetres",
        "ipb-confirm": "Confirma el blocatge",
+       "ipb-sitewide": "A tot el lloc web",
        "ipb-partial": "Parcial",
        "ipb-type-label": "Tipus",
        "ipb-pages-label": "Pàgines",
        "pageinfo-display-title": "Títol mostrat",
        "pageinfo-default-sort": "Clau d'ordenació predeterminada",
        "pageinfo-length": "Mida de la pàgina (en bytes)",
+       "pageinfo-namespace": "Espai de noms",
        "pageinfo-article-id": "ID de la pàgina",
        "pageinfo-language": "Llengua del contingut de la pàgina",
        "pageinfo-language-change": "canvia",
        "confirm-mcrrestore-title": "Restaura una revisió",
        "confirm-mcrundo-title": "Desfés un canvi",
        "mcrundofailed": "Ha fallat el desfer",
+       "mcrundo-changed": "La pàgina ha canviat d'ençà que heu vist la diferència. Reviseu el nou canvi.",
+       "mcrundo-parse-failed": "No s'ha pogut analitzar la revisió nova: $1",
        "colon-separator": ":&#32;",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← pàgina anterior",
        "autosumm-replace": "Contingut canviat per «$1».",
        "autoredircomment": "Redirecció a [[$1]]",
        "autosumm-removed-redirect": "S'ha suprimit la redirecció a [[$1]]",
+       "autosumm-changed-redirect-target": "S'ha canviat la destinació de la redirecció de [[$1]] a [[$2]]",
        "autosumm-new": "Es crea la pàgina amb «$1».",
        "autosumm-newblank": "S'ha creat una pàgina en blanc",
        "lag-warn-normal": "Els canvis més nous de $1 {{PLURAL:$1|segon|segons}} podrien no mostrar-se a la llista.",
index a071548..9ac20eb 100644 (file)
        "passwordtooshort": "Heslo musí být dlouhé nejméně $1 {{PLURAL:$1|znak|znaky|znaků}}.",
        "passwordtoolong": "Hesla nemohou být delší než {{PLURAL:$1|1 znak|$1 znaky|$1 znaků}}.",
        "passwordtoopopular": "Není možné používat běžně vybíraná hesla. Prosím vyberte si heslo, které je složitější uhodnout.",
+       "passwordinlargeblacklist": "Zadané heslo je uvedeno na seznamu velmi často používaných hesel. Zvolte si prosím unikátnější heslo.",
        "password-name-match": "Vaše heslo nesmí být stejné jako uživatelské jméno.",
        "password-login-forbidden": "Použití tohoto uživatelského jména a hesla bylo zakázáno.",
        "mailmypassword": "Poslat nové heslo",
        "edit-gone-missing": "Stránku se nepodařilo aktualizovat.\nZřejmě byla smazána.",
        "edit-conflict": "Editační konflikt.",
        "edit-no-change": "Vaše editace byla ignorována, protože nedošlo k žádné změně textu.",
+       "edit-slots-cannot-add": "Následující {{PLURAL:$1|slot zde není podporován|sloty zde nejsou podporovány}}: $2.",
+       "edit-slots-cannot-remove": "Následující {{PLURAL:$1|slot je vyžadován a nelze ho|sloty jsou vyžadovány a nelze je}} odstranit: $2.",
+       "edit-slots-missing": "Chybí následující {{PLURAL:$1|slot|sloty}}: $2.",
        "postedit-confirmation-created": "Stránka byla založena.",
        "postedit-confirmation-restored": "Stránka byla obnovena.",
        "postedit-confirmation-saved": "Vaše změny byly uloženy.",
        "defaultmessagetext": "Výchozí text hlášení",
        "content-failed-to-parse": "Nepodařilo se zpracovat data $2 do modelu $1: $3",
        "invalid-content-data": "Obsažená data jsou chybná",
-       "content-not-allowed-here": "Obsah typu $1 není na stránce [[:$2]] dovolen.",
+       "content-not-allowed-here": "Obsah typu „$1“ není ve slotu „$3“ stránky [[:$2]] dovolen.",
        "editwarning-warning": "Opuštěním této stránky se mohou veškeré provedené změny ztratit.\nPřihlášení uživatelé si mohou toto varování vypnout na záložce „{{int:prefs-editing}}“ v uživatelském nastavení.",
        "editpage-invalidcontentmodel-title": "Nepodporovaný model obsahu",
        "editpage-invalidcontentmodel-text": "Model obsahu „$1“ není podporován.",
        "move": "Přesunout",
        "movethispage": "Přesunout stránku",
        "unusedimagestext": "Následující soubory existují, ale nejsou vloženy do žádné stránky.\nUvědomte si, že jiné webové stránky mohou na soubor odkazovat pomocí přímého URL, takže zde mohou být uvedeny soubory, které se aktivně používají.",
+       "unusedimagestext-categorizedimgisused": "Následující soubory existují, ale nejsou vloženy do žádné stránky. Soubory v kategoriích se považují za použité, přestože nejsou vloženy do žádné stránky.\nUvědomte si, že jiné webové stránky mohou na soubor odkazovat pomocí přímého URL, takže zde mohou být uvedeny soubory, které se aktivně používají.",
        "unusedcategoriestext": "Následující stránky kategorií existují, avšak žádná stránka ani jiná kategorie je nepoužívá.",
        "notargettitle": "Bez cílové stránky",
        "notargettext": "Této funkci musíte určit cílovou stránku nebo uživatele.",
        "movepage-moved": "'''Stránka „$1“ byla přesunuta na „$2“'''",
        "movepage-moved-redirect": "Bylo vytvořeno přesměrování.",
        "movepage-moved-noredirect": "Přesměrování nebylo vytvořeno.",
+       "movepage-delete-first": "Cílová stránka má příliš mnoho verzí, než aby ji bylo možno smazat v rámci přesunu. Nejprve prosím cílovou stranu smažte ručně a poté to zkuste znovu.",
        "articleexists": "Takto nazvaná stránka již existuje, nebo Vámi zvolený název je neplatný. Zvolte jiný název.",
        "cantmove-titleprotected": "Stránku nelze přesunout na zadané místo, protože název je uzamčen proti vytváření",
        "movetalk": "Přesunout související diskusní stránku",
        "confirm-unwatch-top": "Vyjmout tuto stránku ze sledovaných?",
        "confirm-rollback-button": "OK",
        "confirm-rollback-top": "Vrátit editace této stránky?",
+       "confirm-mcrrestore-title": "Obnovit revizi",
        "confirm-mcrundo-title": "Vrátit zpět změnu",
        "mcrundofailed": "Vrácení editace zpět se nezdařilo",
        "mcrundo-missingparam": "V požadavku chybí povinné parametry.",
        "passwordpolicies-policy-passwordcannotmatchblacklist": "Heslo nesmí být v seznamu určitých zakázaných hesel",
        "passwordpolicies-policy-maximalpasswordlength": "Heslo musí být kratší než {{PLURAL:$1|$1 znak|$1 znaky|$1 znaků}}",
        "passwordpolicies-policy-passwordcannotbepopular": "Heslo nesmí být {{PLURAL:$1|dané oblíbené heslo|v seznamu $1 oblíbených hesel}}",
+       "passwordpolicies-policy-passwordnotinlargeblacklist": "Heslo nesmí být v seznamu 100 000 nejčastěji používaných hesel.",
        "easydeflate-invaliddeflate": "Poskytnutý obsah nebyl správně zkomprimován",
        "unprotected-js": "Z bezpečnostních důvodů nelze načítat JavaScript z nechráněných stran. Vyrábějte prosím JavaScriptové skripty jen ve jmenném prostoru MediaWiki: nebo jako uživatelskou podstránku"
 }
index 244d420..850987a 100644 (file)
        "accmailtext": "En tilfældigt dannet adgangskode for [[User talk:$1|$1]] er sendt til $2. Den kan ændres på siden ''[[Special:ChangePassword|skift adgangskode]]'', når du logger på.",
        "newarticle": "(Ny)",
        "newarticletext": "Du har fulgt en henvisning til en side som endnu ikke findes.\nFor at oprette siden skal du begynde at skrive i boksen nedenfor\n(se [$1 hjælpesiden] for yderligere information).\nHvis du er her ved en fejl, så tryk på din browsers '''tilbage'''-knap.",
-       "anontalkpagetext": "----\n<em>Dette er en diskussionsside for en anonym bruger, der ikke har oprettet en konto endnu eller ikke bruger den.</em>\nVi er derfor nødt til at bruge den numeriske IP-adresse til at identificere vedkommende.\nEn sådan IP-adresse kan være delt mellem flere brugere.\nHvis du er en anonym bruger og synes, at irrelevante kommentarer er blevet rettet mod dig, så [[Special:CreateAccount|opret en brugerkonto]] eller [[Special:UserLogin|log på]] for at undgå fremtidige forvekslinger med andre anonyme brugere.",
+       "anontalkpagetext": "----\n<em>Dette er diskussionssiden for en anonym bruger, der ikke har oprettet en konto endnu eller ikke bruger den.</em>\nVi er derfor nødt til at bruge den numeriske IP-adresse til at identificere vedkommende.\nEn sådan IP-adresse kan være delt mellem flere brugere.\nHvis du er en anonym bruger og synes, at irrelevante kommentarer er blevet rettet mod dig, så [[Special:CreateAccount|opret en brugerkonto]] eller [[Special:UserLogin|log på]] for at undgå fremtidige forvekslinger med andre anonyme brugere.",
        "noarticletext": "Der er i øjeblikket ikke nogen tekst på denne side.\nDu kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede logger]\neller [{{fullurl:{{FULLPAGENAME}}|action=edit}} oprette siden]</span>.",
        "noarticletext-nopermission": "Der er i øjeblikket ikke nogen tekst på denne side.\nDu kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,\neller <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede loglister]</span>,\nmen du har ikke tilladelse til at oprette denne side.",
        "missing-revision": "Revision #$1 af siden med navnet \"{{FULLPAGENAME}}\" eksisterer ikke.\n\nDette skyldes normalt at et forældet historik-link er fulgt til en side der er slettet.\nDetaljer kan findes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletningsloggen].",
        "pageinfo-robot-index": "Tilladt",
        "pageinfo-robot-noindex": "Ikke tilladt",
        "pageinfo-watchers": "Antal brugere, der overvåger siden",
+       "pageinfo-visiting-watchers": "Antal sideovervågere der har besøgt med senest aktivitet",
        "pageinfo-few-watchers": "Overvåget af færre end $1 {{PLURAL:$1|bruger|brugere}}",
        "pageinfo-redirects-name": "Antal omdirigeringer til denne side",
        "pageinfo-subpages-name": "Undersider til denne side",
        "tags-edit-chosen-no-results": "Ingen mærker fundet som matcher",
        "tags-edit-reason": "Årsag:",
        "tags-edit-success": "Ændringerne blev udført.",
+       "tags-edit-failure": "Ændringerne kunne ikke udføres:\n$1",
        "comparepages": "Sammenlign sider",
        "compare-page1": "Side 1",
        "compare-page2": "Side 2",
        "pagelang-submit": "Indsend",
        "pagelang-nonexistent-page": "Siden $1 findes ikke.",
        "pagelang-unchanged-language": "Siden $1 er allerede sat til sproget $2.",
+       "pagelang-db-failed": "Databasen kunne ikke ændre sidesproget.",
        "right-pagelang": "Ændre sidesproget",
        "action-pagelang": "ændre sidesproget",
+       "log-name-pagelang": "Log for sprogændringer",
+       "log-description-pagelang": "Dette er en log som viser ændringer i sidesprog",
        "mediastatistics": "Mediestatistik",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-type",
        "mw-widgets-dateinput-no-date": "Ingen dato valgt",
        "mw-widgets-dateinput-placeholder-day": "ÅÅÅÅ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
+       "mw-widgets-mediasearch-input-placeholder": "Søg efter medier",
        "mw-widgets-mediasearch-noresults": "Der blev ikke fundet noget resultat.",
        "mw-widgets-titleinput-description-new-page": "side eksisterer ikke endnu",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
        "log-action-filter-patrol": "Patruljeringstype:",
        "log-action-filter-protect": "Beskyttelsestype:",
        "log-action-filter-rights": "Type af rettighedændring:",
+       "log-action-filter-upload": "Type af overførsel:",
        "log-action-filter-all": "Alle",
        "log-action-filter-block-block": "Blokering",
        "log-action-filter-block-reblock": "Ændring af blokering",
index ce541fc..2e6eef9 100644 (file)
        "accmailtext": "[[User talk:$1|$1]] parolayo ke raşt ameyo şırawiyo na adres $2.\n\nQey na hesabê newe parola, cıkewtış dıma şıma eşkeni na qısım de ''[[Special:ChangePassword|parola bıvurn]]'' bıvurni.",
        "newarticle": "(Newe)",
        "newarticletext": "To yew gıre tıkna be ra yew pela ke hewna çıniya.\nSeba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [$1 pela peşti] ke).\nEke be ğeletine ameya tiya, wa gocega <strong>peyser</strong>i programê xo de bıtıkne.",
-       "anontalkpagetext": "----''Na per, perêk kı karbero hesab a nêkerdeyan o, ya zi karbero hesab akerdeyan o labele pê hesabê xo nêkewto de. No sebeb ra ma IP adres xebetneno û ney IP adresan herkes nêşeno bıvino. Eke şıma qayil niye ina bo xorê [[Special:CreateAccount|yew hesab bıvıraze]] veya xut [[Special:UserLogin|hesab akere]].''",
+       "anontalkpagetext": "----''Na pele, pela karberana ke hesab anêkerdo ya zi yê karberana ke hesab kerdo a, labelê be hesabê xo ra nêkewtê cı.'' \nNê sebeb ra adresa ma IPyi xebetnenime û nê adresanê IPyi her kes nêşeno bıvêno. Eke şıma qayil niyê wına bo, xo rê [[Special:CreateAccount|yew hesab vırazê]] ya zi [[Special:UserLogin|hesab akerê]].",
        "noarticletext": "Ena perrer de hewna theba çıni yo.\nTı şenê zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|qandê  sernameyê ena pele cı geyre]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre],\nya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele vıraze]</span>.{{MediaWiki mesaca pera newi}}",
        "noarticletext-nopermission": "Ena pele de hewna theba çıniyo.\nTı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê na pele cı geyre]], ya zi <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre]</span>, ema destur çıniyo ke na pele vırazê.",
        "missing-revision": "Rewizyonê name dê pela da #$1 \"{{FULLPAGENAME}}\" dı çıniyo.\n\nNo normal de tarix dê pelanê besterneyan dı ena xırabin asena.\nDetayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} tiya dı] aseno.",
index b3a0e9b..7a1cd1a 100644 (file)
        "newarticletext": "You have followed a link to a page that does not exist yet.\nTo create the page, start typing in the box below (see the [$1 help page] for more info).\nIf you are here by mistake, click your browser's <strong>back</strong> button.",
        "newarticletextanon": "{{int:newarticletext|$1}}",
        "talkpagetext": "<!-- MediaWiki:talkpagetext -->",
-       "anontalkpagetext": "----\n<em>This is the discussion page for an anonymous user who has not created an account yet, or who does not use it.</em>\nWe therefore have to use the numerical IP address to identify him/her.\nSuch an IP address can be shared by several users.\nIf you are an anonymous user and feel that irrelevant comments have been directed at you, please [[Special:CreateAccount|create an account]] or [[Special:UserLogin|log in]] to avoid future confusion with other anonymous users.",
+       "anontalkpagetext": "----\n<em>This is the discussion page for an anonymous user who has not created an account yet, or who does not use it.</em>\nWe therefore have to use the numerical IP address to identify them.\nSuch an IP address can be shared by several users.\nIf you are an anonymous user and feel that irrelevant comments have been directed at you, please [[Special:CreateAccount|create an account]] or [[Special:UserLogin|log in]] to avoid future confusion with other anonymous users.",
        "noarticletext": "There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} create this page]</span>.",
        "noarticletext-nopermission": "There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages, or <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, but you do not have permission to create this page.",
        "noarticletextanon": "{{int:noarticletext}}",
index b7575ff..f9d98e2 100644 (file)
        "tog-underline": "Subrayar los enlaces:",
        "tog-hideminor": "Ocultar las ediciones menores en cambios recientes",
        "tog-hidepatrolled": "Ocultar las ediciones verificadas de cambios recientes",
-       "tog-newpageshidepatrolled": "Ocultar las páginas verificadas de la lista de páginas nuevas",
+       "tog-newpageshidepatrolled": "Ocultar, de la lista de páginas nuevas, las páginas verificadas",
        "tog-hidecategorization": "Ocultar la categorización de páginas",
        "tog-extendwatchlist": "Mostrar todos los cambios en la lista de seguimiento, no solo los más recientes",
        "tog-usenewrc": "Agrupar los cambios por página en cambios recientes y en la lista de seguimiento",
        "spam_reverting": "Revirtiendo a la última versión que no contenga enlaces a $1",
        "spam_blanking": "Todas las revisiones contienen enlaces a $1, blanqueando",
        "spam_deleting": "Todas las revisiones que contienen enlaces a $1, en proceso de eliminación",
-       "simpleantispam-label": "Comprobación anti-spam.\n¡<strong>No</strong> rellenes esto!",
+       "simpleantispam-label": "Comprobación antispam.\n¡<strong>No</strong> rellenes esto!",
        "pageinfo-title": "Información de «$1»",
        "pageinfo-not-current": "Lo sentimos, no es posible mostrar esta información para las revisiones antiguas.",
        "pageinfo-header-basic": "Información básica",
index 7641c2a..c2e7359 100644 (file)
                        "Niridya",
                        "Pamputt",
                        "Ash Crow",
-                       "Alacabe"
+                       "Alacabe",
+                       "Eihel"
                ]
        },
        "tog-underline": "Soulignement des liens :",
        "accmailtext": "Un mot de passe généré aléatoirement pour [[User talk:$1|$1]] a été envoyé à $2.\nIl peut être modifié sur la page ''[[Special:ChangePassword|Changement de mot de passe]]'' après connexion.",
        "newarticle": "(Nouveau)",
        "newarticletext": "Vous avez suivi un lien vers une page qui n’existe pas encore. \nAfin de créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [$1 la page d’aide] pour plus d’informations). \nSi vous êtes arrivé{{GENDER:||e}} ici par erreur, cliquez sur le bouton <strong>Retour</strong> de votre navigateur.",
-       "anontalkpagetext": "----\n<em>Vous êtes sur la page de discussion d’un utilisateur anonyme qui n’a pas encore créé de compte ou qui n’en utilise pas</em>.\nPour cette raison, nous devons utiliser son adresse IP pour lidentifier.\nUne adresse IP peut être partagée par plusieurs utilisateurs.\nSi vous êtes un{{GENDER:||e|}} utilisat{{GENDER:|eur|rice|eur}} anonyme et si vous constatez que des commentaires qui ne vous concernent pas vous ont été adressés, vous pouvez [[Special:CreateAccount|créer un compte]] ou [[Special:UserLogin|vous connecter]] afin d’éviter toute confusion future avec d’autres contributeurs anonymes.",
+       "anontalkpagetext": "----\n<em>Vous êtes sur la page de discussion d’un utilisateur anonyme qui n’a pas encore créé de compte ou qui n’en utilise pas</em>.\nPour cette raison, nous devons utiliser son adresse IP pour les identifier.\nUne adresse IP peut être partagée par plusieurs utilisateurs.\nSi vous êtes un{{GENDER:||e|}} utilisat{{GENDER:|eur|rice|eur}} anonyme et si vous constatez que des commentaires qui ne vous concernent pas vous ont été adressés, vous pouvez [[Special:CreateAccount|créer un compte]] ou [[Special:UserLogin|vous connecter]] afin d’éviter toute confusion future avec d’autres contributeurs anonymes.",
        "noarticletext": "Il n’y a pour l’instant aucun texte sur cette page.\nVous pouvez [[Special:Search/{{PAGENAME}}|lancer une recherche sur ce titre]] dans les autres pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les opérations liées]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} créer cette page]</span>.",
        "noarticletext-nopermission": "Il n'y a pour l'instant aucun texte sur cette page.\nVous pouvez [[Special:Search/{{PAGENAME}}|faire une recherche sur ce titre]] dans les autres pages,\nou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les journaux associés]</span>, mais vous n'avez pas la permission de créer cette page.",
        "missing-revision": "La révision nº $1 de la page intitulée « {{FULLPAGENAME}} » n’existe pas.\n\nCela survient en général en suivant un lien historique désuet vers une page qui a été supprimée.\nVous pouvez trouver plus de détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
        "rcfilters-preference-label": "Utiliser l'interface non-JavaScript",
        "rcfilters-preference-help": "Charge les modifications récentes sans les fonctions de filtrage ni de mise en valeur.",
        "rcfilters-watchlist-preference-label": "Utiliser l'interface non-JavaScript",
-       "rcfilters-watchlist-preference-help": "Charge la liste de suivi sans les fonctions de filtrage ni de mise en valeur.",
+       "rcfilters-watchlist-preference-help": "Charge la liste de suivi sans les fonctions de filtrage ou de mise en valeur.",
        "rcfilters-filter-showlinkedfrom-label": "Montrer les modifications des pages liées depuis",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Pages liées depuis</strong> la page sélectionnée",
        "rcfilters-filter-showlinkedto-label": "Montrer les modifications des pages pointant vers",
index f140fe0..98cbf28 100644 (file)
        "gender-unknown": "Kad Vas se spominje, programska će oprema pokušati upotrijebiti srednji rod kad god je to moguće.",
        "gender-male": "Uređivač sam wikistranica.",
        "gender-female": "Uređivačica sam wikistranica.",
-       "prefs-help-gender": "Mogućnost softvera da ispravno oslovljava razlikujući spol. Ovaj će podatak biti javan.",
+       "prefs-help-gender": "Postavljanje ove mogućnosti je opcionalno.\nProgramska oprema koristi danu vrijednost kako bi Vam se obratila i spomenula Vas drugima rabeći odgovarajući gramatički rod.\nOvaj podatak bit će javno dostupan.",
        "email": "Adresa elektroničke pošte *",
        "prefs-help-realname": "Pravo ime nije obvezno. Ako ga navedete, može biti rabljeno za pripisivanje Vaših doprinosa.",
        "prefs-help-email": "E-mail adresa nije obvezna, ali je potrebna za obnovu lozinke u slučaju da ju zaboravite.",
        "prefs-advancedwatchlist": "Napredne mogućnosti",
        "prefs-displayrc": "Mogućnosti prikaza",
        "prefs-displaywatchlist": "Mogućnosti prikaza",
+       "prefs-changeswatchlist": "Prikazivanje izmjena",
        "prefs-tokenwatchlist": "Tajni ključ",
        "prefs-diffs": "Razlike između inačica uređivanja",
        "prefs-help-prefershttps": "Ova mogućnost će stupiti na snagu kod sljedeće prijave.",
        "pageinfo-display-title": "Pokaži naslov",
        "pageinfo-default-sort": "Podrazumijevano sortiranje",
        "pageinfo-length": "Veličina stranice (u bajtovima)",
+       "pageinfo-namespace": "Imenski prostor",
        "pageinfo-article-id": "ID stranice",
        "pageinfo-language": "Jezik stranice",
        "pageinfo-language-change": "promijeni",
        "pageinfo-category-subcats": "Broj podkategorija",
        "pageinfo-category-files": "Broj datoteka",
        "pageinfo-user-id": "ID suradnika",
+       "pageinfo-view-protect-log": "Vidi evidenciju zaštićivanja ove stranice.",
        "markaspatrolleddiff": "Označi pregledanim",
        "markaspatrolledtext": "Označi ovu stranicu ophođenom",
        "markaspatrolledtext-file": "Označi ovu inačicu datoteke ophođenom",
index 0c1d608..20f510f 100644 (file)
@@ -51,7 +51,8 @@
                        "Bencemac",
                        "Rodrigo",
                        "Tothasze",
-                       "David92003"
+                       "David92003",
+                       "--szabi--"
                ]
        },
        "tog-underline": "Hivatkozások aláhúzása:",
        "returnto": "Vissza a(z) $1 laphoz.",
        "tagline": "Innen: {{SITENAME}}",
        "help": "Segítség",
+       "help-mediawiki": "Segítség a MédiaWiki-ről",
        "search": "Keresés",
        "search-ignored-headings": " #<!-- ezen a soron ne változtass --> <pre>\n# Az itt megadott szakaszokat figyelmen kívül hagyja a kereső.\n# Ha megváltoztatod ezt a listát, csak a változtatás után indexelt lapokra lesz hatása.\n# Ha újra akarsz indexelni egy adott oldalt, egy üres szerkesztéssel (megnyit-elment) megteheted.\n# Szintaxis:\n#   * A # jeltől a sor végéig tartó rész megjegyzés, a szoftver figyelmen kívül hagyja\n#   * Minden nem üres sor egy olyan szakasz címe, amit nem akarjuk, hogy indexeljen a kereső. (Csak a pontos egyezés számít, kisbetű/nagybetűt is beleértve.)\nForrások\nJegyzetek\nHivatkozások\nKülső hivatkozások\nLásd még\n #</pre> <!-- ezen a soron ne változtass -->",
        "searchbutton": "Keresés",
        "edit-gone-missing": "Nem lehet frissíteni a lapot.\nÚgy tűnik, hogy törölve lett.",
        "edit-conflict": "Szerkesztési ütközés.",
        "edit-no-change": "A szerkesztésed figyelmen kívül lett hagyva, mivel nem változtattál a lap szövegén.",
+       "edit-slots-cannot-add": "A következő {{PLURAL:$1|rés nem támogatott itt|rések nem támogatottak itt}}: $2.",
+       "edit-slots-cannot-remove": "A következő {{PLURAL:$1|rés kötelező és nem lehet eltávolítani|rések kötelezőek és nem lehet őket eltávolítani}}: $2.",
+       "edit-slots-missing": "A következő {{PLURAL:$1|rés hiányzik|rések hiányoznak}}: $2.",
        "postedit-confirmation-created": "Az oldal létrehozva.",
        "postedit-confirmation-restored": "Az oldal helyre lett állítva.",
        "postedit-confirmation-saved": "A szerkesztésedet elmentettük.",
        "defaultmessagetext": "Alapértelmezett szöveg",
        "content-failed-to-parse": "Hiba történt a $2 tartalom $1 modellre történő konvertálása során: $3",
        "invalid-content-data": "Érvénytelen tartalom adat",
-       "content-not-allowed-here": "\"$1\" tartalom nem engedélyezett a [[:$2]] oldalon",
+       "content-not-allowed-here": "\"$1\" tartalom nem engedélyezett a [[:$2]] oldalon a \"$3\" résben",
        "editwarning-warning": "A lap elhagyásával az összes itt végzett változtatás elveszhet. Ha be vagy jelentkezve, letilthatod ezt a figyelmeztetést a beállításaid „{{int:prefs-editing}}” szakaszában.",
        "editpage-invalidcontentmodel-title": "A tartalommodell nem támogatott",
        "editpage-invalidcontentmodel-text": "A(z) „$1” tartalommodell nem támogatott.",
        "editpage-notsupportedcontentformat-title": "Nem támogatott tartalom formátum",
        "editpage-notsupportedcontentformat-text": "$2 tartalommodell nem támogatja $1 tartalomformátumot.",
+       "slot-name-main": "Kezdőlap",
        "content-model-wikitext": "wikiszöveg",
        "content-model-text": "egyszerű szöveg",
        "content-model-javascript": "JavaScript",
index bdad332..8b2994d 100644 (file)
        "unwatch": "Հանել հսկումից",
        "unwatchthispage": "Հանել հսկումից",
        "notanarticle": "Հոդված չէ",
-       "watchlist-details": "Ձեր հսկացանկում կա {{PLURAL:$1|$1 էջ}}` այդ թվում քննարկման էջերը։",
+       "watchlist-details": "Ձեր հսկացանկում կա {{PLURAL:$1|$1 էջ}}, այդ թվում՝ քննարկման էջերը։",
        "wlheader-enotif": "Էլ-փոստով տեղեկացումը միացված է։",
        "wlheader-showupdated": "Էջերը, որոնք փոփոխվել են ձեր վերջին այցից հետո, բերված են '''թավատառ'''։",
        "wlnote": "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում՝ $3, $4֊ի դրությամբ։",
index 67243a2..cedea01 100644 (file)
                        "Daimona Eaytoy",
                        "Sarah Bernabei",
                        "Wedhro",
-                       "Malore"
+                       "Malore",
+                       "Ruthven"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "searchprofile-everything-tooltip": "Cerca ovunque (incluse le pagine di discussione)",
        "searchprofile-advanced-tooltip": "Cerca nei namespace personalizzati",
        "search-result-size": "$1 ({{PLURAL:$2|una parola|$2 parole}})",
-       "search-result-category-size": "{{PLURAL:$1|1 utente|$1 utenti}} ({{PLURAL:$2|1 sottocategoria|$2 sottocategorie}}, {{PLURAL:$3|1 file|$3 files}})",
+       "search-result-category-size": "{{PLURAL:$1|1 elemento|$1 elementi}} ({{PLURAL:$2|1 sottocategoria|$2 sottocategorie}}, {{PLURAL:$3|1 file|$3 file}})",
        "search-redirect": "(reindirizzamento da $1)",
        "search-section": "(sezione $1)",
        "search-category": "(categoria $1)",
index 09b258c..c1585db 100644 (file)
@@ -6,7 +6,7 @@
                        "Sawmw"
                ]
        },
-       "underline-always": "á\80\80á\80­á\80¯á\80²ၜၠင်",
+       "underline-always": "á\80\80á\80­á\80¯á\80\9dá\80ºၜၠင်",
        "underline-never": "ၮင်းဖိုင့်အေႋ",
        "editfont-serif": "ခေါဟ်ထိင်ႋပါ့ဖောင့်",
        "sunday": "အ်ုတုက်",
        "upload-disallowed-here": "ၮ်ု File အ်ုယိုဝ် ဖိုဟ်ထိုင့်သာ ကီလ်ုၮေဝ်ၜး။",
        "filedelete-submit": "ထုဂ်ဆိင့်",
        "randompage": "ဆ်ုတံင်ဏံင်းလိက်မေံၜၠါ်",
+       "randomincategory": "အ်ုဆုဂ်ဍွယ်ဖိုင် ဆ်ုတံင်ဏံင်းလိက်မေံၜၠါ်",
        "statistics": "စ်ုရင့်ကါင်ကါ",
        "double-redirect-fixer": "ထါင်ၮဲအ်ုထိုဝ်အင်းတင်ဆာ",
        "brokenredirects-delete": "ထုဂ်ဆိင့်",
        "exif-colorspace": "အ်ုယံင့်လင်ခၠာ",
        "exif-datetimeoriginal": "ဒ်ှတာအင်းတင်ဖှ်ေ မူႋသင့်လ်ု အ်ုခါ့",
        "exif-datetimedigitized": "တ်ုဂျတယ်အင်းလယ် မူႋသင့်လ်ုအ်ုခါ့",
+       "exif-objectname": "ခေါဟ်တင်ဖူး",
+       "exif-headline": "မေါဝ်ႋတိုင်",
        "exif-orientation-1": "ဟ်ုအ်ှသှ်ေ",
        "exif-lightsource-2": "မှ်ေထေဝ် အ်ုဖါန်ႋၯာင်ႋ",
        "exif-gaincontrol-0": "အှ်ဏင်မိင်အေ",
index d8e4f84..3550919 100644 (file)
@@ -72,7 +72,8 @@
                        "Nuevo Paso",
                        "Doyoon1995",
                        "Jay94ks",
-                       "Ryuch"
+                       "Ryuch",
+                       "Delim"
                ]
        },
        "tog-underline": "링크에 밑줄 긋기:",
        "rawhtml-notallowed": "&lt;html&gt; 태그는 일반 페이지 밖에서는 사용할 수 없습니다.",
        "gotointerwiki": "{{SITENAME}}을(를) 떠납니다",
        "gotointerwiki-invalid": "지정된 제목이 올바르지 않습니다.",
-       "gotointerwiki-external": "ë\8b¤ë¥¸ ì\9b¹ì\82¬ì\9d´í\8a¸ [[$2]]ì\9d\84(를) ë°©ë¬¸í\95\98기 ì\9c\84í\95´, {{SITENAME}}ì\9d\84(를) ë\96 ë\82\98려고 í\95©ë\8b\88ë\8b¤.\n\n'''[$1 $1(ì\9c¼)ë¡\9c ê³\84ì\86\8d ì§\84í\96\89]'''",
+       "gotointerwiki-external": "ë³\84ê°\9cì\9d\98 [[$2]] ì\82¬ì\9d´í\8a¸ë¥¼ ë°©ë¬¸í\95\98기 ì\9c\84í\95´, {{SITENAME}} ì\82¬ì\9d´í\8a¸ë¥¼ ë\96 ë\82\98려고 í\95©ë\8b\88ë\8b¤.\n\n'''[$1 $1 ì\82¬ì\9d´í\8a¸ë¡\9c ê°\80기]'''",
        "undelete-cantedit": "이 문서를 편집할 권한이 없으므로 이 문서를 복구할 수 없습니다.",
        "undelete-cantcreate": "이 이름으로 된 문서가 없고 이 문서를 만들 권한이 없으므로 이 문서를 복구할 수 없습니다.",
        "pagedata-title": "문서 데이터",
index 56967aa..1cd139f 100644 (file)
@@ -16,7 +16,8 @@
                        "S4b1nuz E.656",
                        "Luensu1959",
                        "Feipìn",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Ruthven"
                ]
        },
        "tog-underline": "Sotolìnnia i colegaménti",
        "searchprofile-everything-tooltip": "Çerca in ògni dove (anche inte pàgine de discusción)",
        "searchprofile-advanced-tooltip": "Çerca inti namespace personalizæ",
        "search-result-size": "$1 ({{PLURAL:$2|1 paròlla|$2 paròlle}})",
-       "search-result-category-size": "{{PLURAL:$1|1 utente|$1 utenti}} ({{PLURAL:$2|1 sottocategoria|$2 sottocategorie}}, {{PLURAL:$3|1 file|$3 file}})",
+       "search-result-category-size": "{{PLURAL:$1|1 elemento|$1 elementi}} ({{PLURAL:$2|1 sottocategoria|$2 sottocategorie}}, {{PLURAL:$3|1 file|$3 file}})",
        "search-redirect": "(Rendriçço da $1)",
        "search-section": "(seçión $1)",
        "search-category": "(categoria $1)",
index df84bcc..8a70ae1 100644 (file)
        "prefs-displayrc": "दृश्य विकल्पसभ",
        "prefs-displaywatchlist": "दृश्य विकल्पसभ",
        "prefs-changesrc": "बदलेलहा देखाल",
+       "prefs-changeswatchlist": "बदलेलहा देखाल",
+       "prefs-pageswatchlist": "देखेल पन्नासभ",
        "prefs-tokenwatchlist": "टोकन",
        "prefs-diffs": "अन्तर",
        "prefs-help-prefershttps": "इ प्राथमिकता अहाँके फेर स सम्प्रवेश करलाक बाद प्रभाव पडत।",
        "userrights-user-editname": "एकटा प्रयोक्तानाम लिखी:",
        "editusergroup": "प्रयोगकर्ता समूह देखालजाय",
        "editinguser": "सदस्य '''[[User:$1|$1]]''' $2 क अधिकार बदलि\n{{GENDER:$1|सदस्य}}क सदस्य अधिकार बदलल जा रहल अछि <strong>[[User:$1|$1]]</strong> $2",
+       "viewinguserrights": "सदस्य '''[[User:$1|$1]]''' $2 क अधिकार बदलि\n{{GENDER:$1|सदस्य}}क सदस्य अधिकार बदलल जा रहल अछि <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "प्रयोगकर्ता समूह सम्पादित करी",
+       "userrights-viewusergroup": "{{GENDER:$1|प्रयोक्ता}} समूह देखी",
        "saveusergroups": "{{GENDER:$1|सदस्य}} समूह सङ्ग्रह करी",
        "userrights-groupsmember": "क सदस्य:",
        "userrights-groupsmember-auto": "क जानल सदस्य:",
        "userrights-changeable-col": "वर्ग जे अहाँ बदलि सकै छी",
        "userrights-unchangeable-col": "वर्ग जे अहाँ नै बदलि सकै छी",
        "userrights-irreversible-marker": "$1*",
+       "userrights-expiry-current": "खतम होइए $1",
+       "userrights-expiry-none": "खतम नै हएत:",
+       "userrights-expiry": "खतम हएत:",
+       "userrights-expiry-existing": "अखुनका खतम हेबाक समए : $3, $2",
+       "userrights-expiry-othertime": "दोसर समए:",
        "userrights-conflict": "प्रयोक्ता अधिकार बदलावक समयमे अंतर्विरोध! कृपया अपन बदलाव जाँच करु आ पुनः सुनिश्चित करु।",
        "group": "समूह:",
        "group-user": "प्रयोक्तासभ",
        "recentchanges-submit": "देखाबी",
        "rcfilters-tag-remove": "$1 हटा",
        "rcfilters-legend-heading": "<strong>सङ्केतक सूची:</strong>",
+       "rcfilters-activefilters": "सक्रिय फिल्टर",
        "rcfilters-activefilters-hide": "नुकाबी",
        "rcfilters-activefilters-show": "देखाबी",
+       "rcfilters-advancedfilters": "उन्नत फ़िल्टर",
        "rcfilters-limit-title": "परिणाम देखाबी",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|परिवर्त्तन|परिवर्त्तन सभ}}, $2",
        "rcfilters-days-title": "कुछ दिन के",
        "rcfilters-hours-title": "कुछ समय",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|दिन}} पहिने",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|घंटा}} पहिने",
+       "rcfilters-highlighted-filters-list": "पर प्रकाश करल:$1",
        "rcfilters-quickfilters": "फ़िल्टर संरक्षण करू",
+       "rcfilters-savedqueries-defaultlabel": "फ़िल्टर संरक्षण करू",
        "rcfilters-savedqueries-rename": "नाम बदलु",
        "rcfilters-savedqueries-setdefault": "मूल के रूप मे राखु",
        "rcfilters-savedqueries-remove": "मेटाबी",
        "rcfilters-savedqueries-apply-label": "फ़िल्टर बनाबु",
        "rcfilters-savedqueries-cancel-label": "रद्द करु",
        "rcfilters-clear-all-filters": "फ़िल्टरसभ मिटाबु",
+       "rcfilters-invalid-filter": "अमान्य फ़िल्टर",
        "rcfilters-filterlist-title": "चलनीसभ",
        "rcfilters-highlightmenu-title": "रंग चुनु",
        "rcfilters-filtergroup-authorship": "लेखक योगदान",
        "rcfilters-filter-user-experience-level-experienced-label": "अनुभवी सदस्यसभ",
        "rcfilters-filter-bots-label": "स्वचालक",
        "rcfilters-filter-bots-description": "स्वचालित औजार से करलहा सम्पादनसभ।",
+       "rcfilters-filter-humans-label": "मानव (बॉट नैछि)",
        "rcfilters-filtergroup-reviewstatus": "पुनरीक्षण स्थिति",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "अपरीक्षित",
        "rcfilters-filter-reviewstatus-auto-label": "सवापरिक्षित",
        "rcfilters-filtergroup-significance": "महत्व",
        "rcfilters-filter-minor-label": "छोट सम्पादन",
+       "rcfilters-filtergroup-watchlist": "देखेल पन्नासभ",
        "rcfilters-filter-watchlist-watched-label": "साकांक्षसूची",
+       "rcfilters-filter-watchlist-watchednew-label": "नया ध्यानसूची बदलाव",
+       "rcfilters-filter-watchlist-notwatched-label": "ध्यानसूची में नैछि",
        "rcfilters-filter-watchlistactivity-unseen-label": "परिवर्तन सभ चुनु",
        "rcfilters-filter-watchlistactivity-seen-label": "परिवर्तन सभ चुनु",
        "rcfilters-filtergroup-changetype": "बदल क प्रकार:",
        "rcfilters-filter-pageedits-label": "पन्नाक संपादनसभ",
        "rcfilters-filter-newpages-label": "प्रयोक्ता रचना लग",
+       "rcfilters-filter-categorization-label": "श्रेणी परिवर्तन",
+       "rcfilters-filtergroup-lastRevision": "नूतन संशोधन",
+       "rcfilters-filter-lastrevision-label": "नूतन संशोधन",
+       "rcfilters-filter-excluded": "अपवर्जित",
+       "rcfilters-tag-prefix-namespace-inverted": " $1 <strong>:नैछि</strong>",
+       "rcfilters-view-tags": "पन्नाक संपादनसभ",
        "rcfilters-liveupdates-button": "अखुनका अद्यतन",
        "rcfilters-target-page-placeholder": "पृष्ठ(अथवा श्रेणी) क नाम भरू",
        "rcnotefrom": "नीचाँमे '''$2''' सँ भेल परिवर्तन अछि ('''$1''' धरि देखाएल)।",
        "uploadstash-errclear": "फाइलसभके साफ करनाए असफल रहल।",
        "uploadstash-refresh": "संचिका सभक सूचीकेँ ताजा करू।",
        "uploadstash-thumbnail": "छवि देखी",
+       "uploadstash-bad-path": "पथ नै अछि ।",
        "uploadstash-bad-path-unknown-type": "अज्ञात क्रिया \"$1\" ।",
        "uploadstash-no-extension": "आयतन शून्य छि|",
        "invalid-chunk-offset": "एकट्ठे अमान्य बौस्तु",
        "apisandbox-helpurls": "सहायता कड़ी",
        "apisandbox-examples": "उदाहरण",
        "apisandbox-dynamic-parameters": "काम मानकसभ",
+       "apisandbox-dynamic-parameters-add-label": "प्राचल जोडु:",
+       "apisandbox-dynamic-parameters-add-placeholder": "प्राचल नाम",
+       "apisandbox-fetch-token": "टोकन स्वतः भरू",
        "apisandbox-add-multi": "जोडू",
        "apisandbox-results": "परिणाम",
+       "apisandbox-sending-request": "एपीआई अनुरोध पठाअछि...",
+       "apisandbox-loading-results": "एपीआई परिणाम देखाछि...",
        "apisandbox-request-url-label": "अनुरोध URL:",
+       "apisandbox-request-json-label": "JSON अनुरोध:",
        "apisandbox-request-time": "अनुरोध समय: {{PLURAL:$1|$1 मिसे}}",
        "apisandbox-continue": "आगु चलु →",
        "apisandbox-continue-clear": "खाली करू",
        "apisandbox-multivalue-all-namespaces": "$1 (सभ नामस्थान)",
+       "apisandbox-multivalue-all-values": "$1 (सभ मूल्य)",
        "booksources": "किताबक स्रोत",
        "booksources-search-legend": "किताबक स्रोत ताकी",
        "booksources-isbn": "आइ.एस.बी.एन.:",
        "speciallogtitlelabel": "प्रयोजन (शीर्षक अथवा {{ns:user}}:प्रयोगकर्तानाम):",
        "log": "लौग",
        "logeventslist-submit": "देखाबी",
+       "logeventslist-patrol-log": "परीक्षण लग",
+       "logeventslist-tag-log": "ट्याग लग",
        "all-logs-page": "सभ सार्वजनिक लौग",
        "alllogstext": "{{अन्तर्जाल}} क सभटा उपलब्ध वृत्तलेखक संयुक्त दृश्य।\nअहाँ दृश्यकेँ संकीर्ण करबा लेल वृत्तलेखक एकटा प्रकार चुनि सकै छी, प्रयोक्तानाम (ब्रह्मक्षर-लघ्वक्षर विचारणीय), वा प्रभावित पन्ना (एतौ ब्रह्मक्षर-लघ्वक्षर विचारणीय)।",
        "logempty": "वृत्तलेखमे कोनो मेल खाइबला बौस्तु नै।",
        "cachedspecial-refresh-now": "लब्का देखु",
        "categories": "श्रेणीसभ",
        "categories-submit": "देखाबी",
-       "categoriespagetext": "ई {{PLURAL:$1|संवर्गमे अछि|संवर्ग सभमे अछि}} पन्ना वा मीडिया।\n[[Special:UnusedCategories|अप्रयुक्त श्रेणीसभ]] एतए देखाएल नै अछि।\nईहो देखू [[Special:WantedCategories|आवश्यक श्रेणीसभ]]।",
+       "categoriespagetext": "ई {{PLURAL:$1|संवर्गमे अछि|संवर्ग सभमे अछि}} पन्ना वा मीडिया।\nईहो देखू [[Special:WantedCategories|आवश्यक श्रेणीसभ]]।",
        "categoriesfrom": "पन्ना प्रदर्शन प्रारम्भ भेल:",
        "deletedcontributions": "मेटाएल प्रयोक्ता योगदान",
        "deletedcontributions-title": "मेटाएल प्रयोक्ता योगदान",
        "deletepage": "पन्ना मेटाउ",
        "confirm": "पक्का छी",
        "excontent": "विषय छल:\"$1\"",
-       "excontentauthor": "पाठ छल:\"$1\" (आ एकमात्र योगदान दैबला छल \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|वार्ता]])",
+       "excontentauthor": "पाठ छल:\"$1\" आ एकमात्र योगदान दैबला छल \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|वार्ता]])",
        "exbeforeblank": "खतम होएबाक पहिने पाठ छल:\"$1\"",
        "delete-confirm": "$1 के मेटाबी",
        "delete-legend": "मेटाबी",
        "dellogpagetext": "नीचाँ एकदम लगक मेटाएल पन्नाकऽ सूची छी।",
        "deletionlog": "मेटाएल लौग",
        "log-name-create": "प्रयोक्ता रचना लग",
+       "log-description-create": "नीचाँ एकदम लगक मेटाएल पन्नाकऽ सूची छी।",
+       "logentry-create-create": "$1 {{GENDER:$2|दबाएल}} page $3",
        "reverted": "पुरान कोनो संशोधन धरि घुराउ",
        "deletecomment": "कारण:",
        "deleteotherreason": "दोसर/ अतिरिक्त कारण:",
        "editcomment": "सम्पादन सार छल : <em>$1</em>।",
        "revertpage": "सम्पादन आपस कएल गेल [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) सँ अन्तिम संशोधन धरि एकरा द्वारा [[User:$1|$1]]।",
        "revertpage-nouser": "(प्रयोक्ताक नाम हटा देल गेल अछि) द्वारा केल गेल संपादनकेँ फेरसँ पुरान स्थितिमे आनि कऽ एकर पहिलुक [[User:$1|$1]] सँ बनल संस्करणकेँ फेरसँ ताजा संस्करण बनाऊ।",
-       "rollback-success": "$1 केर सम्पादन हटाबी। \n$2 केर सम्पादित आखिरी अवतरणक पुनर्स्थापित करल गेल।",
+       "rollback-success": "{{GENDER:$3|$1}} क संपादन हटाबी;\n{{GENDER:$4|$2}} द्वारा संपादित अन्तिम अवतरण क पुनर्स्थापित करू।",
        "rollback-success-notify": "$1द्वारा पूर्ववत सम्पादन;\n$2द्वारा केल अन्तिम अवतरण पर वापस। [$3 परिवर्तन देखाबी]",
        "sessionfailure-title": "सत्र विफल भ गेल",
        "sessionfailure": "एहन लागैत अछि जे अहां के लागिन सत्र में कोनो त्रुटि अछि. सत्र अपहरण से बचाबय  सं सावधानीक लेल अहां के अहि क्रियाकलाप क रद्द क देल गेल. अहां पाछां के पृष्ठ पर जौउ आ पृष्ठ के फेर सं लोड क दोबारा कोशिश करू.",
        "uctop": "शिखर",
        "month": "माससँ (आ पहिने)",
        "year": "ई साल (आ पहिने)",
+       "date": "माससँ (आ पहिने)",
        "sp-contributions-newbies": "मात्र नव खाताक योगदान देखाबी",
        "sp-contributions-newbies-sub": "नब प्रयोक्ताकऽ लेल",
        "sp-contributions-newbies-title": "नब प्रयोक्ताकऽ योगदान",
        "ipb-disableusertalk": "ऐ प्रयोक्ताकेँ प्रतिबन्ध अवधिमे अपन वार्ता पन्नाक सम्पादनसँ रोकू।",
        "ipb-change-block": "प्रयोक्ताकें  पुनः प्रतिबन्धित करू ई विकल्पक संग",
        "ipb-confirm": "प्रतिबन्ध सुनिश्चित करू",
+       "ipb-partial": "आंशिक",
+       "ipb-type-label": "प्रकार",
+       "ipb-pages-label": "पन्ना",
        "badipaddress": "अमान्य आईपी पता",
        "blockipsuccesssub": "प्रतिबन्ध सफल भेल",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] प्रतिबन्धित कएल गेल।<br />\nदेखू [[Special:BlockList|IP block list]] प्रतिबन्धक पुनरीक्षण लेल।",
        "blocklist": "प्रतिबन्धित प्रयोक्ता सभ",
        "autoblocklist": "स्वतः प्रतिबन्धित",
        "autoblocklist-submit": "खोज",
+       "autoblocklist-legend": "स्वतः अवरोध सूची",
        "autoblocklist-empty": "प्रतिबन्धसूची खाली अछि।",
        "ipblocklist": "प्रतिबन्धित प्रयोक्ता सभ",
        "ipblocklist-legend": "प्रतिबन्धित प्रयोक्ताकेँ ताकू",
        "createaccountblock": "लेखा निर्माण अशक्त कएल",
        "emailblock": "ई-पत्र प्रतिबन्धित",
        "blocklist-nousertalk": "अपन वार्ता पन्ना सम्पादित नै कऽ सकब",
+       "blocklist-editing": "सम्पादन कऽ रहल छी",
        "ipblocklist-empty": "प्रतिबन्धसूची खाली अछि।",
        "ipblocklist-no-results": "आग्रह कएल अनिकेत वा प्रयोक्तानाम प्रतिबन्धित नै कएल गेल।",
        "blocklink": "प्रतिबन्धित",
        "movenotallowedfile": "अहाँकेँ संचिका सभकेँ घसकेबाक अधिकार नै अछि।",
        "cant-move-user-page": "अहाँकेँ प्रयोक्ता पन्ना सभकेँ घसकेबाक अधिकार नै अछि (उपपन्ना सभकेँ छोड़ि कऽ)।",
        "cant-move-to-user-page": "अहाँकेँ कोनो पन्नाकेँ प्रयोक्ता पन्ना लग घसकेबाक अधिकार नै अछि (प्रयोक्ता उपपन्ना लग छोड़ि कऽ)।",
+       "cant-move-subpages": "अहाँकेँ पन्ना घसकेबाक अधिकार नै अछि।",
        "newtitle": "नव शीर्षक:",
        "move-watch": "लिङ्क पन्ना आ लक्षित पन्ना देखी",
        "movepagebtn": "नाम परिवर्तन करी",
        "movelogpagetext": "नाम बदलल गेल लेख कऽ सूचि नीचां देल गेल अछि",
        "movesubpage": "{{PLURAL:$1|उप पन्ना|उप पन्ना}}",
        "movesubpagetext": "नीचां $1 {{PLURAL:$1| पन्ना देखाओल गएल अछि, जे अहि पन्नाकऽ उप पन्ना अछि|पन्ना देखावोल गएल अछि, जे अहि पन्नाकऽ उप पन्ना अछि}}।",
+       "movesubpagetalktext": "नीचां $1 {{PLURAL:$1| पन्ना देखाओल गएल अछि, जे अहि पन्नाकऽ उप पन्ना अछि|पन्ना देखावोल गएल अछि, जे अहि पन्नाकऽ उप पन्ना अछि}}।",
        "movenosubpage": "अहि पन्ना कऽ कोनो उप पन्ना नहि अछि।",
        "movereason": "कारण:",
        "revertmove": "पूर्ववत्",
        "import-mapping-namespace": "कोनो नामस्थान पर आयात करी",
        "import-mapping-subpage": "निम्न लिखित पृष्ठके उपपृष्ठक रूपमे आयात करी:",
        "import-upload-filename": "संचिकानाम:",
+       "import-upload-username-prefix": "इंटरविकी उपसर्ग:",
        "import-comment": "समीक्षा:",
        "importtext": "मूल विकी [[Special:Export|export utility]] क प्रयोग कऽ संचिका पठाउ।\nअपन संगणकमे एकरा सुरक्षित करू आ एतए उपारोपित करू।",
        "importstart": "पन्ना सभकेँ आनि रहल छी...",
        "pageinfo-category-subcats": "उपसंवर्ग के संख्या",
        "pageinfo-category-files": "फाइल सभके संख्या",
        "pageinfo-user-id": "प्रयोक्ता आई॰डी॰",
+       "pageinfo-file-hash": "हैश मान",
        "markaspatrolleddiff": "जाँच सम्पन्न करी",
        "markaspatrolledtext": "देखि लेल गेल, एहन चिन्ह लगाऊ",
        "markaspatrolledtext-file": "ई फाइल संस्करणके जांचल चिन्हित करी",
        "previousdiff": "← पुरान सम्पादन",
        "nextdiff": "नव सम्पादन →",
        "mediawarning": "'''चेतौनी''': ई संचिका प्रकार विषाणु कूटशब्द युक्त रहि सकैए।\nएकरा प्रयोग केलापर अहाँक तंत्रकेँ किछु समझौता करऽ पड़ि सकै छै।",
-       "imagemaxsize": "à¤\9aितà¥\8dर à¤\86à¤\95ारà¤\95 à¤¸à¥\80मा:<br />''(सà¤\82à¤\9aिà¤\95ा à¤µà¤°à¥\8dणन à¤ªà¤¨à¥\8dना à¤²à¥\87ल)''",
+       "imagemaxsize": "सà¤\82à¤\9aिà¤\95ा à¤µà¤°à¥\8dणन à¤ªà¤¨à¥\8dना à¤²à¥\87ल à¤\9aितà¥\8dर à¤\86à¤\95ारà¤\95 à¤¸à¥\80मा:",
        "thumbsize": "संकुचितचित्र आकार:",
        "widthheight": "$1 × $2",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|पन्ना|पन्ना सभ}}",
        "confirmrecreate": "प्रयोगकर्ता [[User:$1|$1]] ([[User talk:$1|वार्ता]]) अहाँक कारण सहित सम्पादनक बाद ई पन्नाके मेटाए देलक:\n: ''$2''\nकृपा कऽ अहाँ सुनिश्चित करी जे अहाँ ई पन्नाक फेरसँ बनबऽ चाहै छी।",
        "confirmrecreate-noreason": "प्रयोक्ता [[User:$1|$1]] ([[User talk:$1|वार्ता]]) अहाँक सम्पादनक बाद ऐ पन्नाकेँ मेटा देलक| कृपा कऽ अहाँ सुनिश्चित करू जे अहाँ ऐ पन्नाकेँ फेरसँ बनबऽ चाहै छी।",
        "recreate": "फेर सँ बनाबी",
+       "confirm-purge-title": "पृष्ठ ताजा करू",
        "confirm_purge_button": "ठीक अछि",
        "confirm-purge-top": "ऐ पन्नाक उपस्मृति खतम कऽ दिअ?",
        "confirm-purge-bottom": "कोनो पन्नाक सफाइ उपस्मृतिकेँ खतम करैए आ अद्यतन संशोधनकेँ अएबाले जोर दैए।",
        "confirm-unwatch-top": "ऐ पन्नाकेँ हमर साकांक्ष सूचीसँ हटाउ",
        "confirm-rollback-button": "ठीक अछि",
        "confirm-rollback-top": "ई पृष्ठ सम्पादन पूर्ववत करी?",
+       "confirm-mcrrestore-title": "संशोधन सभकेँ घुराउ",
+       "confirm-mcrundo-title": "परिवर्तन पुरान स्थिति पर आनी",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← पहिलुका पृष्ठ",
        "imgmultipagenext": "अगुलका पृष्ठ →",
        "tags-deactivate": "निष्क्रिय करी",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनसभ}}",
        "tags-manage-no-permission": "अहाँकेँ पन्ना घसकेबाक अधिकार नै अछि।",
-       "tags-manage-blocked": "अहाँ प्रतिबन्धित रहैत समय ट्यागमे कोनो जोडए या हटाबैक कार्य नै करि सकैत छी।",
+       "tags-manage-blocked": "अहाँक {{GENDER:$1|you}} प्रतिबन्धित रहैत समय ट्यागमे कोनो जोडए या हटाबैक कार्य नै करि सकैत छी।",
        "tags-create-heading": "एकटा नयाँ विकि-समूह बनाबु",
        "tags-create-explanation": "पुनः निर्धारित रूप से, नवनिर्मित टैग प्रयोगकर्तासभ आर बॉट के लेल हाजीर राहत।",
        "tags-create-tag-name": "चेन्हक नाम:",
        "compare-title-not-exists": "जे शीर्षक अहाँ कहलौं से अछिये नै।",
        "compare-revision-not-exists": "जे संशोधन अहाँ कहलौं से अछिये नै।",
        "diff-form": "अन्तर",
+       "diff-form-oldid": "पुरना संशोधन (वैकल्पिक)",
+       "diff-form-submit": "(कोनो अंतर नै)",
        "permanentlink": "स्थायी लिङ्क",
        "permanentlink-revid": "संशोधन",
        "permanentlink-submit": "संशोधन में जाउ",
        "htmlform-date-placeholder": "YYYY-MM-DD",
        "htmlform-time-placeholder": "HH:MM:SS",
        "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
-       "htmlform-title-not-exists": "अस्तित्व में नहि अछि",
+       "htmlform-title-not-exists": "$1 अस्तित्व में नै अछि",
+       "htmlform-user-not-exists": "'''$1''' नै अछि।",
+       "htmlform-user-not-valid": "<strong>$1</strong> मान्य सदस्य नाम नै अछि।",
        "logentry-delete-delete": "$1 पृष्ठ $3 {{GENDER:$2|मेटौलक}}",
        "logentry-delete-restore": "$1 {{GENDER:$2|restored}} page $3",
+       "logentry-delete-restore-nocount": "$1 {{GENDER:$2|दबाएल}} page $3",
+       "restore-count-revisions": "{{PLURAL:$1|1 revision|$1 revisions}} घुराएल",
+       "restore-count-files": "{{PLURAL:$1|1 संचिका|$1 संचिका सभ}} आनल",
        "logentry-delete-event": "$1द्वारा $3 पृष्ठक लौग {{PLURAL:$5|प्रविष्टि|प्रविष्टिसभ}}क दृश्यता {{GENDER:$2|परिवर्तित केलक}}: $4",
        "logentry-delete-revision": "$1 द्वारा $3 पृष्ठक {{PLURAL:$5|एक अवतरण|$5 अवतरणसभ}}क दृश्यता {{GENDER:$2|परिवर्तित}}: $4",
        "logentry-delete-event-legacy": "$1द्वारा $3 पृष्ठ पर लौग क्रियासभक दृश्यता {{GENDER:$2|परिवर्तित केलक}}",
        "logentry-newusers-byemail": "$1 द्वारा प्रयोक्ता खाता $3 {{GENDER:$2|बनाओल}} गेल आ कूटशब्द ई-पत्र द्वारा भेजल गेल",
        "logentry-newusers-autocreate": "खाता $1 छल {{GENDER:$2|बनाएल}} स्वतः",
        "logentry-upload-upload": "$1 {{GENDER:$2|ए}} $3 अपलोड केलक",
+       "logentry-managetags-create": "$1 {{GENDER:$2 बनाएल}} टैग $4",
        "log-name-tag": "ट्याग लौग",
        "rightsnone": "(कोनो नै)",
+       "rightslogentry-temporary-group": "$1 (अस्थाई, $2 तक)",
        "feedback-adding": "पन्ना उपर प्रतिक्रिया जोडु ...",
        "feedback-back": "पाछां",
        "feedback-bugcheck": "बहुत निक! जांच करु कि [ $1 known bugs] पहिले स त नै अछि ।",
        "feedback-bugnew": "हम जाँच केलौ। एक नव बग रिपोर्ट करी",
        "feedback-cancel": "रद्द करी",
        "feedback-close": "भ गेल",
+       "feedback-external-bug-report-button": "तकनीकी काम क जोड़",
+       "feedback-dialog-title": "प्रतिपुष्टि पठाबी",
        "feedback-error1": "त्रुटि: नै पहचानल गेल परिणाम एपीआईसँ",
        "feedback-error2": "त्रुटि: संपादन विफल भेल",
        "feedback-error3": "त्रुटि:एपीआईसँग कोनो प्रतिक्रिया नै",
+       "feedback-error4": "त्रुटि: दिएल गलहा प्रतिपुष्टि शीर्षक नै जाेडल गेल",
        "feedback-message": "सन्देश:",
        "feedback-subject": "विषय:",
        "feedback-submit": "दिअ",
        "duration-days": "$1 {{PLURAL:$1|दिन}} पहिने",
        "duration-weeks": "{{PLURAL:$1|सप्ताह|सप्ताहसभ}}",
        "duration-years": "{{PLURAL:$1|वर्ष|वर्षमे}}",
+       "limitreport-cputime": "सी०पी०यू० समय क प्रयोग",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|सॅकेंड|सॅकेंडसभ}}",
+       "limitreport-walltime": "रियल टाइम प्रयोग",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|सॅकेंड|सॅकेंडसभ}}",
+       "limitreport-ppgeneratednodes": "प्रिप्रोसेसर द्वारा जारी नोड क गिनती",
+       "limitreport-postexpandincludesize": "विस्तार उपरांत विकिपाठ आकार",
+       "limitreport-postexpandincludesize-value": "$1 {{PLURAL:$1|बाइट|बाइट्स}}",
+       "limitreport-templateargumentsize": "ढाचा प्राचल आकार",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|बाइट|बाइट्स}}",
+       "limitreport-expansiondepth": "उच्चतम विस्तार गहराई",
+       "limitreport-unstrip-size-value": "$1/$2 {{PLURAL:$2|बाइट|बाइट्स}}",
+       "expandtemplates": "ढाचा विस्तार",
+       "expand_templates_input": "विकिपाठ्य इनपुट करू:",
        "expand_templates_output": "परिणाम",
        "expand_templates_xml_output": "XML आउटपुट",
        "expand_templates_ok": "ठीक अछि",
        "pagelang-language": "भाषा",
        "pagelang-use-default": "डिफल्ट भाषा प्रयोग करी",
        "pagelang-select-lang": "भाषा चुनु",
+       "pagelang-reason": "कारण",
        "pagelang-submit": "भेजी",
+       "pagelang-nonexistent-page": "$1 पृष्ठ अस्तित्वमे नै अछि।",
        "right-pagelang": "पृष्ठ भाषा परिवर्तन करी",
        "action-pagelang": "पृष्ठ भाषा परिवर्तन करी",
        "log-name-pagelang": "भाषा परिवर्तन लग",
        "log-description-pagelang": "ई पृष्ठ भाषासभमे परिवर्तनक लग छी।",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|बदलि देल गेल}} पृष्ठ भाषा $3 क लेल $4 सँ $5।",
        "mediastatistics": "मिडिया तथ्याङ्क",
+       "mediastatistics-table-mimetype": "माइम प्रकार",
+       "mediastatistics-table-extensions": "सम्भवतः विस्तार",
+       "mediastatistics-table-count": "फाइल सभके संख्या",
+       "mediastatistics-table-totalbytes": "संयुक्त साइज़",
+       "mediastatistics-header-unknown": "अज्ञात",
+       "mediastatistics-header-bitmap": "बिटमैप चित्र",
+       "mediastatistics-header-drawing": "चित्र (वेक्टर चित्रसभ)",
+       "mediastatistics-header-audio": "ऑडियो",
+       "mediastatistics-header-video": "भिडियो",
+       "mediastatistics-header-office": "ऑफ़िस",
+       "mediastatistics-header-text": "पाठ",
+       "mediastatistics-header-executable": "निष्पादनसभ",
+       "mediastatistics-header-archive": "संकुचित प्रारूप",
+       "mediastatistics-header-total": "सभ फ़िल्टर",
+       "json-error-syntax": "सिन्टॅक्स त्रुटि",
        "special-characters-group-latin": "ल्याटिन",
        "special-characters-group-latinextended": "ल्याटिन विस्तारित",
        "special-characters-group-ipa": "आइपीए",
        "special-characters-title-endash": "एन डैश",
        "special-characters-title-emdash": "एम डैश",
        "special-characters-title-minus": "ऋण चिह्न",
+       "mw-widgets-abandonedit-discard": "सम्पादन रद्द करू",
+       "mw-widgets-abandonedit-keep": "सम्पादन जारी राखु",
+       "mw-widgets-abandonedit-title": "निश्चित ?",
+       "mw-widgets-dateinput-no-date": "कियो नै चुनाएल",
+       "mw-widgets-mediasearch-input-placeholder": "मीडिया खाेजु",
+       "mw-widgets-mediasearch-noresults": "कोनाे परिणाम नै मिलल",
+       "mw-widgets-titleinput-description-new-page": "पृष्ठ मौजूद नै अछि",
+       "mw-widgets-titleinput-description-redirect": "अनुप्रेषित $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "श्रेणी जोड़",
+       "mw-widgets-usersmultiselect-placeholder": "और जोड़ु",
+       "mw-widgets-titlesmultiselect-placeholder": "और जोड़ु",
+       "date-range-from": "दिन से (शुरू):",
+       "date-range-to": "दिन तक (समाप्त):",
+       "sessionprovider-generic": "$1 सत्र",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "कुकी-आधारित सत्र",
        "randomrootpage": "अविशिष्ट मूल पृष्ठ",
        "log-action-filter-block": "प्रतिबन्धक प्रकार:",
        "log-action-filter-delete": "मेटबैक प्रकार:",
        "log-action-filter-patrol": "परीक्षणक प्रकार:",
        "log-action-filter-protect": "सुरक्षाक प्रकार:",
        "log-action-filter-rights": "अधिकार परिवर्तनक प्रकार:",
+       "log-action-filter-suppress": "दमन क प्रकार:",
+       "log-action-filter-upload": "अपलोड क प्रकार:",
        "log-action-filter-all": "सभटा",
        "log-action-filter-block-block": "अवरोध",
        "log-action-filter-block-reblock": "अवरोध परिवर्तन",
        "log-action-filter-block-unblock": "अवरोधरहित",
-       "log-action-filter-contentmodel-change": "सामग्रीक नमूना परिवर्तन"
+       "log-action-filter-contentmodel-change": "सामग्रीक नमूना परिवर्तन",
+       "log-action-filter-delete-delete": "पृष्ठ हटाबी",
+       "log-action-filter-delete-delete_redir": "पुननिर्देशित ओभरराइट",
+       "log-action-filter-delete-event": "पृष्ठ हटाबी",
+       "log-action-filter-delete-revision": "खाली मेटाएल",
+       "log-action-filter-import-interwiki": "अंतरविकि आयात",
+       "log-action-filter-managetags-create": "प्रयोक्ता रचना लग",
+       "log-action-filter-managetags-delete": "टैग हटाबी",
+       "log-action-filter-managetags-activate": "टैग सक्रियण",
+       "log-action-filter-managetags-deactivate": "टैग निष्क्रियकरण",
+       "log-action-filter-newusers-create": "अज्ञात सदस्य द्वारा निर्मित",
+       "log-action-filter-newusers-autocreate": "स्वचालित निर्माण",
+       "log-action-filter-patrol-patrol": "सदस्य द्वारा पुनरीक्षण",
+       "log-action-filter-patrol-autopatrol": "स्वतः पुनरीक्षण",
+       "log-action-filter-protect-protect": "सुरक्षा",
+       "log-action-filter-protect-modify": "सुरक्षा परिवर्तन",
+       "log-action-filter-protect-unprotect": "असुरक्षा",
+       "log-action-filter-protect-move_prot": "पन्ना संरक्षण",
+       "log-action-filter-rights-rights": "मैनुअल परिवर्तन",
+       "log-action-filter-rights-autopromote": "स्वतः परिवर्तन",
+       "log-action-filter-suppress-event": "लॉग अवरोध",
+       "log-action-filter-suppress-revision": "संशोधन अवरोध",
+       "log-action-filter-suppress-delete": "पृष्ठ अवरोध",
+       "log-action-filter-upload-upload": "नया अपलोड",
+       "log-action-filter-upload-overwrite": "फैनसे अपलोड",
+       "authmanager-create-disabled": "लेखा निर्माण अशक्त कएल",
+       "authmanager-authplugin-setpass-bad-domain": "अमान्य जालस्थल।",
+       "authmanager-userdoesnotexist": "प्रयोक्ता खाता \"$1\" पंजीकृत नै अछि।",
+       "authmanager-email-label": "इमेल",
+       "authmanager-email-help": "ई-पत्र ठेगान:",
+       "authmanager-realname-label": "असली नाम",
+       "authmanager-provider-temporarypassword": "तात्कालिक कूटशब्द:",
+       "authprovider-resetpass-skip-label": "छाेड",
+       "authform-newtoken": "टोकन नै अछि । $1",
+       "authform-notoken": "टोकन नै अछि",
+       "authform-wrongtoken": "गलत टोकन",
+       "specialpage-securitylevel-not-allowed-title": "अनुमति नै अछि",
+       "authpage-cannot-create": "खाता निर्माण में अक्षम छि।",
+       "cannotauth-not-allowed-title": "अनुमति नै मिलली।",
+       "changecredentials": "साख बदल",
+       "changecredentials-submit": "साख बदल",
+       "removecredentials": "परिचय निकाल",
+       "removecredentials-submit": "परिचय निकाल",
+       "credentialsform-provider": "परिचय प्रकार :",
+       "credentialsform-account": "खाता क नाम:",
+       "linkaccounts": "जाेडल खातासभ",
+       "linkaccounts-success-text": "खाता जाेडल गेल।",
+       "linkaccounts-submit": "जाेडल खातासभ",
+       "unlinkaccounts": "खाता सभ जोडू",
+       "unlinkaccounts-success": "खाता अलग करल गेल।",
+       "restrictionsfield-badip": "अमान्य अनिकेत क्षेत्र: $1",
+       "restrictionsfield-label": "अनुमत आईपी सीमा:",
+       "edit-error-short": "त्रुटि: $1",
+       "edit-error-long": "त्रुटि:\n\n$1",
+       "revid": "संशोधन $1",
+       "pageid": "पेज आईडी $1",
+       "gotointerwiki": "आहा {{SITENAME}} स बाहार जायछि",
+       "gotointerwiki-invalid": "देल शीर्षक अमान्य अछि।",
+       "pagedata-title": "पृष्ठ डाटा",
+       "pagedata-bad-title": "अवैध शीर्षक: $1.",
+       "passwordpolicies-group": "समूह",
+       "passwordpolicies-policies": "राजनीति",
+       "passwordpolicies-policy-minimalpasswordlength": "कूटशब्द कमसँ कम {{PLURAL:$1|1 वर्ण|$1 वर्णक}} हुअए।"
 }
index 29e3222..2260132 100644 (file)
        "createacct-reason": "Причина",
        "createacct-reason-ph": "Зошто правите друга сметка",
        "createacct-reason-help": "Порака што се прикажува во дневникот на создадени сметки",
-       "createacct-submit": "Направи ја",
+       "createacct-submit": "Направи ја сметката",
        "createacct-another-submit": "Создај сметка",
        "createacct-continue-submit": "Продолжи со создавањето на сметката",
        "createacct-another-continue-submit": "Продолжи со создавањето на сметката",
        "blockedtitle": "Корисникот е блокиран",
        "blocked-email-user": "<strong><strong>На вашето корисничко име му е забрането да праќа е-пошта. Можете сепак да уредувате други страници на ова вики.</strong> Сите поединости за забраната ќе ги најдете во [[Special:MyContributions|придонесите на сметката]].\n\nЗабраната ја дал $1.\n\nНаведената причина гласи <em>$2</em>.\n\n* Почеток на забраната: $8\n* Истек на забраната: $6\n* Предвиден забраненик: $7\n* Назнака на забраната #$5",
        "blockedtext-partial": "<strong>На вашето корисничко или IP-адреса му е забрането да прави измени на страницава. Можете сепак да уредувате други страници на ова вики.</strong> Сите поединости за забраната ќе ги најдете во [[Special:MyContributions|придонесите на сметката]].\n\nЗабраната ја дал $1.\n\nНаведената причина гласи <em>$2</em>.\n\n* Почеток на забраната: $8\n* Истек на забраната: $6\n* Предвиден забраненик: $7\n* Назнака на забраната #$5",
-       "blockedtext": "<strong>Вашето корисничко име или IP-адреса е блокирано.</strong>\n\nБлокирањето е направено од страна на $1.\nДаденото образложение е ''$2''.\n\n* Почеток на блокирањето: $8\n* Истекување на блокирањето: $6\n* Корисникот што требало да биде блокиран: $7\n\nМоже да контактирате со $1 или некој друг [[{{MediaWiki:Grouppage-sysop}}|администратор]] за да разговарате во врска со блокирањето.\nМожете да ја искористите можноста „{{int:emailuser}}“ ако е назначена важечка е-поштенска адреса во [[Special:Preferences|вашите нагодувања]] и не ви е забрането да ја користите.\nВашата сегашна IP-адреса е $3, а назнака на блокирањето гласи #$5.\nВе молиме наведете ги сите подробности прикажани погоре, во вашата евентуална реакција.",
-       "autoblockedtext": "Ð\92аÑ\88аÑ\82а IP-адÑ\80еÑ\81а Ðµ Ð°Ð²Ñ\82омаÑ\82Ñ\81ки Ð±Ð»Ð¾ÐºÐ¸Ñ\80ана Ð±Ð¸Ð´ÐµÑ\98Ñ\9cи Ð±Ð¸Ð»Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82ена Ð¾Ð´ Ñ\81Ñ\82Ñ\80ана Ð½Ð° Ð´Ñ\80Ñ\83г ÐºÐ¾Ñ\80иÑ\81ник, ÐºÐ¾Ñ\98 Ð±Ð¸Ð» Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан Ð¾Ð´ $1.\nÐ\94аденоÑ\82о Ð¾Ð±Ñ\80азложение Ðµ Ñ\81ледново:\n\n:<em>$2</em>\n\n* Ð\9fоÑ\87еÑ\82ок Ð½Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aеÑ\82о: $8\n* Ð\98Ñ\81Ñ\82екÑ\83ваÑ\9aе Ð½Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aеÑ\82о: $6\n* Ð¡Ð¾ Ð½Ð°Ð¼ÐµÑ\80а Ð´Ð° Ñ\81е Ð±Ð»Ð¾ÐºÐ¸Ñ\80а: $7\n\nÐ\9cоже Ð´Ð° ÐºÐ¾Ð½Ñ\82акÑ\82иÑ\80аÑ\82е Ñ\81о $1 Ð¸Ð»Ð¸ Ð½ÐµÐºÐ¾Ñ\98 Ð´Ñ\80Ñ\83г [[{{MediaWiki:Grouppage-sysop}}|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80]] Ð·Ð° Ð´Ð° Ñ\80азговаÑ\80аÑ\82е Ð²Ð¾ Ð²Ñ\80Ñ\81ка Ñ\81о Ð¾Ð²Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aе.\n\nÐ\98маÑ\98Ñ\82е Ð¿Ñ\80едвид Ð´ÐµÐºÐ° Ð¼Ð¾Ð¶ÐµÐ±Ð¸ Ð½ÐµÐ¼Ð° Ð´Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\98а Ð¸Ñ\81коÑ\80иÑ\81Ñ\82иÑ\82е Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82а â\80\9e{{int:emailuser}}â\80\9c Ð´Ð¾ÐºÐ¾Ð»ÐºÑ\83 Ð½Ðµ Ðµ Ð½Ð°Ð·Ð½Ð°Ñ\87ена Ð²Ð°Ð¶ÐµÑ\87ка Ðµ-поÑ\88Ñ\82енÑ\81ка Ð°Ð´Ñ\80еÑ\81а Ð²Ð¾ [[Special:Preferences|ваÑ\88иÑ\82е Ð½Ð°Ð³Ð¾Ð´Ñ\83ваÑ\9aа]] Ð¸ Ð²Ð¸ Ðµ Ð·Ð°Ð±Ñ\80анеÑ\82о ÐºÐ¾Ñ\80иÑ\81Ñ\82иÑ\82еÑ\9aе Ð½Ð° Ð¸Ñ\81Ñ\82аÑ\82а.\n\nÐ\92аÑ\88аÑ\82а IP-адÑ\80еÑ\81а Ðµ $3, a ID Ð½Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aеto е $5.\nВе молиме наведете ги овие подробности доколку реагирате на блокирањето.",
+       "blockedtext": "<strong>Вашето корисничко име или IP-адреса е блокирано.</strong>\n\nБлокирањето е направено од страна на $1.\nДаденото образложение е <em>$2</em>.\n\n* Почеток на блокирањето: $8\n* Истекување на блокирањето: $6\n* Корисникот што требало да биде блокиран: $7\n\nМоже да контактирате со $1 или некој друг [[{{MediaWiki:Grouppage-sysop}}|администратор]] за да разговарате во врска со блокирањето.\nМожете да ја искористите можноста „{{int:emailuser}}“ ако е назначена важечка е-поштенска адреса во [[Special:Preferences|вашите нагодувања]] и не ви е забрането да ја користите.\nВашата сегашна IP-адреса е $3, а назнака на блокирањето гласи #$5.\nВе молиме наведете ги сите подробности прикажани погоре, во вашата евентуална реакција.",
+       "autoblockedtext": "Ð\92аÑ\88аÑ\82а IP-адÑ\80еÑ\81а Ðµ Ð°Ð²Ñ\82омаÑ\82Ñ\81ки Ð±Ð»Ð¾ÐºÐ¸Ñ\80ана Ð±Ð¸Ð´ÐµÑ\98Ñ\9cи Ð±Ð¸Ð»Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82ена Ð¾Ð´ Ñ\81Ñ\82Ñ\80ана Ð½Ð° Ð´Ñ\80Ñ\83г ÐºÐ¾Ñ\80иÑ\81ник, ÐºÐ¾Ñ\98 Ð±Ð¸Ð» Ð±Ð»Ð¾ÐºÐ¸Ñ\80ан Ð¾Ð´ $1.\nÐ\94аденоÑ\82о Ð¾Ð±Ñ\80азложение Ðµ Ñ\81ледново:\n\n:<em>$2</em>\n\n* Ð\9fоÑ\87еÑ\82ок Ð½Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aеÑ\82о: $8\n* Ð\98Ñ\81Ñ\82екÑ\83ваÑ\9aе Ð½Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aеÑ\82о: $6\n* Ð¡Ð¾ Ð½Ð°Ð¼ÐµÑ\80а Ð´Ð° Ñ\81е Ð±Ð»Ð¾ÐºÐ¸Ñ\80а: $7\n\nÐ\9cоже Ð´Ð° ÐºÐ¾Ð½Ñ\82акÑ\82иÑ\80аÑ\82е Ñ\81о $1 Ð¸Ð»Ð¸ Ð½ÐµÐºÐ¾Ñ\98 Ð´Ñ\80Ñ\83г [[{{MediaWiki:Grouppage-sysop}}|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80]] Ð·Ð° Ð´Ð° Ñ\80азговаÑ\80аÑ\82е Ð²Ð¾ Ð²Ñ\80Ñ\81ка Ñ\81о Ð¾Ð²Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aе.\n\nÐ\98маÑ\98Ñ\82е Ð¿Ñ\80едвид Ð´ÐµÐºÐ° Ð¼Ð¾Ð¶ÐµÐ±Ð¸ Ð½ÐµÐ¼Ð° Ð´Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\98а Ð¸Ñ\81коÑ\80иÑ\81Ñ\82иÑ\82е Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82а â\80\9e{{int:emailuser}}â\80\9c Ð´Ð¾ÐºÐ¾Ð»ÐºÑ\83 Ð½Ðµ Ðµ Ð½Ð°Ð·Ð½Ð°Ñ\87ена Ð²Ð°Ð¶ÐµÑ\87ка Ðµ-поÑ\88Ñ\82енÑ\81ка Ð°Ð´Ñ\80еÑ\81а Ð²Ð¾ [[Special:Preferences|ваÑ\88иÑ\82е Ð½Ð°Ð³Ð¾Ð´Ñ\83ваÑ\9aа]] Ð¸ Ð²Ð¸ Ðµ Ð·Ð°Ð±Ñ\80анеÑ\82о ÐºÐ¾Ñ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Ð¸Ñ\81Ñ\82аÑ\82а.\n\nÐ\92аÑ\88аÑ\82а IP-адÑ\80еÑ\81а Ðµ $3, a Ð½Ð°Ð·Ð½Ð°ÐºÐ° Ð½Ð° Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aеÑ\82o е $5.\nВе молиме наведете ги овие подробности доколку реагирате на блокирањето.",
        "systemblockedtext": "Вашето корисничко име или IP-адреса е автоматски блокирано од МедијаВики.\nПонудена причина:\n\n:<em>$2</em>\n\n* Почеток на блокот: $8\n* Истек на блокот: $6\n* Блокот е наменет за: $7\n\nВашата тековна IP-адреса гласи $3.\nПрепишете ги сите горенаведени поединости доколку сакате да се распрашате кај надлежните во врска со блокот.",
        "blockednoreason": "не е наведена причина",
        "whitelistedittext": "Мора да сте $1 за да уредувате страници.",
        "protectedpagewarning": "'''Предупредување:  Оваа страница е заклучена, така што само корисници со администраторски привилегии можат да ја уредуваат.'''\nЗа ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
        "semiprotectedpagewarning": "<strong>Предупредување:</strong> Оваа страница е заштитена, така што може да ја уредуваат само автопотврдени корисници.'''\nЗа ваша информација, подолу е прикажана последната ставка во дневникот на измени:",
        "cascadeprotectedwarning": "<strong>Предупредување:</strong> Оваа страница е заклучена, така што можат да ја уредуваат само корисници со [[Special:ListGroupRights|извесни права]], бидејќи е вклучена во {{PLURAL:$1|следнава „преносно-заштитена“ страница|следниве „преносно-заштитени“ страници}}:",
-       "titleprotectedwarning": "'''Предупредување:'''  Оваа страница е заклучена, така што се потребни [[Special:ListGroupRights|посебни права]] за да се создаде.''''\nЗа ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
+       "titleprotectedwarning": "<strong>Предупредување: Оваа страница е заштитена, така што се потребни [[Special:ListGroupRights|посебни права]] за да се создаде.</strong>\nЗа ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
        "templatesused": "{{PLURAL:$1|Шаблон|Шаблони}} на страницава:",
        "templatesusedpreview": "{{PLURAL:$1|Шаблон|Шаблони}} на прегледуваната страница:",
        "templatesusedsection": "{{PLURAL:$1|Шаблон|Шаблони}} во прегледуваниот поднаслов:",
        "undo-nochange": "Се чини дека измената (уредувањето) е веќе вратена.",
        "undo-summary": "Откажано уредувањето $1 на уредникот [[Special:Contribs/$2|$2]] ([[User talk:$2|разговор]])",
        "undo-summary-username-hidden": "Поништи ја преработката $1 на скриен корисник",
-       "cantcreateaccount-text": "Создавањето на корисничка сметка од оваа IP-адреса ('''$1''') е блокирано од страна на [[User:$3|$3]].\n\nОбразложението дадено од страна на $3 е ''$2''",
+       "cantcreateaccount-text": "Создавањето на корисничка сметка од оваа IP-адреса (<strong>$1</strong>) е блокирано од страна на [[User:$3|$3]].\n\nОбразложението дадено од страна на $3 е <em>$2</em>",
        "cantcreateaccount-range-text": "Создавањето на сметки од IP-адреси во опсегот <strong>$1</strong> каде спаѓа вашата IP-адреса (<strong>$4</strong>) е блокирано од корисникот [[User:$3|$3]].\n\n$3 ја наведе следнава причина: <em>$2</em>",
        "viewpagelogs": "Преглед на дневници за оваа страница",
        "nohistory": "Страницата нема историја на уредување.",
        "rcfilters-watchlist-edit-watchlist-button": "Уреди набљудувани",
        "rcfilters-watchlist-showupdated": "Промени во страниците што ги немате посетено откако се случиле се <strong>задебелени</strong>.",
        "rcfilters-preference-label": "Користи посредник без JavaScript",
-       "rcfilters-preference-help": "Ги вчитува скорешните промени без филтри или можност за истакнување.",
+       "rcfilters-preference-help": "Ги вчитува скорешните промени без филтерско пребарување или можност за истакнување.",
        "rcfilters-watchlist-preference-label": "Користи посредник без JavaScript",
-       "rcfilters-watchlist-preference-help": "Ги вчитува набљудуваните без филтри или можност за истакнување.",
+       "rcfilters-watchlist-preference-help": "Ги вчитува набљудуваните без филтерско пребарување или можност за истакнување.",
        "rcfilters-filter-showlinkedfrom-label": "Прикажи промени во страници кои водат од",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Страници кон кои води</strong> избраната страница",
        "rcfilters-filter-showlinkedto-label": "Прикажи промени во страници кои водат кон",
index 4096af6..de78a5f 100644 (file)
        "returnto": "$1 ꯗꯥ ꯍꯟꯂꯨ",
        "tagline": "{{SITENAME}} ꯗꯒꯤ",
        "help": "ꯃꯇꯦꯡ",
+       "help-mediawiki": "ꯃꯦꯗꯤꯌꯥꯋꯤꯀꯤ ꯃꯇꯥꯡꯗ ꯃꯇꯦꯡ",
        "search": "ꯊꯤꯕꯥ",
        "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# Headings that will be ignored by search.\n# Changes to this take effect as soon as the page with the heading is indexed.\n# You can force page reindexing by doing a null edit.\n# The syntax is as follows:\n#   * Everything from a \"#\" character to the end of the line is a comment.\n#   * Every non-blank line is the exact title to ignore, case and everything.\nꯂꯧꯔꯛꯐꯝꯁꯤꯡ\nꯃꯄꯥꯟꯒꯥ ꯁꯝꯅꯕꯁꯤꯡ\nꯁꯤꯖꯨ ꯌꯦꯡꯉꯨ\n #</pre> <!-- leave this line exactly as it is -->",
        "searchbutton": "ꯊꯤꯕꯥ",
        "ns-specialprotected": "ꯑꯈꯟꯅꯕꯥ ꯂꯥꯃꯥꯏꯅꯤ ꯁꯦꯝꯗꯣꯛꯄꯥ ꯌꯥꯗꯦ",
        "titleprotected": "ꯃꯁꯤꯒꯤ ꯃꯃꯤꯡ ꯁꯤ ꯉꯥꯛꯊꯣꯛꯂꯦ ꯁꯥꯒꯠꯂꯛꯄꯗꯥ [[User:$1|$1]].\nThe reason given is <em>$2</em>.",
        "filereadonlyerror": "Unable to modify the file \"$1\" because the file repository \"$2\" is in read-only mode.\n\nThe system administrator who locked it offered this explanation: \"$3\".",
+       "invalidtitle": "ꯃꯃꯤꯡꯁꯤ ꯂꯩꯇꯦ",
        "invalidtitle-knownnamespace": "Invalid title with namespace \"$2\" and text \"$3\"",
        "invalidtitle-unknownnamespace": "Invalid title with unknown namespace number $1 and text \"$2\"",
        "exception-nologin": "ꯂꯦꯒ ꯏꯟ ꯇꯧꯗꯦ",
        "postedit-confirmation-published": "ꯅꯪꯒꯤ ꯁꯦꯝꯒꯠꯄꯗꯨ ꯐꯣꯡꯗꯣꯛꯈꯔꯦ ꯫",
        "edit-already-exists": "ꯃꯔꯤꯒꯤ ꯂꯃꯥꯏ ꯑꯁꯤ ꯁꯦꯝꯕ ꯌꯥꯔꯥꯔꯣꯏ ꯍꯥꯅꯗꯒꯤ ꯂꯩꯔꯦ ꯫",
        "defaultmessagetext": "ꯄꯥꯎꯖꯦꯜ ꯋꯥꯍꯩ ꯋꯥꯇꯥ ꯑꯃꯥ ꯍꯦꯛꯇꯥ",
+       "slot-name-main": "ꯃꯔꯨꯑꯣꯏꯕ",
        "content-model-wikitext": "ꯋꯤꯀꯤ ꯋꯥꯍꯩ ꯋꯥꯇꯥ",
+       "content-model-text": "ꯑꯆꯝꯕ ꯋꯥꯍꯩ ꯋꯥꯇꯥ",
        "content-model-javascript": "ꯖꯥꯕꯥ ꯃꯌꯦꯛ",
        "content-json-empty-object": "ꯑꯍꯥꯡꯕꯥ ꯄꯣꯠꯁꯛ",
        "viewpagelogs": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤꯒꯤ ꯅꯧꯅ ꯆꯪꯉꯨ",
+       "currentrev": "ꯈꯨꯋꯥꯏꯗꯒꯤ ꯅꯧꯅꯥ ꯑꯃꯨꯛ ꯌꯦꯡꯕꯥ",
        "currentrev-asof": "$1 ꯒꯤ ꯅꯧꯅꯥ ꯑꯃꯨꯛꯍꯟꯅꯥ ꯌꯦꯡꯕꯥ ꯃꯤꯠꯌꯦꯡ",
        "revisionasof": " $1 ꯒꯤ ꯑꯃꯨꯛ ꯍꯟꯅ ꯌꯦꯡꯕ",
        "revision-info": " $1 ꯒꯤ ꯑꯃꯨꯛꯌꯦꯡꯕ {{GENDER:$6|$2}}$7 ꯅꯥ",
        "revdelete-show-file-submit": "ꯍꯣꯏ",
        "revdelete-radio-set": "ꯑꯔꯣꯠꯄ",
        "revdelete-radio-unset": "ꯎꯍꯟꯕ",
+       "revdelete-log": "ꯃꯔꯝ:",
        "pagehist": "ꯂꯃꯥꯏꯒꯤ ꯄꯨꯋꯥꯔꯤ",
        "deletedhist": "ꯀꯛꯊꯠꯈꯤꯕꯒꯤ ꯄꯨꯋꯥꯔꯤ",
        "revdelete-reasonotherlist": "ꯑꯇꯩ ꯃꯔꯝ",
        "mergehistory-from": "ꯂꯃꯥꯏ ꯑꯣꯏꯔꯛꯐꯝ:",
        "mergehistory-into": "ꯂꯃꯥꯏꯒꯤ ꯄꯟꯊꯨꯪꯐꯝ:",
        "mergehistory-list": "ꯄꯎꯋꯥꯔꯤ ꯁꯦꯝꯒꯠꯄꯗꯨ ꯑꯃꯁꯨ ꯑꯃꯁꯨ ꯆꯪꯍꯟꯕ",
+       "mergehistory-fail-invalid-source": "ꯂꯧꯔꯛꯐꯝ ꯂꯃꯥꯏꯁꯤ ꯂꯩꯇꯦ ꯫",
+       "mergehistory-fail-invalid-dest": "ꯂꯝꯊꯨꯡꯐꯝ ꯂꯃꯥꯏꯁꯤ ꯂꯩꯇꯦ ꯫",
        "mergehistory-reason": "ꯃꯔꯝ:",
        "mergelog": "ꯂꯣꯒ ꯄꯨꯟꯁꯤꯟꯕ",
        "history-title": "Revision history of \"$1\"",
        "searchresults-title": "Search results for \"$1\"",
        "prevn": "ꯍꯥꯟꯅꯒꯤ {{PLURAL:$1|$1}}",
        "nextn": "ꯃꯥꯊꯪ{{PLURAL:$1|$1}}",
+       "prev-page": "ꯃꯃꯥꯡꯒꯤ ꯂꯃꯥꯏ",
+       "next-page": "ꯃꯊꯪ ꯂꯃꯥꯏ",
        "prevn-title": "ꯃꯃꯥꯡꯒꯤ $1 {{PLURAL:$1|result|results}}",
        "nextn-title": "ꯃꯊꯪ $1 {{PLURAL:$1|ꯐꯣꯜ|ꯐꯣꯜꯁꯤꯡ}}",
        "shown-title": "ꯎꯠꯂꯨ $1 {{PLURAL:$1|result|results}} ꯂꯃꯥꯏ ꯑꯃꯝ ꯑꯃꯝꯒꯤ ꯑꯣꯏꯅꯥ",
        "searchprofile-everything-tooltip": "ꯃꯁꯤꯗ ꯌꯥꯎꯔꯤꯕꯁꯤ ꯂꯣꯏꯅ ꯊꯤꯌꯨ(ꯉꯥꯡꯐꯝ ꯂꯃꯥꯏꯁꯤꯡ ꯌꯥꯎꯅꯥ)",
        "searchprofile-advanced-tooltip": "ꯀꯁꯇꯝꯒꯤ ꯃꯤꯡ ꯏꯕꯝ ꯗꯒꯤ ꯊꯤꯌꯨ",
        "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 words}})",
+       "search-result-category-size": "{{PLURAL:$1|1 ꯈꯣꯡꯕꯨ|$1 ꯈꯣꯡꯕꯨꯁꯤꯡ}} ({{PLURAL:$2|1 ꯃꯆꯥꯈꯥꯏꯕ ꯃꯆꯥ|$2 ꯃꯆꯥꯈꯥꯏꯕ ꯃꯆꯥꯁꯤꯡ}}, {{PLURAL:$3|1 ꯐꯥꯏꯜ|$3 ꯐꯥꯏꯜꯁꯤꯡ}})",
        "search-redirect": "($1 ꯗꯒꯤ ꯔꯤꯗꯥꯏꯔꯦꯛ)",
        "search-section": "(section $1)",
+       "search-category": "(ꯃꯆꯥꯈꯥꯏꯕ $1)",
        "search-file-match": "(ꯐꯥꯏꯜ ꯒꯤ ꯌꯥꯎꯕꯁꯤ ꯆꯥꯟꯅꯔꯦ)",
        "search-suggest": "$1 ꯁꯤꯔꯥ ꯅꯪꯅꯥ ꯍꯥꯏꯅꯤꯡꯂꯤꯕꯥꯁꯤ",
+       "search-interwiki-more": "(ꯋꯥꯠꯂꯤ)",
        "search-interwiki-more-results": "ꯑꯍꯦꯟꯕ ꯐꯣꯜ ꯁꯤꯡ",
        "search-relatedarticle": "ꯃꯔꯤꯂꯩꯅꯔꯦ",
        "searchrelated": "ꯃꯔꯤꯂꯩꯅꯔꯦ",
        "searchall": "ꯄꯨꯂꯞ",
        "search-showingresults": "{{PLURAL:$4|Result <strong>$1</strong> of <strong>$3</strong>|Results <strong>$1 – $2</strong> of <strong>$3</strong>}}",
        "search-nonefound": "ꯃꯁꯤꯒꯤ ꯐꯣꯜꯁꯤꯒꯥ ꯆꯥꯟꯅꯕꯥ ꯂꯩꯇꯦ",
+       "powersearch-legend": "ꯈꯨꯃꯥꯡ ꯆꯥꯎꯁꯤꯟꯅ ꯊꯤꯕꯥ",
        "powersearch-togglelabel": "ꯑꯁꯣꯏ ꯑꯔꯥꯟ ꯌꯥꯎꯕꯔ ꯌꯦꯡꯕ:",
        "powersearch-toggleall": "ꯄꯨꯂꯞ",
        "powersearch-togglenone": "ꯌꯥꯎꯗꯦ",
        "yourrealname": "ꯑꯁꯦꯡꯕ ꯃꯃꯤꯡ:",
        "yourlanguage": "ꯂꯣꯟ:",
        "yournick": "ꯑꯅꯧꯕ ꯈꯨꯠꯌꯦꯛ:",
+       "gender-male": "ꯅꯨꯄꯥ ꯑꯗꯨꯅꯥ ꯋꯤꯀꯤ ꯂꯃꯥꯏꯁꯤꯡ ꯁꯦꯝꯒꯠꯂꯤ",
+       "gender-female": "ꯅꯨꯄꯤ ꯑꯗꯨꯅꯥ ꯋꯤꯀꯤ ꯂꯃꯥꯏꯁꯤꯡ ꯁꯦꯝꯒꯠꯂꯤ",
+       "email": "ꯏꯃꯦꯜ",
+       "prefs-help-email-required": "ꯏꯃꯦꯜ ꯑꯦꯗ꯭ꯔꯦꯁ ꯆꯪꯒꯅꯤ ꯫",
        "prefs-signature": "ꯈꯨꯠꯌꯦꯛ",
+       "prefs-dateformat": "ꯆꯩꯆꯠ ꯃꯑꯣꯡ",
+       "prefs-editor": "ꯏꯈꯠꯂꯤꯕ",
+       "prefs-preview": "ꯃꯃꯥꯡꯒꯤꯗꯨ ꯎꯠꯄ",
+       "prefs-advancedrc": "ꯈꯨꯃꯥꯡꯆꯥꯎꯁꯤꯟꯂꯕ ꯈꯟꯐꯝ",
+       "prefs-advancedrendering": "ꯈꯨꯃꯥꯡꯆꯥꯎꯁꯤꯟꯂꯕ ꯈꯟꯐꯝ",
+       "prefs-advancedsearchoptions": "ꯈꯨꯃꯥꯡꯆꯥꯎꯁꯤꯟꯂꯕ ꯈꯟꯐꯝ",
+       "prefs-advancedwatchlist": "ꯈꯨꯃꯥꯡꯆꯥꯎꯁꯤꯟꯂꯕ ꯈꯟꯐꯝ",
+       "prefs-displayrc": "ꯈꯟꯐꯝꯁꯤꯡ ꯎꯠꯄ",
+       "prefs-displaywatchlist": "ꯈꯟꯐꯝꯁꯤꯡ ꯎꯠꯄ",
+       "prefs-changesrc": "ꯑꯍꯣꯡꯕꯁꯤꯡ ꯎꯠꯂꯛꯄ",
+       "prefs-changeswatchlist": "ꯑꯍꯣꯡꯕꯁꯤꯡ ꯎꯠꯂꯛꯄ",
+       "prefs-pageswatchlist": "ꯌꯦꯡꯂꯤꯕ ꯂꯃꯥꯏꯁꯤꯡ",
+       "prefs-tokenwatchlist": "ꯌꯥꯅꯕ ꯆꯦ",
+       "prefs-diffs": "ꯈꯦꯠ",
+       "userrights": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯃꯤꯑꯣꯏ ꯍꯛꯁꯤꯡ",
+       "userrights-reason": "ꯃꯔꯝ:",
+       "userrights-expiry": "ꯃꯇꯝ ꯍꯦꯟꯂꯕ:",
+       "userrights-expiry-othertime": "ꯃꯇꯝ ꯑꯇꯦ:",
        "group": "ꯀꯥꯡꯕꯨ:",
        "group-user": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯁꯤꯡ",
        "group-bot": "ꯔꯣꯕꯣꯠꯁꯤꯡ",
        "group-sysop": "ꯆꯨꯞꯂꯤ ꯄꯥꯏꯔꯤꯕꯁꯤꯡ",
+       "group-all": "(ꯄꯨꯂꯞ)",
        "group-user-member": "{{GENDER:$1|ꯁꯤꯖꯤꯟꯅꯔꯤꯕ}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|ꯁꯈꯪꯂꯕ ꯁꯤꯖꯤꯟꯅꯔꯤꯕ}}",
+       "group-bot-member": "{{GENDER:$1|ꯔꯣꯕꯣꯠ}}",
+       "group-sysop-member": "{{GENDER:$1|ꯆꯨꯞꯂꯤ ꯄꯥꯏꯔꯤꯕ}}",
+       "group-interface-admin-member": "{{GENDER:$1|interface ꯆꯨꯞꯂꯤꯄꯥꯏꯔꯤꯕ}}",
+       "group-bureaucrat-member": "{{GENDER:$1|ꯐꯝ ꯑꯆꯧꯕ}}",
+       "group-suppress-member": "{{GENDER:$1|ꯅꯝꯊꯅꯕ ꯃꯤꯑꯣꯏꯁꯤꯡ}}",
        "grouppage-user": "{{ns:project}}:ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯁꯤꯡ",
+       "grouppage-autoconfirmed": "{{ns:project}}:ꯁꯈꯪꯂꯕ ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯁꯤꯡ",
        "grouppage-bot": "{{ns:project}}:ꯕꯣꯠꯁꯤꯡ",
        "grouppage-sysop": "{{ns:project}}:ꯆꯨꯞꯂꯤ ꯄꯥꯏꯔꯤꯕꯁꯤꯡ",
+       "grouppage-interface-admin": "{{ns:project}}:Interface ꯆꯨꯞꯂꯤ ꯄꯥꯏꯔꯤꯕꯁꯤꯡ",
+       "grouppage-bureaucrat": "{{ns:project}}:ꯐꯝ ꯑꯆꯧꯕꯁꯤꯡ",
+       "grouppage-suppress": "{{ns:project}}:ꯅꯝꯊꯕ",
+       "right-read": "ꯂꯃꯥꯏꯁꯤꯡ ꯄꯥꯕꯥ",
        "right-edit": "ꯂꯃꯥꯏꯁꯤꯡ ꯁꯦꯝꯒꯠꯄ",
        "right-writeapi": "API sijinaduna eba",
        "newuserlogpage": "ꯁꯤꯖꯤꯅꯅꯔꯤꯕ creation log",
index c5972e6..b2c1a4e 100644 (file)
        "badretype": "तुम्ही टाकलेले परवलीचे शब्द जुळत नाहीत.",
        "usernameinprogress": "या सदस्यनावाचे खाते तयार करण्याचे काम प्रगतीपथावर आहे. कृपया थांबा.",
        "userexists": "तुम्ही टाकलेले सदस्यनाम पूर्वीच वापरात आहे.\nकृपया वेगळे सदस्यनाम निवडा.",
-       "loginerror": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87शात चूक झाली आहे",
+       "loginerror": "तà¥\81मà¥\8dहà¥\80 à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयात चूक झाली आहे",
        "createacct-error": "खाते तयार करण्यात चुकी",
        "createaccounterror": "हे खाते तयार करता येऊ शकले नाही:$1",
        "nocookiesnew": "सदस्य खाते तयार झाले ,पण तुम्ही सनोंद-प्रवेशित(लॉग्डईन) नाहीत.{{SITENAME}} सदस्यांना सनोंद-प्रवेश देतांना त्यांचे स्मृतिशेष (कुकिज) वापरते.तुम्ही स्मृतिशेष सुविधा अनुपलब्ध ठेवली आहे.ती कृपया उपलब्ध करा,आणि नंतर तुमच्या नवीन सदस्य नावाने आणि परवलीने दाखल व्हा.",
        "nosuchuser": "\"$1\" या नावाचा कोणताही सदस्य नाही.तुमचे शुद्धलेखन तपासा, किंवा [[Special:CreateAccount|नवीन खाते]] तयार करा.",
        "nosuchusershort": "\"$1\" या नावाचा सदस्य नाही. लिहीताना आपली चूक तर नाही ना झाली?",
        "nouserspecified": "तुम्हाला सदस्यनाव नमूद करावे लागेल.",
-       "login-userblocked": "हा à¤¸à¤¦à¤¸à¥\8dय â\80\99पà¥\8dरतिबà¤\82धितâ\80\99 à¤\86हà¥\87. à¤¤à¥\8dयास à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शाची परवानगी नाही.",
+       "login-userblocked": "हा à¤¸à¤¦à¤¸à¥\8dय â\80\99पà¥\8dरतिबà¤\82धितâ\80\99 à¤\86हà¥\87. à¤¤à¥\8dयाला à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयाची परवानगी नाही.",
        "wrongpassword": "सदस्यनाव अथवा परवलीचा शब्द चुकीचा टाकण्यात आला आहे. पुन्हा एकदा प्रयत्न करा.",
        "wrongpasswordempty": "परवलीचा शब्द कोरा आहे; पुन्हा प्रयत्न करा.",
        "passwordtooshort": "तुमच्या परवलीच्या शब्दात किमान {{PLURAL:$1|१ अक्षर |$1 अक्षरे}} हवे/हवीत.",
        "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|चर्चा]]) चे सदस्यखाते तयार करण्यात आले आहे.",
        "createaccount-title": "{{SITENAME}} साठी खाते तयार करणे",
        "createaccount-text": "तुमचा विपत्र पत्ता घेउन {{SITENAME}} ($4)वर \"$2\" नावाच्या कोण्या एकाने \"$3\" परवलीने खाते उघडले आहे. कृपया आपण सनोंद-प्रवेश करून आपला परवलीचा शब्द बदलावा.\n\nजर ही खातेनोंदणी चुकिने झाली असेल तर, तुम्ही या संदेशाकडे दुर्लक्ष करू शकता.",
-       "login-throttled": "तà¥\81मà¥\8dहà¥\80 à¤¨à¥\81à¤\95तà¥\87à¤\9a à¤¸à¤¨à¥\8bà¤\82द- à¤ªà¥\8dरवà¥\87शासाठी अनेकानेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
+       "login-throttled": "तà¥\81मà¥\8dहà¥\80 à¤¨à¥\81à¤\95तà¥\87à¤\9a à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयासाठी अनेकानेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
        "login-abort-generic": "तुमचा प्रवेश अयशस्वी होऊन रद्द झाला.",
        "login-migrated-generic": "आपल्या खात्याचे स्थलांतर झाले आहे,या विकिवर आपले सदस्यनाव आता यापुढे अस्तित्वात राहणार नाही.",
        "loginlanguagelabel": "भाषा: $1",
        "createacct-another-realname-tip": "आपले खरे नाव टाकणे वैकल्पिक आहे.\nजर आपण ते द्यायचे ठरविले तर,ते आपल्या कामाचा मूळ स्रोत म्णून देण्यास वापरले जाईल.",
        "pt-login": "सनोंद-प्रवेश करा",
        "pt-login-button": "सनोंद-प्रवेश करा",
-       "pt-login-continue-button": "लà¥\89à¤\97िन à¤¸à¥\81रà¥\82 ठेवा",
+       "pt-login-continue-button": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤¤à¤¶à¥\80à¤\9a ठेवा",
        "pt-createaccount": "खाते बनवा",
        "pt-userlogout": "सनोंद-निर्गम",
        "php-mail-error-unknown": "पीएचपीच्या विपत्र() पर्यायात अज्ञात चूक",
        "retypenew": "पुन्हा एकदा परवलीचा शब्द टंका:",
        "resetpass_submit": "परवलीचा शब्द टाका आणि सनोंद-प्रवेश करा",
        "changepassword-success": "तुमचा परवलीचा शब्द बदललेला आहे!",
-       "changepassword-throttled": "तà¥\81मà¥\8dहà¥\80 à¤¨à¥\81à¤\95तà¥\87à¤\9a à¤¸à¤¨à¥\8bà¤\82द- à¤ªà¥\8dरवà¥\87शासाठी अनेकानेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
+       "changepassword-throttled": "तà¥\81मà¥\8dहà¥\80 à¤¨à¥\81à¤\95तà¥\87à¤\9a à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयासाठी अनेकानेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
        "botpasswords": "सांगकाम्याचे परवलीचे शब्द",
        "botpasswords-summary": "<em>सांगकाम्याचे परवलीचे शब्द</em>हे त्या खात्याची मुख्य सनोंद-प्रवेश अधिकारपत्रे न वापरता, एपीआय मार्फत, सदस्य खात्याच्या प्रवेशास पोहोच देतात.सांगकाम्याचा परवलीचा शब्द वापरुन सनोंद प्रवेश केलेल्यांचे उपलब्ध सदस्य अधिकार प्रतिबंधित असू शकतात.\n\nजर आपणास कळत नसेल आपण हे कां करीत आहोत,तर आपण ते बहुतेक करावयास नको.कोणीही आपणास असे कधीही सांगु नये कि यापैकी एखादे उत्पादित करा व त्यांना द्या.",
        "botpasswords-disabled": "सांगकाम्यांचे परवलीचे शब्द अक्षम केले आहेत.",
        "botpasswords-deleted-body": "{{GENDER:$2|सदस्य}} \"$2\" साठी,\"$1\" या सांगकाम्याच्या नावाचा परवलीचा शब्द वगळला.",
        "botpasswords-newpassword": "<strong>$1</strong>द्वारे सनोंद प्रवेशास नविन परवलीचा शब्द <strong>$2</strong>आहे. <em>कृपया याची भविष्यातील संदर्भासाठी नोंद ठेवा.</em>(जून्या सांगकाम्यांसाठी, ज्यांचेसाठी सदस्यनाम हे मूळ सदस्यनावच असणे आवश्यक आहे, आपण  <strong>$3</strong> हे सदस्यनाम म्हणून व <strong>$4</strong> हा परवलीचा शब्द म्हणून वापरू शकता.)",
        "botpasswords-no-provider": "सांगकाम्यापरवलीशब्दसत्रपुरवठादार उपलब्ध नाही.",
-       "botpasswords-restriction-failed": "साà¤\82à¤\97à¤\95ामà¥\8dया à¤ªà¤°à¤µà¤²à¥\80à¤\9aà¥\8dया à¤¶à¤¬à¥\8dदावर à¤\85सलà¥\87लà¥\87 à¤ªà¥\8dरतिबà¤\82ध à¤¯à¤¾ à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शास à¤\85à¤\9fà¤\95ाव à¤\95रà¥\80त आहेत.",
+       "botpasswords-restriction-failed": "साà¤\82à¤\97à¤\95ामà¥\8dया à¤ªà¤°à¤µà¤²à¥\80à¤\9aà¥\8dया à¤¶à¤¬à¥\8dदावर à¤\85सलà¥\87लà¥\87 à¤ªà¥\8dरतिबà¤\82ध à¤¯à¤¾ à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयास à¤¥à¤¾à¤\82बवित आहेत.",
        "botpasswords-invalid-name": "नमूद केलेल्या सदस्यनावात सांगकाम्याचा परवलीचा शब्द-विभाजक (\"$1\") नाही.",
        "botpasswords-not-exist": "सदस्य \"$1\" चा \"$2\" नावाचा सांगकाम्या परवलीचा शब्द नाही.",
+       "botpasswords-locked": "तुम्ही तुमच्या सांगकाम्या खात्यावरून आल्याची नोंद करू शकत नाही, हे खाते बंद केले गेले आहे.",
        "resetpass_forbidden": "परवलीचे शब्द बदलता येत नाहीत.",
        "resetpass_forbidden-reason": "परवलीचे शब्द बदलता येऊ शकत नाहीत:$1",
        "resetpass-no-info": "या पानामध्ये थेट जाण्यासाठी तुम्हास  सनोंद-प्रवेशित असावयास हवे.",
        "changeemail-none": "(काहीही नाही)",
        "changeemail-password": "तुमचा {{SITENAME}} परवलीचा शब्द:",
        "changeemail-submit": "ईमेल बदला",
-       "changeemail-throttled": "तà¥\81मà¥\8dहà¥\80 à¤¨à¥\81à¤\95तà¥\87à¤\9a à¤¸à¤¨à¥\8bà¤\82द- à¤ªà¥\8dरवà¥\87शासाठà¥\80 à¤\85नेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
+       "changeemail-throttled": "तà¥\81मà¥\8dहà¥\80 à¤¨à¥\81à¤\95तà¥\87à¤\9a à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\8dयासाठà¥\80 à¤\85नà¥\87à¤\95ानेक प्रयत्न केले आहेत.\nकृपया, पुन्हा प्रयत्न करण्याआधी $1 थोडी उसंत घ्या.",
        "changeemail-nochange": "कृपया  वेगळा नविन विपत्रपत्ता टाका.",
        "resettokens": "ओळखचिन्ह (टोकन) पुनर्स्थापित करा",
        "resettokens-text": "येथे आपल्या खात्यात असलेला व्यक्तिगत मजकूरापर्यंत पोचण्यासाठी आपण ओळखचिन्ह(टोकन) पुनर्स्थापित करू शकता.\nआपण जर तो अपघाताने कोणासमवेत सहभागीला असेल किंवा आपले खात्याची आपण तडजोड केली असल्यास, हे करावयास हवे.",
        "confirmedittext": "तुम्ही संपादने करण्यापूर्वी तुमचा विपत्र पत्ता प्रमाणित करणे आवश्यक आहे. तुमचा विपत्र पत्ता तुमच्या [[Special:Preferences|सदस्य पसंती]]तून लिहा व सिद्ध करा.",
        "nosuchsectiontitle": "असा विभाग नाही.",
        "nosuchsectiontext": "तुम्ही अस्तिवात नसलेला विभाग संपादन करण्याचा प्रयत्न केला आहे.हे पान आपण बघत असतांना तो हलविल्या किंवा वगळल्या गेला आहे.",
-       "loginreqtitle": "सनà¥\8bà¤\82द-पà¥\8dरवà¥\87श आवश्यक आहे",
+       "loginreqtitle": "à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95रणà¥\87 आवश्यक आहे",
        "loginreqlink": "\nसनोंद-प्रवेश करा",
        "loginreqpagetext": "तुम्ही इतर पाने पहाण्याकरिता $1 केलेच पाहिजे.",
        "accmailtitle": "परवलीचा शब्द पाठविण्यात आलेला आहे.",
        "prefs-displaywatchlist": "प्रदर्शन पर्याय",
        "prefs-tokenwatchlist": "ओळखचिन्ह",
        "prefs-diffs": "फरक",
-       "prefs-help-prefershttps": "हा à¤ªà¤¸à¤\82तà¥\80à¤\95à¥\8dरम à¤\86पलà¥\8dया à¤ªà¥\81ढà¥\80ल à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शानंतर कार्यान्वित होईल.",
+       "prefs-help-prefershttps": "हा à¤ªà¤¸à¤\82तà¥\80à¤\95à¥\8dरम à¤\86पलà¥\8dया à¤ªà¥\81ढà¥\80ल à¤\86लà¥\8dयाà¤\9aà¥\80 à¤¨à¥\8bà¤\82द à¤\95à¥\87लà¥\8dयानंतर कार्यान्वित होईल.",
        "prefswarning-warning": "आपण आपल्या पसंतीक्रमात केलेला बदल अद्याप जतन झाला नाही.जर आपण \"$1\" न टिचकता, या पानावरुन दुसरीकडे गेलात तर आपला पसंतीक्रम अद्यतन होणार नाही.",
        "prefs-tabs-navigation-hint": "उपयुक्त सूचना:आपण कळींच्या यादीत, कळींदरम्यानच्या सुचालनास डावी व उजवी बाण-कळ वापरु शकता.",
        "userrights": "सदस्य अधिकार",
index 53fc271..fe4c4ae 100644 (file)
        "prefs-advancedwatchlist": "Opcions avançadas",
        "prefs-displayrc": "Opcions d'afichatge",
        "prefs-displaywatchlist": "Opcions d'afichatge",
+       "prefs-changesrc": "cambiaments mostrats",
+       "prefs-changeswatchlist": "Cambiaments mostrats",
+       "prefs-pageswatchlist": "Paginas seguidas",
        "prefs-tokenwatchlist": "Geton",
        "prefs-diffs": "Diferéncias",
        "prefs-help-prefershttps": "Aquesta preferéncia serà efectiva al moment de vòstra connexion que ven.",
        "group-autoconfirmed": "Utilizaires enregistrats",
        "group-bot": "Bòts",
        "group-sysop": "Administrators",
+       "group-interface-admin": "Administrators de l'interfàcia",
        "group-bureaucrat": "Burocratas",
        "group-suppress": "Limitadors",
        "group-all": "(totes)",
        "group-autoconfirmed-member": "Utilizaire enregistrat",
        "group-bot-member": "Robòt",
        "group-sysop-member": "Administrator",
+       "group-interface-admin-member": "{{GENDER:$1|interfàcia d'administracion}}",
        "group-bureaucrat-member": "Burocrata",
        "group-suppress-member": "{{GENDER:$1|limitador|limitatritz}}",
        "grouppage-user": "{{ns:project}}:Utilizaires",
        "grouppage-autoconfirmed": "{{ns:project}}:Utilizaires enregistrats",
        "grouppage-bot": "{{ns:project}}:Bòts",
        "grouppage-sysop": "{{ns:project}}:Administrators",
+       "grouppage-interface-admin": "{{ns:project}}:Administrators de l'interfàcia",
        "grouppage-bureaucrat": "{{ns:project}}:Burocratas",
        "grouppage-suppress": "{{ns:project}}:Supressors",
        "right-read": "Legir las paginas",
        "right-editusercss": "Modificar los fichièrs CSS d'autres utilizaires",
        "right-edituserjson": "Modificar los fichièrs JSON dels autres utilizators",
        "right-edituserjs": "Modificar los fichièrs JS d'autres utilizaires",
+       "right-editsitecss": "Modificar lo CSS del siti",
+       "right-editsitejson": "Modificar lo JSON del siti",
+       "right-editsitejs": "Modificar lo Javascript del siti",
        "right-editmyusercss": "Modificar vòstres pròpris fichièrs CSS utilizaire",
        "right-editmyuserjson": "Modificar vòstres fichièrs JSON d'utilizator pròpris",
        "right-editmyuserjs": "Modificar vòstres pròpris fichièrs JavaScript utilizaire",
        "grant-createaccount": "Crear de comptes",
        "grant-createeditmovepage": "Crear, modificar e desplaçar de paginas",
        "grant-delete": "Suprimir paginas, revisions e dintradas de jornal",
-       "grant-editinterface": "Modificar l'espaci de noms de MediaWiki e lo CSS/JSON/Javascript",
+       "grant-editinterface": "Modificar l'espaci de noms de MediaWiki e  JSON del siti o de l'utilizaire",
        "grant-editmycssjs": "Modificar vòstre CSS/JSON/JavaScript utilizator",
        "grant-editmyoptions": "Modificar vòstras preferéncias d'utilizaire",
        "grant-editmywatchlist": "Modificar la vòstra lista de seguiment",
+       "grant-editsiteconfig": "Modificar lo CSS/JS del siti e de l'utilizaire",
        "grant-editpage": "Modificar de paginas existentas",
        "grant-editprotected": "Modificar de paginas protegidas",
        "grant-highvolume": "Modificacion de volum naut",
        "rcfilters-other-review-tools": "Autras aisinas de supervision",
        "rcfilters-group-results-by-page": "Agropar los resultats per pagina",
        "rcfilters-activefilters": "Filtres actius",
+       "rcfilters-activefilters-hide": "Amagar",
+       "rcfilters-activefilters-show": "Mostrar",
+       "rcfilters-activefilters-hide-tooltip": "Amagar l'airal de filtres actius",
+       "rcfilters-activefilters-show-tooltip": "Mòstrar l'airal de filtres actius",
        "rcfilters-advancedfilters": "Filtres avançats",
        "rcfilters-limit-title": "Resultats d'affichar",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|cambiament|cambiaments}}, $2",
+       "rcfilters-date-popup-title": "Periòde de temps per cercar",
        "rcfilters-days-title": "Darrièrs jorns",
        "rcfilters-hours-title": "Darrièras oras",
        "rcfilters-days-show-days": "($1 {{PLURAL:$1|jorn|jorns}})",
        "rcfilters-empty-filter": "I a pas cap de filtre actiu. Se mòstran totas las contribucions.",
        "rcfilters-filterlist-title": "Filtres",
        "rcfilters-filterlist-whatsthis": "Cossí fonciona aquò ?",
-       "rcfilters-filterlist-feedbacklink": "Digatz nos que pensatz d'aquestas aisinas (novelas) per filtrar",
+       "rcfilters-filterlist-feedbacklink": "Digatz nos que pensatz d'aquestas aisinas per filtrar",
        "rcfilters-highlightbutton-title": "Valorar los resultats",
        "rcfilters-highlightmenu-title": "Causir una color",
        "rcfilters-highlightmenu-help": "Causir una color per valorar aquesta proprietat",
        "rcfilters-view-tags-help-icon-tooltip": "Ne saber mai suls cambiaments marcats",
        "rcfilters-liveupdates-button": "Actualizacion en dirècte",
        "rcfilters-liveupdates-button-title-on": "Desactivar los cambiaments en dirècte",
+       "rcfilters-liveupdates-button-title-off": "Mostrar cambiaments novèls tanlèu se produson",
+       "rcfilters-watchlist-markseen-button": "Marcar totes los cambiaments coma vistes",
+       "rcfilters-watchlist-edit-watchlist-button": "Editar la vòstra lista de paginas seguidas",
+       "rcfilters-watchlist-showupdated": "Los cambiaments faches a las paginas qu'avètz pas visitat dempuèi que foguèron modificadas, son escrits en <strong>letras espessas</strong> amb un cercle plen davant.",
+       "rcfilters-preference-label": "Utilizar l'interfàcia non-Javascript",
+       "rcfilters-preference-help": "Cargar los cambiaments recents sens las foncions de filtratge o de mesa en valor.",
+       "rcfilters-watchlist-preference-label": "Utilizar l'interfàcia non-JavaScript",
+       "rcfilters-watchlist-preference-help": "Cargar la lista se seguiment sens las foncions de filtratge o de mesa en valor.",
+       "rcfilters-filter-showlinkedfrom-label": "Mostrar los cambiaments sus las paginas ligadas dempuèi",
+       "rcfilters-filter-showlinkedfrom-option-label": "<strong>Paginas ligadas a</strong> la pagina seleccionada",
+       "rcfilters-filter-showlinkedto-label": "Mostrar los cambiaments de las paginas ligadas a",
+       "rcfilters-filter-showlinkedto-option-label": "<strong>Paginas ligadas a</strong> la pagina seleccionada",
+       "rcfilters-target-page-placeholder": "Picatz lo nom d'una pagina (o d'una categoria)",
        "rcnotefrom": "Çaijós {{PLURAL:$5|la modificacion efectuada|las modificacions efectuadas}} dempuèi lo <strong>$3, $4</strong> (afichadas fins a <strong>$1</strong>).",
+       "rclistfromreset": "Tornar inicializar la seleccion de la data",
        "rclistfrom": "Afichar las modificacions novèlas dempuèi lo $3 $2",
        "rcshowhideminor": "$1 los cambiaments menors",
        "rcshowhideminor-show": "Afichar",
        "recentchangeslinked-page": "Nom de la pagina :",
        "recentchangeslinked-to": "Afichar los cambiaments cap a las paginas ligadas al luòc de la pagina donada",
        "recentchanges-page-added-to-category": "[[:$1]] apondut a la categoria",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] ajustat a la categoria, [[Special:WhatLinksHere/$1|aquela pagina es inclusa dins d'autras]]",
        "recentchanges-page-removed-from-category": "[[:$1]] suprimit de la categoria",
        "autochange-username": "Cambiament automatic de MediaWiki",
        "upload": "Importar un fichièr",
index 3fdf133..c888880 100644 (file)
        "rcfilters-watchlist-edit-watchlist-button": "Edytuj swoją listę obserwowanych stron",
        "rcfilters-watchlist-showupdated": "<strong>Wytłuszczono</strong> strony, których nie odwiedził{{GENDER:|e|a|e}}ś od czasu zapisania ostatnich zmian.",
        "rcfilters-preference-label": "Używaj interfejsu bez użycia JavaScriptu",
-       "rcfilters-preference-help": "Ładuje Ostatnie zmiany bez filtrów lub opcji podświetlania.",
+       "rcfilters-preference-help": "Ładuje Ostatnie zmiany bez filtrów wyszukiwania lub opcji podświetlania.",
        "rcfilters-watchlist-preference-label": "Używaj interfejsu bez użycia JavaScriptu",
-       "rcfilters-watchlist-preference-help": "Ładuje listę obserwowanych bez filtrów lub opcji podświetlania.",
+       "rcfilters-watchlist-preference-help": "Ładuje listę obserwowanych bez filtrów wyszukiwania lub opcji podświetlania.",
        "rcfilters-filter-showlinkedfrom-label": "Pokaż zmiany na stronach linkowanych z",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Strony linkowane z</strong> zaznaczonej strony",
        "rcfilters-filter-showlinkedto-label": "Pokaż zmiany na stronach linkujących do",
index e46430e..0680b30 100644 (file)
        "rcfilters-watchlist-edit-watchlist-button": "Editar lista de páginas vigiadas",
        "rcfilters-watchlist-showupdated": "As alterações nas páginas que você não visitou desde as mudanças ocorridas estão em <strong>negrito</strong>, com marcadores sólidos.",
        "rcfilters-preference-label": "Use a interface não JavaScript",
-       "rcfilters-preference-help": "Carrega RecentChanges sem filtros ou realce de funcionalidade.",
+       "rcfilters-preference-help": "Carrega as mudanças recentes sem filtros nem funcionalidade de realce.",
        "rcfilters-watchlist-preference-label": "Use a interface não JavaScript",
-       "rcfilters-watchlist-preference-help": "Carrega Páginas vigiadas sem filtros ou funcionalidade de destaque.",
+       "rcfilters-watchlist-preference-help": "Carrega a lista de páginas vigiadas sem filtros nem funcionalidade de realce.",
        "rcfilters-filter-showlinkedfrom-label": "Mostrar alterações nas páginas ligadas de",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Páginas ligadas da</strong> página selecionada",
        "rcfilters-filter-showlinkedto-label": "Mostrar alterações nas páginas que ligam para",
index afc4d65..0b39a24 100644 (file)
        "accmailtext": "Uma palavra-passe gerada aleatoriamente para [[User talk:$1|$1]] foi enviada para $2.\n\nEla pode ser alterada na página [[Special:ChangePassword|de alteração da palavra-passe]] depois de iniciar sessão.",
        "newarticle": "(Nova)",
        "newarticletext": "Seguiu uma hiperligação para uma página que ainda não existe.\nPara criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [$1 página de ajuda] para mais detalhes).\nSe chegou aqui por engano, clique o botão <strong>voltar</strong> do seu navegador.",
-       "anontalkpagetext": "----\n<em>Esta é a página de discussão de um utilizador anónimo que ainda não criou uma conta ou não a utiliza.</em>\nPor isso, temos de utilizar o endereço IP numérico para identificá-lo(a).\nUm mesmo endereço IP pode ser partilhado por vários utilizadores.\nSe é um utilizador anónimo e sente que lhe foram direcionados comentários irrelevantes, [[Special:CreateAccount|crie uma conta]] ou [[Special:UserLogin|inicie sessão]] para evitar futuras confusões com outros utilizadores anónimos.",
+       "anontalkpagetext": "----\n<em>Esta página de discussão é de um utilizador anónimo que ainda não criou uma conta ou que não a utiliza.</em>\nPor isso, temos de utilizar o endereço IP numérico para identificá-lo.\nUm mesmo endereço IP pode ser partilhado por vários utilizadores.\nSe é um utilizador anónimo e sente que lhe foram endereçados comentários irrelevantes, [[Special:CreateAccount|crie uma conta]] ou [[Special:UserLogin|inicie uma sessão]] para evitar futuras confusões com outros utilizadores anónimos.",
        "noarticletext": "Ainda não existe texto nesta página.\nPode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar registos relacionados]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} criar esta página]</span>.",
        "noarticletext-nopermission": "Ainda não existe texto nesta página.\nPode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas, ou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar registos relacionados]</span>, mas não tem permissão para criar esta página.",
        "missing-revision": "A revisão nº $1 da página \"{{FULLPAGENAME}}\" não existe.\n\nIsto normalmente ocorre ao seguir uma hiperligação de histórico desatualizada para uma página que foi eliminada.\nPode encontrar detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].",
        "move": "Mover",
        "movethispage": "Mover esta página",
        "unusedimagestext": "Os seguintes ficheiros existem mas não são usados em nenhuma página.\nNote que outros sítios na Internet podem ter hiperligações para um ficheiro através de um URL direto e, por isso, podem estar listados ficheiros que estão a ser ativamente usados por entidades externas.",
+       "unusedimagestext-categorizedimgisused": "Os seguintes ficheiros existem mas não foram incorporados em nenhuma página. Considera-se que as imagens categorizadas estão a ser usadas, mesmo que não tenham sido incorporadas em nenhuma página.\nNote que é possível que outros sítios da Internet tenham hiperligações para um ficheiro com um URL direto; esse ficheiro poderá aparecer nesta lista, apesar de estar em uso ativo.",
        "unusedcategoriestext": "As seguintes categorias existem, embora nenhuma página ou categoria faça uso delas.",
        "notargettitle": "Sem alvo",
        "notargettext": "Especifique sobre que página alvo ou utilizador pretende executar esta função.",
index 6b9fa15..f3635f2 100644 (file)
        "edit-gone-missing": "Used as error message.\n\nSee also:\n* {{msg-mw|edit-hook-aborted}}\n* {{msg-mw|edit-conflict}}\n* {{msg-mw|edit-no-change}}\n* {{msg-mw|edit-already-exists}}",
        "edit-conflict": "An 'Edit conflict' happens when more than one edit is being made to a page at the same time. This would usually be caused by separate individuals working on the same page. However, if the system is slow, several edits from one individual could back up and attempt to apply simultaneously - causing the conflict.\n\nSee also:\n* {{msg-mw|edit-hook-aborted}}\n* {{msg-mw|edit-gone-missing}}\n* {{msg-mw|edit-no-change}}\n* {{msg-mw|edit-already-exists}}",
        "edit-no-change": "Used as error message.\n\nSee also:\n* {{msg-mw|edit-hook-aborted}}\n* {{msg-mw|edit-gone-missing}}\n* {{msg-mw|edit-conflict}}\n* {{msg-mw|edit-already-exists}}",
-       "edit-slots-cannot-add": "An error message shown when trying to save an edit, if the edit tries to add a {{Identical|slot}} that is not allowed on the page.\n* $1 - the number of slots\n* $2 - the slots that were attempted to be added but are not allowed",
-       "edit-slots-cannot-remove": "An error message shown when trying to save an edit, if the edit tries to remove a {{Identical|slot}} that is required on the page.\n* $1 - the number of slots\n* $2 - the slots that were attempted to be removed but are required",
-       "edit-slots-missing": "An error message shown when trying to save an edit, if the edit is missing some required {{Identical|slot}}, which could not be inherited from a parent revision.\n* $1 - the number of slots\n* $2 - the slots that are required but missing from the new revision",
+       "edit-slots-cannot-add": "An error message shown when trying to save an edit, if the edit tries to add a slot that is not allowed on the page.\n* $1 - the number of slots\n* $2 - the slots that were attempted to be added but are not allowed",
+       "edit-slots-cannot-remove": "An error message shown when trying to save an edit, if the edit tries to remove a slot that is required on the page.\n* $1 - the number of slots\n* $2 - the slots that were attempted to be removed but are required",
+       "edit-slots-missing": "An error message shown when trying to save an edit, if the edit is missing some required slot, which could not be inherited from a parent revision.\n* $1 - the number of slots\n* $2 - the slots that are required but missing from the new revision",
        "postedit-confirmation-created": "{{gender}}\nShown after a user creates a new page. Parameters:\n* $1 - the current user, for GENDER support",
        "postedit-confirmation-restored": "{{gender}}\nShown after a user restores a page to a previous revision. Parameters:\n* $1 - the current user, for GENDER support",
        "postedit-confirmation-saved": "{{gender}}\nShown after a user saves a page. Parameters:\n* $1 - the current user, for GENDER support",
        "ipb-sitewide": "A type of block the user can select from on [[Special:Block]].",
        "ipb-partial": "A type of block the user can select from on [[Special:Block]].",
        "ipb-type-label": "The label of the type of editing restriction the admin would like to impose on [[Special:Block]].",
-       "ipb-pages-label": "The label for a autocomplete text field to specify pages to block a user from editing on [[Special:Block]].",
+       "ipb-pages-label": "The label for an autocomplete text field to specify pages to block a user from editing on [[Special:Block]].",
        "badipaddress": "An error message shown when one entered an invalid IP address in blocking page.",
        "blockipsuccesssub": "Used as page title in [[Special:Block]].\n\nThis message is the subject for the following message:\n* {{msg-mw|Blockipsuccesstext}}",
        "blockipsuccesstext": "Used in [[Special:Block]].\nThe title (subject) for this message is {{msg-mw|Blockipsuccesssub}}.\n\nParameters:\n* $1 - username, can be used for GENDER",
index 5270869..76cc91e 100644 (file)
                        "Michgrig",
                        "Force majeure",
                        "Infovarius",
-                       "Cronolio"
+                       "Cronolio",
+                       "Nk88"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
-       "tog-hideminor": "СкÑ\80Ñ\8bваÑ\82Ñ\8c Ð¼Ð°Ð»Ñ\8bе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð¸Ð· Ñ\81пиÑ\81ка Ñ\81вежиÑ\85 Ð¿Ñ\80авок",
+       "tog-hideminor": "СкÑ\80Ñ\8bваÑ\82Ñ\8c Ð¼Ð°Ð»Ñ\8bе Ð¿Ñ\80авки Ð¸Ð· Ð¿Ð¾Ñ\81ледниÑ\85 Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹",
        "tog-hidepatrolled": "Скрывать патрулированные правки в списке свежих правок",
        "tog-newpageshidepatrolled": "Скрывать отпатрулированные страницы в списке новых страниц",
        "tog-hidecategorization": "Скрывать категоризацию страниц",
        "tog-showhiddencats": "Показывать скрытые категории",
        "tog-norollbackdiff": "Не показывать разницу версий после выполнения отката",
        "tog-useeditwarning": "Предупреждать, когда я покидаю страницу с несохранёнными изменениями",
-       "tog-prefershttps": "Всегда использовать защищённое соединение",
+       "tog-prefershttps": "\nВсегда используйте безопасное соединение при входе в систему",
        "underline-always": "Всегда",
        "underline-never": "Никогда",
        "underline-default": "Использовать настройки браузера",
        "helppage-top-gethelp": "Помощь",
        "mainpage": "Заглавная страница",
        "mainpage-description": "Заглавная страница",
-       "policy-url": "Project:Правила",
+       "policy-url": "Project:Политика вики",
        "portal": "Портал сообщества",
        "portal-url": "Project:Портал сообщества",
        "privacy": "Политика конфиденциальности",
        "pagetitle": "$1 — {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
-       "retrievedfrom": "Ð\98Ñ\81Ñ\82оÑ\87ник â\80\94 $1",
+       "retrievedfrom": "Ð\9fолÑ\83Ñ\87ено Ð¾Ñ\82 \"$1\"",
        "youhavenewmessages": "{{PLURAL:$3|Вы получили}} $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы получили}} $1 от {{PLURAL:$3|$3 участника|$3 участников|1=другого участника}} ($2).",
        "youhavenewmessagesmanyusers": "Вы получили $1 от множества пользователей ($2).",
        "editsectionhint": "Редактировать раздел «$1»",
        "toc": "Содержание",
        "showtoc": "показать",
-       "hidetoc": "Ñ\83бÑ\80ать",
+       "hidetoc": "Ñ\81кÑ\80Ñ\8bть",
        "collapsible-collapse": "свернуть",
        "collapsible-expand": "развернуть",
        "confirmable-confirm": "{{GENDER:$1|Вы}} уверены?",
        "confirmable-yes": "Да",
-       "confirmable-no": "Ð\9dет",
+       "confirmable-no": "нет",
        "thisisdeleted": "Просмотреть или восстановить $1?",
        "viewdeleted": "Просмотреть $1?",
        "restorelink": "{{PLURAL:$1|$1 удалённую правку|$1 удалённые правки|$1 удалённых правок|1=удалённую правку}}",
        "sort-descending": "Упорядочить по убыванию",
        "sort-ascending": "Упорядочить по возрастанию",
        "nstab-main": "Статья",
-       "nstab-user": "{{GENDER:{{ROOTPAGENAME}}|Участник|Участница}}",
+       "nstab-user": "\nСтраница пользователя",
        "nstab-media": "Мультимедиа",
        "nstab-special": "Служебная страница",
        "nstab-project": "О проекте",
        "prefs-watchlist-managetokens": "Управление токенами",
        "prefs-misc": "Другие настройки",
        "prefs-resetpass": "Изменить пароль",
-       "prefs-changeemail": "изменить или удалить адрес электронной почты",
+       "prefs-changeemail": "Ð\98зменить или удалить адрес электронной почты",
        "prefs-setemail": "Установка адреса эл. почты",
        "prefs-email": "Параметры электронной почты",
        "prefs-rendering": "Внешний вид",
        "move": "Переименовать",
        "movethispage": "Переименовать эту страницу",
        "unusedimagestext": "Следующие файлы не используются ни на одной странице.\nПожалуйста, учтите, что другие веб-сайты могут непосредственно ссылаться на этот файл (его URL), таким образом он может использоваться несмотря на вхождение в этот список.",
+       "unusedimagestext-categorizedimgisused": "Следующие файлы существуют, но не включены ни в одну страницу. Категоризируемые изображения считаются используемыми, несмотря на то что не присутствуют ни в одной странице.\nОбратите внимание, что другие вебсайты могут ссылаться на файл по прямому URL-адресу, и они будут находиться несмотря на активное использование.",
        "unusedcategoriestext": "Существуют следующие страницы категорий, не содержащие статей или других категорий.",
        "notargettitle": "Не указана цель",
        "notargettext": "Вы не указали целевую страницу или участника для этого действия.",
        "autosumm-new": "Новая страница: «$1»",
        "autosumm-newblank": "Создана пустая страница",
        "size-bytes": "$1 {{PLURAL:$1|байт|байта|байт}}",
-       "size-kilobytes": "$1 Ð\9aÐ\91",
-       "size-megabytes": "$1 Ð\9cÐ\91",
-       "size-gigabytes": "$1 Ð\93Ð\91",
-       "size-terabytes": "$1 Ð¢Ð\91",
-       "size-petabytes": "$1 Ð\9fÐ\91",
-       "size-exabytes": "$1 Ð­Ð\91",
-       "size-zetabytes": "$1 Ð\97Ð\91",
-       "size-yottabytes": "$1 Ð\98Ð\91",
+       "size-kilobytes": "$1 Ð\9aб",
+       "size-megabytes": "$1 Ð\9cб",
+       "size-gigabytes": "$1 Ð\93б",
+       "size-terabytes": "$1 Ð¢Ð±",
+       "size-petabytes": "$1 Ð\9fб",
+       "size-exabytes": "$1 Ð­Ð±",
+       "size-zetabytes": "$1 Ð\97б",
+       "size-yottabytes": "$1 Ð\98б",
        "size-pixel": "$1 {{PLURAL:$1|пиксель|пикселя|пикселей}}",
+       "size-kilopixel": "$1 кпикс",
+       "size-megapixel": "$1 Мпикс",
+       "size-gigapixel": "$1 Гпикс",
+       "size-terapixel": "$1 Тпикс",
+       "size-petapixel": "$1 Ппикс",
+       "size-exapixel": "$1 Эпикс",
+       "size-zetapixel": "$1 Зпикс",
+       "size-yottapixel": "$1 Ипикс",
        "bitrate-bits": "$1 б/с",
        "bitrate-kilobits": "$1 Кб/с",
        "bitrate-megabits": "$1 Мб/с",
index bc4fb00..3e5e213 100644 (file)
        "accmailtext": "Naključno generirano geslo za [[User talk:$1|$1]] smo poslali na $2. Po prijavi ga lahko spremenite na strani za ''[[Special:ChangePassword|spremembo gesla]]''.",
        "newarticle": "(Nov)",
        "newarticletext": "Sledili ste povezavi na stran, ki še ne obstaja.\nDa bi stran ustvarili, vnesite v spodnji obrazec besedilo\n(za več informacij glej [$1 pomoč]).\nČe ste sem prišli po pomoti, v svojem brskalniku kliknite gumb ''Nazaj''.",
-       "anontalkpagetext": "----\n<em>To je pogovorna stran brezimnega uporabnika, ki si še ni ustvaril računa ali pa ga ne uporablja.</em>\nZaradi tega moramo uporabiti IP-naslov za njegovo/njeno ugotavljanje istovetnosti.\nTakšen IP-naslov si lahko deli več uporabnikov.\nČe ste brezimni uporabnik in menite, da so nepomembne pripombe namenjene vam, prosimo [[Special:CreateAccount|ustvarite račun]] ali pa se [[Special:UserLogin|vpišite]], da preprečite zmedo z drugimi nepodpisanimi uporabniki.",
+       "anontalkpagetext": "----\n<em>To je pogovorna stran brezimnega uporabnika, ki si še ni ustvaril računa ali pa ga ne uporablja.</em>\nZaradi tega moramo uporabiti IP-naslov za njihovo ugotavljanje istovetnosti.\nTakšen IP-naslov si lahko deli več uporabnikov.\nČe ste brezimni uporabnik in menite, da so nepomembne pripombe namenjene vam, prosimo [[Special:CreateAccount|ustvarite račun]] ali pa se [[Special:UserLogin|vpišite]], da preprečite zmedo z drugimi nepodpisanimi uporabniki.",
        "noarticletext": "Na tej strani ni trenutno nobenega besedila. Naslov strani lahko poskusite [[Special:Search/{{PAGENAME}}|poiskati]] na drugih straneh, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} v dnevniških zapisih] ali pa [{{fullurl:{{FULLPAGENAME}}|action=edit}} stran ustvarite]</span>.",
        "noarticletext-nopermission": "Na strani trenutno ni nobenega besedila.\nLahko poskusite [[Special:Search/{{PAGENAME}}|poiskati naslov strani]] na drugih straneh ali <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} v povezanih dnevniških zapisih]</span>, vendar za ustvarjanje strani nimate zadostnih dovoljenj.",
        "missing-revision": "Redakcija št. $1 strani »{{FULLPAGENAME}}« ne obstaja.\n\nPo navadi se to zgodi, ko sledite zastareli povezavi na zgodovino strani, ki jo je nekdo izbrisal.\nPodrobnosti lahko najdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dnevniku brisanja].",
        "rcfilters-watchlist-edit-watchlist-button": "Uredi svoj seznam nadzorovanih strani",
        "rcfilters-watchlist-showupdated": "Spremembe strani, ki jih niste obiskali od zadnje spremembe, so prikazane <strong>krepko</strong>, z močnimi oznakami.",
        "rcfilters-preference-label": "Uporabi vmesnik brez JavaScripta",
-       "rcfilters-preference-help": "Naloži Zadnje spremembe brez filtrov in možnosti obarvanja.",
+       "rcfilters-preference-help": "Naloži Zadnje spremembe brez iskalnih filtrov in možnosti obarvanja.",
        "rcfilters-watchlist-preference-label": "Uporabi vmesnik brez JavaScripta",
-       "rcfilters-watchlist-preference-help": "Naloži Spisek nadzorov brez filtrov in možnosti obarvanja.",
+       "rcfilters-watchlist-preference-help": "Naloži Spisek nadzorov brez iskalnih filtrov in možnosti obarvanja.",
        "rcfilters-filter-showlinkedfrom-label": "Pokaži spremembe na straneh, na katere se povezuje",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Strani, na katere kaže</strong> izbrana stran",
        "rcfilters-filter-showlinkedto-label": "Pokaži spremembe na straneh, ki kažejo na",
index 0333773..f037a93 100644 (file)
        "rcfilters-watchlist-edit-watchlist-button": "Уреди списак надгледаних страница",
        "rcfilters-watchlist-showupdated": "Промене на страницама које нисте посетили од када је измена извршена су <strong>подебљане</strong>, с испуњеним ознакама.",
        "rcfilters-preference-label": "Користи интерфејс без JavaScript-а",
-       "rcfilters-preference-help": "Учитава скорашње измене без филтера или функционалности истицања.",
+       "rcfilters-preference-help": "Учитава скорашње измене без претраге филтера или функционалности истицања.",
        "rcfilters-watchlist-preference-label": "Користи интерфејс без JavaScript-а",
-       "rcfilters-watchlist-preference-help": "Учитава списак надгледања без филтера или функционалности истицања.",
+       "rcfilters-watchlist-preference-help": "Учитава списак надгледања без претраге филтера или функционалности истицања.",
        "rcfilters-filter-showlinkedfrom-label": "Прикажи промене на страницама са којих долазе везе",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Странице са којих долазе везе до</strong> изабране странице",
        "rcfilters-filter-showlinkedto-label": "Прикажи промене на страницама ка којима воде везе",
index 425c05a..7520ac8 100644 (file)
@@ -30,7 +30,8 @@
                        "Aefgh39622",
                        "Fitoschido",
                        "TrisT7",
-                       "Patsagorn Y."
+                       "Patsagorn Y.",
+                       "Geonuch"
                ]
        },
        "tog-underline": "การขีดเส้นใต้ลิงก์:",
        "group-autoconfirmed": "ผู้ใช้ทั่วไป",
        "group-bot": "บอต",
        "group-sysop": "ผู้ดูแลระบบ",
-       "group-interface-admin": "ผู้ดูแลอินเตอร์เฟซ",
+       "group-interface-admin": "à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9aอิà¸\99à¹\80à¸\95อรà¹\8cà¹\80à¸\9fà¸\8b",
        "group-bureaucrat": "ผู้ดูแลระบบสิทธิแต่งตั้ง",
        "group-suppress": "ผู้ดูแลประวัติ",
        "group-all": "(ทั้งหมด)",
        "group-autoconfirmed-member": "{{GENDER:$1|ผู้ใช้ทั่วไป}}",
        "group-bot-member": "{{GENDER:$1|บอต}}",
        "group-sysop-member": "{{GENDER:$1|ผู้ดูแลระบบ}}",
-       "group-interface-admin-member": "{{GENDER:$1|ผู้ดูแลอินเตอร์เฟซ}}",
+       "group-interface-admin-member": "{{GENDER:$1|à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9aอิà¸\99à¹\80à¸\95อรà¹\8cà¹\80à¸\9fà¸\8b}}",
        "group-bureaucrat-member": "{{GENDER:$1|ผู้ดูแลระบบสิทธิแต่งตั้ง}}",
        "group-suppress-member": "{{GENDER:$1|ผู้ดูแลประวัติ}}",
        "grouppage-user": "{{ns:project}}:ผู้ใช้",
        "grouppage-autoconfirmed": "{{ns:project}}:ผู้ใช้ทั่วไป",
        "grouppage-bot": "{{ns:project}}:บอต",
        "grouppage-sysop": "{{ns:project}}:ผู้ดูแลระบบ",
-       "grouppage-interface-admin": "{{ns:project}}:ผู้ดูแลอินเตอร์เฟซ",
+       "grouppage-interface-admin": "{{ns:project}}:à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9aอิà¸\99à¹\80à¸\95อรà¹\8cà¹\80à¸\9fà¸\8b",
        "grouppage-bureaucrat": "{{ns:project}}:ผู้ดูแลระบบสิทธิแต่งตั้ง",
        "grouppage-suppress": "{{ns:project}}:ผู้ดูแลประวัติ",
        "right-read": "อ่านหน้า",
        "pageinfo-display-title": "แสดงผลชื่อเรื่อง",
        "pageinfo-default-sort": "ค่าปริยายของคำหลักในการเรียงลำดับ",
        "pageinfo-length": "ความยาวหน้า (ไบต์)",
+       "pageinfo-namespace": "เนมสเปซ",
        "pageinfo-article-id": "เลขหน้า",
        "pageinfo-language": "ภาษาของเนื้อหาของหน้า",
        "pageinfo-language-change": "เปลี่ยน",
        "duration-decades": "$1 ทศวรรษ",
        "duration-centuries": "$1 ศตวรรษ",
        "duration-millennia": "$1 สหัสวรรษ",
-       "limitreport-title": "à¸\82à¹\89อมูลà¸\9aัà¸\99à¸\97ึà¸\81à¸\95ัวà¹\81à¸\88à¸\87สà¹\88วà¸\99:",
+       "limitreport-title": "à¸\82à¹\89อมูลà¸\81ารà¸\9bระมวลà¸\9cลà¹\83à¸\99สà¹\88วà¸\99วิà¹\80à¸\84ราะหà¹\8cà¹\84วยาà¸\81รà¸\93à¹\8c:",
        "limitreport-cputime": "การใช้เวลาของซีพียู",
        "limitreport-cputime-value": "$1 วินาที",
        "limitreport-walltime": "การใช้เวลาจริง",
        "limitreport-walltime-value": "$1 วินาที",
-       "limitreport-ppvisitednodes": "à¸\88ำà¸\99วà¸\99à¸\9bมà¸\97ีà¹\88à¹\80à¸\82à¹\89าà¸\8aมà¹\81ลà¹\89วà¸\82อà¸\87à¸\95ัวà¸\9bระมวลà¸\81à¹\88อน",
-       "limitreport-ppgeneratednodes": "à¸\88ำà¸\99วà¸\99à¸\9bมà¸\97ีà¹\88สรà¹\89าà¸\87à¹\81ลà¹\89วà¸\82อà¸\87à¸\95ัวà¸\9bระมวลà¸\81à¹\88อน",
+       "limitreport-ppvisitednodes": "à¸\88ำà¸\99วà¸\99à¸\88ุà¸\94à¸\95à¹\88อà¸\97ีà¹\88à¹\80ยือà¸\99à¹\81ลà¹\89วà¸\82อà¸\87à¸\95ัวà¸\9bระมวลà¸\82ัà¹\89à¸\99à¸\95à¹\89น",
+       "limitreport-ppgeneratednodes": "à¸\88ำà¸\99วà¸\99à¸\88ุà¸\94à¸\95à¹\88อà¸\97ีà¹\88สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99à¸\82อà¸\87à¸\95ัวà¸\9bระมวลà¸\82ัà¹\89à¸\99à¸\95à¹\89น",
        "limitreport-postexpandincludesize": "ขนาดเมื่อรวมขยายแล้ว",
        "limitreport-postexpandincludesize-value": "$1/$2 ไบต์",
        "limitreport-templateargumentsize": "ขนาดอาร์กิวเมนต์แม่แบบ",
index f04dd5b..eec84ac 100644 (file)
@@ -51,7 +51,7 @@
        "tog-enotifrevealaddr": "Ipakita ang aking direksiyong e-liham sa loob ng mga e-liham ng pagpapahayag",
        "tog-shownumberswatching": "Ipakita ang bilang ng mga nagbabantay na tagagamit",
        "tog-oldsig": "Ang iyong umiiral na lagda:",
-       "tog-fancysig": "Ituring ang lagda bilang teksto ng wiki (walang automatikong pagkawing)",
+       "tog-fancysig": "Ituring ang lagda bilang teksto ng wiki (walang automatikong pag-link)",
        "tog-uselivepreview": "Ipakita ang mga paunang tingin nang hindi kinakargang muli ang pahina",
        "tog-forceeditsummary": "Sabihan ako kapag nagpapasok ng walang-lamang buod ng pagbabago",
        "tog-watchlisthideown": "Itago ang aking mga pagbabago mula sa tala ng mga binabantayan",
        "badretype": "Hindi magkatugma ang ipinasok mong mga password.",
        "usernameinprogress": "Ang paggawa ng account para sa pangalan ng tagagamit na ito ay nasa progreso na. Mangyaring maghintay.",
        "userexists": "May gumagamit na ng ipinasok na bansag.\nPumili po ng ibang pangalan.",
-       "loginerror": "Kamalian sa paglagda",
+       "loginerror": "Kamalian sa pag-login",
        "createacct-error": "May pagkakamali sa paglikha ng account",
        "createaccounterror": "Hindi mailikha ang account: $1",
        "nocookiesnew": "Nalikha ang account ng tagagamit, ngunit hindi ka naka-login.\nGumagamit ang {{SITENAME}} ng cookies upang maka-login ang mga tagagamit.\nHindi pinapagana ng browser mo ang cookies.\nPaganahin ito at subukang mag-login na kasama ang bagong pangalan at password.",
        "nocookieslogin": "Gumagamit ang {{SITENAME}} ng mga kuki (''cookies'') para mailagda ang mga tagagamit.\nHindi mo pinagagana ang mga kuki.\nPaki-andar mo ang mga ito at sumubok uli.",
        "nocookiesfornew": "Hindi nalikha ang account ng tagagamit, dahil hindi namin matiyak ang pinagmulan nito. \nTiyaking mayroon kang pinagaganang cookies, ikarga muli ang pahinang ito at subukan muli.",
        "nocookiesforlogin": "{{int:nocookieslogin}}",
-       "createacct-loginerror": "Matagumpay na nagawa ang account ngunit hindi ka mailagda ng awtomatiko. Mangyaring pumunta sa [[Special:UserLogin|manu-manong paglagda]].",
+       "createacct-loginerror": "Matagumpay na nagawa ang account ngunit hindi ka mai-login ng awtomatiko. Mangyaring pumunta sa [[Special:UserLogin|manu-manong pag-login]].",
        "noname": "Hindi mo tinukoy ang isang tanggap na pangalan ng tagagamit.",
        "loginsuccesstitle": "Nailagda",
        "loginsuccess": "'''Nakalagda ka na sa {{SITENAME}} bilang si \"$1\".'''",
        "createaccount-title": "Paglikha ng account para sa {{SITENAME}}",
        "createaccount-text": "May lumikha ng account para sa iyong email address sa {{SITENAME}} ($4) na pinangalanang \"$2\", na may password na \"$3\".\nDapat kang mag-login at baguhin ang password mo ngayon.\n\nMaaari mong huwag pansinin ang mensaheng ito, kung mali ang paglikha ng account na ito.",
        "login-throttled": "Masyadong madami ang kamakailan lamang mong pagsubok sa pag-login.\nMaghintay po muna ng $1 bago subukan uli.",
-       "login-abort-generic": "Nabigo ang iyong paglagda - Pinigil",
+       "login-abort-generic": "Nabigo ang iyong pag-login - hindi tagumpay",
        "login-migrated-generic": "Ang iyong account ay inilipat, at ang iyong pangalan ay hindi na umiiral sa wiking ito.",
        "loginlanguagelabel": "Wika: $1",
        "suspicious-userlogout": "Tinanggihan ang inyong kahilingang umalis sa pagkalagda dahil tila ito ay ipinadala ng sirang pambasa-basa o apoderadong pambaon (''caching proxy'')",
        "createacct-another-realname-tip": "Hindi kinakailangan ang tunay na pangalan.\nKung nais mo na ibigay ito, gagamitin ito para sa pagbibigay ng atribusyon para sa kanilang gawa.",
        "pt-login": "Mag-login",
        "pt-login-button": "Mag-login",
-       "pt-login-continue-button": "Magpatuloy sa paglagda",
+       "pt-login-continue-button": "Magpatuloy sa pag-login",
        "pt-createaccount": "Lumikha ng account",
        "pt-userlogout": "Umalis sa pagkakatala",
        "php-mail-error-unknown": "Hindi malamang kamalian sa tungkulin ng liham ng PHP ()",
        "confirmedittext": "Kailangang kumpirmahin mo muna ang adres ng iyong e-liham bago makapagbago ng mga pahina.\nPakihanda at patotohanan ang adres ng e-liham sa pamamagitan ng iyong [[Special:Preferences|kagustuhan ng tagagamit]].",
        "nosuchsectiontitle": "Hindi mahanap ang seksyon",
        "nosuchsectiontext": "Sinubukan mong baguhin ang isang seksyong hindi umiiral.\nMaaaring inilipat o ibinura ito habang tinitingnan mo ang pahina.",
-       "loginreqtitle": "Paglagda/Pagtala Kailangan",
+       "loginreqtitle": "Kailangan ang pag-login",
        "loginreqlink": "mag-login",
        "loginreqpagetext": "Kailangan mong $1 para matanaw ang ibang mga pahina.",
        "accmailtitle": "Ipinadala na ang password.",
        "yourvariant": "Iba pang anyo ng wika ng nilalaman:",
        "prefs-help-variant": "Ang nais mong kaibahan o ortograpiya sa pagpapakita ng mga pahina ng nilalaman ng wiking ito.",
        "yournick": "Panglagda:",
-       "prefs-help-signature": "Ang mga puna sa mga pahina ng usapan ay dapat na lagdaan ng \"<nowiki>~~~~</nowiki>\" na magiging lagda mo at marka ng oras.",
-       "badsig": "Hindi tamang hilaw na lagda.\nPakisuri ang mga tatak ng HTML.",
+       "prefs-help-signature": "Ang mga kumento sa mga pahina ng usapan ay dapat na lagdaan ng \"<nowiki>~~~~</nowiki>\" na magiging lagda mo na may kasamang marka ng petsa at oras.",
+       "badsig": "Hindi tamang hilaw na lagda.\nPakisuri ang mga tag ng HTML.",
        "badsiglength": "Napakahaba ng iyong lagda.\nDapat na mas mababa kaysa $1 {{PLURAL:$1|panitik|mga panitik}}.",
        "yourgender": "Sa anong paraan nais mo bang ilarawan ang sarili mo?",
        "gender-unknown": "Hindi ko nais itukoy",
        "mw-widgets-dateinput-placeholder-month": "TTTT-BB",
        "date-range-from": "Mula sa petsang:",
        "randomrootpage": "Alin mang pinag-ugatang/pinagmulang pahina",
+       "authprovider-resetpass-skip-label": "Laktawan",
        "edit-error-long": "Mga kamalian:",
        "gotointerwiki-invalid": "Di-wasto ang tinukoy na pamagat."
 }
index e2a7984..61ecb45 100644 (file)
        "returnto": "$1 sayfasına geri dön.",
        "tagline": "{{SITENAME}} sitesinden",
        "help": "Yardım",
+       "help-mediawiki": "MediaWiki hakkında yardım",
        "search": "Ara",
        "search-ignored-headings": " #<!-- bu satırı olduğu gibi bırakın --> <pre>\n# Başlıklar aramada göz ardı edilecektir.\n# Bu değişiklikler başlık ve sayfa endeksli şekilde en kısa sürede yürürlüğe girecektir.\n# Boş bir düzenleme yaparak, yeniden dizin oluşturulmasını zorlayabilirsiniz.\n# Sözdizimi aşağıdaki gibidir:\n#   * \"#\" karakteri ile başlayan her satır, satır sonuna kadar bir yorumdur.\n#   * Boş olmayan her türlü satırın tam başlığı her durumda görmezden gelinir.\nKaynaklar\nDış bağlantılar\nAyrıca bakınız\n #</pre> <!-- bu satırları olduğu gibi bırakın-->",
        "searchbutton": "Ara",
        "confirmable-confirm": "Emin misiniz?",
        "confirmable-yes": "Evet",
        "confirmable-no": "Hayır",
-       "thisisdeleted": "$1 görmek veya geri getirmek istermisiniz?",
+       "thisisdeleted": "$1 görmek veya geri getirmek ister misiniz?",
        "viewdeleted": "$1 gör?",
        "restorelink": "{{PLURAL:$1|bir silinmiş değişikliği|$1 silinmiş değişikliği}}",
        "feedlinks": "Besleme:",
        "enterlockreason": "Koruma için bir neden belirtin. Korumanın ne zaman kaldırılacağına dair tahmini bir tarih eklemeyi unutmayın.",
        "readonlytext": "Veritabanı, muhtemelen olağan bakım/onarım çalışmaları sebebiyle, geçici olarak giriş ve değişiklik yapmaya kapatılmıştır. Çalışmaların ardından normale dönecektir.\n\nVeritabanını kilitleyen sistem yöneticisinin açıklaması şu şekilde: $1",
        "missing-article": "Veritabanında bulunması istenen \"$1\" $2 adlı sayfaya ait metin bulunamadı.\n\nBu durum, genellikle silinmiş bir sayfanın geçmiş bir sürümüne yönlendirilmekten kaynaklanır.\n\nEğer neden bu değilse yazılımda bir hata ile karşılaşmış olabilirsiniz.\nLütfen URL'yi not ederek bunu bir [[Special:ListUsers/sysop|hizmetliye]] iletin.",
-       "missingarticle-rev": "(revizyon#: $1)",
+       "missingarticle-rev": "(sürüm#: $1)",
        "missingarticle-diff": "(Fark: $1, $2)",
        "readonly_lag": "Yedek sunucular ana sunucu ile güncellenirken veritabanı otomatik olarak kilitlendi.",
        "nonwrite-api-promise-error": "'Promise-Non-Write-API-Action' HTTP üstbilgisi gönderildi, ancak istek bir API yazma modülüne yapıldı.",
        "passwordtooshort": "Parolalar en az {{PLURAL:$1|1 karakter|$1 karakter}} uzunluğunda olmalı.",
        "passwordtoolong": "Parolalar $1 karakterden uzun olamaz.",
        "passwordtoopopular": "Yaygın olarak seçilen parolalar kullanılamaz. Lütfen tahmin edilmesi daha zor bir parola seçin.",
+       "passwordinlargeblacklist": "Girilen şifre çok sık kullanılan şifrelerin bir listesidir. Lütfen daha benzersiz bir şifre seçin.",
        "password-name-match": "Parolanız kullanıcı adınızdan farklı olmalıdır.",
        "password-login-forbidden": "Bu kullanıcı adı ve parolanın kullanımı yasaklanmıştır.",
        "mailmypassword": "Parolayı sıfırla",
        "accmailtext": "[[User talk:$1|$1]] için rastgele oluşturulan parola $2 adresine gönderildi.\n\nBu yeni hesap için parola, giriş yapıldıktan sonra ''[[Special:ChangePassword|parolayı değiştir]]'' bölümünde değiştirilebilir.",
        "newarticle": "(Yeni)",
        "newarticletext": "Henüz varolmayan bir sayfaya konulmuş bir bağlantıya tıkladınız.\nSayfayı oluşturmak için aşağıdaki metin kutusunu kullanın. ([$1 yardım sayfasına] bakınız).\nBuraya yanlışlıkla geldiyseniz tarayıcınızın  <strong>geri </strong> tuşuna tıklayın.",
-       "anontalkpagetext": "----\n<em>Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır.</em>\nBu nedenle bu kişiyi belirtmek için rakamsal IP adresini kullanmak zorundayız.\nBu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir.\nEğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:CreateAccount|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].",
+       "anontalkpagetext": "----\n<em>Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır.</em>\nBu nedenle bu kişileri belirtmek için rakamsal IP adresini kullanmak zorundayız.\nBu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir.\nEğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:CreateAccount|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].",
        "noarticletext": "Bu sayfa şu anda boştur.\nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları arayabilir],\nya da bu sayfayı [{{fullurl:{{FULLPAGENAME}}|action=edit}} oluşturabilirsiniz]</span>.",
        "noarticletext-nopermission": "Bu sayfa şu anda boştur. \nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]] ya da <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları tarayabilirsiniz]</span>, fakat sayfayı oluşturma yetkiniz bulunmamaktadır.",
        "missing-revision": "\"{{FULLPAGENAME}}\" sayfasının #$1 sürümü yok.\n\nBu duruma genellikle silinmiş bir sayfaya eski tarihli bir bağlantının takip edilmesi neden olur.\n\nDaha fazla detaylı bilgi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sayfasında bulunabilir].",
        "edit-gone-missing": "Sayfa güncellenemiyor.\nSilinmiş görünüyor.",
        "edit-conflict": "Değişiklik çakışması.",
        "edit-no-change": "Değişikliğiniz yoksayıldı, çünkü metinde bir değişiklik yapılmadı.",
+       "edit-slots-cannot-add": "Şu {{PLURAL:$1|yuva|yuvalar}} burada desteklenmiyor: $2.",
+       "edit-slots-cannot-remove": "Şu {{PLURAL:$1|yuva|yuvalar}} gereklidir ve kaldırılamaz: $2.",
+       "edit-slots-missing": "Şu {{PLURAL:$1|yuva|yuvalar}} eksik: $2.",
        "postedit-confirmation-created": "Sayfa oluşturuldu.",
        "postedit-confirmation-restored": "Sayfa geri yüklendi.",
        "postedit-confirmation-saved": "Değişikliğiniz kaydedildi.",
        "editpage-invalidcontentmodel-text": "\"$1\" içerik modeli desteklenmemektedir.",
        "editpage-notsupportedcontentformat-title": "İçerik biçimi desteklenmiyor",
        "editpage-notsupportedcontentformat-text": "$1 içerik biçimi $2 içerik modeli tarafından desteklenmiyor.",
+       "slot-name-main": "Ana",
        "content-model-wikitext": "vikimetin",
        "content-model-text": "düz metin",
        "content-model-javascript": "JavaScript",
        "timezonelegend": "Zaman dilimi:",
        "localtime": "Yerel saat:",
        "timezoneuseserverdefault": "Viki varsayılanını kullanın ($1)",
-       "timezoneuseoffset": "Diğer (ofset belirtin)",
+       "timezoneuseoffset": "Diğer (aşağıdaki ofset belirtiniz)",
        "timezone-useoffset-placeholder": "Örnek değerler: \"-07:00\" veya \"01:00\"",
        "servertime": "Sunucu saati:",
        "guesstimezone": "Tarayıcınız sizin yerinize doldursun",
        "prefs-advancedwatchlist": "Gelişmiş seçenekler",
        "prefs-displayrc": "Görüntüleme seçenekleri",
        "prefs-displaywatchlist": "Görüntüleme seçenekleri",
+       "prefs-changesrc": "Gösterilen değişiklikler",
+       "prefs-changeswatchlist": "Gösterilen değişiklikler",
        "prefs-pageswatchlist": "İzlenen sayfalar",
        "prefs-tokenwatchlist": "Anahtar",
        "prefs-diffs": "Farklar",
        "grant-group-email": "E-posta gönder",
        "grant-group-high-volume": "Yüksek hacimli etkinlik gerçekleştir",
        "grant-group-customization": "Özelleştirme ve tercihler",
+       "grant-group-administration": "Hizmetli işlemlerini uygulayın",
        "grant-group-private-information": "Sizinle ilgili özel verilere erişme",
        "grant-group-other": "Çeşitli aktivite",
        "grant-blockusers": "Kullanıcıları engelle ve engeli kaldır",
        "rcfilters-filter-reviewstatus-manual-description": "Devriye onayından el ile geçmiş düzenlemeler.",
        "rcfilters-filter-reviewstatus-manual-label": "Manuel olarak devriye edilmiş",
        "rcfilters-filter-reviewstatus-auto-description": "İşleri otomatik olarak devriye olarak işaretlenen gelişmiş kullanıcılara göre düzenler.",
+       "rcfilters-filter-reviewstatus-auto-label": "Oto-devriyeler",
        "rcfilters-filtergroup-significance": "Önem",
        "rcfilters-filter-minor-label": "Küçük düzenlemeler",
        "rcfilters-filter-minor-description": "Yazarın küçük olarak etiketlediği düzenlemeler.",
        "passwordpolicies-policy-passwordcannotmatchusername": "Parola kullanıcı adıyla aynı olamaz",
        "passwordpolicies-policy-passwordcannotmatchblacklist": "Şifre özellikle kara listeye alınmış şifrelerle aynı olamaz",
        "passwordpolicies-policy-maximalpasswordlength": "Parola $1 karakterden kısa olmalı",
-       "passwordpolicies-policy-passwordcannotbepopular": "Parola, $1 popüler parola listesinde olamaz"
+       "passwordpolicies-policy-passwordcannotbepopular": "Parola, $1 popüler parola listesinde olamaz",
+       "passwordpolicies-policy-passwordnotinlargeblacklist": "Parola, en sık kullanılan 100.000 parola listesinde olamaz."
 }
index 2e40dc3..ada8f7f 100644 (file)
        "editpage-invalidcontentmodel-text": "Контентна модель «$1» не підтримується.",
        "editpage-notsupportedcontentformat-title": "Формат вмісту не підтримується",
        "editpage-notsupportedcontentformat-text": "Формат вмісту $1 не підтримується моделлю вмісту $2.",
+       "slot-name-main": "Головна",
        "content-model-wikitext": "вікітекст",
        "content-model-text": "звичайний текст",
        "content-model-javascript": "JavaScript",
        "search-file-match": "(збігається із вмістом файлу)",
        "search-suggest": "Можливо, ви мали на увазі: $1",
        "search-rewritten": "Показуються результати для $1. Шукати натомість $2.",
-       "search-interwiki-caption": "Результати з братніх проектів",
+       "search-interwiki-caption": "Результати із сестринських проектів",
        "search-interwiki-default": "Результати із $1:",
        "search-interwiki-more": "(більше)",
        "search-interwiki-more-results": "більше результатів",
        "protect-otherreason": "Інша/додаткова причина:",
        "protect-otherreason-op": "Інша причина",
        "protect-dropdown": "* Типові причини захисту\n** частий вандалізм\n** надмірний спам\n** непродуктивна війна редагувань\n** популярна сторінка",
-       "protect-edit-reasonlist": "Ð\9fÑ\80иÑ\87ини Ð·Ð°Ñ\85иÑ\81Ñ\82Ñ\83 Ð²Ñ\96д Ñ\80едагÑ\83ванÑ\8c",
+       "protect-edit-reasonlist": "РедагÑ\83ваÑ\82и Ð¿Ñ\80иÑ\87ини Ð·Ð°Ñ\85иÑ\81Ñ\82Ñ\83",
        "protect-expiry-options": "1 година:1 hour,1 день:1 day,1 тиждень:1 week,2 тижні:2 weeks,1 місяць:1 month,3 місяці:3 months,6 місяців:6 months,1 рік:1 year,назавжди:infinite",
        "restriction-type": "Права:",
        "restriction-level": "Рівень доступу:",
index 3b32542..683fe07 100644 (file)
        "semiprotectedpagewarning": "<strong>اطلاع:</strong> اس صفحہ کو محفوظ کر دیا گیا ہے، لہذا اب اس میں محض خود توثیق شدہ صارفین ہی ترمیم کر سکتے ہیں۔\nحوالہ کے لیے ذیل میں نوشتہ کا تازہ ترین اندراج درج ہے:",
        "cascadeprotectedwarning": "<strong>انتباہ:</strong> اس صفحہ میں ترمیم کاری کو محفوظ کر دیا گیا ہے اور محض [[Special:ListGroupRights|انتظامی اختیارات]] کے حامل صارفین ہی اس میں ترمیم کر سکتے ہیں۔ اسے محفوظ کرنے کی وجہ یہ ہے کہ پیش نظر صفحہ درج ذیل محفوظ {{PLURAL:$1|صفحہ|صفحات}} کی آبشاری حفاظت میں شامل ہے:",
        "titleprotectedwarning": "<strong>انتباہ: اس صفحہ کو محفوظ کر دیا گیا ہے، چنانچہ اسے تخلیق کرنے کے لیے [[Special:ListGroupRights|خصوصی اختیارات]] درکار ہونگے۔</strong>\nحوالہ کے لیے ذیل میں نوشتہ کا تازہ ترین اندراج موجود ہے:",
-       "templatesused": "اِس صفحہ پر مستعمل {{PLURAL:$1|سانچہ|سانچے}}:",
-       "templatesusedpreview": "اÙ\90س Ù¾Û\8cØ´ Ù\85Ù\86ظر Ù\85Û\8cÚº Ù\85ستعÙ\85Ù\84 {{PLURAL:$1|ساÙ\86Ú\86Û\81|ساÙ\86Ú\86Û\92}}:",
+       "templatesused": "اِس صفحہ پر مستعمل {{PLURAL:$1|سانچہ|سانچے}} حسب ذیل {{PLURAL:$1|ہے|ہیں}}:",
+       "templatesusedpreview": "اÙ\90س Ù\86Ù\85ائش Ù\85Û\8cÚº Ù\85ستعÙ\85Ù\84 {{PLURAL:$1|ساÙ\86Ú\86Û\81|ساÙ\86Ú\86Û\92}} Ø­Ø³Ø¨ Ø°Û\8cÙ\84 {{PLURAL:$1|Û\81Û\92\81Û\8cÚº}}:",
        "templatesusedsection": "اِس قطعہ میں مستعمل {{PLURAL:$1|سانچہ|سانچے}}:",
        "template-protected": "(محفوظ شدہ)",
        "template-semiprotected": "(نیم محفوظ)",
index 6cc95fc..171e877 100644 (file)
        "searcharticle": "O‘tish",
        "history": "Sahifa tarixi",
        "history_short": "Tarix",
+       "history_small": "tarix",
        "updatedmarker": "oxirgi tashrifimdan keyingi oʻzgarishlar",
        "printableversion": "Bosma uchun versiya",
        "permalink": "Doimiy ishorat",
        "notextmatches": "Bunday matn topilmadi",
        "prevn": "oldingi {{PLURAL:$1|$1}}",
        "nextn": "keyingi {{PLURAL:$1|$1}}",
+       "next-page": "keyingi sahifa",
        "prevn-title": "Avvalgi $1 {{PLURAL:$1|natija|natijalar}}",
        "nextn-title": "Keyingi $1 {{PLURAL:$1|natija|natijalar}}",
        "shown-title": "Sahifada $1 ta {{PLURAL:$1|natija}} koʻrsat",
index 433d966..1e66cb3 100644 (file)
        "defaultmessagetext": "預設訊息文字",
        "content-failed-to-parse": "從$1模型解析到$2目錄時肥佬咗。原因:$3。",
        "invalid-content-data": "無效嘅內容資料",
-       "content-not-allowed-here": "「$1」唔可以輸入[[:$2]]。",
+       "content-not-allowed-here": "喺「[[:$2]]」呢版,「$3」呢個位唔准填「$1」",
        "editwarning-warning": "離開爾一版會令到閣下嘅修改唔見咗。\n閣下可以喺喜好設定嘅\"{{int:prefs-editing}}\"小節度停用爾個警告。",
        "editpage-invalidcontentmodel-title": "唔支援爾種內容模型。",
        "editpage-invalidcontentmodel-text": "內容模型 \"$1\" 唔支援。",
        "editpage-notsupportedcontentformat-title": "唔支持爾種內容格式。",
        "editpage-notsupportedcontentformat-text": "指定嘅目錄類$1同$2唔兼容",
+       "slot-name-main": "主",
        "content-model-wikitext": "維基文字",
        "content-model-text": "純文字",
        "content-model-javascript": "JavaScript程式語言",
        "post-expand-template-argument-category": "包含住略過模參數嘅版",
        "parser-template-loop-warning": "已偵測迴模: [[$1]]",
        "template-loop-category": "有循環模嘅頁",
+       "template-loop-category-desc": "呢版包含一個模循環,即係遞歸調用自己嘅模。",
        "parser-template-recursion-depth-warning": "迴模深度限制超過咗 ($1)",
        "language-converter-depth-warning": "字體變換器深度限制超過咗 ($1)",
        "node-count-exceeded-category": "有頁面超出咗指定數",
        "prefs-labs": "實驗性嘅特色",
        "prefs-user-pages": "用戶頁",
        "prefs-personal": "用戶簡介",
-       "prefs-rc": "最近改",
+       "prefs-rc": "最近改",
        "prefs-watchlist": "監視清單",
        "prefs-editwatchlist": "編輯監視清單",
        "prefs-editwatchlist-label": "編輯監視清單入面嘅項目:",
        "stub-threshold": "楔位連結格式門檻 ($1):",
        "stub-threshold-sample-link": "樣辦",
        "stub-threshold-disabled": "閂咗",
-       "recentchangesdays": "最近改中嘅顯示日數:",
+       "recentchangesdays": "最近改中嘅顯示日數:",
        "recentchangesdays-max": "最多 $1 日",
        "recentchangescount": "喺最近修改、版歷史同日誌度預設顯示嘅編輯數:",
        "prefs-help-recentchangescount": "最大數目:1000",
        "timezonelegend": "時區:",
        "localtime": "本地時間:",
        "timezoneuseserverdefault": "用維基預設值($1)",
-       "timezoneuseoffset": "其他 (指定偏移)",
+       "timezoneuseoffset": "第啲(喺下低指定時區偏移)",
        "servertime": "伺機器時間:",
        "guesstimezone": "由瀏覽器填上",
        "timezoneregion-africa": "非洲",
        "prefs-advancedwatchlist": "進階選項",
        "prefs-displayrc": "顯示選項",
        "prefs-displaywatchlist": "顯示選項",
+       "prefs-pageswatchlist": "監視嘅版",
        "prefs-tokenwatchlist": "密匙",
        "prefs-diffs": "差異",
        "prefs-help-prefershttps": "呢項喜好設定會喺你下次簽到先至開始生效。",
        "nchanges": "$1次更改",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|你上次嚟之後}}有 $1 個",
        "enhancedrc-history": "歷史",
-       "recentchanges": "最近改過嘅嘢",
+       "recentchanges": "最近修改",
        "recentchanges-legend": "最近更改選項",
-       "recentchanges-summary": "追蹤對哩一個 wiki 嘅最後更改。",
+       "recentchanges-summary": "喺呢版追蹤對呢個wiki嘅最近修改。",
        "recentchanges-noresult": "喺指定時段無符合呢啲條件嘅改動。",
        "recentchanges-timeout": "呢勻搜索超時。你不妨試下唔同嘅搜索參數。",
        "recentchanges-network": "因為技術出錯,冇結果載入到。請試下刷新呢版。",
-       "recentchanges-feed-description": "追蹤對哩一個 wiki 度呢個集合嘅最後更改。",
+       "recentchanges-feed-description": "喺呢條訂閱頻道追蹤呢個wiki嘅最近修改。",
        "recentchanges-label-newpage": "呢次編輯開咗一個新版",
        "recentchanges-label-minor": "呢個係一個細編輯",
        "recentchanges-label-bot": "呢次編輯係由機械人進行",
        "rcfilters-watchlist-markseen-button": "標記所有改動睇咗",
        "rcfilters-watchlist-edit-watchlist-button": "編輯監視清單",
        "rcfilters-watchlist-showupdated": "標<strong>粗體字</strong>嘅頁響你上次嚟之後畀人改過。",
-       "rcfilters-preference-label": "隱藏最近修改嘅改良版本。",
+       "rcfilters-preference-label": "用冇JavaScript嘅界面",
        "rcfilters-preference-help": "還原返2017年介面新設計同相關架撐。",
        "rcfilters-filter-showlinkedfrom-label": "顯示鏈自呢版嘅版面上嘅修改",
        "rcfilters-target-page-placeholder": "入版(或者類)名",
        "booksources-search": "搵",
        "booksources-text": "以下嘅連結清單列出其它一啲賣新書同二手書嘅網站,可能可以提供到有關你想搵嘅書嘅更多資料:",
        "booksources-invalid-isbn": "個ISBN無效;請檢查原來源複製落來嘅錯。",
+       "magiclink-tracking-rfc": "用緊RFC魔術鏈嘅版",
+       "magiclink-tracking-pmid": "用緊PMID魔術鏈嘅版",
+       "magiclink-tracking-isbn": "用緊ISBN魔術鏈嘅版",
        "specialloguserlabel": "執行人:",
        "speciallogtitlelabel": "目標(入標題或者用戶「{{ns:user}}:用戶名」 ):",
        "log": "日誌",
        "ipb-disableusertalk": "唔畀封鎖緊嘅用戶去改自己個用戶討論頁",
        "ipb-change-block": "用呢啲設定重新封鎖用戶",
        "ipb-confirm": "確認封鎖",
+       "ipb-sitewide": "全站",
+       "ipb-partial": "部分",
+       "ipb-type-label": "類型",
+       "ipb-pages-label": "版",
        "badipaddress": "無效嘅IP地址",
        "blockipsuccesssub": "封鎖成功",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]]已經封鎖。<br />\n去[[Special:BlockList|封鎖清單]]睇返封鎖。",
        "tooltip-n-randompage": "是但載入一個頁面",
        "tooltip-n-help": "搵吓點做嘅地方",
        "tooltip-t-whatlinkshere": "列出所有連接過嚟呢度嘅頁面",
-       "tooltip-t-recentchangeslinked": "喺呢個頁面連出嘅頁面更改",
+       "tooltip-t-recentchangeslinked": "由呢版連出去嘅版嘅最近修改",
        "tooltip-feed-rss": "呢一頁嘅RSS集合",
        "tooltip-feed-atom": "呢一頁嘅Atom集合",
        "tooltip-t-contributions": "{{GENDER:$1|呢個用戶}}嘅貢獻一覽",
        "svg-long-error": "無效嘅SVG檔: $1",
        "show-big-image": "原本檔案",
        "show-big-image-preview": "預覽大細:$1。",
+       "show-big-image-preview-differ": "呢個「$2」檔案嘅呢個「$3」預覽嘅大細:$1。",
        "show-big-image-other": "第啲{{PLURAL:$2|解像度}}:$1。",
        "show-big-image-size": "$1 × $2 像素",
        "file-info-gif-looped": "循環",
        "exif-giffilecomment": "GIF文件註",
        "exif-intellectualgenre": "項類",
        "exif-subjectnewscode": "項碼",
+       "exif-originalimageheight": "呢幅圖裁之前嘅高度",
+       "exif-originalimagewidth": "呢幅圖裁之前嘅闊度",
        "exif-compression-1": "未壓過",
        "exif-copyrighted-true": "受版權保護",
+       "exif-copyrighted-false": "未設版權狀態",
        "exif-photometricinterpretation-1": "黑同白(黑係0)",
        "exif-unknowndate": "未知日期",
        "exif-orientation-1": "正常",
        "imgmultigo": "去!",
        "imgmultigoto": "去第$1版",
        "img-lang-default": "(預設語言)",
+       "img-lang-info": "整幅$1版嘅圖。 $2",
        "img-lang-go": "去",
        "ascending_abbrev": "增",
        "descending_abbrev": "減",
        "autosumm-blank": "成版洗曬",
        "autosumm-replace": "用「$1」取代內容",
        "autoredircomment": "跳緊轉呢版到[[$1]]",
+       "autosumm-removed-redirect": "刪咗去「[[$1]]」嘅跳轉",
+       "autosumm-changed-redirect-target": "將跳轉目標由「[[$1]]」改成「[[$2]]」",
        "autosumm-new": "開咗新版「$1」",
        "autosumm-newblank": "開空頁",
+       "size-bytes": "$1字節",
        "lag-warn-normal": "新過$1秒嘅更改可能唔會響呢個表度顯示。",
        "lag-warn-high": "由於資料庫嘅過度延遲,新過$1秒嘅更改可能唔會響呢個表度顯示。",
        "watchlistedit-normal-title": "編輯監視清單",
        "watchlistedit-clear-explain": "將會刪走監視清單入邊所有嘢",
        "watchlistedit-clear-titles": "標題:",
        "watchlistedit-clear-submit": "清空監視清單(永久清空!)",
+       "watchlistedit-clear-done": "你嘅監視清單洗晒。",
        "watchlistedit-clear-jobqueue": "清緊你嘅監視清單。可能要等一陣!",
+       "watchlistedit-clear-removed": "$1個題目刪咗:",
        "watchlisttools-clear": "清空監視清單",
        "watchlisttools-view": "睇吓有關嘅更改",
        "watchlisttools-edit": "睇吓同埋編輯監視清單",
        "specialpages-group-maintenance": "維護報告",
        "specialpages-group-other": "其它特別頁",
        "specialpages-group-login": "簽到/開新戶口",
-       "specialpages-group-changes": "最近改同日誌",
+       "specialpages-group-changes": "最近改同日誌",
        "specialpages-group-media": "媒體報告同上載",
        "specialpages-group-users": "用戶同權限",
        "specialpages-group-highuse": "高度使用頁",
index 55e03bf..8a36055 100644 (file)
        "accmailtext": "[[User talk:$1|$1]] 的隨機密碼已經寄送至 $2,可登入後至 <em>[[Special:ChangePassword|變更密碼]] 頁面更改</em>。",
        "newarticle": "(新)",
        "newarticletext": "您正連結至一頁不存在頁面。\n要建立該頁面,請在下方的編輯方塊中輸入內容 (詳情請參考 [$1 使用說明頁面]) 。\n如果您是不小心來到此頁面,請點選瀏覽器的 <strong>返回</strong> 按鈕。",
-       "anontalkpagetext": "----\n<em>此討論頁面是給尚未建立帳號的匿名使用者使用</em>\n因此我們必須使用 IP 位址來辨識身份,但相同的 IP 位址可能由許多不同的使用者所共用。\n如果您是匿名使用者並且覺得評論的內容與您無關,請 [[Special:CreateAccount|建立新帳號]] 或 [[Special:UserLogin|登入]] 避免與其他匿名使用者混淆。",
+       "anontalkpagetext": "----\n<em>此討論頁面是給尚未建立帳號的匿名使用者使用</em>\n因此我們必須使用 IP 位址來辨識對方,但相同的 IP 位址可能是由許多不同的使用者所共用。\n如果您是匿名使用者並且覺得評論的內容與您無關,請[[Special:CreateAccount|建立新帳號]]或[[Special:UserLogin|登入]]避免與其他匿名使用者混淆。",
        "noarticletext": "此頁面目前沒有內容,您可以在其它頁面中[[Special:Search/{{PAGENAME}}|搜尋此頁面標題]]、<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋相關日誌]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 建立此頁面]</span>。",
        "noarticletext-nopermission": "此頁面目前沒有內容,\n您可以在其它頁面中 [[Special:Search/{{PAGENAME}}|搜尋此頁面標題]],或 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋相關日誌]</span>,但您沒有權限建立此頁面。",
        "missing-revision": "頁面名稱 \"{{FULLPAGENAME}}\" 的 #$1 修訂版本不存在。\n\n通常是因連結到過期的歷史頁面,該頁面已被刪除。\n詳情請參考 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。",
index 4f636ae..02d018c 100644 (file)
@@ -397,7 +397,6 @@ CREATE TABLE site_stats (
   ss_total_pages    INTEGER            DEFAULT NULL,
   ss_users          INTEGER            DEFAULT NULL,
   ss_active_users   INTEGER            DEFAULT NULL,
-  ss_admins         INTEGER            DEFAULT NULL,
   ss_images         INTEGER            DEFAULT NULL
 );
 
@@ -556,7 +555,6 @@ CREATE SEQUENCE recentchanges_rc_id_seq;
 CREATE TABLE recentchanges (
   rc_id              INTEGER      NOT NULL  PRIMARY KEY DEFAULT nextval('recentchanges_rc_id_seq'),
   rc_timestamp       TIMESTAMPTZ  NOT NULL,
-  rc_cur_time        TIMESTAMPTZ      NULL,
   rc_user            INTEGER      NOT NULL  DEFAULT 0 REFERENCES mwuser(user_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
   rc_user_text       TEXT         NOT NULL  DEFAULT '',
   rc_actor           INTEGER      NOT NULL  DEFAULT 0,
@@ -791,8 +789,7 @@ CREATE TABLE category (
   cat_title    TEXT     NOT NULL,
   cat_pages    INTEGER  NOT NULL  DEFAULT 0,
   cat_subcats  INTEGER  NOT NULL  DEFAULT 0,
-  cat_files    INTEGER  NOT NULL  DEFAULT 0,
-  cat_hidden   SMALLINT NOT NULL  DEFAULT 0
+  cat_files    INTEGER  NOT NULL  DEFAULT 0
 );
 ALTER SEQUENCE category_cat_id_seq OWNED BY category.cat_id;
 CREATE UNIQUE INDEX category_title ON category(cat_title);
index 317385d..ef8d974 100644 (file)
@@ -2735,8 +2735,8 @@ return [
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'mediawiki.widgets.TitlesMultiselectWidget.styles' => [
-               'styles' => 'resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css',
+       'mediawiki.widgets.TagMultiselectWidget.styles' => [
+               'styles' => 'resources/src/mediawiki.widgets/mw.widgets.TagMultiselectWidget.base.css',
        ],
        'mediawiki.widgets.SearchInputWidget' => [
                'scripts' => [
index 9264a39..df2079e 100644 (file)
 
                                subsetNames = [];
 
-                               filter.subset.forEach( function ( subsetFilterName ) { // eslint-disable-line no-loop-func
+                               filter.subset.forEach( function ( subsetFilterName ) {
                                        // Subsets (unlike conflicts) are always inside the same group
                                        // We can re-map the names of the filters we are getting from
                                        // the subsets with the group prefix
index 35cdee7..cb05793 100644 (file)
@@ -1,9 +1,9 @@
 /* Special:AllMessages */
-#mw-allmessagestable .allmessages-customised .am_default {
+#mw-allmessagestable .am_default {
        background-color: #fcffc4;
 }
 
-#mw-allmessagestable .allmessages-customised:hover .am_default {
+#mw-allmessagestable tr:hover .am_default {
        background-color: #faff90;
 }
 
@@ -11,7 +11,7 @@
        background-color: #e2ffe2;
 }
 
-#mw-allmessagestable .allmessages-customised:hover + .allmessages-customised .am_actual {
+#mw-allmessagestable tr:hover + tr .am_actual {
        background-color: #b1ffb1;
 }
 
diff --git a/resources/src/mediawiki.widgets/mw.widgets.TagMultiselectWidget.base.css b/resources/src/mediawiki.widgets/mw.widgets.TagMultiselectWidget.base.css
new file mode 100644 (file)
index 0000000..86e7ecd
--- /dev/null
@@ -0,0 +1,11 @@
+/*!
+ * MediaWiki Widgets - base TagMultiselectWidget styles.
+ *
+ * @copyright 2011-2018 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+.client-nojs .mw-widgets-tagMultiselectWidget .mw-widgets-pendingTextInputWidget,
+.client-js .mw-widgets-tagMultiselectWidget .mw-widgets-tagMultiselectWidget-multilineTextInputWidget {
+       display: none;
+}
diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css b/resources/src/mediawiki.widgets/mw.widgets.TitlesMultiselectWidget.base.css
deleted file mode 100644 (file)
index de43fb3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
- * MediaWiki Widgets - base TitlesMultiselectWidget styles.
- *
- * @copyright 2011-2018 MediaWiki Widgets Team and others; see AUTHORS.txt
- * @license The MIT License (MIT); see LICENSE.txt
- */
-
-.client-nojs .mw-widgets-titlesMultiselectWidget .mw-widgets-pendingTextInputWidget,
-.client-js .mw-widgets-titlesMultiselectWidget .mw-widgets-titlesMultiselectWidget-multilineTextInputWidget {
-       display: none;
-}
index fee69c0..03f02b4 100644 (file)
@@ -99,7 +99,6 @@
         * @param {string} [data.module] Name of module which caused the error
         */
        function logError( topic, data ) {
-               /* eslint-disable no-console */
                var msg,
                        e = data.exception,
                        source = data.source,
                                console.warn( e );
                        }
                }
-               /* eslint-enable no-console */
        }
 
        /**
index 286a1a4..a8aa936 100644 (file)
@@ -461,7 +461,7 @@ Talk for this IP
 [http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:5bbc19f4&amp;action=edit 07575f81]&lt;br&gt;
 [[MediaWiki_talk:5bbc19f4|Talk]]
 &lt;/td&gt;&lt;td&gt;
-----&amp;#39;&amp;#39;This is the discussion page for an anonymous user who has not created an account yet or who does not use it. We therefore have to use the numerical &amp;#91;&amp;#91;IP address]] to identify him/her. Such an IP address can be shared by several users. If you are an anonymous user and feel that irrelevant comments have been directed at you, please &amp;#91;&amp;#91;Special:Userlogin&amp;#124;create an account or log in]] to avoid future confusion with other anonymous users.&amp;#39;&amp;#39; 
+----&amp;#39;&amp;#39;This is the discussion page for an anonymous user who has not created an account yet or who does not use it. We therefore have to use the numerical &amp;#91;&amp;#91;IP address]] to identify them. Such an IP address can be shared by several users. If you are an anonymous user and feel that irrelevant comments have been directed at you, please &amp;#91;&amp;#91;Special:Userlogin&amp;#124;create an account or log in]] to avoid future confusion with other anonymous users.&amp;#39;&amp;#39; 
 &lt;/td&gt;&lt;td&gt;
 <template lineStart="1"><title>int:5bbc19f4</title></template>
 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
index 3212ae1..3bae4aa 100644 (file)
@@ -461,7 +461,7 @@ Talk for this IP
 [http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:5bbc19f4&action=edit 07575f81]<br>
 [[MediaWiki_talk:5bbc19f4|Talk]]
 </td><td>
-----&#39;&#39;This is the discussion page for an anonymous user who has not created an account yet or who does not use it. We therefore have to use the numerical &#91;&#91;IP address]] to identify him/her. Such an IP address can be shared by several users. If you are an anonymous user and feel that irrelevant comments have been directed at you, please &#91;&#91;Special:Userlogin&#124;create an account or log in]] to avoid future confusion with other anonymous users.&#39;&#39; 
+----&#39;&#39;This is the discussion page for an anonymous user who has not created an account yet or who does not use it. We therefore have to use the numerical &#91;&#91;IP address]] to identify them. Such an IP address can be shared by several users. If you are an anonymous user and feel that irrelevant comments have been directed at you, please &#91;&#91;Special:Userlogin&#124;create an account or log in]] to avoid future confusion with other anonymous users.&#39;&#39; 
 </td><td>
 {{int:5bbc19f4}}
 </td></tr><tr><td>
index 585ebb9..fa351ea 100644 (file)
@@ -42,6 +42,7 @@ return [
                // Load the interface for the version of PHPUnit that isn't installed.
                // Phan only supports PHP 7.0+ (and not HHVM), so we only need to stub PHPUnit 4.
                class_exists( PHPUnit_TextUI_Command::class ) ? [] : [ 'tests/phan/stubs/phpunit4.php' ],
+               class_exists( ProfilerExcimer::class ) ? [] : [ 'tests/phan/stubs/excimer.php' ],
                [
                        'maintenance/7zip.inc',
                        'maintenance/cleanupTable.inc',
diff --git a/tests/phan/stubs/excimer.php b/tests/phan/stubs/excimer.php
new file mode 100644 (file)
index 0000000..af3a673
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+
+// phpcs:ignoreFile
+
+class ExcimerProfiler {
+       public function __construct() {
+       }
+       public function setPeriod( $period ) {
+       }
+       public function setEventType( $event_type ) {
+       }
+       public function setMaxDepth( $maxDepth ) {
+       }
+       public function setFlushCallback( $callback, $max_samples ) {
+       }
+       public function clearFlushCallback() {
+       }
+       public function start() {
+       }
+       public function stop() {
+       }
+       public function getLog() {
+       }
+       public function flush() {
+       }
+}
+
+class ExcimerLog {
+       private final function __construct() {
+       }
+       function formatCollapsed() {
+       }
+       function aggregateByFunction() {
+       }
+       function getEventCount() {
+       }
+       function current() {
+       }
+       function key() {
+       }
+       function next() {
+       }
+       function rewind() {
+       }
+       function valid() {
+       }
+       function count() {
+       }
+       function offsetExists( $offset ) {
+       }
+       function offsetGet( $offset ) {
+       }
+       function offsetSet( $offset, $value ) {
+       }
+       function offsetUnset( $offset ) {
+       }
+
+}
+
+class ExcimerLogEntry {
+       private final function __construct() {
+       }
+       function getTimestamp() {
+       }
+       function getEventCount() {
+       }
+       function getTrace() {
+       }
+}
+
+class ExcimerTimer {
+       function setEventType( $event_type ) {
+       }
+       function setInterval( $interval ) {
+       }
+       function setPeriod( $period ) {
+       }
+       function setCallback( $callback ) {
+       }
+       function start() {
+       }
+       function stop() {
+       }
+       function getTime() {
+       }
+}