diff options
Diffstat (limited to 'extensions/TitleBlacklist')
30 files changed, 399 insertions, 243 deletions
diff --git a/extensions/TitleBlacklist/TitleBlacklist.hooks.php b/extensions/TitleBlacklist/TitleBlacklist.hooks.php index 78379a3d..34be8eb7 100644 --- a/extensions/TitleBlacklist/TitleBlacklist.hooks.php +++ b/extensions/TitleBlacklist/TitleBlacklist.hooks.php @@ -32,7 +32,12 @@ class TitleBlacklistHooks { if ( $action == 'create' || $action == 'edit' || $action == 'upload' ) { $blacklisted = TitleBlacklist::singleton()->userCannot( $title, $user, $action ); if ( $blacklisted instanceof TitleBlacklistEntry ) { - $result = array( $blacklisted->getErrorMessage( 'edit' ), + $errmsg = $blacklisted->getErrorMessage( 'edit' ); + ApiBase::$messageMap[$errmsg] = array( + 'code' => $errmsg, + 'info' => 'TitleBlacklist prevents this title from being created' + ); + $result = array( $errmsg, htmlspecialchars( $blacklisted->getRaw() ), $title->getFullText() ); return false; @@ -68,31 +73,64 @@ class TitleBlacklistHooks { } /** - * AbortMove hook + * MovePageCheckPermissions hook (1.25+) * - * @param $old Title - * @param $nt Title - * @param $user User - * @param $err + * @param Title $oldTitle + * @param Title $newTitle + * @param User $user + * @param $reason + * @param Status $status * @return bool */ - public static function abortMove( $old, $nt, $user, &$err ) { + public static function onMovePageCheckPermissions( Title $oldTitle, Title $newTitle, User $user, $reason, Status $status ) { $titleBlacklist = TitleBlacklist::singleton(); - $blacklisted = $titleBlacklist->userCannot( $nt, $user, 'move' ); + $blacklisted = $titleBlacklist->userCannot( $newTitle, $user, 'move' ); if ( !$blacklisted ) { - $blacklisted = $titleBlacklist->userCannot( $old, $user, 'edit' ); + $blacklisted = $titleBlacklist->userCannot( $oldTitle, $user, 'edit' ); } if ( $blacklisted instanceof TitleBlacklistEntry ) { - $err = wfMessage( $blacklisted->getErrorMessage( 'move' ), + $errmsg = $blacklisted->getErrorMessage( 'move' ); + ApiBase::$messageMap[$errmsg] = array( + 'code' => $errmsg, + 'info' => 'TitleBlacklist prevents this new title from being created or old title from being edited' + ); + $status->fatal( $errmsg, $blacklisted->getRaw(), - $old->getFullText(), - $nt->getFullText() )->parse(); + $oldTitle->getFullText(), + $newTitle->getFullText() ); return false; } + return true; } /** + * AbortMove hook (<1.24) + * + * @todo: Remove once 1.24 support is dropped + * + * @param $old Title + * @param $nt Title + * @param $user User + * @param $err + * @return bool + */ + public static function abortMove( $old, $nt, $user, &$err, $reason ) { + if ( method_exists( 'MovePage', 'checkPermissions' ) ) { + // Don't use this hook, use MovePageCheckPermissions instead + return true; + } + + $status = new Status(); + self::onMovePageCheckPermissions( $old, $nt, $user, $reason, $status ); + if ( !$status->isOK() ) { + $err = $status->getHTML(); + } + + return $status->isOK(); + } + + /** * Check whether a user name is acceptable, * and set a message if unacceptable. * @@ -107,6 +145,10 @@ class TitleBlacklistHooks { 'new-account', $override ); if ( $blacklisted instanceof TitleBlacklistEntry ) { $message = $blacklisted->getErrorMessage( 'new-account' ); + ApiBase::$messageMap[$message] = array( + 'code' => $message, + 'info' => 'TitleBlacklist prevents this username from being created' + ); $err = wfMessage( $message, $blacklisted->getRaw(), $userName )->parse(); if ( $log ) { self::logFilterHitUsername( $wgUser, $title, $blacklisted->getRaw() ); @@ -155,23 +197,6 @@ class TitleBlacklistHooks { Html::element( 'br', array( 'clear' => 'all' ) ) . "\n"; // $error will be displayed by the edit class - return true; - } elseif ( !$section ) { - # Block redirects to nonexistent blacklisted titles - $retitle = Title::newFromRedirect( $text ); - if ( $retitle !== null && !$retitle->exists() ) { - $blacklisted = TitleBlacklist::singleton()->userCannot( $retitle, $wgUser, 'create' ); - if ( $blacklisted instanceof TitleBlacklistEntry ) { - $error = Html::openElement( 'div', array( 'class' => 'errorbox' ) ) . - wfMessage( 'titleblacklist-forbidden-edit', - $blacklisted->getRaw(), - $retitle->getFullText() )->escaped() . - Html::closeElement( 'div' ) . "\n" . - Html::element( 'br', array( 'clear' => 'all' ) ) . "\n"; - } - } - - return true; } return true; } @@ -224,4 +249,29 @@ class TitleBlacklistHooks { $logEntry->publish( $logid ); } } + + /** + * Add phpunit tests + * + * @param array &$files List of test cases and directories to search + * @return bool + */ + public static function unitTestsList( &$files ) { + $files = array_merge( $files, glob( __DIR__ . '/tests/*Test.php' ) ); + return true; + } + + /** + * External Lua library for Scribunto + * + * @param string $engine + * @param array $extraLibraries + * @return bool + */ + public static function scribuntoExternalLibraries( $engine, array &$extraLibraries ) { + if( $engine == 'lua' ) { + $extraLibraries['mw.ext.TitleBlacklist'] = 'Scribunto_LuaTitleBlacklistLibrary'; + } + return true; + } } diff --git a/extensions/TitleBlacklist/TitleBlacklist.i18n.php b/extensions/TitleBlacklist/TitleBlacklist.i18n.php deleted file mode 100644 index 2b751362..00000000 --- a/extensions/TitleBlacklist/TitleBlacklist.i18n.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * This is a backwards-compatibility shim, generated by: - * https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php - * - * Beginning with MediaWiki 1.23, translation strings are stored in json files, - * and the EXTENSION.i18n.php file only exists to provide compatibility with - * older releases of MediaWiki. For more information about this migration, see: - * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format - * - * This shim maintains compatibility back to MediaWiki 1.17. - */ -$messages = array(); -if ( !function_exists( 'wfJsonI18nShimc2acbcab55cdf68b' ) ) { - function wfJsonI18nShimc2acbcab55cdf68b( $cache, $code, &$cachedData ) { - $codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] ); - foreach ( $codeSequence as $csCode ) { - $fileName = dirname( __FILE__ ) . "/i18n/$csCode.json"; - if ( is_readable( $fileName ) ) { - $data = FormatJson::decode( file_get_contents( $fileName ), true ); - foreach ( array_keys( $data ) as $key ) { - if ( $key === '' || $key[0] === '@' ) { - unset( $data[$key] ); - } - } - $cachedData['messages'] = array_merge( $data, $cachedData['messages'] ); - } - - $cachedData['deps'][] = new FileDependency( $fileName ); - } - return true; - } - - $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 'wfJsonI18nShimc2acbcab55cdf68b'; -} diff --git a/extensions/TitleBlacklist/TitleBlacklist.library.php b/extensions/TitleBlacklist/TitleBlacklist.library.php index 0c2a599c..fd767d1e 100644 --- a/extensions/TitleBlacklist/TitleBlacklist.library.php +++ b/extensions/TitleBlacklist/TitleBlacklist.library.php @@ -6,7 +6,7 @@ class Scribunto_LuaTitleBlacklistLibrary extends Scribunto_LuaLibraryBase { 'test' => array( $this, 'test' ), ); - $this->getEngine()->registerInterface( __DIR__ . '/mw.ext.TitleBlacklist.lua', $lib, array() ); + return $this->getEngine()->registerInterface( __DIR__ . '/mw.ext.TitleBlacklist.lua', $lib, array() ); } public function test( $action = null, $title = null ) { diff --git a/extensions/TitleBlacklist/TitleBlacklist.list.php b/extensions/TitleBlacklist/TitleBlacklist.list.php index 3947e8ae..a9578a59 100644 --- a/extensions/TitleBlacklist/TitleBlacklist.list.php +++ b/extensions/TitleBlacklist/TitleBlacklist.list.php @@ -38,23 +38,22 @@ class TitleBlacklist { */ public function load() { global $wgTitleBlacklistSources, $wgMemc, $wgTitleBlacklistCaching; - wfProfileIn( __METHOD__ ); // Try to find something in the cache $cachedBlacklist = $wgMemc->get( wfMemcKey( "title_blacklist_entries" ) ); if ( is_array( $cachedBlacklist ) && count( $cachedBlacklist ) > 0 && ( $cachedBlacklist[0]->getFormatVersion() == self::VERSION ) ) { $this->mBlacklist = $cachedBlacklist; - wfProfileOut( __METHOD__ ); return; } $sources = $wgTitleBlacklistSources; - $sources['local'] = array( 'type' => TBLSRC_MSG ); + $sources['local'] = array( 'type' => 'message' ); $this->mBlacklist = array(); foreach( $sources as $sourceName => $source ) { $this->mBlacklist = array_merge( $this->mBlacklist, $this->parseBlacklist( $this->getBlacklistText( $source ), $sourceName ) ); } $wgMemc->set( wfMemcKey( "title_blacklist_entries" ), $this->mBlacklist, $wgTitleBlacklistCaching['expiry'] ); - wfProfileOut( __METHOD__ ); + wfDebugLog( 'TitleBlacklist-cache', 'Updated ' . wfMemcKey( "title_blacklist_entries" ) + . ' with ' . count( $this->mBlacklist ) . ' entries.' ); } /** @@ -62,17 +61,14 @@ class TitleBlacklist { */ public function loadWhitelist() { global $wgMemc, $wgTitleBlacklistCaching; - wfProfileIn( __METHOD__ ); $cachedWhitelist = $wgMemc->get( wfMemcKey( "title_whitelist_entries" ) ); if ( is_array( $cachedWhitelist ) && count( $cachedWhitelist ) > 0 && ( $cachedWhitelist[0]->getFormatVersion() != self::VERSION ) ) { $this->mWhitelist = $cachedWhitelist; - wfProfileOut( __METHOD__ ); return; } $this->mWhitelist = $this->parseBlacklist( wfMessage( 'titlewhitelist' ) ->inContentLanguage()->text(), 'whitelist' ); $wgMemc->set( wfMemcKey( "title_whitelist_entries" ), $this->mWhitelist, $wgTitleBlacklistCaching['expiry'] ); - wfProfileOut( __METHOD__ ); } /** @@ -86,9 +82,9 @@ class TitleBlacklist { return ''; // Return empty string in error case } - if ( $source['type'] == TBLSRC_MSG ) { + if ( $source['type'] == 'message' ) { return wfMessage( 'titleblacklist' )->inContentLanguage()->text(); - } elseif ( $source['type'] == TBLSRC_LOCALPAGE && count( $source ) >= 2 ) { + } elseif ( $source['type'] == 'localpage' && count( $source ) >= 2 ) { $title = Title::newFromText( $source['src'] ); if ( is_null( $title ) ) { return ''; @@ -107,9 +103,9 @@ class TitleBlacklist { return $article->getContent(); } } - } elseif ( $source['type'] == TBLSRC_URL && count( $source ) >= 2 ) { + } elseif ( $source['type'] == 'url' && count( $source ) >= 2 ) { return self::getHttp( $source['src'] ); - } elseif ( $source['type'] == TBLSRC_FILE && count( $source ) >= 2 ) { + } elseif ( $source['type'] == 'file' && count( $source ) >= 2 ) { if ( file_exists( $source['src'] ) ) { return file_get_contents( $source['src'] ); } else { @@ -127,7 +123,6 @@ class TitleBlacklist { * @return array of TitleBlacklistEntry entries */ public static function parseBlacklist( $list, $sourceName ) { - wfProfileIn( __METHOD__ ); $lines = preg_split( "/\r?\n/", $list ); $result = array(); foreach ( $lines as $line ) { @@ -137,7 +132,6 @@ class TitleBlacklist { } } - wfProfileOut( __METHOD__ ); return $result; } @@ -349,7 +343,7 @@ class TitleBlacklistEntry { } if( !is_array( $wgTitleBlacklistUsernameSources ) ) { - throw new MWException( + throw new Exception( '$wgTitleBlacklistUsernameSources must be "*", false or an array' ); } @@ -528,6 +522,9 @@ class TitleBlacklistEntry { */ public function getErrorMessage( $operation ) { $message = $this->getCustomMessage(); + // For grep: + // titleblacklist-forbidden-edit, titleblacklist-forbidden-move, + // titleblacklist-forbidden-upload, titleblacklist-forbidden-new-account return $message ? $message : "titleblacklist-forbidden-{$operation}"; } } diff --git a/extensions/TitleBlacklist/TitleBlacklist.php b/extensions/TitleBlacklist/TitleBlacklist.php index 7b5c67d2..c66a760b 100644 --- a/extensions/TitleBlacklist/TitleBlacklist.php +++ b/extensions/TitleBlacklist/TitleBlacklist.php @@ -1,109 +1,23 @@ <?php -if ( !defined( 'MEDIAWIKI' ) ) { - exit( 1 ); -} - -// @{ -/** - * @file - * @ingroup Extensions - */ - -$wgExtensionCredits['antispam'][] = array( - 'path' => __FILE__, - 'name' => 'Title Blacklist', - 'author' => array( 'Victor Vasiliev', 'Fran Rogers' ), - 'version' => '1.5.0', - 'url' => 'https://www.mediawiki.org/wiki/Extension:Title_Blacklist', - 'descriptionmsg' => 'titleblacklist-desc', -); - -$dir = __DIR__; -$wgMessagesDirs['TitleBlacklist'] = __DIR__ . '/i18n'; -$wgExtensionMessagesFiles['TitleBlacklist'] = $dir . '/TitleBlacklist.i18n.php'; -$wgAutoloadClasses['TitleBlacklist'] = $dir . '/TitleBlacklist.list.php'; -$wgAutoloadClasses['TitleBlacklistHooks'] = $dir . '/TitleBlacklist.hooks.php'; -$wgAutoloadClasses['Scribunto_LuaTitleBlacklistLibrary'] = $dir . '/TitleBlacklist.library.php'; - -/** @defgroup Title blacklist source types - * @{ - */ -define( 'TBLSRC_MSG', 0 ); ///< For internal usage -define( 'TBLSRC_LOCALPAGE', 1 ); ///< Local wiki page -define( 'TBLSRC_URL', 2 ); ///< Load blacklist from URL -define( 'TBLSRC_FILE', 3 ); ///< Load from file -/** @} */ - -/** - * Array of title blacklist sources. - * - * Should be in array( name => source description ) format. - * See extension documentation for details of source description. - */ -$wgTitleBlacklistSources = array(); - -/** - * Sets the sources which may work as a username filter. - * - * '*' is for all; false disables all. - * - * If you want to limit it to particular sources, use - * array( source name 1, source name 2 ). - * This may be useful when you have shared account creation system - * in order to avoid blacklist fragmentation. - */ -$wgTitleBlacklistUsernameSources = '*'; - -/** - * Log blacklist hits to Special:Log - */ -$wgTitleBlacklistLogHits = false; -$wgTitleBlacklistCaching = array( - 'warningchance' => 100, - 'expiry' => 900, - 'warningexpiry' => 600, -); - -$dir = dirname( __FILE__ ); - -// Register the API method -$wgAutoloadClasses['ApiQueryTitleBlacklist'] = "$dir/api/ApiQueryTitleBlacklist.php"; -$wgAPIModules['titleblacklist'] = 'ApiQueryTitleBlacklist'; - -$wgAvailableRights[] = 'tboverride'; // Implies tboverride-account -$wgAvailableRights[] = 'tboverride-account'; // For account creation -$wgGroupPermissions['sysop']['tboverride'] = true; - -$wgHooks['getUserPermissionsErrorsExpensive'][] = 'TitleBlacklistHooks::userCan'; -$wgHooks['TitleGetEditNotices'][] = 'TitleBlacklistHooks::displayBlacklistOverrideNotice'; -$wgHooks['AbortMove'][] = 'TitleBlacklistHooks::abortMove'; -$wgHooks['AbortNewAccount'][] = 'TitleBlacklistHooks::abortNewAccount'; -$wgHooks['AbortAutoAccount'][] = 'TitleBlacklistHooks::abortNewAccount'; -$wgHooks['EditFilter'][] = 'TitleBlacklistHooks::validateBlacklist'; -$wgHooks['ArticleSaveComplete'][] = 'TitleBlacklistHooks::clearBlacklist'; -$wgHooks['UserCreateForm'][] = 'TitleBlacklistHooks::addOverrideCheckbox'; -$wgHooks['UnitTestsList'][] = function( &$files ) { - $files += glob( __DIR__ . '/tests/*Test.php' ); - return true; -}; -$wgHooks['ScribuntoExternalLibraries'][] = function( $engine, array &$extraLibraries ) { - if( $engine == 'lua' ) { - $extraLibraries['mw.ext.TitleBlacklist'] = 'Scribunto_LuaTitleBlacklistLibrary'; - } - return true; -}; - -$wgLogTypes[] = 'titleblacklist'; -$wgLogActionsHandlers['titleblacklist/*'] = 'LogFormatter'; -$wgLogRestrictions['titleblacklist'] = 'titleblacklistlog'; -$wgGroupPermissions['sysop']['titleblacklistlog'] = true; -$wgAvailableRights[] = 'titleblacklistlog'; - -$wgResourceModules['mediawiki.api.titleblacklist'] = array( - 'scripts' => 'mediawiki.api.titleblacklist.js', - 'localBasePath' => $dir . '/modules', - 'remoteExtPath' => 'TitleBlacklist/modules', - 'dependencies' => array( 'mediawiki.api' ), -); -// @} +if ( function_exists( 'wfLoadExtension' ) ) { + + /** @defgroup Title blacklist source types + * @deprecated Use values directly instead. + */ + define( 'TBLSRC_MSG', 'message' ); ///< For internal usage + define( 'TBLSRC_LOCALPAGE', 'localpage' ); ///< Local wiki page + define( 'TBLSRC_URL', 'url' ); ///< Load blacklist from URL + define( 'TBLSRC_FILE', 'file' ); ///< Load from file + + wfLoadExtension( 'TitleBlacklist' ); + // Keep i18n globals so mergeMessageFileList.php doesn't break + $wgMessagesDirs['TitleBlacklist'] = __DIR__ . '/i18n'; + /* wfWarn( + 'Deprecated PHP entry point used for TitleBlacklist extension. Please use wfLoadExtension instead, ' . + 'see https://www.mediawiki.org/wiki/Extension_registration for more details.' + ); */ + return; +} else { + die( 'This version of the TitleBlacklist extension requires MediaWiki 1.25+' ); +} diff --git a/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php b/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php index 1da70d2a..6fa9db59 100644 --- a/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php +++ b/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php @@ -90,6 +90,9 @@ class ApiQueryTitleBlacklist extends ApiBase { ); } + /** + * @deprecated since MediaWiki core 1.25 + */ public function getParamDescription() { return array( 'title' => 'The string to validate against the blacklist', @@ -98,10 +101,16 @@ class ApiQueryTitleBlacklist extends ApiBase { ); } + /** + * @deprecated since MediaWiki core 1.25 + */ public function getDescription() { return 'Validate an article title, filename, or username against the TitleBlacklist.'; } + /** + * @deprecated since MediaWiki core 1.25 + */ public function getExamples() { return array( 'api.php?action=titleblacklist&tbtitle=Foo', @@ -109,7 +118,15 @@ class ApiQueryTitleBlacklist extends ApiBase { ); } - public function getVersion() { - return __CLASS__ . ': $Id$'; + /** + * @see ApiBase::getExamplesMessages() + */ + protected function getExamplesMessages() { + return array( + 'action=titleblacklist&tbtitle=Foo' + => 'apihelp-titleblacklist-example-1', + 'action=titleblacklist&tbtitle=Bar&tbaction=edit' + => 'apihelp-titleblacklist-example-2', + ); } } diff --git a/extensions/TitleBlacklist/extension.json b/extensions/TitleBlacklist/extension.json new file mode 100644 index 00000000..2e64802d --- /dev/null +++ b/extensions/TitleBlacklist/extension.json @@ -0,0 +1,104 @@ +{ + "name": "Title Blacklist", + "version": "1.5.0", + "author": [ + "Victor Vasiliev", + "Fran Rogers" + ], + "url": "https://www.mediawiki.org/wiki/Extension:Title_Blacklist", + "descriptionmsg": "titleblacklist-desc", + "license-name": "GPL-2.0+", + "type": "antispam", + "GroupPermissions": { + "sysop": { + "tboverride": true, + "titleblacklistlog": true + } + }, + "AvailableRights": [ + "tboverride", + "tboverride-account", + "titleblacklistlog" + ], + "LogTypes": [ + "titleblacklist" + ], + "LogRestrictions": { + "titleblacklist": "titleblacklistlog" + }, + "LogActionsHandlers": { + "titleblacklist/*": "LogFormatter" + }, + "APIModules": { + "titleblacklist": "ApiQueryTitleBlacklist" + }, + "MessagesDirs": { + "TitleBlacklist": [ + "i18n" + ] + }, + "AutoloadClasses": { + "TitleBlacklist": "TitleBlacklist.list.php", + "TitleBlacklistEntry": "TitleBlacklist.list.php", + "TitleBlacklistHooks": "TitleBlacklist.hooks.php", + "Scribunto_LuaTitleBlacklistLibrary": "TitleBlacklist.library.php", + "ApiQueryTitleBlacklist": "api/ApiQueryTitleBlacklist.php" + }, + "ResourceModules": { + "mediawiki.api.titleblacklist": { + "scripts": "mediawiki.api.titleblacklist.js", + "dependencies": [ + "mediawiki.api" + ] + } + }, + "ResourceFileModulePaths": { + "localBasePath": "modules", + "remoteExtPath": "TitleBlacklist/modules" + }, + "Hooks": { + "getUserPermissionsErrorsExpensive": [ + "TitleBlacklistHooks::userCan" + ], + "TitleGetEditNotices": [ + "TitleBlacklistHooks::displayBlacklistOverrideNotice" + ], + "AbortMove": [ + "TitleBlacklistHooks::abortMove" + ], + "MovePageCheckPermissions": [ + "TitleBlacklistHooks::onMovePageCheckPermissions" + ], + "AbortNewAccount": [ + "TitleBlacklistHooks::abortNewAccount" + ], + "AbortAutoAccount": [ + "TitleBlacklistHooks::abortNewAccount" + ], + "EditFilter": [ + "TitleBlacklistHooks::validateBlacklist" + ], + "ArticleSaveComplete": [ + "TitleBlacklistHooks::clearBlacklist" + ], + "UserCreateForm": [ + "TitleBlacklistHooks::addOverrideCheckbox" + ], + "UnitTestsList": [ + "TitleBlacklistHooks::unitTestsList" + ], + "ScribuntoExternalLibraries": [ + "TitleBlacklistHooks::scribuntoExternalLibraries" + ] + }, + "config": { + "TitleBlacklistSources": [], + "TitleBlacklistUsernameSources": "*", + "TitleBlacklistLogHits": false, + "TitleBlacklistCaching": { + "warningchance": 100, + "expiry": 900, + "warningexpiry": 600 + } + } +} diff --git a/extensions/TitleBlacklist/i18n/ar.json b/extensions/TitleBlacklist/i18n/ar.json index 9e687de3..e947d925 100644 --- a/extensions/TitleBlacklist/i18n/ar.json +++ b/extensions/TitleBlacklist/i18n/ar.json @@ -3,9 +3,13 @@ "authors": [ "Aiman titi", "Meno25", - "OsamaK" + "OsamaK", + "Abanima" ] }, + "action-titleblacklistlog": "استعراض سجل القائمة السوداء للعناوين", + "log-name-titleblacklist": "القائمة السوداء للعناوين", + "logentry-titleblacklist-hit-username": "{{GENDER:$2|سبّب|سبّبت}} $1 تفعيل القائمة السوداء للعناوين عندما {{GENDER:$2|حاول|حاولت}} إنشاء الحساب $3 المطابق لـ$4.", "titleblacklist-desc": "يسمح للإداريين بمنع إنشاء الصفحات وحسابات المستخدمين حسب [[MediaWiki:Titleblacklist|قائمة سوداء]] و [[MediaWiki:Titlewhitelist|قائمة بيضاء]]", "titleblacklist": "# هذه قائمة سوداء للعناوين. العناوين والمستخدمون الذين يطابقون تعبيرا منتظما هنا لا يمكن إنشاؤهم.\n# استخدم \"#\" للتعليقات.\n# هذه لا تتأثر بحالة الحروف افتراضيا", "titlewhitelist": "# هذه قائمة بيضاء للعناوين. استخدم \"#\" للتعليقات\n# هذه لا تتأثر بحالة الحروف افتراضيا", @@ -15,6 +19,9 @@ "titleblacklist-forbidden-new-account": "إنشاء اسم المستخدم \"$2\" ممنوع.\nهو يطابق مدخلة القائمة السوداء التالية: <code>$1</code>", "titleblacklist-invalid": "{{PLURAL:$1||السطر التالي|السطران التاليان|السطور التالية}} في قائمة العناوين السوداء {{PLURAL:$1||غير صحيح|غير صحيحان|غير صحيحة}}؛ من فضلك {{PLURAL:$1||صححه|صححهما|صححهم}} قبل الحفظ:", "titleblacklist-override": "تجاهل القائمة السوداء", + "titleblacklist-autoconfirmed-warning": "<strong>ملاحظة:</strong> لا يمكن تحرير هذه الصفحة إلا للمستخدمين <code>المؤكدين تلقائياً</code> لأنها تطابق مدخلة القائمة السوداء التالية:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>ملاحظة:</strong> لا يمكن تحرير هذه الصفحة إلا للإداريين والمستخدمين الآخرين الذين لديهم صلاحية <code>tboverride</code> لأنها تطابق مدخلة القائمة السوداء التالية:<br /><code>$1</code>", "right-tboverride": "تجاوز قائمتي العناوين أو أسماء المستخدمين السوداوين", - "right-tboverride-account": "تجاوز قائمة اسم المستخدم السوداء." + "right-tboverride-account": "تجاوز قائمة اسم المستخدم السوداء.", + "right-titleblacklistlog": "استعراض سجل القائمة السوداء للعناوين" } diff --git a/extensions/TitleBlacklist/i18n/az.json b/extensions/TitleBlacklist/i18n/az.json new file mode 100644 index 00000000..1eb4296a --- /dev/null +++ b/extensions/TitleBlacklist/i18n/az.json @@ -0,0 +1,8 @@ +{ + "@metadata": { + "authors": [ + "Wertuose" + ] + }, + "titleblacklist-override": "Qara siyahını nəzərə alma" +} diff --git a/extensions/TitleBlacklist/i18n/bg.json b/extensions/TitleBlacklist/i18n/bg.json index daadcfb4..a42ede48 100644 --- a/extensions/TitleBlacklist/i18n/bg.json +++ b/extensions/TitleBlacklist/i18n/bg.json @@ -6,6 +6,7 @@ "Spiritia" ] }, + "log-name-titleblacklist": "Дневник на черния списък на заглавията", "titleblacklist-desc": "Позволява на администраторите да забраняват създаването на страници и потребителски сметки чрез [[MediaWiki:Titleblacklist|черен]] и [[MediaWiki:Titlewhitelist|бял списък]].", "titleblacklist": "# Страницата съдържа черен списък за заглавия на страници\n# Страници и потребители, чиито имена съответстват с регулярните изрази в списъка, не могат да бъдат създавани.\n# За коментари се използва символът „#“.", "titlewhitelist": "# Това е бял списък на заглавията. Използвайте \"#\" за въвеждане на коментари.\n# По подразбиране списъкът е нечувствителен на малки и главни букви", diff --git a/extensions/TitleBlacklist/i18n/cs.json b/extensions/TitleBlacklist/i18n/cs.json index e88b4666..5210543c 100644 --- a/extensions/TitleBlacklist/i18n/cs.json +++ b/extensions/TitleBlacklist/i18n/cs.json @@ -24,5 +24,11 @@ "titleblacklist-warning": "<strong>Upozornění: Tuto stránku mohou editovat jen správci a další uživatelé s oprávněním <code>tboverride</code>, protože odpovídá následujícímu záznamu černé listiny názvů:</strong><br /><code>$1</code>", "right-tboverride": "Překonání zakázaných názvů stránek nebo uživatelských jmen", "right-tboverride-account": "Překonání černé listiny uživatelských jmen", - "right-titleblacklistlog": "Prohlížení knihy černé listiny názvů" + "right-titleblacklistlog": "Prohlížení knihy černé listiny názvů", + "apihelp-titleblacklist-description": "Zkontrolovat název článku, souboru nebo uživatelské jméno vůči černé listině TitleBlacklist.", + "apihelp-titleblacklist-param-title": "Řetězec, který se má vůči černé listině zkontrolovat.", + "apihelp-titleblacklist-param-action": "Akce, která se má zkontrolovat.", + "apihelp-titleblacklist-param-nooverride": "Nepokoušet se o překonání černé listiny názvů.", + "apihelp-titleblacklist-example-1": "Zkontrolovat, jestli je [[Foo]] na černé listině.", + "apihelp-titleblacklist-example-2": "Zkontrolovat, zda je černou listinou zakázána editace [[Bar]]." } diff --git a/extensions/TitleBlacklist/i18n/en.json b/extensions/TitleBlacklist/i18n/en.json index 5b6a86df..a7efd2a6 100644 --- a/extensions/TitleBlacklist/i18n/en.json +++ b/extensions/TitleBlacklist/i18n/en.json @@ -1,23 +1,29 @@ { - "@metadata": { - "authors": [] - }, - "action-titleblacklistlog": "view the title blacklist log", - "log-name-titleblacklist": "Title blacklist log", - "log-description-titleblacklist": "These events track title blacklist hits.", - "logentry-titleblacklist-hit-username": "$1 {{GENDER:$2|caused}} a title blacklist hit when trying to create account $3 matching $4.", - "titleblacklist-desc": "Allows administrators to forbid creation of pages and user accounts per a [[MediaWiki:Titleblacklist|blacklist]] and [[MediaWiki:Titlewhitelist|whitelist]]", - "titleblacklist": "# This is a title blacklist. Titles and users that match a regular expression here cannot be created.\n# Use \"#\" for comments.\n# This is case insensitive by default", - "titlewhitelist": "# This is a title whitelist. Use \"#\" for comments.\n# This is case insensitive by default", - "titleblacklist-forbidden-edit": "The title \"$2\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", - "titleblacklist-forbidden-move": "\"$2\" cannot be moved to \"$3\", because the title \"$3\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", - "titleblacklist-forbidden-upload": "The file name \"$2\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", - "titleblacklist-forbidden-new-account": "The user name \"$2\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", - "titleblacklist-invalid": "The following {{PLURAL:$1|line|lines}} in the title blacklist {{PLURAL:$1|is|are}} invalid;\nplease correct {{PLURAL:$1|it|them}} before saving:", - "titleblacklist-override": "Ignore the blacklist", - "titleblacklist-autoconfirmed-warning": "<strong>Note:</strong> This page can only be edited by users with the <code>autoconfirmed</code> right because it matches the following title blacklist entry:<br /><code>$1</code>", - "titleblacklist-warning": "<strong>Warning: This page can only be edited by administrators and other users with the <code>tboverride</code> right because it matches the following title blacklist entry:</strong><br /><code>$1</code>", - "right-tboverride": "Override the title or username blacklist", - "right-tboverride-account": "Override the username blacklist", - "right-titleblacklistlog": "View title blacklist log" + "@metadata": { + "authors": [] + }, + "action-titleblacklistlog": "view the title blacklist log", + "log-name-titleblacklist": "Title blacklist log", + "log-description-titleblacklist": "These events track title blacklist hits.", + "logentry-titleblacklist-hit-username": "$1 {{GENDER:$2|caused}} a title blacklist hit when trying to create account $3 matching $4.", + "titleblacklist-desc": "Allows administrators to forbid creation of pages and user accounts per a [[MediaWiki:Titleblacklist|blacklist]] and [[MediaWiki:Titlewhitelist|whitelist]]", + "titleblacklist": "# This is a title blacklist. Titles and users that match a regular expression here cannot be created.\n# Use \"#\" for comments.\n# This is case insensitive by default", + "titlewhitelist": "# This is a title whitelist. Use \"#\" for comments.\n# This is case insensitive by default", + "titleblacklist-forbidden-edit": "The title \"$2\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", + "titleblacklist-forbidden-move": "\"$2\" cannot be moved to \"$3\", because the title \"$3\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", + "titleblacklist-forbidden-upload": "The filename \"$2\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", + "titleblacklist-forbidden-new-account": "The user name \"$2\" has been banned from creation.\nIt matches the following blacklist entry: <code>$1</code>", + "titleblacklist-invalid": "The following {{PLURAL:$1|line|lines}} in the title blacklist {{PLURAL:$1|is|are}} invalid;\nplease correct {{PLURAL:$1|it|them}} before saving:", + "titleblacklist-override": "Ignore the blacklist", + "titleblacklist-autoconfirmed-warning": "<strong>Note:</strong> This page can only be edited by users with the <code>autoconfirmed</code> right because it matches the following title blacklist entry:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>Warning: This page can only be edited by administrators and other users with the <code>tboverride</code> right because it matches the following title blacklist entry:</strong><br /><code>$1</code>", + "right-tboverride": "Override the title or username blacklist", + "right-tboverride-account": "Override the username blacklist", + "right-titleblacklistlog": "View title blacklist log", + "apihelp-titleblacklist-description": "Validate an article title, filename, or username against the TitleBlacklist.", + "apihelp-titleblacklist-param-title": "The string to validate against the blacklist.", + "apihelp-titleblacklist-param-action": "The action to be checked.", + "apihelp-titleblacklist-param-nooverride": "Don't try to override the titleblacklist.", + "apihelp-titleblacklist-example-1": "Check whether [[Foo]] is blacklisted", + "apihelp-titleblacklist-example-2": "Check whether [[Bar]] is blacklisted for editing" } diff --git a/extensions/TitleBlacklist/i18n/es.json b/extensions/TitleBlacklist/i18n/es.json index 70814db3..c5dea1b8 100644 --- a/extensions/TitleBlacklist/i18n/es.json +++ b/extensions/TitleBlacklist/i18n/es.json @@ -5,9 +5,12 @@ "Crazymadlover", "Locos epraix", "Remember the dot", - "Sanbec" + "Sanbec", + "MarcoAurelio" ] }, + "action-titleblacklistlog": "ver el registro de la lista negra de títulos", + "log-name-titleblacklist": "Registro de la lista negra de títulos", "titleblacklist-desc": "Permite que los administradores prohíban la creación de páginas y cuentas de usuario mediante una [[MediaWiki:Titleblacklist|lista negra]] y una [[MediaWiki:Titlewhitelist|lista blanca]]", "titleblacklist": "# Esta es una lista negra de títulos. No se pueden crear títulos o usuarios que coincidan con una de estas expresiones regulares.\n# Use «#» para comentarios.\n# Esta es insensible a las mayúsculas por defecto", "titlewhitelist": "# Esta es una lista blanca de títulos. Use «#» para comentarios.\n# Esta es insensible a las mayúsculas por defecto", @@ -18,5 +21,6 @@ "titleblacklist-invalid": "{{PLURAL:$1|La siguiente línea|Las siguientes líneas}} de la lista negra no {{PLURAL:$1|es válida|son válidas}};\npor favor corríge{{PLURAL:$1|la|las}} antes de grabar:", "titleblacklist-override": "Ignorar la lista negra", "right-tboverride": "Ignorar la lista negra de títulos o de nombres de usuario", - "right-tboverride-account": "Ignorar la lista negra de los nombres de usuario" + "right-tboverride-account": "Ignorar la lista negra de los nombres de usuario", + "right-titleblacklistlog": "Ver el registro de la lista negra de títulos" } diff --git a/extensions/TitleBlacklist/i18n/fi.json b/extensions/TitleBlacklist/i18n/fi.json index 12ad9965..9b024924 100644 --- a/extensions/TitleBlacklist/i18n/fi.json +++ b/extensions/TitleBlacklist/i18n/fi.json @@ -25,5 +25,6 @@ "titleblacklist-override": "Ohita mustan listan merkinnät", "right-tboverride": "Ohittaa sivunimien tai käyttäjänimien musta lista", "right-tboverride-account": "Ohittaa käyttäjänimien musta lista", - "right-titleblacklistlog": "Tarkastella nimien mustan listan lokia" + "right-titleblacklistlog": "Tarkastella nimien mustan listan lokia", + "apihelp-titleblacklist-example-2": "Tarkista, onko [[Bar]] on mustalla listalla muokkausta varten" } diff --git a/extensions/TitleBlacklist/i18n/he.json b/extensions/TitleBlacklist/i18n/he.json index 35a41a6b..c64c9dbd 100644 --- a/extensions/TitleBlacklist/i18n/he.json +++ b/extensions/TitleBlacklist/i18n/he.json @@ -4,7 +4,9 @@ "Amire80", "Guycn2", "Rotem Liss", - "Rotemliss" + "Rotemliss", + "Yona b", + "Danny-w" ] }, "action-titleblacklistlog": "להציג את יומן הרשימה השחורה של הכותרות", @@ -22,7 +24,13 @@ "titleblacklist-override": "להתעלם מהרשימה השחורה", "titleblacklist-autoconfirmed-warning": "<strong>לתשומת לבך:</strong> רק משתמשים בעלי הרשאת <code>autoconfirmed</code> (משתמשים ותיקים) יכולים לערוך את הדף הזה כי הוא מתאים לשורה הבאה ברשימה השחורה:<br /><code>$1</code>", "titleblacklist-warning": "<strong>לתשומת לבך:</strong> רק מפעילים ומשתמשים אחרים בעלי הרשאת <code>tboverride</code> יכולים לערוך את הדף הזה כי הוא מתאים לשורה הבאה ברשימה השחורה:<br /><code>$1</code>", - "right-tboverride": "עקיפת רשימת שמות המשתמשים האסורים", + "right-tboverride": "עקיפת כותרת הרשימה השחורה של שמות המשתמשים", "right-tboverride-account": "עקיפת הרשימה השחורה של שמות המשתמשים", - "right-titleblacklistlog": "הצגת יומן הרשימה השחורה של הכותרות" + "right-titleblacklistlog": "הצגת יומן הרשימה השחורה של הכותרות", + "apihelp-titleblacklist-description": "בדיקת כותרת דף, שם קובץ או שם משתמש אל מול TitleBlacklist", + "apihelp-titleblacklist-param-title": "המחרוזת שצריך לבדוק אל מול הרשימה השחורה.", + "apihelp-titleblacklist-param-action": "הפעולה שצריך לבדוק.", + "apihelp-titleblacklist-param-nooverride": "לא לנסות לעקוף את הרשימה השחורה.", + "apihelp-titleblacklist-example-1": "לבדוק אם [[Foo]] ברשימה השחורה", + "apihelp-titleblacklist-example-2": "לבדוק עם [[Bar]] ברשימה השחורה לעריכה" } diff --git a/extensions/TitleBlacklist/i18n/hu.json b/extensions/TitleBlacklist/i18n/hu.json index f7b5930e..92d2ae29 100644 --- a/extensions/TitleBlacklist/i18n/hu.json +++ b/extensions/TitleBlacklist/i18n/hu.json @@ -12,7 +12,7 @@ "action-titleblacklistlog": "címek feketelista-naplójának megtekintése", "log-name-titleblacklist": "Címek feketelista-naplója", "titleblacklist-desc": "Lehetővé teszi az adminisztrátorok számára, hogy letiltsák adott című lapok vagy nevű felhasználói fiókok készítését a [[MediaWiki:Titleblacklist]] és [[MediaWiki:Titlewhitelist]] alapján", - "titleblacklist": "# Ez a címek feketelistája. Azon címek, amelyek illeszkednek az itt található reguláris kifejezések valamelyikére, nem hozhatóak létre.\n# Használd a „#” karaktert megjegyzések írásához.\n# A sorok kis- és nagybetűérzékenyek alapértelmezettként", + "titleblacklist": "# Ez a címek feketelistája. Azon címek, amelyek illeszkednek az itt található reguláris kifejezések valamelyikére, nem hozhatóak létre.\n# Használd a „#” karaktert megjegyzések írásához.\n# A sorok nem kis- és nagybetűérzékenyek alapértelmezettként", "titlewhitelist": "# Ez egy engedélyező lista. A „#” karakterrel írhatsz megjegyzéseket.\n# A sorok kis- és nagybetűérzékenyek alapértelmezettként", "titleblacklist-forbidden-edit": "„$2” címmel tilos lapot készíteni, mert illeszkedik a feketelista <code>$1</code> bejegyzésére.", "titleblacklist-forbidden-move": "„$2” nem nevezhető át „$3” névre, mert „$3” névvel tilos lapot készíteni. Illeszkedik a következő feketelistás bejegyzéssel: <code>$1</code>", diff --git a/extensions/TitleBlacklist/i18n/ja.json b/extensions/TitleBlacklist/i18n/ja.json index 9fb1426c..4815c660 100644 --- a/extensions/TitleBlacklist/i18n/ja.json +++ b/extensions/TitleBlacklist/i18n/ja.json @@ -22,11 +22,11 @@ "titleblacklist-forbidden-edit": "「$2」という名前のページの作成は禁止されています。\nこれは以下のブラックリスト項目に一致します: <code>$1</code>", "titleblacklist-forbidden-move": "「$3」という名前のページの作成が禁止されているため、「$2」を「$3」に移動できません。\nこれは以下のブラックリスト項目に一致します: <code>$1</code>", "titleblacklist-forbidden-upload": "「$2」という名前でのファイルのアップロードは禁止されています。\nこれは以下のブラックリスト項目に一致します: <code>$1</code>", - "titleblacklist-forbidden-new-account": "「$2」という名前のユーザーの作成は禁止されています。\nこれは以下のブラックリスト項目と一致します: <code>$1</code>", - "titleblacklist-invalid": "タイトルブラックリスト中の以下の{{PLURAL:$1|行}}は正しく記述できて{{PLURAL:$1|いません}}。保存する前に{{PLURAL:$1|修正して}}ください:", + "titleblacklist-forbidden-new-account": "利用者名「$2」の作成は禁止されています。\nこれは以下のブラックリスト項目と一致します: <code>$1</code>", + "titleblacklist-invalid": "ページ名ブラックリスト内の以下の{{PLURAL:$1|行}}は無効{{PLURAL:$1|です}}。\n保存する前に{{PLURAL:$1|修正して}}ください:", "titleblacklist-override": "ブラックリストを無視", - "titleblacklist-autoconfirmed-warning": "<strong>注意:</strong>このページは下記のタイトルブラックリスト項目に適合しているため <code>autoconfirmed</code> 権限のある利用者だけが編集できます:<br /><code>$1</code>", - "titleblacklist-warning": "<strong>注意:このページは下記のタイトルブラックリスト項目に適合しているため管理者と <code>tboverride</code> 権限のある利用者だけが編集できます:</strong><br />\n<code>$1</code>", + "titleblacklist-autoconfirmed-warning": "<strong>注意:</strong> このページは下記のページ名ブラックリスト項目に一致しているため <code>autoconfirmed</code> 権限のある利用者のみが編集できます:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>警告: このページは下記のページ名ブラックリスト項目に一致しているため管理者と <code>tboverride</code> 権限のある利用者のみが編集できます:</strong><br /><code>$1</code>", "right-tboverride": "ページ名/利用者名のブラックリストによる制限を受けない", "right-tboverride-account": "利用者名ブラックリストを無視", "right-titleblacklistlog": "ページ名ブラックリストの記録を閲覧" diff --git a/extensions/TitleBlacklist/i18n/ko.json b/extensions/TitleBlacklist/i18n/ko.json index 3c81c25f..874eab3b 100644 --- a/extensions/TitleBlacklist/i18n/ko.json +++ b/extensions/TitleBlacklist/i18n/ko.json @@ -5,7 +5,9 @@ "Kwj2772", "ToePeu", "아라", - "Hym411" + "Hym411", + "Revi", + "IRTC1015" ] }, "action-titleblacklistlog": "제목 블랙리스트 로그를 봅니다", @@ -13,7 +15,7 @@ "log-description-titleblacklist": "이 기록은 제목 블랙리스트 로그의 일치를 추적합니다.", "logentry-titleblacklist-hit-username": "$1 사용자가 제목 블랙리스트 $4 패턴에 일치하는 $3 계정을 생성하려고 하였습니다.", "titleblacklist-desc": "관리자가 [[MediaWiki:Titleblacklist]], [[MediaWiki:Titlewhitelist]]마다 문서와 사용자 계정을 만드는 것을 금지할 수 있습니다", - "titleblacklist": "# 제목 금지 목록입니다. 정규 표현식과 일치하는 제목나 사용자는 만들 수 없습니다.\n# 주석 내용에는 앞에 \"#\"을 붙여 주세요.\n# 기본적으로 규칙은 대소문자를 구별하지 않습니다", + "titleblacklist": "# 제목 금지 목록입니다. 정규 표현식과 일치하는 제목이나 사용자 계정은 만들 수 없습니다.\n# 주석 내용에는 앞에 \"#\"을 붙여 주세요.\n# 기본적으로 규칙은 대소문자를 구별하지 않습니다", "titlewhitelist": "# 제목 허용 목록입니다. 주석 내용에는 앞에 \"#\"을 붙여 주세요.\n# 기본적으로 규칙은 대소문자를 구별하지 않습니다", "titleblacklist-forbidden-edit": "\"$2\" 문서는 만들기 금지 목록에 포함되어 있습니다.\n해당 만들기 금지 조건은 <code>$1</code>입니다.", "titleblacklist-forbidden-move": "\"$2\" 문서를 \"$3\" 제목으로 옮길 수 없습니다. 문서 만들기 금지 조건이 걸려 있습니다.\n해당 금지 조건은 <code>$1</code>입니다.", @@ -21,6 +23,8 @@ "titleblacklist-forbidden-new-account": "\"$2\" 이름으로 계정을 만드는 것이 제한되어 있습니다.\n계정 이름이 다음의 규칙에 해당됩니다: <code>$1</code>", "titleblacklist-invalid": "제목 블랙리스트의 다음 {{PLURAL:$1|줄}}에 잘못된 구문이 {{PLURAL:$1|있습니다}}.\n저장하기 전에 {{PLURAL:$1}}올바르게 수정해주세요:", "titleblacklist-override": "블랙리스트를 무시", + "titleblacklist-autoconfirmed-warning": "<strong>참고:</strong> 이 문서는 <code>autoconfirmed</code> 권한을 가진 사용자만 편집할 수 있도록 제목 블랙리스트의 다음 항목에 지정되었습니다:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>경고: 이 문서는 제목 금지 목록의 다음 항목과 일치하기 때문에 관리자와 <code>tboverride</code> 권한을 가진 사용자만 편집할 수 있습니다.</strong><br /><code>$1</code>", "right-tboverride": "문서 제목이나 사용자 이름 블랙리스트 무시", "right-tboverride-account": "사용자 이름 블랙리스트를 무시", "right-titleblacklistlog": "제목 블랙리스트 로그 보기" diff --git a/extensions/TitleBlacklist/i18n/ksh.json b/extensions/TitleBlacklist/i18n/ksh.json index d35435ba..9dc10852 100644 --- a/extensions/TitleBlacklist/i18n/ksh.json +++ b/extensions/TitleBlacklist/i18n/ksh.json @@ -4,6 +4,10 @@ "Purodha" ] }, + "action-titleblacklistlog": "donn et Logbohch vun de „schwazze Leß“ för Övvverschreffte aanlohre", + "log-name-titleblacklist": "De „schwazze Leß“ för Övvverschreffte", + "log-description-titleblacklist": "Heh di Vörjäng verfollje de Träffer en de „schwazze Leß“ för Övverschreffte vun Sigge.", + "logentry-titleblacklist-hit-username": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 wulld ene Zohjang för „$3“ aanlähje un dat wood övver dä Endraach „$4“ de „schwazze Leß“ för Övverschreffte vun Sigge ongerbonge.", "titleblacklist-desc": "Määt et möjjelesch, bestemmpte neuje Sigge un neuje Metmaacher-Name övver en [[MediaWiki:Titleblacklist|„schwatze Leß“]] un en [[MediaWiki:Titlewhitelist|Leß met Ußnahme dofun]] ze verbeede.", "titleblacklist": "# Dat hee eß en „schwatze Leß“ met verbodde Tittele för Sigge.\n# Dä ier Enhallt sen rejolähre Ußdrök,\n# wat do drop paß, kam_mer nit aanläje.\n# Wam_mer et nit ömschtällt, es Jruß- un Kleinschrevv_ejaal.\n# Donn „#“ aan der Aanfang fun en Reih, dann häß ene Kommentaa.", "titlewhitelist": "# Dat hee eß en Leß met Ußnahme fun de „schwatze Leß“ met verbodde\n# Tittele för Sigge. Dä ier Enhallt sen rejolähre Ußdrök,\n# wat do drop paß, kam_mer aanläje.\n# Wam_mer et nit ömschtällt, es Jruß- un Kleinschrevv_ejaal.\n# Donn „#“ aan der Aanfang fun en Reih, dann häß ene Kommentaa.", @@ -13,6 +17,15 @@ "titleblacklist-forbidden-new-account": "Enne Metmaacher met dämm Name „$2“ aanzelääje es verbodde per dämm Enndraach <code>$1</code> en de „schwazze Leß.“", "titleblacklist-invalid": "{{PLURAL:$1|De Reih unge stemmp nit un moß|De $1 Reije unge stimme nit un möße|Dat he sull}} för em Afspeichere eets en Odenung jebraat wäde:", "titleblacklist-override": "De schwazze Leß övverjonn", + "titleblacklist-autoconfirmed-warning": "<strong>Opjepaß:</strong> heh di Sigg kann blohß vun Metmaachere met däm Rääsch <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">autoconfirmed</code> ({{int:group-autoconfirmed}}) weil se en dä „schwazze Leß“ för Övverschreffte op heh dä Enndraach paß:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>Opjepaß:</strong> heh di Sigg kann blohß vun Wikki_Köhbeße un vun andere Metmaacher met däm Rääsch <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">tboverride</code>, weil se en dä „schwazze Leß“ för Övverschreffte op heh dä Enndraach paß:<br /><code>$1</code>", "right-tboverride": "De Lėß met verbodde Naame un Titelle för Sigge övverjonn", - "right-tboverride-account": "De Leß met verbodde Metmaacher-Name övverjonn" + "right-tboverride-account": "De Leß met verbodde Metmaacher-Name övverjonn", + "right-titleblacklistlog": "Donn et Logbohch vun de „schwazze Leß“ för Övvverschreffte aanlohre", + "apihelp-titleblacklist-description": "Donn de Övverschreffte vun Sigge, Datteije udder de Nahme vun Metmaacher jähje de „schwazze Leß“ för Övvverschreffte pröhve.", + "apihelp-titleblacklist-param-title": "De Zäijschekätt, öm se jähje de „schwazze Leß“ ze pröhve.", + "apihelp-titleblacklist-param-action": "Der Vörjang zom Pröhve.", + "apihelp-titleblacklist-param-nooverride": "Donn nit versöhke, de „schwazze Leß“ för Övvverschreffte ze övverjonn.", + "apihelp-titleblacklist-example-1": "Donn pröhfe, ov „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Foo]]</code>“ en de „schwazze Leß“ es.", + "apihelp-titleblacklist-example-2": "Donn pröhfe, ov „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Bar]]</code>“ en de „schwazze Leß“ för et Verändere es." } diff --git a/extensions/TitleBlacklist/i18n/lrc.json b/extensions/TitleBlacklist/i18n/lrc.json new file mode 100644 index 00000000..40d3a587 --- /dev/null +++ b/extensions/TitleBlacklist/i18n/lrc.json @@ -0,0 +1,11 @@ +{ + "@metadata": { + "authors": [ + "Mogoeilor" + ] + }, + "log-name-titleblacklist": "داسون پهرستنومه نومگه سئ", + "titleblacklist-override": "تیه پوشی د نومگه سئ", + "right-titleblacklistlog": "دیئن داسون پهرستنومه نومگه سئ", + "apihelp-titleblacklist-param-action": "کنشت وارسی بیه." +} diff --git a/extensions/TitleBlacklist/i18n/mk.json b/extensions/TitleBlacklist/i18n/mk.json index e1e9cf43..fd4faa97 100644 --- a/extensions/TitleBlacklist/i18n/mk.json +++ b/extensions/TitleBlacklist/i18n/mk.json @@ -21,5 +21,11 @@ "titleblacklist-warning": "<strong>Предупредување: Страницава можат да ја уредуваат само администратори и други корисници со правото <code>tboverride</code> бидејќи се совпаѓа со следниов наслов на црниот список:</strong><br /><code>$1</code>", "right-tboverride": "Занемарување на црниот список на наслови или корисници", "right-tboverride-account": "Потиснување на црниот список на кориснички имиња", - "right-titleblacklistlog": "Преглед на дневникот на наслови на црниот список" + "right-titleblacklistlog": "Преглед на дневникот на наслови на црниот список", + "apihelp-titleblacklist-description": "Провери наслов на статија, име на податотека или корисничко име во Црниот список.", + "apihelp-titleblacklist-param-title": "Низата што треба да се провери во црниот список.", + "apihelp-titleblacklist-param-action": "Дејството што треба да се провери.", + "apihelp-titleblacklist-param-nooverride": "Не се обидувај да наметнеш врз titleblacklist.", + "apihelp-titleblacklist-example-1": "Провери дали [[Foo]] е на црниот список", + "apihelp-titleblacklist-example-2": "Провери дали [[Bar]] е на црниот список за уредување" } diff --git a/extensions/TitleBlacklist/i18n/nl.json b/extensions/TitleBlacklist/i18n/nl.json index 8f06c7ee..42f10e8a 100644 --- a/extensions/TitleBlacklist/i18n/nl.json +++ b/extensions/TitleBlacklist/i18n/nl.json @@ -2,11 +2,12 @@ "@metadata": { "authors": [ "SPQRobin", - "Siebrand" + "Siebrand", + "Southparkfan" ] }, "titleblacklist-desc": "Voorkomt het aanmaken van pagina's en gebruikers via een [[MediaWiki:Titleblacklist|zwarte lijst]] en een [[MediaWiki:Titlewhitelist|witte lijst]]", - "titleblacklist": "# Dit is een zwarte lijst voor paginanamen. Paginanamen en gebruikers die voldoen aan een reguliere expressie op deze paina kunnen niet aangemaakt worden.\n# Gebruik \"#\" voor opmerkingen.\n# Regels in de zwarte lijst zijn niet hoofdlettergevoelig.", + "titleblacklist": "# Dit is een zwarte lijst voor paginanamen. Paginanamen en gebruikers die voldoen aan een reguliere expressie op deze pagina kunnen niet aangemaakt worden.\n# Gebruik \"#\" voor opmerkingen.\n# Regels in de zwarte lijst zijn niet hoofdlettergevoelig.", "titlewhitelist": "# Dit is een witte lijst voor paginanamen. Gebruik \"#\" voor opmerkingen.\n# Regels in de witte lijst zijn niet hoofdlettergevoelig.", "titleblacklist-forbidden-edit": "Een pagina met de naam \"$2\" kan niet aangemaakt worden. Deze paginanaam voldoet aan de volgende beperking op de zwarte lijst: <code>$1</code>", "titleblacklist-forbidden-move": "\"$2\" kan niet hernoemd worden naar \"$3\", omdat pagina's met de naam \"$3\" niet aangemaakt kunnen worden. Deze paginanaam voldoet aan de volgende beperking op de zwarte lijst: <code>$1</code>", diff --git a/extensions/TitleBlacklist/i18n/pt.json b/extensions/TitleBlacklist/i18n/pt.json index 01985bba..d6441649 100644 --- a/extensions/TitleBlacklist/i18n/pt.json +++ b/extensions/TitleBlacklist/i18n/pt.json @@ -5,10 +5,11 @@ "Hamilton Abreu", "Malafaya", "Waldir", - "555" + "555", + "Vitorvicentevalente" ] }, - "titleblacklist-desc": "Permite que os administradores proibam a criação de páginas e contas de utilizadores através de uma [[MediaWiki:Titleblacklist|lista negra]] e de uma [[MediaWiki:Titlewhitelist|lista de excepções]]", + "titleblacklist-desc": "Permite que os administradores proíbam a criação de páginas e contas de utilizadores através de uma [[MediaWiki:Titleblacklist|lista negra]] e de uma [[MediaWiki:Titlewhitelist|lista de excepções]]", "titleblacklist": "# Esta é uma lista negra de títulos. Títulos de páginas e nomes de utilizadores que sejam filtrados por uma expressão regular desta lista, não poderão ser criados.\n# Use \"#\" para comentários.\n# Por omissão, esta lista não distingue maiúsculas de minúsculas", "titlewhitelist": "# Esta é uma lista branca de títulos. Use \"#\" para comentários.\n# Por omissão, esta lista não distingue maiúsculas de minúsculas", "titleblacklist-forbidden-edit": "Foi bloqueada a criação do título \"$2\".\nO título corresponde à seguinte entrada da lista negra: <code>$1</code>", @@ -17,6 +18,8 @@ "titleblacklist-forbidden-new-account": "Foi bloqueada a criação de utilizadores com o nome \"$2\".\nO nome corresponde à seguinte entrada da lista negra: <code>$1</code>", "titleblacklist-invalid": "{{PLURAL:$1|A seguinte linha|As seguintes linhas}} da lista negra {{PLURAL:$1|é inválida|são inválidas}}. Por favor, {{PLURAL:$1|corrija-a|corrija-as}} antes de gravar:", "titleblacklist-override": "Ignorar a lista negra", + "titleblacklist-autoconfirmed-warning": "<strong>Nota:</strong> Esta página só pode ser editada por utilizadores <code>autoconfirmados</code>, pois corresponde com o seguinte título de entrada da lista negra:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>Aviso: Esta página só pode ser editada por administradores e outros utilizadores com o privilégio <code>tboverride</code>, pois corresponde com o seguinte título de entrada da lista negra:</strong><br /><code>$1</code>", "right-tboverride": "Sobrepor a lista negra de títulos e nomes de utilizador", "right-tboverride-account": "Ignorar a lista negra de nomes de utilizador" } diff --git a/extensions/TitleBlacklist/i18n/qqq.json b/extensions/TitleBlacklist/i18n/qqq.json index 6cdeff55..342305a5 100644 --- a/extensions/TitleBlacklist/i18n/qqq.json +++ b/extensions/TitleBlacklist/i18n/qqq.json @@ -14,7 +14,7 @@ "log-name-titleblacklist": "Name of log that appears on [[Special:Log]].", "log-description-titleblacklist": "Description of title blacklist log", "logentry-titleblacklist-hit-username": "Log entry that is created when someone tries to create an account with a name that is blacklisted on the title blacklist.\n\n{{logentry}}\nAdditional parameters:\n* $4 - the blacklist entry", - "titleblacklist-desc": "{{desc|name=Title Blacklist|url=http://www.mediawiki.org/wiki/Extension:TitleBlacklist}}", + "titleblacklist-desc": "{{desc|name=Title Blacklist|url=https://www.mediawiki.org/wiki/Extension:TitleBlacklist}}", "titleblacklist": "The [[mw:Extension:TitleBlacklist|extension Title Blacklist]] gives the ability to block certain unallowed words appearing in the title through regular expressions.\nThis will be the first explanatory paragraph of the blacklist. (Characters after the #-signs are ignored.) \nTo see an example list in context, see: http://www.mediawiki.org/wiki/MediaWiki:Titleblacklist", "titlewhitelist": "The whitelist is a feature of the [[mw:Extension:TitleBlacklist|extension Title Blacklist]], which gives the ability to block certain words (or explicitly allow them) appearing in the title through regular expressions.\nThis will be the explanatory paragraph of the blacklist. (Characters after the #-signs are ignored.) \nTo see an example list in context, see: http://www.mediawiki.org/wiki/MediaWiki:Titlewhitelist", "titleblacklist-forbidden-edit": "\"title\" stands for \"page title\". Parameters:\n* $1 - blacklist entry\n* $2 - page title\n{{Related|Titleblacklist-forbidden}}", @@ -27,5 +27,11 @@ "titleblacklist-warning": "Displayed when a user is editing a page that only administrators (or custom user groups with the tboverride right) can edit due to the title blacklist. Parameters:\n* $1 - blacklist entry", "right-tboverride": "{{doc-right|tboverride}}", "right-tboverride-account": "{{doc-right|tboverride-account}}", - "right-titleblacklistlog": "{{doc-right|titleblacklistlog}}" + "right-titleblacklistlog": "{{doc-right|titleblacklistlog}}", + "apihelp-titleblacklist-description": "{{doc-apihelp-description|titleblacklist}}", + "apihelp-titleblacklist-param-title": "{{doc-apihelp-param|titleblacklist|title}}", + "apihelp-titleblacklist-param-action": "{{doc-apihelp-param|titleblacklist|action}}", + "apihelp-titleblacklist-param-nooverride": "{{doc-apihelp-param|titleblacklist|nooverride}}", + "apihelp-titleblacklist-example-1": "{{doc-apihelp-example|titleblacklist}}", + "apihelp-titleblacklist-example-2": "{{doc-apihelp-example|titleblacklist}}" } diff --git a/extensions/TitleBlacklist/i18n/sr-el.json b/extensions/TitleBlacklist/i18n/sr-el.json index 64102e5e..bbd60fa1 100644 --- a/extensions/TitleBlacklist/i18n/sr-el.json +++ b/extensions/TitleBlacklist/i18n/sr-el.json @@ -8,6 +8,8 @@ "titleblacklist-desc": "Dopušta zabranu stvaranja strana s određenim naslovima: [[MediaWiki:Titleblacklist|crna lista]] i [[MediaWiki:Titlewhitelist|bela lista]].", "titleblacklist": "# Ovo je naslov crnog spiska. Naslovi koji sadrže regularni izraz iz ovog spiska ne mogu biti napravljeni.\n# Koristi \"#\" za komentare.\n# Podrazumevano je neosetljiv na veličinu slova", "titlewhitelist": "# Ovo je beli spisak naslova. Koristi \"#\" za komentare.\n# Podrazumevano je neosetljiv na veličinu slova", + "titleblacklist-forbidden-edit": "Naslov „$2“ nalazi se na crnoj listi.\nPoklapa se sa sledećim unosom na crnoj listi: <code>$1</code>", + "titleblacklist-forbidden-upload": "Naziv datoteke „$2“ je na crnoj listi.\nPoklapa se sa sledećim unosom na crnoj listi: <code>$1</code>", "titleblacklist-forbidden-new-account": "Korisničko ime „$2“ nalazi se na crnoj listi.\nPoklapa se sa sledećim unosom na crnoj listi: <code>$1</code>", "titleblacklist-override": "Zanemari crnu listu", "right-tboverride": "zaobilaženje crne liste naslova ili korisničkih imena", diff --git a/extensions/TitleBlacklist/i18n/sv.json b/extensions/TitleBlacklist/i18n/sv.json index ac7b6dc9..d54fcd72 100644 --- a/extensions/TitleBlacklist/i18n/sv.json +++ b/extensions/TitleBlacklist/i18n/sv.json @@ -25,5 +25,11 @@ "titleblacklist-warning": "<strong>Varning: Denna sida kan endast redigeras av administratörer och andra användare med <code>tboverride</code>-rättigheten eftersom den matchar följande post i svartlistan över titlar:</strong><br /><code>$1</code>", "right-tboverride": "Åsidosätt svartlistan med titlar och användarnamn", "right-tboverride-account": "Kör över svartlistan för användarnamn", - "right-titleblacklistlog": "Visa svartlistningslogg för titlar" + "right-titleblacklistlog": "Visa svartlistningslogg för titlar", + "apihelp-titleblacklist-description": "Validera en artikeltitel, filnamn, eller användarnamn mot TitleBlacklist.", + "apihelp-titleblacklist-param-title": "Strängen som ska valideras mot svartlistan.", + "apihelp-titleblacklist-param-action": "Åtgärden som ska kontrolleras.", + "apihelp-titleblacklist-param-nooverride": "Försök inte att åsidosätta svartlistan för titlar.", + "apihelp-titleblacklist-example-1": "Kontrollera om [[Foo]] är svartlistad", + "apihelp-titleblacklist-example-2": "Kontrollera om [[Bar]] är svartlistad för redigering" } diff --git a/extensions/TitleBlacklist/i18n/uk.json b/extensions/TitleBlacklist/i18n/uk.json index 757c6691..1d1a63ba 100644 --- a/extensions/TitleBlacklist/i18n/uk.json +++ b/extensions/TitleBlacklist/i18n/uk.json @@ -7,7 +7,9 @@ "Base", "JenVan", "Prima klasy4na", - "Ата" + "Ата", + "Green Zero", + "Piramidion" ] }, "action-titleblacklistlog": "перегляд журналу заборонених назв", @@ -23,6 +25,8 @@ "titleblacklist-forbidden-new-account": "Заборонено використовувати ім'я користувача «$2».\nІм'я відповідає наступному запису з чорного списку: <code>$1</code>", "titleblacklist-invalid": "{{PLURAL:$1|1=Наступний рядок|Наступні рядки}} списку заборонених назв є {{PLURAL:$1|1=помилковим|помилковими}};\nбудь ласка, виправте {{PLURAL:$1|1=його|їх}} перед збереженням:", "titleblacklist-override": "Ігнорувати чорний список", + "titleblacklist-autoconfirmed-warning": "<strong>Зверніть увагу:</strong> Цю сторінку можуть редагувати лише <code>автопідтверджені користувачі</code>, оскільки вона збігається з наступним записом із «чорного списку» назв:<br /><code>$1</code>", + "titleblacklist-warning": "<strong>Зверніть увагу:</strong> Цю сторінку можуть редагувати лише адміністратори та інші користувачі з правами <code>tboverride</code>, оскільки вона збігається з наступним записом із «чорного списку» назв:<br /><code>$1</code>", "right-tboverride": "ігнорування чорного списку назв сторінок або користувачів", "right-tboverride-account": "ігнорування чорного списку імен користувачів", "right-titleblacklistlog": "перегляд чорного списку назв" diff --git a/extensions/TitleBlacklist/i18n/zh-hans.json b/extensions/TitleBlacklist/i18n/zh-hans.json index def18e56..45c93522 100644 --- a/extensions/TitleBlacklist/i18n/zh-hans.json +++ b/extensions/TitleBlacklist/i18n/zh-hans.json @@ -29,5 +29,11 @@ "titleblacklist-warning": "<strong>警告:此页面只能由管理员和其他拥有<code>tboverride</code>权限的用户编辑,因为它匹配以下标题黑名单:</strong><br /><code>$1</code>", "right-tboverride": "覆盖标题或用户名黑名单", "right-tboverride-account": "覆盖用户名黑名单", - "right-titleblacklistlog": "查看标题黑名单日志" + "right-titleblacklistlog": "查看标题黑名单日志", + "apihelp-titleblacklist-description": "验证一篇条目的标题、文件名或用户名是否触发标题黑名单。", + "apihelp-titleblacklist-param-title": "验证是否触发黑名单的字符串。", + "apihelp-titleblacklist-param-action": "要检查的操作。", + "apihelp-titleblacklist-param-nooverride": "不要尝试绕开标题黑名单。", + "apihelp-titleblacklist-example-1": "检查[[Foo]]是否被列入黑名单", + "apihelp-titleblacklist-example-2": "检查[[Bar]]是否被列入禁止编辑的黑名单" } diff --git a/extensions/TitleBlacklist/i18n/zh-hant.json b/extensions/TitleBlacklist/i18n/zh-hant.json index bf92a4a7..9ff9db4a 100644 --- a/extensions/TitleBlacklist/i18n/zh-hant.json +++ b/extensions/TitleBlacklist/i18n/zh-hant.json @@ -27,7 +27,13 @@ "titleblacklist-override": "忽略封鎖清單", "titleblacklist-autoconfirmed-warning": "<strong>注意:</strong>此頁面符合下列標題封鎖清單項目,僅可由擁有 <code>已自動確認</code> 權限的使用者編輯:<br /><code>$1</code>", "titleblacklist-warning": "<strong>警告:此頁面符合下列標題封鎖清單項目,僅可由管理員或擁有 <code>tboverride</code> 權限的使用者編輯:</strong><br /><code>$1</code>", - "right-tboverride": "覆蓋標題或使用者名稱封鎖清單", - "right-tboverride-account": "覆蓋使用者名稱封鎖清單", - "right-titleblacklistlog": "檢視標題封鎖清單日誌" + "right-tboverride": "覆蓋標題或使用者名稱黑名單", + "right-tboverride-account": "覆蓋使用者名稱黑名單", + "right-titleblacklistlog": "檢視標題封鎖清單日誌", + "apihelp-titleblacklist-description": "使用 TitleBlacklist 檢驗文章標題、檔案名稱或使用者名稱。", + "apihelp-titleblacklist-param-title": "要用來檢驗封鎖清單的字串。", + "apihelp-titleblacklist-param-action": "要檢查的操作。", + "apihelp-titleblacklist-param-nooverride": "不要嘗試覆蓋標題封鎖清單。", + "apihelp-titleblacklist-example-1": "檢查 [[Foo]] 是否已被列入封鎖名單", + "apihelp-titleblacklist-example-2": "檢查 [[Bar]] 是否已被列入編輯的封鎖名單" } diff --git a/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php b/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php index 344e9996..734fec7e 100644 --- a/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php +++ b/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php @@ -24,10 +24,10 @@ class ApiQueryTitleBlacklistTest extends ApiTestCase { $this->doLogin(); $wgTitleBlacklistSources = array( - array( - 'type' => TBLSRC_FILE, - 'src' => __DIR__ . '/testSource', - ), + array( + 'type' => 'file', + 'src' => __DIR__ . '/testSource', + ), ); } |