specified, deprecated in 1.30, have been removed.
* BufferingStatsdDataFactory::getBuffer(), deprecated in 1.30, has been removed.
* The constant DB_SLAVE, deprecated in 1.28, has been removed. Use DB_REPLICA.
+* Replacer, DoubleReplacer, HashtableReplacer and RegexlikeReplacer
+ (deprecated in 1.32) have been removed. Closures should be used instead.
* …
=== Deprecations in 1.34 ===
'DnsSrvDiscoverer' => __DIR__ . '/includes/libs/DnsSrvDiscoverer.php',
'DoubleRedirectJob' => __DIR__ . '/includes/jobqueue/jobs/DoubleRedirectJob.php',
'DoubleRedirectsPage' => __DIR__ . '/includes/specials/SpecialDoubleRedirects.php',
- 'DoubleReplacer' => __DIR__ . '/includes/libs/replacers/DoubleReplacer.php',
'DummyLinker' => __DIR__ . '/includes/DummyLinker.php',
'DummySearchIndexFieldDefinition' => __DIR__ . '/includes/search/DummySearchIndexFieldDefinition.php',
'DummyTermColorer' => __DIR__ . '/maintenance/term/MWTerm.php',
'HashConfig' => __DIR__ . '/includes/config/HashConfig.php',
'HashRing' => __DIR__ . '/includes/libs/HashRing.php',
'HashSiteStore' => __DIR__ . '/includes/site/HashSiteStore.php',
- 'HashtableReplacer' => __DIR__ . '/includes/libs/replacers/HashtableReplacer.php',
'HistoryAction' => __DIR__ . '/includes/actions/HistoryAction.php',
'HistoryBlob' => __DIR__ . '/includes/historyblob/HistoryBlob.php',
'HistoryBlobCurStub' => __DIR__ . '/includes/historyblob/HistoryBlobCurStub.php',
'RefreshImageMetadata' => __DIR__ . '/maintenance/refreshImageMetadata.php',
'RefreshLinks' => __DIR__ . '/maintenance/refreshLinks.php',
'RefreshLinksJob' => __DIR__ . '/includes/jobqueue/jobs/RefreshLinksJob.php',
- 'RegexlikeReplacer' => __DIR__ . '/includes/libs/replacers/RegexlikeReplacer.php',
'RemexStripTagHandler' => __DIR__ . '/includes/parser/RemexStripTagHandler.php',
'RemoveInvalidEmails' => __DIR__ . '/maintenance/removeInvalidEmails.php',
'RemoveUnusedAccounts' => __DIR__ . '/maintenance/removeUnusedAccounts.php',
'RenameDbPrefix' => __DIR__ . '/maintenance/renameDbPrefix.php',
'RenderAction' => __DIR__ . '/includes/actions/RenderAction.php',
'ReplacementArray' => __DIR__ . '/includes/libs/ReplacementArray.php',
- 'Replacer' => __DIR__ . '/includes/libs/replacers/Replacer.php',
'ReplicatedBagOStuff' => __DIR__ . '/includes/libs/objectcache/ReplicatedBagOStuff.php',
'RepoGroup' => __DIR__ . '/includes/filerepo/RepoGroup.php',
'RequestContext' => __DIR__ . '/includes/context/RequestContext.php',
"wikimedia/testing-access-wrapper": "~1.0",
"wmde/hamcrest-html-matchers": "^0.1.0",
"mediawiki/mediawiki-phan-config": "0.6.0",
- "symfony/yaml": "3.4.28"
+ "symfony/yaml": "3.4.28",
+ "johnkary/phpunit-speedtrap": "^1.0 | ^2.0"
},
"replace": {
"symfony/polyfill-ctype": "1.99",
To create a batch, you can use the following code:
-$pages = array( 'Main Page', 'Project:Help', /* ... */ );
-$titles = array();
+$pages = [ 'Main Page', 'Project:Help', /* ... */ ];
+$titles = [];
foreach( $pages as $page ){
$titles[] = Title::newFromText( $page );
----
<?php
-$magicWords = array();
+$magicWords = [];
-$magicWords['en'] = array(
+$magicWords['en'] = [
// Case sensitive.
- 'mag_custom' => array( 1, 'CUSTOM' ),
-);
+ 'mag_custom' => [ 1, 'CUSTOM' ],
+];
-$magicWords['es'] = array(
- 'mag_custom' => array( 1, 'ADUANERO' ),
-);
+$magicWords['es'] = [
+ 'mag_custom' => [ 1, 'ADUANERO' ],
+];
----
$wgExtensionMessagesFiles['ExtensionNameMagic'] = __DIR__ . '/ExtensionName.i18n.magic.php';
----
<?php
-$magicWords = array();
+$magicWords = [];
-$magicWords['en'] = array(
+$magicWords['en'] = [
// Case insensitive.
- 'mag_custom' => array( 0, 'custom' ),
-);
+ 'mag_custom' => [ 0, 'custom' ],
+];
-$magicWords['es'] = array(
- 'mag_custom' => array( 0, 'aduanero' ),
-);
+$magicWords['es'] = [
+ 'mag_custom' => [ 0, 'aduanero' ],
+];
----
$wgExtensionMessagesFiles['ExtensionNameMagic'] = __DIR__ . '/ExtensionName.i18n.magic.php';
In your LocalSettings.php file, set:
$wgMainCacheType = CACHE_MEMCACHED;
- $wgMemCachedServers = array( "127.0.0.1:11211" );
+ $wgMemCachedServers = [ "127.0.0.1:11211" ];
The wiki should then use memcached to cache various data. To use
multiple servers (physically separate boxes or multiple caches
it has twice the memory of the others and you want to spread
usage evenly), make its entry a subarray:
- $wgMemCachedServers = array(
+ $wgMemCachedServers = [
"127.0.0.1:11211", # one gig on this box
- array("192.168.0.1:11211", 2 ) # two gigs on the other box
- );
+ [ "192.168.0.1:11211", 2 ] # two gigs on the other box
+ ];
== PHP client for memcached ==
require 'MemCachedClient.inc.php';
// set the servers, with the last one having an integer weight value of 3
-$options["servers"] = array("10.0.0.15:11000","10.0.0.16:11001",array("10.0.0.17:11002", 3));
+$options["servers"] = ["10.0.0.15:11000","10.0.0.16:11001",["10.0.0.17:11002", 3]];
$options["debug"] = false;
$memc = new MemCachedClient($options);
/***********************
* STORE AN ARRAY
***********************/
-$myarr = array("one","two", 3);
+$myarr = ["one","two", 3];
$memc->set("key_one", $myarr);
$val = $memc->get("key_one");
print $val[0]."\n"; // prints 'one'
/**
* Recursively check a condition. Conditions are in the form
- * array( '&' or '|' or '^' or '!', cond1, cond2, ... )
+ * [ '&' or '|' or '^' or '!', cond1, cond2, ... ]
* where cond1, cond2, ... are themselves conditions; *OR*
* APCOND_EMAILCONFIRMED, *OR*
- * array( APCOND_EMAILCONFIRMED ), *OR*
- * array( APCOND_EDITCOUNT, number of edits ), *OR*
- * array( APCOND_AGE, seconds since registration ), *OR*
+ * [ APCOND_EMAILCONFIRMED ], *OR*
+ * [ APCOND_EDITCOUNT, number of edits ], *OR*
+ * [ APCOND_AGE, seconds since registration ], *OR*
* similar constructs defined by extensions.
* This function evaluates the former type recursively, and passes off to
* self::checkCondition for evaluation of the latter type.
*
* The basic syntax for `$wgAutopromote` is:
*
- * $wgAutopromote = array(
+ * $wgAutopromote = [
* 'groupname' => cond,
* 'group2' => cond2,
- * );
+ * ];
*
* A `cond` may be:
* - a single condition without arguments:
* Note that Autopromote wraps a single non-array value into an array
* e.g. `APCOND_EMAILCONFIRMED` OR
- * array( `APCOND_EMAILCONFIRMED` )
+ * [ `APCOND_EMAILCONFIRMED` ]
* - a single condition with arguments:
- * e.g. `array( APCOND_EDITCOUNT, 100 )`
+ * e.g. `[ APCOND_EDITCOUNT, 100 ]`
* - a set of conditions:
- * e.g. `array( 'operand', cond1, cond2, ... )`
+ * e.g. `[ 'operand', cond1, cond2, ... ]`
*
* When constructing a set of conditions, the following conditions are available:
* - `&` (**AND**):
* promote if user matches **ONLY ONE OF THE CONDITIONS**
* - `!` (**NOT**):
* promote if user matces **NO** condition
- * - array( APCOND_EMAILCONFIRMED ):
+ * - [ APCOND_EMAILCONFIRMED ]:
* true if user has a confirmed e-mail
- * - array( APCOND_EDITCOUNT, number of edits ):
+ * - [ APCOND_EDITCOUNT, number of edits ]:
* true if user has the at least the number of edits as the passed parameter
- * - array( APCOND_AGE, seconds since registration ):
+ * - [ APCOND_AGE, seconds since registration ]:
* true if the length of time since the user created his/her account
* is at least the same length of time as the passed parameter
- * - array( APCOND_AGE_FROM_EDIT, seconds since first edit ):
+ * - [ APCOND_AGE_FROM_EDIT, seconds since first edit ]:
* true if the length of time since the user made his/her first edit
* is at least the same length of time as the passed parameter
- * - array( APCOND_INGROUPS, group1, group2, ... ):
+ * - [ APCOND_INGROUPS, group1, group2, ... ]:
* true if the user is a member of each of the passed groups
- * - array( APCOND_ISIP, ip ):
+ * - [ APCOND_ISIP, ip ]:
* true if the user has the passed IP address
- * - array( APCOND_IPINRANGE, range ):
+ * - [ APCOND_IPINRANGE, range ]:
* true if the user has an IP address in the range of the passed parameter
- * - array( APCOND_BLOCKED ):
+ * - [ APCOND_BLOCKED ]:
* true if the user is blocked
- * - array( APCOND_ISBOT ):
+ * - [ APCOND_ISBOT ]:
* true if the user is a bot
* - similar constructs can be defined by extensions
*
*
* @code
* $wgProfiler['class'] = 'ProfilerXhprof';
- * $wgProfiler['output'] = array( 'ProfilerOutputDb' );
+ * $wgProfiler['output'] = [ 'ProfilerOutputDb' ];
* $wgProfiler['sampling'] = 50; // one every 50 requests
* @endcode
*
}
unset( $logDir );
-// Disable rate-limiting
+// Disable rate-limiting to allow integration tests to run unthrottled
+// in CI and for devs locally (T225796)
$wgRateLimits = [];
$newValue = [];
foreach ( $value as $k => $v ) {
if ( is_string( $v ) ) {
- // String values should be normal `array( 'foo' )`
+ // String values should be normal `[ 'foo' ]`
// Just append them
if ( !isset( $value[$v] ) ) {
// As a special case don't set 'foo' if a
/**
* Get the files used on this page
*
- * @return array (dbKey => array('time' => MW timestamp or null, 'sha1' => sha1 or ''))
+ * @return array [ dbKey => [ 'time' => MW timestamp or null, 'sha1' => sha1 or '' ] ]
* @since 1.18
*/
public function getFileSearchOptions() {
* - In a pattern $1, $2, etc... will be replaced with the relevant contents
* - If you used a keyed array as a path pattern, $key will be replaced with
* the relevant contents
- * - The default behavior is equivalent to `array( 'title' => '$1' )`,
- * if you don't want the title parameter you can explicitly use `array( 'title' => false )`
+ * - The default behavior is equivalent to `[ 'title' => '$1' ]`,
+ * if you don't want the title parameter you can explicitly use `[ 'title' => false ]`
* - You can specify a value that won't have replacements in it
* using `'foo' => [ 'value' => 'bar' ];`
*
/**
* Protected helper to do the actual bulk work of adding a single pattern.
* This is in a separate method so that add() can handle the difference between
- * a single string $path and an array() $path that contains multiple path
+ * a single string $path and an array $path that contains multiple path
* patterns each with an associated $key to pass on.
* @param string $path
* @param array $params
}
// We know the difference between null (no matches) and
- // array() (a match with no data) but our WebRequest caller
- // expects array() even when we have no matches so return
- // a array() when we have null
+ // [] (a match with no data) but our WebRequest caller
+ // expects [] even when we have no matches so return
+ // a [] when we have null
return $matches ?? [];
}
*
* @param string|string[] $query An optional query string,
* not used for interwiki links. Can be specified as an associative array as well,
- * e.g., array( 'action' => 'edit' ) (keys and values will be URL-escaped).
+ * e.g., [ 'action' => 'edit' ] (keys and values will be URL-escaped).
* Some query patterns will trigger various shorturl path replacements.
* @param string|string[]|bool $query2 An optional secondary query array. This one MUST
* be an array. If a string is passed it will be interpreted as a deprecated
/**
* Read the global and extract title objects from the corresponding messages
- * @return array Array( 'msg' => Title, 'cats' => Title[] )
+ * @return array [ 'msg' => Title, 'cats' => Title[] ]
*/
public function getTrackingCategories() {
$categories = array_merge(
/**
* Parse the Accept-Language header sent by the client into an array
*
- * @return array Array( languageCode => q-value ) sorted by q-value in
+ * @return array [ languageCode => q-value ] sorted by q-value in
* descending order then appearing time in the header in ascending order.
* May contain the "language" '*', which applies to languages other than those explicitly listed.
* This is aligned with rfc2616 section 14.4
}
/**
- * Equivalent to addWhere(array($field => $value))
+ * Equivalent to addWhere( [ $field => $value ] )
* @param string $field Field name
* @param string|string[] $value Value; ignored if null or empty array
*/
] );
}
+ // Filter out any duplicated blocks, e.g. from the cookie
+ $blocks = $this->getUniqueBlocks( $blocks );
+
if ( count( $blocks ) > 0 ) {
if ( count( $blocks ) === 1 ) {
$block = $blocks[ 0 ];
return null;
}
+ /**
+ * Given a list of blocks, return a list blocks where each block either has a
+ * unique ID or has ID null.
+ *
+ * @param AbstractBlock[] $blocks
+ * @return AbstractBlock[]
+ */
+ private function getUniqueBlocks( $blocks ) {
+ $blockIds = [];
+ $uniqueBlocks = [];
+ foreach ( $blocks as $block ) {
+ $id = $block->getId();
+ if ( $id === null ) {
+ $uniqueBlocks[] = $block;
+ } elseif ( !isset( $blockIds[$id] ) ) {
+ $uniqueBlocks[] = $block;
+ $blockIds[$block->getId()] = true;
+ }
+ }
+ return $uniqueBlocks;
+ }
+
/**
* Try to load a block from an ID given in a cookie value.
*
* ChangeTags::updateTags() instead, unless directly handling a user request
* to add or remove tags from an existing revision or log entry.
*
- * @param array|null $tagsToAdd If none, pass array() or null
- * @param array|null $tagsToRemove If none, pass array() or null
+ * @param array|null $tagsToAdd If none, pass [] or null
+ * @param array|null $tagsToRemove If none, pass [] or null
* @param int|null $rc_id The rc_id of the change to add the tags to
* @param int|null $rev_id The rev_id of the change to add the tags to
* @param int|null $log_id The log_id of the change to add the tags to
/**
* Get an array of existing inline interwiki links, as a 2-D array
- * @return array (prefix => array(dbkey => 1))
+ * @return array [ prefix => [ dbkey => 1 ] ]
*/
private function getExistingInterwikis() {
$res = $this->getDB()->select( 'iwlinks', [ 'iwl_prefix', 'iwl_title' ],
* @ingroup FileAbstraction
*/
class ForeignDBFile extends LocalFile {
- /**
- * @param Title $title
- * @param FileRepo $repo
- * @param null $unused
- * @return ForeignDBFile
- */
- static function newFromTitle( $title, $repo, $unused = null ) {
- return new self( $title, $repo );
- }
-
- /**
- * Create a ForeignDBFile from a title
- * Do not call this except from inside a repo class.
- *
- * @param stdClass $row
- * @param FileRepo $repo
- * @return ForeignDBFile
- */
- static function newFromRow( $row, $repo ) {
- $title = Title::makeTitle( NS_FILE, $row->img_name );
- $file = new self( $title, $repo );
- $file->loadFromRow( $row );
-
- return $file;
- }
/**
* @param string $srcPath
* @param FileRepo $repo
* @param null $unused
*
- * @return self
+ * @return static
*/
static function newFromTitle( $title, $repo, $unused = null ) {
- return new self( $title, $repo );
+ return new static( $title, $repo );
}
/**
* @param stdClass $row
* @param FileRepo $repo
*
- * @return self
+ * @return static
*/
static function newFromRow( $row, $repo ) {
$title = Title::makeTitle( NS_FILE, $row->img_name );
- $file = new self( $title, $repo );
+ $file = new static( $title, $repo );
$file->loadFromRow( $row );
return $file;
$conds['img_timestamp'] = $dbr->timestamp( $timestamp );
}
- $fileQuery = self::getQueryInfo();
+ $fileQuery = static::getQueryInfo();
$row = $dbr->selectRow(
$fileQuery['tables'], $fileQuery['fields'], $conds, __METHOD__, [], $fileQuery['joins']
);
if ( $row ) {
- return self::newFromRow( $row, $repo );
+ return static::newFromRow( $row, $repo );
} else {
return false;
}
* @param Title $title
* @param FileRepo $repo
* @param string|int|null $time
- * @return self
+ * @return static
* @throws MWException
*/
static function newFromTitle( $title, $repo, $time = null ) {
throw new MWException( __METHOD__ . ' got null for $time parameter' );
}
- return new self( $title, $repo, $time, null );
+ return new static( $title, $repo, $time, null );
}
/**
* @param Title $title
* @param FileRepo $repo
* @param string $archiveName
- * @return self
+ * @return static
*/
static function newFromArchiveName( $title, $repo, $archiveName ) {
- return new self( $title, $repo, null, $archiveName );
+ return new static( $title, $repo, null, $archiveName );
}
/**
* @param stdClass $row
* @param FileRepo $repo
- * @return self
+ * @return static
*/
static function newFromRow( $row, $repo ) {
$title = Title::makeTitle( NS_FILE, $row->oi_name );
- $file = new self( $title, $repo, null, $row->oi_archive_name );
+ $file = new static( $title, $repo, null, $row->oi_archive_name );
$file->loadFromRow( $row, 'oi_' );
return $file;
$conds['oi_timestamp'] = $dbr->timestamp( $timestamp );
}
- $fileQuery = self::getQueryInfo();
+ $fileQuery = static::getQueryInfo();
$row = $dbr->selectRow(
$fileQuery['tables'], $fileQuery['fields'], $conds, __METHOD__, [], $fileQuery['joins']
);
if ( $row ) {
- return self::newFromRow( $row, $repo );
+ return static::newFromRow( $row, $repo );
} else {
return false;
}
/**
* @param string $path Storage path
* @param string $mime
- * @return UnregisteredLocalFile
+ * @return static
*/
static function newFromPath( $path, $mime ) {
- return new self( false, false, $path, $mime );
+ return new static( false, false, $path, $mime );
}
/**
* @param Title $title
* @param FileRepo $repo
- * @return UnregisteredLocalFile
+ * @return static
*/
static function newFromTitle( $title, $repo ) {
- return new self( $title, $repo, false, false );
+ return new static( $title, $repo, false, false );
}
/**
* that return value has no taint.
*
* @param string $value The value of the input
- * @return array array( $errors, $errorClass )
+ * @return array [ $errors, $errorClass ]
* @return-taint none
*/
public function getErrorsAndErrorClass( $value ) {
return new MediaWiki\Widget\SelectWithInputWidget( $params );
}
+ /**
+ * @inheritDoc
+ */
+ public function getDefault() {
+ $default = parent::getDefault();
+
+ // Default values of empty form
+ $final = '';
+ $list = 'other';
+ $text = '';
+
+ if ( $default !== null ) {
+ $final = $default;
+ // Assume the default is a text value, with the 'other' option selected.
+ // Then check if that assumption is correct, and update $list and $text if not.
+ $text = $final;
+ foreach ( $this->mFlatOptions as $option ) {
+ $match = $option . $this->msg( 'colon-separator' )->inContentLanguage()->text();
+ if ( strpos( $final, $match ) === 0 ) {
+ $list = $option;
+ $text = substr( $final, strlen( $match ) );
+ break;
+ }
+ }
+ }
+
+ return [ $final, $list, $text ];
+ }
+
/**
* @param WebRequest $request
*
} else {
$final = $list . $this->msg( 'colon-separator' )->inContentLanguage()->text() . $text;
}
- } else {
- $final = $this->getDefault();
-
- $list = 'other';
- $text = $final;
- foreach ( $this->mFlatOptions as $option ) {
- $match = $option . $this->msg( 'colon-separator' )->inContentLanguage()->text();
- if ( strpos( $text, $match ) === 0 ) {
- $list = $option;
- $text = substr( $text, strlen( $match ) );
- break;
- }
- }
+ return [ $final, $list, $text ];
}
-
- return [ $final, $list, $text ];
+ return $this->getDefault();
}
public function getSize() {
if ( isset( $this->mParams['required'] )
&& $this->mParams['required'] !== false
- && $value[1] === ''
+ && $value[0] === ''
) {
return $this->msg( 'htmlform-required' );
}
*/
protected $tabIndex = 1;
+ /**
+ * Numeric index of the help box
+ *
+ * @var int
+ */
+ protected $helpBoxId = 1;
+
/**
* Name of the page we're on
*
$args = array_map( 'htmlspecialchars', $args );
$text = wfMessage( $msg, $args )->useDatabase( false )->plain();
$html = $this->parse( $text, true );
+ $id = 'helpBox-' . $this->helpBoxId++;
return "<div class=\"config-help-field-container\">\n" .
- "<span class=\"config-help-field-hint\" title=\"" .
+ "<input type=\"checkbox\" class=\"config-help-field-checkbox\" id=\"$id\" />" .
+ "<label class=\"config-help-field-hint\" for=\"$id\" title=\"" .
wfMessage( 'config-help-tooltip' )->escaped() . "\">" .
- wfMessage( 'config-help' )->escaped() . "</span>\n" .
+ wfMessage( 'config-help' )->escaped() . "</label>\n" .
"<div class=\"config-help-field-data\">" . $html . "</div>\n" .
"</div>\n";
}
public function outputShortHeader() {
?>
<?php echo Html::htmlHeader( $this->getHeadAttribs() ); ?>
+
<head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex, nofollow" />
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title><?php $this->outputTitle(); ?></title>
<?php echo $this->getCssUrl() . "\n"; ?>
- <?php echo $this->getJQuery(); ?>
- <?php echo Html::linkedScript( 'config.js' ); ?>
+ <?php echo $this->getJQuery() . "\n"; ?>
+ <?php echo Html::linkedScript( 'config.js' ) . "\n"; ?>
</head>
<body style="background-image: none">
"config-missing-db-name": "Musíte zadat hodnotu pro „{{int:config-db-name}}“.",
"config-missing-db-host": "Musíte zadat hodnotu pro „{{int:config-db-host}}“.",
"config-missing-db-server-oracle": "Musíte zadat hodnotu pro „{{int:config-db-host-oracle}}“.",
- "config-invalid-db-server-oracle": "Chybné databázové TNS „$1“.\nPoužívejte buď „TNS Name“ nebo „Easy Connect“ (viz [http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).",
+ "config-invalid-db-server-oracle": "Chybné databázové TNS „$1“.\nPoužívejte buď „TNS Name“ nebo „Easy Connect“ (vizte [http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).",
"config-invalid-db-name": "Chybné jméno databáze „$1“.\nPoužívejte pouze ASCII písmena (a-z, A-Z), čísla (0-9), podtržítko (_) a spojovník (-).",
"config-invalid-db-prefix": "Chybný databázový prefix „$1“.\nPoužívejte pouze ASCII písmena (a-z, A-Z), čísla (0-9), podtržítko (_) a spojovník (-).",
"config-connection-error": "$1.\n\nZkontrolujte server, uživatelské jméno a heslo a zkuste to znovu. Pokud jako adresu databázového serveru používáte „localhost“, zkuste použít „127.0.0.1“ (a naopak).",
* @code
* $job = new JobSpecification(
* 'null',
- * array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
- * array( 'removeDuplicates' => 1 )
+ * [ 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ],
+ * [ 'removeDuplicates' => 1 ]
* );
* JobQueueGroup::singleton()->push( $job )
* @endcode
return $this->__call( __FUNCTION__, func_get_args() );
}
+ public function __toString() {
+ if ( $this->conn === null ) {
+ // spl_object_id is PHP >= 7.2
+ $id = function_exists( 'spl_object_id' )
+ ? spl_object_id( $this )
+ : spl_object_hash( $this );
+
+ return $this->getType() . ' object #' . $id;
+ }
+
+ return $this->__call( __FUNCTION__, func_get_args() );
+ }
+
/**
* Error out if the role is not DB_MASTER
*
return $this->conn;
}
- /**
- * @since 1.19
- * @return string
- */
public function __toString() {
- return (string)$this->conn;
+ // spl_object_id is PHP >= 7.2
+ $id = function_exists( 'spl_object_id' )
+ ? spl_object_id( $this )
+ : spl_object_hash( $this );
+
+ $description = $this->getType() . ' object #' . $id;
+ if ( is_resource( $this->conn ) ) {
+ $description .= ' (' . (string)$this->conn . ')'; // "resource id #<ID>"
+ } elseif ( is_object( $this->conn ) ) {
+ // spl_object_id is PHP >= 7.2
+ $handleId = function_exists( 'spl_object_id' )
+ ? spl_object_id( $this->conn )
+ : spl_object_hash( $this->conn );
+ $description .= " (handle id #$handleId)";
+ }
+
+ return $description;
}
/**
return $conn->real_escape_string( (string)$s );
}
- /**
- * Give an id for the connection
- *
- * mysql driver used resource id, but mysqli objects cannot be cast to string.
- * @return string
- */
- public function __toString() {
- if ( $this->conn instanceof mysqli ) {
- return (string)$this->conn->thread_id;
- } else {
- // mConn might be false or something.
- return (string)$this->conn;
- }
- }
-
/**
* @return mysqli
*/
return true;
}
- /**
- * @return string
- */
- public function __toString() {
- return is_object( $this->conn )
- ? 'SQLite ' . (string)$this->conn->getAttribute( PDO::ATTR_SERVER_VERSION )
- : '(not connected)';
- }
-
/**
* @return PDO
*/
* @since 1.31
*/
public function setIndexAliases( array $aliases );
+
+ /**
+ * Get a debugging string that mentions the database type, the ID of this instance,
+ * and the ID of any underlying connection resource or driver object if one is present
+ *
+ * @return string "<db type> object #<X>" or "<db type> object #<X> (resource/handle id #<Y>)"
+ * @since 1.34
+ */
+ public function __toString();
}
/**
+++ /dev/null
-<?php
-/**
- * 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
- */
-
-/**
- * Class to perform secondary replacement within each replacement string
- *
- * @deprecated since 1.32, use a Closure instead
- */
-class DoubleReplacer extends Replacer {
- /**
- * @param mixed $from
- * @param mixed $to
- * @param int $index
- */
- public function __construct( $from, $to, $index = 0 ) {
- wfDeprecated( __METHOD__, '1.32' );
- $this->from = $from;
- $this->to = $to;
- $this->index = $index;
- }
-
- /**
- * @param array $matches
- * @return mixed
- */
- public function replace( array $matches ) {
- return str_replace( $this->from, $this->to, $matches[$this->index] );
- }
-}
+++ /dev/null
-<?php
-/**
- * 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
- */
-
-/**
- * Class to perform replacement based on a simple hashtable lookup
- *
- * @deprecated since 1.32, use a Closure instead
- */
-class HashtableReplacer extends Replacer {
- private $table, $index;
-
- /**
- * @param array $table
- * @param int $index
- */
- public function __construct( $table, $index = 0 ) {
- wfDeprecated( __METHOD__, '1.32' );
- $this->table = $table;
- $this->index = $index;
- }
-
- /**
- * @param array $matches
- * @return mixed
- */
- public function replace( array $matches ) {
- return $this->table[$matches[$this->index]];
- }
-}
+++ /dev/null
-<?php
-/**
- * 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
- */
-
-/**
- * Class to replace regex matches with a string similar to that used in preg_replace()
- *
- * @deprecated since 1.32, use a Closure instead
- */
-class RegexlikeReplacer extends Replacer {
- private $r;
-
- /**
- * @param string $r
- */
- public function __construct( $r ) {
- wfDeprecated( __METHOD__, '1.32' );
- $this->r = $r;
- }
-
- /**
- * @param array $matches
- * @return string
- */
- public function replace( array $matches ) {
- $pairs = [];
- foreach ( $matches as $i => $match ) {
- $pairs["\$$i"] = $match;
- }
-
- return strtr( $this->r, $pairs );
- }
-}
+++ /dev/null
-<?php
-/**
- * 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
- */
-
-/**
- * Base class for "replacers", objects used in preg_replace_callback() and
- * StringUtils::delimiterReplaceCallback()
- *
- * @deprecated since 1.32, use a Closure instead
- */
-abstract class Replacer {
- /**
- * @return array
- */
- public function cb() {
- wfDeprecated( __METHOD__, '1.32' );
- return [ $this, 'replace' ];
- }
-
- /**
- * @param array $matches
- * @return string
- */
- abstract public function replace( array $matches );
-}
* @param User|null $user User performing the action, or null to use $wgUser
* @param string|string[]|null $tags Change tags to add to log entry
* ($user should be able to add the specified tags before this is called)
- * @return array|bool array(number of file revisions restored, number of image revisions
- * restored, log message) on success, false on failure.
+ * @return array|bool [ number of file revisions restored, number of image revisions
+ * restored, log message ] on success, false on failure.
*/
public function undelete( $timestamps, $comment = '', $fileVersions = [],
$unsuppress = false, User $user = null, $tags = null
* (with ChangeTags::canAddTagsAccompanyingChange)
*
* @return array Array of errors, each error formatted as
- * array(messagekey, param1, param2, ...).
+ * [ messagekey, param1, param2, ... ].
* On success, the array is empty. This array can also be passed to
* OutputPage::showPermissionsErrorPage().
*/
* HTML5 definition of id attribute
*
* @param string $id Id to escape
- * @param string|array $options String or array of strings (default is array()):
+ * @param string|array $options String or array of strings (default is []):
* 'noninitial': This is a non-initial fragment of an id, not a full id,
* so don't pay attention if the first character isn't valid at the
* beginning of an id.
# rbc
'rb' => $common,
'rp' => $common,
- 'rt' => $common, # array_merge( $common, array( 'rbspan' ) ),
+ 'rt' => $common, # array_merge( $common, [ 'rbspan' ] ),
'rtc' => $common,
# MathML root element, where used for extensions
*
* @par Example:
* @code
- * $wgRCFeeds['redis'] = array(
+ * $wgRCFeeds['redis'] = [
* 'formatter' => 'JSONRCFeedFormatter',
* 'uri' => "redis://127.0.0.1:6379/rc.$wgDBname",
- * );
+ * ];
* @endcode
*
* @since 1.22
* to $IP
* @param string|null $remoteBasePath Path to use if not provided in module definition. Defaults
* to $wgResourceBasePath
- * @return array Array( localBasePath, remoteBasePath )
+ * @return array [ localBasePath, remoteBasePath ]
*/
public static function extractBasePaths(
$options = [],
* For example, if a page supports subpages "foo", "bar" and "baz" (as in Special:PageName/foo,
* etc.):
*
- * - `prefixSearchSubpages( "ba" )` should return `array( "bar", "baz" )`
- * - `prefixSearchSubpages( "f" )` should return `array( "foo" )`
- * - `prefixSearchSubpages( "z" )` should return `array()`
- * - `prefixSearchSubpages( "" )` should return `array( foo", "bar", "baz" )`
+ * - `prefixSearchSubpages( "ba" )` should return `[ "bar", "baz" ]`
+ * - `prefixSearchSubpages( "f" )` should return `[ "foo" ]`
+ * - `prefixSearchSubpages( "z" )` should return `[]`
+ * - `prefixSearchSubpages( "" )` should return `[ foo", "bar", "baz" ]`
*
* @param string $search Prefix to search for
* @param int $limit Maximum number of results to return (usually 10)
* subpage.
*
* @param string $alias
- * @return array Array( String, String|null ), or array( null, null ) if the page is invalid
+ * @return array [ String, String|null ], or [ null, null ] if the page is invalid
*/
public function resolveAlias( $alias ) {
$bits = explode( '/', $alias, 2 );
* Submit callback for an HTMLForm object
* @param array $data
* @param HTMLForm $form
- * @return array|bool Array(message key, parameters)
+ * @return array|bool [ message key, parameters ]
*/
public static function processUIUnblock( array $data, HTMLForm $form ) {
return self::processUnblock( $data, $form->getContext() );
* @param array $data
* @param IContextSource $context
* @throws ErrorPageError
- * @return array|bool Array( Array( message key, parameters ) ) on failure, True on success
+ * @return array|bool [ [ message key, parameters ] ] on failure, True on success
*/
public static function processUnblock( array $data, IContextSource $context ) {
$performer = $context->getUser();
/**
* Returns $this->getUser()->changeableGroups()
*
- * @return array Array(
- * 'add' => array( addablegroups ),
- * 'remove' => array( removablegroups ),
- * 'add-self' => array( addablegroups to self ),
- * 'remove-self' => array( removable groups from self )
- * )
+ * @return array [
+ * 'add' => [ addablegroups ],
+ * 'remove' => [ removablegroups ],
+ * 'add-self' => [ addablegroups to self ],
+ * 'remove-self' => [ removable groups from self ]
+ * ]
*/
function changeableGroups() {
return $this->getUser()->changeableGroups();
}
// ... and generate the description; which can be a parameterized l10n message
- // in the form array( <msgname>, <parameter>, <parameter>... ) or just a straight
+ // in the form [ <msgname>, <parameter>, <parameter>... ] or just a straight
// up string
if ( isset( $extension['descriptionmsg'] ) ) {
// Localized description of extension
* and 'all', which forces a reset of *all* preferences and overrides everything else.
*
* @param array|string $resetKinds Which kinds of preferences to reset. Defaults to
- * array( 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' )
+ * [ 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' ]
* for backwards-compatibility.
* @param IContextSource|null $context Context source used when $resetKinds
* does not contain 'all', passed to getOptionKinds().
* Returns an array of the groups that a particular group can add/remove.
*
* @param string $group The group to check for whether it can add/remove
- * @return array Array( 'add' => array( addablegroups ),
- * 'remove' => array( removablegroups ),
- * 'add-self' => array( addablegroups to self),
- * 'remove-self' => array( removable groups from self) )
+ * @return array [ 'add' => [ addablegroups ],
+ * 'remove' => [ removablegroups ],
+ * 'add-self' => [ addablegroups to self ],
+ * 'remove-self' => [ removable groups from self ] ]
*/
public static function changeableByGroup( $group ) {
global $wgAddGroups, $wgRemoveGroups, $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
/**
* Returns an array of groups that this user can add and remove
- * @return array Array( 'add' => array( addablegroups ),
- * 'remove' => array( removablegroups ),
- * 'add-self' => array( addablegroups to self),
- * 'remove-self' => array( removable groups from self) )
+ * @return array [ 'add' => [ addablegroups ],
+ * 'remove' => [ removablegroups ],
+ * 'add-self' => [ addablegroups to self ],
+ * 'remove-self' => [ removable groups from self ] ]
*/
public function changeableGroups() {
if ( $this->isAllowed( 'userrights' ) ) {
*
* @since 1.22
* @param string $code Language code
- * @return array Array( fallbacks, site fallbacks )
+ * @return array [ fallbacks, site fallbacks ]
*/
public static function getFallbacksIncludingSiteLanguage( $code ) {
global $wgLanguageCode;
"systemblockedtext": "Вашае імя ўдзельніка ці IP-адрас былі аўтаматычна заблякаваныя MediaWiki.\nЗ наступнай прычыны:\n\n:<em>$2</em>\n\n* Пачатак блякаваньня: $8\n* Сканчэньне блякаваньня: $6\n* Мэта блякаваньня: $7\n\nВаш цяперашні IP-адрас — $3.\nКалі ласка, уключайце ўсе пададзеныя вышэй дэталі ва ўсе запыты, што вы робіце.",
"blockednoreason": "прычына не пазначана",
"blockedtext-composite": "<strong>Вашае імя ўдзельніка ці IP-адрас былі заблякаваныя.</strong>\n\nПададзеная прычына:\n\n:<em>$2</em>.\n\n* Пачатак блякаваньня: $8\n* Сканчэньне найдаўжэйшага з блякаваньняў: $6\n\nВаш цяперашні IP-адрас — $3.\nКалі ласка, дадайце ўсе падрабязнасьці, прыведзеныя вышэй, у запыты, што вы будзеце рабіць.",
+ "blockedtext-composite-reason": "Маецца некалькі блякаваньняў вашага рахунку і/ці IP-адрасу",
"whitelistedittext": "Вам трэба $1, каб рэдагаваць старонкі.",
"confirmedittext": "Вы мусіце пацьвердзіць Ваш адрас электроннай пошты перад рэдагаваньнем старонак. Калі ласка, пазначце і пацьвердзіце адрас электроннай пошты праз Вашы [[Special:Preferences|налады]].",
"nosuchsectiontitle": "Немагчыма знайсьці сэкцыю",
"watcherrortext": "Узьнікла памылка падчас зьмены наладаў вашага сьпісу назіраньня для «$1».",
"enotif_reset": "Пазначыць усе старонкі як прагледжаныя",
"enotif_impersonal_salutation": "Удзельнік {{GRAMMAR:родны|{{SITENAME}}}}",
- "enotif_subject_deleted": "СÑ\82аÑ\80онка {{GRAMMAR:Ñ\80однÑ\8b|{{SITENAME}}}} «$1» бÑ\8bла вÑ\8bдаленаÑ\8f {{GENDER:$2|Ñ\83дзелÑ\8cнÑ\96кам|Ñ\83дзельніцай}} $2",
+ "enotif_subject_deleted": "СÑ\82аÑ\80онка {{GRAMMAR:Ñ\80однÑ\8b|{{SITENAME}}}} «$1» бÑ\8bла вÑ\8bдаленаÑ\8f {{GENDER:$2|Ñ\9eдзелÑ\8cнÑ\96кам|Ñ\9eдзельніцай}} $2",
"enotif_subject_created": "Старонка {{GRAMMAR:родны|{{SITENAME}}}} «$1» была створаная {{GENDER:$2|удзельнікам|удзельніцай}} $2",
"enotif_subject_moved": "Старонка {{GRAMMAR:родны|{{SITENAME}}}} «$1» была перанесеная {{GENDER:$2|удзельнікам|удзельніцай}} $2",
"enotif_subject_restored": "Старонка {{GRAMMAR:родны|{{SITENAME}}}} «$1» была адноўленая {{GENDER:$2|удзельнікам|удзельніцай}} $2",
"tog-norollbackdiff": "Cék-hèng huòi-gūng ī-hâiu ng-sāi hiēng-sê chă-biék",
"tog-useeditwarning": "我編輯頁面其時候離開,起動警告我蜀下",
"tog-prefershttps": "Láuk-diē ī-hâiu tié-lāu sāi ăng-ciòng lièng-giék",
+ "tog-showrollbackconfirmation": "Dók huòi-tó̤i liêng-ciék gì sì-hâiu hiēng-sê káuk-nêng tì-sê",
"underline-always": "直頭",
"underline-never": "頭𡅏無",
"underline-default": "皮膚或者瀏覽器默認其",
"returnto": "轉去$1。",
"tagline": "Chók-cê̤ṳ {{SITENAME}}",
"help": "Bŏng-cô",
+ "help-mediawiki": "MediaWiki gì siók-mìng",
"search": "Sìng-tō̤",
"searchbutton": "Sìng-tō̤",
"go": "去",
"uploadstash-zero-length": "Soubor má nulovou délku.",
"invalid-chunk-offset": "Neplatný posun bloku",
"img-auth-accessdenied": "Přístup odepřen",
- "img-auth-nopathinfo": "Chybí informace o cestě.\nVáš server musí být nastaven tak, aby předával proměnné REQUEST_URI nebo PATH_INFO.\nPokud je, zkuste zapnout $wgUsePathInfo.\nViz https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
+ "img-auth-nopathinfo": "Chybí informace o cestě.\nVáš server musí být nastaven tak, aby předával proměnné REQUEST_URI nebo PATH_INFO.\nPokud je, zkuste zapnout $wgUsePathInfo.\nVizte https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
"img-auth-notindir": "Požadovaná cesta nespadá pod nakonfigurovaný adresář s načtenými soubory.",
"img-auth-badtitle": "Z „$1“ nelze vytvořit platný název stránky.",
"img-auth-nofile": "Soubor „$1“ neexistuje.",
"unusedimages": "Nepoužívané soubory",
"wantedcategories": "Chybějící kategorie",
"wantedpages": "Chybějící stránky",
- "wantedpages-summary": "Seznam neexistujících stránek, na které vede nejvíce odkazů, kromě stránek, na které odkazují jen přesměrování. Pro seznam neexistujících stránek, na které odkazují přesměrování, viz [[{{#special:BrokenRedirects}}|seznam přerušených přesměrování]].",
+ "wantedpages-summary": "Seznam neexistujících stránek, na které vede nejvíce odkazů, kromě stránek, na které odkazují jen přesměrování. Pro seznam neexistujících stránek, na které odkazují přesměrování, vizte [[{{#special:BrokenRedirects}}|seznam přerušených přesměrování]].",
"wantedpages-badtitle": "Výsledky obsahují neplatný název: $1",
"wantedfiles": "Chybějící soubory",
"wantedfiletext-cat": "Následující soubory se používají, ale neexistují. Soubory ze vzdálených úložišť zde mohou být uvedeny, přestože existují. Taková falešná pozitiva budou zobrazena <del>přeškrtnutě</del>. Stránky, které vkládají neexistující soubory, jsou navíc uvedeny v [[:$1]].",
"index-category-desc": "Stránka obsahuje kouzelné slovo <code><nowiki>__INDEX__</nowiki></code> (a je ve jmenném prostoru, ve kterém je tento příznak dovolen), takže je indexována roboty, přestože by normálně nebyla.",
"post-expand-template-inclusion-category-desc": "Stránka je po rozbalení všech šablon větší než <code>$wgMaxArticleSize</code>, takže některé šablony rozbaleny nebyly.",
"post-expand-template-argument-category-desc": "Stránka je po rozbalení argumentu šablony (něco v trojitých závorkách, např. <code>{{{Foo}}}</code>) větší než <code>$wgMaxArticleSize</code>.",
- "expensive-parserfunction-category-desc": "Stránka používá příliš mnoho náročných funkcí syntaktického analyzátoru (jako <code>#ifexist</code>). Viz [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+ "expensive-parserfunction-category-desc": "Stránka používá příliš mnoho náročných funkcí syntaktického analyzátoru (jako <code>#ifexist</code>). Vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
"broken-file-category-desc": "Stránka obsahuje nefunkční odkaz na soubor (odkaz pro vložení souboru, který neexistuje).",
"hidden-category-category-desc": "Kategorie ve svém textu obsahuje <code><nowiki>__HIDDENCAT__</nowiki></code>, což způsobuje, že se na stránkách implicitně nezobrazuje v rámečku odkazů na kategorie.",
"trackingcategories-nodesc": "Popis není k dispozici.",
"blocklog-showsuppresslog": "{{GENDER:$1|Tento uživatel byl zablokován a skryt|Tato uživatelka byla zablokována a skryta}}. Zde je pro přehled zobrazen výpis záznamu utajení:",
"blocklogentry": "blokuje „[[$1]]“ s časem vypršení $2 $3",
"reblock-logentry": "mění nastavení bloku „[[$1]]“ s časem vypršení $2 $3",
- "blocklogtext": "Toto je kniha úkonů blokování a odblokování uživatelů.\nAutomaticky blokované IP adresy nejsou vypsány.\nViz též [[Special:BlockList|seznam všech probíhajících bloků]].",
+ "blocklogtext": "Toto je kniha úkonů blokování a odblokování uživatelů.\nAutomaticky blokované IP adresy nejsou vypsány.\nVizte též [[Special:BlockList|seznam všech probíhajících bloků]].",
"unblocklogentry": "odblokovává „$1“",
"block-log-flags-anononly": "pouze anonymní uživatelé",
"block-log-flags-nocreate": "vytváření účtů zablokováno",
"mw-widgets-abandonedit-title": "¿Seguro?",
"mw-widgets-copytextlayout-copy": "Copiar",
"mw-widgets-copytextlayout-copy-fail": "No se pudo copiar en el portapapeles.",
- "mw-widgets-copytextlayout-copy-success": "Copiado en el portapapeles",
+ "mw-widgets-copytextlayout-copy-success": "Copiado en el portapapeles.",
"mw-widgets-dateinput-no-date": "Ninguna fecha seleccionada",
"mw-widgets-dateinput-placeholder-day": "AAAA-MM-DD",
"mw-widgets-dateinput-placeholder-month": "AAAA-MM",
"prevn": "նախորդ {{PLURAL:$1|$1}}",
"nextn": "յաջորդ {{PLURAL:$1|$1}}",
"prev-page": "նախորդ էջ",
- "next-page": "յաջորդ էջ",
+ "next-page": "յաջորդ էջը",
"prevn-title": "Նախորդ $1 {{PLURAL:$1|արդիւնքը|արդիւնքները}}",
"nextn-title": "Յաջորդ $1 {{PLURAL:$1|արդիւնքը|արդիւնքները}}",
"shown-title": "Իւրաքանչիւր էջի վրայ ցուցնել $1 {{PLURAL:$1|արդիւնք|արդիւնքներ}}",
"search-external": "Արտաքին որոնում",
"preferences": "Նախընտրութիւններ",
"mypreferences": "Նախընտրութիւններ",
- "skin-preview": "Նախադիտել",
+ "skin-preview": "Կանխաստուգել",
"prefs-watchlist": "Հսկողութեան ցանկ",
"prefs-editwatchlist-clear": "Մաքրել հսկողութեան ցանկը",
"saveprefs": "Յիշել",
"prefs-info": "Հիմնական տուեալներ",
"prefs-signature": "Ստորագրութիւն",
"prefs-editor": "Խմբագրող",
- "prefs-preview": "Նախադիտել",
+ "prefs-preview": "Կանխաստուգել",
"group": "Խումբ.",
"group-bot": "Մեքենայիկներ",
"group-sysop": "Վարիչներ",
"all-logs-page": "Բոլոր հանրային տեղեկատետրերը",
"alllogstext": "{{SITENAME}} կայքի տեղեկատետրերու միացեալ ցանկ։\nԿրնաք արդիւնքները սահմանափակել ըստ տեղեկատետրի տեսակին, մասնակիցի անունին կամ համապատասխան էջին։",
"logempty": "Համապատասխան տարրեր չկան տեղեկատետերին մէջ։",
+ "checkbox-none": "Ոչ մէկ",
"allpages": "Բոլոր էջերը",
"allarticles": "Բոլոր էջերը",
"allpagessubmit": "Յառաջանալ",
"logentry-newusers-autocreate": "$1 մասնակցային հաշիւը {{GENDER:$2|ստեղծուած է}} ինքնաբերաբար",
"logentry-upload-upload": "$1 {{GENDER:$2|ներբեռնուած է}} $3",
"logentry-upload-overwrite": "$1 {{GENDER:$2|վերբեռնեց}} $3ի նոր տարբերակ",
+ "rightsnone": "(ոչ մէկ)",
"feedback-cancel": "Չեղարկել",
"searchsuggest-search": "Որոնել {{SITENAME}} կայքին մէջ",
"duration-days": "$1 {{PLURAL:$1|օր}}",
+ "expand_templates_preview": "Կանխաստուգել",
"special-characters-group-latin": "Լատիներէն",
"special-characters-group-arabic": "Արաբերէն",
"randomrootpage": "Պատահական արմատ էջ"
"upload-description": "ဖိုင်ဖော်ပြချက်",
"upload-options": "ဖိုင်တင်သည့် ရွေးချယ်မှုများ",
"watchthisupload": "ဤဖိုင်အား စောင့်ကြည့်ရန်",
+ "upload-proto-error": "မမှန်ကန်သော လုပ်နည်းလုပ်ထုံး",
"upload-file-error": "အတွင်းပိုင်းအမှား",
"upload-misc-error": "upload တင်ရာတွင် အမည်မသိ အမှား",
"upload-dialog-title": "ဖိုင်တင်ရန်",
"emailccme": "ကျွန်ုပ်ပို့လိုက်သော အီးမေးကော်ပီကို ကျွန်ုပ်ထံ ပြန်ပို့ပါ။",
"emailsent": "အီးမေးပို့လိုက်ပြီ",
"emailsenttext": "သင့်အီးမေးမက်ဆေ့ကို ပို့လိုက်ပြီးပြီ ဖြစ်သည်။",
+ "usermessage-summary": "စနစ်စာတို ချန်ထားခြင်း။",
"usermessage-editor": "စနစ်မက်ဆင်ဂျာ",
"watchlist": "စောင့်ကြည့်စာရင်း",
"mywatchlist": "စောင့်ကြည့်စာရင်း",
"blocklist-userblocks": "အကောင့်ပိတ်ပင်မှုများ ဝှက်",
"blocklist-tempblocks": "ယာယီပိတ်ပင်မှုများ ဝှက်",
"blocklist-addressblocks": "အိုင်ပီတစ်ခုတည်းပိတ်ပင်မှု ဝှက်",
+ "blocklist-type": "အမျိုးအစား:",
"blocklist-type-opt-all": "အားလုံး",
"blocklist-type-opt-partial": "တစ်စိတ်တစ်ပိုင်း",
"blocklist-rangeblocks": "အကွာအဝေးလိုက် ပိတ်ပင်မှုများ ဝှက်",
"printableversion": "ߓߐߞߏߣߊ߲߫ ߜߌ߬ߙߌ߲߬ߘߌ߬ߕߊ",
"permalink": "ߛߘߌ߬ߜߋ߲߬ ߓߟߏߕߍ߰ߓߊߟߌ",
"print": "ߜߌ߬ߙߌ߲߬ߘߌ߬ߟߌ",
- "view": "ß\8a߬ ß\98ß\90ß\9eß\8a߬ß\99ß\8a߲߬",
+ "view": "ߦß\8c߬ß\98ß\8a߬ß\9fß\8c",
"view-foreign": "ߊ߬ ߦߋ߫ ߦߊ߲߬ $1",
"edit": "ߊ߬ ߢߟߊߞߎߘߦߊ߫",
"edit-local": "ߕߌ߲߬ߞߎߘߎ߲ ߞߊ߲߬ߛߓߍߟߌ ߡߊߦߟߍ߬ߡߊ߲߫",
"botpasswords-no-central-id": "ߖߐ߲߬ߛߊ߫ ߌ ߘߌ߫ ߓߏߕ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߠߊߓߊ߯ߙߊ߫߸ ߌ ߞߊ߫ ߞߊ߲߫ ߞߊ߬ ߜߊ߲߬ߞߎ߲߬ߠߌ߲߬ ߕߊ߲ߓߊ߲ߓߐߣߍ߲ ߞߍ߫.",
"botpasswords-existing": "ߕߋ߲߭ߕߋ߲߭ ߓߏߕ ߕߊ߬ߡߌ߲߬ߞߊ߲",
"botpasswords-createnew": "ߓߏߕ ߕߊ߬ߡߌ߲߬ߞߊ߲߬ ߞߎߘߊ߫ ߛߌ߲ߘߌ߫",
+ "botpasswords-editexisting": "ߓߏߕ ߕߋ߲߬ߕߋ߲߬ ߕߊߡߌ߲ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬",
"botpasswords-label-needsreset": "(ߕߊ߬ߡߌ߲߬ߞߊ߲ ߤߊ߬ߕߊ߬ߦߋ߬ߣߍ߲߫ ߡߝߊ߬ߟߋ߲߬ߠߌ߲ ߠߊ߫)",
"botpasswords-label-appid": "ߓߏߕ ߕߐ߮:",
"botpasswords-label-create": "ߊ߬ ߛߌ߲ߘߌ߫",
"botpasswords-label-cancel": "ߊ߬ ߘߐߛߊ߬",
"botpasswords-label-delete": "ߊ߬ ߖߏ߬ߛߌ߬",
"botpasswords-label-resetpassword": "ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬",
+ "botpasswords-label-grants-column": "ߘߌ߬ߢߍ߬ ߓߘߊ߫ ߞߍ߫",
"botpasswords-bad-appid": "ߓߏߕ ߕߐ߮ \"$1\" ߓߍ߲߬ ߣߍ߲߬ ߕߍ߫.",
"botpasswords-insert-failed": "ߓߏߕ ߕߐ߮ ߟߊߘߏ߲߬ߠߌ߲ ߓߘߊ߫ ߗߌߙߏ߲߫ \"$1\" ߊ߬ ߕߎ߲߬ ߓߘߊ߫ ߟߊߘߏ߲߭ ߠߋ߬ ߓߊ߬؟",
"botpasswords-update-failed": "ߓߏߕ ߕߐ߮ ߟߏ߲ߘߐߦߊߟߌ ߓߘߊ߫ ߗߌߙߏ߲߫ \"$1\" ߊ߬ ߓߘߊ߫ ߖߏ߬ߛߌ߫ ߟߋ߬ ߓߊ߬؟",
"userrights-expiry-existing": "ߕߋ߲߭ߕߋ߲߭ ߛߕߊߝߊ߫ ߕߎߡߊ: $3߸ $2",
"userrights-expiry-othertime": "ߕߎ߬ߡߊ߬ ߜߘߍ:",
"userrights-expiry-options": "ߕߟߋ߬ ߁: ߕߟߋ߬ ߁߸ ߞߎ߲߬ߢߐ߰ ߁: ߞߎ߲߬ߢߐ߰ ߁߸ ߞߊߙߏ߫ ߁: ߞߊߙߏ߫ ߁߸ ߞߊߙߏ߫ ߃: ߞߊߙߏ߫ ߃߸ ߞߊߙߏ߫ ߆: ߞߊߙߏ߫ ߆߸ ߛߊ߲߬ ߁: ߛߊ߲߬ ߁",
+ "group": "ߞߙߎ:",
+ "group-user": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ",
+ "group-autoconfirmed": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߬ ߞߍߒߖߘߍߦߋ߫ ߟߊߛߙߋߦߊߣߍ߲",
"group-bot": "ߓߏߕ",
"group-sysop": "ߞߎ߲߬ߠߊ߬ߛߌ߰ߟߊ",
+ "group-all": "(ߊ߬ ߓߍ߯)",
+ "group-user-member": "{{GENDER:$1|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ}}",
+ "grouppage-user": "{{ns:project}}: ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ",
"grouppage-bot": "{{ns:project}}:ߓߏߕ",
"grouppage-sysop": "{{ns:project}}:ߡߊ߬ߡߙߊ߬ߟߌ߬ߟߊ",
+ "right-read": "ߞߐߜߍ ߘߐߞߊ߬ߙߊ߲߬",
+ "right-edit": "ߞߐߜߍ ߡߊߦߟߍ߬ߡߊ߲߫",
+ "right-createpage": "ߞߐߜߍ ߘߏ߫ ߛߌ߲ߘߌ߫ (ߡߍ߲ ߕߍ߫ ߓߊ߬ߘߏ߬ߓߊ߬ߘߌ߬ߦߊ߬ ߞߐߜߍ ߝߋ߲߫ ߘߌ߫)",
+ "right-createtalk": "ߓߊ߬ߘߏ߬ߓߊ߬ߘߌ߬ߦߊ߬ ߞߐߜߍ ߛߌ߲ߘߌ߫",
+ "right-createaccount": "ߖߊ߬ߕߋ߬ߘߊ߬ ߟߊߓߊ߯ߙߕߊ߫ ߞߎߘߊ߫ ߛߌ߲ߘߌ߫",
"right-writeapi": "ߛߓߍߟߌ API ߟߊߓߊ߯ߙߊ߫",
"newuserlogpage": "ߖߊ߬ߕߋ߬ߘߊ߬ ߓߘߊ߫ ߟߊߞߊ߬ ߌ ߜߊ߲߬ߞߎ߲߬",
"rightslog": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߜߊ߲߬ߞߎ߲߬ ߢߊ߬ ߓߘߍ",
"filehist-user": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ",
"filehist-dimensions": "ߛߎߡߊ߲ߘߐ",
"filehist-comment": "ߞߊ߲߬ߝߐߟߌ",
- "imagelinks": "ߞߐߕߐ߮ ߟߊߓߊ߯ߙߊ",
+ "imagelinks": "ߞߐߕߐ߮ ߟߊߓߊ߯ߙߊߟߌ",
"linkstoimage": "ߞߐߕߐ߮ ߣߌ߲߬ {{PLURAL:$1|ߞߐߜߍ ߟߎ߬|$1 ߞߐߜߍ ߟߎ߬}}:",
"linkstoimage-more": "ߞߐߕߐ߮ ߣߌ߲߬ $1 {{PLURAL:$1|page uses|pages use}} ߠߊߓߊ߯ߙߊߓߊ߮ ߞߊߛߌߦߊ߫.\nߛߙߍߘߍ ߢߌ߲߬ ߠߎ߬ ߦߋ߫ {{PLURAL:$1|first page|first $1 pages}} ߞߐߕߐ߮ ߣߌ߲߬ ߞߋߟߋ߲߫ ߠߊߓߊ߯ߙߊߓߊ߮ ߟߎ߬ ߛߙߍߘߍ ߟߋ߬ ߦߌ߬ߘߊ߬ ߟߊ߫.\nߛߘߌ߬ߜߋ߲߬ [[Special:WhatLinksHere/$2|full list]] ߓߟߏߡߊߞߊ߬ߣߍ߲ ߦߋ߫ ߦߋ߲߬.",
"nolinkstoimage": " ߞߐߜߍ߫ ߛߌ߫ ߡߊ߫ ߞߐߕߐ߮ ߣߌ߲߬ ߠߊߓߊ߯ߙߊ߫ ߡߎߣߎ߲߬",
"virus-scanfailed": "condrolle fallite (codece $1)",
"virus-unknownscanner": "antivirus scanusciute:",
"logouttext": "'''Tu tè scollegate.'''\n\nNote Bbuene ca certe pàggene ponne condinuà a essere viste cumme ce tu ste angore collegate, fine a quanne a cache d'u browser no se sdevache.",
+ "logout-failed": "Non ge puè assè mò: $1",
"cannotlogoutnow-title": "Non ge puè assè mò",
"cannotlogoutnow-text": "Non ge puè assè quanne ste ause $1.",
"welcomeuser": "Bovègne, $1!",
"action-changetags": "Aggiunge e live arbitrariamende tag sus a le revisiune individuale e vôsce de l'archivije",
"action-deletechangetags": "scangille le tag da 'u database",
"action-purge": "aggiorne sta pàgene",
+ "action-editinterface": "cange l'inderfacce utende",
+ "action-editusercss": "cange 'u CSS de l'otre utinde",
+ "action-edituserjson": "cange 'u JSON de l'otre utinde",
+ "action-edituserjs": "cange 'u JavaScript de l'otre utinde",
+ "action-editsitecss": "cange 'u CSS d'u site",
+ "action-editsitejson": "cange 'u JSON d'u site",
+ "action-editsitejs": "cange 'u JavaScript d'u site",
+ "action-editmyusercss": "cange le file tune de CSS",
+ "action-editmyuserjson": "cange le file tune de JSON",
+ "action-editmyuserjs": "cange le file tune de JavaScript",
+ "action-viewsuppressed": "'ndruche le revisiune scunnute da tutte le utinde",
+ "action-hideuser": "bluecche 'nu cunde utende, scunnènnele da 'u pubbliche",
+ "action-ipblock-exempt": "zumbe le blocche de l'IP, auto blocche e le blocche a indervalle",
+ "action-unblockself": "sbluecche da sule",
+ "action-noratelimit": "non g'à state tuccate da le limite de le pundegge",
+ "action-reupload-own": "sovrascrive 'nu file esistende carichete da quacchedune",
+ "action-nominornewtalk": "no scè ausanne le cangiaminde stuèdeche jndr'à le pàggene de le 'ngazzaminde quanne lasse messagge nuève",
+ "action-markbotedits": "marche le cangiaminde annullate cumme cangiaminde de bot",
+ "action-patrolmarks": "'ndruche le cangiaminde recende marcate cumme a condrollate",
+ "action-override-export-depth": "l'esportazione de pàggene inglude pàggene collegate 'mbonde a 'na profonnetà de 5",
+ "action-suppressredirect": "no scè ccrejanne 'nu ridirezionamende da 'u nome vecchije quanne spueste 'na pàgene",
"nchanges": "$1 {{PLURAL:$1|cangiaminde|cangiaminde}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|da l'urtema visite}}",
"enhancedrc-history": "cunde",
"autoblockedtext": "Ваш IP-адрес автоматически заблокирован в связи с тем, что он ранее использовался кем-то из участников, заблокированных администратором $1. \nБыла указана следующая причина блокировки:\n\n: «$2».\n\n* Начало блокировки: $8\n* Окончание блокировки: $6\n* Цель блокировки: $7\n\nВы можете связаться с $1 или любым другим [[{{MediaWiki:Grouppage-sysop}}|администратором]], чтобы обсудить блокировку.\n\nОбратите внимание, что вы не сможете использовать функцию «{{int:emailuser}}», если в своих [[Special:Preferences|персональных настройках]] не задали или не подтвердили корректный адрес электронной почты, или если ваша блокировка включает запрет отправки писем подобным образом.\n\nВаш IP-адрес — $3, идентификатор блокировки — #$5.\nПожалуйста, указывайте эти сведения в любых своих обращениях.",
"systemblockedtext": "Ваше имя участника или IP-адрес были автоматически заблокированы MediaWiki.\nУказана следующая причина:\n\n:<em>$2</em>\n\n* Начало блокировки: $8\n* Окончание блокировки: $6\n* Цель блокировки: $7\n\nВаш текущий IP-адрес $3.\nПожалуйста, указывайте все эти сведения в любых своих обращениях.",
"blockednoreason": "причина не указана",
+ "blockedtext-composite": "<strong>Ваше имя участника или IP-адрес были заблокированы.</strong>\nУказана следующая причина:\n\n:<em>$2</em>\n\n* Начало блокировки: $8\n* Окончание блокировки: $6\n\nВаш текущий IP-адрес $3.\nПожалуйста, указывайте все эти сведения в любых своих обращениях.",
+ "blockedtext-composite-reason": "Есть несколько блокировок вашей учётной записи и/или IP-адреса",
"whitelistedittext": "Вы должны $1 для изменения страниц.",
"confirmedittext": "Вы должны подтвердить свой адрес электронной почты перед правкой страниц.\nПожалуйста, введите и подтвердите свой адрес электронной почты в своих [[Special:Preferences|персональных настройках]].",
"nosuchsectiontitle": "Невозможно найти раздел",
"tog-numberheadings": "Numarazioni otomàtigga di li tìturi di sezzioni",
"tog-editondblclick": "Mudìfigga di li pàgini attrabessu dóppiu clic",
"tog-editsectiononrightclick": "Mudìfigga di li sezzioni attrabessu lu clic dresthu i' lu tìturu",
- "tog-watchcreations": "Aggiungi li pàgini criaddi a l'abbaidaddi ippiziari",
- "tog-watchdefault": "Aggiungi li pàgini mudìfiggaddi a l'abbaidaddi ippiziari",
- "tog-watchmoves": "Aggiungi li pàgini ippusthaddi a l'abbaidaddi ippiziari",
- "tog-watchdeletion": "Aggiungi li pàgini canzilladdi a l'abbaidaddi ippiziari",
+ "tog-watchcreations": "Aggiungi li pàgini criaddi e l'archìbii carriggaddi da me a l'abbaiddaddi ippiziari.",
+ "tog-watchdefault": "Aggiungi li pàgini e l'archìbii mudifiggaddi da me a l'abbaiddaddi ippiziari.",
+ "tog-watchmoves": "Aggiungi li pàgini e li schedarii ippusthaddi da me a l'abbaiddaddi ippiziari.",
+ "tog-watchdeletion": "Aggiungi li pàgini e li schedarii chi àggiu canzilladdu a l'abbaiddaddi ippiziari.",
+ "tog-watchuploads": "Aggiugnì nobi archìbii chi carriggu a l'abbaiddaddi ippiziari méi",
"tog-minordefault": "Indica tutti li mudìfigghi cumenti 'minori' in otomàtiggu",
"tog-previewontop": "Musthra l'antiprimma sobra la casella di mudìfigga",
"tog-previewonfirst": "Musthra l'antiprimma pa la primma mudìfigga",
- "tog-enotifwatchlistpages": "Signàrami pa postha erettrònica li mudìfigghi a li pàgini abbaidaddi",
+ "tog-enotifwatchlistpages": "Signàrami pa postha erettrònica li mudìfigghi a li pàgini o schedarii abbaiddaddi.",
"tog-enotifusertalkpages": "Signàrami pa postha erettrònica li mudìfigghi a la me' pàgina di dischussioni",
- "tog-enotifminoredits": "Signàrami pa postha erettrònica puru li mudìfigghi minori",
+ "tog-enotifminoredits": "Signàrami pa postha erettrònica puru li mudìfigghi minori.",
"tog-enotifrevealaddr": "Rivera lu me' indirizzu di postha erettrònica i' l'imbasciaddi d'avvisu",
"tog-shownumberswatching": "Musthra lu nùmaru d'utenti ch'àni la pàgina abbaidadda",
- "tog-oldsig": "Fimma esisthenti",
+ "tog-oldsig": "Fimma esisthenti.",
"tog-fancysig": "Interpreta i cumandi wiki i' la fimma (chena cullegaumentu otomatiggu)",
- "tog-uselivepreview": "Attiba la funzioni ''Live preview'' (dumanda JavaScript; ippirimintari)",
+ "tog-uselivepreview": "Attiba la funzioni ''Live preview''. (dumanda JavaScript; ippirimintari)",
"tog-forceeditsummary": "Dumanda cunfèimma si l'oggettu di la mudìfigga è bioddu",
"tog-watchlisthideown": "Cua li me' mudìfigghi i' l'abbaidaddi ippiziari",
"tog-watchlisthidebots": "Cua li mudìfigghi di li bot i' l'abbaidaddi ippiziari",
"tog-watchlisthideminor": "Cua li mudìfigghi minori i' l'abbaidaddi ippiziari",
+ "tog-watchlisthideliu": "Cuà mudìfigghi da utenti intraddi di la listha di pàgini sottu osseivvazioni",
+ "tog-watchlistreloadautomatically": "Sempri turrà a carriggà la listha di li pàgini sottu osseivvazioni candu un filthru è ciambaddu (dumanda JavaScript)",
"tog-ccmeonemails": "Inviammi una còpia di l'imbasciaddi ippididdi a l'althri utenti",
"tog-diffonly": "No visuarizzà lu cuntinuddu di la pàgina daboi lu cunfrontu tra versioni",
"tog-showhiddencats": "Musthrà li categuri cuaddi",
"nchanges": "$1 {{PLURAL:$1|izmjena|izmjene|izmjena}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmjena od Vaše posljedne posjete}}",
"enhancedrc-history": "historija",
- "recentchanges": "Nedavne izmjene / Скорашње измене",
+ "recentchanges": "Nedavne promjene / Недавне промене",
"recentchanges-legend": "Postavke za Nedavne promjene",
"recentchanges-summary": "Na ovoj stranici možete pratiti nedavne izmjene.",
"recentchanges-noresult": "Bez promjena tokom cijelog perioda koji ispunjava ove kriterije.",
"blockedtext-partial": "<strong>Vaše uporabniško ime ali IP-naslov je bil blokiran pred spreminjanjem te strani. Še vedno lahko urejate druge strani na tem wikiju.</strong> Polne podrobnosti blokade si lahko ogledate na [[Special:MyContributions|prispevkih računa]].\n\nBlokado je opravil(-a) $1.\n\nPodani razlog je <em>$2</em>.\n\n* Začetek blokade: $8\n* Potek blokade: $6\n* Blokirani uporabnik: $7\n* ID blokade #$5",
"blockedtext": "<strong>Urejanje z vašim uporabniškim imenom oziroma IP-naslovom je onemogočeno.</strong>\n\nBlokiral vas je $1.\nPodani razlog je <em>$2</em>.\n\n* Začetek blokade: $8\n* Potek blokade: $6\n* Blokirani uporabnik: $7\n\nO blokiranju se lahko pogovorite z uporabnikom/-co $1 ali katerim drugim [[{{MediaWiki:Grouppage-sysop}}|administratorjem]].\nVedite, da lahko ukaz »{{int:emailuser}}« uporabite le, če ste v [[Special:Preferences|nastavitvah]] vpisali in potrdili svoj elektronski naslov in ta ni blokiran.\nVaš IP-naslov je $3, številka blokade pa #$5.\nProsimo, vključite ju v vse morebitne poizvedbe.",
"autoblockedtext": "Vaš IP-naslov je bil samodejno blokiran, saj je bil uporabljen s strani drugega uporabnika, ki ga je blokiral $1.\nRazlog za to je bil naslednji:\n\n:<em>$2</em>\n\n* Začetek blokade: $8\n* Konec blokade: $6\n* Blokirani uporabnik: $7\n\nKontaktirate lahko $1 ali katerega od drugih [[{{MediaWiki:Grouppage-sysop}}|administratorjev]], da razpravljate o blokadi.\n\nVedite, da lahko funkcijo »{{int:emailuser}}« uporabljate le, če ste v svoje [[Special:Preferences|uporabniške nastavitve]] vnesli veljaven e-poštni naslov, in vam njena uporaba ni bila preprečena.\n\nVaš trenutni IP-naslov je $3, ID blokiranja pa #$5. Prosimo, vključite ta ID v vsako zastavljeno vprašanje.",
- "systemblockedtext": "Vaše uporabniško ime ali IP-naslov je MediaWiki samodejn blokiral.\nPodani razlog je:\n\n:<em>$2</em>\n\n* Začetek blokade: $8\n* Potek blokade: $6\n* Blokirani uporabnik: $7\n\nVaš trenutni IP-naslov je $3.\nProsimo, da v svoje poizvedbe vključite vse zgornje podatke.",
+ "systemblockedtext": "Vaše uporabniško ime ali IP-naslov je MediaWiki samodejno blokiral.\nPodani razlog je:\n\n:<em>$2</em>\n\n* Začetek blokade: $8\n* Potek blokade: $6\n* Blokirani uporabnik: $7\n\nVaš trenutni IP-naslov je $3.\nProsimo, da v svoje poizvedbe vključite vse zgornje podatke.",
"blockednoreason": "razlog ni podan",
+ "blockedtext-composite": "<strong>Vaše uporabniško ime ali IP-naslov je bil blokiran.</strong>\n\nPodani razlog je:\n\n:<em>$2</em>\n\n* Začetek blokade: $8\n* Potek najdaljše blokade: $6\n\nVaš trenutni IP-naslov je $3.\nProsimo, da v svoje poizvedbe vključite vse zgornje podatke.",
+ "blockedtext-composite-reason": "Za vaš račun in/ali IP-naslov je nastavljenih več blokad.",
"whitelistedittext": "Za urejanje strani se morate $1.",
"confirmedittext": "Pred urejanjem strani morate potrditi svoj e-poštni naslov.\nProsimo, da ga z uporabo [[Special:Preferences|uporabniških nastavitev]] vpišete in potrdite.",
"nosuchsectiontitle": "Ne najdem razdelka",
"undelete-revision": "Revision scancelà de la pagina $1 (inserìa su $4 el $5) de $3:",
"undeleterevision-missing": "Revision mìa valida o mancante. O el colegamento no'l xe mìa giusto, opure la revision la xe stà zà ripristinà o eliminà da l'archivio.",
"undelete-nodiff": "No xe stà catà nissuna revision precedente.",
- "undeletebtn": "RIPRISTINA!",
+ "undeletebtn": "Ripristina",
"undeletelink": "varda/ripristina",
"undeleteviewlink": "varda",
"undeleteinvert": "Inverti selession",
"returnto": "Padà sí $1.",
"tagline": "Lát'ọwọ́ {{SITENAME}}",
"help": "Ìrànlọ́wọ́",
+ "help-mediawiki": "Ìrànwọ́ nípa MediaWiki",
"search": "Àwárí",
+ "search-ignored-headings": "#<!-- fi ìlà yìí sílẹ̀ bó ṣe wà --> <pre>\n# Àwọn àkọlé tí ìwárí kò ní kọbiara sí.\n# Àwọn àtúnṣe tuntun yíò hàn láìpẹ́ lẹ́yìn tí àkọlé bá ti jẹ́ títòjọ.\n# Ẹ ṣe itúntòjọ ojúewé pẹ̀lu àtúnṣe agbòfo.\n# Bí ìlàkọ rẹ̀ yíò ṣe rí nìyí:\n# * Ohun gbogbo láti àmì-lẹ́tà \"#\" títí dé òpin oríìlà jẹ́ àròyé. \n# * Gbogbo oríilà aláìlófo jẹ́ àkọlé gangan tí kò ní kọbiara sí, lẹ́tà gbàngbà àti ohun gbogbo.\nÌtọ́kasí\nÀwọn ìjápọ̀ òde\nẸ tun wo\n#</pre> <!-- fi ìlà yìí sílẹ̀ bó ṣe wà -->",
"searchbutton": "Àwárí",
"go": "Rìnsó",
"searcharticle": "Lọ",
"laggedslavemode": "'''Ìkìlọ̀:''' Ojúewé náà le mọ́ nìí àwọn àtúnṣe tuntun.",
"readonly": "Títìpa ibùdó dátà",
"enterlockreason": "Ẹ ṣàlàyé ìtìpa náà, àti ìgbàtí ẹ rò pé ìtìpa náà yíò kúrò.",
- "readonlytext": "Ibùdó dátà jẹ́ títìpa sí àwọn ìkówọlé tuntun àti sí àwọn àtúnṣe míràn, bóyá fún ìtọ́jú ibùdó dátà gbogbo ìgbà, lẹ́yìn èyí yíò padà sí ní ṣiṣẹ́.\n\nOlùmójútó tó tìípa ṣe àlàyé yìí: $1",
+ "readonlytext": "Ibùdó dátà tijẹ́ títìpa lásìkò yìí sí àwọn ìkówọlé tuntun àti sí àwọn àtúnṣe míràn, bóyá fún ìṣètọ́jú ibùdó dátà gbogbo ìgbà, lẹ́yìn èyí yíò padà sí ní ṣiṣẹ́.\n\nOlùmójútó tó tìípa ṣe àlàyé yìí: $1",
"missing-article": "Ibùdó dátà kò rí ìkọ̀wé fún ojúewé kan tóyẹ kí ó rí, pẹ̀lú orúkọ \"$1\" $2.\n\nOhun tó ún fa èyí ní ìtẹ̀lé ìjapọ̀ \"ìyàtọ́\" tótipẹ́ tàbí ìjápọ̀ ìtàn ojúewé tí a ti parẹ́.\n\nTí kì bá ṣe bẹ́ẹ̀, ó lè jẹ́ pé ẹ ti rí àsìṣe nínú atòlànà kọ̀mpútà náà.\nẸjọ̀wọ́ ẹ fi èyí tó [[Special:ListUsers/sysop|alámùójútó]] kan létí, kí ẹ sí mọ́ gbàgbé láti fúun ní URL ọ̀hún.",
"missingarticle-rev": "(àtúnyẹ̀wò#: $1)",
"missingarticle-diff": "(Ìyàtọ̀: $1, $2)",
"badarticleerror": "Ìgbéṣẹ̀ yìí kò ṣe é ṣe lórí ojúewé yìí.",
"cannotdelete": "Ojúewé tàbí fáìlì \"$1\" kò ṣe é parẹ́.\nOníṣe mìíràn le ti paárẹ́.",
"cannotdelete-title": "Kò le pa ojúewè \"$1\" rẹ́",
+ "delete-scheduled": "Ojúewé \"$1\" ti jẹ́ pípètò fún ìparẹ́.\nẸ jọ̀wọ́ ẹ mú sùúrù.",
"delete-hook-aborted": "Hook ti ṣe ìdádúró ìparẹ́.\nKò ṣe àlàyé kankan.",
+ "no-null-revision": "Àtùnyẹ́wò agbòfo fún ojúewé \"$1\" kò ṣe é dásílẹ̀",
"badtitle": "Àkọ́lé búburú",
"badtitletext": "Àkọlé ojúewé tí ẹ bèrè fún kò ní ìbáramu, jẹ́ òfo, tàbí áṣìṣe wà nínú ìjápọ̀ àkọlé láàrin èdè tàbí láàrin wiki.\nÓ ṣe é ṣe kó jẹ́pé ó ní ìkan tàbí ọ̀pọ̀ àmi-lẹ́tà tí kò ṣe é lò nínú àkọlé.",
+ "title-invalid-empty": "Àkọlé ojúewé ajẹ́títọrọ ní òfo tàbí ó ní orúkọ fún orúkọàyè nìkàn.",
+ "title-invalid-utf8": "Àkọlé ojúewé ajẹ́títọrọ ní ìtèléùntèlé UTF-8 tí kò yẹ.",
+ "title-invalid-interwiki": "Àkọlé ojúewé ajẹ́títọrọ ní ìjápọ̀ interwiki tí kò ṣe é lò nìnú àkọlé.",
+ "title-invalid-talk-namespace": "Àkọlé ojúewé ajẹ́títọrọ tọ́ka sí ojúewé ọ̀rọ̀ tí kò sí.",
+ "title-invalid-characters": "Àkọlé ojúewé ajẹ́títọrọ ní àwọn àmì-lẹ́tà tí kò yẹ: \"$1\".",
"perfcached": "Ìwònyí jẹ́ dátà láti inú cache nítoríẹ̀ ó le mọ́ jẹ̀ẹ́ tuntun. Ó pọ̀jùlọ {{PLURAL:$1|èsì kan|èsì $1}} wà nínú cache.",
"perfcachedts": "Ìwònyí jẹ́ dátà láti inú cache, ọjọ́ tí a ṣe àtúnṣe rẹ̀ gbẹ̀yìn ni $1. Ó pọ̀jùlọ {{PLURAL:$4|èsì kan|èsì $4}} wà nínú cache.",
"querypage-no-updates": "Àtúnṣe sí ojúewé yìí kò ṣe é ṣe lọ́wọ́lọ́wọ́.\nÀwọn ìpèsè tuntun kò ní hàn báyìí ná.",
"sig_tip": "Ìtọwọ́bọ̀wé yín pẹ̀lú àsìkò àti déètì",
"hr_tip": "Ìlà gbọlọjọ (ẹ lọ̀ọ́ pẹ̀lú àkíyèsì)",
"summary": "Àkótán:",
- "subject": "Orí ọ̀rọ̀/àkọlé:",
+ "subject": "Ìdálé-ọ̀rọ̀:",
"minoredit": "Àtúnṣe kékeré nìyí",
"watchthis": "M'ójútó ojúewé yìí",
"savearticle": "Ìdásí ojúewé",
+ "savechanges": "Ìfipamọ́ àtúnṣe",
"publishpage": "Ṣàtẹ̀jáde ojú ewé",
"publishchanges": "Ṣàtẹ̀jáde àtúnṣe",
+ "savearticle-start": "Ìfipamọ́ ojúewé...",
+ "savechanges-start": "Ìfipamọ́ àtúnṣe...",
+ "publishpage-start": "Ìtẹ̀jáde àtúnṣe...",
+ "publishchanges-start": "Ìtẹ̀jáde àtúnṣe...",
"preview": "Àyẹ̀wò",
"showpreview": "Àkọ́yẹ̀wò",
"showdiff": "Ìfihàn àwọn àtúnṣe",
+ "blankarticle": "<strong>Ìkìlọ̀:</strong> Ojúewé tí ẹ̀ úndá kò ní ùnkankan nínú.\nTí ẹ bá tún tẹ klik \"$1\", ojúewé náà yíò jẹ́dídá sílẹ̀ láì ní ùnkankan nínú.",
"anoneditwarning": "<strong>Ìkìlọ̀:</strong> Ẹ kò tíì wọlé.\nÀdírẹ́ẹ̀sì IP yín yíò hàn jáde tí ẹ bá ṣe àtùnṣe. Tí ẹ bá <strong>[$1 wọlé]</strong> tàbí <strong>[$2 dá àkópamọ́]</strong>, àwọn àtúnṣe yín yíò hàn pẹ̀lú orúkọ-oníṣe yín, pẹ̀lú àwọn ànfàní míràn.",
"anonpreviewwarning": "''Ẹ kò tíì wọlé. Àdírẹ́ẹ̀sì IP yín yíò jẹ́ kíkọsílẹ̀ sínú ìwé ìtàn àtúnṣe ojúewé yìí tí ẹ bá ṣàmúpamọ́ rẹ̀.''",
"missingsummary": "'''Ìránlétí:''' Ẹ kò pèsè àkótán fún àtúnṣe yìí\nTí ẹ bá tẹ Ìmúpamọ́ lẹ́ẹ̀kansi, àtúnṣe yín yíò jẹ̀ mímúpamọ́ láìní kankan.",
+ "selfredirect": "<strong>Ìkìlọ̀:</strong> Ẹ̀ ún ṣàtúnjúwe ojúewé yìí sí ara rẹ̀.\nÓ le jẹ́ pé ọ̀tọ̀ nibi tí ẹ fẹ́ ṣàtúnjúwe rẹ̀ sí, tàbí pé ẹ̀ ún ṣàtúnṣe ojúewé ọ̀tọ̀.\nTí ẹ bá tún tẹ klik \"$1\", àtúnjúwe náà yíò jẹ́ dídá sílẹ̀.",
"missingcommenttext": "Jọ̀wọ́ fi èrò ọkàn rẹ sílẹ̀.",
"missingcommentheader": "'''Ìránlétí:''' Ẹ kò pèsè àkọlé/oríọ̀rọ̀ kankan fún àríwí yìí.\nTí ẹ bá tẹ \"$1\" lẹ́ẹ̀kansi, àtúnṣe yín yíò jẹ́ mímúpamọ́ láìní kankan.",
"summary-preview": "Àkọ́yẹ̀wò àkótán àtúnṣe:",
"subject-preview": "Àkọ́yẹ̀wò àkọlé ọ̀rọ̀:",
+ "previewerrortext": "Àsìṣe kan ṣẹlẹ̀ nígbà tí à ún gbìyànjú láti ṣàtúngbéyẹ̀wò àwọn àtúnṣe yín.",
"blockedtitle": "Ìdínà oníṣe",
+ "blocked-email-user": "<strong>Orúkọ oníṣe yín tijẹ́ dídílọ́nà láti fi email ránṣẹ́. Ẹ sì le ṣàtùnṣe àwọn ojúewé míràn lórí wiki yìí.</strong> Ẹ lè wo gbogbo ẹ̀kúnrẹ́rẹ́ ìdínà náà nínú [[Special:MyContributions|àwọn àfikún àdápamọ́]].\n\nÌdínà náà wá látọwọ́ $1.\n\nÌdíẹ̀ tó sọ ni <em>$2</em>.\n\n* Ìbẹ̀rẹ̀ ìdínà: $8\n* Ìparí ìdínà: $6\n* Ẹni tí a fẹ́ dínà: $7\n* ID ìdínà #$5",
+ "blockedtext-partial": "<strong>Orúkọ oníṣe yín tàbí àdírẹ́ẹ̀sì IP yín tijẹ́ dídílọ́nà láti ṣàtúnṣe sí ojúewé yìí. Ẹ sì le ṣàtùnṣe àwọn ojúewé míràn lórí wiki yìí.</strong> Ẹ lè wo gbogbo ẹ̀kúnrẹ́rẹ́ ìdínà náà nínú [[Special:MyContributions|àwọn àfikún àdápamọ́]].\n\nÌdínà náà wá látọwọ́ $1.\n\nÌdíẹ̀ tó sọ ni <em>$2</em>.\n\n* Ìbẹ̀rẹ̀ ìdínà: $8\n* Ìparí ìdínà: $6\n* Ẹni tí a fẹ́ dínà: $7\n* ID ìdínà #$5",
"blockedtext": "<strong>Orúkọ oníṣe yín tàbí àdírẹ́sì IP yín ti jẹ́ dídílọ́nà.</strong>\n\n$1 ni ó ṣe ìdínà.\nÌdí tó fun ni <em>$2</em>.\n\n* Ìbẹ̀rẹ̀ ìdínà: $8\n* Òpin ìdínà: $6\n* Ẹni tí a fẹ́ dínà: $7\n\nẸ ṣ'èránṣẹ́ sí $1 tàbí [[{{MediaWiki:Grouppage-sysop}}|alámùójútó]] mìíràn láti fọ̀rọ̀wérọ̀ lórí ìdínà ọ̀ún.\nẸ kò le è lo \"{{int:emailuser}}\" àyàfi tí àdírẹ́sì e-mail tó dájú bá wà ní [[Special:Preferences|àwọn ìfẹ́ràn àpamọ́]] yín tí wọn kò sì ti dínà yín láti lò ó.\nÀdírẹ́sì IP yín lọ́wọ́lọ́wọ́ ni $3, bẹ́ ẹ̀ sì ni ID fún ìdínà yín ni #$5.\nẸ jọ̀wọ́ ẹ fi gbogbo ẹ̀kúnrẹ́rẹ́ òkè yìí kún ìbérè tí ẹ bá ṣe.",
- "autoblockedtext": "Àdírẹ́sì IP yín ti jẹ́ dídílọ́nà ní fúnrararẹ̀ nítorí pé ó jẹ́ lílò látọwọ́ oníṣe míràn tí ó jẹ́ dídílọ́nà látọwọ́ $1.\nÌdíẹ̀ tó ṣe jẹ́ bẹ́ẹ̀ nìyí:\n\n:''$2''\n\n\n* Ìbẹ̀rẹ̀ ìdínà: $8\n* Ìparí ìdínà: $6\n* Ẹni tí a fẹ́ dínà: $7\n\nẸ le ránṣẹ́ sí $1 tàbí ìkan láàrin [[{{MediaWiki:Grouppage-sysop}}|àwọn olùmójútó]] mìíràn láti fọ̀rọ̀wérọ̀ lórí ìdínà ọ̀ún.\n\nÀkíyèsí pé ẹ le mọ́ le lo ìní ''Ẹ fi e-mail ránṣẹ́ sí oníṣe yìí'' tí àdírẹ́sì e-mail tó tọ́ jẹ́ fífilórúkọsílẹ̀ sínú [[Special:Preferences|àwọn ìfẹ́ràn oníṣe]] yín tí wọn kò sì ti dínà yín láti lò ó.\n\nÀdírẹ́sì IP yín lọ́wọ́lọ́wọ́ ni $3, bẹ́ ẹ̀ sì ni ID fún ìdínà yín ni #$5.\nẸ jọ̀wọ́ ẹ fi gbogbo ẹ̀kúnrẹ́rẹ́ òkè yìí pọ̀mọ́ ìbérè tí ẹ bá ṣe.",
+ "autoblockedtext": "Àdírẹ́sì IP yín ti jẹ́ dídílọ́nà ní fúnrararẹ̀ nítorí pé ó jẹ́ lílò látọwọ́ oníṣe míràn tí ó jẹ́ dídílọ́nà látọwọ́ $1.\nÌdíẹ̀ tó ṣe jẹ́ bẹ́ẹ̀ nìyí:\n\n:<em>$2</em>\n\n\n* Ìbẹ̀rẹ̀ ìdínà: $8\n* Ìparí ìdínà: $6\n* Ẹni tí a fẹ́ dínà: $7\n\nẸ le ránṣẹ́ sí $1 tàbí ìkan láàrin [[{{MediaWiki:Grouppage-sysop}}|àwọn olùmójútó]] mìíràn láti fọ̀rọ̀wérọ̀ lórí ìdínà ọ̀ún.\n\nÀkíyèsí pé ẹ le mọ́ le lo ìní \"{{int:emailuser}}\" àyàfi tí ẹ bá ní àdírẹ́sì email tó yẹ nínú [[Special:Preferences|àwọn ìfẹ́ràn oníṣe]] yín tí wọn kò sì ti dínà yín láti lò ó.\n\nÀdírẹ́sì IP yín lọ́wọ́lọ́wọ́ ni $3, bẹ́ ẹ̀ sì ni ID fún ìdínà yín ni #$5.\nẸ jọ̀wọ́ ẹ fi gbogbo ẹ̀kúnrẹ́rẹ́ òkè yìí pọ̀mọ́ ìbérè tí ẹ bá ṣe.",
"blockednoreason": "kó sí àlàyé kankan",
"whitelistedittext": "Ẹ gbọ́dọ̀ $1 láti ṣ'àtúnṣe àwọn ojúewé.",
"confirmedittext": "Ẹ gbọ́dọ̀ ṣe ìmúdájú àdírẹ́ẹ̀sì e-mail yín kí ẹ tó le è mọ ṣ'àtúnṣe àwọn ojúewé.\nẸjọ̀wọ́ ẹ ṣètò bẹ́ sìni ki ẹ fọwọ́sí àdírẹ́ẹ̀sì e-mail nínú [[Special:Preferences|àwọn ìfẹ́ràn ọníṣe]] yín.",
"histfirst": "pípẹ́jùlọ",
"histlast": "tuntunjùlọ",
"historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
- "historyempty": "(òfo)",
+ "historyempty": "òfo",
"history-feed-title": "Ìtàn àtúnyẹ̀wò",
"history-feed-description": "Ìtàn àtúnyẹ̀wò fún ojúewé yìí ní orí wiki",
"history-feed-item-nocomment": "$1 ní $2",
"userrights-expiry-current": "Yíòparí $1",
"userrights-expiry-none": "Kò ní parí",
"userrights-expiry": "Ìparí:",
+ "userrights-expiry-options": "ọjọ́ 1:1 day,ọ̀sẹ̀ 1:1 week,oṣù 1:1 month,oṣù 3:3 months,oṣù 6:6 months,ọdún 1:1 year",
"group": "Ìdìpọ̀:",
"group-user": "Àwọn oníṣe",
"group-autoconfirmed": "Àwọn oníṣe aláàmúdájúarawọn",
"rcfilters-savedqueries-apply-label": "Ìdáálẹ̀ ajọ̀",
"rcfilters-savedqueries-apply-and-setdefault-label": "Ìdáálẹ̀ ajọ̀ ìbẹ̀rẹ̀",
"rcfilters-savedqueries-cancel-label": "Fagilé",
+ "rcfilters-filter-humans-label": "Ti ènìyàn (kìí ṣe ti bot)",
+ "rcfilters-filter-pageedits-label": "Àwọn àtúnṣe ojúewé",
+ "rcfilters-filter-pageedits-description": "Àwọn àtúnṣe sí àkóónú wiki, ọ̀rọ̀, àpèjúwe ẹ̀ka...",
+ "rcfilters-filter-newpages-label": "Àwọn ìdá ojúewé",
+ "rcfilters-filter-newpages-description": "Àwọn àtúnṣe tó dá ojúewé tuntun.",
+ "rcfilters-filter-categorization-label": "Àwọn àtúnṣe ẹ̀ka",
+ "rcfilters-liveupdates-button": "Àtúnṣe ìsinsìnyí",
+ "rcfilters-liveupdates-button-title-on": "Pa àtúnṣe ìsinsìnyí dé",
+ "rcfilters-liveupdates-button-title-off": "Ìfihàn àwọn àtúnṣe tuntun bí wọ́n ṣe ún ṣẹlẹ̀",
"rcnotefrom": "Nísàlẹ̀ ni {{PLURAL:$5|àtúnṣe|àwọn àtúnṣe}} wà láti <strong>$3, $4</strong> (títí dé <strong>$1</strong> ló hàn).",
"rclistfrom": "Àfihàn àwọn àtúnṣe tuntun nípa bíbẹ̀rẹ̀ láti $3 $2",
"rcshowhideminor": "$1 àwọn àtúnṣe kékéèké",
"unusedtemplateswlh": "àwọn ìjápọ̀ míràn",
"randompage": "Ojúewé àrìnàkò",
"randompage-nopages": "Kò sí ojúewé kankan nínú {{PLURAL:$2|orúkọàyè|àwọn orúkọàyè}} ìsàlẹ̀ yìí: $1",
+ "randomincategory-nopages": "Kò sí ojúewé kankan nínú ẹ̀ka [[:Category:$1|$1]].",
+ "randomincategory-category": "Ẹ̀ka:",
+ "randomincategory-submit": "Lọ",
"randomredirect": "Àtúndarí àrìnàkò",
"randomredirect-nopages": "Kò sí àtúnjúwe kankan nínú orúkọàyè \"$1\".",
"statistics": "Àwọn statistiki",
"pager-older-n": "{{PLURAL:$1|pípẹ́jùlọ 1|pípẹ́jùlọ $1}}",
"suppress": "Alábẹ̀wò",
"querypage-disabled": "Ojúewé pàtàkì yìí jẹ́ ìdálẹ́kun nítorí ìsiṣẹ́.",
+ "apihelp-no-such-module": "Module \"$1\" kò sí.",
"booksources": "Àwọn orísun ìwé",
"booksources-search-legend": "Àwáàrí fún áwọn ìwé ìtọ́ka",
"booksources-search": "Ṣàwárí",
"mycontris": "Àwọn àfikún",
"anoncontribs": "Àwọn àfikún",
"contribsub2": "Fún {{GENDER:$3|$1}} ($2)",
+ "contributions-subtitle": "Fún {{GENDER:$3|$1}}",
"contributions-userdoesnotexist": "Oníṣẹ́ yìí \"$1\" kò forúkọ sílẹ̀",
"nocontribs": "Kò sí àtúnṣe tuntun tó bá àwárí mu.",
"uctop": "lówọ́",
"version-hooks": "Àwọn hook",
"version-hook-name": "Orúkọ hook",
"version-version": "($1)",
- "version-license": "Ìwé àṣẹ",
+ "version-license": "Ìwé-àṣẹ MediaWiki",
+ "version-ext-license": "Ìwé-àṣe",
"version-poweredby-credits": "Agbára ìṣiṣẹ́ wiki yìí wá látọwọ́ '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
"version-poweredby-others": "àwọn mìíràn",
+ "version-poweredby-translators": "àwọn olùyédèsómíràn translatewiki.net",
"version-credits-summary": "Ìdùnnú wa ni láti rántí àwọn ẹni wọ̀nyí fún ìdáwọ́lé wọn sí [[Special:Version|MediaWiki]].",
"version-software": "Atòlànà kọ̀mpútà kíkànsínú",
"version-software-product": "Èso",
"htmlform-submit": "Fúnsílẹ̀",
"htmlform-reset": "Ìdápadà àwọn àtúnṣe",
"htmlform-selectorother-other": "Òmíràn",
+ "htmlform-date-placeholder": "YYYY-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
"logentry-delete-delete": "$1 pa ojúewé $3 rẹ́",
"logentry-delete-restore": "$1 ti mú ojúewé $3 ($4) {{GENDER:$2|padàwá}}",
"logentry-delete-event": "$1 ṣe àyípadà ìhànsí {{PLURAL:$5|ìṣẹ̀lẹ̀ àkọọ́lẹ̀ kan|àwọn ìṣẹ̀lẹ̀ àkọọ́lẹ̀ $5}} lórí $3: $4",
"special-characters-group-khmer": "Khmer",
"randomrootpage": "Ojúewé ìtẹ́dìí àrìnàkò",
"edit-error-short": "Àṣìṣe: $1",
- "edit-error-long": "Àwọn àsìṣe:\n\n\n$1"
+ "edit-error-long": "Àwọn àsìṣe:\n\n$1"
}
display: none;
}
+.config-help-field-checkbox {
+ display: none;
+}
+
/* tooltip styles */
.config-help-field-hint {
- display: none;
margin-left: 2px;
- margin-bottom: -8px;
padding: 0 0 0 15px;
/* @embed */
background-image: url( images/help-question.gif );
margin-left: 20px;
}
+.config-help-field-checkbox:not( :checked ) ~ .config-help-field-data {
+ display: none;
+}
+
#p-logo a {
background-image: url( images/installer-logo.png );
}
$label.text( labelText.replace( '$1', value ) );
}
- // Set up the help system
- $( '.config-help-field-data' ).hide()
- .closest( '.config-help-field-container' ).find( '.config-help-field-hint' )
- .show()
- .on( 'click', function () {
- // FIXME: Use CSS transition
- // eslint-disable-next-line no-jquery/no-slide
- $( this ).closest( '.config-help-field-container' ).find( '.config-help-field-data' )
- .slideToggle( 'fast' );
- } );
-
// Show/hide code for DB-specific options
// FIXME: Do we want slow, fast, or even non-animated (instantaneous) showing/hiding here?
$( '.dbRadio' ).each( function () {
}
} else {
throw new MWException( __METHOD__ . " given invalid expectation for "
- . "'$server'. Should be a string or an array( <http server name> => <string> ).\n" );
+ . "'$server'. Should be a string or an array [ <http server name> => <string> ].\n" );
}
}
/**
* How do we handle duplicate keys in HTML attributes expansion?
- * We could pass a "class" the values: 'GREEN' and array( 'GREEN' => false )
+ * We could pass a "class" the values: 'GREEN' and [ 'GREEN' => false ]
* The latter will take precedence.
*
* Feature added by r96188
}
/**
- * @param array $messageDetails E.g. array( 'KEY' => array(/PARAMS/) )
+ * @param array $messageDetails E.g. [ 'KEY' => [ /PARAMS/ ] ]
* @return Message[]
*/
protected function getMockMessages( $messageDetails ) {
/**
* Return the collected logs
- * @return array Array of array( string $level, string $message ), or
- * array( string $level, string $message, array $context ) if $collectContext was true.
+ * @return array Array of [ string $level, string $message ], or
+ * [ string $level, string $message, array $context ] if $collectContext was true.
*/
public function getBuffer() {
return $this->buffer;
public function testWgWhitelistReadRegexp( $whitelistRegexp, $source, $action, $expected ) {
// $wgWhitelistReadRegexp must be an array. Since the provided test cases
// usually have only one regex, it is more concise to write the lonely regex
- // as a string. Thus we cast to an array() to honor $wgWhitelistReadRegexp
+ // as a string. Thus we cast to a [] to honor $wgWhitelistReadRegexp
// type requisite.
if ( is_string( $whitelistRegexp ) ) {
$whitelistRegexp = [ $whitelistRegexp ];
/**
* Checks that the request's result matches the expected results.
* Assumes no rawcontinue and a complete batch.
- * @param array $values Array is a two element array( request, expected_results )
+ * @param array $values Array is a two element [ request, expected_results ]
* @param array|null $session
* @param bool $appendModule
* @param User|null $user
$toString = (string)$db;
- $this->assertContains( 'SQLite ', $toString );
+ $this->assertContains( 'sqlite object', $toString );
}
/**
--- /dev/null
+<?php
+
+/** @covers ForeignDBFile */
+class ForeignDBFileTest extends \PHPUnit\Framework\TestCase {
+
+ use PHPUnit4And6Compat;
+
+ public function testShouldConstructCorrectInstanceFromTitle() {
+ $title = Title::makeTitle( NS_FILE, 'Awesome_file' );
+ $repoMock = $this->createMock( LocalRepo::class );
+
+ $file = ForeignDBFile::newFromTitle( $title, $repoMock );
+
+ $this->assertInstanceOf( ForeignDBFile::class, $file );
+ }
+}
$this->assertFalseCIDR( '192.0.2.0/33', "mask > 32" );
// Check internal logic
- # 0 mask always result in array(0,0)
+ # 0 mask always result in [ 0, 0 ]
$this->assertEquals( [ 0, 0 ], IP::parseCIDR( '192.0.0.2/0' ) );
$this->assertEquals( [ 0, 0 ], IP::parseCIDR( '0.0.0.0/0' ) );
$this->assertEquals( [ 0, 0 ], IP::parseCIDR( '255.255.255.255/0' ) );
'he' => 'rtl',
'ar' => 'rtl',
];
- static $contexts = [];
$image = $this->getTestImage( $imageName );
$context = $this->getResourceLoaderContext( [
* @covers SpecialSearch::load
* @dataProvider provideSearchOptionsTests
* @param array $requested Request parameters. For example:
- * array( 'ns5' => true, 'ns6' => true). Null to use default options.
+ * [ 'ns5' => true, 'ns6' => true ]. Null to use default options.
* @param array $userOptions User options to test with. For example:
- * array('searchNs5' => 1 );. Null to use default options.
+ * [ 'searchNs5' => 1 ];. Null to use default options.
* @param string $expectedProfile An expected search profile name
* @param array $expectedNS Expected namespaces
* @param string $message
$this->assertEquals( $response[$pos], $rows, "Testing row in position $pos" );
$pos++;
}
- // -1 is because the final array() marks the end and isnt included
+ // -1 is because the final [] marks the end and isn't included
$this->assertEquals( count( $response ) - 1, $pos );
}
}
/**
- * array( method, length, bits, hostbits )
+ * [ method, length, bits, hostbits ]
* NOTE: When adding a new method name here please update the covers tags for the tests!
*/
public static function provider_testTimestampedUID() {
</exclude>
</whitelist>
</filter>
+ <listeners>
+ <listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener">
+ <arguments>
+ <array>
+ <element key="slowThreshold">
+ <integer>50</integer>
+ </element>
+ <element key="reportLength">
+ <integer>50</integer>
+ </element>
+ </array>
+ </arguments>
+ </listener>
+ </listeners>
</phpunit>