Merge "RCFilters: Reduce saved queries items height"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 17 Jul 2017 19:44:33 +0000 (19:44 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 17 Jul 2017 19:44:33 +0000 (19:44 +0000)
51 files changed:
INSTALL
RELEASE-NOTES-1.30
autoload.php
composer.json
docs/extension.schema.v1.json
docs/extension.schema.v2.json
includes/api/i18n/fr.json
includes/api/i18n/ko.json
includes/api/i18n/pl.json
includes/filerepo/FileRepo.php
includes/installer/MysqlInstaller.php
includes/installer/i18n/fr.json
includes/specialpage/ChangesListSpecialPage.php
includes/user/User.php
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bho.json
languages/i18n/bs.json
languages/i18n/csb.json
languages/i18n/din.json
languages/i18n/el.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fr.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/ja.json
languages/i18n/km.json
languages/i18n/lv.json
languages/i18n/nl.json
languages/i18n/pl.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ru.json
languages/i18n/sah.json
languages/i18n/su.json
languages/i18n/te.json
languages/i18n/tg-cyrl.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/recountCategories.php [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.LiveUpdateButtonWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js
tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
tests/qunit/data/callMwLoaderTestCallback.js [deleted file]
tests/qunit/data/mwLoaderTestCallback.js [new file with mode: 0644]
tests/qunit/data/qunitOkCall.js [deleted file]
tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.toc.test.js

diff --git a/INSTALL b/INSTALL
index 90da381..13c9c62 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -8,7 +8,7 @@ Starting with MediaWiki 1.2.0, it's possible to install and configure the wiki
 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
index 453368b..87e6ce5 100644 (file)
@@ -5,6 +5,10 @@ THIS IS NOT A RELEASE YET
 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
@@ -46,6 +50,7 @@ production.
 
 ==== 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
@@ -147,7 +152,7 @@ Oracle and Microsoft SQL Server.
 
 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
index 30ec1d7..ce69ecd 100644 (file)
@@ -1190,6 +1190,7 @@ $wgAutoloadLocalClasses = [
        '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',
index 8262880..83fcda0 100644 (file)
@@ -33,7 +33,7 @@
                "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",
@@ -52,7 +52,7 @@
                "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",
index f241cf5..7cfebca 100644 (file)
@@ -39,7 +39,7 @@
                "url": {
                        "type": "string",
                        "description": "URL to the homepage for the extension.",
-                       "format": "uri"
+                       "format": "uri-reference"
                },
                "description": {
                        "type": "string",
index 518a65c..75a4f2c 100644 (file)
@@ -40,7 +40,7 @@
                "url": {
                        "type": "string",
                        "description": "URL to the homepage for the extension.",
-                       "format": "uri"
+                       "format": "uri-reference"
                },
                "description": {
                        "type": "string",
index e419711..7913b8a 100644 (file)
        "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>&lt;head&gt;</code> de la page.",
+       "apihelp-parse-paramvalue-prop-headitems": "Fournit les éléments à mettre dans le <code>&lt;head&gt;</code> de la page.",
        "apihelp-parse-paramvalue-prop-headhtml": "Fournit le <code>&lt;head&gt;</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.",
index 158aa91..36b580e 100644 (file)
        "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>의 마지막 판을 되돌리기",
index 7876b3a..9b509ee 100644 (file)
@@ -57,6 +57,7 @@
        "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.",
index 8edf81f..f89d96b 100644 (file)
@@ -776,7 +776,7 @@ class FileRepo {
        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(
index cbb79f8..0250b6f 100644 (file)
@@ -51,7 +51,7 @@ class MysqlInstaller extends DatabaseInstaller {
 
        public $supportedEngines = [ 'InnoDB', 'MyISAM' ];
 
-       public $minimumVersion = '5.0.3';
+       public $minimumVersion = '5.5.8';
 
        public $webUserPrivs = [
                'DELETE',
index db21da6..2510a9e 100644 (file)
@@ -81,7 +81,7 @@
        "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é",
@@ -89,7 +89,7 @@
        "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",
index 8c4cc11..b85d272 100644 (file)
@@ -22,6 +22,7 @@
  */
 use MediaWiki\Logger\LoggerFactory;
 use Wikimedia\Rdbms\ResultWrapper;
+use Wikimedia\Rdbms\FakeResultWrapper;
 use Wikimedia\Rdbms\IDatabase;
 
 /**
@@ -518,13 +519,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                $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;
index a1119fa..7bf6be5 100644 (file)
@@ -305,12 +305,6 @@ class User implements IDBAccessObject {
        /** @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 = [];
 
        /**
@@ -1676,7 +1670,6 @@ class User implements IDBAccessObject {
                                        'address' => $ip,
                                        'systemBlock' => 'proxy',
                                ] );
-                               $this->blockTrigger = 'proxy-block';
                        } elseif ( $this->isAnon() && $this->isDnsBlacklisted( $ip ) ) {
                                $block = new Block( [
                                        'byText' => wfMessage( 'sorbs' )->text(),
@@ -1684,7 +1677,6 @@ class User implements IDBAccessObject {
                                        'address' => $ip,
                                        'systemBlock' => 'dnsbl',
                                ] );
-                               $this->blockTrigger = 'openproxy-block';
                        }
                }
 
@@ -1703,7 +1695,6 @@ class User implements IDBAccessObject {
                                # 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';
                        }
                }
 
@@ -1719,7 +1710,6 @@ class User implements IDBAccessObject {
                                'anonOnly' => true,
                                'systemBlock' => 'wgSoftBlockRanges',
                        ] );
-                       $this->blockTrigger = 'config-block';
                }
 
                if ( $block instanceof Block ) {
@@ -1733,7 +1723,6 @@ class User implements IDBAccessObject {
                        $this->mBlockedby = '';
                        $this->mHideName = 0;
                        $this->mAllowUsertalk = false;
-                       $this->blockTrigger = false;
                }
 
                // Avoid PHP 7.1 warning of passing $this by reference
@@ -1766,7 +1755,6 @@ class User implements IDBAccessObject {
                                $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.
index d5b0bee..ec0cdb2 100644 (file)
        "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": "Назва рахунку:"
 }
index 2c49908..0d966e0 100644 (file)
        "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": "Искате ли да продължите със създаването на етикета?",
index e93c826..696ce6d 100644 (file)
        "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": "ओवरसाइटर",
index 0423c05..a17799a 100644 (file)
        "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",
index fade353..f604e6a 100644 (file)
        "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]].",
index 043d179..8c967f0 100644 (file)
        "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",
index 1492aa4..78a26e0 100644 (file)
        "summary": "Σύνοψη:",
        "subject": "Θέμα:",
        "minoredit": "Αυτή είναι μια μικροαλλαγή",
-       "watchthis": "Παρακολούθηση αυτής της σελίδας",
+       "watchthis": "Παρακολούθηση της σελίδας",
        "savearticle": "Αποθήκευση σελίδας",
        "savechanges": "Αποθήκευση αλλαγών",
        "publishpage": "Δημοσίευση σελίδας",
index 9dd6be4..eb36a71 100644 (file)
        "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"
 }
index 47eed7a..4f63845 100644 (file)
        "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": "پالایه‌های ذخیره‌شده",
index f818043..e0d2f21 100644 (file)
        "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."
 }
index 629bb70..24b6059 100644 (file)
        "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."
 }
index 53bacc4..c44863c 100644 (file)
        "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",
index 50d13ae..df9fad9 100644 (file)
        "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」は無効なページ名です。"
 }
index 9522e03..e8ffe2d 100644 (file)
        "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": "អត្តលេខទំព័រ",
index cc344ef..c08e288 100644 (file)
        "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",
index 0334cd8..a00306d 100644 (file)
        "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",
index 788ef3f..d773224 100644 (file)
        "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",
index 70b030c..5c24a2b 100644 (file)
        "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",
index 72f7aa9..44335fc 100644 (file)
        "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]]",
index 86759b4..6ce8cb0 100644 (file)
        "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: несоответствие имени файла",
index e7abb78..4ef01ba 100644 (file)
        "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 кэнниттэн оҥоһуллубуттары көрдөр",
index 7e2cd24..f129609 100644 (file)
        "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",
index f54c390..23ff5d2 100644 (file)
        "anontalk": "చర్చ",
        "navigation": "మార్గదర్శకం",
        "and": "&#32;మరియు",
-       "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": "రచయిత చిన్నవిగా గుర్తు పెట్టిన దిద్దుబాట్లు.",
index 32fbc7f..8135189 100644 (file)
@@ -12,7 +12,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "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": "&#32;ва",
-       "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": "Гузоришҳои нигаҳбонӣ",
index ac23388..64fc0cd 100644 (file)
        "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": "确定",
index 9415770..cf6503a 100644 (file)
        "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": "沒有可連結的帳號。",
diff --git a/maintenance/recountCategories.php b/maintenance/recountCategories.php
new file mode 100644 (file)
index 0000000..a4bfa98
--- /dev/null
@@ -0,0 +1,172 @@
+<?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;
index a748063..3e7a3e1 100644 (file)
                $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 );
                }
 
index 8bab981..90ee4d7 100644 (file)
@@ -15,7 +15,7 @@
                mw.rcfilters.ui.LiveUpdateButtonWidget.parent.call( this, $.extend( {
                        icon: 'play',
                        label: mw.message( 'rcfilters-liveupdates-button' ).text()
-               } ), config );
+               }, config ) );
 
                this.controller = controller;
 
index 2bb0fdf..64b9ac9 100644 (file)
                                .addClass( 'mw-rcfilters-ui-menuSelectWidget-view-' + viewName );
 
                        this.currentView = viewName;
+                       this.scrollToTop();
                        this.clip();
                }
        };
index 1e09e92..03a609b 100644 (file)
@@ -400,6 +400,10 @@ mw.loader.register( [
                $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 ),
index 1422adc..e6f709d 100644 (file)
@@ -588,7 +588,9 @@ mw.example();
         * @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(),
@@ -720,6 +722,9 @@ mw.example();
                        $rl
                );
 
+               // Disable log from makeModuleResponse via outputErrorAndLog
+               $this->setLogger( 'exception', new Psr\Log\NullLogger() );
+
                $response = $rl->makeModuleResponse( $context, $modules );
                $errors = $rl->getErrors();
 
@@ -764,6 +769,9 @@ mw.example();
                        '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();
diff --git a/tests/qunit/data/callMwLoaderTestCallback.js b/tests/qunit/data/callMwLoaderTestCallback.js
deleted file mode 100644 (file)
index dd03411..0000000
+++ /dev/null
@@ -1 +0,0 @@
-mediaWiki.loader.testCallback();
diff --git a/tests/qunit/data/mwLoaderTestCallback.js b/tests/qunit/data/mwLoaderTestCallback.js
new file mode 100644 (file)
index 0000000..dd03411
--- /dev/null
@@ -0,0 +1 @@
+mediaWiki.loader.testCallback();
diff --git a/tests/qunit/data/qunitOkCall.js b/tests/qunit/data/qunitOkCall.js
deleted file mode 100644 (file)
index 3ed5514..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-QUnit.start();
-QUnit.assert.ok( true, 'Successfully loaded!' );
index a00b3cb..30654fa 100644 (file)
@@ -90,7 +90,7 @@
                        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 );
        } );
 
index 477550b..b20b68f 100644 (file)
@@ -6,7 +6,7 @@
                }
        } ) );
 
-       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 ) );