Required software:
* Web server with PHP 5.5.9 or higher.
* A SQL server, the following types are supported
-** MySQL 5.0.3 or higher
+** MySQL 5.5.8 or higher
** PostgreSQL 8.3 or higher
** SQLite 3.3.7 or higher
** Oracle 9.0.1 or higher
MediaWiki 1.30 is an alpha-quality branch and is not recommended for use in
production.
+=== MySQL version requirement in 1.30 ===
+As of 1.30, MediaWiki now requires MySQL 5.5.8 or higher (see Compatibility
+section).
+
=== Configuration changes in 1.30 ===
* The "C.UTF-8" locale should be used for $wgShellLocale, if available, to avoid
unexpected behavior when code uses locale-sensitive string comparisons. For
==== Upgraded external libraries ====
* mediawiki/mediawiki-codesniffer updated to 0.8.1.
+* wikimedia/composer-merge-plugin updated to 1.4.1.
==== New external libraries ====
* The class \TestingAccessWrapper has been moved to the external library
The supported versions are:
-* MySQL 5.0.3 or later
+* MySQL 5.5.8 or later
* PostgreSQL 8.3 or later
* SQLite 3.3.7 or later
* Oracle 9.0.1 or later
'RecentChange' => __DIR__ . '/includes/changes/RecentChange.php',
'RecentChangesUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/RecentChangesUpdateJob.php',
'RecompressTracked' => __DIR__ . '/maintenance/storage/recompressTracked.php',
+ 'RecountCategories' => __DIR__ . '/maintenance/recountCategories.php',
'RedirectSpecialArticle' => __DIR__ . '/includes/specialpage/RedirectSpecialPage.php',
'RedirectSpecialPage' => __DIR__ . '/includes/specialpage/RedirectSpecialPage.php',
'RedisBagOStuff' => __DIR__ . '/includes/libs/objectcache/RedisBagOStuff.php',
"wikimedia/base-convert": "1.0.1",
"wikimedia/cdb": "1.4.1",
"wikimedia/cldr-plural-rule-parser": "1.0.0",
- "wikimedia/composer-merge-plugin": "1.4.0",
+ "wikimedia/composer-merge-plugin": "1.4.1",
"wikimedia/html-formatter": "1.0.1",
"wikimedia/ip-set": "1.1.0",
"wikimedia/php-session-serializer": "1.0.4",
"hamcrest/hamcrest-php": "^2.0",
"jakub-onderka/php-parallel-lint": "0.9.2",
"jetbrains/phpstorm-stubs": "dev-master#1b9906084d6635456fcf3f3a01f0d7d5b99a578a",
- "justinrainbow/json-schema": "~3.0",
+ "justinrainbow/json-schema": "~5.2",
"mediawiki/mediawiki-codesniffer": "0.8.1",
"monolog/monolog": "~1.22.1",
"nikic/php-parser": "2.1.0",
"url": {
"type": "string",
"description": "URL to the homepage for the extension.",
- "format": "uri"
+ "format": "uri-reference"
},
"description": {
"type": "string",
"url": {
"type": "string",
"description": "URL to the homepage for the extension.",
- "format": "uri"
+ "format": "uri-reference"
},
"description": {
"type": "string",
"apihelp-parse-paramvalue-prop-sections": "Fournit les sections dans le wikitexte analysé.",
"apihelp-parse-paramvalue-prop-revid": "Ajoute l’ID de révision de la page analysée.",
"apihelp-parse-paramvalue-prop-displaytitle": "Ajoute le titre du wikitexte analysé.",
- "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">Désuet.</span> Fournit les éléments à mettre dans le <code><head></code> de la page.",
+ "apihelp-parse-paramvalue-prop-headitems": "Fournit les éléments à mettre dans le <code><head></code> de la page.",
"apihelp-parse-paramvalue-prop-headhtml": "Fournit le <code><head></code> analysé de la page.",
"apihelp-parse-paramvalue-prop-modules": "Fournit les modules ResourceLoader utilisés sur la page. Pour les charger, utiliser <code>mw.loader.using()</code>. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
"apihelp-parse-paramvalue-prop-jsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page. Pour les appliquer, utiliser <code>mw.config.set()</code>.",
"apihelp-query+filearchive-paramvalue-prop-mime": "Ajoute le MIME de l’image.",
"apihelp-query+filearchive-paramvalue-prop-mediatype": "Ajoute le type de média de l’image.",
"apihelp-query+filearchive-paramvalue-prop-metadata": "Liste les métadonnées Exif pour la version de l’image.",
- "apihelp-query+filearchive-paramvalue-prop-bitdepth": "Ajoute la profondeur de bit de la version.",
+ "apihelp-query+filearchive-paramvalue-prop-bitdepth": "Ajoute la profondeur de bits de la version.",
"apihelp-query+filearchive-paramvalue-prop-archivename": "Ajoute le nom de fichier de la version d’archive pour les versions autres que la dernière.",
"apihelp-query+filearchive-example-simple": "Afficher une liste de tous les fichiers supprimés",
"apihelp-query+filerepoinfo-summary": "Renvoyer les méta-informations sur les référentiels d’images configurés dans le wiki.",
"apihelp-query+revisions+base-paramvalue-prop-parsedcomment": "Commentaire analysé de l’utilisateur sur la révision.",
"apihelp-query+revisions+base-paramvalue-prop-content": "Texte de la révision.",
"apihelp-query+revisions+base-paramvalue-prop-tags": "Balises de la révision.",
- "apihelp-query+revisions+base-paramvalue-prop-parsetree": "L’arbre d’analyse XML du contenu de la révision (nécessite le modèle de contenu <code>$1</code>).",
+ "apihelp-query+revisions+base-paramvalue-prop-parsetree": "<span class=\"apihelp-deprecated\">Deprecated.</span> Utiliser <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> ou <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd> à la place. L’arbre d’analyse XML du contenu de la révision (nécessite le modèle de contenu <code>$1</code>).",
"apihelp-query+revisions+base-param-limit": "Limiter le nombre de révisions retournées.",
- "apihelp-query+revisions+base-param-expandtemplates": "Développer les modèles dans le contenu de la révision (nécessite $1prop=content).",
- "apihelp-query+revisions+base-param-generatexml": "Générer l’arbre d’analyse XML pour le contenu de la révision (nécessite $1prop=content ; remplacé par <kbd>$1prop=parsetree</kbd>).",
- "apihelp-query+revisions+base-param-parse": "Analyser le contenu de la révision (nécessite $1prop=content). Pour des raisons de performance, si cette option est utilisée, $1limit est forcé à 1.",
+ "apihelp-query+revisions+base-param-expandtemplates": "Utiliser <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> à la place. Développer les modèles dans le contenu de la révision (nécessite $1prop=content).",
+ "apihelp-query+revisions+base-param-generatexml": "Utiliser <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> ou <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd> à la place. Générer l’arbre d’analyse XML pour le contenu de la révision (nécessite $1prop=content).",
+ "apihelp-query+revisions+base-param-parse": "Utiliser <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd> à la place. Analyser le contenu de la révision (nécessite $1prop=content). Pour des raisons de performance, si cette option est utilisée, $1limit est forcé à 1.",
"apihelp-query+revisions+base-param-section": "Récupérer uniquement le contenu de ce numéro de section.",
- "apihelp-query+revisions+base-param-diffto": "ID de révision à prendre pour comparer chaque révision. Utiliser <kbd>prev</kbd>, <kbd>next</kbd> et <kbd>cur</kbd> pour la version précédente, suivante et actuelle respectivement.",
- "apihelp-query+revisions+base-param-difftotext": "Texte auquel comparer chaque révision. Compare uniquement un nombre limité de révisions. Écrase <var>$1diffto</var>. Si <var>$1section</var> est positionné, seule cette section sera comparée avec ce texte.",
- "apihelp-query+revisions+base-param-difftotextpst": "Effectuer une transformation avant enregistrement sur le texte avant de le comparer. Valide uniquement quand c’est utilisé avec <var>$1difftotext</var>.",
+ "apihelp-query+revisions+base-param-diffto": "Utiliser <kbd>[[Special:ApiHelp/compare|action=compare]]</kbd> à la place. ID de révision à prendre pour comparer chaque révision. Utiliser <kbd>prev</kbd>, <kbd>next</kbd> et <kbd>cur</kbd> pour la version précédente, suivante et actuelle respectivement.",
+ "apihelp-query+revisions+base-param-difftotext": "Utiliser <kbd>[[Special:ApiHelp/compare|action=compare]]</kbd> à la place. Texte auquel comparer chaque révision. Compare uniquement un nombre limité de révisions. Écrase <var>$1diffto</var>. Si <var>$1section</var> est positionné, seule cette section sera comparée avec ce texte.",
+ "apihelp-query+revisions+base-param-difftotextpst": "Utiliser <kbd>[[Special:ApiHelp/compare|action=compare]]</kbd> à la place. Effectuer une transformation avant enregistrement sur le texte avant de le comparer. Valide uniquement quand utilisé avec <var>$1difftotext</var>.",
"apihelp-query+revisions+base-param-contentformat": "Format de sérialisation utilisé pour <var>$1difftotext</var> et attendu pour la sortie du contenu.",
"apihelp-query+search-summary": "Effectuer une recherche en texte intégral.",
"apihelp-query+search-param-search": "Rechercher les titres de page ou le contenu correspondant à cette valeur. Vous pouvez utiliser la chaîne de recherche pour invoquer des fonctionnalités de recherche spéciales, selon ce que le serveur de recherche du wiki implémente.",
"apihelp-query+userinfo-paramvalue-prop-rights": "Liste tous les droits qu’a l’utilisateur actuel.",
"apihelp-query+userinfo-paramvalue-prop-changeablegroups": "Liste les groupes pour lesquels l’utilisateur actuel peut ajouter ou supprimer.",
"apihelp-query+userinfo-paramvalue-prop-options": "Liste toutes les préférences qu’a définies l’utilisateur actuel.",
- "apihelp-query+userinfo-paramvalue-prop-preferencestoken": "<span class=\"apihelp-deprecated\">Obsolete.</span> Obtenir un jeton pour modifier les préférences de l’utilisateur actuel.",
+ "apihelp-query+userinfo-paramvalue-prop-preferencestoken": "Obtenir un jeton pour modifier les préférences de l’utilisateur actuel.",
"apihelp-query+userinfo-paramvalue-prop-editcount": "Ajoute le compteur de modifications de l’utilisateur actuel.",
"apihelp-query+userinfo-paramvalue-prop-ratelimits": "Liste toutes les limites de débit s’appliquant à l’utilisateur actuel.",
"apihelp-query+userinfo-paramvalue-prop-realname": "Ajoute le vrai nom de l’utilisateur actuel.",
"api-format-title": "Résultat de l’API de MediaWiki",
"api-format-prettyprint-header": "Voici la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre <var>format</var> pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez <kbd>format=$2</kbd>.\n\nVoyez la [[mw:Special:MyLanguage/API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
"api-format-prettyprint-header-only-html": "Ceci est une représentation HTML à des fins de débogage, et n’est pas approprié pour une utilisation applicative.\n\nVoir la [[mw:Special:MyLanguage/API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
+ "api-format-prettyprint-header-hyperlinked": "Voici la représentation HTML du format $1. HTML est bien pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre <var>format</var> pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez [$3 <kbd>format=$2</kbd>].\n\nVoir la [[mw:API|documentation complète]], ou l’ [[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
"api-format-prettyprint-status": "Cette réponse serait retournée avec l'état HTTP $1 $2.",
"api-login-fail-aborted": "L’authentification nécessite une interaction avec l’utilisateur, qui n’est pas prise en charge par <kbd>action=login</kbd>. Pour pouvoir se connecter avec <kbd>action=login</kbd>, voyez [[Special:BotPasswords]]. Pour continuer à utiliser la connexion du compte principal, voyez <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
"api-login-fail-aborted-nobotpw": "L’authentification nécessite une interaction avec l’utilisateur, qui n’est pas prise en charge par <kbd>action=login</kbd>. Pour se connecter, voyez <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
"apierror-notarget": "Vous n’avez pas spécifié une cible valide pour cette action.",
"apierror-notpatrollable": "La révision r$1 ne peut pas être patrouillée car elle est trop ancienne.",
"apierror-nouploadmodule": "Aucun module de téléversement défini.",
- "apierror-offline": "Impossible de continuer du fait de problèmes de connexion au réseau. Assurez-vous d’avoir une connexion internet active et réessayez.",
+ "apierror-offline": "Impossible de continuer du fait de problèmes de connexion au réseau. Assurez-vous d’avoir une connexion internet opérationnelle et réessayez.",
"apierror-opensearch-json-warnings": "Les avertissements ne peuvent pas être représentés dans le format JSON OpenSearch.",
"apierror-pagecannotexist": "L’espace de noms ne permet pas de pages réelles.",
"apierror-pagedeleted": "La page a été supprimée depuis que vous avez récupéré son horodatage.",
"apihelp-resetpassword-example-email": "<kbd>user@example.com</kbd> 이메일 주소를 가진 모든 사용자에 대해 비밀번호 재설정 이메일을 보냅니다.",
"apihelp-revisiondelete-summary": "판을 삭제하거나 되살립니다.",
"apihelp-revisiondelete-param-reason": "삭제 또는 복구 이유.",
+ "apihelp-rollback-summary": "문서의 마지막 편집을 취소합니다.",
"apihelp-rollback-param-tags": "되돌리기를 적용하기 위해 태그합니다.",
"apihelp-rollback-param-watchlist": "현재 사용자의 주시목록에서 문서를 무조건적으로 추가하거나 제거하거나, 환경 설정을 사용하거나 주시를 변경하지 않습니다.",
"apihelp-rollback-example-simple": "<kbd>Project:대문</kbd> 문서의 <kbd>예시</kbd>의 마지막 판을 되돌리기",
"apihelp-compare-param-fromtitle": "Pierwszy tytuł do porównania.",
"apihelp-compare-param-fromid": "ID pierwszej strony do porównania.",
"apihelp-compare-param-fromrev": "Pierwsza wersja do porównania.",
+ "apihelp-compare-param-frompst": "Dokonaj zapisu wersji roboczej transformacji przeprowadzonej na <var>fromtext</var>.",
"apihelp-compare-param-totitle": "Drugi tytuł do porównania.",
"apihelp-compare-param-toid": "Numer drugiej strony do porównania.",
"apihelp-compare-param-torev": "Druga wersja do porównania.",
public function getDescriptionRenderUrl( $name, $lang = null ) {
$query = 'action=render';
if ( !is_null( $lang ) ) {
- $query .= '&uselang=' . $lang;
+ $query .= '&uselang=' . urlencode( $lang );
}
if ( isset( $this->scriptDirUrl ) ) {
return $this->makeUrl(
public $supportedEngines = [ 'InnoDB', 'MyISAM' ];
- public $minimumVersion = '5.0.3';
+ public $minimumVersion = '5.5.8';
public $webUserPrivs = [
'DELETE',
"config-outdated-sqlite": "'''Attention''': vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
"config-no-fts3": "'''Attention :''' SQLite est compilé sans le module [//sqlite.org/fts3.html FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
"config-pcre-old": "'''Fatal :''' PCRE $1 ou ultérieur est nécessaire.\nVotre binaire PHP est lié avec PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Plus d’information sur PCRE].",
- "config-pcre-no-utf8": "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans le support PCRE_UTF8.\nMédiaWiki nécessite la gestion d’UTF-8 pour fonctionner correctement.",
+ "config-pcre-no-utf8": "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans la prise en charge de PCRE_UTF8.\nMédiaWiki nécessite la gestion d’UTF-8 pour fonctionner correctement.",
"config-memory-raised": "Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.",
"config-memory-bad": "'''Attention :''' Le paramètre <code>memory_limit</code> de PHP est à $1.\nCette valeur est probablement trop faible.\nIl est possible que l’installation échoue !",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] est installé",
"config-apcu": "[http://www.php.net/apcu APCu] est installé",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] est installé",
"config-no-cache-apcu": "<strong>Attention :</strong> Impossible de trouver [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nLa mise en cache d'objets n'est pas activée.",
- "config-mod-security": "'''Attention''': Votre serveur web a [http://modsecurity.org/ mod_security] activé. S'il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d'autres applications qui permettent aux utilisateurs de publier un contenu quelconque.\nReportez-vous à [http://modsecurity.org/documentation/ la documentation de mod_security] ou contactez le support de votre hébergeur si vous rencontrez des erreurs aléatoires.",
+ "config-mod-security": "'''Attention''': Votre serveur web a [http://modsecurity.org/ mod_security] activé. S’il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d’autres applications qui permettent aux utilisateurs de publier un contenu quelconque.\nReportez-vous à [http://modsecurity.org/documentation/ la documentation de mod_security] ou contactez le soutien de votre hébergeur si vous rencontrez des erreurs aléatoires.",
"config-diff3-bad": "GNU diff3 introuvable.",
"config-git": "Logiciel de contrôle de version Git trouvé : <code>$1</code>.",
"config-git-bad": "Logiciel de contrôle de version Git non trouvé.",
"config-type-oracle": "Oracle",
"config-type-mssql": "Microsoft SQL Server",
"config-support-info": "MediaWiki prend en charge ces systèmes de bases de données :\n\n$1\n\nSi vous ne voyez pas le système de base de données que vous essayez d’utiliser ci-dessous, alors suivez les instructions ci-dessus (voir liens) pour activer la prise en charge.",
- "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] est le premier choix pour MediaWiki et est le mieux pris en charge. MediaWiki fonctionne aussi avec [{{int:version-db-mariadb-url}} MariaDB] et [{{int:version-db-percona-url}} Percona Server], qui sont compatibles avec MySQL. ([http://www.php.net/manual/en/mysqli.installation.php Comment compiler PHP avec le support MySQL])",
- "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] est un système de base de données populaire et ''open source'' qui peut être une alternative à MySQL ([http://www.php.net/manual/en/pgsql.installation.php Comment compiler PHP avec le support de PostgreSQL]).",
+ "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] est le premier choix pour MediaWiki et est le mieux pris en charge. MediaWiki fonctionne aussi avec [{{int:version-db-mariadb-url}} MariaDB] et [{{int:version-db-percona-url}} Percona Server], qui sont compatibles avec MySQL. ([http://www.php.net/manual/en/mysqli.installation.php Comment compiler PHP avec la prise en charge de MySQL])",
+ "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] est un système de base de données populaire en ''source ouverte'' qui peut être une alternative à MySQL ([http://www.php.net/manual/en/pgsql.installation.php Comment compiler PHP avec la prise en charge de PostgreSQL]).",
"config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] est un système de base de données léger bien pris en charge. ([http://www.php.net/manual/fr/pdo.installation.php Comment compiler PHP avec la prise en charge de SQLite], en utilisant PDO)",
- "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] est un système commercial de gestion de base de données d’entreprise. ([http://www.php.net/manual/en/oci8.installation.php Comment compiler PHP avec le support OCI8])",
- "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] est une base de données commerciale d’entreprise pour Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php Comment compiler PHP avec le support de SQLSRV])",
+ "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] est un système commercial de gestion de base de données d’entreprise. ([http://www.php.net/manual/en/oci8.installation.php Comment compiler PHP avec la prise en charge d’OCI8])",
+ "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] est une base de données commerciale d’entreprise pour Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php Comment compiler PHP avec la prise en charge de SQLSRV])",
"config-header-mysql": "Paramètres de MySQL",
"config-header-postgres": "Paramètres de PostgreSQL",
"config-header-sqlite": "Paramètres de SQLite",
*/
use MediaWiki\Logger\LoggerFactory;
use Wikimedia\Rdbms\ResultWrapper;
+use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IDatabase;
/**
$rows = $this->getRows();
$opts = $this->getOptions();
if ( $rows === false ) {
- if ( !$this->including() ) {
- $this->doHeader( $opts, 0 );
- $this->outputNoResults();
- $this->getOutput()->setStatusCode( 404 );
- }
-
- return;
+ $rows = new FakeResultWrapper( [] );
}
$batch = new LinkBatch;
/** @var integer User::READ_* constant bitfield used to load data */
protected $queryFlagsUsed = self::READ_NORMAL;
- /** @var string Indicates type of block (used for eventlogging)
- * Permitted values: 'cookie-block', 'proxy-block', 'openproxy-block', 'xff-block',
- * 'config-block'
- */
- public $blockTrigger = false;
-
public static $idCacheByName = [];
/**
'address' => $ip,
'systemBlock' => 'proxy',
] );
- $this->blockTrigger = 'proxy-block';
} elseif ( $this->isAnon() && $this->isDnsBlacklisted( $ip ) ) {
$block = new Block( [
'byText' => wfMessage( 'sorbs' )->text(),
'address' => $ip,
'systemBlock' => 'dnsbl',
] );
- $this->blockTrigger = 'openproxy-block';
}
}
# Mangle the reason to alert the user that the block
# originated from matching the X-Forwarded-For header.
$block->mReason = wfMessage( 'xffblockreason', $block->mReason )->text();
- $this->blockTrigger = 'xff-block';
}
}
'anonOnly' => true,
'systemBlock' => 'wgSoftBlockRanges',
] );
- $this->blockTrigger = 'config-block';
}
if ( $block instanceof Block ) {
$this->mBlockedby = '';
$this->mHideName = 0;
$this->mAllowUsertalk = false;
- $this->blockTrigger = false;
}
// Avoid PHP 7.1 warning of passing $this by reference
$useBlockCookie = ( $config->get( 'CookieSetOnAutoblock' ) === true );
if ( $blockIsValid && $useBlockCookie ) {
// Use the block.
- $this->blockTrigger = 'cookie-block';
return $tmpBlock;
} else {
// If the block is not valid, remove the cookie.
"pageinfo-language-change": "зьмяніць",
"pageinfo-content-model": "Мадэль зьместу старонкі",
"pageinfo-content-model-change": "зьмяніць",
- "pageinfo-robot-policy": "Ð\86ндÑ\8dкÑ\81аÑ\86Ñ\8bÑ\8f паÑ\88Ñ\83кавÑ\96камі",
+ "pageinfo-robot-policy": "Ð\86ндÑ\8dкÑ\81аÑ\86Ñ\8bÑ\8f поÑ\88Ñ\83кавÑ\8bмÑ\96 Ñ\80обаÑ\82амі",
"pageinfo-robot-index": "Дазволеная",
"pageinfo-robot-noindex": "Не дазволеная",
"pageinfo-watchers": "Колькасьць назіральнікаў і назіральніц",
"changecredentials": "Зьмена ўліковых зьвестак",
"changecredentials-submit": "Зьмяніць уліковыя зьвесткі",
"changecredentials-invalidsubpage": "$1 не зьяўляецца слушным тыпам уліковых зьвестак.",
+ "changecredentials-success": "Вашыя ўліковыя зьвесткі былі зьмененыя.",
"removecredentials": "Выдаленьне ўліковых зьвестак",
"removecredentials-submit": "Выдаліць уліковыя зьвесткі",
+ "removecredentials-invalidsubpage": "$1 не зьяўляецца слушным тыпам уліковых зьвестак.",
+ "removecredentials-success": "Вашыя ўліковыя зьвесткі былі выдаленыя.",
"credentialsform-provider": "Тып уліковых зьвестак:",
"credentialsform-account": "Назва рахунку:"
}
"mergehistory-fail-self-merge": "Изходната и целевата страница се еднакви.",
"mergehistory-no-source": "Изходната страница $1 не съществува.",
"mergehistory-no-destination": "Целевата страница $1 не съществува.",
- "mergehistory-invalid-source": "Ð\98зÑ\85однаÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\82Ñ\80Ñ\8fбва да има коÑ\80екÑ\82но име.",
- "mergehistory-invalid-destination": "ЦелеваÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\82Ñ\80Ñ\8fбва да има коÑ\80екÑ\82но име.",
+ "mergehistory-invalid-source": "Ð\98зÑ\85однаÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\82Ñ\80Ñ\8fбва да има валидно заглавие.",
+ "mergehistory-invalid-destination": "ЦелеваÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\82Ñ\80Ñ\8fбва да има валидно заглавие.",
"mergehistory-autocomment": "Слята [[:$1]] в [[:$2]]",
"mergehistory-comment": "Слята [[:$1]] в [[:$2]]: $3",
"mergehistory-same-destination": "Изходната и целевата страница не могат да съвпадат",
"tags-create-reason": "Причина:",
"tags-create-submit": "Създаване",
"tags-create-no-name": "Трябва да посочите име на етикет.",
- "tags-create-invalid-chars": "Имената на етикети не трябва да съдържат запетайки (<code>,</code>) или наклонени черти (<code>/</code>).",
+ "tags-create-invalid-chars": "Имената на етикети не трябва да съдържат запетайки (<code>,</code>), прави черти (<code>|</code>) или наклонени черти (<code>/</code>).",
"tags-create-invalid-title-chars": "Имената на етикети не трябва да съдържат знаци, които не могат да бъдат използвани в заглавия на страници.",
"tags-create-already-exists": "Етикет „$1“ вече съществува.",
"tags-create-warnings-below": "Искате ли да продължите със създаването на етикета?",
"filedelete-success": "'''$1''' के मिटा दिहल गईल बा।",
"filedelete-nofile": "'''$1''' उपलब्ध नईखे।",
"mimesearch": "MIME खोज",
- "unwatchedpages": "धà¥\8dयान न दिहल à¤\97à¤\87ल पन्ना",
- "listredirects": "पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन à¤\95à¥\87 सà¥\82à¤\9aà¥\80",
- "unusedtemplates": "बिना पà¥\8dरयà¥\8bà¤\97 à¤\95à¥\87 à¤\96ाà¤\81à¤\9aा",
+ "unwatchedpages": "बिना धियानसà¥\82à¤\9aà¥\80 मà¥\87à¤\82 à¤\9cà¥\8bड़ल पन्ना",
+ "listredirects": "à¤\85नà¥\81पà¥\8dरà¥\87षण पनà¥\8dना सठà¤\95à¥\87 लिसà¥\8dà¤\9f",
+ "unusedtemplates": "बिना à¤\87सà¥\8dतà¥\87माल à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f",
"randompage": "अट्रेंडम पन्ना",
"randomincategory": "श्रेणी में अनियमित पन्ना",
"randomincategory-nopages": "[[:Category:$1|$1]] श्रेणी में कउनो पन्ना नइखे।",
"nimagelinks": "Used on $1 {{PLURAL:$1|पन्ना|पन्ना सभ}}",
"ntransclusions": "used on $1 {{PLURAL:$1|पन्ना|पन्ना सभ}}",
"specialpage-empty": "एह रिपोर्ट खातिर कौनों रिजल्ट नइखे",
- "lonelypages": "à¤\85नाथ पन्ना",
+ "lonelypages": "à¤\85à¤\95à¥\87ल à¤\9bà¥\82à¤\9fल पन्ना",
"lonelypagestext": "ई पन्ना कुल कौनों दूसर पन्ना से नइखें जुड़ल न कौनों में ट्रांसक्लूड बाड़ें",
"uncategorizedpages": "बिना श्रेणी के पन्ना",
"uncategorizedcategories": "बिना श्रेणी के श्रेणी",
"uncategorizedtemplates": "बिना श्रेणी के टेम्पलेट",
"unusedcategories": "बिना इस्तेमाल श्रेणी",
"unusedimages": "बिना इस्तेमाल फाइल",
- "wantedcategories": "शà¥\8dरà¥\87णà¥\80 à¤\9aाहत बा",
- "wantedpages": "पनà¥\8dना à¤\9aाहत बा",
- "wantedfiles": "à¤\9cरà¥\81रत à¤\95à¥\87 फाà¤\88लसभ",
+ "wantedcategories": "à¤\9cरà¥\82रत à¤\95à¥\87 शà¥\8dरà¥\87णà¥\80 सà¤",
+ "wantedpages": "à¤\9cरà¥\82रत à¤\95à¥\87 पनà¥\8dना सà¤",
+ "wantedfiles": "à¤\9cरà¥\82रत à¤\95à¥\87 फाà¤\87ल सभ",
"wantedfiletext-nocat-noforeign": "ई फाइल सभ इस्तेमाल में बाटे बाकी मौजूद नइखे।",
- "wantedtemplates": "à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f à¤\9cिनहन à¤\95à¥\87 à¤\9cरà¥\82रत बा",
+ "wantedtemplates": "à¤\9cरà¥\82रत à¤\95à¥\87 à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f सब",
"mostlinked": "पन्ना जहाँ सभसे ढेर कड़ी आ के जुड़त बा",
"mostlinkedcategories": "सबसे अधिक से जुड़ल श्रेणी",
"mostlinkedtemplates": "सभसे ढेर ट्रांसक्लूड पन्ना",
"mostimages": "पन्ना जिनहन पर सभसे ढेर फाइल बा",
"mostinterwikis": "पन्ना जिनहन में सभसे ढेर इंटरविकि कड़ी बा",
"mostrevisions": "सभसे ढेर बदलाव इतिहास वाला पन्ना",
- "prefixindex": "सà¤\97रà¥\80 पनà¥\8dना à¤\9cिनहन मà¥\87à¤\82 à¤\89पसरà¥\8dà¤\97 बा",
+ "prefixindex": "सà¥\81रà¥\81à¤\86तà¥\80 à¤\85à¤\95à¥\8dषर à¤\85नà¥\81सार पनà¥\8dना à¤\96à¥\8bà¤\9cà¥\80à¤\82",
"prefixindex-namespace": "सगरी पन्ना जिनहन में उपसर्ग ($1 नाँवस्थान) बा",
"prefixindex-submit": "देखीं",
- "shortpages": "à¤\9bà¥\8bà¤\9f पनà¥\8dना",
- "longpages": "लमहर पनà¥\8dना",
+ "shortpages": "सà¤à¤¸à¥\87 à¤\9bà¥\8bà¤\9f पनà¥\8dना सब",
+ "longpages": "सà¤à¤¸à¥\87 लमहर पनà¥\8dना सब",
"deadendpages": "अंतिम छोर पर छूटल पन्ना",
"protectedpages": "सुरक्षित पन्ना",
"protectedpages-noredirect": "अनुप्रेषण छिपाईं",
"usereditcount": "$1 {{PLURAL:$1|संपादन|संपादन सभ}}",
"newpages": "नया पन्ना",
"newpages-username": "प्रयोगकर्तानाँव:",
- "ancientpages": "पà¥\81रान पन्ना",
+ "ancientpages": "सबसà¥\87 पà¥\81रान सà¤\82शà¥\8bधन वाला पन्ना",
"move": "स्थानांतरण",
"movethispage": "एह पन्ना के स्थानांतरण करीं",
"suppress": "ओवरसाइटर",
"search-suggest": "Jeste li mislili: $1",
"search-rewritten": "Prikazujem rezultate za $1. Umjesto toga potraži $2.",
"search-interwiki-caption": "Rezultati s bratskih projekata",
- "search-interwiki-default": "$1 rezultati:",
+ "search-interwiki-default": "Rezultati sa $1:",
"search-interwiki-more": "(više)",
"search-interwiki-more-results": "više rezultata",
"search-relatedarticle": "Povezano",
"viewsource-title": "Zdrojowi tekst starnë $1",
"viewsourcetext": "Zdrojowi tekst starnë mòże przezérac ë kòpiérowac.",
"editinginterface": "'''ÒSTRZÉGA:''' Editëjesz starnã, jakô zamëkô w se tekst interfejsu softwôrë. Wszëtczé zmianë tu zrobioné bãdze widzec na interfejse jinszëch brëkòwników.\nPrzemëszlë dolmaczënié na [https://translatewiki.net/wiki/Main_Page?setlang=csb translatewiki.net], ekstra ùdbie lokalizacëji softwôrë MediaWiki.",
+ "exception-nologin": "Nie jes wlogòwôny/a",
"logouttext": "'''Jes wëlogòwóny.'''\nMòżesz robic dali na {{SITENAME}} jakno anonimòwi brëkòwnik abò sã <span class='plainlinks'>[$1 wlogòwac]</span> znowa jakno równy, a bò jinszi brëkòwnik.\nBôczë, że do czasu wëczëszczenia pòdrãczny pamiãcë przezérnika, niejedné starnë bãdą wëzdrzëc jakbë të bëł wlogòwóny.",
+ "welcomeuser": "Witôj, $1!",
"yourname": "Miono brëkòwnika",
"userlogin-yourname": "Miono brëkòwnika",
"userlogin-yourname-ph": "Wpiszë swòjé miono brëkòwnika",
+ "createacct-another-username-ph": "Wpiszë miono brëkòwnika",
"yourpassword": "Twòja parola",
"userlogin-yourpassword": "Parola",
"userlogin-yourpassword-ph": "Wprowadzë swòją parolã",
"createacct-yourpasswordagain": "Pòcwierdzë parolã",
"createacct-yourpasswordagain-ph": "Wprowôdzë parolã przistãpù znowa",
"userlogin-remembermypassword": "Nie wëlogùjë mie",
+ "cannotlogin-title": "Ni mòże sã wlogòwac",
+ "cannotlogin-text": "Logòwanié nie je mòżlëwé",
+ "cannotloginnow-title": "Ni mòże sã terô wlogòwac",
+ "cannotcreateaccount-title": "Ni mòże ùsôdzëc kòntów",
"yourdomainname": "Twòjô domena",
"login": "Wlogùjë mie",
"nav-login-createaccount": "Logòwanié",
"createaccount": "Założë nowé kònto",
"userlogin-resetpassword-link": "Zabëtô parola?",
"userlogin-helplink2": "Pòmòc przë logòwaniu",
+ "createacct-emailrequired": "E-mailowô adresa",
"createacct-emailoptional": "Adresa e-mail (òptacjowò)",
"createacct-email-ph": "Wpiszë swóją e-mailową adresã.",
+ "createacct-another-email-ph": "Wpiszë e-mailową adresã",
"createaccountmail": "Ùżij timczasowégò hasła i wësli je na pòdóny adres e-mail.",
"createacct-reason": "Przëczëna",
"createacct-submit": "Ùsôdzë kònto",
+ "createacct-another-submit": "Ùsadzë kònto",
+ "createacct-continue-submit": "Biëj dali z ùsadzaniém kònta",
+ "createacct-another-continue-submit": "Biëj dali z ùsadzaniém kònta",
"createacct-benefit-heading": "{{grammar:B.lp|{{SITENAME}}}} ùsôdzają lëdze taczi jak Të.",
"createacct-benefit-body1": "{{PLURAL:$1|edicëjô|edicëje|edicëjów}}",
"createacct-benefit-body2": "{{PLURAL:$1|starna|starnë|starnów}}",
"badretype": "Wprowadzone parole jinaczą sã midze sobą.",
"userexists": "To miono brëkòwnika je ju w ùżëcym. Proszã wëbrac jiné miono.",
"loginerror": "Fela logòwaniô",
+ "createacct-error": "Fela ùsadzaniô kònta",
"loginsuccesstitle": "Ùdałé logòwanié",
"loginsuccess": "Të jes wlogòwóny do {{SITENAME}} jakno \"$1\".",
"nosuchuser": "Nie mô brëkòwnika ò mionie \"$1\".\nW pòzwie brëkòwnika mô znaczenié wiôlgòsc lëtrów.\nSprawdzë pisënk abò [[Special:CreateAccount|ùsadzë nowé kònto]].",
"oct": "Pthi",
"nov": "Ptht",
"dec": "Pthr",
- "pagecategories": "{{PLURAL:$1|atëkthok|atëkthuɔk}}",
+ "pagecategories": "{{PLURAL:$1|Atëkthok|Atëkthuɔk}}",
"category_header": "Apääm në atëkthok \"$1\"ic",
- "subcategories": "Tëktëëkor",
- "category-media-header": "Kuat në alëk $1 yic",
+ "subcategories": "Tëktëëkkor",
+ "category-media-header": "Kuat në bekätakthook $1 yic",
"hidden-categories": "{{PLURAL:$1|Atëkthok cï thiaan|Atëkthuɔk cï thiaan}}",
- "category-subcat-count": "{{PLURAL:$2|Akuutkäŋë anɔŋ akutkäŋ-thiikɛ̈ kepɛ̈c.|Akuutkäŋë anɔŋ \n{{PLURAL:$1|akuutkäŋë|$1 akuutkäŋkɛ̈}}, në $2 yic̈;}}",
+ "category-subcat-count": "{{PLURAL:$2|Bekätakthookë anɔŋ bekätakthookthiikɛ̈ kepɛ̈c.|Akuutkäŋë anɔŋ \n{{PLURAL:$1|bekätakthookë|$1 bekäŋtakthookkɛ̈}}, në $2 yic̈;}}",
"category-article-count": "{{PLURAL:$2|Bekätakthookë anɔŋic yärë yetök.|{{PLURAL:$1|Yärë atɔ̈|$1 yɔ̈rkɛ̈ aatɔ̈}} bekätakthook thiöökë yic, në $2 yic.}}",
"category-file-count": "{{PLURAL:$2|Bekätakthook kän anɔŋic wëtmät kän etök.|{{PLURAL:|Wëtmät de $1 thiöökë atɔ̈ |wëlmäät ke $1 thiookkɛ̈ aa tɔ̈}} në bekätakthook känic, në $2 yiic ëbɛ̈n.}}",
"listingcontinuesabbrev": "ɣäthtueŋ",
"editsection": "cokic",
"editold": "cokic",
"editlink": "cokic",
- "viewsourcelink": "Ɣoi tënëyök",
+ "viewsourcelink": "ɣoi tënëyök",
"editsectionhint": "Cokic akut: $1",
"toc": "Kätɔ̈",
"showtoc": "nyooth",
"bold_sample": "Gɔ̈t dïtnyin",
"bold_tip": "Gɔ̈t dïtnyin",
"italic_sample": "Rïugäät",
- "italic_tip": "Gɔ̈t cïrïu",
+ "italic_tip": "Rïugäät",
"link_sample": "Nuɛ̈të rinënyooth",
"link_tip": "Nuɛ̈t akenythïn",
"extlink_sample": "http://www.example.com ruk rin",
"showpreview": "Nyooth këkoŋtiŋ",
"showdiff": "Nyoothë käcëwaar",
"anoneditwarning": "<strong>Nyïïn:</strong> Yin akɛ̈cë ŋaanythïn. IP de tëcieŋdu abë tïc tënë jäŋ ëbɛ̈n të gɛ̈t yïn ke waar käŋ. Të <strong>[$1 bɛk yïn ɣöt]</strong> tëdɛ̈ <strong>[$2 të ciɛk yïn cinakuɛ̈n]</strong>, ka kä gɔ̈tke ku kä waarke (ku kä kɔ̈k nɔŋ kony ayɛ) aabï ke gät rinëduluuiku.",
- "loginreqlink": "Å\8aaanythïn",
+ "loginreqlink": "Å\8baanythïn",
"newarticletext": "Yïn acë anuët lɔ apam liu buɔɔthcök.\nTë wïc yin ba apam kënë cak, ka jɔk ba gɔ̈t në akeer tɔ̈ piinyic (tïŋ [$1 apamëkuɔny] të wic yin ba wëlëŋïc yök).\nTë tɔ̈ yïn ëtɛ̈n ke kɛ̈ce ŋuun, kayï tuany gakyeethany de <strong>ciëën</strong> në akuenarekwëldu-yic.",
"noarticletext": "Amɛn, acïn gɔ̈t tɔ̈ ee apam thiöökë-yic.\nYïn alëu ba [[Special:Search/{{PAGENAME}}|wɛ̈tnhom thiööke göör]] në apam kɔ̈kiic,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} göör cökthɛɛr nɔŋkaariic],\nnadëk [{{fullurl:{{FULLPAGENAME}}|action=edit}} cak apamë]</span>.",
"noarticletext-nopermission": "Amɛn, acïn gär ee apam kënë yic. Yïn alëu ba [[Special:Search/{{PAGENAME}}|këjiɛɛmë de apam thööke göör]] këjiɛɛmë de apam thööke göör në apɛmkɔ̈k yiic, tëdɛ̈ ka <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}] yïn alëu ba athörtɔ̈ɔ̈uke nɔŋ kar ke apam thiöökë gööric ayɛ. Lakin, yïn acï nɔŋ yic ba apam yam cak.",
"search-section": "(akut $1)",
"search-suggest": "Ee $1 yen ca ŋuun?",
"searchall": "ëbɛ̈n",
- "search-showingresults": "{{PLURAL:$4|Käcïyök <riɛl>$1</riɛl> de <riɛl>$3</riɛl>|Këcïyök <riɛl>$1 - $2</riɛl> de <riɛl>$3</riɛl>}}",
+ "search-showingresults": "{{PLURAL:$4|Käcïyök <strong>$1</strong> de <strong>$3</strong>|Këcïyök <strong>$1 - $2</strong> de <strong>$3</strong>}}",
"search-nonefound": "Acin këcïbenbei ë thɔ̈ŋ ke thiëc",
"preferences": "Känyaar",
"mypreferences": "Känyaar",
"recentchangeslinked-toolbox": "Kaceyiicwar nɔŋ kar",
"recentchangeslinked-title": "Weer thöŋ kekë \"$1\"",
"recentchangeslinked-summary": "Kän areny de wɛ̈r cïloi wɛ̈ramɛn tënɔŋ apam nuɛtke apam nhic (nadëk ka nuɛtke kɔcakuut de bekätakthook nhic).\nApam tɔ̈ [[Special:Watchlist|abërtïtdu]] aa <strong>gɔ̈tdïtnyin</strong>.",
- "recentchangeslinked-page": "Rin ë akap",
+ "recentchangeslinked-page": "Rin ë akap:",
"recentchangeslinked-to": "Nyuɔɔthë kä cï ke waar në apɛ̈m cï nuɛ̈ɛ̈t ke apam tiöökë, ku acie kä cï ke waar në yen apam thiöökë yic",
"upload": "Wälë apamduööt",
"filedesc": "Cuutyic",
"filehist-help": "Tuenyë në aköl/akɔ̈licic apamduööt ɣoi kecit rɔt nyuɔɔth në akölic.",
"filehist-current": "ee mënë",
"filehist-datetime": "Aköl/Akɔ̈lic",
- "filehist-thumb": "riöpbundït",
+ "filehist-thumb": "Riöpbundït",
"filehist-thumbtext": "Alelthook ë riöpcök, tɛ̈cït $1",
"filehist-user": "Dului",
"filehist-dimensions": "Thëmthëm",
"sp-contributions-talk": "jam",
"sp-contributions-submit": "Yiɔ̈ɔ̈p",
"whatlinkshere": "Këkerɛkthïn",
- "whatlinkshere-title": "apääm aanyuët tënë \"$1\"",
+ "whatlinkshere-title": "Apääm aanyuët tënë \"$1\"",
"whatlinkshere-page": "Apam:",
"linkshere": "Apɛ̈m bɔ̈ anuët në <riɛl>[[:$1]]</riɛl>:",
"isredirect": "bɛnwel apam",
"istemplate": "tɛ̈wë anuët në athööric ku bë athöördɛ̈ nyooth",
- "isimage": "Nuɛ̈t ë apamduööt",
+ "isimage": "nuɛ̈t ë apamduööt",
"whatlinkshere-prev": "{{PLURAL:$1|ketueŋ|ketueŋ $1}}",
"whatlinkshere-next": "{{PLURAL:$1|la|la $1}}",
"whatlinkshere-links": "← anyuët",
"summary": "Σύνοψη:",
"subject": "Θέμα:",
"minoredit": "Αυτή είναι μια μικροαλλαγή",
- "watchthis": "Παρακολούθηση αυτής της σελίδας",
+ "watchthis": "Παρακολούθηση της σελίδας",
"savearticle": "Αποθήκευση σελίδας",
"savechanges": "Αποθήκευση αλλαγών",
"publishpage": "Δημοσίευση σελίδας",
"botpasswords-created-title": "Botaren pasahitza sortu da",
"botpasswords-updated-title": "Botaren pasahitza eguneratu da",
"botpasswords-deleted-title": "Botaren pasahitza ezabatu da",
+ "botpasswords-deleted-body": "$2 erabiltzailearen $1 errobot izenak duen errobot pasahitza ezabatua izan da.",
"botpasswords-no-provider": "BotPasswordsSessionProvider ez dago eskuragarri.",
"botpasswords-restriction-failed": "Errobot pasahitza murrizketek logina saihesten dute.",
"resetpass_forbidden": "Ezin dira pasahitzak aldatu",
"content-not-allowed-here": "\"$1\" edukia ez dago baimendua [[$2]] orrialdean",
"editwarning-warning": "Orri honetatik irteten bazara, egindako aldaketak galdu egingo dira, beharbada.\nSaioa hasi baduzu, mezu hau kendu dezakezu zure hobespenen orriko «{{int:prefs-editing}}» atalean.",
"editpage-invalidcontentmodel-title": "Eduki eredua ez da onartzen.",
+ "editpage-invalidcontentmodel-text": "$1 eduki eredua ezin da erabili.",
"editpage-notsupportedcontentformat-title": "Eduki formatu hori ez da onartzen",
+ "editpage-notsupportedcontentformat-text": "$2 eduki ereduak ezin da erabili $1 eduki formatuarekin.",
"content-model-wikitext": "wikitestua",
"content-model-text": "testu laua",
"content-model-javascript": "JavaScript",
"node-count-exceeded-category": "Nodo-zenbaketa gainditu den orrialdeak",
"node-count-exceeded-warning": "Orriak nodo-kopuruaren muga gainditu du",
"expansion-depth-exceeded-category": "Orrialdearen espantsio sakonera gainditu da",
+ "expansion-depth-exceeded-category-desc": "Orriak zabalkunde sakonera maximoa gainditzen du.",
"expansion-depth-exceeded-warning": "Espantsio sakonera gainditu duten orrialdeak",
"parser-unstrip-loop-warning": "Loop unstrip bat aurkitu da",
"parser-unstrip-recursion-limit": "Unstrip errekurtsio limitea gainditu da ($1)",
"right-protect": "Orrialde babestuak aldatu eta babes maila aldatu",
"right-editprotected": "Babestutako orrialdeak aldatu (babes jauzirik gabe)",
"right-editsemiprotected": "Aldatu \"{{int:protect-level-autoconfirmed}}\" babesa duten orrialdeak",
+ "right-editcontentmodel": "Aldatu orri bateko eduki eredua",
"right-editinterface": "Erabiltzailearen interfazea aldatu",
"right-editusercss": "Beste lankideen CSS fitxategiak aldatu",
"right-edituserjs": "Beste lankideen JS fitxategiak aldatu",
"rcfilters-clear-all-filters": "Iragazki guztiak garbitu",
"rcfilters-search-placeholder": "Aldaketa berriak iragazi (nabigatu ala idatzi)",
"rcfilters-invalid-filter": "Balio ez duen iragazkia",
+ "rcfilters-empty-filter": "Filtro aktiborik ez dago. Ekarpen guztiak erakusten.",
"rcfilters-filterlist-title": "Iragazkiak",
"rcfilters-filterlist-whatsthis": "Zer da hau?",
"rcfilters-highlightbutton-title": "Nabarmendu emaitzak",
"rcfilters-filterlist-noresults": "Ez da iragazkirik aurkitu",
"rcfilters-filtergroup-registration": "Erabiltzaile erregistroa",
"rcfilters-filter-registered-label": "Erregistratuak",
+ "rcfilters-filter-registered-description": "Sesioa hasi duten editoreak.",
"rcfilters-filter-unregistered-label": "Ez erregistratuak",
+ "rcfilters-filter-unregistered-description": "Saioa hasi ez duten editoreak.",
"rcfilters-filtergroup-authorship": "Ekarpenaren egiletza",
"rcfilters-filter-editsbyself-label": "Zuk egindako aldaketak",
"rcfilters-filter-editsbyself-description": "Zure ekarpenak",
"rcfilters-filter-editsbyother-label": "Besteek egindako aldaketak",
"rcfilters-filter-editsbyother-description": "Aldaketa guztiak norberarenak izan ezik.",
"rcfilters-filter-user-experience-level-newcomer-label": "Iritsiberriak",
+ "rcfilters-filter-user-experience-level-newcomer-description": "10 aldaketa eta 4 ekintza-egun baino gutxiago.",
"rcfilters-filter-user-experience-level-learner-label": "Ikasleak",
"rcfilters-filter-user-experience-level-experienced-label": "Erabiltzaile trebatuak",
"rcfilters-filter-user-experience-level-experienced-description": "30 eguneko jarduera eta 500 aldaketa baino gehiago.",
"rcfilters-filter-previousrevision-label": "Aurreko berrikuspenak",
"rcfilters-filter-excluded": "Baztertua",
"rcfilters-view-tags": "Etiketa aldaketak",
+ "rcfilters-view-tags-tooltip": "Iragazi emaitzak aldaketa etiketak erabiliz",
+ "rcfilters-view-return-to-default-tooltip": "Oinarrizko iragazketa menura bueltatu",
"rcfilters-liveupdates-button": "Zuzenean egindako eguneraketak",
"rcnotefrom": "Jarraian azaltzen diren {{PLURAL:$5|aldaketak}} data honetatik aurrerakoak dira: <strong>$3,$4</strong> (gehienez <b>$1</b> erakusten dira).",
"rclistfrom": "Erakutsi $3 $2 ondorengo aldaketa berriak",
"download": "jaitsi",
"unwatchedpages": "Jarraitu gabeko orrialdeak",
"listredirects": "Birzuzenketen zerrenda",
+ "listduplicatedfiles": "Kopiak dituzten artxiboen zerrenda",
"unusedtemplates": "Erabili gabeko txantiloiak",
"unusedtemplatestext": "Orrialde honetan beste edozein orrialdetan erabiltzen ez diren {{ns:template}} izen-tarteko orrialdeak zerrendatzen dira. Ez ahaztu txantiloietara egon daitezkeen loturak egiaztatzeaz ezabatu aurretik.",
"unusedtemplateswlh": "beste loturak",
"wantedpages-summary": "Lotura gehien dituzten eta existitzen ez diren orrialdeen zerrenda da hau, eurengana birzuzenketak baino ez dituzten orrialdeak kenduta. Eurenganako birzuzenketak dituzten baina existitzen ez diren orrialdeen zerrenda bat ikusteko, [[{{#special:BrokenRedirects}}|apurtutako birzuzenketen zerrendara]] jo dezakezu.",
"wantedpages-badtitle": "Izenburu okerra hautatutako emaitzetan: $1",
"wantedfiles": "Eskatutako fitxategiak",
+ "wantedfiletext-nocat-noforeign": "Hurrengo artxiboak erabiltzen ari dira baina ez dira existitzen.",
"wantedtemplates": "Eskatutako txantiloiak",
"mostlinked": "Gehien lotutako orrialdeak",
"mostlinkedcategories": "Gehien lotutako kategoriak",
"apihelp": "API laguntza",
"apihelp-no-such-module": "Ez da \"$1\" modulua aurkitu.",
"apisandbox": "API proba orria",
+ "apisandbox-jsonly": "API sandbox-a erabiltzeko JavaScript eskatzen da.",
"apisandbox-fullscreen": "Zabaldu panela",
"apisandbox-unfullscreen": "Erakutsi orria",
"apisandbox-submit": "Egin eskaera",
"apisandbox-dynamic-parameters-add-label": "Gehitu parametroa:",
"apisandbox-dynamic-parameters-add-placeholder": "Parametroaren izena",
"apisandbox-dynamic-error-exists": "$1 parametro izena dagoeneko existitzen da",
+ "apisandbox-submit-invalid-fields-title": "Zelai batzuk ez dute balio.",
+ "apisandbox-submit-invalid-fields-message": "Mesedez, zuzendu markatutako zelaiak eta saiatu berrio.",
"apisandbox-results": "Emaitzak",
"apisandbox-sending-request": "APIari eskaera bidaltzen...",
"apisandbox-loading-results": "APIaren emaitzak jasotzen...",
+ "apisandbox-request-url-label": "Eskatutako URLa:",
+ "apisandbox-request-json-label": "Eskatutako JSONa:",
+ "apisandbox-request-time": "Eskakisun denbora: {{PLURAL:$1|$1 ms}}",
+ "apisandbox-alert-page": "Orri honetako zelaiek ez dute balio.",
+ "apisandbox-alert-field": "Zelai honetako balioak ez du balio.",
"apisandbox-continue": "Jarraitu",
"apisandbox-continue-clear": "Garbitu",
"apisandbox-multivalue-all-values": "$1 (balio guztiak)",
"rollbacklinkcount": "desegin {{PLURAL:$1|edizio bat|$1 edizio}}",
"rollbacklinkcount-morethan": "desegin {{PLURAL:$1|edizio bat|$1 edizio}} baino gehiago",
"rollbackfailed": "Desegiteak huts egin dud",
+ "rollback-missingrevision": "Berrikusketa data ezin izan da kargatu.",
"cantrollback": "Ezin da aldaketa desegin; erabiltzaile bakarrak hartu du parte.",
"alreadyrolled": "Ezin da [[User:$2|$2]] ([[User talk:$2|eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) wikilariak «[[:$1]]» orrian egindako azken aldaketa desegin;\nbeste norbaitek editatu edo desegin du jadanik.\n\nAzken aldaketa [[User:$3|$3]] ([[User talk:$3|eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) wikilariak egin du.",
"editcomment": "Aldaketaren laburpena: <em>$1</em>.",
"rollback-success": "{{GENDER:$3|$1}}; wikilariaren aldaketak deseginda,\nedukia {{GENDER:$4|$2}} wikilariaren azken bertsiora itzuli da.",
"sessionfailure-title": "Saio-akatsa",
"sessionfailure": "Badirudi saioarekin arazoren bat dagoela; bandalismoak saihesteko ekintza hau ezeztatu egin da. Mesedez, nabigatzaileko \"atzera\" botoian klik egin, hona ekarri zaituen orrialde hori berriz kargatu, eta saiatu berriz.",
+ "changecontentmodel": "Aldatu orri bateko eduki eredua",
+ "changecontentmodel-legend": "Aldatu eduki eredua",
"changecontentmodel-title-label": "Orriaren izenburua",
+ "changecontentmodel-model-label": "Eduki eredu berria",
"changecontentmodel-reason-label": "Arrazoia:",
"changecontentmodel-submit": "Aldatu",
+ "changecontentmodel-success-title": "Eduki eredua aldatu egin da",
+ "changecontentmodel-emptymodels-title": "Eduki eredurik ez dago eskuragarri",
"logentry-contentmodel-change-revertlink": "desegin",
"logentry-contentmodel-change-revert": "desegin",
"protectlogpage": "Babes erregistroa",
"block-log-flags-hiddenname": "lankide-izen ezkutua",
"range_block_disabled": "Administratzaileak IP eremuak blokeatzeko gaitasuna ezgaituta dago.",
"ipb_expiry_invalid": "Aldiaren bukaerako data ez da baliozkoa.",
+ "ipb_expiry_old": "Epemuga iraganean dago.",
"ipb_expiry_temp": "Izkutuan dauden lankide izenen blokeoa betierekikoa izan behar du.",
"ipb_hide_invalid": "Ezin izan da kontu hau ezabatu; aldaketa asko izan baitezake.",
"ipb_already_blocked": "\"$1\" badago blokeatuta",
"lockdbsuccesstext": "Datu-basea blokeatu egin da. <br />Ez ahaztu mantenu lanak burutu ondoren [[Special:UnlockDB|blokeoa kentzeaz]].",
"unlockdbsuccesstext": "Datu-basea desblokeatu egin da.",
"lockfilenotwritable": "Ezin da datu-baseko blokeo fitxategian idatzi. Datu-basea blokeatu edo desblokeatzeko, zerbitzariak idazteko aukera izan beharra dauka.",
+ "databaselocked": "Datu-basea blokeatuta dago jada.",
"databasenotlocked": "Datu-basea ez dago blokeatuta.",
"lockedbyandtime": "({{GENDER:$1|$1}}k egina $2ko $3(e)tan)",
"move-page": "Mugitu «$1»",
"pageinfo-category-pages": "Orrialde kopurua",
"pageinfo-category-subcats": "Azpikategorien zenbakia",
"pageinfo-category-files": "Fitxategi kopurua",
+ "pageinfo-user-id": "Erabiltzaile IDa",
"markaspatrolleddiff": "Patruilatutzat markatu",
"markaspatrolledtext": "Artikulu hau patruilatutzat markatu",
"markaspatrolledtext-file": "Fitxategi honen bertsioa patruilatutzat markatu",
"patrol-log-header": "Hau patruliatutako aldaketen log bat da.",
"log-show-hide-patrol": "$1 patruilatze loga",
"log-show-hide-tag": "$1 etiketa erregistroa",
+ "confirm-markpatrolled-button": "Ados",
"deletedrevision": "$1 berrikuspen zaharra ezabatu da",
"filedeleteerror-short": "Errorea fitxategia ezabatzerakoan: $1",
"filedeleteerror-long": "Erroreak gertatu dira fitxategia ezabatzerakoan:\n\n$1",
"newimages-legend": "Iragazkia",
"newimages-label": "Fitxategia (edo bere zati bat):",
"newimages-user": "IP helbidea edo erabiltzaile-izena",
+ "newimages-newbies": "Soilik kontu berrien ekarpenak erakutsi",
"newimages-showbots": "Erakutsi botek igotako fitxategiak",
+ "newimages-hidepatrolled": "Izkutatu patruilatutako igoerak",
+ "newimages-mediatype": "Media mota:",
"noimages": "Ez dago ezer ikusteko.",
"ilsubmit": "Bilatu",
"bydate": "dataren arabera",
"deletedwhileediting": "'''Oharra''': Zu aldaketak egiten hasi ondoren orrialdea ezabatua izan da!",
"confirmrecreate": "[[User:$1|$1]] erabiltzaileak ([[User talk:$1|eztabaida]]) orrialde hau ezabatu zu aldatzen hasi eta gero. Hona arrazoia: : ''$2'' Mesedez, baieztatu orrialde hau berriz sortu nahi duzula.",
"recreate": "Birsortu",
+ "confirm-purge-title": "Orri hau purgatu",
"confirm_purge_button": "Ados",
"confirm-purge-top": "Orrialde honen katxea ezabatu?",
"confirm-purge-bottom": "Orrialdea purgatzean katxea ezabatzen du eta orrialdearen bertsiorik eguneratuena erakustera behartzen du.",
"redirect-page": "Orriaren IDa",
"redirect-revision": "Orrialdearen berrikuspena",
"redirect-file": "Fitxategiaren izena",
+ "redirect-logid": "Log IDa",
"redirect-not-exists": "Ez da baliorik aurkitu",
"fileduplicatesearch": "Artxibo bikoiztuen bilaketa",
"fileduplicatesearch-summary": "Bikoiztutako fitxategiak bilatu bere hash balioaren arabera.",
"tag-filter": "[[Special:Tags|Etiketa]] iragazkia:",
"tag-filter-submit": "Iragazkia",
"tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etiketa|Etiketak}}]]: $2)",
+ "tag-mw-contentmodelchange": "Eduki eredu aldaketa",
"tags-title": "Etiketak",
"tags-intro": "Orri honek softwareak aldatzeko bezala marka ditzazkeen etiketak zerrendatzen ditu, eta berauen esanahia.",
"tags-tag": "Etiketaren izena",
"tags-delete-title": "Etiketa ezabatu",
"tags-delete-explanation-initial": "Datu-basetik \"$1\" etiketa ezabatzera zoaz",
"tags-delete-reason": "Arrazoia:",
+ "tags-delete-submit": "Betirako ezabatu etiketa hau",
"tags-delete-not-found": "\"$1\" etiketa ez da existitzen.",
+ "tags-delete-no-permission": "Ez daukazu baimenik etiketa aldaketak ezabatzeko.",
"tags-activate-title": "Etiketa aktibatu",
"tags-activate-question": "\"$1\" etiketa aktibatzear zaude.",
"tags-activate-reason": "Arrazoia:",
"tags-edit-remove": "Kendu etiketa hauek:",
"tags-edit-remove-all-tags": "(kendu etiketa guztiak)",
"tags-edit-chosen-placeholder": "Hautatu etiketa batzuk",
+ "tags-edit-chosen-no-results": "Balio duen etiketarik ez da aurkitu",
"tags-edit-reason": "Arrazoia:",
"tags-edit-success": "Aldaketak ezarri dira.",
"tags-edit-failure": "Ezin izan dira aldaketak ezarri:\n$1",
+ "tags-edit-nooldid-title": "Baliogabeko berrikusketa helburua",
"comparepages": "Orrialdeak alderatu",
"compare-page1": "1. orrialdea",
"compare-page2": "2. orrialdea",
"htmlform-chosen-placeholder": "Aukeratu",
"htmlform-cloner-create": "Gehitu gehiago",
"htmlform-cloner-delete": "Kendu",
+ "htmlform-cloner-required": "Gutxienez balio bat behar da.",
"htmlform-date-placeholder": "UUUU-HH-EE",
"htmlform-time-placeholder": "OO:MM:SS",
"htmlform-datetime-placeholder": "UUUU-HH-EE OO:MM:SS",
"pagelang-language": "Hizkuntza",
"pagelang-use-default": "Hizkuntza lehenetsia erabili",
"pagelang-select-lang": "Hizkuntza aukeratu",
+ "pagelang-reason": "Arrazoia",
"pagelang-submit": "Bidali",
+ "pagelang-nonexistent-page": "$1 orria ez da existitzen.",
"pagelang-unchanged-language": "$1 orrialdea jada $2 hizkuntzan dago.",
"right-pagelang": "Aldatu orrialdearen hizkuntza",
"action-pagelang": "orrialdearen hizkuntza aldatu",
"special-characters-group-ipa": "NAF",
"special-characters-group-symbols": "Ikurrak",
"special-characters-group-greek": "Greziera",
+ "special-characters-group-greekextended": "Luzatutako Greziera",
"special-characters-group-cyrillic": "Zirilikoa",
"special-characters-group-arabic": "Arabiera",
"special-characters-group-arabicextended": "Arabiera hedatua",
"special-characters-group-thai": "Thaiera",
"special-characters-group-lao": "Laosera",
"special-characters-group-khmer": "Khmerrera",
+ "special-characters-group-canadianaboriginal": "Kanadiar aborigenoa",
"special-characters-title-endash": "en lerroa",
"special-characters-title-emdash": "em lerroa",
"special-characters-title-minus": "minus zeinua",
"mw-widgets-dateinput-no-date": "Ez duzu datarik aukeratu",
+ "mw-widgets-mediasearch-input-placeholder": "Multimedia bilatu",
"mw-widgets-mediasearch-noresults": "Ez da emaitzarik aurkitu.",
"mw-widgets-titleinput-description-new-page": "orri hori oraindik ez da existitzen",
"mw-widgets-titleinput-description-redirect": "$1ra birzuzendu",
"sessionprovider-generic": "$1 sesio",
"randomrootpage": "Ausazko sustrai orria",
"log-action-filter-block": "Blokeatze mota:",
+ "log-action-filter-contentmodel": "Eduki eredu motaren aldaketa:",
"log-action-filter-delete": "Ezabatze mota:",
"log-action-filter-import": "Inportazio mota:",
"log-action-filter-move": "Mugimendu mota:",
"log-action-filter-block-block": "Blokeatu",
"log-action-filter-block-reblock": "Blokeoa aldatu",
"log-action-filter-block-unblock": "blokeoa kendu",
+ "log-action-filter-contentmodel-change": "Aldatu eduki eredua",
+ "log-action-filter-delete-delete": "Orri ezabaketa",
+ "log-action-filter-delete-restore": "Ezabatutako orria berreskuratu",
"log-action-filter-delete-revision": "Berrikuspen ezabaketa",
"log-action-filter-import-interwiki": "Transwiki inportazioa",
"log-action-filter-import-upload": "Inportatu XML igoera bidez",
"log-action-filter-managetags-delete": "Etiketa ezabaketa",
"log-action-filter-managetags-activate": "Etiketa aktibazioa",
"log-action-filter-managetags-deactivate": "Etiketa desaktibazioa",
+ "log-action-filter-newusers-create": "Erabiltzaile anonimo batek sortua",
+ "log-action-filter-newusers-create2": "Izena emandako erabiltzaile batek idatzia",
"log-action-filter-newusers-autocreate": "Sorrera automatikoa",
+ "log-action-filter-patrol-patrol": "Patruilaketa manuala",
+ "log-action-filter-patrol-autopatrol": "Patruilaketa automatikoa",
"log-action-filter-protect-protect": "Babesa",
+ "log-action-filter-protect-modify": "Babespen aldaketa",
+ "log-action-filter-protect-unprotect": "Babesgabea",
+ "log-action-filter-protect-move_prot": "Mugitutako babesa",
"log-action-filter-rights-rights": "Eskuzko aldaketa",
"log-action-filter-rights-autopromote": "Aldaketa automatikoa",
"log-action-filter-upload-upload": "Igoera berria",
+ "log-action-filter-upload-overwrite": "Birkargatu",
+ "authmanager-authplugin-setpass-failed-title": "Ezin izan da pasahitza aldatu",
+ "authmanager-authplugin-setpass-bad-domain": "Balio ez duen domeinua.",
+ "authmanager-autocreate-noperm": "Ezin da automatikoki erabiltzaile bat sortu.",
"authmanager-userdoesnotexist": "\"$1\" erabiltzaile kontua ez dago erregistratua.",
+ "authmanager-retype-help": "Pasahitza berriro baieztatzeko.",
"authmanager-email-label": "Emaila",
"authmanager-email-help": "Helbide elektronikoa",
"authmanager-realname-label": "Benetako izena",
"authmanager-realname-help": "Erabiltzailearen benetako izena",
+ "authmanager-provider-password": "Pasahitzan oinarritutako baieztapena",
+ "authmanager-provider-password-domain": "Pasahitza eta domeinuan oinarritutako baieztapena",
"authmanager-provider-temporarypassword": "Behin-behineko pasahitza",
"authprovider-resetpass-skip-label": "Utzi",
"authform-wrongtoken": "Token okerra",
+ "specialpage-securitylevel-not-allowed-title": "Baimenik gabe",
+ "cannotauth-not-allowed-title": "Ez da baimendu",
+ "cannotauth-not-allowed": "Ez duzu baimenik orri hau erabiltzeko",
+ "changecredentials": "Kredentzialak aldatu",
"credentialsform-account": "Kontuaren izena:",
"gotointerwiki": "{{SITENAME}}(e)tik irteten"
}
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنین به [[Special:NewPages|فهرست صفحات تازه]] نگاه کنید)",
"recentchanges-legend-plusminus": "(<em>±۱۲۳</em>)",
"recentchanges-submit": "نمایش",
+ "rcfilters-legend-heading": "<strong>فهرست کوتهنوشتها:</strong>",
"rcfilters-activefilters": "پالایههای فعال",
"rcfilters-advancedfilters": "پالایههای پیشرفته",
"rcfilters-quickfilters": "پالایههای ذخیرهشده",
"passwordtoolong": "Les mots de passe ne peuvent pas dépasser $1 caractère{{PLURAL:$1||s}}.",
"passwordtoopopular": "Les mots de passe trop courants ne peuvent pas être utilisés. Veuillez choisir un mot de passe plus original.",
"password-name-match": "Votre mot de passe doit être différent de votre nom d’utilisateur.",
- "password-login-forbidden": "L’utilisation de ce nom d’utilisateur et/ou de ce mot de passe a été interdite.",
+ "password-login-forbidden": "L’utilisation de ce nom d’utilisateur ou de ce mot de passe a été interdite.",
"mailmypassword": "Réinitialiser le mot de passe",
"passwordremindertitle": "Nouveau mot de passe temporaire pour {{SITENAME}}",
"passwordremindertext": "Quelqu’un (probablement vous, ayant l’adresse IP $1) a demandé un nouveau mot de\npasse pour {{SITENAME}} ($4). Un mot de passe temporaire pour l’utilisateur\n« $2 » a été créé et est « $3 ». Si cela était votre intention,\nvous devrez vous connecter et choisir un nouveau mot de passe.\nVotre mot de passe temporaire expirera dans $5 jour{{PLURAL:$5||s}}.\n\nSi vous n’êtes pas l’auteur de cette demande, ou si vous vous souvenez à présent de\nvotre mot de passe et ne souhaitez plus en changer, vous pouvez ignorer ce message\net continuer à utiliser votre ancien mot de passe.",
"ip_range_invalid": "Plage d’adresses IP incorrecte.",
"ip_range_toolarge": "Les plages de blocage plus grandes que /$1 ne sont pas autorisées.",
"proxyblocker": "Bloqueur de mandataires",
- "proxyblockreason": "Votre adresse IP a été bloquée car il s'agit d'un mandataire ouvert.\nVeuillez contacter votre fournisseur d'accès Internet ou votre support technique et l'informer de ce sérieux problème de sécurité.",
+ "proxyblockreason": "Votre adresse IP a été bloquée car il s’agit d’un mandataire ouvert.\nVeuillez contacter votre fournisseur d’accès Internet ou votre soutien technique et l’informer de ce sérieux problème de sécurité.",
"sorbsreason": "Votre adresse IP est listée comme mandataire ouvert dans le DNSBL utilisé par {{SITENAME}}.",
"sorbs_create_account_reason": "Votre adresse IP est listée comme mandataire ouvert dans le DNSBL utilisé par {{SITENAME}}.\nVous ne pouvez pas créer un compte.",
"softblockrangesreason": "Les contributions anonymes ne sont pas autorisées à partir de votre adresse IP ($1). Veuillez vous connecter.",
"tags-create-warnings-below": "Voulez-vous continuer la création de la balise?",
"tags-delete-title": "Supprimer la balise",
"tags-delete-explanation-initial": "Vous êtes sur le point de supprimer la balise « $1 » de la base de données.",
- "tags-delete-explanation-in-use": "Elle sera supprimée de {{PLURAL:$2|$2 révision ou entrée de journal à laquelle|toutes les $2 révisions et/ou entrées de journal auxquelles}} elle est actuellement appliquée.",
+ "tags-delete-explanation-in-use": "Elle sera supprimée de {{PLURAL:$2|$2 révision ou entrée de journal à laquelle|toutes les $2 révisions ou entrées de journal auxquelles}} elle est actuellement appliquée.",
"tags-delete-explanation-warning": "Cette action est <strong>irréversible</strong> et <strong>ne peut pas être annulée</strong>, même pas par les administrateurs de base de données. Soyez certain que c'est cette balise que vous voulez supprimer.",
"tags-delete-explanation-active": "<strong>La balise « $1 » est toujours active, et continuera à être appliquée dans le futur. </strong> Pour arrêter cela, allez à l'endroit (ou aux endroits) où la balise est appliquée, et désactivez la.",
"tags-delete-reason": "Motif :",
"log-name-pagelang": "Tracer les changements de langue",
"log-description-pagelang": "Ceci est un journal des changements dans les langues des pages.",
"logentry-pagelang-pagelang": "$1 {{GENDER:$2|a changé}} la langue de la page $3 de $4 à $5.",
- "default-skin-not-found": "Oups ! L’habillage par défaut pour votre wiki, défini par <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVotre installation semble inclure {{PLURAL:$4|l’habillage suivant|les habillages suivants}}. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de configuration des habillages] pour savoir comment {{PLURAL:$4|l’|les }}activer et choisir celui par défaut.\n\n$2\n\n; Si vous venez juste d’installer MediaWiki :\n: Vous l’avez probablement installé depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en:\n:* Téléchargeant le [https://www.mediawiki.org/wiki/Download fichier tar de l’installeur], qui comprend plusieurs habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Téléchargeant des habillages avec Git].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git, si vous êtes un développeur de MediaWiki.\n\n; Si vous venez juste de mettre à jour MediaWiki :\n: MediaWiki 1.24 et au-delà n’active plus automatiquement les habillages installés (voyez [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery le manuel sur la découverte automatique des habillages]). Vous pouvez coller {{PLURAL:$5|la ligne suivante|les lignes suivantes}} dans <code>LocalSettings.php</code> pour activer {{PLURAL:$5|l’habillage actuellement installé|tous les habillages actuellement installés}} :\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si vous venez de modifier <code>LocalSettings.php</code> :\n: Vérifiez deux fois le nom des habillages pour éviter les erreurs de frappe.",
- "default-skin-not-found-no-skins": "Oups ! L’habillage par défaut pour votre wiki , défini par <code>$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVous n’avez aucun habillage d’installé.\n\n; Si vous venez juste d’installer ou de mettre à jour MediaWiki :\n: Vous l’avez sans doute fait depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. MediaWiki 1.24 et au-delà n’inclut aucun habillage dans le dépôt principal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en :\n:* Téléchargeant [https://www.mediawiki.org/wiki/Download le fichier tar de l’installeur], qui comprend différents habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Utiliser Git pour télécharger des habillages].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git si vous êtes un développeur de MediaWiki. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de la configuration des habillages] pour des instructions sur la manière d’activer les habillages et choisir celui par défaut.",
+ "default-skin-not-found": "Oups ! L’habillage par défaut pour votre wiki, défini par <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVotre installation semble inclure {{PLURAL:$4|l’habillage suivant|les habillages suivants}}. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de configuration des habillages] pour savoir comment {{PLURAL:$4|l’|les }}activer et choisir celui par défaut.\n\n$2\n\n; Si vous venez juste d’installer MediaWiki :\n: Vous l’avez probablement installé depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en:\n:* Téléchargeant le [https://www.mediawiki.org/wiki/Download fichier tar du programme d’installation], qui comprend plusieurs habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Téléchargeant des habillages avec Git].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git, si vous êtes un développeur de MediaWiki.\n\n; Si vous venez juste de mettre à jour MediaWiki :\n: MediaWiki 1.24 et au-delà n’active plus automatiquement les habillages installés (voyez [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery le manuel sur la découverte automatique des habillages]). Vous pouvez coller {{PLURAL:$5|la ligne suivante|les lignes suivantes}} dans <code>LocalSettings.php</code> pour activer {{PLURAL:$5|l’habillage actuellement installé|tous les habillages actuellement installés}} :\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si vous venez de modifier <code>LocalSettings.php</code> :\n: Vérifiez deux fois le nom des habillages pour éviter les erreurs de frappe.",
+ "default-skin-not-found-no-skins": "Oups ! L’habillage par défaut pour votre wiki , défini par <code>$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVous n’avez aucun habillage d’installé.\n\n; Si vous venez juste d’installer ou de mettre à jour MediaWiki :\n: Vous l’avez sans doute fait depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. MediaWiki 1.24 et au-delà n’inclut aucun habillage dans le dépôt principal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en :\n:* Téléchargeant [https://www.mediawiki.org/wiki/Download le fichier tar du programme d’installation], qui comprend différents habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Utiliser Git pour télécharger des habillages].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git si vous êtes un développeur de MediaWiki. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de la configuration des habillages] pour des instructions sur la manière d’activer les habillages et choisir celui par défaut.",
"default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activé)",
"default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>désactivé</strong>)",
"mediastatistics": "Statistiques sur les médias",
"undelete-cantcreate": "Vous ne pouvez pas annuler la suppression de cette page car il n’existe pas de page avec ce nom, et vous n’êtes pas autorisé à la créer.",
"pagedata-title": "Données de page",
"pagedata-text": "Cette page fournit une interface de données aux pages. Veuillez fournir le titre de la page dans l’URL en utilisant la syntaxe de sous-page.\n* La négociation de contenu s’applique d’après l’entête Accept de votre client. Cela veut dire que les données de la page seront fournies dans le format préféré par votre client.",
- "pagedata-not-acceptable": "Aucun format correspondant trouvé. Types MIME supportés : $1",
+ "pagedata-not-acceptable": "Aucun format correspondant trouvé. Types MIME pris en charge : $1",
"pagedata-bad-title": "Titre non valide : $1."
}
"booksources-search": "Keresés",
"booksources-text": "Alább látható a másik webhelyekre mutató hivatkozások listája, ahol új és használt könyveket árulnak, és\ntovábbi információkat lelhetsz ott az általad keresett könyvekről:",
"booksources-invalid-isbn": "A megadott ISBN hibásnak tűnik; ellenőrizd, hogy jól másoltad-e át az eredeti forrásból.",
+ "magiclink-tracking-rfc": "Mágikus RFC-linkeket használó lapok",
+ "magiclink-tracking-rfc-desc": "Ez az oldal mágikus RFC-linkeket használ. Javításukhoz a [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org]-on találsz segítséget.",
+ "magiclink-tracking-pmid": "Mágikus PMID-linkeket használó lapok",
+ "magiclink-tracking-pmid-desc": "Ez az oldal mágikus PMID-linkeket használ. Javításukhoz a [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org]-on találsz segítséget.",
+ "magiclink-tracking-isbn": "Mágikus ISBN-linkeket használó lapok",
+ "magiclink-tracking-isbn-desc": "Ez az oldal mágikus ISBN-linkeket használ. Javításukhoz a [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org]-on találsz segítséget.",
"specialloguserlabel": "Szerkesztő:",
"speciallogtitlelabel": "Cél (cím vagy felhasználóhoz {{ns:user}}:felhasználói név):",
"log": "Rendszernaplók",
"autoblocklist-submit": "Keresés",
"autoblocklist-legend": "Autoblokkok listája",
"autoblocklist-localblocks": "Helyi {{PLURAL:$1|autoblokk|autoblokkok}}",
+ "autoblocklist-total-autoblocks": "Autoblokkok száma: $1",
"autoblocklist-empty": "Az autoblokklista üres.",
"autoblocklist-otherblocks": "Egyéb {{PLURAL:$1|autoblokk|autoblokkok}}",
"ipblocklist": "Blokkolt felhasználók",
"newimages-legend": "Fájlnév",
"newimages-label": "Fájlnév (vagy annak részlete):",
"newimages-user": "IP-cím vagy felhasználónév",
+ "newimages-newbies": "Csak az újonnan regisztrált szerkesztők közreműködéseinek mutatása",
"newimages-showbots": "Botos feltöltések mutatása",
"newimages-hidepatrolled": "Ellenőrzött szerkesztések elrejtése",
"newimages-mediatype": "Médiatípus:",
"tags-create-reason": "Indoklás:",
"tags-create-submit": "Létrehozás",
"tags-create-no-name": "Kötelező megadnod egy címkenevet.",
- "tags-create-invalid-chars": "Címkenevek nem tartalmazhatnak vesszőt (<code>,</code>) és normál perjelet (<code>/</code>).",
+ "tags-create-invalid-chars": "Címkenevek nem tartalmazhatnak vesszőt (<code>,</code>), függőleges vonalat (<code>|</code>) és normál perjelet (<code>/</code>).",
"tags-create-invalid-title-chars": "Címkenevek nem tartalmazhatnak lapcímben nem használható karaktereket.",
"tags-create-already-exists": "A(z) „$1” címke már létezik.",
"tags-create-warnings-above": "A következő {{PLURAL:$2|figyelmeztetést|figyelmeztetéseket}} találtam a(z) „$1” címke létrehozási kísérlete közben:",
"gotointerwiki-external": "A(z) {{SITENAME}} elhagyására és a(z) [[$2]] meglátogatására készülsz, ami egy másik webhelyen található.\n\n[$1 Kattints ide a(z) $1 oldalra való továbblépéshez.]",
"undelete-cantedit": "Nem állíthatod helyre ezt a lapot, mert nincs jogosultságod a szerkesztéséhez.",
"undelete-cantcreate": "Nem állíthatod helyre ezt a lapot, mert nem létezik ilyen című lap, és nincs jogosultságod létrehozni azt.",
+ "pagedata-title": "Az oldal adatai",
+ "pagedata-not-acceptable": "Nem található megfelelő formátum. Támogatott MIME-típusok: $1",
"pagedata-bad-title": "Érvénytelen cím: $1."
}
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vide etiam le [[Special:NewPages|lista de nove paginas]])",
"recentchanges-legend-plusminus": "(''±123'')",
"recentchanges-submit": "Monstrar",
+ "rcfilters-legend-heading": "<strong>Lista de abbreviationes:</strong>",
"rcfilters-activefilters": "Filtros active",
"rcfilters-advancedfilters": "Filtros avantiate",
"rcfilters-quickfilters": "Filtros salveguardate",
"undelete-search-title": "Cercar paginas delite",
"undelete-search-box": "Cercar paginas delite",
"undelete-search-prefix": "Monstrar paginas que comencia con:",
+ "undelete-search-full": "Monstrar paginas con titulos que contine:",
"undelete-search-submit": "Cercar",
"undelete-no-results": "Nulle paginas correspondente trovate in le archivo de deletiones.",
"undelete-filename-mismatch": "Non pote restaurar le version del file con data e hora $1: le nomine del file non corresponde",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|新しいページ一覧]]も参照)",
"recentchanges-legend-plusminus": "(<em>±123</em>)",
"recentchanges-submit": "表示",
+ "rcfilters-legend-heading": "<strong>略語のリスト:</strong>",
"rcfilters-activefilters": "絞り込み",
+ "rcfilters-advancedfilters": "詳細フィルター",
"rcfilters-quickfilters": "フィルターを保存",
"rcfilters-quickfilters-placeholder-title": "リンクはまだ保存されていません",
"rcfilters-quickfilters-placeholder-description": "フィルターの設定を保存し、後で再び使用するためには、下のアクティブフィルター内のブックマークアイコンをクリックしてください。",
"rcfilters-filter-lastrevision-description": "ページの最新の変更",
"rcfilters-filter-previousrevision-label": "古い版",
"rcfilters-filter-previousrevision-description": "ページの最新の変更ではない全ての変更。",
+ "rcfilters-view-namespaces-tooltip": "名前空間別のフィルター結果",
+ "rcfilters-view-tags-tooltip": "編集タグを利用した絞込み",
"rcnotefrom": "以下は<strong>$3 $4</strong>以降の{{PLURAL:$5|更新です}} (最大 <strong>$1</strong> 件)。",
"rclistfromreset": "日時指定をリセット",
"rclistfrom": "$3の$2以降の更新を表示する",
"newimages-legend": "絞り込み",
"newimages-label": "ファイル名 (またはその一部):",
"newimages-user": "IPアドレスまたは利用者名:",
+ "newimages-newbies": "新規利用者の投稿のみ表示",
"newimages-showbots": "ボットによるアップロードを表示",
"newimages-hidepatrolled": "巡回済みのアップロードを隠す",
"noimages": "表示できるものがありません。",
"gotointerwiki-external": "{{SITENAME}}を離れ、別のウェブサイトである[[$2]]を訪れようとしています。\n\n'''[$1 $1に行く]'''",
"undelete-cantedit": "このページを編集する許可がないため復元できません。",
"undelete-cantcreate": "同名のページが存在せず、このページを作成する許可がないため復元できません。",
- "pagedata-not-acceptable": "該当する形式が見つかりません。対応している MIME タイプ: $1"
+ "pagedata-title": "ページ・データ",
+ "pagedata-not-acceptable": "該当する形式が見つかりません。対応している MIME タイプ: $1",
+ "pagedata-bad-title": "「$1」は無効なページ名です。"
}
"redirectedfrom": "(ត្រូវបានបញ្ជូនបន្តពី $1)",
"redirectpagesub": "ទំព័របញ្ជូនបន្ត",
"redirectto": "បញ្ជូនបន្តទៅ៖",
- "lastmodifiedat": "ទំព័រនេះត្រូវបានកែចុងក្រោយនៅ$2 $1",
+ "lastmodifiedat": "ទំព័រនេះត្រូវបានកែចុងក្រោយនៅ$2 $1។",
"viewcount": "ទំព័រនេះត្រូវបានចូលមើលចំនួន'''{{PLURAL:$1|ម្ដង|$1ដង}}'''",
"protectedpage": "ទំព័រដែលត្រូវបានការពារ",
"jumpto": "លោតទៅ៖",
"newarticle": "(ថ្មី)",
"newarticletext": "អ្នកបានតាមតំណភ្ជាប់ទៅទំព័រដែលមិនទាន់មាននៅឡើយ។\nដើម្បីបង្កើតទំព័រនេះ សូមចាប់ផ្ដើមវាយក្នុងប្រអប់ខាងក្រោម (សូមមើល [$1 ទំព័រជំនួយ] សម្រាប់ព័ត៌មានបន្ថែម)។\nបើអ្នកមកទីនេះដោយអចេតនា សូមចុចប៊ូតុង '''ត្រឡប់ក្រោយ''' របស់ឧបករណ៍រាវរករបស់អ្នក។",
"anontalkpagetext": "----''ទំព័រពិភាក្សានេះគឺសម្រាប់តែអ្នកប្រើប្រាស់អនាមិកដែលមិនទាន់បានបង្កើតគណនីតែប៉ុណ្ណោះ។ ដូច្នេះអាសយដ្ឋានលេខIPរបស់កុំព្យូទ័ររបស់លោកអ្នកនឹងត្រូវបានបង្ហាញ ដើមី្បសម្គាល់លោកអ្នក។\n\nអាសយដ្ឋានIPទាំងនោះអាចនឹងត្រូវប្រើដោយមនុស្សច្រើននាក់។\n\nប្រសិនបើអ្នកជាអ្នកប្រើប្រាស់អនាមិកហើយប្រសិនបើអ្នកឃើញមានការបញ្ចេញយោបល់មកអ្នកពីអ្វីដែលមិនទាក់ទងទៅនឹងអ្វីដែលអ្នកបានធ្វើ សូម[[Special:CreateAccount|បង្កើតគណនី]] ឬ [[Special:UserLogin|កត់ឈ្មោះចូល]] ដើម្បីចៀសវាងការភ័ន្តច្រឡំណាមួយជាយថាហេតុជាមួយនិងអ្នកប្រើប្រាស់អនាមិកដទៃទៀត។''",
- "noarticletext": "បច្ចុប្បន្នគ្មានអត្ថបទក្នុងទំព័រនេះទេ។\n\nអ្នកអាច [[Special:Search/{{PAGENAME}}|ស្វែងរកចំណងជើងនៃទំព័រនេះ]]ក្នុងទំព័រដទៃទៀត ឬ [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ស្វែងរកកំណត់ហេតុដែលពាក់ព័ន្ធ] ឬ [{{fullurl:{{FULLPAGENAME}}|action=edit}} កែប្រែទំព័រនេះ]។",
+ "noarticletext": "បច្ចុប្បន្នគ្មានអត្ថបទក្នុងទំព័រនេះទេ។\n\nអ្នកអាច [[Special:Search/{{PAGENAME}}|ស្វែងរកចំណងជើងនៃទំព័រនេះ]]ក្នុងទំព័រដទៃទៀត ឬ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ស្វែងរកកំណត់ហេតុដែលពាក់ព័ន្ធ] ឬ [{{fullurl:{{FULLPAGENAME}}|action=edit}} បង្កើតទំព័រនេះ]</span>។",
"noarticletext-nopermission": "បច្ចុប្បន្ន គ្មានអត្ថបទណាមួយក្នុងទំព័រនេះទេ។\n\nអ្នកអាច [[Special:Search/{{PAGENAME}}|ស្វែងរកចំណងជើងនៃទំព័រនេះ]] ក្នុងទំព័រផ្សេងៗ ឬ<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ស្វែងរកកំណត់ហេតុដែលពាក់ព័ន្ធ]</span>។ ប៉ុន្តែអ្នកគ្មានសិទ្ធិក្នុងការបង្កើតទំព័រនេះទេ។",
"userpage-userdoesnotexist": "គណនីអ្នកប្រើឈ្មោះ\"<nowiki>$1</nowiki>\" មិនទាន់បានចុះបញ្ជី។\n\nចូរគិតម្ដងទៀតថាអ្នកចង់ បង្កើត / កែប្រែ ទំព័រនេះឬទេ។",
"userpage-userdoesnotexist-view": "គណនីអ្នកប្រើប្រាស់ដែលមានឈ្មោះ \"$1\"មិនទាន់បានចុះឈ្មោះទេ។",
"searchrelated": "ទាក់ទិន",
"searchall": "ទាំងអស់",
"showingresults": "ខាងក្រោមកំពុងបង្ហាញរហូតដល់ {{PLURAL:$1|'''១''' លទ្ឋផល|'''$1''' លទ្ឋផល}} ចាប់ផ្ដើមពីលេខ #'''$2'''។",
+ "search-showingresults": "{{PLURAL:$4|លទ្ធផល <strong>$1</strong> របស់ <strong>$3</strong>|លទ្ធផល <strong>$1 - $2</strong> របស់ <strong>$3</strong>}}",
"search-nonefound": "មិនមានលទ្ធផលណាមួយត្រូវគ្នានឹងសំណើសុំនេះទេ",
"powersearch-legend": "ស្វែងរកថ្នាក់ខ្ពស់",
"powersearch-ns": "ស្វែងរកក្នុងលំហឈ្មោះ៖",
"rcshowhidemine-hide": "លាក់",
"rcshowhidecategorization-show": "បង្ហាញ",
"rcshowhidecategorization-hide": "លាក់",
- "rclinks": "បង្ហាញបន្លាស់ប្ដូរ$1ចុងក្រោយធ្វើឡើងក្នុងរយៈពេល$2ថ្ងៃចុងក្រោយ",
+ "rclinks": "បង្ហាញបន្លាស់ប្ដូរ$1ចុងក្រោយ ដែលធ្វើឡើងក្នុងរយៈពេល$2ថ្ងៃចុងក្រោយ",
"diff": "ប្រៀបធៀប",
"hist": "ប្រវត្តិ",
"hide": "លាក់",
"contributions": "ការរួមចំណែករបស់{{GENDER:$1|អ្នកប្រើប្រាស់}}",
"contributions-title": "ការរួមចំណែករបស់អ្នកប្រើប្រាស់ $1",
"mycontris": "ការរួមចំណែក",
+ "anoncontribs": "ការរួមចំណែក",
"contribsub2": "សម្រាប់{{GENDER:$3|$1}} ($2)",
"contributions-userdoesnotexist": "គណនីអ្នកប្រើប្រាស់ដែលមានឈ្មោះ \"$1\"មិនទាន់បានចុះឈ្មោះទេ។",
"nocontribs": "គ្មានការផ្លាស់ប្តូរត្រូវបានឃើញដូចនឹងលក្ខណៈវិនិច្ឆ័យទាំងនេះ។",
"import-logentry-upload-detail": "$1 {{PLURAL:$1|កំណែ}}",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|កំណែ}} ពី $2",
"tooltip-pt-userpage": "ទំព័រ{{GENDER:|អ្នកប្រើប្រាស់របស់អ្នក}}",
- "tooltip-pt-mytalk": "ទំព័រពិភាក្សារបស់អ្នក",
+ "tooltip-pt-mytalk": "ទំព័រពិភាក្សា{{GENDER:|របស់អ្នក}}",
"tooltip-pt-anontalk": "ការពិភាក្សាអំពីកំណែប្រែដែលធ្វើឡើងចេញពីអាសយដ្ឋាន IP នេះ",
- "tooltip-pt-preferences": "ចំណង់ចំណូលចិត្ត",
+ "tooltip-pt-preferences": "ចំណង់ចំណូលចិត្ត{{GENDER:|របស់អ្នក}}",
"tooltip-pt-watchlist": "បញ្ជីនៃទំព័រដែលអ្នកកំពុងត្រួតពិនិត្យរកបន្លាស់ប្ដូរ",
- "tooltip-pt-mycontris": "បញ្ជីនៃការរួមចំណែករបស់អ្នក",
+ "tooltip-pt-mycontris": "បញ្ជីនៃការរួមចំណែក{{GENDER:|របស់អ្នក}}",
"tooltip-pt-login": "អ្នកត្រូវបានលើកទឹកចិត្តឱ្យកត់ឈ្មោះចូល។ ប៉ុន្តែនេះមិនមែនជាការបង្ខំទេ។",
"tooltip-pt-logout": "កត់ឈ្មោះចេញ",
"tooltip-pt-createaccount": "អ្នកត្រូវបានលើកទឹកចិត្តបង្កើតគណនីនិងកត់ឈ្មោះចូល។ ប៉ុន្តែនេះមិនមែនជាការបង្ខំទេ។",
"tooltip-t-recentchangeslinked": "បន្លាស់ប្ដូរថ្មីៗ ក្នុងទំព័រដែលត្រូវបានភ្ជាប់មក ទំព័រនេះ",
"tooltip-feed-rss": "បម្រែបម្រួល RSS ចំពោះទំព័រនេះ",
"tooltip-feed-atom": "បម្រែបម្រួល Atom ចំពោះទំព័រនេះ",
- "tooltip-t-contributions": "á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\9aá\9e½á\9e\98á\9e\85á\9f\86á\9e\8eá\9f\82á\9e\80á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\93á\9f\81á\9f\87",
- "tooltip-t-emailuser": "ផ្ញើអ៊ីមែលទៅកាន់អ្នកប្រើប្រាស់នេះ",
+ "tooltip-t-contributions": "á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\83á\9e\80á\9e¶á\9e\9aá\9e\9aá\9e½á\9e\98á\9e\85á\9f\86á\9e\8eá\9f\82á\9e\80á\9e\9aá\9e\94á\9e\9fá\9f\8b{{GENDER:$1|á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\93á\9f\81á\9f\87}}",
+ "tooltip-t-emailuser": "ផ្ញើអ៊ីមែលទៅកាន់{{GENDER:$1|អ្នកប្រើប្រាស់នេះ}}",
"tooltip-t-info": "ព័ត៌មានបន្ថែមអំពីទំព័រនេះ",
"tooltip-t-upload": "ឯកសារផ្ទុកឡើង",
"tooltip-t-specialpages": "បញ្ជីទំព័រពិសេសៗទាំងមូល",
"version-software-version": "កំណែ",
"version-entrypoints-header-url": "URL",
"redirect-submit": "ទៅ",
+ "redirect-lookup": "បើកមើល៖",
"redirect-value": "តម្លៃ៖",
"redirect-user": "អត្តលេខអ្នកប្រើប្រាស់",
"redirect-page": "អត្តលេខទំព័រ",
"pageinfo-edits": "Kopējais izmaiņu skaits",
"pageinfo-authors": "Kopējais atsevišķu autoru skaits",
"pageinfo-magic-words": "{{PLURAL:$1|Maģiskie vārdi|Maģiskais vārds|Maģiskie vārdi}} ($1)",
+ "pageinfo-hidden-categories": "{{PLURAL:$1|Slēptas kategorijas|Slēpta kategorija|Slēptas kategorijas}} ($1)",
"pageinfo-toolboxlink": "Lapas informācija",
"pageinfo-redirectsto": "Pāradresē uz",
"pageinfo-redirectsto-info": "info",
"mw-widgets-titleinput-description-new-page": "lapa vēl nepastāv",
"mw-widgets-categoryselector-add-category-placeholder": "Pievienot kategoriju...",
"sessionprovider-generic": "$1 sesijas",
+ "randomrootpage": "Nejauša saknes lapa",
"log-action-filter-suppress": "Cenzēšanas veids:",
"log-action-filter-suppress-event": "Reģistra ieraksta cenzēšana",
"log-action-filter-suppress-delete": "Lapas cenzēšana",
"undelete-search-title": "Verwijderde pagina's zoeken",
"undelete-search-box": "Verwijderde pagina's doorzoeken",
"undelete-search-prefix": "Pagina's bekijken die beginnen met:",
- "undelete-search-full": "Toon pagina titels met de volgende inhoud:",
+ "undelete-search-full": "Toon paginatitels die het volgende bevatten:",
"undelete-search-submit": "Zoeken",
"undelete-no-results": "Geen pagina's gevonden in het archief met verwijderde pagina's.",
"undelete-filename-mismatch": "Bestandsversie van tijdstip $1 kon niet hersteld worden: bestandsnaam klopte niet",
"log-action-filter-suppress-reblock": "Ukrycie użytkownika poprzez ponowną blokadę",
"log-action-filter-upload-upload": "Nowe przesłane",
"log-action-filter-upload-overwrite": "Przesłane ponownie",
+ "authmanager-authn-not-in-progress": "Tworzenie konta nie jest wykonywane lub dane sesji zostały utracone. Zacznij od początku.",
"authmanager-authn-no-primary": "Podane dane nie mogą być użyte do kontroli poświadczeń.",
"authmanager-authn-no-local-user": "Żaden użytkownik nie korzysta z tych danych.",
"authmanager-authn-autocreate-failed": "Automatyczne tworzenie lokalnego konta nie powiodło się: $1",
"undelete-search-title": "Pesquisar páginas eliminadas",
"undelete-search-box": "Pesquisar páginas eliminadas",
"undelete-search-prefix": "Mostrar páginas que começam por:",
+ "undelete-search-full": "Mostrar os títulos de página que contenham:",
"undelete-search-submit": "Pesquisar",
"undelete-no-results": "Não foram encontradas páginas eliminadas, para esse critério de pesquisa, no arquivo de eliminações.",
"undelete-filename-mismatch": "Não foi possível restaurar a versão do ficheiro de $1: nome de ficheiro não combina",
"rcfilters-filter-previousrevision-description": "Description for the filter for showing changes on previous revisions of a page.",
"rcfilters-filter-excluded": "Label for a menu item in [[Special:RecentChanges]] noting that the item is being excluded from the results.",
"rcfilters-tag-prefix-namespace": "Prefix for the namespace tags in [[Special:RecentChanges]]. Namespace tags use a colon (:) as prefix. Please keep this format.\n\nParameters:\n* $1 - Filter name.",
- "rcfilters-tag-prefix-namespace-inverted": "Prefix for the namespace inverted tags in [[Special:RecentChanges]]. Namespace tags use a colon (:) as prefix. Please keep this format.\n\nParameters:\n* $1 - Filter name.",
+ "rcfilters-tag-prefix-namespace-inverted": "Prefix for the namespace inverted tags in [[Special:RecentChanges]]. Namespace tags use a colon (:) as prefix. Please keep this format.\n\nParameters:\n* $1 - Filter name.\n{{Identical|Not}}",
"rcfilters-tag-prefix-tags": "Prefix for the edit tags in [[Special:RecentChanges]]. Edit tags use a hash (#) as prefix. Please keep this format.\n\nParameters:\n* $1 - Tag display name.",
"rcfilters-view-tags": "Title for the tags view in [[Special:RecentChanges]]\n{{Identical|Tag}}",
"rcfilters-view-namespaces-tooltip": "Tooltip for the button that loads the namespace view in [[Special:RecentChanges]]",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (см. также [[Special:NewPages|список новых страниц]])",
"recentchanges-legend-plusminus": "(''±123'')",
"recentchanges-submit": "Показать",
+ "rcfilters-legend-heading": "<strong>Список сокращений:</strong>",
"rcfilters-activefilters": "Активные фильтры",
"rcfilters-advancedfilters": "Расширенные фильтры",
"rcfilters-quickfilters": "Сохранённые фильтры",
"undelete-search-title": "Поиск удалённых страниц",
"undelete-search-box": "Поиск удалённых страниц",
"undelete-search-prefix": "Показать страницы, начинающиеся с:",
+ "undelete-search-full": "Показать названия страниц, содержащие:",
"undelete-search-submit": "Найти",
"undelete-no-results": "не найдено соответствующих страниц в архиве удалений.",
"undelete-filename-mismatch": "Невозможно восстановить версию файла с отметкой времени $1: несоответствие имени файла",
"recentchanges-legend-heading": "<strong>Легендата:</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (өссө көр: [[Special:NewPages|Саҥа сирэйдэр тиһиктэрэ]])",
"recentchanges-submit": "Көрдөр",
+ "rcfilters-legend-heading": "<strong>Кылгатыы испииһэгэ:</strong>",
"rcfilters-activefilters": "Холбоммут сиидэлэр",
+ "rcfilters-advancedfilters": "Сиһилии сиидэлэр",
"rcfilters-quickfilters": "Бигэргэммит сиидэлэр",
"rcfilters-quickfilters-placeholder-title": "Бигэргэммит сигэ билигин суох",
"rcfilters-quickfilters-placeholder-description": "Сиидэ туруорууларын кэлин туһанарга, \"Холбоммут сиидэ\" хонуутугар кыбытык ойуутун баттаа.",
"rcfilters-savedqueries-unsetdefault": "Эбии этиллибэтэҕинэ талыллары суох гын",
"rcfilters-savedqueries-remove": "Сот",
"rcfilters-savedqueries-new-name-label": "Аата",
- "rcfilters-savedqueries-apply-label": "Туруоруулары өйдөөн хаалыы",
+ "rcfilters-savedqueries-new-name-placeholder": "Сиидэ сорудаҕын ойуулаа",
+ "rcfilters-savedqueries-apply-label": "Сиидэни оҥоруу",
"rcfilters-savedqueries-cancel-label": "Салҕаама",
"rcfilters-savedqueries-add-new-title": "Сиидэлэ билиҥҥи туруорууларын хааллар",
"rcfilters-restore-default-filters": "Анаан этиллибэтэҕинэ турар сиидэлэри холбоо",
"rcfilters-filter-lastrevision-description": "Сирэй тиһэх уларыйыыта.",
"rcfilters-filter-previousrevision-label": "Эрдэ оҥоһуллубут көннөрүүлэр",
"rcfilters-filter-previousrevision-description": "Тиһэх көннөрүүттэн ураты бары уларытыылар.",
+ "rcfilters-filter-excluded": "Мантан ураты",
+ "rcfilters-tag-prefix-namespace-inverted": "<strong>:not</strong> $1",
+ "rcfilters-view-tags": "Бэлиэтэммит (тиэктээх) уларытыылар",
"rcnotefrom": "Манна {{PLURAL:$5|уларытыы көрдөрүлүннэ|уларытыылар көһүннүлэр}} баччаттан <strong>$3, $4</strong> (баччаттан элбэх көстүбэт <strong>$1</strong>).",
"rclistfromreset": "Дьылын-күнүн сот",
"rclistfrom": "Бу кэм $3 $2 кэнниттэн оҥоһуллубуттары көрдөр",
"createacct-realname": "Ngaran asli (teu wajib)",
"createacct-reason": "Alesan",
"createacct-reason-ph": "Naha bet nyieun akun séjén",
+ "createacct-reason-help": "Talatah ditémbongkeun dina log panyieunan akun",
"createacct-submit": "Jieun akun anjeun",
"createacct-another-submit": "Jieun akun",
"createacct-continue-submit": "Tuluykeun panyieunan akun",
"createacct-benefit-body2": "{{PLURAL:$1|kaca|kaca}}",
"createacct-benefit-body3": "{{PLURAL:$1|kontributor|kontributor}} panungtung",
"badretype": "Sandi nu diasupkeun teu cocog.",
+ "usernameinprogress": "Panyieunan akun pikeun ngaran pamaké ieu keur dijalankeun. Mangga tungguan.",
"userexists": "Sandiasma nu diasupkeun geus aya nu maké.\nMangga pilih sandiasma nu séjén.",
"loginerror": "Kasalahan asup log",
"createacct-error": "Nyieun akun éror",
"botpasswords-label-grants": "Aksés nu dibikeun:",
"botpasswords-label-grants-column": "Diwidian",
"botpasswords-bad-appid": "Ngaran bot \"$1\" teu sah.",
+ "botpasswords-update-failed": "Gagal nganyarkeun ngaran bot \"$1\". Baheula pernah dipupus kitu?",
"botpasswords-created-title": "Kecap sandi bot dijieun",
+ "botpasswords-created-body": "Kecap sandi pikeun ngaran bot \"$1\" ti pamaké \"$2\" geus dijieun.",
"botpasswords-updated-title": "Kecap sandi bot dianyarkeun",
+ "botpasswords-updated-body": "Kecap sandi pikeun ngaran bot \"$1\" ti pamaké \"$2\" geus dianyarkeun.",
"botpasswords-deleted-title": "Kecap sandi bot dihapus",
+ "botpasswords-deleted-body": "Kecap sandi pikeun ngaran bot \"$1\" ti pamaké \"$2\" geus dipupus.",
"resetpass_forbidden": "Sandi henteu bisa dirobah",
"resetpass_forbidden-reason": "Kecap sandi teu bisa diganti: $1",
"resetpass-no-info": "Anjeun kudu asup log pkeun bisa muka ieu kaca sacara langsung.",
"passwordreset-nocaller": "Panggero kudu dibikeun",
"passwordreset-nosuchcaller": "Panggero can aya: $1",
"passwordreset-invalidemail": "Alamat surélék teu sah",
- "changeemail": "Ganti alamat surélék",
- "changeemail-header": "Ganti alamat surélék akun",
+ "passwordreset-nodata": "Boh ngaran pamaké, boh alamat surélék teu dibéré",
+ "changeemail": "Ganti atawa pupus alamat surélék",
+ "changeemail-header": "Lengkepan ieu formulir pikeun ngarobah alamat surélék anjeun. Mun anjeun hayang mupus sakumna alamat surélék nu patalian jeung akun anjeun, kosongkeun alamat surélék nalika ngirim formulir.",
"changeemail-no-info": "Anjeun kudu asup log pikeun bisa muka ieu kaca sacara langsung.",
"changeemail-oldemail": "Alamat surélék ayeuna:",
"changeemail-newemail": "Alamat surélék anyar:",
"nocreate-loggedin": "Anjeun teu diwenangkeun pikeun nyieun kaca anyar.",
"sectioneditnotsupported-title": "Teu bisa ngarobah dina sub-judul",
"sectioneditnotsupported-text": "Eusi subjudul di ieu kaca teu bisa diédit.",
- "permissionserrors": "Kasalahan Hak Aksés",
+ "permissionserrors": "Kasalahan widi",
"permissionserrorstext": "Anjeung teu boga kawenangan pikeun peta kitu, kalawan {{PLURAL:$1|alesan|alesan}} di handap ieu:",
"permissionserrorstext-withaction": "Anjeun teu ngabogaan hak keur $2, kusabab {{PLURAL:$1|alesan|alesan}} katut:",
"recreate-moveddeleted-warn": "'''Awas: anjeun keur nyieun deui kaca nu geus kungsi dihapus.'''\n\nMangga émutan deui perlu/henteuna nyieun deui ieu artikel.\nPikeun leuwih écés, di handap dibéréndélkeun logna:",
"postedit-confirmation-saved": "Éditan anjeun tos disimpen.",
"edit-already-exists": "Teu bisa nyieun kaca anyar.\nArtikelna geus aya.",
"defaultmessagetext": "Téks ti dituna",
+ "content-failed-to-parse": "Gagal ngarecah kontén $2 pikeun modél $1:$3",
"invalid-content-data": "Data eusi henteu valid",
"content-not-allowed-here": "Eusi \"$1\" teu diijinan di kaca [[$2]]",
"editwarning-warning": "Ninggalkeun ieu kaca bakal ngaleungitkeun parobahan anu tas dijieun.\nUpama anjeun geus asup log, anjeun bisa numpurkeun ieu talatah dina bagian \"{{int:prefs-editing}}\" préferénsi anjeun.",
"post-expand-template-argument-warning": "'''Awas''': Ieu kaca sahenteuna ngandung hiji argumén citakan anu ukuran ékspansina badag teuing. Éta argumén geus teu dipaliré.",
"post-expand-template-argument-category": "Kaca kalawan argumén citakan anu teu dipaliré",
"parser-template-loop-warning": "Katangén ayana citakan anu patumpang tindih: [[$1]]",
+ "template-loop-category": "Kaca kawalan citakan bulak-balik",
"parser-template-recursion-depth-warning": "Citakan patumpang tindih ngaleuwihan wates($1)",
"language-converter-depth-warning": "Parobah basa ngaleuwihan wates jerona ($1)",
"expansion-depth-exceeded-category": "Kaca-kaca anu jero ékspansina leuwih ti wates",
"revdelete-selected-text": "{{PLURAL:$1|Révisi dipilih}} ti [[:$2]]:",
"revdelete-selected-file": "{{PLURAL:$1|Vérsi berkas dipilih}} ti [[:$2]]:",
"logdelete-selected": "{{PLURAL:$1|Kajadian log dipilih}}:",
+ "revdelete-text-file": "Vérsi berkas nu dipupus bakal muncul kénéh di jujutan berkas, ngan bagéan tina konténna bakal moal bisa diaksés pikeun umum.",
"revdelete-confirm": "Mangga geura konfirmasi yen Anjeun gaduh maksad pikeun ngalakukeun hal ieu, paham kana konsekwensina, tur nu dilakukeun ieu teh luyu sareng [[{{MediaWiki:Policy-url}}|kawijakanana]]",
"revdelete-suppress-text": "Nyumputkeun revisi '''ukur''' bisa digunakeun keur kasus-kasus di handap ieu:\n* Informasi nu boga potensi mitenah\n* Informasi pribadi nu teu pantes\n*: ''alamat imah katut nomer telepon, nomer kartu identitas, jeung lian-liana.''",
"revdelete-legend": "Setél réstriksi révisi:",
"pageinfo-toolboxlink": "Émbaran kaca",
"pageinfo-redirectsto": "Alihkeun ka",
"pageinfo-redirectsto-info": "info",
- "pageinfo-contentpage": "Diitung salaku kaca eusi",
+ "pageinfo-contentpage": "Diitung minangka kaca eusi",
"pageinfo-contentpage-yes": "Enya",
"pageinfo-protect-cascading-yes": "Enya",
"pageinfo-category-info": "Info kategori",
"anontalk": "చర్చ",
"navigation": "మార్గదర్శకం",
"and": " మరియు",
- "qbfind": "వెతుకు",
- "qbbrowse": "విహరించు",
- "qbedit": "సవరించు",
- "qbpageoptions": "ఈ పేజీ",
- "qbmyoptions": "నా పేజీలు",
"faq": "తరచూ అడిగే ప్రశ్నలు",
- "faqpage": "Project:తరచూ అడిగే ప్రశ్నలు",
"actions": "పనులు",
"namespaces": "పేరుబరులు",
"variants": "వివిధ రూపాలు",
"edit-local": "స్థానిక వివరణని మార్చు",
"create": "సృష్టించు",
"create-local": "స్థానిక వివరణను చేర్చు",
- "editthispage": "ఈ పేజీని సవరించండి",
- "create-this-page": "ఈ పేజీని సృష్టించండి",
"delete": "తొలగించు",
- "deletethispage": "ఈ పేజీని తొలగించండి",
- "undeletethispage": "ఈ పేజీ తొలగింపును ఆపు",
"undelete_short": "{{PLURAL:$1|ఒక మార్పు|$1 మార్పుల}} తొలగింపును రద్దుచెయ్యి",
"viewdeleted_short": "{{PLURAL:$1|తొలగించిన ఒక మార్పు|$1 తొలగించిన మార్పుల}}ను చూడండి",
"protect": "సంరక్షించు",
"protect_change": "మార్చు",
- "protectthispage": "ఈ పేజీని సంరక్షించు",
"unprotect": "సంరక్షణ మార్పు",
- "unprotectthispage": "ఈ పుట సంరక్షణను మార్చండి",
"newpage": "కొత్త పేజీ",
- "talkpage": "ఈ పేజీని చర్చించండి",
"talkpagelinktext": "చర్చ",
"specialpage": "ప్రత్యేక పేజీ",
"personaltools": "వ్యక్తిగత పనిముట్లు",
- "articlepage": "విషయపు పేజీని చూడండి",
"talk": "చర్చ",
"views": "చూపులు",
"toolbox": "పనిముట్లు",
"tool-link-userrights": "{{GENDER:$1|వాడుకరి}} గుంపులను మార్చు",
"tool-link-userrights-readonly": "{{GENDER:$1|వాడుకరి}} గుంపులను చూడండి",
"tool-link-emailuser": "ఈ {{GENDER:$1|వాడుకరికి}} ఈమెయిలు పంపు",
- "userpage": "వాడుకరి పేజీని చూడండి",
- "projectpage": "ప్రాజెక్టు పేజీని చూడండి",
"imagepage": "ఫైలు పేజీని చూడండి",
"mediawikipage": "సందేశం పేజీని చూడండి",
"templatepage": "మూస పేజీని చూడండి",
"userlogin-remembermypassword": "నన్ను లాగిన్ చేసే ఉంచు",
"userlogin-signwithsecure": "సురక్షిత కనెక్షను వాడు",
"cannotlogin-title": "లాగిన్ చెయ్యలేకున్నాం",
+ "cannotlogin-text": "లాగినవడం సాధ్యపడడం లేదు.",
"cannotloginnow-title": "ఇప్పుడు లాగిన్ అవలేరు",
"cannotloginnow-text": "$1 ను వాడుతూండగా లాగౌట్ అవలేరు.",
"cannotcreateaccount-title": "ఖాతాలను సృష్టించలేము",
"page_first": "మొదటి",
"page_last": "చివరి",
"histlegend": "తేడా ఎంపిక: సంచికల యొక్క రేడియో బాక్సులను ఎంచుకొని ఎంటర్ నొక్కండి, లేదా పైన/ కింద ఉన్న మీటను నొక్కండి.<br />\nసూచిక: <strong>({{int:cur}})</strong> = ప్రస్తుత సంచికతో కల తేడాలు, <strong>({{int:last}})</strong> = ఇంతకు ముందరి సంచికతో గల తేడాలు, <strong>{{int:minoreditletter}}</strong> = చిన్న మార్పు",
- "history-fieldset-title": "à°\9aà°°à°¿à°¤à±\8dà°° à°\9aà±\82à°¡ండి",
+ "history-fieldset-title": "à°\95à±\82à°°à±\8dà°ªà±\81à°² à°\95à±\8bà°¸à°\82 à°µà±\86à°¤à°\95ండి",
"history-show-deleted": "తొలగించినవి మాత్రమే",
"histfirst": "అతి పాతవి",
"histlast": "సరికొత్త",
"rcfilters-filterlist-title": "వడపోతలు",
"rcfilters-highlightmenu-title": "ఒక రంగును ఎంచుకోండి",
"rcfilters-filtergroup-registration": "వాడుకరి నమోదు",
- "rcfilters-filter-editsbyself-label": "à°®à±\80 à°¸à±\8dà°µà°\82à°¤ దిదà±\8dà°¦à±\81బాà°\9fà±\8dà°²à±\81",
- "rcfilters-filter-editsbyself-description": "మీ దిద్దుబాట్లు.",
+ "rcfilters-filter-editsbyself-label": "మీ దిద్దుబాట్లు",
+ "rcfilters-filter-editsbyself-description": "à°®à±\80 à°¸à±\8dà°µà°\82à°¤ దిదà±\8dà°¦à±\81బాà°\9fà±\8dà°²à±\81.",
"rcfilters-filter-editsbyother-label": "ఇతరుల దిద్దుబాట్లు",
- "rcfilters-filter-editsbyother-description": "à°\87తరà±\81à°²à±\81 (à°®à±\80à°°à±\81 à°\95ాదà±\81) à°\9aà±\87సిన దిదà±\8dà°¦à±\81బాà°\9fà±\8dà°²à±\81.",
+ "rcfilters-filter-editsbyother-description": "à°®à±\80à°°à±\81 à°\9aà±\87సినవి à°\95à°¾à°\95à±\81à°\82à°¡à°¾ మిà°\97ిలిన దిదà±\8dà°¦à±\81బాà°\9fà±\8dలనà±\8dà°¨à±\80.",
"rcfilters-filtergroup-userExpLevel": "అనుభవ స్థాయి (నమోదైన వాడుకరులకు మాత్రమే)",
"rcfilters-filter-user-experience-level-newcomer-label": "కొత్తవారు",
"rcfilters-filter-user-experience-level-newcomer-description": "10 కంటే తక్కువ దిద్దుబాట్లు, 4 రోజుల కంటే తక్కువ పని.",
"rcfilters-filter-user-experience-level-learner-label": "నేర్చుకుంటున్నవారు",
- "rcfilters-filter-user-experience-level-learner-description": "\"à°\95à±\8aà°¤à±\8dతవారి\" à°\95à°\82à°\9fà±\87 à°\8eà°\95à±\8dà°\95à±\81à°µ, \"à°\85à°¨à±\81à°à°µà°\9cà±\8dà°\9eà±\81à°²à±\88à°¨ వాడà±\81à°\95à°°à±\81à°²\" à°\95à°\82à°\9fà±\87 à°¤à°\95à±\8dà°\95à±\81à°µ పనిరà±\8bà°\9cà±\81à°²à±\81.",
+ "rcfilters-filter-user-experience-level-learner-description": "\"à°\95à±\8aà°¤à±\8dతవారి\" à°\95à°\82à°\9fà±\87 à°\8eà°\95à±\8dà°\95à±\81à°µ, \"à°\85à°¨à±\81à°à°µà°\9cà±\8dà°\9eà±\81à°²à±\88à°¨ వాడà±\81à°\95à°°à±\81à°²\" à°\95à°\82à°\9fà±\87 à°¤à°\95à±\8dà°\95à±\81à°µ à°\85à°¨à±\81à°à°µà°\82.",
"rcfilters-filter-user-experience-level-experienced-label": "అనుభవజ్ఞులైన వాడుకరులు",
"rcfilters-filter-user-experience-level-experienced-description": "30 రోజుల కంటే ఎక్కువ పని, 500 పైచిలుకు దిద్దుబాట్లు.",
+ "rcfilters-filter-bots-label": "బాట్",
"rcfilters-filtergroup-significance": "ప్రాముఖ్యం",
"rcfilters-filter-minor-label": "చిన్న మార్పులు",
"rcfilters-filter-minor-description": "రచయిత చిన్నవిగా గుర్తు పెట్టిన దిద్దుబాట్లు.",
"לערי ריינהארט",
"아라",
"Macofe",
- "AryanSogd"
+ "AryanSogd",
+ "ToJack"
]
},
"tog-underline": "Пайвандҳо хаткашида:",
"october": "Октябр",
"november": "Ноябр",
"december": "Декабр",
- "january-gen": "Январ",
- "february-gen": "Феврал",
- "march-gen": "Ð\9cаÑ\80Ñ\82",
- "april-gen": "Ð\90пÑ\80ел",
- "may-gen": "Ð\9cай",
- "june-gen": "Ð\98Ñ\8eн",
- "july-gen": "Ð\98Ñ\8eл",
- "august-gen": "Ð\90вгÑ\83Ñ\81Ñ\82",
- "september-gen": "Сентябр",
- "october-gen": "Ð\9eкÑ\82Ñ\8fбÑ\80",
- "november-gen": "Ð\9dоÑ\8fбÑ\80",
- "december-gen": "Ð\94екабÑ\80",
+ "january-gen": "январи",
+ "february-gen": "феврали",
+ "march-gen": "маÑ\80Ñ\82и",
+ "april-gen": "апÑ\80ели",
+ "may-gen": "майи",
+ "june-gen": "иÑ\8eни",
+ "july-gen": "иÑ\8eли",
+ "august-gen": "авгÑ\83Ñ\81Ñ\82и",
+ "september-gen": "сентябри",
+ "october-gen": "окÑ\82Ñ\8fбÑ\80и",
+ "november-gen": "ноÑ\8fбÑ\80и",
+ "december-gen": "декабÑ\80и",
"jan": "Ян",
"feb": "Фев",
"mar": "Мар",
"anontalk": "Баҳс бо ин IP",
"navigation": "Гаштан",
"and": " ва",
- "qbfind": "Ёфтан",
- "qbbrowse": "Мурур",
- "qbedit": "Вироиш",
- "qbpageoptions": "Ин саҳифа",
- "qbmyoptions": "Саҳифаҳои ман",
"faq": "Саволҳои тез-тез пурсидашуда",
- "faqpage": "Project:Саволҳои тез-тез пурсидашуда",
"actions": "Амалкардҳо",
"namespaces": "Фазоҳои ном",
"variants": "Вариантҳо",
"edit-local": "Вироиши тавзеҳи маҳаллӣ",
"create": "Эҷод",
"create-local": "Иловаи тавзеҳи маҳаллӣ",
- "editthispage": "Вироиши ин саҳифа",
- "create-this-page": "Эҷод кардани ин саҳифа",
"delete": "Ҳазф",
- "deletethispage": "Ин саҳифаро ҳазф кунед",
- "undeletethispage": "Барқарор кардани ин саҳифа",
"undelete_short": "Эҳёи {{PLURAL:$1|вироиш|$1 вироишот}}",
"viewdeleted_short": "{{PLURAL:$1|вироиши ҳазфшуда|$1 вироишҳои ҳазфшуда}}",
"protect": "Ҳифз кардан",
"protect_change": "тағйир",
- "protectthispage": "Ҳифз намудани ин саҳифа",
"unprotect": "Тағйири сатҳи муҳофизат",
- "unprotectthispage": "Тағйири муҳофизати ин саҳифа",
"newpage": "Саҳифаи нав",
- "talkpage": "Ин саҳифаро муҳокима кунед",
"talkpagelinktext": "Баҳс",
"specialpage": "Саҳифаи вижа",
"personaltools": "Абзорҳои шахсӣ",
- "articlepage": "Намоиши мақола",
"talk": "Баҳс",
"views": "Назарот",
"toolbox": "Абзорҳо",
- "userpage": "Саҳифаи корбарро бинед",
- "projectpage": "Дидани саҳифаи лоиҳа",
"imagepage": "Намоиши саҳифаи парванда",
"mediawikipage": "Намоиши саҳифаи акс",
"templatepage": "Нигаристани саҳифаи шаблон",
"titlematches": "Унвони саҳифа татбиқ мекунад",
"textmatches": "Матни мақола татбиқ мекунад",
"notextmatches": "Матни ҳеҷ мақолае рост намеояд",
- "prevn": "қаблӣ {{PLURAL:$1|$1}}",
- "nextn": "баъдӣ {{PLURAL:$1|$1}}",
+ "prevn": "{{PLURAL:$1|$1-тои}} қаблӣ",
+ "nextn": "{{PLURAL:$1|$1-тои}} навбатӣ",
"prevn-title": "Қаблӣ $1 {{PLURAL:$1|натиҷа|натоиҷ}}",
"nextn-title": "Баъдӣ $1 {{PLURAL:$1|натиҷа|натоиҷ}}",
"shown-title": "Намоиши $1 {{PLURAL:$1|натиҷа|натоиҷ}} дар ҳар саҳифа",
- "viewprevnext": "Намоиш ($1 {{int:pipe-separator}} $2) ($3)",
+ "viewprevnext": "Намоиши ($1 {{int:pipe-separator}} $2) ($3)",
"searchmenu-exists": "'''Саҳифае бо номи \"[[:$1]]\" дар ин вики вуҷуд дорад.'''",
"searchmenu-new": "'''Эҷоди саҳифаи \"[[:$1]]\" дар ин вики!'''",
"searchprofile-articles": "Саҳифаҳои мӯҳтаво",
"searchprofile-images-tooltip": "Ҷустуҷӯи парвандаҳо",
"searchprofile-everything-tooltip": "Ҷустуҷӯи ҳамаи мӯҳтаво (бо ҳисоби саҳифаҳои баҳс)",
"searchprofile-advanced-tooltip": "Ҷустуҷӯ дар фазоҳои номи дилхоҳ",
- "search-result-size": "$1 ({{PLURAL:$2|1 калима|$2 калимаҳо}})",
+ "search-result-size": "$1 ({{PLURAL:$2|1 калима|$2 калима}})",
"search-redirect": "(тағйири масир $1)",
"search-section": "(қисмат $1)",
"search-suggest": "Оё шумо инро дар назар доред: $1",
"randomincategory-submit": "Бирав",
"randomredirect": "Масири тасодуфӣ",
"randomredirect-nopages": "Ҳеҷ саҳифаи тағйири масире дар ин фазои ном мавҷуд нест.",
- "statistics": "Омор\\Статистика",
+ "statistics": "Омор/Статистика",
"statistics-header-pages": "Саҳифаи омор",
"statistics-header-edits": "Вироиши омор",
"statistics-header-users": "Омори корбарон",
"withoutinterwiki-legend": "Пешванд",
"withoutinterwiki-submit": "Намоиш",
"fewestrevisions": "Саҳифаҳое, ки шумораи ками нусхаҳо доранд",
- "nbytes": "$1 {{PLURAL:$1|байт|байтҳо}}",
+ "nbytes": "$1 {{PLURAL:$1|байт|байт}}",
"ncategories": "$1 {{PLURAL:$1|гурӯҳ|гурӯҳҳо}}",
"nlinks": "$1 {{PLURAL:$1|пайванд|пайвандҳо}}",
"nmembers": "$1 {{PLURAL:$1|узв}}",
"notargettitle": "Мақсаде нест",
"notargettext": "Шумо ягон саҳифа ё корбареро барои иҷрои ин амал рӯи он мушаххас накардаед.",
"nopagetitle": "Чунин саҳифае вуҷуд надорад",
- "pager-newer-n": "{{PLURAL:$1|навтар 1|навтар $1}}",
- "pager-older-n": "{{PLURAL:$1|кӯҳнатар 1|кӯҳнатар $1}}",
+ "pager-newer-n": "{{PLURAL:$1|1-тои навтар|$1-тои навтар}}",
+ "pager-older-n": "{{PLURAL:$1|1-тои кӯҳнатар|$1-тои кӯҳнатар}}",
"suppress": "Назорат",
"booksources": "Манбаҳои китобҳо",
"booksources-search-legend": "Ҷустуҷӯи сарчашмаҳои китоб",
"markedaspatrolledtext": "Нусхаи интихобшуда ба унвони баррасишуда аломат зада шуд.",
"rcpatroldisabled": "Баррасии Тағйироти Охир фаъол нест",
"rcpatroldisabledtext": "Имкони Баррасии Тағйироти Охир дар ҳоли ҳозир ғайрифаъол аст.",
- "markedaspatrollederror": "Аломати баррасӣ зада нашуд",
+ "markedaspatrollederror": "Аломати тафтишшавӣ зада нашуд.",
"markedaspatrollederrortext": "Бояд як нусхаро мушаххас кунед то барчасб ба унвони баррасишуда аломат бихӯрад.",
"markedaspatrollederror-noautopatrol": "Шумо наметавонед ба тағйироти анҷом шуда тавассути худатон аломати баррасӣ бизанед.",
"patrol-log-page": "Гузоришҳои нигаҳбонӣ",
"tog-shownumberswatching": "显示监视用户数",
"tog-oldsig": "您现有的签名:",
"tog-fancysig": "将签名视为维基文本(不自动生成链接)",
- "tog-uselivepreview": "使ç\94¨å®\9e时预览",
+ "tog-uselivepreview": "使ç\94¨å\8d³时预览",
"tog-forceeditsummary": "未输入编辑摘要时提醒我",
"tog-watchlisthideown": "隐藏监视列表中的我的编辑",
"tog-watchlisthidebots": "隐藏监视列表中的机器人编辑",
"tog-showhiddencats": "显示隐藏分类",
"tog-norollbackdiff": "执行回退后不显示差异",
"tog-useeditwarning": "当我离开编辑页面时,如果有尚未保存的更改,请提醒我",
- "tog-prefershttps": "在登录时总是使用安全连接",
+ "tog-prefershttps": "在登录后总是使用安全连接",
"underline-always": "始终",
"underline-never": "从不",
"underline-default": "皮肤或浏览器默认设置",
"period-am": "AM",
"period-pm": "PM",
"pagecategories": "{{PLURAL:$1|分类}}",
- "category_header": "å\88\86ç±»â\80\9c$1â\80\9dä¸\8b的页面",
+ "category_header": "å\88\86ç±»â\80\9c$1â\80\9dä¸的页面",
"subcategories": "子分类",
"category-media-header": "分类“$1”中的媒体文件",
"category-empty": "<em>本分类目前不含有任何页面或媒体文件。</em>",
"resetpass-submit-cancel": "取消",
"resetpass-wrong-oldpass": "临时密码或当前密码无效。您可能已经更改了您的密码,或者请求了新的临时密码。",
"resetpass-recycled": "请重置您的密码为与当前密码不同的密码。",
- "resetpass-temp-emailed": "您通过一个暂时电子邮件发送的代码登录。要完成登录,您必须在此设置一个新密码:",
+ "resetpass-temp-emailed": "您使用了通过电子邮件发送的临时密码登录。要完成登录,您必须在此设置一个新密码:",
"resetpass-temp-password": "临时密码:",
"resetpass-abort-generic": "密码更改已经被扩展程序中止。",
"resetpass-expired": "您的密码已经到期。请设置新登录密码。",
"confirm-purge-title": "刷新本页",
"confirm_purge_button": "确定",
"confirm-purge-top": "要清除此页面的缓存吗?",
- "confirm-purge-bottom": "清除页面数据会清除缓存并强制显示最近的版本。",
+ "confirm-purge-bottom": "刷新页面会清除缓存并强制显示最近的版本。",
"confirm-watch-button": "确定",
"confirm-watch-top": "将此页添加到您的监视列表吗?",
"confirm-unwatch-button": "确定",
"resetpass-submit-cancel": "取消",
"resetpass-wrong-oldpass": "無效的臨時或現有密碼。\n您可能已經變更了密碼,或者已經請求一個新的臨時密碼。",
"resetpass-recycled": "請重設您的密碼為一個與目前不同的密碼。",
- "resetpass-temp-emailed": "您使用臨時電子郵件傳送的代碼登入。\n要完成登入,您必須在這裡設定一個新密碼:",
+ "resetpass-temp-emailed": "您使用臨時電子郵件傳送的密碼登入。\n要完成登入,您必須在這裡設定一個新密碼:",
"resetpass-temp-password": "臨時密碼:",
"resetpass-abort-generic": "擴充套件已中止了變更密碼的操作。",
"resetpass-expired": "您的密碼已過期。請設定一個新的密碼以登入。",
"rcfilters-filter-previousrevision-label": "早期版本",
"rcfilters-filter-previousrevision-description": "所有除了頁面近期變更的變更。",
"rcfilters-filter-excluded": "已排除",
- "rcfilters-tag-prefix-namespace-inverted": "<strong>:not</strong> $1",
+ "rcfilters-tag-prefix-namespace-inverted": "<strong>:不是</strong>$1",
"rcfilters-view-tags": "標記的編輯",
"rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
"rclistfromreset": "重設日期選擇",
"confirmrecreate": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,原因為:\n: <em>$2</em>\n請確認您是否真的要重新建立此頁面。",
"confirmrecreate-noreason": "在您編輯的同時,使用者 [[User:$1|$1]] ([[User talk:$1|對話]]) 刪除了此頁面,請確認您是否真的要重新建立此頁面。",
"recreate": "重新建立",
- "confirm-purge-title": "å\88ªé\99¤æ¤頁",
+ "confirm-purge-title": "å\88·æ\96°æ\9c¬頁",
"confirm_purge_button": "確定",
"confirm-purge-top": "要清除此頁面的快取嗎?",
- "confirm-purge-bottom": "清除頁面會清空頁面的快取記錄並強制顯示最近的頁面修訂。",
+ "confirm-purge-bottom": "刷新頁面會清空頁面的快取記錄並強制顯示最近的頁面修訂。",
"confirm-watch-button": "確定",
"confirm-watch-top": "新增此頁面至您的監視清單?",
"confirm-unwatch-button": "確定",
"tags-create-reason": "原因:",
"tags-create-submit": "建立",
"tags-create-no-name": "您必須指定一個標籤名稱。",
- "tags-create-invalid-chars": "標籤名稱不可包含逗號 (<code>,</code>)、管線 (<code>|</code>) 或斜線 (<code>/</code>)。",
+ "tags-create-invalid-chars": "標籤名稱不可包含逗號 (<code>,</code>)、豎線 (<code>|</code>) 或斜線 (<code>/</code>)。",
"tags-create-invalid-title-chars": "標籤名稱不能含有無法使用者頁面標題的字元。",
"tags-create-already-exists": "標籤 \"$1\" 已存在。",
"tags-create-warnings-above": "嘗試建立標籤 \"$1\" 時發生下列{{PLURAL:$2|警告}}:",
"authmanager-autocreate-exception": "自動帳號建立因發生錯誤臨時關閉。",
"authmanager-userdoesnotexist": "使用者帳號 \"$1\" 尚未註冊。",
"authmanager-userlogin-remembermypassword-help": "是否要記住密碼來取得更長的連線階段時間。",
- "authmanager-username-help": "èª\8d証用的使用者名稱。",
- "authmanager-password-help": "èª\8d証用的密碼。",
- "authmanager-domain-help": "å¤\96é\83¨èª\8d証用的網域。",
+ "authmanager-username-help": "èª\8dè\89用的使用者名稱。",
+ "authmanager-password-help": "èª\8dè\89用的密碼。",
+ "authmanager-domain-help": "å¤\96é\83¨èª\8dè\89用的網域。",
"authmanager-retype-help": "再輸入一次密碼確認。",
"authmanager-email-label": "電子郵件",
"authmanager-email-help": "電子郵件地址",
"authmanager-realname-label": "真實姓名",
"authmanager-realname-help": "使用者的真實姓名",
- "authmanager-provider-password": "Password-based èª\8d証",
- "authmanager-provider-password-domain": "Password- å\8f\8a domain-based èª\8d証",
+ "authmanager-provider-password": "Password-based èª\8dè\89",
+ "authmanager-provider-password-domain": "Password- å\8f\8a domain-based èª\8dè\89",
"authmanager-provider-temporarypassword": "臨時密碼",
"authprovider-confirmlink-message": "根據您最近的登入嘗試次數,以下帳號可以被連結至您的 wiki 帳號。連結帳號可以讓您使用這些帳號登入。請選擇一個您想連結的帳號。",
"authprovider-confirmlink-request-label": "應連結的帳號",
"authpage-cannot-link-continue": "無法繼續帳號連結,您的連線階段似乎已逾時。",
"cannotauth-not-allowed-title": "權限不足",
"cannotauth-not-allowed": "您不被允許使用此頁面",
- "changecredentials": "è®\8aæ\9b´æ\86\91証",
+ "changecredentials": "è®\8aæ\9b´æ\86\91è\89",
"changecredentials-submit": "變更認證",
"changecredentials-invalidsubpage": "$1 不是有效的憑証類型。",
"changecredentials-success": "已變更您的認證。",
- "removecredentials": "移é\99¤æ\86\91証",
+ "removecredentials": "移é\99¤æ\86\91è\89",
"removecredentials-submit": "移除認證",
"removecredentials-invalidsubpage": "$1 不是有效的憑証類型。",
"removecredentials-success": "已移除您的憑證。",
- "credentialsform-provider": "æ\86\91証類型:",
+ "credentialsform-provider": "æ\86\91è\89類型:",
"credentialsform-account": "帳號名稱:",
"cannotlink-no-provider-title": "沒有可連結的帳號",
"cannotlink-no-provider": "沒有可連結的帳號。",
--- /dev/null
+<?php
+/**
+ * Refreshes category counts.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ */
+
+require_once __DIR__ . '/Maintenance.php';
+
+use MediaWiki\MediaWikiServices;
+
+/**
+ * Maintenance script that refreshes category membership counts in the category
+ * table.
+ *
+ * (The populateCategory.php script will also recalculate counts, but
+ * recountCategories only updates rows that need to be updated, making it more
+ * efficient.)
+ *
+ * @ingroup Maintenance
+ */
+class RecountCategories extends Maintenance {
+ public function __construct() {
+ parent::__construct();
+ $this->addDescription( <<<'TEXT'
+This script refreshes the category membership counts stored in the category
+table. As time passes, these counts often drift from the actual number of
+category members. The script identifies rows where the value in the category
+table does not match the number of categorylinks rows for that category, and
+updates the category table accordingly.
+
+To fully refresh the data in the category table, you need to run this script
+three times: once in each mode. Alternatively, just one mode can be run if
+required.
+TEXT
+ );
+ $this->addOption(
+ 'mode',
+ '(REQUIRED) Which category count column to recompute: "pages", "subcats" or "files".',
+ true,
+ true
+ );
+ $this->addOption(
+ 'begin',
+ 'Only recount categories with cat_id greater than the given value',
+ false,
+ true
+ );
+ $this->addOption(
+ 'throttle',
+ 'Wait this many milliseconds after each batch. Default: 0',
+ false,
+ true
+ );
+
+ $this->setBatchSize( 500 );
+ }
+
+ public function execute() {
+ $this->mode = $this->getOption( 'mode' );
+ if ( !in_array( $this->mode, [ 'pages', 'subcats', 'files' ] ) ) {
+ $this->error( 'Please specify a valid mode: one of "pages", "subcats" or "files".', 1 );
+ }
+
+ $this->minimumId = intval( $this->getOption( 'begin', 0 ) );
+
+ // do the work, batch by batch
+ $affectedRows = 0;
+ while ( ( $result = $this->doWork() ) !== false ) {
+ $affectedRows += $result;
+ usleep( $this->getOption( 'throttle', 0 ) * 1000 );
+ }
+
+ $this->output( "Done! Updated the {$this->mode} counts of $affectedRows categories.\n" .
+ "Now run the script using the other --mode options if you haven't already.\n" );
+ if ( $this->mode === 'pages' ) {
+ $this->output(
+ "Also run 'php cleanupEmptyCategories.php --mode remove' to remove empty,\n" .
+ "nonexistent categories from the category table.\n\n" );
+ }
+ }
+
+ protected function doWork() {
+ $this->output( "Finding up to {$this->mBatchSize} drifted rows " .
+ "starting at cat_id {$this->minimumId}...\n" );
+
+ $countingConds = [ 'cl_to = cat_title' ];
+ if ( $this->mode === 'subcats' ) {
+ $countingConds['cl_type'] = 'subcat';
+ } elseif ( $this->mode === 'files' ) {
+ $countingConds['cl_type'] = 'file';
+ }
+
+ $dbr = $this->getDB( DB_REPLICA, 'vslow' );
+ $countingSubquery = $dbr->selectSQLText( 'categorylinks',
+ 'COUNT(*)',
+ $countingConds,
+ __METHOD__ );
+
+ // First, let's find out which categories have drifted and need to be updated.
+ // The query counts the categorylinks for each category on the replica DB,
+ // but this data can't be used for updating the master, so we don't include it
+ // in the results.
+ $idsToUpdate = $dbr->selectFieldValues( 'category',
+ 'cat_id',
+ [
+ 'cat_id > ' . $this->minimumId,
+ "cat_{$this->mode} != ($countingSubquery)"
+ ],
+ __METHOD__,
+ [ 'LIMIT' => $this->mBatchSize ]
+ );
+ if ( !$idsToUpdate ) {
+ return false;
+ }
+ $this->output( "Updating cat_{$this->mode} field on " .
+ count( $idsToUpdate ) . " rows...\n" );
+
+ // In the next batch, start where this query left off. The rows selected
+ // in this iteration shouldn't be selected again after being updated, but
+ // we still keep track of where we are up to, as extra protection against
+ // infinite loops.
+ $this->minimumId = end( $idsToUpdate );
+
+ // Now, on master, find the correct counts for these categories.
+ $dbw = $this->getDB( DB_MASTER );
+ $res = $dbw->select( 'category',
+ [ 'cat_id', 'count' => "($countingSubquery)" ],
+ [ 'cat_id' => $idsToUpdate ],
+ __METHOD__ );
+
+ // Update the category counts on the rows we just identified.
+ // This logic is equivalent to Category::refreshCounts, except here, we
+ // don't remove rows when cat_pages is zero and the category description page
+ // doesn't exist - instead we print a suggestion to run
+ // cleanupEmptyCategories.php.
+ $affectedRows = 0;
+ foreach ( $res as $row ) {
+ $dbw->update( 'category',
+ [ "cat_{$this->mode}" => $row->count ],
+ [
+ 'cat_id' => $row->cat_id,
+ "cat_{$this->mode} != {$row->count}",
+ ],
+ __METHOD__ );
+ $affectedRows += $dbw->affectedRows();
+ }
+
+ MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->waitForReplication();
+
+ return $affectedRows;
+ }
+}
+
+$maintClass = 'RecountCategories';
+require_once RUN_MAINTENANCE_IF_MAIN;
$bottom = $( '<div>' )
.addClass( 'mw-rcfilters-ui-filterWrapperWidget-bottom' );
- if ( mw.config.get( 'wgStructuredChangeFiltersEnableLiveUpdate' ) ) {
+ if (
+ mw.config.get( 'wgStructuredChangeFiltersEnableLiveUpdate' ) ||
+ // Allow users to enable live update with ?liveupdate=1
+ new mw.Uri().query.liveupdate
+ ) {
$bottom.append( this.liveUpdateButton.$element );
}
mw.rcfilters.ui.LiveUpdateButtonWidget.parent.call( this, $.extend( {
icon: 'play',
label: mw.message( 'rcfilters-liveupdates-button' ).text()
- } ), config );
+ }, config ) );
this.controller = controller;
.addClass( 'mw-rcfilters-ui-menuSelectWidget-view-' + viewName );
this.currentView = viewName;
+ this.scrollToTop();
this.clip();
}
};
$module = new ResourceLoaderStartUpModule();
$out = ltrim( $case['out'], "\n" );
+ // Disable log from getModuleRegistrations via MWExceptionHandler
+ // for case where getVersionHash() is expected to throw.
+ $this->setLogger( 'exception', new Psr\Log\NullLogger() );
+
$this->assertEquals(
self::expandPlaceholders( $out ),
$module->getModuleRegistrations( $context ),
* @covers ResourceLoader::getCombinedVersion
*/
public function testGetCombinedVersion() {
- $rl = new EmptyResourceLoader();
+ $rl = $this->getMockBuilder( EmptyResourceLoader::class )
+ // Disable log from outputErrorAndLog
+ ->setMethods( [ 'outputErrorAndLog' ] )->getMock();
$rl->register( [
'foo' => self::getSimpleModuleMock(),
'ferry' => self::getFailFerryMock(),
$rl
);
+ // Disable log from makeModuleResponse via outputErrorAndLog
+ $this->setLogger( 'exception', new Psr\Log\NullLogger() );
+
$response = $rl->makeModuleResponse( $context, $modules );
$errors = $rl->getErrors();
'getModuleNames'
);
+ // Disable log from makeModuleResponse via outputErrorAndLog
+ $this->setLogger( 'exception', new Psr\Log\NullLogger() );
+
$modules = [ 'startup' => $rl->getModule( 'startup' ) ];
$response = $rl->makeModuleResponse( $context, $modules );
$errors = $rl->getErrors();
+++ /dev/null
-mediaWiki.loader.testCallback();
--- /dev/null
+mediaWiki.loader.testCallback();
+++ /dev/null
-QUnit.start();
-QUnit.assert.ok( true, 'Successfully loaded!' );
isAwesomeDone = true;
};
- mw.loader.implement( 'test.callback', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/callMwLoaderTestCallback.js' ) ] );
+ mw.loader.implement( 'test.callback', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/mwLoaderTestCallback.js' ) ] );
return mw.loader.using( 'test.callback', function () {
assert.strictEqual( isAwesomeDone, true, 'test.callback module should\'ve caused isAwesomeDone to be true' );
isAwesomeDone = true;
};
- mw.loader.implement( 'hasOwnProperty', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/callMwLoaderTestCallback.js' ) ], {}, {} );
+ mw.loader.implement( 'hasOwnProperty', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/mwLoaderTestCallback.js' ) ], {}, {} );
return mw.loader.using( 'hasOwnProperty', function () {
assert.strictEqual( isAwesomeDone, true, 'hasOwnProperty module should\'ve caused isAwesomeDone to be true' );
isAwesomeDone = true;
};
- mw.loader.implement( 'test.promise', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/callMwLoaderTestCallback.js' ) ] );
+ mw.loader.implement( 'test.promise', [ QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/mwLoaderTestCallback.js' ) ] );
return mw.loader.using( 'test.promise' )
.done( function () {
);
} );
- QUnit.asyncTest( '.load( "//protocol-relative" ) - T32825', function ( assert ) {
- // This bug was actually already fixed in 1.18 and later when discovered in 1.17.
- // Test is for regressions!
+ // This bug was actually already fixed in 1.18 and later when discovered in 1.17.
+ QUnit.test( '.load( "//protocol-relative" ) - T32825', function ( assert ) {
+ var target,
+ done = assert.async();
- // Forge a URL to the test callback script
- var target = QUnit.fixurl(
- mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/qunitOkCall.js'
+ // URL to the callback script
+ target = QUnit.fixurl(
+ mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/mwLoaderTestCallback.js'
);
-
- // Confirm that mw.loader.load() works with protocol-relative URLs
+ // Ensure a protocol-relative URL for this test
target = target.replace( /https?:/, '' );
+ assert.equal( target.slice( 0, 2 ), '//', 'URL is protocol-relative' );
- assert.equal( target.slice( 0, 2 ), '//',
- 'URL must be relative to test relative URLs!'
- );
+ mw.loader.testCallback = function () {
+ delete mw.loader.testCallback;
+ assert.ok( true, 'callback' );
+ done();
+ };
- // Async!
- // The target calls QUnit.start
+ // Go!
mw.loader.load( target );
} );
- QUnit.asyncTest( '.load( "/absolute-path" )', function ( assert ) {
- // Forge a URL to the test callback script
- var target = QUnit.fixurl(
- mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/qunitOkCall.js'
- );
+ QUnit.test( '.load( "/absolute-path" )', function ( assert ) {
+ var target,
+ done = assert.async();
- // Confirm that mw.loader.load() works with absolute-paths (relative to current hostname)
+ // URL to the callback script
+ target = QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/mwLoaderTestCallback.js' );
assert.equal( target.slice( 0, 1 ), '/', 'URL is relative to document root' );
- // Async!
- // The target calls QUnit.start
+ mw.loader.testCallback = function () {
+ delete mw.loader.testCallback;
+ assert.ok( true, 'callback' );
+ done();
+ };
+
+ // Go!
mw.loader.load( target );
} );
}
} ) );
- QUnit.asyncTest( 'toggleToc', function ( assert ) {
+ QUnit.test( 'toggleToc', function ( assert ) {
var tocHtml, $toc, $toggleLink, $tocList;
assert.strictEqual( $( '.toc' ).length, 0, 'There is no table of contents on the page at the beginning' );
assert.strictEqual( $tocList.is( ':hidden' ), false, 'The table of contents is now visible' );
$toggleLink.click();
- $tocList.promise().done( function () {
+ return $tocList.promise().then( function () {
assert.strictEqual( $tocList.is( ':hidden' ), true, 'The table of contents is now hidden' );
$toggleLink.click();
- $tocList.promise().done( function () {
- QUnit.start();
- } );
+ return $tocList.promise();
} );
} );
}( mediaWiki, jQuery ) );