mediawiki.ui/styleguide.md files and directories in here support the automatic
generation of CSS documentation from the source LESS files using kss for
node.js, https://github.com/kneath/kss
+
+To build and open in your web browser, run:
+
+MEDIAWIKI_LOAD_URL=mediawiki_hostname/w/load.php make kssopen
+
+For example,
+
+MEDIAWIKI_LOAD_URL=1.2.3.4/w/load.php make kssopen
+
+If MediaWiki is running on localhost, you can omit MEDIAWIKI_LOAD_URL.
+
+To rebuild without opening the web browser, run:
+
+MEDIAWIKI_LOAD_URL=mediawiki_hostname/w/load.php make
* - Set $wgImgAuthDetails = true if you want the reason the access was denied messages to
* be displayed instead of just the 403 error (doesn't work on IE anyway),
* otherwise it will only appear in error logs
- * - Set $wgImgAuthPublicTest false if you don't want to just check and see if all are public
- * must be set to false if using specific restrictions such as LockDown or NSFileRepo
*
* For security reasons, you usually don't want your user to know *why* access was denied,
* just that it was. If you want to change this, you can set $wgImgAuthDetails to 'true'
wfImageAuthMain();
wfLogProfilingData();
+// Commit and close up!
+$factory = wfGetLBFactory();
+$factory->commitMasterChanges();
+$factory->shutdown();
function wfImageAuthMain() {
- global $wgImgAuthPublicTest, $wgImgAuthUrlPathMap;
+ global $wgImgAuthUrlPathMap;
$request = RequestContext::getMain()->getRequest();
$publicWiki = in_array( 'read', User::getGroupPermissions( array( '*' ) ), true );
- // See if this is a public Wiki (no protections).
- if ( $wgImgAuthPublicTest && $publicWiki ) {
- // This is a public wiki, so disable this script (for private wikis only)
- wfForbidden( 'img-auth-accessdenied', 'img-auth-public' );
- return;
- }
-
// Get the requested file path (source file or thumbnail)
$matches = WebRequest::getPathInfo();
if ( !isset( $matches['title'] ) ) {
// Check for bug 28235: QUERY_STRING overriding the correct extension
$whitelist = array();
- $extension = FileBackend::extensionFromPath( $path );
+ $extension = FileBackend::extensionFromPath( $path, 'rawcase' );
if ( $extension != '' ) {
$whitelist[] = $extension;
}
/**
* Date for the HTTP header Last-modified
- * @var string|false $mLastModified
+ * @var string|bool $mLastModified
*/
private $mLastModified;
private $mText;
/**
- * @param $text string|null
+ * @param string|null $text
*/
function __construct( $text = null ) {
$this->mCacheDuration = null;
/**
* Set the number of seconds to get the response cached by a proxy
- * @param $duration int
+ * @param int $duration
*/
function setCacheDuration( $duration ) {
$this->mCacheDuration = $duration;
/**
* Set the HTTP Vary header
- * @param $vary string
+ * @param string $vary
*/
function setVary( $vary ) {
$this->mVary = $vary;
/**
* Set the HTTP response code
- * @param $code string
+ * @param string $code
*/
function setResponseCode( $code ) {
$this->mResponseCode = $code;
/**
* Set the HTTP header Content-Type
- * @param $type string
+ * @param string $type
*/
function setContentType( $type ) {
$this->mContentType = $type;
/**
* Add content to the response
- * @param $text string
+ * @param string $text
*/
function addText( $text ) {
if ( ! $this->mDisabled && $text ) {
* possible. If successful, the AjaxResponse is disabled so that
* any future call to AjaxResponse::printText() have no effect.
*
- * @param $timestamp string
+ * @param string $timestamp
* @return bool Returns true if the response code was set to 304 Not Modified.
*/
function checkLastModified( $timestamp ) {
}
/**
- * @param $mckey string
- * @param $touched int
+ * @param string $mckey
+ * @param int $touched
* @return bool
*/
function loadFromMemcached( $mckey, $touched ) {
}
/**
- * @param $mckey string
- * @param $expiry int
+ * @param string $mckey
+ * @param int $expiry
* @return bool
*/
function storeInMemcached( $mckey, $expiry = 86400 ) {
/**
* URL to redirect to or false if none
- * @var string|false $mRedirectUrl
+ * @var string|bool $mRedirectUrl
*/
var $mRedirectUrl = false; // !<
/**
* Constructor and clear the article
- * @param $title Title Reference to a Title object.
- * @param $oldId Integer revision ID, null to fetch from request, zero for current
+ * @param Title $title Reference to a Title object.
+ * @param int $oldId Revision ID, null to fetch from request, zero for current
*/
public function __construct( Title $title, $oldId = null ) {
$this->mOldId = $oldId;
}
/**
- * @param $title Title
+ * @param Title $title
* @return WikiPage
*/
protected function newPage( Title $title ) {
/**
* Constructor from a page id
- * @param int $id article ID to load
+ * @param int $id Article ID to load
* @return Article|null
*/
public static function newFromID( $id ) {
/**
* Create an Article object of the appropriate class for the given page.
*
- * @param $title Title
- * @param $context IContextSource
- * @return Article object
+ * @param Title $title
+ * @param IContextSource $context
+ * @return Article
*/
public static function newFromTitle( $title, IContextSource $context ) {
if ( NS_MEDIA == $title->getNamespace() ) {
/**
* Create an Article object of the appropriate class for the given page.
*
- * @param $page WikiPage
- * @param $context IContextSource
- * @return Article object
+ * @param WikiPage $page
+ * @param IContextSource $context
+ * @return Article
*/
public static function newFromWikiPage( WikiPage $page, IContextSource $context ) {
$article = self::newFromTitle( $page->getTitle(), $context );
/**
* Tell the page view functions that this view was redirected
* from another page on the wiki.
- * @param $from Title object.
+ * @param Title $from
*/
public function setRedirectedFrom( Title $from ) {
$this->mRedirectedFrom = $from;
/**
* Get the title object of the article
*
- * @return Title object of this page
+ * @return Title Title object of this page
*/
public function getTitle() {
return $this->mPage->getTitle();
}
/**
- * @return int The oldid of the article that is to be shown, 0 for the
- * current revision
+ * @return int The oldid of the article that is to be shown, 0 for the current revision
*/
public function getOldID() {
if ( is_null( $this->mOldId ) ) {
* uses this method to retrieve page text from the database, so the function
* has to remain public for now.
*
- * @return mixed string containing article contents, or false if null
+ * @return string|bool String containing article contents, or false if null
* @deprecated since 1.21, use WikiPage::getContent() instead
*/
function fetchContent() { #BC cruft!
* @note Code that wants to retrieve page content from the database should
* use WikiPage::getContent().
*
- * @return Content|null|boolean false
+ * @return Content|null|bool
*
* @since 1.21
*/
/**
* Use this to fetch the rev ID used on page views
*
- * @return int revision ID of last article revision
+ * @return int Revision ID of last article revision
*/
public function getRevIdFetched() {
if ( $this->mRevIdFetched ) {
/**
* Adjust title for pages with displaytitle, -{T|}- or language conversion
- * @param $pOutput ParserOutput
+ * @param ParserOutput $pOutput
*/
public function adjustDisplayTitle( ParserOutput $pOutput ) {
# Adjust the title if it was set by displaytitle, -{T|}- or language conversion
* This is hooked by SyntaxHighlight_GeSHi to do syntax highlighting of these
* page views.
*
- * @param bool $showCacheHint whether to show a message telling the user
+ * @param bool $showCacheHint Whether to show a message telling the user
* to clear the browser cache (default: true).
*/
protected function showCssOrJsPage( $showCacheHint = true ) {
/**
* Get the robot policy to be used for the current view
- * @param string $action the action= GET parameter
- * @param $pOutput ParserOutput|null
- * @return Array the policy that should be set
- * TODO: actions other than 'view'
+ * @param string $action The action= GET parameter
+ * @param ParserOutput|null $pOutput
+ * @return array The policy that should be set
+ * @todo: actions other than 'view'
*/
public function getRobotPolicy( $action, $pOutput = null ) {
global $wgArticleRobotPolicies, $wgNamespaceRobotPolicies, $wgDefaultRobotPolicy;
/**
* Converts a String robot policy into an associative array, to allow
* merging of several policies using array_merge().
- * @param $policy Mixed, returns empty array on null/false/'', transparent
- * to already-converted arrays, converts String.
- * @return Array: 'index' => \<indexpolicy\>, 'follow' => \<followpolicy\>
+ * @param array|string $policy Returns empty array on null/false/'', transparent
+ * to already-converted arrays, converts string.
+ * @return array 'index' => \<indexpolicy\>, 'follow' => \<followpolicy\>
*/
public static function formatRobotPolicy( $policy ) {
if ( is_array( $policy ) ) {
* the output. Returns true if the header was needed, false if this is not
* a redirect view. Handles both local and remote redirects.
*
- * @return boolean
+ * @return bool
*/
public function showRedirectedFromHeader() {
global $wgRedirectSources;
* If the revision requested for view is deleted, check permissions.
* Send either an error message or a warning header to the output.
*
- * @return boolean true if the view is allowed, false if not.
+ * @return bool true if the view is allowed, false if not.
*/
public function showDeletedRevisionHeader() {
if ( !$this->mRevision->isDeleted( Revision::DELETED_TEXT ) ) {
* Revision as of \<date\>; view current revision
* \<- Previous version | Next Version -\>
*
- * @param int $oldid revision ID of this article revision
+ * @param int $oldid Revision ID of this article revision
*/
public function setOldSubtitle( $oldid = 0 ) {
if ( !wfRunHooks( 'DisplayOldSubtitle', array( &$this, &$oldid ) ) ) {
* Chances are you should just be using the ParserOutput from
* WikitextContent::getParserOutput instead of calling this for redirects.
*
- * @param $target Title|Array of destination(s) to redirect
- * @param $appendSubtitle Boolean [optional]
- * @param $forceKnown Boolean: should the image be shown as a bluelink regardless of existence?
- * @return string containing HMTL with redirect link
+ * @param Title|array $target Destination(s) to redirect
+ * @param bool $appendSubtitle [optional]
+ * @param bool $forceKnown Should the image be shown as a bluelink regardless of existence?
+ * @return string Containing HMTL with redirect link
*/
public function viewRedirect( $target, $appendSubtitle = true, $forceKnown = false ) {
$lang = $this->getTitle()->getPageLanguage();
*
* @since 1.23
* @param Language $lang
- * @param Title|array $target destination(s) to redirect
+ * @param Title|array $target Destination(s) to redirect
* @param bool $forceKnown Should the image be shown as a bluelink regardless of existence?
- * @return string containing HMTL with redirect link
+ * @return string Containing HMTL with redirect link
*/
public static function getRedirectHeaderHtml( Language $lang, $target, $forceKnown = false ) {
global $wgStylePath;
/**
* Output deletion confirmation dialog
* @todo FIXME: Move to another file?
- * @param string $reason prefilled reason
+ * @param string $reason Prefilled reason
*/
public function confirmDelete( $reason ) {
wfDebug( "Article::confirmDelete\n" );
* output to the client that is necessary for this request.
* (that is, it has sent a cached version of the page)
*
- * @return boolean true if cached version send, false otherwise
+ * @return bool true if cached version send, false otherwise
*/
protected function tryFileCache() {
static $called = false;
*
* @since 1.16 (r52326) for LiquidThreads
*
- * @param $oldid mixed integer Revision ID or null
- * @param $user User The relevant user
- * @return ParserOutput or false if the given revision ID is not found
+ * @param int|null $oldid Revision ID or null
+ * @param User $user The relevant user
+ * @return ParserOutput|bool ParserOutput or false if the given revision ID is not found
*/
public function getParserOutput( $oldid = null, User $user = null ) {
//XXX: bypasses mParserOptions and thus setParserOptions()
/**
* Sets the context this Article is executed in
*
- * @param $context IContextSource
+ * @param IContextSource $context
* @since 1.18
*/
public function setContext( $context ) {
* raw WikiPage fields for backwards compatibility.
*
* @param string $fname Field name
- * @param $fvalue mixed New value
+ * @param mixed $fvalue New value
*/
public function __set( $fname, $fvalue ) {
if ( property_exists( $this->mPage, $fname ) ) {
// ****** B/C functions to work-around PHP silliness with __call and references ****** //
/**
- * @param $limit array
- * @param $expiry array
- * @param $cascade bool
- * @param $reason string
- * @param $user User
+ * @param array $limit
+ * @param array $expiry
+ * @param bool $cascade
+ * @param string $reason
+ * @param User $user
* @return Status
*/
public function doUpdateRestrictions( array $limit, array $expiry, &$cascade,
}
/**
- * @param $limit array
- * @param $reason string
- * @param $cascade int
- * @param $expiry array
+ * @param array $limit
+ * @param string $reason
+ * @param int $cascade
+ * @param array $expiry
* @return bool
*/
public function updateRestrictions( $limit = array(), $reason = '',
}
/**
- * @param $reason string
- * @param $suppress bool
- * @param $id int
- * @param $commit bool
- * @param $error string
+ * @param string $reason
+ * @param bool $suppress
+ * @param int $id
+ * @param bool $commit
+ * @param string $error
* @return bool
*/
public function doDeleteArticle( $reason, $suppress = false, $id = 0,
}
/**
- * @param $fromP
- * @param $summary
- * @param $token
- * @param $bot
- * @param $resultDetails
- * @param $user User
+ * @param string $fromP
+ * @param string $summary
+ * @param string $token
+ * @param bool $bot
+ * @param array $resultDetails
+ * @param User|null $user
* @return array
*/
public function doRollback( $fromP, $summary, $token, $bot, &$resultDetails, User $user = null ) {
}
/**
- * @param $fromP
- * @param $summary
- * @param $bot
- * @param $resultDetails
- * @param $guser User
+ * @param string $fromP
+ * @param string $summary
+ * @param bool $bot
+ * @param array $resultDetails
+ * @param User|null $guser
* @return array
*/
public function commitRollback( $fromP, $summary, $bot, &$resultDetails, User $guser = null ) {
}
/**
- * @param $hasHistory bool
+ * @param bool $hasHistory
* @return mixed
*/
public function generateReason( &$hasHistory ) {
}
/**
- * @param $title Title
+ * @param Title $title
*/
public static function onArticleCreate( $title ) {
WikiPage::onArticleCreate( $title );
}
/**
- * @param $title Title
+ * @param Title $title
*/
public static function onArticleDelete( $title ) {
WikiPage::onArticleDelete( $title );
}
/**
- * @param $title Title
+ * @param Title $title
*/
public static function onArticleEdit( $title ) {
WikiPage::onArticleEdit( $title );
}
/**
- * @param $oldtext
- * @param $newtext
- * @param $flags
+ * @param string $oldtext
+ * @param string $newtext
+ * @param int $flags
* @return string
* @deprecated since 1.21, use ContentHandler::getAutosummary() instead
*/
* Update user information in the external authentication database.
* Return true if successful.
*
- * @param $user User object.
- * @return Boolean
+ * @param User $user
+ * @return bool
*/
public function updateExternalDB( $user ) {
return true;
'RevisionDeleteUser' => 'includes/revisiondelete/RevisionDeleteUser.php',
# includes/search
- 'MssqlSearchResultSet' => 'includes/search/SearchMssql.php',
- 'MySQLSearchResultSet' => 'includes/search/SearchMySQL.php',
'PostgresSearchResult' => 'includes/search/SearchPostgres.php',
'PostgresSearchResultSet' => 'includes/search/SearchPostgres.php',
'SearchDatabase' => 'includes/search/SearchDatabase.php',
'SearchResultSet' => 'includes/search/SearchResultSet.php',
'SearchResultTooMany' => 'includes/search/SearchEngine.php',
'SearchSqlite' => 'includes/search/SearchSqlite.php',
- 'SqliteSearchResultSet' => 'includes/search/SearchSqlite.php',
'SqlSearchResultSet' => 'includes/search/SearchResultSet.php',
# includes/site
# languages
'ConverterRule' => 'languages/ConverterRule.php',
- 'FakeConverter' => 'languages/Language.php',
+ 'FakeConverter' => 'languages/FakeConverter.php',
'Language' => 'languages/Language.php',
'LanguageConverter' => 'languages/LanguageConverter.php',
'CLDRPluralRuleConverter' => 'languages/utils/CLDRPluralRuleConverter.php',
* Sanitizer that have define()s outside of their class definition. Of course
* this wouldn't be necessary if everything in MediaWiki was class-based. Sigh.
*
- * @param $class string
- * @return Boolean Return the results of class_exists() so we know if we were successful
+ * @param string $class
+ * @return bool Return the results of class_exists() so we know if we were successful
*/
static function loadClass( $class ) {
return class_exists( $class );
/**
* Get the groups for the given user based on $wgAutopromote.
*
- * @param $user User The user to get the groups for
+ * @param User $user The user to get the groups for
* @return array Array of groups to promote to.
*/
public static function getAutopromoteGroups( User $user ) {
*
* Does not return groups the user already belongs to or has once belonged.
*
- * @param $user User The user to get the groups for
- * @param string $event key in $wgAutopromoteOnce (each one has groups/criteria)
+ * @param User $user The user to get the groups for
+ * @param string $event Key in $wgAutopromoteOnce (each one has groups/criteria)
*
* @return array Groups the user should be promoted to.
*
* This function evaluates the former type recursively, and passes off to
* self::checkCondition for evaluation of the latter type.
*
- * @param $cond Mixed: a condition, possibly containing other conditions
- * @param $user User The user to check the conditions against
+ * @param mixed $cond A condition, possibly containing other conditions
+ * @param User $user The user to check the conditions against
* @return bool Whether the condition is true
*/
private static function recCheckCondition( $cond, User $user ) {
* APCOND_AGE. Other types will throw an exception if no extension evaluates them.
*
* @param array $cond A condition, which must not contain other conditions
- * @param $user User The user to check the condition against
+ * @param User $user The user to check the condition against
* @throws MWException
* @return bool Whether the condition is true for the user
*/
$mCreateAccount,
$mParentBlockId;
- /** @var User|String */
+ /** @var User|string */
protected $target;
- /** @var Integer Hack for foreign blocking (CentralAuth) */
+ /** @var int Hack for foreign blocking (CentralAuth) */
protected $forcedTargetID;
- /** @var Integer Block::TYPE_ constant. Can only be USER, IP or RANGE internally */
+ /** @var int Block::TYPE_ constant. Can only be USER, IP or RANGE internally */
protected $type;
/** @var User */
protected $blocker;
- /** @var Bool */
+ /** @var bool */
protected $isHardblock = true;
- /** @var Bool */
+ /** @var bool */
protected $isAutoblocking = true;
# TYPE constants
/**
* Load a blocked user from their block id.
*
- * @param $id Integer: Block id to search for
- * @return Block object or null
+ * @param int $id Block id to search for
+ * @return Block|null
*/
public static function newFromID( $id ) {
$dbr = wfGetDB( DB_SLAVE );
* Check if two blocks are effectively equal. Doesn't check irrelevant things like
* the blocking user or the block timestamp, only things which affect the blocked user
*
- * @param $block Block
+ * @param Block $block
*
* @return bool
*/
* 1) A block directly on the given user or IP
* 2) A rangeblock encompassing the given IP (smallest first)
* 3) An autoblock on the given IP
- * @param $vagueTarget User|String also search for blocks affecting this target. Doesn't
+ * @param User|string $vagueTarget Also search for blocks affecting this target. Doesn't
* make any sense to use TYPE_AUTO / TYPE_ID here. Leave blank to skip IP lookups.
* @throws MWException
- * @return Bool whether a relevant block was found
+ * @return bool Whether a relevant block was found
*/
protected function newLoad( $vagueTarget = null ) {
$db = wfGetDB( $this->mFromMaster ? DB_MASTER : DB_SLAVE );
* Get a set of SQL conditions which will select rangeblocks encompassing a given range
* @param string $start Hexadecimal IP representation
* @param string $end Hexadecimal IP representation, or null to use $start = $end
- * @return String
+ * @return string
*/
public static function getRangeCond( $start, $end = null ) {
if ( $end === null ) {
/**
* Get the component of an IP address which is certain to be the same between an IP
* address and a rangeblock containing that IP address.
- * @param $hex String Hexadecimal IP representation
- * @return String
+ * @param string $hex Hexadecimal IP representation
+ * @return string
*/
protected static function getIpFragment( $hex ) {
global $wgBlockCIDRLimit;
/**
* Given a database row from the ipblocks table, initialize
* member variables
- * @param $row ResultWrapper: a row from the ipblocks table
+ * @param ResultWrapper $row A row from the ipblocks table
*/
protected function initFromRow( $row ) {
$this->setTarget( $row->ipb_address );
/**
* Create a new Block object from a database row
- * @param $row ResultWrapper row from the ipblocks table
+ * @param ResultWrapper $row Row from the ipblocks table
* @return Block
*/
public static function newFromRow( $row ) {
* Delete the row from the IP blocks table.
*
* @throws MWException
- * @return Boolean
+ * @return bool
*/
public function delete() {
if ( wfReadOnly() ) {
* Insert a block into the block table. Will fail if there is a conflicting
* block (same name and options) already in the database.
*
- * @param $dbw DatabaseBase if you have one available
- * @return mixed: false on failure, assoc array on success:
+ * @param DatabaseBase $dbw If you have one available
+ * @return bool|array False on failure, assoc array on success:
* ('id' => block ID, 'autoIds' => array of autoblock IDs)
*/
public function insert( $dbw = null ) {
/**
* Get an array suitable for passing to $dbw->insert() or $dbw->update()
- * @param $db DatabaseBase
- * @return Array
+ * @param DatabaseBase $db
+ * @return array
*/
protected function getDatabaseArray( $db = null ) {
if ( !$db ) {
}
/**
- * @return Array
+ * @return array
*/
protected function getAutoblockUpdateArray() {
return array(
* Retroactively autoblocks the last IP used by the user (if it is a user)
* blocked by this Block.
*
- * @return Array: block IDs of retroactive autoblocks made
+ * @return array Block IDs of retroactive autoblocks made
*/
protected function doRetroactiveAutoblock() {
$blockIds = array();
*
* @param Block $block
* @param array &$blockIds
- * @return Array: block IDs of retroactive autoblocks made
+ * @return array Block IDs of retroactive autoblocks made
*/
protected static function defaultRetroactiveAutoblock( Block $block, array &$blockIds ) {
global $wgPutIPinRC;
* TODO: this probably belongs somewhere else, but not sure where...
*
* @param string $ip The IP to check
- * @return Boolean
+ * @return bool
*/
public static function isWhitelistedFromAutoblocks( $ip ) {
global $wgMemc;
/**
* Autoblocks the given IP, referring to this Block.
*
- * @param string $autoblockIP the IP to autoblock.
- * @return mixed: block ID if an autoblock was inserted, false if not.
+ * @param string $autoblockIP The IP to autoblock.
+ * @return int|bool Block ID if an autoblock was inserted, false if not.
*/
public function doAutoblock( $autoblockIP ) {
# If autoblocks are disabled, go away.
/**
* Check if a block has expired. Delete it if it is.
- * @return Boolean
+ * @return bool
*/
public function deleteIfExpired() {
wfProfileIn( __METHOD__ );
/**
* Has the block expired?
- * @return Boolean
+ * @return bool
*/
public function isExpired() {
$timestamp = wfTimestampNow();
/**
* Is the block address valid (i.e. not a null string?)
- * @return Boolean
+ * @return bool
*/
public function isValid() {
return $this->getTarget() != null;
/**
* Get the IP address at the start of the range in Hex form
* @throws MWException
- * @return String IP in Hex form
+ * @return string IP in Hex form
*/
public function getRangeStart() {
switch ( $this->type ) {
/**
* Get the IP address at the end of the range in Hex form
* @throws MWException
- * @return String IP in Hex form
+ * @return string IP in Hex form
*/
public function getRangeEnd() {
switch ( $this->type ) {
/**
* Get the user id of the blocking sysop
*
- * @return Integer (0 for foreign users)
+ * @return int (0 for foreign users)
*/
public function getBy() {
$blocker = $this->getBlocker();
/**
* Get the username of the blocking sysop
*
- * @return String
+ * @return string
*/
public function getByName() {
$blocker = $this->getBlocker();
/**
* Get/set a flag determining whether the master is used for reads
*
- * @param $x Bool
- * @return Bool
+ * @param bool $x
+ * @return bool
*/
public function fromMaster( $x = null ) {
return wfSetVar( $this->mFromMaster, $x );
/**
* Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range
- * @param $x Bool
- * @return Bool
+ * @param bool $x
+ * @return bool
*/
public function isHardblock( $x = null ) {
wfSetVar( $this->isHardblock, $x );
/**
* Get/set whether the Block prevents a given action
- * @param $action String
- * @param $x Bool
- * @return Bool
+ * @param string $action
+ * @param bool $x
+ * @return bool
*/
public function prevents( $action, $x = null ) {
switch ( $action ) {
/**
* Get the block name, but with autoblocked IPs hidden as per standard privacy policy
- * @return String, text is escaped
+ * @return string Text is escaped
*/
public function getRedactedName() {
if ( $this->mAuto ) {
/**
* Get a timestamp of the expiry for autoblocks
*
- * @param $timestamp String|Int
- * @return String
+ * @param string|int $timestamp
+ * @return string
*/
public static function getAutoblockExpiry( $timestamp ) {
global $wgAutoblockExpiry;
/**
* Given a target and the target's type, get an existing Block object if possible.
- * @param $specificTarget String|User|Int a block target, which may be one of several types:
+ * @param string|User|int $specificTarget A block target, which may be one of several types:
* * A user to block, in which case $target will be a User
* * An IP to block, in which case $target will be a User generated by using
* User::newFromName( $ip, false ) to turn off name validation
* Calling this with a user, IP address or range will not select autoblocks, and will
* only select a block where the targets match exactly (so looking for blocks on
* 1.2.3.4 will not select 1.2.0.0/16 or even 1.2.3.4/32)
- * @param $vagueTarget String|User|Int as above, but we will search for *any* block which
+ * @param string|User|int $vagueTarget As above, but we will search for *any* block which
* affects that target (so for an IP address, get ranges containing that IP; and also
* get any relevant autoblocks). Leave empty or blank to skip IP-based lookups.
- * @param bool $fromMaster whether to use the DB_MASTER database
+ * @param bool $fromMaster Whether to use the DB_MASTER database
* @return Block|null (null if no relevant block could be found). The target and type
* of the returned Block will refer to the actual block which was found, which might
* not be the same as the target you gave if you used $vagueTarget!
/**
* Get all blocks that match any IP from an array of IP addresses
*
- * @param Array $ipChain list of IPs (strings), usually retrieved from the
+ * @param array $ipChain List of IPs (strings), usually retrieved from the
* X-Forwarded-For header of the request
- * @param Bool $isAnon Exclude anonymous-only blocks if false
- * @param Bool $fromMaster Whether to query the master or slave database
- * @return Array of Blocks
+ * @param bool $isAnon Exclude anonymous-only blocks if false
+ * @param bool $fromMaster Whether to query the master or slave database
+ * @return array Array of Blocks
* @since 1.22
*/
public static function getBlocksForIPList( array $ipChain, $isAnon, $fromMaster = false ) {
* - If there are multiple exact or range blocks at the same level, the one chosen
* is random
- * @param Array $ipChain list of IPs (strings). This is used to determine how "close"
+ * @param array $ipChain List of IPs (strings). This is used to determine how "close"
* a block is to the server, and if a block matches exactly, or is in a range.
* The order is furthest from the server to nearest e.g., (Browser, proxy1, proxy2,
* local-squid, ...)
- * @param Array $block Array of blocks
+ * @param array $block Array of blocks
* @return Block|null the "best" block from the list
*/
public static function chooseBlock( array $blocks, array $ipChain ) {
* as a string; for User objects this will return User::__toString()
* which in turn gives User::getName().
*
- * @param $target String|Int|User|null
+ * @param string|int|User|null $target
* @return array( User|String|null, Block::TYPE_ constant|null )
*/
public static function parseTarget( $target ) {
/**
* Get the type of target for this particular block
- * @return Block::TYPE_ constant, will never be TYPE_ID
+ * @return int Block::TYPE_ constant, will never be TYPE_ID
*/
public function getType() {
return $this->mAuto
* Get the target for this particular Block. Note that for autoblocks,
* this returns the unredacted name; frontend functions need to call $block->getRedactedName()
* in this situation.
- * @return User|String
+ * @return User|string
*/
public function getTarget() {
return $this->target;
/**
* @since 1.19
*
- * @return Mixed|string
+ * @return mixed|string
*/
public function getExpiry() {
return $this->mExpiry;
/**
* Set the target for this block, and update $this->type accordingly
- * @param $target Mixed
+ * @param mixed $target
*/
public function setTarget( $target ) {
list( $this->target, $this->type ) = self::parseTarget( $target );
/**
* Set the user who implemented (or will implement) this block
- * @param $user User|string Local User object or username string for foreign users
+ * @param User|string $user Local User object or username string for foreign users
*/
public function setBlocker( $user ) {
$this->blocker = $user;
* Sets if the cache should be enabled or not.
*
* @since 1.20
- * @param boolean $cacheEnabled
+ * @param bool $cacheEnabled
*/
function setCacheEnabled( $cacheEnabled );
*
* @since 1.20
*
- * @param integer|null $cacheExpiry Sets the cache expiry, either ttl in seconds or unix timestamp.
- * @param boolean|null $cacheEnabled Sets if the cache should be enabled or not.
+ * @param int|null $cacheExpiry Sets the cache expiry, either ttl in seconds or unix timestamp.
+ * @param bool|null $cacheEnabled Sets if the cache should be enabled or not.
*/
function startCache( $cacheExpiry = null, $cacheEnabled = null );
*
* @since 1.20
*
- * @param integer $cacheExpiry
+ * @param int $cacheExpiry
*/
function setExpiry( $cacheExpiry );
}
* The time to live for the cache, in seconds or a unix timestamp indicating the point of expiry.
*
* @since 1.20
- * @var integer
+ * @var int
*/
protected $cacheExpiry = 3600;
* Null if this information is not available yet.
*
* @since 1.20
- * @var boolean|null
+ * @var bool|null
*/
protected $hasCached = null;
* If the cache is enabled or not.
*
* @since 1.20
- * @var boolean
+ * @var bool
*/
protected $cacheEnabled = true;
* Sets if the cache should be enabled or not.
*
* @since 1.20
- * @param boolean $cacheEnabled
+ * @param bool $cacheEnabled
*/
public function setCacheEnabled( $cacheEnabled ) {
$this->cacheEnabled = $cacheEnabled;
*
* @since 1.20
*
- * @param integer|null $cacheExpiry Sets the cache expiry, either ttl in seconds or unix timestamp.
- * @param boolean|null $cacheEnabled Sets if the cache should be enabled or not.
+ * @param int|null $cacheExpiry Sets the cache expiry, either ttl in seconds or unix timestamp.
+ * @param bool|null $cacheEnabled Sets if the cache should be enabled or not.
*/
public function startCache( $cacheExpiry = null, $cacheEnabled = null ) {
if ( is_null( $this->hasCached ) ) {
* @since 1.20
*
* @param IContextSource $context
- * @param boolean $includePurgeLink
+ * @param bool $includePurgeLink
*
* @return string
*/
*
* @since 1.20
*
- * @param integer $cacheExpiry
+ * @param int $cacheExpiry
*/
public function setExpiry( $cacheExpiry ) {
$this->cacheExpiry = $cacheExpiry;
*
* @since 1.20
*
- * @param $handlerFunction
+ * @param callable $handlerFunction
*/
public function setOnInitializedHandler( $handlerFunction ) {
$this->onInitHandler = $handlerFunction;
/**
* Factory function.
*
- * @param $title Title for the category page
- * @return Category|bool on a totally invalid name
+ * @param Title $title Title for the category page
+ * @return Category|bool On a totally invalid name
*/
public static function newFromTitle( $title ) {
$cat = new self();
/**
* Factory function.
*
- * @param $id Integer: a category id
+ * @param int $id A category id
* @return Category
*/
public static function newFromID( $id ) {
/**
* Factory function, for constructing a Category object from a result set
*
- * @param $row Result set row, must contain the cat_xxx fields. If the
+ * @param object $row Result set row, must contain the cat_xxx fields. If the
* fields are null, the resulting Category object will represent an empty
* category if a title object was given. If the fields are null and no
* title was given, this method fails and returns false.
- * @param Title $title optional title object for the category represented by
+ * @param Title $title Optional title object for the category represented by
* the given row. May be provided if it is already known, to avoid having
* to re-create a title object later.
* @return Category
/**
* Fetch a TitleArray of up to $limit category members, beginning after the
* category sort key $offset.
- * @param $limit integer
- * @param $offset string
- * @return TitleArray object for category members.
+ * @param int $limit
+ * @param string $offset
+ * @return TitleArray TitleArray object for category members.
*/
public function getMembers( $limit = false, $offset = '' ) {
wfProfileIn( __METHOD__ );
$imgsNoGallery;
/**
- * @var Array
+ * @var array
*/
var $nextPage;
/**
- * @var Array
+ * @var array
*/
var $flip;
* Constructor
*
* @since 1.19 $context is a second, required parameter
- * @param $title Title
- * @param $context IContextSource
+ * @param Title $title
+ * @param IContextSource $context
* @param array $from An array with keys page, subcat,
* and file for offset of results of each section (since 1.17)
* @param array $until An array with 3 keys for until of each section (since 1.17)
- * @param $query Array
+ * @param array $query
*/
function __construct( $title, IContextSource $context, $from = array(),
$until = array(), $query = array()
/**
* Add a subcategory to the internal lists, using a Category object
- * @param $cat Category
- * @param $sortkey
- * @param $pageLength
+ * @param Category $cat
+ * @param string $sortkey
+ * @param int $pageLength
*/
function addSubcategoryObject( Category $cat, $sortkey, $pageLength ) {
// Subcategory; strip the 'Category' namespace from the link text.
/**
* Add a page in the image namespace
- * @param $title Title
- * @param $sortkey
- * @param $pageLength
- * @param $isRedirect bool
+ * @param Title $title
+ * @param string $sortkey
+ * @param int $pageLength
+ * @param bool $isRedirect
*/
function addImage( Title $title, $sortkey, $pageLength, $isRedirect = false ) {
global $wgContLang;
/**
* Add a miscellaneous page
- * @param $title
- * @param $sortkey
- * @param $pageLength
- * @param $isRedirect bool
+ * @param Title $title
+ * @param string $sortkey
+ * @param int $pageLength
+ * @param bool $isRedirect
*/
function addPage( $title, $sortkey, $pageLength, $isRedirect = false ) {
global $wgContLang;
* Format a list of articles chunked by letter, either as a
* bullet list or a columnar format, depending on the length.
*
- * @param $articles Array
- * @param $articles_start_char Array
- * @param $cutoff Int
- * @return String
+ * @param array $articles
+ * @param array $articles_start_char
+ * @param int $cutoff
+ * @return string
* @private
*/
function formatList( $articles, $articles_start_char, $cutoff = 6 ) {
* More distant TODO: Scrap this and use CSS columns, whenever IE finally
* supports those.
*
- * @param $articles Array
- * @param $articles_start_char Array
- * @return String
+ * @param array $articles
+ * @param string[] $articles_start_char
+ * @return string
* @private
*/
static function columnList( $articles, $articles_start_char ) {
/**
* Format a list of articles chunked by letter in a bullet list.
- * @param $articles Array
- * @param $articles_start_char Array
- * @return String
+ * @param array $articles
+ * @param string[] $articles_start_char
+ * @return string
* @private
*/
static function shortList( $articles, $articles_start_char ) {
* @param string $last The 'from' parameter for the generated URL
* @param string $type A prefix for parameters, 'page' or 'subcat' or
* 'file'
- * @return String HTML
+ * @return string HTML
*/
private function pagingLinks( $first, $last, $type = '' ) {
$prevLink = $this->msg( 'prevn' )->numParams( $this->limit )->escaped();
/**
* Initializes the instance. Do this prior to calling run().
- * @param $article_ids Array of article IDs
- * @param $categories FIXME
+ * @param array $article_ids Array of article IDs
+ * @param array $categories FIXME
* @param string $mode FIXME, default 'AND'.
* @todo FIXME: $categories/$mode
*/
* This functions recurses through the parent representation, trying to match the conditions
* @param int $id The article/category to check
* @param array $conds The array of categories to match
- * @param array $path used to check for recursion loops
+ * @param array $path Used to check for recursion loops
* @return bool Does this match the conditions?
*/
function check( $id, &$conds, $path = array() ) {
*
* @param string $tag tag
*
- * @return String: Short description of the tag from "mediawiki:tag-$tag" if this message exists,
- * html-escaped version of $tag otherwise
+ * @return string Short description of the tag from "mediawiki:tag-$tag" if this message exists,
+ * html-escaped version of $tag otherwise
*/
public static function tagDescription( $tag ) {
$msg = wfMessage( "tag-$tag" );
* Add tags to a change given its rc_id, rev_id and/or log_id
*
* @param string|array $tags Tags to add to the change
- * @param $rc_id int: rc_id of the change to add the tags to
- * @param $rev_id int: rev_id of the change to add the tags to
- * @param $log_id int: log_id of the change to add the tags to
+ * @param int $rc_id rc_id of the change to add the tags to
+ * @param int $rev_id rev_id of the change to add the tags to
+ * @param int $log_id Log_id of the change to add the tags to
* @param string $params params to put in the ct_params field of table 'change_tag'
*
* @throws MWException
- * @return bool: false if no changes are made, otherwise true
+ * @return bool false if no changes are made, otherwise true
*
* @exception MWException when $rc_id, $rev_id and $log_id are all null
*/
*
* @param string|array $tables Table names, see DatabaseBase::select
* @param string|array $fields Fields used in query, see DatabaseBase::select
- * @param string|array $conds conditions used in query, see DatabaseBase::select
- * @param $join_conds Array: join conditions, see DatabaseBase::select
- * @param array $options options, see Database::select
+ * @param string|array $conds Conditions used in query, see DatabaseBase::select
+ * @param array $join_conds Join conditions, see DatabaseBase::select
+ * @param array $options Options, see Database::select
* @param bool|string $filter_tag Tag to select on
*
* @throws MWException When unable to determine appropriate JOIN condition for tagging
* Build a text box to select a change tag
*
* @param string $selected tag to select by default
- * @param $fullForm Boolean:
+ * @param bool $fullForm
* - if false, then it returns an array of (label, form).
* - if true, it returns an entire form around the selector.
- * @param $title Title object to send the form to.
+ * @param Title $title Title object to send the form to.
* Used when, and only when $fullForm is true.
- * @return String or array:
+ * @return string|array
* - if $fullForm is false: Array with
* - if $fullForm is true: String, html fragment
*/
*
* Tries memcached first.
*
- * @return Array of strings: tags
+ * @return string[] Array of strings: tags
*/
public static function listDefinedTags() {
// Caching...
/**
* Constructor
*
- * @param string $format feed's format (either 'rss' or 'atom')
- * @param string $type type of feed (for cache keys)
+ * @param string $format Feed's format (either 'rss' or 'atom')
+ * @param string $type Type of feed (for cache keys)
*/
public function __construct( $format, $type ) {
$this->format = $format;
/**
* Get a ChannelFeed subclass object to use
*
- * @param string $title feed's title
- * @param string $description feed's description
- * @param string $url url of origin page
- * @return ChannelFeed subclass or false on failure
+ * @param string $title Feed's title
+ * @param string $description Feed's description
+ * @param string $url Url of origin page
+ * @return ChannelFeed|bool ChannelFeed subclass or false on failure
*/
public function getFeedObject( $title, $description, $url ) {
global $wgSitename, $wgLanguageCode, $wgFeedClasses;
/**
* Save to feed result to $messageMemc
*
- * @param string $feed feed's content
- * @param string $timekey memcached key of the last modification
- * @param string $key memcached key of the content
+ * @param string $feed Feed's content
+ * @param string $timekey Memcached key of the last modification
+ * @param string $key Memcached key of the content
*/
public function saveToCache( $feed, $timekey, $key ) {
global $messageMemc;
/**
* Try to load the feed result from $messageMemc
*
- * @param $lastmod Integer: timestamp of the last item in the recentchanges table
- * @param string $timekey memcached key of the last modification
- * @param string $key memcached key of the content
- * @return string|bool feed's content on cache hit or false on cache miss
+ * @param int $lastmod Timestamp of the last item in the recentchanges table
+ * @param string $timekey Memcached key of the last modification
+ * @param string $key Memcached key of the content
+ * @return string|bool Feed's content on cache hit or false on cache miss
*/
public function loadFromCache( $lastmod, $timekey, $key ) {
global $wgFeedCacheTimeout, $wgOut, $messageMemc;
/**
* Generate the feed items given a row from the database, printing the feed.
- * @param $rows DatabaseBase resource with recentchanges rows
- * @param $feed Feed object
+ * @param object $rows DatabaseBase resource with recentchanges rows
+ * @param Feed $feed
*/
public static function generateFeed( $rows, &$feed ) {
wfProfileIn( __METHOD__ );
/**
* Generate the feed items given a row from the database.
- * @param $rows DatabaseBase resource with recentchanges rows
+ * @param object $rows DatabaseBase resource with recentchanges rows
*/
public static function buildItems( $rows ) {
wfProfileIn( __METHOD__ );
* This function will return false on older PHPs.
*
* @since 1.21
- * @return string|false
+ * @return string|bool
*/
static function getICUVersion() {
return defined( 'INTL_ICU_VERSION' ) ? INTL_ICU_VERSION : false;
* currently in use, or false when it can't be determined.
*
* @since 1.21
- * @return string|false
+ * @return string|bool
*/
static function getUnicodeVersionForICU() {
$icuVersion = IcuCollation::getICUVersion();
* cookies. Used internally after a request to parse the
* Set-Cookie headers.
*
- * @param string $value the value of the cookie
- * @param array $attr possible key/values:
+ * @param string $value The value of the cookie
+ * @param array $attr Possible key/values:
* expires A date string
* path The path this cookie is used on
* domain Domain this cookie is used on
* @todo fixme fails to detect 2-letter top-level domains for single-domain use (probably
* not a big problem in practice, but there are test cases)
*
- * @param string $domain the domain to validate
+ * @param string $domain The domain to validate
* @param string $originDomain (optional) the domain the cookie originates from
- * @return Boolean
+ * @return bool
*/
public static function validateCookieDomain( $domain, $originDomain = null ) {
// Don't allow a trailing dot
/**
* Serialize the cookie jar into a format useful for HTTP Request headers.
*
- * @param string $path the path that will be used. Required.
- * @param string $domain the domain that will be used. Required.
- * @return String
+ * @param string $path The path that will be used. Required.
+ * @param string $domain The domain that will be used. Required.
+ * @return string
*/
public function serializeToHttpRequest( $path, $domain ) {
$ret = '';
}
/**
- * @param $domain
+ * @param string $domain
* @return bool
*/
protected function canServeDomain( $domain ) {
}
/**
- * @param $path
+ * @param string $path
* @return bool
*/
protected function canServePath( $path ) {
/**
* Set a cookie in the cookie jar. Make sure only one cookie per-name exists.
* @see Cookie::set()
+ * @param string $name
+ * @param string $value
+ * @param array $attr
*/
public function setCookie( $name, $value, $attr ) {
/* cookies: case insensitive, so this should work.
/**
* @see Cookie::serializeToHttpRequest
+ * @param string $path
+ * @param string $domain
* @return string
*/
public function serializeToHttpRequest( $path, $domain ) {
/**
* Parse the content of an Set-Cookie HTTP Response header.
*
- * @param $cookie String
- * @param string $domain cookie's domain
+ * @param string $cookie
+ * @param string $domain Cookie's domain
* @return null
*/
public function parseCookieResponseHeader( $cookie, $domain ) {
*/
$wgImgAuthDetails = false;
-/**
- * If this is enabled, img_auth.php will not allow image access unless the wiki
- * is private. This improves security when image uploads are hosted on a
- * separate domain.
- */
-$wgImgAuthPublicTest = true;
-
/**
* Map of relative URL directories to match to internal mwstore:// base storage paths.
* For img_auth.php requests, everything after "img_auth.php/" is checked to see
* $wgSharedPrefix is the table prefix for the shared database. It defaults to
* $wgDBprefix.
*
- * @deprecated In new code, use the $wiki parameter to wfGetLB() to access
- * remote databases. Using wfGetLB() allows the shared database to reside on
- * separate servers to the wiki's own database, with suitable configuration
- * of $wgLBFactoryConf.
+ * @deprecated since 1.21 In new code, use the $wiki parameter to wfGetLB() to
+ * access remote databases. Using wfGetLB() allows the shared database to
+ * reside on separate servers to the wiki's own database, with suitable
+ * configuration of $wgLBFactoryConf.
*/
$wgSharedDB = null;
/**
* Has a summary been preset using GET parameter &summary= ?
- * @var Bool
+ * @var bool
*/
var $hasPresetSummary = false;
public $allowNonTextContent = false;
/**
- * @param $article Article
+ * @param Article $article
*/
public function __construct( Article $article ) {
$this->mArticle = $article;
/**
* Set the context Title object
*
- * @param $title Title object or null
+ * @param Title|null $title Title object or null
*/
public function setContextTitle( $title ) {
$this->mContextTitle = $title;
* If not set, $wgTitle will be returned. This behavior might change in
* the future to return $this->mTitle instead.
*
- * @return Title object
+ * @return Title
*/
public function getContextTitle() {
if ( is_null( $this->mContextTitle ) ) {
* "View source for ..." page displaying the source code after the error message.
*
* @since 1.19
- * @param array $permErrors of permissions errors, as returned by
- * Title::getUserPermissionsErrors().
+ * @param array $permErrors Array of permissions errors, as returned by
+ * Title::getUserPermissionsErrors().
* @throws PermissionsError
*/
protected function displayPermissionsError( array $permErrors ) {
/**
* This function collects the form data and uses it to populate various member variables.
- * @param $request WebRequest
+ * @param WebRequest $request
* @throws ErrorPageError
*/
function importFormData( &$request ) {
* this method should be overridden and return the page text that will be used
* for saving, preview parsing and so on...
*
- * @param $request WebRequest
+ * @param WebRequest $request
*/
protected function importContentFormData( &$request ) {
return; // Don't do anything, EditPage already extracted wpTextbox1
/**
* Initialise form fields in the object
* Called on the first invocation, e.g. when a user clicks an edit link
- * @return bool -- if the requested section is valid
+ * @return bool If the requested section is valid
*/
function initialiseForm() {
global $wgUser;
/**
* Fetch initial editing page content.
*
- * @param $def_text string|bool
- * @return mixed string on success, $def_text for invalid sections
+ * @param string|bool $def_text
+ * @return string|bool string on success, $def_text for invalid sections
* @private
* @deprecated since 1.21, get WikiPage::getContent() instead.
*/
/**
* @param Content|null $def_content The default value to return
*
- * @return mixed Content on success, $def_content for invalid sections
+ * @return Content|null Content on success, $def_content for invalid sections
*
* @since 1.21
*/
/**
* Use this method before edit() to preload some text into the edit box
*
- * @param $text string
+ * @param string $text
* @deprecated since 1.21, use setPreloadedContent() instead.
*/
public function setPreloadedText( $text ) {
/**
* Use this method before edit() to preload some content into the edit box
*
- * @param $content Content
+ * @param Content $content
*
* @since 1.21
*/
*
* @param string $preload representing the title to preload from.
*
- * @return String
+ * @return string
*
* @deprecated since 1.21, use getPreloadedContent() instead
*/
* Get the contents to be preloaded into the box, either set by
* an earlier setPreloadText() or by loading the given page.
*
- * @param string $preload representing the title to preload from.
- * @param Array $params Parameters to use (interface-message style) in the preloaded text
+ * @param string $preload Representing the title to preload from.
+ * @param array $params Parameters to use (interface-message style) in the preloaded text
*
* @return Content
*
/**
* Make sure the form isn't faking a user's credentials.
*
- * @param $request WebRequest
+ * @param WebRequest $request
* @return bool
* @private
*/
/**
* Run hooks that can filter edits just before they get saved.
*
- * @param Content $content the Content to filter.
+ * @param Content $content The Content to filter.
* @param Status $status For reporting the outcome to the caller
* @param User $user The user performing the edit
*
/**
* Attempt submission (no UI)
*
- * @param array $result array to add statuses to, currently with the possible keys:
+ * @param array $result Array to add statuses to, currently with the possible keys:
* spam - string - Spam string from content if any spam is detected by matchSpamRegex
* sectionanchor - string - Section anchor for a section save
* nullEdit - boolean - Set if doEditContent is OK. True if null edit, false otherwise.
* redirect - boolean - Set if doEditContent is OK. True if resulting revision is a redirect
* @param bool $bot True if edit is being made under the bot right.
*
- * @return Status object, possibly with a message, but always with one of the AS_* constants in $status->value,
+ * @return Status Status object, possibly with a message, but always with one of the AS_* constants in $status->value,
*
* FIXME: This interface is TERRIBLE, but hard to get rid of due to various error display idiosyncrasies. There are
* also lots of cases where error metadata is set in the object and retrieved later instead of being returned, e.g.
/**
* Attempts to merge text content with base and current revisions
*
- * @param $editText string
+ * @param string $editText
*
* @return bool
* @deprecated since 1.21, use mergeChangesIntoContent() instead
*
* @since 1.21
*
- * @param $editContent
+ * @param Content $editContent
*
* @return bool
*/
/**
* Check given input text against $wgSpamRegex, and return the text of the first match.
*
- * @param $text string
+ * @param string $text
*
- * @return string|bool matching string or false
+ * @return string|bool Matching string or false
*/
public static function matchSpamRegex( $text ) {
global $wgSpamRegex;
/**
* Check given input text against $wgSummarySpamRegex, and return the text of the first match.
*
- * @param $text string
+ * @param string $text
*
- * @return string|bool matching string or false
+ * @return string|bool Matching string or false
*/
public static function matchSummarySpamRegex( $text ) {
global $wgSummarySpamRegex;
}
/**
- * @param $text string
- * @param $regexes array
+ * @param string $text
+ * @param array $regexes
* @return bool|string
*/
protected static function matchSpamRegexInternal( $text, $regexes ) {
* content.
*
* @param Content|null|bool|string $content
- * @return String the editable text form of the content.
+ * @return string The editable text form of the content.
*
* @throws MWException if $content is not an instance of TextContent and $this->allowNonTextContent is not true.
*/
/**
* Send the edit form and related headers to $wgOut
- * @param $formCallback Callback|null that takes an OutputPage parameter; will be called
+ * @param callable|null $formCallback That takes an OutputPage parameter; will be called
* during form output near the top, for captchas and the like.
*/
function showEditForm( $formCallback = null ) {
* Extract the section title from current section text, if any.
*
* @param string $text
- * @return Mixed|string or false
+ * @return string|bool string or false
*/
public static function extractSectionTitle( $text ) {
preg_match( "/^(=+)(.+)\\1\\s*(\n|$)/i", $text, $matches );
*
* @param string $summary The value of the summary input
* @param string $labelText The html to place inside the label
- * @param array $inputAttrs of attrs to use on the input
- * @param array $spanLabelAttrs of attrs to use on the span inside the label
+ * @param array $inputAttrs Array of attrs to use on the input
+ * @param array $spanLabelAttrs Array of attrs to use on the span inside the label
*
* @return array An array in the format array( $label, $input )
*/
* @param bool $isSubjectPreview true if this is the section subject/title
* up top, or false if this is the comment summary
* down below the textarea
- * @param string $summary the text of the summary to display
+ * @param string $summary The text of the summary to display
* @return string
*/
protected function getSummaryPreview( $isSubjectPreview, $summary = "" ) {
* The $textoverride method can be used by subclasses overriding showContentForm
* to pass back to this method.
*
- * @param array $customAttribs of html attributes to use in the textarea
- * @param string $textoverride optional text to override $this->textarea1 with
+ * @param array $customAttribs Array of html attributes to use in the textarea
+ * @param string $textoverride Optional text to override $this->textarea1 with
*/
protected function showTextbox1( $customAttribs = null, $textoverride = null ) {
if ( $this->wasDeletedSinceLastEdit() && $this->formtype == 'save' ) {
* Append preview output to $wgOut.
* Includes category rendering if this is a category page.
*
- * @param string $text the HTML to be output for the preview.
+ * @param string $text The HTML to be output for the preview.
*/
protected function showPreview( $text ) {
global $wgOut;
* Get the copyright warning, by default returns wikitext
*
* @param Title $title
- * @param string $format output format, valid values are any function of
- * a Message object
+ * @param string $format Output format, valid values are any function of a Message object
* @return string
*/
public static function getCopyrightWarning( $title, $format = 'plain' ) {
* variable in the constructor is not enough. This can be used when the
* EditPage lives inside of a Special page rather than a custom page action.
*
- * @param $title Title object for which is being edited (where we go to for &action= links)
+ * @param Title $title Title object for which is being edited (where we go to for &action= links)
* @return string
*/
protected function getActionURL( Title $title ) {
* Note that we rely on the logging table, which hasn't been always there,
* but that doesn't matter, because this only applies to brand new
* deletes.
+ * @return bool
*/
protected function wasDeletedSinceLastEdit() {
if ( $this->deletedSinceEdit !== null ) {
}
/**
- * @return Array
+ * @return array
*/
function getTemplates() {
if ( $this->preview || $this->section != '' ) {
* minor and watch
*
* @param int $tabindex Current tabindex
- * @param array $checked of checkbox => bool, where bool indicates the checked
+ * @param array $checked Array of checkbox => bool, where bool indicates the checked
* status of the checkbox
*
* @return array
/**
* Show "your edit contains spam" page with your diff and text
*
- * @param $match string|Array|bool Text (or array of texts) which triggered one or more filters
+ * @param string|array|bool $match Text (or array of texts) which triggered one or more filters
*/
public function spamPageWithContent( $match = false ) {
global $wgOut, $wgLang;
* various row objects and XML output for filtering. Filters
* can be chained or used as callbacks.
*
- * @param $sink mixed
+ * @param DumpOutput $sink
*/
public function setOutputSink( &$sink ) {
$this->sink =& $sink;
/**
* Dumps a series of page and revision records for those pages
* in the database falling within the page_id range given.
- * @param int $start inclusive lower limit (this id is included)
+ * @param int $start Inclusive lower limit (this id is included)
* @param int $end Exclusive upper limit (this id is not included)
* If 0, no upper limit.
*/
/**
* Dumps a series of page and revision records for those pages
* in the database with revisions falling within the rev_id range given.
- * @param int $start inclusive lower limit (this id is included)
+ * @param int $start Inclusive lower limit (this id is included)
* @param int $end Exclusive upper limit (this id is not included)
* If 0, no upper limit.
*/
}
/**
- * @param $title Title
+ * @param Title $title
*/
public function pageByTitle( $title ) {
$this->dumpFrom(
}
/**
- * @param $name string
+ * @param string $name
* @throws MWException
*/
public function pageByName( $name ) {
}
/**
- * @param $names array
+ * @param array $names
*/
public function pagesByName( $names ) {
foreach ( $names as $name ) {
}
/**
- * @param $start int
- * @param $end int
+ * @param int $start
+ * @param int $end
*/
public function logsByRange( $start, $end ) {
$condition = 'log_id >= ' . intval( $start );
* Not called by default (depends on $this->list_authors)
* Can be set by Special:Export when not exporting whole history
*
- * @param $cond
+ * @param array $cond
*/
protected function do_list_authors( $cond ) {
wfProfileIn( __METHOD__ );
}
/**
- * @param $cond string
+ * @param string $cond
* @throws MWException
* @throws Exception
*/
* separate database connection not managed by LoadBalancer; some
* blob storage types will make queries to pull source data.
*
- * @param $resultset ResultWrapper
+ * @param ResultWrapper $resultset
*/
protected function outputPageStream( $resultset ) {
$last = null;
}
/**
- * @param $resultset array
+ * @param array $resultset
*/
protected function outputLogStream( $resultset ) {
foreach ( $resultset as $row ) {
* Opens a "<page>" section on the output stream, with data
* from the given database row.
*
- * @param $row object
+ * @param object $row
* @return string
*/
public function openPage( $row ) {
* Dumps a "<revision>" section on the output stream, with
* data filled in from the given database row.
*
- * @param $row object
+ * @param object $row
* @return string
* @access private
*/
* Dumps a "<logitem>" section on the output stream, with
* data filled in from the given database row.
*
- * @param $row object
+ * @param object $row
* @return string
* @access private
*/
}
/**
- * @param $timestamp string
+ * @param string $timestamp
* @param string $indent Default to six spaces
* @return string
*/
}
/**
- * @param $id
- * @param $text string
+ * @param int $id
+ * @param string $text
* @param string $indent Default to six spaces
* @return string
*/
/**
* Warning! This data is potentially inconsistent. :(
- * @param $row
- * @param $dumpContents bool
+ * @param object $row
+ * @param bool $dumpContents
* @return string
*/
function writeUploads( $row, $dumpContents = false ) {
/**
* @param File $file
- * @param $dumpContents bool
+ * @param bool $dumpContents
* @return string
*/
function writeUpload( $file, $dumpContents = false ) {
class DumpOutput {
/**
- * @param $string string
+ * @param string $string
*/
function writeOpenStream( $string ) {
$this->write( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
$this->write( $string );
}
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
$this->write( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeClosePage( $string ) {
$this->write( $string );
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
$this->write( $string );
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeLogItem( $rev, $string ) {
$this->write( $string );
/**
* Override to write to a different stream type.
- * @param $string string
+ * @param string $string
* @return bool
*/
function write( $string ) {
* and reopen new file with the old name. Use this
* for writing out a file in multiple pieces
* at specified checkpoints (e.g. every n hours).
- * @param $newname mixed File name. May be a string or an array with one element
+ * @param string|array $newname File name. May be a string or an array with one element
*/
function closeRenameAndReopen( $newname ) {
}
* Close the old file, and move it to a specified name.
* Use this for the last piece of a file written out
* at specified checkpoints (e.g. every n hours).
- * @param $newname mixed File name. May be a string or an array with one element
+ * @param string|array $newname File name. May be a string or an array with one element
* @param bool $open If true, a new file with the old filename will be opened
* again for writing (default: false)
*/
protected $handle = false, $filename;
/**
- * @param $file
+ * @param string $file
*/
function __construct( $file ) {
$this->handle = fopen( $file, "wt" );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
parent::writeCloseStream( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function write( $string ) {
fputs( $this->handle, $string );
}
/**
- * @param $newname
+ * @param string $newname
*/
function closeRenameAndReopen( $newname ) {
$this->closeAndRename( $newname, true );
}
/**
- * @param $newname
+ * @param string $newname
* @throws MWException
*/
function renameOrException( $newname ) {
}
/**
- * @param $newname array
- * @return mixed
+ * @param array $newname
+ * @return string
* @throws MWException
*/
function checkRenameArgCount( $newname ) {
}
/**
- * @param $newname mixed
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$newname = $this->checkRenameArgCount( $newname );
protected $procOpenResource = false;
/**
- * @param $command
- * @param $file null
+ * @param string $command
+ * @param string $file
*/
function __construct( $command, $file = null ) {
if ( !is_null( $file ) ) {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
parent::writeCloseStream( $string );
}
/**
- * @param $command
+ * @param string $command
*/
function startCommand( $command ) {
$spec = array(
}
/**
- * @param mixed $newname
+ * @param string $newname
*/
function closeRenameAndReopen( $newname ) {
$this->closeAndRename( $newname, true );
}
/**
- * @param $newname mixed
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$newname = $this->checkRenameArgCount( $newname );
class DumpGZipOutput extends DumpPipeOutput {
/**
- * @param $file string
+ * @param string $file
*/
function __construct( $file ) {
parent::__construct( "gzip", $file );
class DumpBZip2Output extends DumpPipeOutput {
/**
- * @param $file string
+ * @param string $file
*/
function __construct( $file ) {
parent::__construct( "bzip2", $file );
class Dump7ZipOutput extends DumpPipeOutput {
/**
- * @param $file string
+ * @param string $file
*/
function __construct( $file ) {
$command = $this->setup7zCommand( $file );
}
/**
- * @param $file string
+ * @param string $file
* @return string
*/
function setup7zCommand( $file ) {
}
/**
- * @param $newname string
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$newname = $this->checkRenameArgCount( $newname );
protected $sendingThisPage;
/**
- * @param $sink DumpOutput
+ * @param DumpOutput $sink
*/
function __construct( &$sink ) {
$this->sink =& $sink;
}
/**
- * @param $string string
+ * @param string $string
*/
function writeOpenStream( $string ) {
$this->sink->writeOpenStream( $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
$this->sink->writeCloseStream( $string );
}
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
$this->sendingThisPage = $this->pass( $page, $string );
}
/**
- * @param $string string
+ * @param string $string
*/
function writeClosePage( $string ) {
if ( $this->sendingThisPage ) {
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
if ( $this->sendingThisPage ) {
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeLogItem( $rev, $string ) {
$this->sink->writeRevision( $rev, $string );
}
/**
- * @param $newname string
+ * @param string $newname
*/
function closeRenameAndReopen( $newname ) {
$this->sink->closeRenameAndReopen( $newname );
}
/**
- * @param $newname string
- * @param $open bool
+ * @param string $newname
+ * @param bool $open
*/
function closeAndRename( $newname, $open = false ) {
$this->sink->closeAndRename( $newname, $open );
/**
* Override for page-based filter types.
- * @param $page
+ * @param object $page
* @return bool
*/
function pass( $page ) {
class DumpNotalkFilter extends DumpFilter {
/**
- * @param $page
+ * @param object $page
* @return bool
*/
function pass( $page ) {
var $namespaces = array();
/**
- * @param $sink DumpOutput
- * @param $param
+ * @param DumpOutput $sink
+ * @param array $param
* @throws MWException
*/
function __construct( &$sink, $param ) {
}
/**
- * @param $page
+ * @param object $page
* @return bool
*/
function pass( $page ) {
var $page, $pageString, $rev, $revString;
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
$this->page = $page;
}
/**
- * @param $string string
+ * @param string $string
*/
function writeClosePage( $string ) {
if ( $this->rev ) {
}
/**
- * @param $rev
- * @param $string string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
if ( $rev->rev_id == $this->page->page_latest ) {
class DumpMultiWriter {
/**
- * @param $sinks
+ * @param array $sinks
*/
function __construct( $sinks ) {
$this->sinks = $sinks;
}
/**
- * @param $string string
+ * @param string $string
*/
function writeOpenStream( $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
}
/**
- * @param $string string
+ * @param string $string
*/
function writeCloseStream( $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
}
/**
- * @param $page
- * @param $string string
+ * @param object $page
+ * @param string $string
*/
function writeOpenPage( $page, $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
}
/**
- * @param $string
+ * @param string $string
*/
function writeClosePage( $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
}
/**
- * @param $rev
- * @param $string
+ * @param object $rev
+ * @param string $string
*/
function writeRevision( $rev, $string ) {
for ( $i = 0; $i < $this->count; $i++ ) {
}
/**
- * @param $newnames
+ * @param array $newnames
*/
function closeRenameAndReopen( $newnames ) {
$this->closeAndRename( $newnames, true );
}
/**
- * @param $newnames array
+ * @param array $newnames
* @param bool $open
*/
function closeAndRename( $newnames, $open = false ) {
}
/**
- * @param $string string
+ * @param string $string
* @return string
*/
function xmlsafe( $string ) {
class Fallback {
/**
- * @param $from
- * @param $to
- * @param $string
+ * @param string $from
+ * @param string $to
+ * @param string $string
* @return string
*/
public static function iconv( $from, $to, $string ) {
* can be up to 100x slower than native if the text is heavily
* multibyte and we have to slog through a few hundred kb.
*
- * @param $str
- * @param $start
- * @param $count string
+ * @param string $str
+ * @param int $start
+ * @param string $count
*
* @return string
*/
}
/**
- * @param $str
- * @param $splitPos
+ * @param string $str
+ * @param int $splitPos
* @return int
*/
public static function mb_substr_split_unicode( $str, $splitPos ) {
/**
* Fallback implementation of mb_strlen, hardcoded to UTF-8.
* @param string $str
- * @param string $enc optional encoding; ignored
+ * @param string $enc Optional encoding; ignored
* @return int
*/
public static function mb_strlen( $str, $enc = '' ) {
/**
* Fallback implementation of mb_strpos, hardcoded to UTF-8.
- * @param $haystack String
- * @param $needle String
- * @param string $offset optional start position
- * @param string $encoding optional encoding; ignored
+ * @param string $haystack
+ * @param string $needle
+ * @param string $offset Optional start position
+ * @param string $encoding Optional encoding; ignored
* @return int
*/
public static function mb_strpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
/**
* Fallback implementation of mb_strrpos, hardcoded to UTF-8.
- * @param $haystack String
- * @param $needle String
+ * @param string $haystack
+ * @param string $needle
* @param string $offset optional start position
* @param string $encoding optional encoding; ignored
* @return int
* Constructor
*
* @param string|Title $title Item's title
- * @param $description String
+ * @param string $description
* @param string $url URL uniquely designating the item.
* @param string $date Item's date
* @param string $author Author's user name
- * @param $comments String
+ * @param string $comments
*/
function __construct( $title, $description, $url, $date = '', $author = '', $comments = '' ) {
$this->title = $title;
/**
* Encode $string so that it can be safely embedded in a XML document
*
- * @param string $string string to encode
- * @return String
+ * @param string $string String to encode
+ * @return string
*/
public function xmlEncode( $string ) {
$string = str_replace( "\r\n", "\n", $string );
/**
* Get the unique id of this item
*
- * @return String
+ * @return string
*/
public function getUniqueId() {
if ( $this->uniqueId ) {
/**
* set the unique id of an item
*
- * @param string $uniqueId unique id for the item
- * @param $rssIsPermalink Boolean: set to true if the guid (unique id) is a permalink (RSS feeds only)
+ * @param string $uniqueId Unique id for the item
+ * @param bool $rssIsPermalink Set to true if the guid (unique id) is a permalink (RSS feeds only)
*/
public function setUniqueId( $uniqueId, $rssIsPermalink = false ) {
$this->uniqueId = $uniqueId;
/**
* Get the title of this item; already xml-encoded
*
- * @return String
+ * @return string
*/
public function getTitle() {
return $this->xmlEncode( $this->title );
/**
* Get the URL of this item; already xml-encoded
*
- * @return String
+ * @return string
*/
public function getUrl() {
return $this->xmlEncode( $this->url );
/**
* Get the description of this item; already xml-encoded
*
- * @return String
+ * @return string
*/
public function getDescription() {
return $this->xmlEncode( $this->description );
/**
* Get the language of this item
*
- * @return String
+ * @return string
*/
public function getLanguage() {
global $wgLanguageCode;
/**
* Get the title of this item
*
- * @return String
+ * @return string
*/
public function getDate() {
return $this->date;
/**
* Get the author of this item; already xml-encoded
*
- * @return String
+ * @return string
*/
public function getAuthor() {
return $this->xmlEncode( $this->author );
/**
* Get the comment of this item; already xml-encoded
*
- * @return String
+ * @return string
*/
public function getComments() {
return $this->xmlEncode( $this->comments );
* Quickie hack... strip out wikilinks to more legible form from the comment.
*
* @param string $text wikitext
- * @return String
+ * @return string
*/
public static function stripComment( $text ) {
return preg_replace( '/\[\[([^]]*\|)?([^]]+)\]\]/', '\2', $text );
* @code
* print "<feed>";
* @endcode
- * @param $item
*/
abstract public function outHeader();
* @code
* print "<item>...</item>";
* @endcode
- * @param $item
+ * @param FeedItem $item
*/
abstract public function outItem( $item );
/**
* Format a date given a timestamp
*
- * @param $ts Integer: timestamp
- * @return String: date string
+ * @param int $ts Timestamp
+ * @return string Date string
*/
function formatTime( $ts ) {
return gmdate( 'D, d M Y H:i:s \G\M\T', wfTimestamp( TS_UNIX, $ts ) );
/**
* Output an RSS 2.0 item
- * @param $item FeedItem: item to be output
+ * @param FeedItem $item Item to be output
*/
function outItem( $item ) {
?>
/**
* Output a given item.
- * @param $item
+ * @param FeedItem $item
*/
function outItem( $item ) {
global $wgMimeType;
* If the feed should be purged; $timekey and $key will be removed from
* $messageMemc
*
- * @param string $timekey cache key of the timestamp of the last item
- * @param string $key cache key of feed's content
+ * @param string $timekey Cache key of the timestamp of the last item
+ * @param string $key Cache key of feed's content
*/
public static function checkPurge( $timekey, $key ) {
global $wgRequest, $wgUser, $messageMemc;
* Check whether feeds can be used and that $type is a valid feed type
*
* @param string $type feed type, as requested by the user
- * @return Boolean
+ * @return bool
*/
public static function checkFeedOutput( $type ) {
global $wgOut, $wgFeed, $wgFeedClasses;
/**
* Format a diff for the newsfeed
*
- * @param $row Object: row from the recentchanges table
- * @return String
+ * @param object $row Row from the recentchanges table
+ * @return string
*/
public static function formatDiff( $row ) {
$titleObj = Title::makeTitle( $row->rc_namespace, $row->rc_title );
/**
* Really format a diff for the newsfeed
*
- * @param $title Title object
- * @param $oldid Integer: old revision's id
- * @param $newid Integer: new revision's id
- * @param $timestamp Integer: new revision's timestamp
- * @param string $comment new revision's comment
- * @param string $actiontext text of the action; in case of log event
- * @return String
+ * @param Title $title Title object
+ * @param int $oldid Old revision's id
+ * @param int $newid New revision's id
+ * @param int $timestamp New revision's timestamp
+ * @param string $comment New revision's comment
+ * @param string $actiontext Text of the action; in case of log event
+ * @return string
*/
public static function formatDiffRow( $title, $oldid, $newid, $timestamp, $comment, $actiontext = '' ) {
global $wgFeedDiffCutoff, $wgLang;
* Generates a diff link. Used when the full diff is not wanted for example
* when $wgFeedDiffCutoff is 0.
*
- * @param $title Title object: used to generate the diff URL
- * @param $newid Integer newid for this diff
- * @param $oldid Integer|null oldid for the diff. Null means it is a new article
+ * @param Title $title Title object: used to generate the diff URL
+ * @param int $newid Newid for this diff
+ * @param int|null $oldid Oldid for the diff. Null means it is a new article
* @return string
*/
protected static function getDiffLink( Title $title, $newid, $oldid = null ) {
* Might be 'cleaner' to use DOM or XSLT or something,
* but *gack* it's a pain in the ass.
*
- * @param string $text diff's HTML output
- * @return String: modified HTML
+ * @param string $text Diff's HTML output
+ * @return string Modified HTML
*/
public static function applyDiffStyle( $text ) {
$styles = array(
* showing an appropriate message depending upon whether
* it's a current file or an old version
*
- * @param string $message message base
- * @return String
+ * @param string $message Message base
+ * @return string
*/
private function prepareMessage( $message ) {
global $wgLang;
/**
* Is the provided `oldimage` value valid?
*
+ * @param string $oldimage
* @return bool
*/
public static function isValidOldSpec( $oldimage ) {
* value was provided, does it correspond to an
* existing, local, old version of this file?
*
- * @param $file File
- * @param $oldfile File
- * @param $oldimage File
+ * @param File $file
+ * @param File $oldfile
+ * @param File $oldimage
* @return bool
*/
public static function haveDeletableFile( &$file, &$oldfile, $oldimage ) {
/**
* Like array_diff( $a, $b ) except that it works with two-dimensional arrays.
- * @param $a array
- * @param $b array
+ * @param array $a
+ * @param array $b
* @return array
*/
function wfArrayDiff2( $a, $b ) {
}
/**
- * @param $a array|string
- * @param $b array|string
+ * @param array|string $a
+ * @param array|string $b
* @return int
*/
function wfArrayDiff2_cmp( $a, $b ) {
* values in array $a with the corresponding keys
*
* @deprecated since 1.22; use array_intersect_key()
- * @param $a Array
- * @param $b Array
+ * @param array $a
+ * @param array $b
* @return array
*/
function wfArrayLookup( $a, $b ) {
/**
* Appends to second array if $value differs from that in $default
*
- * @param $key String|Int
- * @param $value Mixed
- * @param $default Mixed
- * @param array $changed to alter
+ * @param string|int $key
+ * @param mixed $value
+ * @param mixed $default
+ * @param array $changed Array to alter
* @throws MWException
*/
function wfAppendToArrayIfNotDefault( $key, $value, $default, &$changed ) {
*
* @param array $array The array.
* @param array $insert The array to insert.
- * @param $after Mixed: The key to insert after
- * @return Array
+ * @param mixed $after The key to insert after
+ * @return array
*/
function wfArrayInsertAfter( array $array, array $insert, $after ) {
// Find the offset of the element to insert after.
/**
* Recursively converts the parameter (an object) to an array with the same data
*
- * @param $objOrArray Object|Array
- * @param $recursive Bool
- * @return Array
+ * @param object|array $objOrArray
+ * @param bool $recursive
+ * @return array
*/
function wfObjectToArray( $objOrArray, $recursive = true ) {
$array = array();
* of token please use MWCryptRand instead.
*
* @param int $length The length of the string to generate
- * @return String
+ * @return string
* @since 1.20
*/
function wfRandomString( $length = 32 ) {
*
* %2F in the page titles seems to fatally break for some reason.
*
- * @param $s String:
+ * @param string $s
* @return string
*/
function wfUrlencode( $s ) {
*
* @param array $array1 ( String|Array )
* @param array $array2 ( String|Array )
- * @param $prefix String
- * @return String
+ * @param string $prefix
+ * @return string
*/
function wfArrayToCgi( $array1, $array2 = null, $prefix = '' ) {
if ( !is_null( $array2 ) ) {
* with legacy functions that accept raw query strings instead of nice
* arrays. Of course, keys and values are urldecode()d.
*
- * @param string $query query string
+ * @param string $query Query string
* @return string[] Array version of input
*/
function wfCgiToArray( $query ) {
* @todo this won't work with current-path-relative URLs
* like "subdir/foo.html", etc.
*
- * @param string $url either fully-qualified or a local path + query
- * @param $defaultProto Mixed: one of the PROTO_* constants. Determines the
+ * @param string $url Either fully-qualified or a local path + query
+ * @param string $defaultProto One of the PROTO_* constants. Determines the
* protocol to use if $url or $wgServer is protocol-relative
* @return string Fully-qualified URL, current-path-relative URL or false if
* no valid URL can be constructed
*
* @param bool $includeProtocolRelative If false, remove '//' from the returned protocol list.
* DO NOT USE this directly, use wfUrlProtocolsWithoutProtRel() instead
- * @return String
+ * @return string
*/
function wfUrlProtocols( $includeProtocolRelative = true ) {
global $wgUrlProtocols;
* Like wfUrlProtocols(), but excludes '//' from the protocol list. Use this if
* you need a regex that matches all URL protocols but does not match protocol-
* relative URLs
- * @return String
+ * @return string
*/
function wfUrlProtocolsWithoutProtRel() {
return wfUrlProtocols( false );
* protocol-relative URLs) correctly.
* 3) Adds a "delimiter" element to the array, either '://', ':' or '//' (see (2)).
*
- * @param string $url a URL to parse
+ * @param string $url A URL to parse
* @return string[] Bits of the URL in an associative array, per PHP docs
*/
function wfParseUrl( $url ) {
*
* @todo handle punycode domains too
*
- * @param $url string
+ * @param string $url
* @return string
*/
function wfExpandIRI( $url ) {
/**
* Make URL indexes, appropriate for the el_index field of externallinks.
*
- * @param $url String
+ * @param string $url
* @return array
*/
function wfMakeUrlIndexes( $url ) {
* $wgDebugRawPage - if false, 'action=raw' hits will not result in debug output.
* $wgDebugComments - if on, some debug items may appear in comments in the HTML output.
*
- * @param $text String
+ * @param string $text
* @param string|bool $dest Destination of the message:
* - 'all': both to the log and HTML (debug toolbar or HTML comments)
* - 'log': only to the log and not in HTML
/**
* Send a line giving PHP memory usage.
*
- * @param bool $exact print exact values instead of kilobytes (default: false)
+ * @param bool $exact Print exact values instead of kilobytes (default: false)
*/
function wfDebugMem( $exact = false ) {
$mem = memory_get_usage();
/**
* Log for database errors
*
- * @param string $text database error message.
+ * @param string $text Database error message.
*/
function wfLogDBError( $text ) {
global $wgDBerrorLog, $wgDBerrorLogTZ;
/**
* Throws a warning that $function is deprecated
*
- * @param $function String
+ * @param string $function
* @param string|bool $version Version of MediaWiki that the function
* was deprecated in (Added in 1.19).
* @param string|bool $component Added in 1.19.
- * @param $callerOffset integer: How far up the call stack is the original
+ * @param int $callerOffset How far up the call stack is the original
* caller. 2 = function that called the function that called
* wfDeprecated (Added in 1.20)
*
* $wgDevelopmentWarnings. To log warnings in production, use wfLogWarning() instead.
*
* @param string $msg message to send
- * @param $callerOffset Integer: number of items to go back in the backtrace to
+ * @param int $callerOffset Number of items to go back in the backtrace to
* find the correct caller (1 = function calling wfWarn, ...)
- * @param $level Integer: PHP error level; defaults to E_USER_NOTICE;
+ * @param int $level PHP error level; defaults to E_USER_NOTICE;
* only used when $wgDevelopmentWarnings is true
*/
function wfWarn( $msg, $callerOffset = 1, $level = E_USER_NOTICE ) {
* Send a warning as a PHP error and the debug log. This is intended for logging
* warnings in production. For logging development warnings, use WfWarn instead.
*
- * @param $msg String: message to send
- * @param $callerOffset Integer: number of items to go back in the backtrace to
+ * @param string $msg Message to send
+ * @param int $callerOffset Number of items to go back in the backtrace to
* find the correct caller (1 = function calling wfLogWarning, ...)
- * @param $level Integer: PHP error level; defaults to E_USER_WARNING
+ * @param int $level PHP error level; defaults to E_USER_WARNING
*/
function wfLogWarning( $msg, $callerOffset = 1, $level = E_USER_WARNING ) {
MWDebug::warning( $msg, $callerOffset + 1, $level, 'production' );
* Can also log to TCP or UDP with the syntax udp://host:port/prefix. This will
* send lines to the specified port, prefixed by the specified prefix and a space.
*
- * @param $text String
- * @param string $file filename
+ * @param string $text
+ * @param string $file Filename
* @throws MWException
*/
function wfErrorLog( $text, $file ) {
/**
* Increment a statistics counter
*
- * @param $key String
- * @param $count Int
+ * @param string $key
+ * @param int $count
* @return void
*/
function wfIncrStats( $key, $count = 1 ) {
/**
* Get the value of $wgReadOnly or the contents of $wgReadOnlyFile.
*
- * @return string|bool: String when in read-only mode; false otherwise
+ * @return string|bool String when in read-only mode; false otherwise
*/
function wfReadOnlyReason() {
global $wgReadOnly, $wgReadOnlyFile;
/**
* Return a Language object from $langcode
*
- * @param $langcode Mixed: either:
+ * @param Language|string|bool $langcode Either:
* - a Language object
* - code of the language to get the message for, if it is
* a valid code create a language for that language, if
* the current user's language (as a fallback for the old parameter
* functionality), or if it is true then use global object
* for the wiki's content language.
- * @return Language object
+ * @return Language
*/
function wfGetLangObj( $langcode = false ) {
# Identify which language to get or create a language object for.
* - As an array in the second parameter
* These are not shown in the function definition.
*
- * @return String
+ * @return string
*/
function wfMsg( $key ) {
wfDeprecated( __METHOD__, '1.21' );
*
* @deprecated since 1.18
*
- * @param $key String
- * @return String
+ * @param string $key
+ * @return string
*/
function wfMsgNoTrans( $key ) {
wfDeprecated( __METHOD__, '1.21' );
*
* @deprecated since 1.18
*
- * @param string $key lookup key for the message, usually
+ * @param string $key Lookup key for the message, usually
* defined in languages/Language.php
- * @return String
+ * @return string
*/
function wfMsgForContent( $key ) {
wfDeprecated( __METHOD__, '1.21' );
*
* @deprecated since 1.18
*
- * @param $key String
- * @return String
+ * @param string $key
+ * @return string
*/
function wfMsgForContentNoTrans( $key ) {
wfDeprecated( __METHOD__, '1.21' );
*
* @deprecated since 1.18
*
- * @param string $key key to get.
+ * @param string $key Key to get.
* @param array $args
* @param bool $useDB
* @param string|bool $forContent Language code, or false for user lang, true for content lang.
* @param string $key
* @param bool $useDB
* @param string|bool $langCode Code of the language to get the message for, or
- * behaves as a content language switch if it is a boolean.
+ * behaves as a content language switch if it is a boolean.
* @param bool $transform Whether to parse magic words, etc.
* @return string
*/
*
* @deprecated since 1.18
*
- * @param string $key key of the message
- * @param array $options processing rules.
+ * @param string $key Key of the message
+ * @param array $options Processing rules.
* Can take the following options:
* parse: parses wikitext to HTML
* parseinline: parses wikitext to HTML and removes the surrounding
* (overridden by content).
* Behavior for conflicting options (e.g., parse+parseinline) is undefined.
*
- * @return String
+ * @return string
*/
function wfMsgExt( $key, $options ) {
wfDeprecated( __METHOD__, '1.21' );
* but now throws an exception instead, with similar results.
*
* @deprecated since 1.22; just throw an MWException yourself
- * @param string $msg message shown when dying.
+ * @param string $msg Message shown when dying.
* @throws MWException
*/
function wfDebugDieBacktrace( $msg = '' ) {
*
* @param int $limit This parameter can be used to limit the number of stack frames returned
*
- * @return array of backtrace information
+ * @return array Array of backtrace information
*/
function wfDebugBacktrace( $limit = 0 ) {
static $disabled = null;
* wfGetCaller( 2 ) [default] is the caller of the function running wfGetCaller()
* wfGetCaller( 3 ) is the parent of that.
*
- * @param $level Int
+ * @param int $level
* @return string
*/
function wfGetCaller( $level = 2 ) {
* Return a string consisting of callers in the stack. Useful sometimes
* for profiling specific points.
*
- * @param int $limit The maximum depth of the stack frame to return, or false for
- * the entire stack.
- * @return String
+ * @param int $limit The maximum depth of the stack frame to return, or false for the entire stack.
+ * @return string
*/
function wfGetAllCallers( $limit = 3 ) {
$trace = array_reverse( wfDebugBacktrace() );
/**
* Return a string representation of frame
*
- * @param $frame Array
+ * @param array $frame
* @return string
*/
function wfFormatStackFrame( $frame ) {
* @param string $offset
* @param int $limit
* @param string $link
- * @param string $query optional URL query parameter string
- * @param bool $atend optional param for specified if this is the last page
+ * @param string $query Optional URL query parameter string
+ * @param bool $atend Optional param for specified if this is the last page
* @return string
* @deprecated since 1.19; use Language::viewPrevNext() instead
*/
* Obtain the offset and limit values from the request string;
* used in special pages
*
- * @param int $deflimit default limit if none supplied
+ * @param int $deflimit Default limit if none supplied
* @param string $optionname Name of a user preference to check against
* @return array
- *
*/
function wfCheckLimits( $deflimit = 50, $optionname = 'rclimit' ) {
global $wgRequest;
* is achieved by substituting certain characters with HTML entities.
* As required by the callers, "<nowiki>" is not used.
*
- * @param string $text text to be escaped
- * @return String
+ * @param string $text Text to be escaped
+ * @return string
*/
function wfEscapeWikiText( $text ) {
static $repl = null, $repl2 = null;
/**
* Get the current unix timestamp with microseconds. Useful for profiling
* @deprecated since 1.22; call microtime() directly
- * @return Float
+ * @return float
*/
function wfTime() {
wfDeprecated( __FUNCTION__, '1.22' );
* If source is NULL, it just returns the value, it doesn't set the variable
* If force is true, it will set the value even if source is NULL
*
- * @param $dest Mixed
- * @param $source Mixed
- * @param $force Bool
- * @return Mixed
+ * @param mixed $dest
+ * @param mixed $source
+ * @param bool $force
+ * @return mixed
*/
function wfSetVar( &$dest, $source, $force = false ) {
$temp = $dest;
/**
* As for wfSetVar except setting a bit
*
- * @param $dest Int
- * @param $bit Int
- * @param $state Bool
+ * @param int $dest
+ * @param int $bit
+ * @param bool $state
*
* @return bool
*/
* A wrapper around the PHP function var_export().
* Either print it or add it to the regular output ($wgOut).
*
- * @param $var mixed A PHP variable to dump.
+ * @param mixed $var A PHP variable to dump.
*/
function wfVarDump( $var ) {
global $wgOut;
/**
* Provide a simple HTTP error.
*
- * @param $code Int|String
- * @param $label String
- * @param $desc String
+ * @param int|string $code
+ * @param string $label
+ * @param string $desc
*/
function wfHttpError( $code, $label, $desc ) {
global $wgOut;
* Note that some PHP configuration options may add output buffer
* layers which cannot be removed; these are left in place.
*
- * @param $resetGzipEncoding Bool
+ * @param bool $resetGzipEncoding
*/
function wfResetOutputBuffers( $resetGzipEncoding = true ) {
if ( $resetGzipEncoding ) {
* array of type to preference (preference is a float between 0.0 and 1.0).
* Wildcards in the types are acceptable.
*
- * @param array $cprefs client's acceptable type list
- * @param array $sprefs server's offered types
+ * @param array $cprefs Client's acceptable type list
+ * @param array $sprefs Server's offered types
* @return string
*
* @todo FIXME: Doesn't handle params like 'text/plain; charset=UTF-8'
/**
* Reference-counted warning suppression
*
- * @param $end Bool
+ * @param bool $end
*/
function wfSuppressWarnings( $end = false ) {
static $suppressCount = 0;
/**
* Get a timestamp string in one of various formats
*
- * @param $outputtype Mixed: A timestamp in one of the supported formats, the
- * function will autodetect which format is supplied and act
- * accordingly.
- * @param $ts Mixed: optional timestamp to convert, default 0 for the current time
- * @return Mixed: String / false The same date in the format specified in $outputtype or false
+ * @param mixed $outputtype A timestamp in one of the supported formats, the
+ * function will autodetect which format is supplied and act accordingly.
+ * @param mixed $ts Optional timestamp to convert, default 0 for the current time
+ * @return string|bool String / false The same date in the format specified in $outputtype or false
*/
function wfTimestamp( $outputtype = TS_UNIX, $ts = 0 ) {
try {
/**
* Make directory, and make all parent directories if they don't exist
*
- * @param string $dir full path to directory to create
+ * @param string $dir Full path to directory to create
* @param int $mode Chmod value to use, default is $wgDirectoryMode
- * @param string $caller optional caller param for debugging.
+ * @param string $caller Optional caller param for debugging.
* @throws MWException
* @return bool
*/
/**
* Remove a directory and all its content.
* Does not hide error.
+ * @param string $dir
*/
function wfRecursiveRemoveDir( $dir ) {
wfDebug( __FUNCTION__ . "( $dir )\n" );
}
/**
- * @param number $nr The number to format
+ * @param int $nr The number to format
* @param int $acc The number of digits after the decimal point, default 2
* @param bool $round Whether or not to round the value, default true
* @return string
* configuration if supported.
*
* @param string $cmd Command line, properly escaped for shell.
- * @param &$retval null|Mixed optional, will receive the program's exit code.
- * (non-zero is usually failure). If there is an error from
- * read, select, or proc_open(), this will be set to -1.
- * @param array $environ optional environment variables which should be
- * added to the executed command environment.
- * @param array $limits optional array with limits(filesize, memory, time, walltime)
- * this overwrites the global wgMaxShell* limits.
+ * @param null|mixed &$retval Optional, will receive the program's exit code.
+ * (non-zero is usually failure). If there is an error from
+ * read, select, or proc_open(), this will be set to -1.
+ * @param array $environ Optional environment variables which should be
+ * added to the executed command environment.
+ * @param array $limits Optional array with limits(filesize, memory, time, walltime)
+ * this overwrites the global wgMaxShell* limits.
* @param array $options Array of options:
- * - duplicateStderr: Set this to true to duplicate stderr to stdout,
- * including errors from limit.sh
+ * - duplicateStderr: Set this to true to duplicate stderr to stdout,
+ * including errors from limit.sh
*
- * @return string collected stdout as a string
+ * @return string Collected stdout as a string
*/
function wfShellExec( $cmd, &$retval = null, $environ = array(),
$limits = array(), $options = array()
*
* @note This also includes errors from limit.sh, e.g. if $wgMaxShellFileSize is exceeded.
* @param string $cmd Command line, properly escaped for shell.
- * @param &$retval null|Mixed optional, will receive the program's exit code.
- * (non-zero is usually failure)
+ * @param null|mixed &$retval Optional, will receive the program's exit code.
+ * (non-zero is usually failure)
* @param array $environ optional environment variables which should be
- * added to the executed command environment.
- * @param array $limits optional array with limits(filesize, memory, time, walltime)
- * this overwrites the global wgShellMax* limits.
- * @return string collected stdout and stderr as a string
+ * added to the executed command environment.
+ * @param array $limits Optional array with limits(filesize, memory, time, walltime)
+ * this overwrites the global wgShellMax* limits.
+ * @return string Collected stdout and stderr as a string
*/
function wfShellExecWithStderr( $cmd, &$retval = null, $environ = array(), $limits = array() ) {
return wfShellExec( $cmd, $retval, $environ, $limits, array( 'duplicateStderr' => true ) );
* Returns unified plain-text diff of two texts.
* Useful for machine processing of diffs.
*
- * @param string $before the text before the changes.
- * @param string $after the text after the changes.
- * @param string $params command-line options for the diff command.
+ * @param string $before The text before the changes.
+ * @param string $after The text after the changes.
+ * @param string $params Command-line options for the diff command.
* @return string Unified diff of $before and $after
*/
function wfDiff( $before, $after, $params = '-u' ) {
*
* @see perldoc -f use
*
- * @param string|number $req_ver The version to check, can be a string, an integer, or
- * a float
+ * @param string|int|float $req_ver The version to check, can be a string, an integer, or a float
* @throws MWException
*/
function wfUsePHP( $req_ver ) {
*
* @see perldoc -f use
*
- * @param string|number $req_ver The version to check, can be a string, an integer, or
- * a float
+ * @param string|int|float $req_ver The version to check, can be a string, an integer, or a float
* @throws MWException
*/
function wfUseMW( $req_ver ) {
* We'll consider it so always, as we don't want '\s' in our Unix paths either.
*
* @param string $path
- * @param string $suffix to remove if present
+ * @param string $suffix String to remove if present
* @return string
*/
function wfBaseName( $path, $suffix = '' ) {
* May explode on non-matching case-insensitive paths,
* funky symlinks, etc.
*
- * @param string $path absolute destination path including target filename
+ * @param string $path Absolute destination path including target filename
* @param string $from Absolute source path, directory only
* @return string
*/
*
* bypassCache: If true, do not use the process-local cache of File objects
*
- * @return File, or false if the file does not exist
+ * @return File|bool File, or false if the file does not exist
*/
function wfFindFile( $title, $options = array() ) {
return RepoGroup::singleton()->findFile( $title, $options );
* extensions; this is a wrapper around $wgScriptExtension etc.
* except for 'index' and 'load' which use $wgScript/$wgLoadScript
*
- * @param string $script script filename, sans extension
+ * @param string $script Script filename, sans extension
* @return string
*/
function wfScript( $script = 'index' ) {
/**
* Get a cache object.
*
- * @param $inputType integer Cache type, one the the CACHE_* constants.
+ * @param int $inputType Cache type, one the the CACHE_* constants.
* @return BagOStuff
*/
function wfGetCache( $inputType ) {
/**
* Call hook functions defined in $wgHooks
*
- * @param string $event event name
- * @param array $args parameters passed to hook functions
- * @param string|null $deprecatedVersion optionally mark hook as deprecated with version number
+ * @param string $event Event name
+ * @param array $args Parameters passed to hook functions
+ * @param string|null $deprecatedVersion Optionally mark hook as deprecated with version number
*
* @return bool True if no handler aborted the hook
*/
* * Any subsequent links on the same line are considered to be exceptions,
* i.e. articles where the image may occur inline.
*
- * @param string $name the image name to check
+ * @param string $name The image name to check
* @param Title|bool $contextTitle The page on which the image occurs, if known
- * @param string $blacklist wikitext of a file blacklist
+ * @param string $blacklist Wikitext of a file blacklist
* @return bool
*/
function wfIsBadImage( $name, $contextTitle = false, $blacklist = null ) {
* access the wiki via HTTPS.
*
* @param string $ip The IPv4/6 address in the normal human-readable form
- * @return boolean
+ * @return bool
*/
function wfCanIPUseHTTPS( $ip ) {
$canDo = true;
* You must call setLocation() on the stub object before storing it to the
* database
*
- * @param $text string
+ * @param string $text
*
- * @return String: the key for getItem()
+ * @return string The key for getItem()
*/
function addItem( $text );
/**
* Get item by key, or false if the key is not present
*
- * @param $key string
+ * @param string $key
*
- * @return String or false
+ * @return string|bool
*/
function getItem( $key );
*
* Default text is not required for two-part external storage URLs.
*
- * @param $text string
+ * @param string $text
*/
function setText( $text );
/**
* Get default text. This is called from Revision::getRevisionText()
*
- * @return String
+ * @return string
*/
function getText();
}
}
/**
- * @param $text string
+ * @param string $text
* @return string
*/
public function addItem( $text ) {
}
/**
- * @param $hash string
+ * @param string $hash
* @return array|bool
*/
public function getItem( $hash ) {
}
/**
- * @param $text string
+ * @param string $text
* @return void
*/
public function setText( $text ) {
/**
* Remove an item
*
- * @param $hash string
+ * @param string $hash
*/
public function removeItem( $hash ) {
$this->mSize -= strlen( $this->mItems[$hash] );
var $mOldId, $mHash, $mRef;
/**
- * @param string $hash the content hash of the text
- * @param $oldid Integer the old_id for the CGZ object
+ * @param string $hash The content hash of the text
+ * @param int $oldid The old_id for the CGZ object
*/
function __construct( $hash = '', $oldid = 0 ) {
$this->mHash = $hash;
/**
* Sets the location (old_id) of the main object to which this object
* points
+ * @param int $id
*/
function setLocation( $id ) {
$this->mOldId = $id;
/**
* Sets the location (old_id) of the referring object
+ * @param string $id
*/
function setReferrer( $id ) {
$this->mRef = $id;
/**
* Gets the location of the referring object
+ * @return string
*/
function getReferrer() {
return $this->mRef;
var $mCurId;
/**
- * @param $curid Integer: the cur_id pointed to
+ * @param int $curid The cur_id pointed to
*/
function __construct( $curid = 0 ) {
$this->mCurId = $curid;
* Sets the location (cur_id) of the main object to which this object
* points
*
- * @param $id int
+ * @param int $id
*/
function setLocation( $id ) {
$this->mCurId = $id;
/**
* @throws MWException
- * @param $text string
+ * @param string $text
* @return int
*/
function addItem( $text ) {
}
/**
- * @param $key string
+ * @param string $key
* @return string
*/
function getItem( $key ) {
}
/**
- * @param $text string
+ * @param string $text
*/
function setText( $text ) {
$this->mDefaultKey = $this->addItem( $text );
}
/**
- * @param $t1
- * @param $t2
+ * @param string $t1
+ * @param string $t2
* @return string
*/
function diff( $t1, $t2 ) {
}
/**
- * @param $base
- * @param $diff
+ * @param string $base
+ * @param string $diff
* @return bool|string
*/
function patch( $base, $diff ) {
* the bytes backwards and initialised with 0 instead of 1. See bug 34428.
*
* @param string $s
- * @return string|bool: false if the hash extension is not available
+ * @return string|bool false if the hash extension is not available
*/
function xdiffAdler32( $s ) {
if ( !function_exists( 'hash' ) ) {
* Identical to rawElement(), but HTML-escapes $contents (like
* Xml::element()).
*
- * @param $element string
- * @param $attribs array
- * @param $contents string
+ * @param string $element
+ * @param array $attribs
+ * @param string $contents
*
* @return string
*/
* Identical to rawElement(), but has no third parameter and omits the end
* tag (and the self-closing '/' in XML mode for empty elements).
*
- * @param $element string
- * @param $attribs array
+ * @param string $element
+ * @param array $attribs
*
* @return string
*/
* to the input array (currently per the HTML 5 draft as of 2009-09-06).
*
* @param string $element Name of the element, e.g., 'a'
- * @param array $attribs Associative array of attributes, e.g., array(
+ * @param array $attribs Associative array of attributes, e.g., array(
* 'href' => 'http://www.mediawiki.org/' ). See expandAttributes() for
* further documentation.
* @return array An array of attributes functionally identical to $attribs
* Output a "<script>" tag linking to the given URL, e.g.,
* "<script src=foo.js></script>".
*
- * @param $url string
+ * @param string $url
* @return string Raw HTML
*/
public static function linkedScript( $url ) {
* contains literal "</style>" (admittedly unlikely).
*
* @param string $contents CSS
- * @param $media mixed A media type string, like 'screen'
+ * @param string $media A media type string, like 'screen'
* @return string Raw HTML
*/
public static function inlineStyle( $contents, $media = 'all' ) {
* Output a "<link rel=stylesheet>" linking to the given URL for the given
* media type (if any).
*
- * @param $url string
- * @param $media mixed A media type string, like 'screen'
+ * @param string $url
+ * @param string $media A media type string, like 'screen'
* @return string Raw HTML
*/
public static function linkedStyle( $url, $media = 'all' ) {
/**
* Get HTML for an info box with an icon.
*
- * @param string $text wikitext, get this with wfMessage()->plain()
- * @param string $icon icon name, file in skins/common/images
- * @param string $alt alternate text for the icon
- * @param string $class additional class name to add to the wrapper div
- * @param $useStylePath
+ * @param string $text Wikitext, get this with wfMessage()->plain()
+ * @param string $icon Icon name, file in skins/common/images
+ * @param string $alt Alternate text for the icon
+ * @param string $class Additional class name to add to the wrapper div
+ * @param bool $useStylePath
*
* @return string
*/
* to avoid attacks on intranet services accessible by HTTP.
* - userAgent A user agent, if you want to override the default
* MediaWiki/$wgVersion
- * @return Mixed: (bool)false on failure or a string on success
+ * @return string|bool (bool)false on failure or a string on success
*/
public static function request( $method, $url, $options = array() ) {
wfDebug( "HTTP: $method: $url\n" );
* Simple wrapper for Http::request( 'GET' )
* @see Http::request()
*
- * @param $url
- * @param $timeout string
- * @param $options array
+ * @param string $url
+ * @param string $timeout
+ * @param array $options
* @return string
*/
public static function get( $url, $timeout = 'default', $options = array() ) {
* Simple wrapper for Http::request( 'POST' )
* @see Http::request()
*
- * @param $url
- * @param $options array
+ * @param string $url
+ * @param array $options
* @return string
*/
public static function post( $url, $options = array() ) {
/**
* Check if the URL can be served by localhost
*
- * @param string $url full url to check
- * @return Boolean
+ * @param string $url Full url to check
+ * @return bool
*/
public static function isLocalURL( $url ) {
global $wgCommandLineMode, $wgConf;
/**
* A standard user-agent we can use for external requests.
- * @return String
+ * @return string
*/
public static function userAgent() {
global $wgVersion;
*
* @todo FIXME this is wildly inaccurate and fails to actually check most stuff
*
- * @param $uri Mixed: URI to check for validity
- * @return Boolean
+ * @param string $uri URI to check for validity
+ * @return bool
*/
public static function isValidURI( $uri ) {
return preg_match(
public $status;
/**
- * @param string $url url to use. If protocol-relative, will be expanded to an http:// URL
+ * @param string $url Url to use. If protocol-relative, will be expanded to an http:// URL
* @param array $options (optional) extra params to pass (see Http::request())
*/
protected function __construct( $url, $options = array() ) {
/**
* Generate a new request object
- * @param string $url url to use
+ * @param string $url Url to use
* @param array $options (optional) extra params to pass (see Http::request())
* @throws MWException
* @return CurlHttpRequest|PhpHttpRequest
/**
* Get the body, or content, of the response to the request
*
- * @return String
+ * @return string
*/
public function getContent() {
return $this->content;
/**
* Set the parameters of the request
*
- * @param $args Array
+ * @param array $args
* @todo overload the args param
*/
public function setData( $args ) {
/**
* Set the user agent
- * @param $UA string
+ * @param string $UA
*/
public function setUserAgent( $UA ) {
$this->setHeader( 'User-Agent', $UA );
/**
* Set an arbitrary header
- * @param $name
- * @param $value
+ * @param string $name
+ * @param string $value
*/
public function setHeader( $name, $value ) {
// I feel like I should normalize the case here...
* bytes are reported handled than were passed to you, the HTTP fetch
* will be aborted.
*
- * @param $callback Callback
+ * @param callable $callback
* @throws MWException
*/
public function setCallback( $callback ) {
* A generic callback to read the body of the response from a remote
* server.
*
- * @param $fh handle
- * @param $content String
+ * @param resource $fh
+ * @param string $content
* @return int
*/
public function read( $fh, $content ) {
* (see RFC2616, section 10, http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
* for a list of status codes.)
*
- * @return Integer
+ * @return int
*/
public function getStatus() {
if ( !$this->respHeaders ) {
/**
* Returns true if the last status code was a redirect.
*
- * @return Boolean
+ * @return bool
*/
public function isRedirect() {
if ( !$this->respHeaders ) {
* (e.g. Set-Cookie) can appear more than once the, each value of
* the associative array is an array of the values given.
*
- * @return Array
+ * @return array
*/
public function getResponseHeaders() {
if ( !$this->respHeaders ) {
/**
* Returns the value of the given response header.
*
- * @param $header String
- * @return String
+ * @param string $header
+ * @return string
*/
public function getResponseHeader( $header ) {
if ( !$this->respHeaders ) {
/**
* Tells the MWHttpRequest object to use this pre-loaded CookieJar.
*
- * @param $jar CookieJar
+ * @param CookieJar $jar
*/
public function setCookieJar( $jar ) {
$this->cookieJar = $jar;
* cookies. Used internally after a request to parse the
* Set-Cookie headers.
* @see Cookie::set
- * @param $name
- * @param $value null
- * @param $attr null
+ * @param string $name
+ * @param mixed $value
+ * @param array $attr
*/
public function setCookie( $name, $value = null, $attr = null ) {
if ( !$this->cookieJar ) {
protected $headerText = "";
/**
- * @param $fh
- * @param $content
+ * @param resource $fh
+ * @param string $content
* @return int
*/
protected function readHeader( $fh, $content ) {
class PhpHttpRequest extends MWHttpRequest {
/**
- * @param $url string
+ * @param string $url
* @return string
*/
protected function urlToTcp( $url ) {
var $mExtraDescription = false;
/**
- * @param $title Title
+ * @param Title $title
* @return WikiFilePage
*/
protected function newPage( Title $title ) {
/**
* Constructor from a page id
- * @param int $id article ID to load
+ * @param int $id Article ID to load
* @return ImagePage|null
*/
public static function newFromID( $id ) {
}
/**
- * @param $file File:
+ * @param File $file
* @return void
*/
public function setFile( $file ) {
/**
* Create the TOC
*
- * @param $metadata Boolean: whether or not to show the metadata link
- * @return String
+ * @param bool $metadata Whether or not to show the metadata link
+ * @return string
*/
protected function showTOC( $metadata ) {
$r = array(
*
* @todo FIXME: Bad interface, see note on MediaHandler::formatMetadata().
*
- * @param array $metadata the array containing the Exif data
- * @return String The metadata table. This is treated as Wikitext (!)
+ * @param array $metadata The array containing the Exif data
+ * @return string The metadata table. This is treated as Wikitext (!)
*/
protected function makeMetadataTable( $metadata ) {
$r = "<div class=\"mw-imagepage-section-metadata\">";
/**
* Creates an thumbnail of specified size and returns an HTML link to it
* @param array $params Scaler parameters
- * @param $width int
- * @param $height int
+ * @param int $width
+ * @param int $height
* @return string
*/
private function makeSizeLink( $params, $width, $height ) {
}
/**
- * @param $target
- * @param $limit
+ * @param string $target
+ * @param int $limit
* @return ResultWrapper
*/
protected function queryImageLinks( $target, $limit ) {
/**
* Display an error with a wikitext description
*
- * @param $description String
+ * @param string $description
*/
function showError( $description ) {
$out = $this->getContext()->getOutput();
* Callback for usort() to do link sorts by (namespace, title)
* Function copied from Title::compare()
*
- * @param $a object page to compare with
- * @param $b object page to compare with
- * @return Integer: result of string comparison, or namespace comparison
+ * @param object $a Object page to compare with
+ * @param object $b Object page to compare with
+ * @return int Result of string comparison, or namespace comparison
*/
protected function compare( $a, $b ) {
if ( $a->page_namespace == $b->page_namespace ) {
/**
* Returns the corresponding $wgImageLimits entry for the selected user option
*
- * @param $user User
+ * @param User $user
* @param string $optionName Name of a option to check, typically imagesize or thumbsize
* @return array
* @since 1.21
/**
* Output a drop-down box for language options for the file
*
- * @param Array $langChoices Array of string language codes
- * @param String $curLang Language code file is being viewed in.
- * @param String $defaultLang Language code that image is rendered in by default
- * @return String HTML to insert underneath image.
+ * @param array $langChoices Array of string language codes
+ * @param string $curLang Language code file is being viewed in.
+ * @param string $defaultLang Language code that image is rendered in by default
+ * @return string HTML to insert underneath image.
*/
protected function doRenderLangOpt( array $langChoices, $curLang, $defaultLang ) {
global $wgScript;
}
/**
- * @param $navLinks string
+ * @param string $navLinks
* @return string
*/
public function beginImageHistoryList( $navLinks = '' ) {
}
/**
- * @param $navLinks string
+ * @param string $navLinks
* @return string
*/
public function endImageHistoryList( $navLinks = '' ) {
}
/**
- * @param $iscur
- * @param $file File
+ * @param bool $iscur
+ * @param File $file
* @return string
*/
public function imageHistoryLine( $iscur, $file ) {
}
/**
- * @param $file File
+ * @param File $file
* @return string
*/
protected function getThumbForLine( $file ) {
}
/**
- * @param $enable bool
+ * @param bool $enable
*/
protected function preventClickjacking( $enable = true ) {
$this->preventClickjacking = $enable;
}
/**
- * @param $row object
+ * @param object $row
* @return string
*/
function formatRow( $row ) {
}
/**
- * @param $enable bool
+ * @param bool $enable
*/
protected function preventClickjacking( $enable = true ) {
$this->preventClickjacking = $enable;
/**
* Creates an ImportXMLReader drawing from the source provided
- * @param $source
+ * @param string $source
*/
function __construct( $source ) {
$this->reader = new XMLReader();
/**
* Set debug mode...
- * @param $debug bool
+ * @param bool $debug
*/
function setDebug( $debug ) {
$this->mDebug = $debug;
/**
* Set 'no updates' mode. In this mode, the link tables will not be updated by the importer
- * @param $noupdates bool
+ * @param bool $noupdates
*/
function setNoUpdates( $noupdates ) {
$this->mNoUpdates = $noupdates;
/**
* Set a target namespace to override the defaults
- * @param $namespace
+ * @param null|int $namespace
* @return bool
*/
public function setTargetNamespace( $namespace ) {
/**
* Set a target root page under which all pages are imported
- * @param $rootpage
- * @return status object
+ * @param null|string $rootpage
+ * @return Status
*/
public function setTargetRootPage( $rootpage ) {
$status = Status::newGood();
}
/**
- * @param $dir
+ * @param string $dir
*/
public function setImageBasePath( $dir ) {
$this->mImageBasePath = $dir;
}
/**
- * @param $import
+ * @param bool $import
*/
public function setImportUploads( $import ) {
$this->mImportUploads = $import;
/**
* Default per-revision callback, performs the import.
- * @param $revision WikiRevision
+ * @param WikiRevision $revision
* @return bool
*/
public function importRevision( $revision ) {
/**
* Default per-revision callback, performs the import.
- * @param $rev WikiRevision
+ * @param WikiRevision $rev
* @return bool
*/
public function importLogItem( $rev ) {
/**
* Dummy for now...
- * @param $revision
+ * @param WikiRevision $revision
* @return bool
*/
public function importUpload( $revision ) {
/**
* Mostly for hook use
- * @param $title
- * @param $origTitle
- * @param $revCount
- * @param $sRevCount
- * @param $pageInfo
+ * @param Title $title
+ * @param string $origTitle
+ * @param int $revCount
+ * @param int $sRevCount
+ * @param array $pageInfo
* @return
*/
public function finishImportPage( $title, $origTitle, $revCount, $sRevCount, $pageInfo ) {
/**
* Alternate per-revision callback, for debugging.
- * @param $revision WikiRevision
+ * @param WikiRevision $revision
*/
public function debugRevisionHandler( &$revision ) {
$this->debug( "Got revision:" );
/**
* Notify the callback function when a new "<page>" is reached.
- * @param $title Title
+ * @param Title $title
*/
function pageCallback( $title ) {
if ( isset( $this->mPageCallback ) ) {
/**
* Notify the callback function when a "</page>" is closed.
- * @param $title Title
- * @param $origTitle Title
- * @param $revCount Integer
- * @param int $sucCount number of revisions for which callback returned true
- * @param array $pageInfo associative array of page information
+ * @param Title $title
+ * @param Title $origTitle
+ * @param int $revCount
+ * @param int $sucCount Number of revisions for which callback returned true
+ * @param array $pageInfo Associative array of page information
*/
private function pageOutCallback( $title, $origTitle, $revCount, $sucCount, $pageInfo ) {
if ( isset( $this->mPageOutCallback ) ) {
/**
* Notify the callback function of a revision
- * @param $revision WikiRevision object
+ * @param WikiRevision $revision
* @return bool|mixed
*/
private function revisionCallback( $revision ) {
/**
* Notify the callback function of a new log item
- * @param $revision WikiRevision object
+ * @param WikiRevision $revision
* @return bool|mixed
*/
private function logItemCallback( $revision ) {
}
/**
- * @param $logInfo
+ * @param array $logInfo
* @return bool|mixed
*/
private function processLogItem( $logInfo ) {
}
/**
- * @param $pageInfo array
+ * @param array $pageInfo
*/
private function handleRevision( &$pageInfo ) {
$this->debug( "Enter revision handler" );
}
/**
- * @param $pageInfo
- * @param $revisionInfo
+ * @param array $pageInfo
+ * @param array $revisionInfo
* @return bool|mixed
*/
private function processRevision( $pageInfo, $revisionInfo ) {
}
/**
- * @param $pageInfo
+ * @param array $pageInfo
* @return mixed
*/
private function handleUpload( &$pageInfo ) {
}
/**
- * @param $contents
+ * @param string $contents
* @return string
*/
private function dumpTemp( $contents ) {
}
/**
- * @param $pageInfo
- * @param $uploadInfo
+ * @param array $pageInfo
+ * @param array $uploadInfo
* @return mixed
*/
private function processUpload( $pageInfo, $uploadInfo ) {
}
/**
- * @param $text string
- * @return Array or false
+ * @param string $text
+ * @return array|bool
*/
private function processTitle( $text ) {
global $wgCommandLineMode;
private $mPosition;
/**
- * @param $source
+ * @param string $source
* @return string
*/
static function registerSource( $source ) {
}
/**
- * @param $path
- * @param $mode
- * @param $options
- * @param $opened_path
+ * @param string $path
+ * @param string $mode
+ * @param array $options
+ * @param string $opened_path
* @return bool
*/
function stream_open( $path, $mode, $options, &$opened_path ) {
}
/**
- * @param $count
+ * @param int $count
* @return string
*/
function stream_read( $count ) {
}
/**
- * @param $data
+ * @param string $data
* @return bool
*/
function stream_write( $data ) {
private $mNoUpdates = false;
/**
- * @param $title
+ * @param Title $title
* @throws MWException
*/
function setTitle( $title ) {
}
/**
- * @param $id
+ * @param int $id
*/
function setID( $id ) {
$this->id = $id;
}
/**
- * @param $ts
+ * @param string $ts
*/
function setTimestamp( $ts ) {
# 2003-08-05T18:30:02Z
}
/**
- * @param $user
+ * @param string $user
*/
function setUsername( $user ) {
$this->user_text = $user;
}
/**
- * @param $ip
+ * @param string $ip
*/
function setUserIP( $ip ) {
$this->user_text = $ip;
}
/**
- * @param $model
+ * @param string $model
*/
function setModel( $model ) {
$this->model = $model;
}
/**
- * @param $format
+ * @param string $format
*/
function setFormat( $format ) {
$this->format = $format;
}
/**
- * @param $text
+ * @param string $text
*/
function setText( $text ) {
$this->text = $text;
}
/**
- * @param $text
+ * @param string $text
*/
function setComment( $text ) {
$this->comment = $text;
}
/**
- * @param $minor
+ * @param bool $minor
*/
function setMinor( $minor ) {
$this->minor = (bool)$minor;
}
/**
- * @param $src
+ * @param mixed $src
*/
function setSrc( $src ) {
$this->src = $src;
}
/**
- * @param $src
- * @param $isTemp
+ * @param string $src
+ * @param bool $isTemp
*/
function setFileSrc( $src, $isTemp ) {
$this->fileSrc = $src;
}
/**
- * @param $sha1base36
+ * @param string $sha1base36
*/
function setSha1Base36( $sha1base36 ) {
$this->sha1base36 = $sha1base36;
}
/**
- * @param $filename
+ * @param string $filename
*/
function setFilename( $filename ) {
$this->filename = $filename;
}
/**
- * @param $archiveName
+ * @param string $archiveName
*/
function setArchiveName( $archiveName ) {
$this->archiveName = $archiveName;
}
/**
- * @param $size
+ * @param int $size
*/
function setSize( $size ) {
$this->size = intval( $size );
}
/**
- * @param $type
+ * @param string $type
*/
function setType( $type ) {
$this->type = $type;
}
/**
- * @param $action
+ * @param string $action
*/
function setAction( $action ) {
$this->action = $action;
}
/**
- * @param $params
+ * @param array $params
*/
function setParams( $params ) {
$this->params = $params;
}
/**
- * @param $noupdates
+ * @param bool $noupdates
*/
public function setNoUpdates( $noupdates ) {
$this->mNoUpdates = $noupdates;
}
/**
- * @return String
+ * @return string
*/
function getModel() {
if ( is_null( $this->model ) ) {
}
/**
- * @return String
+ * @return string
*/
function getFormat() {
if ( is_null( $this->model ) ) {
}
/**
- * @return bool|String
+ * @return bool|string
*/
function getSha1() {
if ( $this->sha1base36 ) {
}
/**
- * @param $filename string
+ * @param string $filename
* @return Status
*/
static function newFromFile( $filename ) {
}
/**
- * @param $fieldname string
+ * @param string $fieldname
* @return Status
*/
static function newFromUpload( $fieldname = "xmlimport" ) {
}
/**
- * @param $url
- * @param $method string
+ * @param string $url
+ * @param string $method
* @return Status
*/
static function newFromURL( $url, $method = 'GET' ) {
}
/**
- * @param $interwiki
- * @param $page
- * @param $history bool
- * @param $templates bool
- * @param $pageLinkDepth int
+ * @param string $interwiki
+ * @param string $page
+ * @param bool $history
+ * @param bool $templates
+ * @param int $pageLinkDepth
* @return Status
*/
public static function newFromInterwiki( $interwiki, $page, $history = false, $templates = false, $pageLinkDepth = 0 ) {
* Get a fully-qualified path for a source file relative to $IP.
* @deprecated since 1.22
*
- * @param $file string
+ * @param string $file
*
* @return string
*/
/**
* @deprecated since 1.22
- * @param $file string
+ * @param string $file
* @return string
*/
static function compiledPath( $file ) {
/**
* @deprecated since 1.22
- * @param $file string
+ * @param string $file
* @return string
*/
static function extCompiledPath( $file ) {
* Deprecated wrapper for class_exists()
* @deprecated since 1.22
*
- * @param $class string
+ * @param string $class
*
* @return bool
*/
* Deprecated wrapper for method_exists()
* @deprecated since 1.22
*
- * @param $class string
- * @param $method string
+ * @param string $class
+ * @param string $method
*
* @return bool
*/
* Deprecated wrapper for function_exists()
* @deprecated since 1.22
*
- * @param $function string
+ * @param string $function
*
* @return bool
*/
* Deprecated wrapper for call_user_func_array()
* @deprecated since 1.22
*
- * @param $className string
- * @param $methodName string
- * @param $args array
+ * @param string $className
+ * @param string $methodName
+ * @param array $args
*
* @return mixed
*/
/**
* Constructor
*
- * @param $params array
+ * @param array $params
*/
public function __construct( $params ) {
parent::__construct( $params );
}
/**
- * @param $str
+ * @param string $str
* @return array
*/
protected function trimStars( $str ) {
}
/**
- * @param $list
- * @param $path
- * @param $item
+ * @param array $list
+ * @param array $path
+ * @param mixed $item
*/
protected function stackItem( &$list, $path, $item ) {
$position =& $list;
}
/**
- * @param $tagset
- * @param $depth int
+ * @param array $tagset
+ * @param int $depth
*/
protected function makeHtml( $tagset, $depth = 0 ) {
foreach ( $tagset as $key => $val ) {
}
/**
- * @param $message
- * @param $value
- * @param $attribs null
- * @param $depth int
+ * @param string $message
+ * @param string $value
+ * @param null|array $attribs
+ * @param int $depth
* @return string
*/
protected function outputOption( $message, $value, $attribs = null, $depth = 0 ) {
/**
* Accessor for $this->html
*
- * @param $value bool
+ * @param bool $value
*
* @return string
*/
/**
* Check whether $content contains a link to $filterEntry
*
- * @param $content Content: content to check
- * @param string $filterEntry domainparts, see makeRegex() for more details
- * @return Integer: 0 if no match or 1 if there's at least one match
+ * @param Content $content Content to check
+ * @param string $filterEntry Domainparts, see makeRegex() for more details
+ * @return int 0 if no match or 1 if there's at least one match
*/
static function matchEntry( Content $content, $filterEntry ) {
if ( !( $content instanceof TextContent ) ) {
*
* @param string $filterEntry URL, if it begins with "*.", it'll be
* replaced to match any subdomain
- * @return String: regex pattern, for preg_match()
+ * @return string Regex pattern, for preg_match()
*/
private static function makeRegex( $filterEntry ) {
$regex = '!http://';
* This function does the same as wfMakeUrlIndexes(), except it also takes care
* of adding wildcards
*
- * @param String $filterEntry domainparts
- * @param String $protocol protocol (default http://)
- * @return Array to be passed to DatabaseBase::buildLike() or false on error
+ * @param string $filterEntry Domainparts
+ * @param string $protocol Protocol (default http://)
+ * @return array Array to be passed to DatabaseBase::buildLike() or false on error
*/
public static function makeLikeArray( $filterEntry, $protocol = 'http://' ) {
$db = wfGetDB( DB_MASTER );
* Filters an array returned by makeLikeArray(), removing everything past first
* pattern placeholder.
*
- * @param array $arr array to filter
- * @return array filtered array
+ * @param array $arr Array to filter
+ * @return array Filtered array
*/
public static function keepOneWildcard( $arr ) {
if ( !is_array( $arr ) ) {
* Get the appropriate HTML attributes to add to the "a" element of an
* external link, as created by [wikisyntax].
*
- * @param string $class the contents of the class attribute; if an empty
+ * @param string $class The contents of the class attribute; if an empty
* string is passed, which is the default value, defaults to 'external'.
* @return string
* @deprecated since 1.18 Just pass the external class directly to something using Html::expandAttributes
/**
* Get the appropriate HTML attributes to add to the "a" element of an interwiki link.
*
- * @param string $title the title text for the link, URL-encoded (???) but
+ * @param string $title The title text for the link, URL-encoded (???) but
* not HTML-escaped
- * @param string $unused unused
- * @param string $class the contents of the class attribute; if an empty
+ * @param string $unused Unused
+ * @param string $class The contents of the class attribute; if an empty
* string is passed, which is the default value, defaults to 'external'.
* @return string
*/
/**
* Get the appropriate HTML attributes to add to the "a" element of an internal link.
*
- * @param string $title the title text for the link, URL-encoded (???) but
+ * @param string $title The title text for the link, URL-encoded (???) but
* not HTML-escaped
- * @param string $unused unused
- * @param string $class the contents of the class attribute, default none
+ * @param string $unused Unused
+ * @param string $class The contents of the class attribute, default none
* @return string
*/
static function getInternalLinkAttributes( $title, $unused = null, $class = '' ) {
* Get the appropriate HTML attributes to add to the "a" element of an internal
* link, given the Title object for the page we want to link to.
*
- * @param $nt Title
+ * @param Title $nt
* @param string $unused Unused
* @param string $class The contents of the class attribute, default none
* @param string|bool $title Optional (unescaped) string to use in the title
/**
* Common code for getLinkAttributesX functions
*
- * @param $title string
- * @param $class string
+ * @param string $title
+ * @param string $class
*
* @return string
*/
/**
* Returns the Url used to link to a Title
*
- * @param $target Title
+ * @param Title $target
* @param array $query query parameters
- * @param $options Array
- * @return String
+ * @param array $options
+ * @return string
*/
private static function linkUrl( $target, $query, $options ) {
wfProfileIn( __METHOD__ );
/**
* Returns the array of attributes used when linking to the Title $target
*
- * @param $target Title
- * @param $attribs
- * @param $options
+ * @param Title $target
+ * @param array $attribs
+ * @param array $options
*
* @return array
*/
/**
* Default text of the links to the Title $target
*
- * @param $target Title
+ * @param Title $target
*
* @return string
*/
* as the bold link text. The calling sequence is the same as the other make*LinkObj static functions,
* despite $query not being used.
*
- * @param $nt Title
+ * @param Title $nt
* @param string $html [optional]
* @param string $query [optional]
* @param string $trail [optional]
* This should be called after a method like Title::makeTitleSafe() returned
* a value indicating that the title object is invalid.
*
- * @param $context IContextSource context to use to get the messages
+ * @param IContextSource $context Context to use to get the messages
* @param int $namespace Namespace number
* @param string $title Text of the title, without the namespace part
* @return string
}
/**
- * @param $title Title
+ * @param Title $title
* @return Title
*/
static function normaliseSpecialPage( Title $title ) {
* Returns the filename part of an url.
* Used as alternative text for external images.
*
- * @param $url string
+ * @param string $url
*
* @return string
*/
* Return the code for images which were added via external links,
* via Parser::maybeMakeExternalImage().
*
- * @param $url
- * @param $alt
+ * @param string $url
+ * @param string $alt
*
* @return string
*/
* Given parameters derived from [[Image:Foo|options...]], generate the
* HTML that that syntax inserts in the page.
*
- * @param $parser Parser object
- * @param $title Title object of the file (not the currently viewed page)
- * @param $file File object, or false if it doesn't exist
- * @param array $frameParams associative array of parameters external to the media handler.
+ * @param Parser $parser
+ * @param Title $title Title object of the file (not the currently viewed page)
+ * @param File $file File object, or false if it doesn't exist
+ * @param array $frameParams Associative array of parameters external to the media handler.
* Boolean parameters are indicated by presence or absence, the value is arbitrary and
* will often be false.
* thumbnail If present, downscale and frame
/**
* Make HTML for a thumbnail including image, border and caption
- * @param $title Title object
- * @param $file File object or false if it doesn't exist
- * @param $label String
- * @param $alt String
- * @param $align String
- * @param $params Array
- * @param $framed Boolean
- * @param $manualthumb String
- * @return mixed
+ * @param Title $title
+ * @param File|bool $file File object or false if it doesn't exist
+ * @param string $label
+ * @param string $alt
+ * @param string $align
+ * @param array $params
+ * @param bool $framed
+ * @param string $manualthumb
+ * @return string
*/
public static function makeThumbLinkObj( Title $title, $file, $label = '', $alt,
$align = 'right', $params = array(), $framed = false, $manualthumb = ""
}
/**
- * @param $title Title
- * @param $file File
+ * @param Title $title
+ * @param File $file
* @param array $frameParams
* @param array $handlerParams
* @param bool $time
* @param string $query
- * @return mixed
+ * @return string
*/
public static function makeThumbLink2( Title $title, $file, $frameParams = array(),
$handlerParams = array(), $time = false, $query = ""
*
* @param File $file
* @param MediaTransformOutput $thumb
- * @param array $hp image parameters
+ * @param array $hp Image parameters
*/
public static function processResponsiveImages( $file, $thumb, $hp ) {
global $wgResponsiveImages;
* Make a "broken" link to an image
*
* @param Title $title
- * @param string $label link label (plain text)
- * @param string $query query string
+ * @param string $label Link label (plain text)
+ * @param string $query Query string
* @param string $unused1 Unused parameter kept for b/c
* @param string $unused2 Unused parameter kept for b/c
- * @param bool $time a file of a certain timestamp was requested
+ * @param bool $time A file of a certain timestamp was requested
* @return string
*/
public static function makeBrokenImageLinkObj( $title, $label = '', $query = '', $unused1 = '', $unused2 = '', $time = false ) {
* a message key from the link text.
* Usage example: Linker::specialLink( 'Recentchanges' )
*
+ * @param string $name
+ * @param string $key
* @return string
*/
public static function specialLink( $name, $key = '' ) {
* Generate a user link if the current user is allowed to view it
* @param Revision $rev
* @param bool $isPublic Show only if all users can see it
- * @return String HTML fragment
+ * @return string HTML fragment
*/
public static function revUserLink( $rev, $isPublic = false ) {
if ( $rev->isDeleted( Revision::DELETED_USER ) && $isPublic ) {
* @param string $comment
* @param Title|null $title Title object (to generate link to the section in autocomment) or null
* @param bool $local Whether section links should refer to local page
- * @return mixed|String
+ * @return mixed|string
*/
public static function formatComment( $comment, $title = null, $local = false ) {
wfProfileIn( __METHOD__ );
/**
* Helper function for Linker::formatAutocomments
- * @param $match
+ * @param array $match
* @return string
*/
private static function formatAutocommentsCallback( $match ) {
}
/**
- * @param $match
+ * @param array $match
* @return mixed
*/
protected static function formatLinksInCommentCallback( $match ) {
}
/**
- * @param $contextTitle Title
- * @param $target
- * @param $text
+ * @param Title $contextTitle
+ * @param string $target
+ * @param string $text
* @return string
*/
public static function normalizeSubpageLink( $contextTitle, $target, &$text ) {
}
/**
- * @param $size
+ * @param int $size
* @return string
*/
public static function formatRevisionSize( $size ) {
/**
* Finish one or more sublevels on the Table of Contents
*
+ * @param int $level
* @return string
*/
public static function tocUnindent( $level ) {
/**
* parameter level defines if we are on an indentation level
*
+ * @param string $anchor
+ * @param string $tocline
+ * @param string $tocnumber
+ * @param string $level
+ * @param string|bool $sectionIndex
* @return string
*/
public static function tocLine( $anchor, $tocline, $tocnumber, $level, $sectionIndex = false ) {
* Wraps the TOC in a table and provides the hide/collapse javascript.
*
* @param string $toc Html of the Table Of Contents
- * @param string|Language|false $lang Language for the toc title, defaults to user language
+ * @param string|Language|bool $lang Language for the toc title, defaults to user language
* @return string Full html of the TOC
*/
public static function tocList( $toc, $lang = false ) {
* @param string $attribs Any attributes for the headline, starting with
* a space and ending with '>'
* This *must* be at least '>' for no attribs
- * @param string $anchor the anchor to give the headline (the bit after the #)
- * @param string $html html for the text of the header
+ * @param string $anchor The anchor to give the headline (the bit after the #)
+ * @param string $html Html for the text of the header
* @param string $link HTML to add for the section edit link
- * @param bool|string $legacyAnchor a second, optional anchor to give for
+ * @param bool|string $legacyAnchor A second, optional anchor to give for
* backward compatibility (false to omit)
*
* @return string HTML headline
/**
* Split a link trail, return the "inside" portion and the remainder of the trail
* as a two-element array
+ * @param string $trail
* @return array
*/
static function splitTrail( $trail ) {
*
* If the option noBrackets is set the rollback link wont be enclosed in []
*
- * @param $rev Revision object
- * @param $context IContextSource context to use or null for the main context.
- * @param $options array
+ * @param Revision $rev
+ * @param IContextSource $context Context to use or null for the main context.
+ * @param array $options
* @return string
*/
public static function generateRollback( $rev, IContextSource $context = null, $options = array( 'verify' ) ) {
* Returns null if $wgShowRollbackEditCount is disabled or false if $verify
* is set and the user is the only contributor of the page.
*
- * @param $rev Revision object
+ * @param Revision $rev
* @param bool $verify Try to verify that this revision can really be rolled back
- * @return integer|bool|null
+ * @return int|bool|null
*/
public static function getRollbackEditCount( $rev, $verify ) {
global $wgShowRollbackEditCount;
*
* @param array $hiddencats Array of hidden categories from Article::getHiddenCategories
* or similar
- * @return String HTML output
+ * @return string HTML output
*/
public static function formatHiddenCategories( $hiddencats ) {
wfProfileIn( __METHOD__ );
* unit (B, KB, MB or GB) according to the magnitude in question
*
* @param int $size Size to format
- * @return String
+ * @return string
*/
public static function formatSize( $size ) {
global $wgLang;
* element than the id, for reverse-compatibility, etc.)
*
* @param string $name Id of the element, minus prefixes.
- * @param string|null $options null or the string 'withaccess' to add an access-
+ * @param string|null $options Null or the string 'withaccess' to add an access-
* key hint
* @return string Contents of the title attribute (which you must HTML-
* escape), or false for no title attribute
*
* @param Title $nt The title object to make the link from, e.g. from Title::newFromText.
* @param string $text Link text
- * @param string $query optional query part
- * @param string $trail optional trail. Alphabetic characters at the start of this string will
+ * @param string $query Optional query part
+ * @param string $trail Optional trail. Alphabetic characters at the start of this string will
* be included in the link text. Other characters will be appended after
* the end of the link.
- * @param string $prefix optional prefix. As trail, only before instead of after.
+ * @param string $prefix Optional prefix. As trail, only before instead of after.
* @return string
*/
static function makeLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) {
/**
* Returns the attributes for the tooltip and access key.
+ * @param string $name
* @return array
*/
public static function tooltipAndAccesskeyAttribs( $name ) {
/**
* Returns raw bits of HTML, use titleAttrib()
+ * @param string $name
+ * @param array|null $options
* @return null|string
*/
public static function tooltip( $name, $options = null ) {
* Set the timezone of this timestamp to the specified timezone.
*
* @since 1.22
- * @param String $timezone Timezone to set
+ * @param string $timezone Timezone to set
* @throws TimestampException
*/
public function setTimezone( $timezone ) {
/**
* Factory: creates an object representing an ID
*
- * @param $id
+ * @param int $id
*
* @return MagicWord
*/
/**
* Allow external reads of TTL array
*
- * @param $id int
+ * @param int $id
* @return array
*/
static function getCacheTTL( $id ) {
/**
* Initialises this object with an ID
*
- * @param $id
+ * @param int $id
* @throws MWException
*/
function load( $id ) {
* first string is longer, the same length or shorter than the second
* string.
*
- * @param $s1 string
- * @param $s2 string
+ * @param string $s1
+ * @param string $s2
*
* @return int
*/
/**
* Returns true if the text contains the word
*
- * @param $text string
+ * @param string $text
*
* @return bool
*/
/**
* Returns true if the text starts with the word
*
- * @param $text string
+ * @param string $text
*
* @return bool
*/
/**
* Returns true if the text matched the word
*
- * @param $text string
+ * @param string $text
*
* @return bool
* @since 1.23
* part in the regex and the matched variable part ($1) if there
* is one.
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
* Returns true if the text matches the word, and alters the
* input string, removing all instances of the word
*
- * @param $text string
+ * @param string $text
*
* @return bool
*/
}
/**
- * @param $text
+ * @param string $text
* @return bool
*/
function matchStartAndRemove( &$text ) {
/**
* Replaces the word with something else
*
- * @param $replacement
- * @param $subject
- * @param $limit int
+ * @param string $replacement
+ * @param string $subject
+ * @param int $limit
*
* @return string
*/
* Calls back a function to determine what to replace xxx with
* Input word must contain $1
*
- * @param $text string
- * @param $callback
+ * @param string $text
+ * @param callable $callback
*
* @return string
*/
/**
* Accesses the synonym list directly
*
- * @param $i int
+ * @param int $i
*
* @return string
*/
* $result. The return value is true if something was replaced.
* @todo Should this be static? It doesn't seem to be used at all
*
- * @param $magicarr
- * @param $subject
- * @param $result
+ * @param array $magicarr
+ * @param string $subject
+ * @param string $result
*
* @return bool
*/
* Adds all the synonyms of this MagicWord to an array, to allow quick
* lookup in a list of magic words
*
- * @param $array
- * @param $value
+ * @param array $array
+ * @param string $value
*/
function addToArray( &$array, $value ) {
global $wgContLang;
var $matches;
/**
- * @param $names array
+ * @param array $names
*/
function __construct( $names = array() ) {
$this->names = $names;
/**
* Add a magic word by name
*
- * @param $name string
+ * @param string $name
*/
public function add( $name ) {
$this->names[] = $name;
/**
* Add a number of magic words by name
*
- * @param $names array
+ * @param array $names
*/
public function addArray( $names ) {
$this->names = array_merge( $this->names, array_values( $names ) );
* Returns array(magic word ID, parameter value)
* If there is no parameter value, that element will be false.
*
- * @param $m array
+ * @param array $m
*
* @throws MWException
* @return array
* parameter in the second element.
* Both elements are false if there was no match.
*
- * @param $text string
+ * @param string $text
*
* @return array
*/
* Match some text, without parameter capture
* Returns the magic word name, or false if there was no capture
*
- * @param $text string
+ * @param string $text
*
* @return string|bool False on failure
*/
* Returns an associative array, ID => param value, for all items that match
* Removes the matched items from the input string (passed by reference)
*
- * @param $text string
+ * @param string $text
*
* @return array
*/
* Return false if no match found and $text is not modified.
* Does not match parameters.
*
- * @param $text string
+ * @param string $text
*
* @return int|bool False on failure
*/
*
* @since 1.22
*
- * @param number|number[] [$param,...] Time period parameters, or a single argument that is
+ * @param int|int[] [$param,...] Time period parameters, or a single argument that is
* an array of time period parameters.
*
* @return Message $this
*
* @since 1.19
*
- * @param $context IContextSource
+ * @param IContextSource $context
*
* @return Message $this
*/
*
* @since 1.18
*
- * @param $title Title object
+ * @param Title $title
*
* @return Message $this
*/
* @param string $message The message text.
* @param string $type Either "before" or "after".
*
- * @return String
+ * @return string
*/
protected function replaceParameters( $message, $type = 'before' ) {
$replacementKeys = array();
/**
* Get the message blobs for a set of modules
*
- * @param $resourceLoader ResourceLoader object
+ * @param ResourceLoader $resourceLoader
* @param array $modules Array of module objects keyed by module name
* @param string $lang Language code
* @return array An array mapping module names to message blobs
* present, it is not regenerated; instead, the preexisting blob
* is fetched and returned.
*
- * @param string $name module name
- * @param $module ResourceLoaderModule object
- * @param string $lang language code
+ * @param string $name Module name
+ * @param ResourceLoaderModule $module
+ * @param string $lang Language code
* @return mixed Message blob or false if the module has no messages
*/
public static function insertMessageBlob( $name, ResourceLoaderModule $module, $lang ) {
/**
* Update the message blob for a given module in a given language
*
- * @param string $name module name
- * @param $module ResourceLoaderModule object
- * @param string $lang language code
- * @return String Regenerated message blob, or null if there was no blob for the given module/language pair
+ * @param string $name Module name
+ * @param ResourceLoaderModule $module
+ * @param string $lang Language code
+ * @return string Regenerated message blob, or null if there was no blob for the given module/language pair
*/
public static function updateModule( $name, ResourceLoaderModule $module, $lang ) {
$dbw = wfGetDB( DB_MASTER );
/**
* Update a single message in all message blobs it occurs in.
*
- * @param string $key message key
+ * @param string $key Message key
*/
public static function updateMessage( $key ) {
try {
/**
* Create an update queue for updateMessage()
*
- * @param string $key message key
- * @param array $prevUpdates updates queue to refresh or null to build a fresh update queue
- * @return Array: updates queue
+ * @param string $key Message key
+ * @param array $prevUpdates Updates queue to refresh or null to build a fresh update queue
+ * @return array Updates queue
*/
private static function getUpdatesForMessage( $key, $prevUpdates = null ) {
$dbw = wfGetDB( DB_MASTER );
/**
* Reencode a message blob with the updated value for a message
*
- * @param string $blob message blob (JSON object)
- * @param string $key message key
- * @param string $lang language code
- * @return Message blob with $key replaced with its new value
+ * @param string $blob Message blob (JSON object)
+ * @param string $key Message key
+ * @param string $lang Language code
+ * @return string Message blob with $key replaced with its new value
*/
private static function reencodeBlob( $blob, $key, $lang ) {
$decoded = FormatJson::decode( $blob, true );
* Get the message blobs for a set of modules from the database.
* Modules whose blobs are not in the database are silently dropped.
*
- * @param $resourceLoader ResourceLoader object
- * @param array $modules of module names
- * @param string $lang language code
+ * @param ResourceLoader $resourceLoader
+ * @param array $modules Array of module names
+ * @param string $lang Language code
* @throws MWException
* @return array Array mapping module names to blobs
*/
/**
* Generate the message blob for a given module in a given language.
*
- * @param $module ResourceLoaderModule object
- * @param string $lang language code
- * @return String: JSON object
+ * @param ResourceLoaderModule $module
+ * @param string $lang Language code
+ * @return string JSON object
*/
private static function generateMessageBlob( ResourceLoaderModule $module, $lang ) {
$messages = array();
* separated string or null if the mime type was unrecognized. Resolves
* mime type aliases.
*
- * @param $mime string
+ * @param string $mime
* @return string|null
*/
public function getExtensionsForType( $mime ) {
* Returns a list of mime types for a given file extension as a space
* separated string or null if the extension was unrecognized.
*
- * @param $ext string
+ * @param string $ext
* @return string|null
*/
public function getTypesForExtension( $ext ) {
* Returns a single mime type for a given file extension or null if unknown.
* This is always the first type from the list returned by getTypesForExtension($ext).
*
- * @param $ext string
+ * @param string $ext
* @return string|null
*/
public function guessTypesForExtension( $ext ) {
* match was found, null if the mime type is unknown, and false if the
* mime type is known but no matches where found.
*
- * @param $extension string
- * @param $mime string
+ * @param string $extension
+ * @param string $mime
* @return bool|null
*/
public function isMatchingExtension( $extension, $mime ) {
* Returns true if the mime type is known to represent an image format
* supported by the PHP GD library.
*
- * @param $mime string
+ * @param string $mime
*
* @return bool
*/
*
* @todo Be more accurate when using fancy mime detector plugins;
* right now this is the bare minimum getimagesize() list.
+ * @param string $extension
* @return bool
*/
function isRecognizableExtension( $extension ) {
* If $mime is "application/x-opc+zip" and isMatchingExtension( $ext, $mime )
* gives true, return the result of guessTypesForExtension($ext).
*
- * @param string $mime the mime type, typically guessed from a file's content.
- * @param string $ext the file extension, as taken from the file name
+ * @param string $mime The mime type, typically guessed from a file's content.
+ * @param string $ext The file extension, as taken from the file name
*
- * @return string the mime type
+ * @return string The mime type
*/
public function improveTypeFromExtension( $mime, $ext ) {
if ( $mime === 'unknown/unknown' ) {
* detection (namely XML based formats like XHTML or SVG, as well as ZIP
* based formats like OPC/ODF files).
*
- * @param string $file the file to check
+ * @param string $file The file to check
* @param string|bool $ext The file extension, or true (default) to extract it from the filename.
* Set it to false to ignore the extension. DEPRECATED! Set to false, use
* improveTypeFromExtension($mime, $ext) later to improve mime type.
*
- * @return string the mime type of $file
+ * @return string The mime type of $file
*/
public function guessMimeType( $file, $ext = true ) {
if ( $ext ) { // TODO: make $ext default to false. Or better, remove it.
* Set it to false to ignore the extension. DEPRECATED! Set to false, use
* improveTypeFromExtension($mime, $ext) later to improve mime type.
*
- * @return string the mime type of $file
+ * @return string The mime type of $file
*/
private function detectMimeType( $file, $ext = true ) {
global $wgMimeDetectorCommand;
* @todo analyse file if need be
* @todo look at multiple extension, separately and together.
*
- * @param string $path full path to the image file, in case we have to look at the contents
+ * @param string $path Full path to the image file, in case we have to look at the contents
* (if null, only the mime type is used to determine the media type code).
- * @param string $mime mime type. If null it will be guessed using guessMimeType.
+ * @param string $mime Mime type. If null it will be guessed using guessMimeType.
*
- * @return (int?string?) a value to be used with the MEDIATYPE_xxx constants.
+ * @return string A value to be used with the MEDIATYPE_xxx constants.
*/
function getMediaType( $path = null, $mime = null ) {
if ( !$mime && !$path ) {
*
* This function relies on the mapping defined by $this->mMediaTypes
* @access private
+ * @param string $extMime
* @return int|string
*/
function findMediaType( $extMime ) {
* Get the MIME types that various versions of Internet Explorer would
* detect from a chunk of the content.
*
- * @param string $fileName the file name (unused at present)
- * @param string $chunk the first 256 bytes of the file
- * @param string $proposed the MIME type proposed by the server
- * @return Array
+ * @param string $fileName The file name (unused at present)
+ * @param string $chunk The first 256 bytes of the file
+ * @param string $proposed The MIME type proposed by the server
+ * @return array
*/
public function getIEMimeTypes( $fileName, $chunk, $proposed ) {
$ca = $this->getIEContentAnalyzer();
* Special namespaces are defined in includes/Defines.php and have
* a value below 0 (ex: NS_SPECIAL = -1 , NS_MEDIA = -2)
*
- * @param $index
- * @param $method
+ * @param int $index
+ * @param string $method
*
* @throws MWException
* @return bool
/**
* Can pages in the given namespace be moved?
*
- * @param int $index namespace index
+ * @param int $index Namespace index
* @return bool
*/
public static function isMovable( $index ) {
/**
* Is the given namespace is a subject (non-talk) namespace?
*
- * @param int $index namespace index
+ * @param int $index Namespace index
* @return bool
* @since 1.19
*/
/**
* @see self::isSubject
- * @deprecated Please use the more consistently named isSubject (since 1.19)
+ * @deprecated since 1.19 Please use the more consistently named isSubject
* @return bool
*/
public static function isMain( $index ) {
/**
* Is the given namespace a talk namespace?
*
- * @param int $index namespace index
+ * @param int $index Namespace index
* @return bool
*/
public static function isTalk( $index ) {
/**
* Get the talk namespace index for a given namespace
*
- * @param int $index namespace index
+ * @param int $index Namespace index
* @return int
*/
public static function getTalk( $index ) {
* For talk namespaces, returns the subject (non-talk) namespace
* For subject (non-talk) namespaces, returns the talk namespace
*
- * @param int $index namespace index
- * @return int or null if no associated namespace could be found
+ * @param int $index Namespace index
+ * @return int|null If no associated namespace could be found
*/
public static function getAssociated( $index ) {
self::isMethodValidFor( $index, __METHOD__ );
/**
* Returns whether the specified namespace exists
*
- * @param $index
+ * @param int $index
*
* @return bool
* @since 1.19
* Returns array of all defined namespaces with their canonical
* (English) names.
*
- * @param bool $rebuild rebuild namespace list (default = false). Used for testing.
+ * @param bool $rebuild Rebuild namespace list (default = false). Used for testing.
*
* @return array
* @since 1.17
/**
* Returns the canonical (English) name for a given index
*
- * @param int $index namespace index
- * @return string or false if no canonical definition.
+ * @param int $index Namespace index
+ * @return string|bool If no canonical definition.
*/
public static function getCanonicalName( $index ) {
$nslist = self::getCanonicalNamespaces();
* Returns the index for a given canonical name, or NULL
* The input *must* be converted to lower case first
*
- * @param string $name namespace name
+ * @param string $name Namespace name
* @return int
*/
public static function getCanonicalIndex( $name ) {
/**
* Can this namespace ever have a talk namespace?
*
- * @param int $index namespace index
+ * @param int $index Namespace index
* @return bool
*/
public static function canTalk( $index ) {
* Does this namespace contain content, for the purposes of calculating
* statistics, etc?
*
- * @param int $index index to check
+ * @param int $index Index to check
* @return bool
*/
public static function isContent( $index ) {
/**
* Can pages in a namespace be watched?
*
- * @param $index Int
+ * @param int $index
* @return bool
*/
public static function isWatchable( $index ) {
/**
* Get a list of all namespace indices which are considered to contain content
- * @return array of namespace indices
+ * @return array Array of namespace indices
*/
public static function getContentNamespaces() {
global $wgContentNamespaces;
* List all namespace indices which are considered subject, aka not a talk
* or special namespace. See also MWNamespace::isSubject
*
- * @return array of namespace indices
+ * @return array Array of namespace indices
*/
public static function getSubjectNamespaces() {
return array_filter(
* List all namespace indices which are considered talks, aka not a subject
* or special namespace. See also MWNamespace::isTalk
*
- * @return array of namespace indices
+ * @return array Array of namespace indices
*/
public static function getTalkNamespaces() {
return array_filter(
*
* @since 1.21
* @param int $index Index to check
- * @return null|string default model name for the given namespace, if set
+ * @return null|string Default model name for the given namespace, if set
*/
public static function getNamespaceContentModel( $index ) {
global $wgNamespaceContentModels;
/**
* Standard output handler for use with ob_start
*
- * @param $s string
+ * @param string $s
*
* @return string
*/
* Handler that compresses data with gzip if allowed by the Accept header.
* Unlike ob_gzhandler, it works for HEAD requests too.
*
- * @param $s string
+ * @param string $s
*
* @return string
*/
/**
* Mangle flash policy tags which open up the site to XSS attacks.
*
- * @param $s string
+ * @param string $s
*
* @return string
*/
/**
* Add a Content-Length header if possible. This makes it cooperate with squid better.
*
- * @param $length int
+ * @param int $length
*/
function wfDoContentLength( $length ) {
if ( !headers_sent() && isset( $_SERVER['SERVER_PROTOCOL'] ) && $_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0' ) {
/**
* Replace the output with an error if the HTML is not valid
*
- * @param $s string
+ * @param string $s
*
* @return string
*/
* like page existence and information for stub color and redirect hints.
* This should be done for live data and cached data.
*
- * @param $db DatabaseBase connection
+ * @param DatabaseBase $db
* @param ResultWrapper $res
*/
public function preprocessResults( $db, $res ) {
/**
* Set the offset from an other source than the request
*
- * @param $offset Int|String
+ * @param int|string $offset
*/
function setOffset( $offset ) {
$this->mOffset = $offset;
*
* Verifies limit is between 1 and 5000
*
- * @param $limit Int|String
+ * @param int|string $limit
*/
function setLimit( $limit ) {
$limit = (int)$limit;
* in the result or not. By default this is not the case, but when the
* offset is user-supplied this might be wanted.
*
- * @param $include bool
+ * @param bool $include
*/
public function setIncludeOffset( $include ) {
$this->mIncludeOffset = $include;
* Extract some useful data from the result object for use by
* the navigation bar, put it into $this
*
- * @param $isFirst bool: False if there are rows before those fetched (i.e.
+ * @param bool $isFirst False if there are rows before those fetched (i.e.
* if a "previous" link would make sense)
- * @param $limit Integer: exact query limit
- * @param $res ResultWrapper
+ * @param int $limit Exact query limit
+ * @param ResultWrapper $res
*/
function extractResultInfo( $isFirst, $limit, ResultWrapper $res ) {
$numRows = $res->numRows();
/**
* Get some text to go in brackets in the "function name" part of the SQL comment
*
- * @return String
+ * @return string
*/
function getSqlComment() {
return get_class( $this );
* Do a query with specified parameters, rather than using the object
* context
*
- * @param string $offset index offset, inclusive
- * @param $limit Integer: exact query limit
- * @param $descending Boolean: query direction, false for ascending, true for descending
+ * @param string $offset Index offset, inclusive
+ * @param int $limit Exact query limit
+ * @param bool $descending Query direction, false for ascending, true for descending
* @return ResultWrapper
*/
public function reallyDoQuery( $offset, $limit, $descending ) {
/**
* Build variables to use by the database wrapper.
*
- * @param string $offset index offset, inclusive
- * @param $limit Integer: exact query limit
- * @param $descending Boolean: query direction, false for ascending, true for descending
+ * @param string $offset Index offset, inclusive
+ * @param int $limit Exact query limit
+ * @param bool $descending Query direction, false for ascending, true for descending
* @return array
*/
protected function buildQueryInfo( $offset, $limit, $descending ) {
/**
* Pre-process results; useful for performing batch existence checks, etc.
*
- * @param $result ResultWrapper
+ * @param ResultWrapper $result
*/
protected function preprocessResults( $result ) {}
* Get the formatted result list. Calls getStartBody(), formatRow() and
* getEndBody(), concatenates the results and returns them.
*
- * @return String
+ * @return string
*/
public function getBody() {
if ( !$this->mQueryDone ) {
/**
* Make a self-link
*
- * @param string $text text displayed on the link
- * @param array $query associative array of parameter to be in the query string
- * @param string $type value of the "rel" attribute
+ * @param string $text Text displayed on the link
+ * @param array $query Associative array of parameter to be in the query string
+ * @param string $type Value of the "rel" attribute
*
- * @return String: HTML fragment
+ * @return string HTML fragment
*/
function makeLink( $text, array $query = null, $type = null ) {
if ( $query === null ) {
* Hook into getBody(), allows text to be inserted at the start. This
* will be called even if there are no rows in the result set.
*
- * @return String
+ * @return string
*/
protected function getStartBody() {
return '';
/**
* Hook into getBody() for the end of the list
*
- * @return String
+ * @return string
*/
protected function getEndBody() {
return '';
* Hook into getBody(), for the bit between the start and the
* end when there are no rows
*
- * @return String
+ * @return string
*/
protected function getEmptyBody() {
return '';
/**
* Get the number of rows in the result set
*
- * @return Integer
+ * @return int
*/
function getNumRows() {
if ( !$this->mQueryDone ) {
/**
* Get a URL query array for the prev, next, first and last links.
*
- * @return Array
+ * @return array
*/
function getPagingQueries() {
if ( !$this->mQueryDone ) {
/**
* Returns whether to show the "navigation bar"
*
- * @return Boolean
+ * @return bool
*/
function isNavigationBarShown() {
if ( !$this->mQueryDone ) {
* $linkTexts will be used. Both $linkTexts and $disabledTexts are arrays
* of HTML.
*
- * @param $linkTexts Array
- * @param $disabledTexts Array
- * @return Array
+ * @param array $linkTexts
+ * @param array $disabledTexts
+ * @return array
*/
function getPagingLinks( $linkTexts, $disabledTexts = array() ) {
$queries = $this->getPagingQueries();
* options => option array
* join_conds => JOIN conditions
*
- * @return Array
+ * @return array
*/
abstract function getQueryInfo();
* Needless to say, it's really not a good idea to use a non-unique index
* for this! That won't page right.
*
- * @return string|Array
+ * @return string|array
*/
abstract function getIndexField();
* page_len,page_id avoids temp tables (given a page_len index). This would
* also work if page_id was non-unique but we had a page_len,page_id index.
*
- * @return Array
+ * @return array
*/
protected function getExtraSortFields() {
return array();
* particular instantiation, which is a single value. This is the set of
* all defaults for the class.
*
- * @return Boolean
+ * @return bool
*/
protected function getDefaultDirections() {
return false;
* Shamelessly stolen bits from ReverseChronologicalPager,
* didn't want to do class magic as may be still revamped
*
- * @return String HTML
+ * @return string HTML
*/
function getNavigationBar() {
if ( !$this->isNavigationBarShown() ) {
* array whose keys must exactly match the keys of the array returned
* by getIndexField(), and whose values are message keys.
*
- * @return Array
+ * @return array
*/
protected function getOrderTypeMessages() {
return null;
/**
* @protected
* @param stdClass $row
- * @return String HTML
+ * @return string HTML
*/
function formatRow( $row ) {
$this->mCurrentRow = $row; // In case formatValue etc need to know
*
* @protected
*
- * @param $row Object: the database result row
- * @return String
+ * @param object $row The database result row
+ * @return string
*/
function getRowClass( $row ) {
return '';
*
* @protected
*
- * @param $row Object: the database result row
- * @return Array of attribute => value
+ * @param object $row The database result row
+ * @return array Array of attribute => value
*/
function getRowAttrs( $row ) {
$class = $this->getRowClass( $row );
*
* @param string $field The column
* @param string $value The cell contents
- * @return Array of attr => value
+ * @return array Array of attr => value
*/
function getCellAttrs( $field, $value ) {
return array( 'class' => 'TablePager_col_' . $field );
/**
* A navigation bar with images
- * @return String HTML
+ * @return string HTML
*/
public function getNavigationBar() {
global $wgStylePath;
/**
* Get a "<select>" element which has options for each of the allowed limits
*
- * @param $attribs String: Extra attributes to set
- * @return String: HTML fragment
+ * @param string $attribs Extra attributes to set
+ * @return string HTML fragment
*/
public function getLimitSelect( $attribs = array() ) {
$select = new XmlSelect( 'limit', false, $this->mLimit );
* Resubmits all defined elements of the query string, except for a
* blacklist, passed in the $blacklist parameter.
*
- * @param array $blacklist parameters from the request query which should not be resubmitted
- * @return String: HTML fragment
+ * @param array $blacklist Parameters from the request query which should not be resubmitted
+ * @return string HTML fragment
*/
function getHiddenFields( $blacklist = array() ) {
$blacklist = (array)$blacklist;
/**
* Get a form containing a limit selection dropdown
*
- * @return String: HTML fragment
+ * @return string HTML fragment
*/
function getLimitForm() {
global $wgScript;
* Return true if the named field should be sortable by the UI, false
* otherwise
*
- * @param $field String
+ * @param string $field
*/
abstract function isFieldSortable( $field );
*
* @protected
*
- * @param string $name the database field name
- * @param string $value the value retrieved from the database
+ * @param string $name The database field name
+ * @param string $value The value retrieved from the database
*/
abstract function formatValue( $name, $value );
* field name, for use in the table header. The description should be plain
* text, it will be HTML-escaped later.
*
- * @return Array
+ * @return array
*/
abstract function getFieldNames();
}
* 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
* patterns each with an associated $key to pass on.
- * @param $path string
- * @param $params array
- * @param $options array
- * @param $key null|string
+ * @param string $path
+ * @param array $params
+ * @param array $options
+ * @param null|string $key
*/
protected function doAdd( $path, $params, $options, $key = null ) {
// Make sure all paths start with a /
/**
* Add a new path pattern to the path router with the strict option on
* @see self::add
- * @param $path string|array
- * @param $params array
- * @param $options array
+ * @param string|array $path
+ * @param array $params
+ * @param array $options
*/
public function addStrict( $path, $params = array(), $options = array() ) {
$options['strict'] = true;
}
/**
- * @param $pattern object
+ * @param object $pattern
* @return float|int
*/
protected static function makeWeight( $pattern ) {
* Parse a path and return the query matches for the path
*
* @param string $path The path to parse
- * @return Array The array of matches for the path
+ * @return array The array of matches for the path
*/
public function parse( $path ) {
// Make sure our patterns are sorted by weight so the most specific
}
/**
- * @param $path string
- * @param $pattern string
+ * @param string $path
+ * @param string $pattern
* @return array|null
*/
protected static function extractTitle( $path, $pattern ) {
* We do this inside of a replacement callback because after replacement we can't tell the
* difference between a $1 that was not replaced and a $1 that was part of
* the content a $1 was replaced with.
- * @param $value string
+ * @param string $value
* @return string
*/
public function replace( $value ) {
}
/**
- * @param $m array
+ * @param array $m
* @return string
*/
protected function callback( $m ) {
/**
* @throws MWException
- * @param $user User
- * @param $context IContextSource
+ * @param User $user
+ * @param IContextSource $context
* @return array|null
*/
static function getPreferences( $user, IContextSource $context ) {
/**
* Pull option from a user account. Handles stuff like array-type preferences.
*
- * @param $name
- * @param $info
- * @param $user User
- * @return array|String
+ * @param string $name
+ * @param array $info
+ * @param User $user
+ * @return array|string
*/
static function getOptionFromUser( $name, $info, $user ) {
$val = $user->getOption( $name );
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
* @return void
*/
static function profilePreferences( $user, IContextSource $context, &$defaultPreferences ) {
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
* @return void
*/
static function skinPreferences( $user, IContextSource $context, &$defaultPreferences ) {
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences Array
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
*/
static function filesPreferences( $user, IContextSource $context, &$defaultPreferences ) {
## Files #####################################
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
* @return void
*/
static function datetimePreferences( $user, IContextSource $context, &$defaultPreferences ) {
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences Array
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
*/
static function renderingPreferences( $user, IContextSource $context, &$defaultPreferences ) {
## Diffs ####################################
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences Array
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
*/
static function editingPreferences( $user, IContextSource $context, &$defaultPreferences ) {
global $wgAllowUserCssPrefs;
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences Array
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
*/
static function rcPreferences( $user, IContextSource $context, &$defaultPreferences ) {
global $wgRCMaxAge, $wgRCShowWatchingUsers;
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
*/
static function watchlistPreferences( $user, IContextSource $context, &$defaultPreferences ) {
global $wgUseRCPatrol, $wgEnableAPI, $wgRCMaxAge;
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $defaultPreferences Array
+ * @param User $user
+ * @param IContextSource $context
+ * @param array $defaultPreferences
*/
static function searchPreferences( $user, IContextSource $context, &$defaultPreferences ) {
global $wgContLang;
}
/**
- * @param $user User The User object
- * @param $context IContextSource
- * @return Array: text/links to display as key; $skinkey as value
+ * @param User $user The User object
+ * @param IContextSource $context
+ * @return array Text/links to display as key; $skinkey as value
*/
static function generateSkinOptions( $user, IContextSource $context ) {
global $wgDefaultSkin, $wgAllowUserCss, $wgAllowUserJs;
}
/**
- * @param $context IContextSource
+ * @param IContextSource $context
* @return array
*/
static function getDateOptions( IContextSource $context ) {
}
/**
- * @param $context IContextSource
+ * @param IContextSource $context
* @return array
*/
static function getImageSizes( IContextSource $context ) {
}
/**
- * @param $context IContextSource
+ * @param IContextSource $context
* @return array
*/
static function getThumbSizes( IContextSource $context ) {
}
/**
- * @param $signature string
- * @param $alldata array
- * @param $form HTMLForm
+ * @param string $signature
+ * @param array $alldata
+ * @param HTMLForm $form
* @return bool|string
*/
static function validateSignature( $signature, $alldata, $form ) {
}
/**
- * @param $signature string
- * @param $alldata array
- * @param $form HTMLForm
+ * @param string $signature
+ * @param array $alldata
+ * @param HTMLForm $form
* @return string
*/
static function cleanSignature( $signature, $alldata, $form ) {
}
/**
- * @param $user User
- * @param $context IContextSource
- * @param $formClass string
- * @param array $remove array of items to remove
+ * @param User $user
+ * @param IContextSource $context
+ * @param string $formClass
+ * @param array $remove Array of items to remove
* @return HtmlForm
*/
static function getFormObject(
}
/**
- * @param $context IContextSource
+ * @param IContextSource $context
* @return array
*/
static function getTimezoneOptions( IContextSource $context ) {
}
/**
- * @param $value
- * @param $alldata
+ * @param string $value
+ * @param array $alldata
* @return int
*/
static function filterIntval( $value, $alldata ) {
}
/**
- * @param $tz
- * @param $alldata
+ * @param string $tz
+ * @param array $alldata
* @return string
*/
static function filterTimezoneInput( $tz, $alldata ) {
/**
* Handle the form submission if everything validated properly
*
- * @param $formData
- * @param $form PreferencesForm
+ * @param array $formData
+ * @param PreferencesForm $form
* @return bool|Status|string
*/
static function tryFormSubmit( $formData, $form ) {
}
/**
- * @param $formData
- * @param $form PreferencesForm
+ * @param array $formData
+ * @param PreferencesForm $form
* @return Status
*/
public static function tryUISubmit( $formData, $form ) {
* right.
*
* @deprecated since 1.20; use User::setEmailWithConfirmation() instead.
- * @param $user User
+ * @param User $user
* @param string $newaddr New email address
- * @return Array (true on success or Status on failure, info string)
+ * @return array (true on success or Status on failure, info string)
*/
public static function trySetUserEmail( User $user, $newaddr ) {
wfDeprecated( __METHOD__, '1.20' );
/**
* @deprecated since 1.19
- * @param $user User
+ * @param User $user
* @return array
*/
public static function loadOldSearchNs( $user ) {
private $modifiedUser;
/**
- * @param $user User
+ * @param User $user
*/
public function setModifiedUser( $user ) {
$this->modifiedUser = $user;
}
/**
- * @param $html string
- * @return String
+ * @param string $html
+ * @return string
*/
function wrapForm( $html ) {
$html = Xml::tags( 'div', array( 'id' => 'preferences' ), $html );
}
/**
- * @return String
+ * @return string
*/
function getButtons() {
if ( !$this->getModifiedUser()->isAllowedAny( 'editmyprivateinfo', 'editmyoptions' ) ) {
/**
* Separate multi-option preferences into multiple preferences, since we
* have to store them separately
- * @param $data array
+ * @param array $data
* @return array
*/
function filterDataForSubmit( $data ) {
/**
* Get the "<legend>" for a given section key. Normally this is the
* prefs-$key message but we'll allow extensions to override it.
- * @param $key string
+ * @param string $key
* @return string
*/
function getLegend( $key ) {
* Do a prefix search of titles and return a list of matching page names.
* @deprecated: Since 1.23, use TitlePrefixSearch or StringPrefixSearch classes
*
- * @param $search String
- * @param $limit Integer
- * @param array $namespaces used if query is not explicitly prefixed
- * @return Array of strings
+ * @param string $search
+ * @param int $limit
+ * @param array $namespaces Used if query is not explicitly prefixed
+ * @return array Array of strings
*/
public static function titleSearch( $search, $limit, $namespaces = array() ) {
$prefixSearch = new StringPrefixSearch;
/**
* Do a prefix search of titles and return a list of matching page names.
*
- * @param $search String
- * @param $limit Integer
- * @param array $namespaces used if query is not explicitly prefixed
- * @return Array of strings or Title objects
+ * @param string $search
+ * @param int $limit
+ * @param array $namespaces Used if query is not explicitly prefixed
+ * @return array Array of strings or Title objects
*/
public function search( $search, $limit, $namespaces = array() ) {
$search = trim( $search );
/**
* Do a prefix search for all possible variants of the prefix
- * @param $search String
- * @param $limit Integer
+ * @param string $search
+ * @param int $limit
* @param array $namespaces
*
* @return array
/**
* Do a prefix search of titles and return a list of matching page names.
- * @param $namespaces Array
- * @param $search String
- * @param $limit Integer
- * @return Array of strings
+ * @param array $namespaces
+ * @param string $search
+ * @param int $limit
+ * @return array Array of strings
*/
protected function searchBackend( $namespaces, $search, $limit ) {
if ( count( $namespaces ) == 1 ) {
/**
* Prefix search special-case for Special: namespace.
*
- * @param string $search term
- * @param $limit Integer: max number of items to return
- * @return Array
+ * @param string $search Term
+ * @param int $limit Max number of items to return
+ * @return array
*/
protected function specialSearch( $search, $limit ) {
global $wgContLang;
* be automatically capitalized by Title::secureAndSpit()
* later on depending on $wgCapitalLinks)
*
- * @param array $namespaces namespaces to search in
- * @param string $search term
- * @param $limit Integer: max number of items to return
- * @return Array of Title objects
+ * @param array $namespaces Namespaces to search in
+ * @param string $search Term
+ * @param int $limit Max number of items to return
+ * @return array Array of Title objects
*/
protected function defaultSearchBackend( $namespaces, $search, $limit ) {
$ns = array_shift( $namespaces ); // support only one namespace
/**
* Validate an array of numerical namespace indexes
*
- * @param $namespaces Array
- * @return Array (default: contains only NS_MAIN)
+ * @param array $namespaces
+ * @return array (default: contains only NS_MAIN)
*/
protected function validateNamespaces( $namespaces ) {
global $wgContLang;
/**
* Get the expiry time for a given action, by combining the relevant inputs.
*
- * @param $action string
+ * @param string $action
*
* @return string 14-char timestamp or "infinity", or false if the input was invalid
*/
/**
* Show the input form with optional error message
*
- * @param string $err error message or null if there's no error
+ * @param string $err Error message or null if there's no error
*/
function show( $err = null ) {
global $wgOut;
/**
* Save submitted protection form
*
- * @return Boolean: success
+ * @return bool Success
*/
function save() {
global $wgRequest, $wgUser, $wgOut;
/**
* Build the input form
*
- * @return String: HTML form
+ * @return string HTML form
*/
function buildForm() {
global $wgUser, $wgLang, $wgOut;
/**
* Build protection level selector
*
- * @param string $action action to protect
- * @param string $selected current protection level
- * @return String: HTML fragment
+ * @param string $action Action to protect
+ * @param string $selected Current protection level
+ * @return string HTML fragment
*/
function buildSelector( $action, $selected ) {
global $wgUser;
/**
* Prepare the label for a protection selector option
*
- * @param string $permission permission required
- * @return String
+ * @param string $permission Permission required
+ * @return string
*/
private function getOptionLabel( $permission ) {
if ( $permission == '' ) {
/**
* Show protection long extracts for this page
*
- * @param $out OutputPage
+ * @param OutputPage $out
* @access private
*/
function showLogExtract( &$out ) {
protected $cachedTimestamp = null;
/**
- * Wheter to show prev/next links
+ * Whether to show prev/next links
*/
protected $shownavigation = true;
/**
* Get a DB connection to be used for slow recache queries
+ * @return DatabaseBase
*/
function getRecacheDB() {
return wfGetDB( DB_SLAVE, array( $this->getName(), 'QueryPage::recache', 'vslow' ) );
}
/**
- * @param $offset
+ * @param int $offset
* @return string
*/
function openList( $offset ) {
* Revision::READ_LATEST : Select the data from the master
* Revision::READ_LOCKING : Select & lock the data from the master
*
- * @param $id Integer
- * @param $flags Integer (optional)
- * @return Revision or null
+ * @param int $id
+ * @param int $flags (optional)
+ * @return Revision|null
*/
public static function newFromId( $id, $flags = 0 ) {
return self::newFromConds( array( 'rev_id' => intval( $id ) ), $flags );
* Revision::READ_LATEST : Select the data from the master
* Revision::READ_LOCKING : Select & lock the data from the master
*
- * @param $title Title
- * @param $id Integer (optional)
- * @param $flags Integer Bitfield (optional)
- * @return Revision or null
+ * @param Title $title
+ * @param int $id (optional)
+ * @param int $flags Bitfield (optional)
+ * @return Revision|null
*/
public static function newFromTitle( $title, $id = 0, $flags = 0 ) {
$conds = array(
* Revision::READ_LATEST : Select the data from the master (since 1.20)
* Revision::READ_LOCKING : Select & lock the data from the master
*
- * @param $revId Integer
- * @param $pageId Integer (optional)
- * @param $flags Integer Bitfield (optional)
- * @return Revision or null
+ * @param int $revId
+ * @param int $pageId (optional)
+ * @param int $flags Bitfield (optional)
+ * @return Revision|null
*/
public static function newFromPageId( $pageId, $revId = 0, $flags = 0 ) {
$conds = array( 'page_id' => $pageId );
* for permissions or even inserted (as in Special:Undelete)
* @todo FIXME: Should be a subclass for RevisionDelete. [TS]
*
- * @param $row
- * @param $overrides array
+ * @param object $row
+ * @param array $overrides
*
* @throws MWException
* @return Revision
/**
* @since 1.19
*
- * @param $row
+ * @param object $row
* @return Revision
*/
public static function newFromRow( $row ) {
* Load a page revision from a given revision ID number.
* Returns null if no such revision can be found.
*
- * @param $db DatabaseBase
- * @param $id Integer
- * @return Revision or null
+ * @param DatabaseBase $db
+ * @param int $id
+ * @return Revision|null
*/
public static function loadFromId( $db, $id ) {
return self::loadFromConds( $db, array( 'rev_id' => intval( $id ) ) );
* that's attached to a given page. If not attached
* to that page, will return null.
*
- * @param $db DatabaseBase
- * @param $pageid Integer
- * @param $id Integer
- * @return Revision or null
+ * @param DatabaseBase $db
+ * @param int $pageid
+ * @param int $id
+ * @return Revision|null
*/
public static function loadFromPageId( $db, $pageid, $id = 0 ) {
$conds = array( 'rev_page' => intval( $pageid ), 'page_id' => intval( $pageid ) );
* that's attached to a given page. If not attached
* to that page, will return null.
*
- * @param $db DatabaseBase
- * @param $title Title
- * @param $id Integer
- * @return Revision or null
+ * @param DatabaseBase $db
+ * @param Title $title
+ * @param int $id
+ * @return Revision|null
*/
public static function loadFromTitle( $db, $title, $id = 0 ) {
if ( $id ) {
* WARNING: Timestamps may in some circumstances not be unique,
* so this isn't the best key to use.
*
- * @param $db DatabaseBase
- * @param $title Title
- * @param $timestamp String
- * @return Revision or null
+ * @param DatabaseBase $db
+ * @param Title $title
+ * @param string $timestamp
+ * @return Revision|null
*/
public static function loadFromTimestamp( $db, $title, $timestamp ) {
return self::loadFromConds( $db,
/**
* Given a set of conditions, fetch a revision.
*
- * @param $conditions Array
- * @param $flags integer (optional)
- * @return Revision or null
+ * @param array $conditions
+ * @param int $flags (optional)
+ * @return Revision|null
*/
private static function newFromConds( $conditions, $flags = 0 ) {
$db = wfGetDB( ( $flags & self::READ_LATEST ) ? DB_MASTER : DB_SLAVE );
* Given a set of conditions, fetch a revision from
* the given database connection.
*
- * @param $db DatabaseBase
- * @param $conditions Array
- * @param $flags integer (optional)
- * @return Revision or null
+ * @param DatabaseBase $db
+ * @param array $conditions
+ * @param int $flags (optional)
+ * @return Revision|null
*/
private static function loadFromConds( $db, $conditions, $flags = 0 ) {
$res = self::fetchFromConds( $db, $conditions, $flags );
* fetch all of a given page's revisions in turn.
* Each row can be fed to the constructor to get objects.
*
- * @param $title Title
+ * @param Title $title
* @return ResultWrapper
*/
public static function fetchRevision( $title ) {
* which will return matching database rows with the
* fields necessary to build Revision objects.
*
- * @param $db DatabaseBase
- * @param $conditions Array
- * @param $flags integer (optional)
+ * @param DatabaseBase $db
+ * @param array $conditions
+ * @param int $flags (optional)
* @return ResultWrapper
*/
private static function fetchFromConds( $db, $conditions, $flags = 0 ) {
* Return the value of a select() JOIN conds array for the user table.
* This will get user table rows for logged-in users.
* @since 1.19
- * @return Array
+ * @return array
*/
public static function userJoinCond() {
return array( 'LEFT JOIN', array( 'rev_user != 0', 'user_id = rev_user' ) );
* Return the value of a select() page conds array for the page table.
* This will assure that the revision(s) are not orphaned from live pages.
* @since 1.19
- * @return Array
+ * @return array
*/
public static function pageJoinCond() {
return array( 'INNER JOIN', array( 'page_id = rev_page' ) );
/**
* Do a batched query to get the parent revision lengths
- * @param $db DatabaseBase
- * @param $revIds Array
+ * @param DatabaseBase $db
+ * @param array $revIds
* @return array
*/
public static function getParentLengths( $db, array $revIds ) {
/**
* Constructor
*
- * @param $row Mixed: either a database row or an array
+ * @param object $row Either a database row or an array
* @throws MWException
* @access private
*/
/**
* Get revision ID
*
- * @return Integer|null
+ * @return int|null
*/
public function getId() {
return $this->mId;
* Set the revision ID
*
* @since 1.19
- * @param $id Integer
+ * @param int $id
*/
public function setId( $id ) {
$this->mId = $id;
/**
* Get text row ID
*
- * @return Integer|null
+ * @return int|null
*/
public function getTextId() {
return $this->mTextId;
/**
* Get parent revision ID (the original previous page revision)
*
- * @return Integer|null
+ * @return int|null
*/
public function getParentId() {
return $this->mParentId;
/**
* Returns the length of the text in this revision, or null if unknown.
*
- * @return Integer|null
+ * @return int|null
*/
public function getSize() {
return $this->mSize;
/**
* Returns the base36 sha1 of the text in this revision, or null if unknown.
*
- * @return String|null
+ * @return string|null
*/
public function getSha1() {
return $this->mSha1;
/**
* Set the title of the revision
*
- * @param $title Title
+ * @param Title $title
*/
public function setTitle( $title ) {
$this->mTitle = $title;
/**
* Get the page ID
*
- * @return Integer|null
+ * @return int|null
*/
public function getPage() {
return $this->mPage;
* If the specified audience does not have access to it, zero will be
* returned.
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the ID regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
- * @return Integer
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the ID regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
+ * @return int
*/
public function getUser( $audience = self::FOR_PUBLIC, User $user = null ) {
if ( $audience == self::FOR_PUBLIC && $this->isDeleted( self::DELETED_USER ) ) {
/**
* Fetch revision's user id without regard for the current user's permissions
*
- * @return String
+ * @return string
*/
public function getRawUser() {
return $this->mUser;
* If the specified audience does not have access to the username, an
* empty string will be returned.
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @return string
*/
public function getUserText( $audience = self::FOR_PUBLIC, User $user = null ) {
/**
* Fetch revision's username without regard for view restrictions
*
- * @return String
+ * @return string
*/
public function getRawUserText() {
if ( $this->mUserText === null ) {
* If the specified audience does not have access to the comment, an
* empty string will be returned.
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
- * @return String
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
+ * @return string
*/
function getComment( $audience = self::FOR_PUBLIC, User $user = null ) {
if ( $audience == self::FOR_PUBLIC && $this->isDeleted( self::DELETED_COMMENT ) ) {
/**
* Fetch revision comment without regard for the current user's permissions
*
- * @return String
+ * @return string
*/
public function getRawComment() {
return $this->mComment;
}
/**
- * @return Boolean
+ * @return bool
*/
public function isMinor() {
return (bool)$this->mMinorEdit;
}
/**
- * @return integer rcid of the unpatrolled row, zero if there isn't one
+ * @return int Rcid of the unpatrolled row, zero if there isn't one
*/
public function isUnpatrolled() {
if ( $this->mUnpatrolled !== null ) {
/**
* @param int $field one of DELETED_* bitfield constants
*
- * @return Boolean
+ * @return bool
*/
public function isDeleted( $field ) {
return ( $this->mDeleted & $field ) == $field;
* If the specified audience does not have the ability to view this
* revision, an empty string will be returned.
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
*
* @deprecated since 1.21, use getContent() instead
* @todo Replace usage in core
- * @return String
+ * @return string
*/
public function getText( $audience = self::FOR_PUBLIC, User $user = null ) {
ContentHandler::deprecated( __METHOD__, '1.21' );
* If the specified audience does not have the ability to view this
* revision, null will be returned.
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to $wgUser
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to $wgUser
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @since 1.21
* @return Content|null
*/
/**
* Fetch revision text without regard for view restrictions
*
- * @return String
+ * @return string
*
* @deprecated since 1.21. Instead, use Revision::getContent( Revision::RAW )
* or Revision::getSerializedData() as appropriate.
* Fetch original serialized data without regard for view restrictions
*
* @since 1.21
- * @return String
+ * @return string
*/
public function getSerializedData() {
if ( is_null( $this->mText ) ) {
* fresh clone.
*
* @since 1.21
- * @return Content|null the Revision's content, or null on failure.
+ * @return Content|null The Revision's content, or null on failure.
*/
protected function getContentInternal() {
if ( is_null( $this->mContent ) ) {
* used to determine the content model to use. If no title is know, CONTENT_MODEL_WIKITEXT
* is used as a last resort.
*
- * @return String the content model id associated with this revision,
+ * @return string The content model id associated with this revision,
* see the CONTENT_MODEL_XXX constants.
**/
public function getContentModel() {
* If no content format was stored in the database, the default format for this
* revision's content model is returned.
*
- * @return String the content format id associated with this revision,
+ * @return string The content format id associated with this revision,
* see the CONTENT_FORMAT_XXX constants.
**/
public function getContentFormat() {
}
/**
- * @return String
+ * @return string
*/
public function getTimestamp() {
return wfTimestamp( TS_MW, $this->mTimestamp );
}
/**
- * @return Boolean
+ * @return bool
*/
public function isCurrent() {
return $this->mCurrent;
/**
* Get next revision for this title
*
- * @return Revision or null
+ * @return Revision|null
*/
public function getNext() {
if ( $this->getTitle() ) {
* Get previous revision Id for this page_id
* This is used to populate rev_parent_id on save
*
- * @param $db DatabaseBase
- * @return Integer
+ * @param DatabaseBase $db
+ * @return int
*/
private function getPreviousRevisionId( $db ) {
if ( is_null( $this->mPage ) ) {
* data is compressed, and 'utf-8' if we're saving in UTF-8
* mode.
*
- * @param $text Mixed: reference to a text
- * @return String
+ * @param mixed $text Reference to a text
+ * @return string
*/
public static function compressRevisionText( &$text ) {
global $wgCompressRevisions;
/**
* Re-converts revision text according to it's flags.
*
- * @param $text Mixed: reference to a text
- * @param $flags array: compression flags
- * @return String|bool decompressed text, or false on failure
+ * @param mixed $text Reference to a text
+ * @param array $flags Compression flags
+ * @return string|bool Decompressed text, or false on failure
*/
public static function decompressRevisionText( $text, $flags ) {
if ( in_array( 'gzip', $flags ) ) {
* Insert a new revision into the database, returning the new revision ID
* number on success and dies horribly on failure.
*
- * @param $dbw DatabaseBase: (master connection)
+ * @param DatabaseBase $dbw (master connection)
* @throws MWException
- * @return Integer
+ * @return int
*/
public function insertOn( $dbw ) {
global $wgDefaultExternalStore, $wgContentHandlerUseDB;
/**
* Get the base 36 SHA-1 value for a string of text
- * @param $text String
- * @return String
+ * @param string $text
+ * @return string
*/
public static function base36Sha1( $text ) {
return wfBaseConvert( sha1( $text ), 16, 36, 31 );
* Lazy-load the revision's text.
* Currently hardcoded to the 'text' table storage engine.
*
- * @return String|bool the revision's text, or false on failure
+ * @return string|bool The revision's text, or false on failure
*/
protected function loadText() {
wfProfileIn( __METHOD__ );
* Such revisions can for instance identify page rename
* operations and other such meta-modifications.
*
- * @param $dbw DatabaseBase
- * @param $pageId Integer: ID number of the page to read from
- * @param string $summary revision's summary
- * @param $minor Boolean: whether the revision should be considered as minor
- * @return Revision|null on error
+ * @param DatabaseBase $dbw
+ * @param int $pageId: ID number of the page to read from
+ * @param string $summary Revision's summary
+ * @param bool $minor Whether the revision should be considered as minor
+ * @return Revision|null Revision or null on error
*/
public static function newNullRevision( $dbw, $pageId, $summary, $minor ) {
global $wgContentHandlerUseDB;
* Determine if the current user is allowed to view a particular
* field of this revision, if it's marked as deleted.
*
- * @param $field Integer:one of self::DELETED_TEXT,
+ * @param int $field One of self::DELETED_TEXT,
* self::DELETED_COMMENT,
* self::DELETED_USER
- * @param $user User object to check, or null to use $wgUser
- * @return Boolean
+ * @param User|null $user User object to check, or null to use $wgUser
+ * @return bool
*/
public function userCan( $field, User $user = null ) {
return self::userCanBitfield( $this->mDeleted, $field, $user );
* field of this revision, if it's marked as deleted. This is used
* by various classes to avoid duplication.
*
- * @param $bitfield Integer: current field
- * @param $field Integer: one of self::DELETED_TEXT = File::DELETED_FILE,
+ * @param int $bitfield Current field
+ * @param int $field One of self::DELETED_TEXT = File::DELETED_FILE,
* self::DELETED_COMMENT = File::DELETED_COMMENT,
* self::DELETED_USER = File::DELETED_USER
- * @param $user User object to check, or null to use $wgUser
- * @return Boolean
+ * @param User|null $user User object to check, or null to use $wgUser
+ * @return bool
*/
public static function userCanBitfield( $bitfield, $field, User $user = null ) {
if ( $bitfield & $field ) { // aspect is deleted
/**
* Get rev_timestamp from rev_id, without loading the rest of the row
*
- * @param $title Title
- * @param $id Integer
- * @return String
+ * @param Title $title
+ * @param int $id
+ * @return string
*/
static function getTimestampFromId( $title, $id ) {
$dbr = wfGetDB( DB_SLAVE );
/**
* Get count of revisions per page...not very efficient
*
- * @param $db DatabaseBase
- * @param $id Integer: page id
- * @return Integer
+ * @param DatabaseBase $db
+ * @param int $id Page id
+ * @return int
*/
static function countByPageId( $db, $id ) {
$row = $db->selectRow( 'revision', array( 'revCount' => 'COUNT(*)' ),
/**
* Get count of revisions per page...not very efficient
*
- * @param $db DatabaseBase
- * @param $title Title
- * @return Integer
+ * @param DatabaseBase $db
+ * @param Title $title
+ * @return int
*/
static function countByTitle( $db, $title ) {
$id = $title->getArticleID();
*
* @since 1.20
*
- * @param DatabaseBase|int $db the Database to perform the check on. May be given as a
+ * @param DatabaseBase|int $db The Database to perform the check on. May be given as a
* Database object or a database identifier usable with wfGetDB.
- * @param int $pageId the ID of the page in question
- * @param int $userId the ID of the user in question
- * @param string $since look at edits since this time
+ * @param int $pageId The ID of the page in question
+ * @param int $userId The ID of the user in question
+ * @param string $since Look at edits since this time
*
* @return bool True if the given user was the only one to edit since the given timestamp
*/
/**
* Construct a revision list for a given title
- * @param $context IContextSource
- * @param $title Title
+ * @param IContextSource $context
+ * @param Title $title
*/
function __construct( IContextSource $context, Title $title ) {
$this->setContext( $context );
/**
* Select items only where the ID is any of the specified values
- * @param $ids Array
+ * @param array $ids
*/
function filterByIds( array $ids ) {
$this->ids = $ids;
/**
* Start iteration. This must be called before current() or next().
- * @return First list item
+ * @return Revision First list item
*/
public function reset() {
if ( !$this->res ) {
/**
* Get the current list item, or false if we are at the end
+ * @return Revision
*/
public function current() {
return $this->current;
/**
* Move the iteration pointer to the next list item, and return it.
+ * @return Revision
*/
public function next() {
$this->res->next();
/**
* Do the DB query to iterate through the objects.
- * @param $db DatabaseBase object to use for the query
+ * @param DatabaseBase $db DatabaseBase object to use for the query
*/
abstract public function doQuery( $db );
/**
* Create an item object from a DB result row
- * @param $row stdclass
+ * @param object $row
*/
abstract public function newItem( $row );
}
var $row;
/**
- * @param $list RevisionListBase
- * @param $row DB result row
+ * @param RevisionListBase $list
+ * @param object $row DB result row
*/
public function __construct( $list, $row ) {
$this->list = $list;
/**
* Get the ID, as it would appear in the ids URL parameter
- * @return
+ * @return int
*/
public function getId() {
$field = $this->getIdField();
/**
* Get the date, formatted in user's language
- * @return String
+ * @return string
*/
public function formatDate() {
return $this->list->getLanguage()->userDate( $this->getTimestamp(),
/**
* Get the time, formatted in user's language
- * @return String
+ * @return string
*/
public function formatTime() {
return $this->list->getLanguage()->userTime( $this->getTimestamp(),
/**
* Get the timestamp in MW 14-char form
- * @return Mixed
+ * @return mixed
*/
public function getTimestamp() {
$field = $this->getTimestampField();
}
/**
- * @param $db DatabaseBase
+ * @param DatabaseBase $db
* @return mixed
*/
public function doQuery( $db ) {
* HTML5 definition of id attribute
*
* @param string $id id to escape
- * @param $options Mixed: string or array of strings (default is array()):
+ * @param string|array $options String or array of strings (default is array()):
* '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. Only matters if $wgExperimentalHtmlIds is
* This allows (generally harmless) entities like   to survive.
*
* @param string $html HTML to escape
- * @return string: escaped input
+ * @return string Escaped input
*/
static function escapeHtmlAllowEntities( $html ) {
$html = Sanitizer::decodeCharReferences( $html );
* @param string $suffix The suffix of the wiki in question.
* @param array $params List of parameters. $.'key' is replaced by $value in all returned data.
* @param array $wikiTags The tags assigned to the wiki.
- * @return Mixed the value of the setting requested.
+ * @return mixed The value of the setting requested.
*/
public function get( $settingName, $wiki, $suffix = null, $params = array(), $wikiTags = array() ) {
$params = $this->mergeParams( $wiki, $suffix, $params, $wikiTags );
*
* @param string $settingName ID of the setting name to retrieve.
* @param string $wiki Wiki ID of the wiki in question.
- * @param array $params array of parameters.
- * @return Mixed the value of the setting requested.
+ * @param array $params Array of parameters.
+ * @return mixed The value of the setting requested.
*/
protected function getSetting( $settingName, $wiki, /*array*/ $params ) {
$retval = null;
* Type-safe string replace; won't do replacements on non-strings
* private?
*
- * @param $from
- * @param $to
- * @param $in
+ * @param string $from
+ * @param string $to
+ * @param string|array $in
* @return string
*/
function doReplace( $from, $to, $in ) {
* @param string $suffix The suffix of the wiki in question.
* @param array $params List of parameters. $.'key' is replaced by $value in all returned data.
* @param array $wikiTags The tags assigned to the wiki.
- * @return Array Array of settings requested.
+ * @return array Array of settings requested.
*/
public function getAll( $wiki, $suffix = null, $params = array(), $wikiTags = array() ) {
$params = $this->mergeParams( $wiki, $suffix, $params, $wikiTags );
}
/**
- * @param $setting string
- * @param $wiki string
- * @param $params array
+ * @param string $setting
+ * @param string $wiki
+ * @param array $params
*/
public function extractGlobalSetting( $setting, $wiki, $params ) {
$value = $this->getSetting( $setting, $wiki, $params );
* See the documentation of self::$siteParamsCallback for more in-depth
* documentation about this function
*
- * @param $wiki String
+ * @param string $wiki
* @return array
*/
protected function getWikiParams( $wiki ) {
* @param string $wiki Wiki ID of the wiki in question.
* @param string $suffix The suffix of the wiki in question.
* @param array $params List of parameters. $.'key' is replaced by $value in
- * all returned data.
+ * all returned data.
* @param array $wikiTags The tags assigned to the wiki.
* @return array
*/
/**
* Work out the site and language name from a database name
- * @param $db
+ * @param string $db
*
* @return array
*/
*
* @param string $wiki
* @param array|string $settings A setting name or array of setting names
- * @return Array|mixed Array if $settings is an array, otherwise the value
+ * @return mixed|mixed[] Array if $settings is an array, otherwise the value
* @throws MWException
* @since 1.21
*/
/**
* Returns true if the given vhost is handled locally.
- * @param $vhost String
+ * @param string $vhost
* @return bool
*/
public function isLocalVHost( $vhost ) {
* PHP's array_merge_recursive() merges ANY duplicate values into arrays,
* which is not fun
*
- * @param $array1 array
+ * @param array $array1
*
* @return array
*/
}
/**
- * @param $recache bool
+ * @param bool $recache
*/
static function load( $recache = false ) {
if ( self::$loaded && !$recache ) {
}
/**
- * @return Bool|ResultWrapper
+ * @return bool|ResultWrapper
*/
static function loadAndLazyInit() {
wfDebug( __METHOD__ . ": reading site_stats from slave\n" );
}
/**
- * @param $db DatabaseBase
- * @return Bool|ResultWrapper
+ * @param DatabaseBase $db
+ * @return bool|ResultWrapper
*/
static function doLoad( $db ) {
return $db->selectRow( 'site_stats', array(
/**
* Find the number of users in a given user group.
* @param string $group name of group
- * @return Integer
+ * @return int
*/
static function numberingroup( $group ) {
if ( !isset( self::$groupMemberCounts[$group] ) ) {
}
/**
- * @param $ns int
+ * @param int $ns
*
* @return int
*/
*
* Checks only fields which are filled by SiteStatsInit::refresh.
*
- * @param $row
+ * @param bool|object $row
*
* @return bool
*/
/**
* Constructor
- * @param $database Boolean or DatabaseBase:
+ * @param bool|DatabaseBase $database
* - Boolean: whether to use the master DB
* - DatabaseBase: database connection to use
*/
/**
* Count the total number of edits
- * @return Integer
+ * @return int
*/
public function edits() {
$this->mEdits = $this->db->selectField( 'revision', 'COUNT(*)', '', __METHOD__ );
/**
* Count pages in article space(s)
- * @return Integer
+ * @return int
*/
public function articles() {
global $wgArticleCountMethod;
/**
* Count total pages
- * @return Integer
+ * @return int
*/
public function pages() {
$this->mPages = $this->db->selectField( 'page', 'COUNT(*)', '', __METHOD__ );
/**
* Count total users
- * @return Integer
+ * @return int
*/
public function users() {
$this->mUsers = $this->db->selectField( 'user', 'COUNT(*)', '', __METHOD__ );
/**
* Count views
- * @return Integer
+ * @return int
*/
public function views() {
$this->mViews = $this->db->selectField( 'page', 'SUM(page_counter)', '', __METHOD__ );
/**
* Count total files
- * @return Integer
+ * @return int
*/
public function files() {
$this->mFiles = $this->db->selectField( 'image', 'COUNT(*)', '', __METHOD__ );
* Do all updates and commit them. More or less a replacement
* for the original initStats, but without output.
*
- * @param $database DatabaseBase|bool
+ * @param DatabaseBase|bool $database
* - Boolean: whether to use the master DB
* - DatabaseBase: database connection to use
* @param array $options of options, may contain the following values
/**
* Fetch the set of available skins.
- * @return array associative array of strings
+ * @return array Associative array of strings
*/
static function getSkinNames() {
global $wgValidSkinNames;
/**
* Fetch the skinname messages for available skins.
- * @return array of strings
+ * @return string[]
*/
static function getSkinNameMessages() {
$messages = array();
}
/**
- * @return string skin name
+ * @return string Skin name
*/
public function getSkinName() {
return $this->skinname;
}
/**
- * @param $out OutputPage
+ * @param OutputPage $out
*/
function initPage( OutputPage $out ) {
wfProfileIn( __METHOD__ );
* Defines the ResourceLoader modules that should be added to the skin
* It is recommended that skins wishing to override call parent::getDefaultModules()
* and substitute out any modules they wish to change by using a key to look them up
- * @return Array of modules with helper keys for easy overriding
+ * @return array Array of modules with helper keys for easy overriding
*/
public function getDefaultModules() {
global $wgIncludeLegacyJavaScript, $wgPreloadJavaScriptMwUtil, $wgUseAjax,
/**
* Get the current revision ID
*
- * @return Integer
+ * @return int
*/
public function getRevisionId() {
return $this->getOutput()->getRevisionId();
/**
* Whether the revision displayed is the latest revision of the page
*
- * @return Boolean
+ * @return bool
*/
public function isRevisionCurrent() {
$revID = $this->getRevisionId();
/**
* Set the "relevant" title
* @see self::getRelevantTitle()
- * @param $t Title object to use
+ * @param Title $t
*/
public function setRelevantTitle( $t ) {
$this->mRelevantTitle = $t;
/**
* Set the "relevant" user
* @see self::getRelevantUser()
- * @param $u User object to use
+ * @param User $u
*/
public function setRelevantUser( $u ) {
$this->mRelevantUser = $u;
/**
* Outputs the HTML generated by other functions.
- * @param $out OutputPage
+ * @param OutputPage $out
*/
abstract function outputPage( OutputPage $out = null );
/**
- * @param $data array
+ * @param array $data
* @return string
*/
static function makeVariablesScript( $data ) {
* Make a "<script>" tag containing global variables
*
* @deprecated since 1.19
- * @param $unused
+ * @param mixed $unused
* @return string HTML fragment
*/
public static function makeGlobalVariablesScript( $unused ) {
* Calling this method with an $out of anything but the same OutputPage
* inside ->getOutput() is deprecated. The $out arg is kept
* for compatibility purposes with skins.
- * @param $out OutputPage
+ * @param OutputPage $out
* @todo delete
*/
abstract function setupSkinUserCss( OutputPage $out );
/**
* TODO: document
- * @param $title Title
- * @return String
+ * @param Title $title
+ * @return string
*/
function getPageClasses( $title ) {
$numeric = 'ns-' . $title->getNamespace();
* This will be called by OutputPage::headElement when it is creating the
* "<body>" tag, skins can override it if they have a need to add in any
* body attributes or classes of their own.
- * @param $out OutputPage
- * @param $bodyAttrs Array
+ * @param OutputPage $out
+ * @param array $bodyAttrs
*/
function addToBodyAttributes( $out, &$bodyAttrs ) {
// does nothing by default
/**
* URL to the logo
- * @return String
+ * @return string
*/
function getLogo() {
global $wgLogo;
/**
* Render the array as a series of links.
- * @param array $tree categories tree returned by Title::getParentCategoryTree
- * @return String separated by >, terminate with "\n"
+ * @param array $tree Categories tree returned by Title::getParentCategoryTree
+ * @return string Separated by >, terminate with "\n"
*/
function drawCategoryBrowser( $tree ) {
$return = '';
* The output of this function gets processed in SkinTemplate::outputPage() for
* the SkinTemplate based skins, all other skins should directly echo it.
*
- * @return String, empty by default, if not changed by any hook function.
+ * @return string Empty by default, if not changed by any hook function.
*/
protected function afterContentHook() {
$data = '';
/**
* Generate debug data HTML for displaying at the bottom of the main content
* area.
- * @return String HTML containing debug data, if enabled (otherwise empty).
+ * @return string HTML containing debug data, if enabled (otherwise empty).
*/
protected function generateDebugHTML() {
return MWDebug::getHTMLDebugLog();
/**
* This gets called shortly before the "</body>" tag.
*
- * @return String HTML-wrapped JS code to be put before "</body>"
+ * @return string HTML-wrapped JS code to be put before "</body>"
*/
function bottomScripts() {
// TODO and the suckage continues. This function is really just a wrapper around
}
/**
- * @return String
+ * @return string
*/
function getUndeleteLink() {
$action = $this->getRequest()->getVal( 'action', 'view' );
/**
* Returns true if the IP should be shown in the header
- * @return Bool
+ * @return bool
*/
function showIPinHeader() {
global $wgShowIPinHeader;
}
/**
- * @return String
+ * @return string
*/
function getSearchLink() {
$searchPage = SpecialPage::getTitleFor( 'Search' );
}
/**
- * @param $type string
+ * @param string $type
* @return string
*/
function getCopyright( $type = 'detect' ) {
/**
* Get the timestamp of the latest revision, formatted in user language
*
- * @return String
+ * @return string
*/
protected function lastModified() {
$timestamp = $this->getOutput()->getRevisionTimestamp();
}
/**
- * @param $align string
+ * @param string $align
* @return string
*/
function logoText( $align = '' ) {
/**
* Renders a $wgFooterIcons icon according to the method's arguments
* @param array $icon The icon to build the html for, see $wgFooterIcons for the format of this array
- * @param bool|String $withImage Whether to use the icon's image or output a text-only footericon
- * @return String HTML
+ * @param bool|string $withImage Whether to use the icon's image or output a text-only footericon
+ * @return string HTML
*/
function makeFooterIcon( $icon, $withImage = 'withImage' ) {
if ( is_string( $icon ) ) {
/**
* Gets the link to the wiki's privacy policy page.
- * @return String HTML
+ * @return string HTML
*/
function privacyLink() {
return $this->footerLink( 'privacy', 'privacypage' );
/**
* Gets the link to the wiki's about page.
- * @return String HTML
+ * @return string HTML
*/
function aboutLink() {
return $this->footerLink( 'aboutsite', 'aboutpage' );
/**
* Gets the link to the wiki's general disclaimers page.
- * @return String HTML
+ * @return string HTML
*/
function disclaimerLink() {
return $this->footerLink( 'disclaimers', 'disclaimerpage' );
}
/**
- * @param $id User|int
+ * @param User|int $id
* @return bool
*/
function showEmailUser( $id ) {
* This method returns a url resolved using the configured skin style path
* and includes the style version inside of the url.
* @param string $name The name or path of a skin resource file
- * @return String The fully resolved style path url including styleversion
+ * @return string The fully resolved style path url including styleversion
*/
function getCommonStylePath( $name ) {
global $wgStylePath, $wgStyleVersion;
* This method returns a url resolved using the configured skin style path
* and includes the style version inside of the url.
* @param string $name The name or path of a skin resource file
- * @return String The fully resolved style path url including styleversion
+ * @return string The fully resolved style path url including styleversion
*/
function getSkinStylePath( $name ) {
global $wgStylePath, $wgStyleVersion;
/* these are used extensively in SkinTemplate, but also some other places */
/**
- * @param $urlaction string
- * @return String
+ * @param string $urlaction
+ * @return string
*/
static function makeMainPageUrl( $urlaction = '' ) {
$title = Title::newMainPage();
*
* @param string $name Name of the Special page
* @param string $urlaction Query to append
- * @param $proto Protocol to use or null for a local URL
- * @return String
+ * @param string|null $proto Protocol to use or null for a local URL
+ * @return string
*/
static function makeSpecialUrl( $name, $urlaction = '', $proto = null ) {
$title = SpecialPage::getSafeTitleFor( $name );
}
/**
- * @param $name string
- * @param $subpage string
- * @param $urlaction string
- * @return String
+ * @param string $name
+ * @param string $subpage
+ * @param string $urlaction
+ * @return string
*/
static function makeSpecialUrlSubpage( $name, $subpage, $urlaction = '' ) {
$title = SpecialPage::getSafeTitleFor( $name, $subpage );
}
/**
- * @param $name string
- * @param $urlaction string
- * @return String
+ * @param string $name
+ * @param string $urlaction
+ * @return string
*/
static function makeI18nUrl( $name, $urlaction = '' ) {
$title = Title::newFromText( wfMessage( $name )->inContentLanguage()->text() );
}
/**
- * @param $name string
- * @param $urlaction string
- * @return String
+ * @param string $name
+ * @param string $urlaction
+ * @return string
*/
static function makeUrl( $name, $urlaction = '' ) {
$title = Title::newFromText( $name );
/**
* If url string starts with http, consider as external URL, else
* internal
- * @param $name String
- * @return String URL
+ * @param string $name
+ * @return string URL
*/
static function makeInternalOrExternalUrl( $name ) {
if ( preg_match( '/^(?i:' . wfUrlProtocols() . ')/', $name ) ) {
/**
* this can be passed the NS number as defined in Language.php
- * @param $name
- * @param $urlaction string
- * @param $namespace int
- * @return String
+ * @param string $name
+ * @param string $urlaction
+ * @param int $namespace
+ * @return string
*/
static function makeNSUrl( $name, $urlaction = '', $namespace = NS_MAIN ) {
$title = Title::makeTitleSafe( $namespace, $name );
/**
* these return an array with the 'href' and boolean 'exists'
- * @param $name
- * @param $urlaction string
+ * @param string $name
+ * @param string $urlaction
* @return array
*/
static function makeUrlDetails( $name, $urlaction = '' ) {
/**
* Make URL details where the article exists (or at least it's convenient to think so)
* @param string $name Article name
- * @param $urlaction String
- * @return Array
+ * @param string $urlaction
+ * @return array
*/
static function makeKnownUrlDetails( $name, $urlaction = '' ) {
$title = Title::newFromText( $name );
/**
* make sure we have some title to operate on
*
- * @param $title Title
- * @param $name string
+ * @param Title $title
+ * @param string $name
*/
static function checkTitle( &$title, $name ) {
if ( !is_object( $title ) ) {
*
* This is just a wrapper around addToSidebarPlain() for backwards compatibility
*
- * @param $bar array
- * @param $message String
+ * @param array $bar
+ * @param string $message
*/
function addToSidebar( &$bar, $message ) {
$this->addToSidebarPlain( $bar, wfMessage( $message )->inContentLanguage()->plain() );
/**
* Add content from plain text
* @since 1.17
- * @param $bar array
- * @param $text string
- * @return Array
+ * @param array $bar
+ * @param string $text
+ * @return array
*/
function addToSidebarPlain( &$bar, $text ) {
$lines = explode( "\n", $text );
/**
* Gets new talk page messages for the current user and returns an
* appropriate alert message (or an empty string if there are no messages)
- * @return String
+ * @return string
*/
function getNewtalks() {
/**
* Get a cached notice
*
- * @param string $name message name, or 'default' for $wgSiteNotice
- * @return String: HTML fragment
+ * @param string $name Message name, or 'default' for $wgSiteNotice
+ * @return string HTML fragment
*/
private function getCachedNotice( $name ) {
global $wgRenderHashAppend, $parserMemc, $wgContLang;
/**
* Get a notice based on page's namespace
*
- * @return String: HTML fragment
+ * @return string HTML fragment
*/
function getNamespaceNotice() {
wfProfileIn( __METHOD__ );
/**
* Get the site notice
*
- * @return String: HTML fragment
+ * @return string HTML fragment
*/
function getSiteNotice() {
wfProfileIn( __METHOD__ );
* Create a section edit link. This supersedes editSectionLink() and
* editSectionLinkForOther().
*
- * @param $nt Title The title being linked to (may not be the same as
+ * @param Title $nt The title being linked to (may not be the same as
* the current page, if the section is included from a template)
* @param string $section The designation of the section being pointed to,
* to be included in the link, like "§ion=$section"
* @param string $tooltip The tooltip to use for the link: will be escaped
* and wrapped in the 'editsectionhint' message
- * @param $lang string Language code
+ * @param string $lang Language code
* @return string HTML to use for edit link
*/
public function doEditSectionLink( Title $nt, $section, $tooltip = null, $lang = false ) {
/**
* Add specific styles for this skin
*
- * @param $out OutputPage
+ * @param OutputPage $out
*/
function setupSkinUserCss( OutputPage $out ) {
$out->addModuleStyles( array(
* and eventually it spits out some HTML. Should have interface
* roughly equivalent to PHPTAL 0.7.
*
- * @param $classname String
- * @param string $repository subdirectory where we keep template files
- * @param $cache_dir string
+ * @param string $classname
+ * @param string $repository Subdirectory where we keep template files
+ * @param string $cache_dir
* @return QuickTemplate
* @private
*/
/**
* initialize various variables and generate the template
*
- * @param $out OutputPage
+ * @param OutputPage $out
*/
function outputPage( OutputPage $out = null ) {
wfProfileIn( __METHOD__ );
* initialize various variables and generate the template
*
* @since 1.23
- * @return QuickTemplate the template to be executed by outputPage
+ * @return QuickTemplate The template to be executed by outputPage
*/
protected function prepareQuickTemplate() {
global $wgContLang, $wgScript, $wgStylePath,
* an error object of the appropriate type.
* For the base class, assume strings all around.
*
- * @param $str Mixed
+ * @param string $str
* @private
*/
function printOrError( $str ) {
/**
* Builds an array with tab definition
*
- * @param Title $title page where the tab links to
- * @param string|array $message message key or an array of message keys (will fall back)
- * @param boolean $selected display the tab as selected
- * @param string $query query string attached to tab URL
- * @param boolean $checkEdit check if $title exists and mark with .new if one doesn't
+ * @param Title $title page Where the tab links to
+ * @param string|array $message Message key or an array of message keys (will fall back)
+ * @param bool $selected Display the tab as selected
+ * @param string $query Query string attached to tab URL
+ * @param bool $checkEdit Check if $title exists and mark with .new if one doesn't
*
* @return array
*/
/**
* Sets the value $value to $name
- * @param $name
- * @param $value
+ * @param string $name
+ * @param mixed $value
*/
public function set( $name, $value ) {
$this->data[$name] = $value;
}
/**
- * @param $name
- * @param $value
+ * @param string $name
+ * @param mixed $value
*/
public function setRef( $name, &$value ) {
$this->data[$name] =& $value;
}
/**
- * @param $t
+ * @param MediaWiki_I18N $t
*/
public function setTranslator( &$t ) {
$this->translator = &$t;
/**
* @private
+ * @param string $str
+ * @return string
*/
function text( $str ) {
echo htmlspecialchars( $this->data[$str] );
/**
* @private
+ * @param string $str
+ * @return string
*/
function html( $str ) {
echo $this->data[$str];
/**
* @private
+ * @param string $str
+ * @return string
*/
function msg( $str ) {
echo htmlspecialchars( $this->translator->translate( $str ) );
/**
* @private
+ * @param string $str
+ * @return string
*/
function msgHtml( $str ) {
echo $this->translator->translate( $str );
/**
* An ugly, ugly hack.
* @private
+ * @param string $str
+ * @return string
*/
function msgWiki( $str ) {
global $wgOut;
/**
* @private
+ * @param string $str
* @return bool
*/
function haveData( $str ) {
/**
* @private
*
+ * @param string $str
* @return bool
*/
function haveMsg( $str ) {
/**
* Get the Skin object related to this object
*
- * @return Skin object
+ * @return Skin
*/
public function getSkin() {
return $this->data['skin'];
* Fetch the output of a QuickTemplate and return it
*
* @since 1.23
- * @return String
+ * @return string
*/
public function getHTML() {
ob_start();
/**
* Get a Message object with its context set
*
- * @param string $name message name
+ * @param string $name Message name
* @return Message
*/
public function getMsg( $name ) {
/**
* Generates a list item for a navigation, portlet, portal, sidebar... list
*
- * @param $key string, usually a key from the list you are generating this link from.
- * @param $item array, of list item data containing some of a specific set of keys.
+ * @param string $key Usually a key from the list you are generating this link from.
+ * @param array $item Array of list item data containing some of a specific set of keys.
* The "id", "class" and "itemtitle" keys will be used as attributes for the list item,
* if "active" contains a value of true a "active" class will also be appended to class.
*
- * @param $options array
+ * @param array $options
*
* If you want something other than a "<li>" you can pass a tag name such as
* "tag" => "span" in the $options array to change the tag used.
* in the list of footer icons. This is mostly useful for skins which only
* display the text from footericons instead of the images and don't want a
* duplicate copyright statement because footerlinks already rendered one.
- * @return
+ * @return string
*/
function getFooterIcons( $option = null ) {
// Generate additional footer icons
var $bodyRemaining;
/**
- * @param $server string
- * @param $options array
+ * @param string $server
+ * @param array $options
*/
public function __construct( $server, $options = array() ) {
$parts = explode( ':', $server, 2 );
/**
* Get the host's IP address.
* Does not support IPv6 at present due to the lack of a convenient interface in PHP.
+ * @throws MWException
+ * @return string
*/
protected function getIP() {
if ( $this->ip === null ) {
/**
* Queue a purge operation
*
- * @param $url string
+ * @param string $url
*/
public function queuePurge( $url ) {
global $wgSquidPurgeUseHostHeader;
}
/**
- * @param $line
+ * @param string $line
* @return
*/
protected function processStatusLine( $line ) {
}
/**
- * @param $line string
+ * @param string $line
*/
protected function processHeaderLine( $line ) {
if ( preg_match( '/^Content-Length: (\d+)$/i', $line, $m ) ) {
}
/**
- * @param $msg string
+ * @param string $msg
*/
protected function log( $msg ) {
wfDebugLog( 'squid', __CLASS__ . " ($this->host): $msg" );
var $timeout = 5;
/**
- * @param $options array
+ * @param array $options
*/
function __construct( $options = array() ) {
if ( isset( $options['timeout'] ) ) {
}
/**
- * @param $client SquidPurgeClient
+ * @param SquidPurgeClient $client
* @return void
*/
public function addClient( $client ) {
* @ingroup StatCounter
*/
class StatCounter {
- /** @var Array */
+ /** @var array */
protected $deltas = array(); // (key => count)
protected function __construct() {}
* Increment a key by delta $count
*
* @param string $key
- * @param integer $count
+ * @param int $count
* @return void
*/
public function incr( $key, $count = 1 ) {
/**
* Factory function for good results
*
- * @param $value Mixed
+ * @param mixed $value
* @return Status
*/
static function newGood( $value = null ) {
* Returns whether the operation completed and didn't have any error or
* warnings
*
- * @return Boolean
+ * @return bool
*/
public function isGood() {
return $this->ok && !$this->errors;
/**
* Returns whether the operation completed
*
- * @return Boolean
+ * @return bool
*/
public function isOK() {
return $this->ok;
/**
* Add a new warning
*
- * @param string|Message $message message name or object
+ * @param string|Message $message Message name or object
*/
public function warning( $message /*, parameters... */ ) {
$params = array_slice( func_get_args(), 1 );
* Add an error, do not set fatal flag
* This can be used for non-fatal errors
*
- * @param string|Message $message message name or object
+ * @param string|Message $message Message name or object
*/
public function error( $message /*, parameters... */ ) {
$params = array_slice( func_get_args(), 1 );
* Add an error and set OK to false, indicating that the operation
* as a whole was fatal
*
- * @param string|Message $message message name or object
+ * @param string|Message $message Message name or object
*/
public function fatal( $message /*, parameters... */ ) {
$params = array_slice( func_get_args(), 1 );
}
/**
- * @param $params array
+ * @param array $params
* @return array
*/
protected function cleanParams( $params ) {
/**
* Get the error list as a wikitext formatted list
*
- * @param string $shortContext a short enclosing context message name, to
+ * @param string $shortContext A short enclosing context message name, to
* be used when there is a single error
- * @param string $longContext a long enclosing context message name, for a list
- * @return String
+ * @param string $longContext A long enclosing context message name, for a list
+ * @return string
*/
public function getWikiText( $shortContext = false, $longContext = false ) {
if ( count( $this->errors ) == 0 ) {
/**
* Return the message for a single error.
- * @param $error Mixed With an array & two values keyed by
+ * @param mixed $error With an array & two values keyed by
* 'message' and 'params', use those keys-value pairs.
* Otherwise, if its an array, just use the first value as the
* message and the remaining items as the params.
*
- * @return String
+ * @return string
*/
protected function getErrorMessage( $error ) {
if ( is_array( $error ) ) {
/**
* Get the error message as HTML. This is done by parsing the wikitext error
* message.
- * @param string $shortContext a short enclosing context message name, to
+ * @param string $shortContext A short enclosing context message name, to
* be used when there is a single error
- * @param string $longContext a long enclosing context message name, for a list
- * @return String
+ * @param string $longContext A long enclosing context message name, for a list
+ * @return string
*/
public function getHTML( $shortContext = false, $longContext = false ) {
$text = $this->getWikiText( $shortContext, $longContext );
/**
* Return an array with the wikitext for each item in the array.
- * @param $errors Array
- * @return Array
+ * @param array $errors
+ * @return array
*/
protected function getErrorMessageArray( $errors ) {
return array_map( array( $this, 'getErrorMessage' ), $errors );
/**
* Returns a list of status messages of the given type
- * @param $type String
- * @return Array
+ * @param string $type
+ * @return array
*/
protected function getStatusArray( $type ) {
$result = array();
* Returns a list of status messages of the given type, with message and
* params left untouched, like a sane version of getStatusArray
*
- * @param $type String
+ * @param string $type
*
- * @return Array
+ * @return array
*/
public function getErrorsByType( $type ) {
$result = array();
/**
* Returns true if the specified message is present as a warning or error
*
- * Note, due to the lack of tools for comparing Message objects, this
- * function will not work when using a Message object as a parameter.
+ * @param string|Message $message Message key or object to search for
*
- * @param string $msg message name
- * @return Boolean
+ * @return bool
*/
- public function hasMessage( $msg ) {
+ public function hasMessage( $message ) {
+ if ( $message instanceof Message ) {
+ $message = $message->getKey();
+ }
foreach ( $this->errors as $error ) {
- if ( $error['message'] === $msg ) {
+ if ( $error['message'] instanceof Message
+ && $error['message']->getKey() === $message
+ ) {
+ return true;
+ } elseif ( $error['message'] === $message ) {
return true;
}
}
/**
* Constructor.
*
- * @param string $global name of the global variable.
- * @param string $class name of the class of the real object.
- * @param array $params parameters to pass to constructor of the real
- * object.
+ * @param string $global Name of the global variable.
+ * @param string $class Name of the class of the real object.
+ * @param array $params Parameters to pass to constructor of the real object.
*/
function __construct( $global = null, $class = null, $params = array() ) {
$this->mGlobal = $global;
* Returns a bool value whenever $obj is a stub object. Can be used to break
* a infinite loop when unstubbing an object.
*
- * @param $obj Object to check.
- * @return Boolean: true if $obj is not an instance of StubObject class.
+ * @param object $obj Object to check.
+ * @return bool True if $obj is not an instance of StubObject class.
*/
static function isRealObject( $obj ) {
return is_object( $obj ) && !$obj instanceof StubObject;
* infinite loop when unstubbing an object or to avoid reference parameter
* breakage.
*
- * @param $obj Object to check.
+ * @param object $obj Object to check.
* @return void
*/
static function unstub( $obj ) {
* This function will also call the function with the same name in the real
* object.
*
- * @param string $name name of the function called
- * @param array $args arguments
+ * @param string $name Name of the function called
+ * @param array $args Arguments
* @return mixed
*/
function _call( $name, $args ) {
* Function called by PHP if no function with that name exists in this
* object.
*
- * @param string $name name of the function called
- * @param array $args arguments
+ * @param string $name Name of the function called
+ * @param array $args Arguments
* @return mixed
*/
function __call( $name, $args ) {
* This is public, for the convenience of external callers wishing to access
* properties, e.g. eval.php
*
- * @param string $name name of the method called in this object.
- * @param $level Integer: level to go in the stack trace to get the function
- * who called this function.
+ * @param string $name Name of the method called in this object.
+ * @param int $level Level to go in the stack trace to get the function
+ * who called this function.
* @throws MWException
*/
function _unstub( $name = '_unstub', $level = 2 ) {
/**
* Create a new Title from a prefixed DB key
*
- * @param string $key the database key, which has underscores
+ * @param string $key The database key, which has underscores
* instead of spaces, possibly including namespace and
* interwiki prefixes
- * @return Title, or NULL on an error
+ * @return Title|null Title, or null on an error
*/
public static function newFromDBkey( $key ) {
$t = new Title();
/**
* Create a new Title from a TitleValue
*
- * @param TitleValue $titleValue, assumed to be safe.
+ * @param TitleValue $titleValue Assumed to be safe.
*
* @return Title
*/
* Create a new Title from text, such as what one would find in a link. De-
* codes any HTML entities in the text.
*
- * @param string $text the link text; spaces, prefixes, and an
+ * @param string $text The link text; spaces, prefixes, and an
* initial ':' indicating the main namespace are accepted.
- * @param int $defaultNamespace the namespace to use if none is specified
+ * @param int $defaultNamespace The namespace to use if none is specified
* by a prefix. If you want to force a specific namespace even if
* $text might begin with a namespace prefix, use makeTitle() or
* makeTitleSafe().
* @throws MWException
- * @return Title|null - Title or null on an error.
+ * @return Title|null Title or null on an error.
*/
public static function newFromText( $text, $defaultNamespace = NS_MAIN ) {
if ( is_object( $text ) ) {
* Create a new Title from URL-encoded text. Ensures that
* the given title's length does not exceed the maximum.
*
- * @param string $url the title, as might be taken from a URL
- * @return Title the new object, or NULL on an error
+ * @param string $url The title, as might be taken from a URL
+ * @return Title|null The new object, or null on an error
*/
public static function newFromURL( $url ) {
$t = new Title();
/**
* Create a new Title from an article ID
*
- * @param int $id the page_id corresponding to the Title to create
- * @param int $flags use Title::GAID_FOR_UPDATE to use master
- * @return Title|null the new object, or NULL on an error
+ * @param int $id The page_id corresponding to the Title to create
+ * @param int $flags Use Title::GAID_FOR_UPDATE to use master
+ * @return Title|null The new object, or null on an error
*/
public static function newFromID( $id, $flags = 0 ) {
$db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
/**
* Make an array of titles from an array of IDs
*
- * @param array $ids of Int Array of IDs
- * @return Array of Titles
+ * @param int[] $ids Array of IDs
+ * @return Title[] Array of Titles
*/
public static function newFromIDs( $ids ) {
if ( !count( $ids ) ) {
* Make a Title object from a DB row
*
* @param stdClass $row Object database row (needs at least page_title,page_namespace)
- * @return Title corresponding Title
+ * @return Title Corresponding Title
*/
public static function newFromRow( $row ) {
$t = self::makeTitle( $row->page_namespace, $row->page_title );
* Load Title object fields from a DB row.
* If false is given, the title will be treated as non-existing.
*
- * @param $row stdClass|bool database row
+ * @param stdClass|bool $row Database row
*/
public function loadFromRow( $row ) {
if ( $row ) { // page found
* For convenience, spaces are converted to underscores so that
* eg user_text fields can be used directly.
*
- * @param int $ns the namespace of the article
- * @param string $title the unprefixed database key form
- * @param string $fragment the link fragment (after the "#")
- * @param string $interwiki the interwiki prefix
- * @return Title the new object
+ * @param int $ns The namespace of the article
+ * @param string $title The unprefixed database key form
+ * @param string $fragment The link fragment (after the "#")
+ * @param string $interwiki The interwiki prefix
+ * @return Title The new object
*/
public static function &makeTitle( $ns, $title, $fragment = '', $interwiki = '' ) {
$t = new Title();
* The parameters will be checked for validity, which is a bit slower
* than makeTitle() but safer for user-provided data.
*
- * @param int $ns the namespace of the article
- * @param string $title database key form
- * @param string $fragment the link fragment (after the "#")
- * @param string $interwiki interwiki prefix
- * @return Title the new object, or NULL on an error
+ * @param int $ns The namespace of the article
+ * @param string $title Database key form
+ * @param string $fragment The link fragment (after the "#")
+ * @param string $interwiki Interwiki prefix
+ * @return Title The new object, or null on an error
*/
public static function makeTitleSafe( $ns, $title, $fragment = '', $interwiki = '' ) {
if ( !MWNamespace::exists( $ns ) ) {
/**
* Create a new Title for the Main Page
*
- * @return Title the new object
+ * @return Title The new object
*/
public static function newMainPage() {
$title = Title::newFromText( wfMessage( 'mainpage' )->inContentLanguage()->text() );
* the redirect table and other checks that don't need full recursion
*
* @param string $text Text with possible redirect
- * @return Title: The corresponding Title
+ * @return Title The corresponding Title
* @deprecated since 1.21, use Content::getRedirectTarget instead.
*/
public static function newFromRedirect( $text ) {
* have been resolved (up to $wgMaxRedirects times)
*
* @param string $text Text with possible redirect
- * @return Array of Titles, with the destination last
+ * @return Title[] Array of Titles, with the destination last
* @deprecated since 1.21, use Content::getRedirectChain instead.
*/
public static function newFromRedirectArray( $text ) {
/**
* Get the prefixed DB key associated with an ID
*
- * @param int $id the page_id of the article
- * @return Title an object representing the article, or NULL if no such article was found
+ * @param int $id The page_id of the article
+ * @return Title|null An object representing the article, or null if no such article was found
*/
public static function nameOf( $id ) {
$dbr = wfGetDB( DB_SLAVE );
/**
* Get a regex character class describing the legal characters in a link
*
- * @return String the list of characters, not delimited
+ * @return string The list of characters, not delimited
*/
public static function legalChars() {
global $wgLegalTitleChars;
*
* @todo: move this into MediaWikiTitleCodec
*
- * @return String regex string
+ * @return string Regex string
*/
static function getTitleInvalidRegex() {
static $rxTc = false;
/**
* Make a prefixed DB key from a DB key and a namespace index
*
- * @param int $ns numerical representation of the namespace
- * @param string $title the DB key form the title
+ * @param int $ns Numerical representation of the namespace
+ * @param string $title The DB key form the title
* @param string $fragment The link fragment (after the "#")
* @param string $interwiki The interwiki prefix
- * @return String the prefixed form of the title
+ * @return string The prefixed form of the title
*/
public static function makeName( $ns, $title, $fragment = '', $interwiki = '' ) {
global $wgContLang;
/**
* Escape a text fragment, say from a link, for a URL
*
- * @param string $fragment containing a URL or link fragment (after the "#")
- * @return String: escaped string
+ * @param string $fragment Containing a URL or link fragment (after the "#")
+ * @return string Escaped string
*/
static function escapeFragmentForURL( $fragment ) {
# Note that we don't urlencode the fragment. urlencoded Unicode
/**
* Callback for usort() to do title sorts by (namespace, title)
*
- * @param $a Title
- * @param $b Title
+ * @param Title $a
+ * @param Title $b
*
- * @return Integer: result of string comparison, or namespace comparison
+ * @return int Result of string comparison, or namespace comparison
*/
public static function compare( $a, $b ) {
if ( $a->getNamespace() == $b->getNamespace() ) {
* Determine whether the object refers to a page within
* this project.
*
- * @return Bool TRUE if this is an in-project interwiki link or a wikilink, FALSE otherwise
+ * @return bool True if this is an in-project interwiki link or a wikilink, false otherwise
*/
public function isLocal() {
if ( $this->isExternal() ) {
/**
* Is this Title interwiki?
*
- * @return Bool
+ * @return bool
*/
public function isExternal() {
return $this->mInterwiki !== '';
*
* Use Title::isExternal to check if a interwiki is set
*
- * @return String Interwiki prefix
+ * @return string Interwiki prefix
*/
public function getInterwiki() {
return $this->mInterwiki;
* Determine whether the object refers to a page within
* this project and is transcludable.
*
- * @return Bool TRUE if this is transcludable
+ * @return bool True if this is transcludable
*/
public function isTrans() {
if ( !$this->isExternal() ) {
/**
* Returns the DB name of the distant wiki which owns the object.
*
- * @return String the DB name
+ * @return string The DB name
*/
public function getTransWikiID() {
if ( !$this->isExternal() ) {
/**
* Get the text form (spaces not underscores) of the main part
*
- * @return String Main part of the title
+ * @return string Main part of the title
*/
public function getText() {
return $this->mTextform;
/**
* Get the URL-encoded form of the main part
*
- * @return String Main part of the title, URL-encoded
+ * @return string Main part of the title, URL-encoded
*/
public function getPartialURL() {
return $this->mUrlform;
/**
* Get the main part with underscores
*
- * @return String: Main part of the title, with underscores
+ * @return string Main part of the title, with underscores
*/
public function getDBkey() {
return $this->mDbkeyform;
/**
* Get the DB key with the initial letter case as specified by the user
*
- * @return String DB key
+ * @return string DB key
*/
function getUserCaseDBKey() {
if ( !is_null( $this->mUserCaseDBKey ) ) {
/**
* Get the namespace index, i.e. one of the NS_xxxx constants.
*
- * @return Integer: Namespace index
+ * @return int Namespace index
*/
public function getNamespace() {
return $this->mNamespace;
* Get the page's content model id, see the CONTENT_MODEL_XXX constants.
*
* @throws MWException
- * @return String: Content model id
+ * @return string Content model id
*/
public function getContentModel() {
if ( !$this->mContentModel ) {
* Convenience method for checking a title's content model name
*
* @param string $id The content model ID (use the CONTENT_MODEL_XXX constants).
- * @return Boolean true if $this->getContentModel() == $id
+ * @return bool True if $this->getContentModel() == $id
*/
public function hasContentModel( $id ) {
return $this->getContentModel() == $id;
/**
* Get the namespace text
*
- * @return String: Namespace text
+ * @return string Namespace text
*/
public function getNsText() {
if ( $this->isExternal() ) {
/**
* Get the namespace text of the subject (rather than talk) page
*
- * @return String Namespace text
+ * @return string Namespace text
*/
public function getSubjectNsText() {
global $wgContLang;
/**
* Get the namespace text of the talk page
*
- * @return String Namespace text
+ * @return string Namespace text
*/
public function getTalkNsText() {
global $wgContLang;
/**
* Could this title have a corresponding talk page?
*
- * @return Bool TRUE or FALSE
+ * @return bool
*/
public function canTalk() {
return MWNamespace::canTalk( $this->mNamespace );
/**
* Is this in a namespace that allows actual pages?
*
- * @return Bool
+ * @return bool
* @internal note -- uses hardcoded namespace index instead of constants
*/
public function canExist() {
/**
* Can this title be added to a user's watchlist?
*
- * @return Bool TRUE or FALSE
+ * @return bool
*/
public function isWatchable() {
return !$this->isExternal() && MWNamespace::isWatchable( $this->getNamespace() );
/**
* Returns true if this is a special page.
*
- * @return boolean
+ * @return bool
*/
public function isSpecialPage() {
return $this->getNamespace() == NS_SPECIAL;
* Returns true if this title resolves to the named special page
*
* @param string $name The special page name
- * @return boolean
+ * @return bool
*/
public function isSpecial( $name ) {
if ( $this->isSpecialPage() ) {
* This is MUCH simpler than individually testing for equivalence
* against both NS_USER and NS_USER_TALK, and is also forward compatible.
* @since 1.19
- * @param $ns int
+ * @param int $ns
* @return bool
*/
public function hasSubjectNamespace( $ns ) {
* In other words, is this a content page, for the purposes of calculating
* statistics, etc?
*
- * @return Boolean
+ * @return bool
*/
public function isContentPage() {
return MWNamespace::isContent( $this->getNamespace() );
* Would anybody with sufficient privileges be able to move this page?
* Some pages just aren't movable.
*
- * @return Bool TRUE or FALSE
+ * @return bool
*/
public function isMovable() {
if ( !MWNamespace::isMovable( $this->getNamespace() ) || $this->isExternal() ) {
* ends up reporting something differently than $title->isMainPage();
*
* @since 1.18
- * @return Bool
+ * @return bool
*/
public function isMainPage() {
return $this->equals( Title::newMainPage() );
/**
* Is this a subpage?
*
- * @return Bool
+ * @return bool
*/
public function isSubpage() {
return MWNamespace::hasSubpages( $this->mNamespace )
/**
* Is this a conversion table for the LanguageConverter?
*
- * @return Bool
+ * @return bool
*/
public function isConversionTable() {
// @todo ConversionTable should become a separate content model.
/**
* Does that page contain wikitext, or it is JS, CSS or whatever?
*
- * @return Bool
+ * @return bool
*/
public function isWikitextPage() {
return $this->hasContentModel( CONTENT_MODEL_WIKITEXT );
*
* Note that this method should not return true for pages that contain and show "inactive" CSS or JS.
*
- * @return Bool
+ * @return bool
*/
public function isCssOrJsPage() {
$isCssOrJsPage = NS_MEDIAWIKI == $this->mNamespace
/**
* Is this a .css or .js subpage of a user page?
- * @return Bool
+ * @return bool
*/
public function isCssJsSubpage() {
return ( NS_USER == $this->mNamespace && $this->isSubpage()
/**
* Trim down a .css or .js subpage title to get the corresponding skin name
*
- * @return string containing skin name from .css or .js subpage title
+ * @return string Containing skin name from .css or .js subpage title
*/
public function getSkinFromCssJsSubpage() {
$subpage = explode( '/', $this->mTextform );
/**
* Is this a .css subpage of a user page?
*
- * @return Bool
+ * @return bool
*/
public function isCssSubpage() {
return ( NS_USER == $this->mNamespace && $this->isSubpage()
/**
* Is this a .js subpage of a user page?
*
- * @return Bool
+ * @return bool
*/
public function isJsSubpage() {
return ( NS_USER == $this->mNamespace && $this->isSubpage()
/**
* Is this a talk page of some sort?
*
- * @return Bool
+ * @return bool
*/
public function isTalkPage() {
return MWNamespace::isTalk( $this->getNamespace() );
/**
* Get a Title object associated with the talk page of this article
*
- * @return Title the object for the talk page
+ * @return Title The object for the talk page
*/
public function getTalkPage() {
return Title::makeTitle( MWNamespace::getTalk( $this->getNamespace() ), $this->getDBkey() );
* Get a title object associated with the subject page of this
* talk page
*
- * @return Title the object for the subject page
+ * @return Title The object for the subject page
*/
public function getSubjectPage() {
// Is this the same title?
/**
* Get the default namespace index, for when there is no namespace
*
- * @return Int Default namespace index
+ * @return int Default namespace index
*/
public function getDefaultNamespace() {
return $this->mDefaultNamespace;
*
* Use Title::hasFragment to check for a fragment
*
- * @return String Title fragment
+ * @return string Title fragment
*/
public function getFragment() {
return $this->mFragment;
/**
* Get the fragment in URL form, including the "#" character if there is one
- * @return String Fragment in URL form
+ * @return string Fragment in URL form
*/
public function getFragmentForURL() {
if ( !$this->hasFragment() ) {
* Deprecated for public use, use Title::makeTitle() with fragment parameter.
* Still in active use privately.
*
- * @param string $fragment text
+ * @param string $fragment Text
*/
public function setFragment( $fragment ) {
$this->mFragment = str_replace( '_', ' ', substr( $fragment, 1 ) );
* Prefix some arbitrary text with the namespace or interwiki prefix
* of this object
*
- * @param string $name the text
- * @return String the prefixed text
+ * @param string $name The text
+ * @return string The prefixed text
* @private
*/
private function prefix( $name ) {
/**
* Get the prefixed database key form
*
- * @return String the prefixed title, with underscores and
+ * @return string The prefixed title, with underscores and
* any interwiki and namespace prefixes
*/
public function getPrefixedDBkey() {
* Get the prefixed title with spaces.
* This is the form usually used for display
*
- * @return String the prefixed title, with spaces
+ * @return string The prefixed title, with spaces
*/
public function getPrefixedText() {
if ( $this->mPrefixedText === null ) {
/**
* Return a string representation of this title
*
- * @return String representation of this title
+ * @return string Representation of this title
*/
public function __toString() {
return $this->getPrefixedText();
* Get the prefixed title with spaces, plus any fragment
* (part beginning with '#')
*
- * @return String the prefixed title, with spaces and the fragment, including '#'
+ * @return string The prefixed title, with spaces and the fragment, including '#'
*/
public function getFullText() {
$text = $this->getPrefixedText();
* # returns: 'Foo'
* @endcode
*
- * @return String Root name
+ * @return string Root name
* @since 1.20
*/
public function getRootText() {
* # returns: 'Foo/Bar'
* @endcode
*
- * @return String Base name
+ * @return string Base name
*/
public function getBaseText() {
if ( !MWNamespace::hasSubpages( $this->mNamespace ) ) {
* # returns: "Baz"
* @endcode
*
- * @return String Subpage name
+ * @return string Subpage name
*/
public function getSubpageText() {
if ( !MWNamespace::hasSubpages( $this->mNamespace ) ) {
* Get the HTML-escaped displayable text form.
* Used for the title field in <a> tags.
*
- * @return String the text, including any prefixes
+ * @return string The text, including any prefixes
* @deprecated since 1.19
*/
public function getEscapedText() {
/**
* Get a URL-encoded form of the subpage text
*
- * @return String URL-encoded subpage name
+ * @return string URL-encoded subpage name
*/
public function getSubpageUrlForm() {
$text = $this->getSubpageText();
/**
* Get a URL-encoded title (not an actual URL) including interwiki
*
- * @return String the URL-encoded form
+ * @return string The URL-encoded form
*/
public function getPrefixedURL() {
$s = $this->prefix( $this->mDbkeyform );
* and the wfArrayToCgi moved to getLocalURL();
*
* @since 1.19 (r105919)
- * @param $query
- * @param $query2 bool
- * @return String
+ * @param array|string $query
+ * @param bool $query2
+ * @return string
*/
private static function fixUrlQueryArgs( $query, $query2 = false ) {
if ( $query2 !== false ) {
*
* @see self::getLocalURL for the arguments.
* @see wfExpandUrl
- * @param $query
- * @param $query2 bool
- * @param $proto Protocol type to use in URL
- * @return String the URL
+ * @param array|string $query
+ * @param bool $query2
+ * @param string $proto Protocol type to use in URL
+ * @return string The URL
*/
public function getFullURL( $query = '', $query2 = false, $proto = PROTO_RELATIVE ) {
$query = self::fixUrlQueryArgs( $query, $query2 );
* 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).
* Some query patterns will trigger various shorturl path replacements.
- * @param $query2 Mixed: An optional secondary query array. This one MUST
+ * @param array $query2 An optional secondary query array. This one MUST
* be an array. If a string is passed it will be interpreted as a deprecated
* variant argument and urlencoded into a variant= argument.
* This second query argument will be added to the $query
* The second parameter is deprecated since 1.19. Pass it as a key,value
* pair in the first parameter array instead.
*
- * @return String of the URL.
+ * @return string String of the URL.
*/
public function getLocalURL( $query = '', $query2 = false ) {
global $wgArticlePath, $wgScript, $wgServer, $wgRequest;
* The result obviously should not be URL-escaped, but does need to be
* HTML-escaped if it's being output in HTML.
*
- * @param $query
- * @param $query2 bool
- * @param $proto Protocol to use; setting this will cause a full URL to be used
+ * @param array $query
+ * @param bool $query2
+ * @param string $proto Protocol to use; setting this will cause a full URL to be used
* @see self::getLocalURL for the arguments.
- * @return String the URL
+ * @return string The URL
*/
public function getLinkURL( $query = '', $query2 = false, $proto = PROTO_RELATIVE ) {
wfProfileIn( __METHOD__ );
* using in a link, without a server name or fragment
*
* @see self::getLocalURL for the arguments.
- * @param $query string
- * @param $query2 bool|string
- * @return String the URL
+ * @param string $query
+ * @param bool|string $query2
+ * @return string The URL
* @deprecated since 1.19
*/
public function escapeLocalURL( $query = '', $query2 = false ) {
* using in a link, including the server name and fragment
*
* @see self::getLocalURL for the arguments.
- * @return String the URL
+ * @return string The URL
* @deprecated since 1.19
*/
public function escapeFullURL( $query = '', $query2 = false ) {
* protocol-relative, the URL will be expanded to http://
*
* @see self::getLocalURL for the arguments.
- * @return String the URL
+ * @return string The URL
*/
public function getInternalURL( $query = '', $query2 = false ) {
global $wgInternalServer, $wgServer;
/**
* Get the edit URL for this Title
*
- * @return String the URL, or a null string if this is an
- * interwiki link
+ * @return string The URL, or a null string if this is an interwiki link
*/
public function getEditURL() {
if ( $this->isExternal() ) {
* Is $wgUser watching this page?
*
* @deprecated since 1.20; use User::isWatched() instead.
- * @return Bool
+ * @return bool
*/
public function userIsWatching() {
global $wgUser;
* Can $wgUser read this page?
*
* @deprecated since 1.19; use userCan(), quickUserCan() or getUserPermissionsErrors() instead
- * @return Bool
+ * @return bool
*/
public function userCanRead() {
wfDeprecated( __METHOD__, '1.19' );
*
* May provide false positives, but should never provide a false negative.
*
- * @param string $action action that permission needs to be checked for
- * @param $user User to check (since 1.19); $wgUser will be used if not
- * provided.
- * @return Bool
+ * @param string $action Action that permission needs to be checked for
+ * @param User $user User to check (since 1.19); $wgUser will be used if not provided.
+ * @return bool
*/
public function quickUserCan( $action, $user = null ) {
return $this->userCan( $action, $user, false );
/**
* Can $user perform $action on this page?
*
- * @param string $action action that permission needs to be checked for
- * @param $user User to check (since 1.19); $wgUser will be used if not
+ * @param string $action Action that permission needs to be checked for
+ * @param User $user User to check (since 1.19); $wgUser will be used if not
* provided.
* @param bool $doExpensiveQueries Set this to false to avoid doing
* unnecessary queries.
- * @return Bool
+ * @return bool
*/
public function userCan( $action, $user = null, $doExpensiveQueries = true ) {
if ( !$user instanceof User ) {
* @todo FIXME: This *does not* check throttles (User::pingLimiter()).
*
* @param string $action action that permission needs to be checked for
- * @param $user User to check
+ * @param User $user User to check
* @param bool $doExpensiveQueries Set this to false to avoid doing unnecessary
* queries by skipping checks for cascading protections and user blocks.
* @param array $ignoreErrors of Strings Set this to a list of message keys
* whose corresponding errors may be ignored.
- * @return Array of arguments to wfMessage to explain permissions problems.
+ * @return array Array of arguments to wfMessage to explain permissions problems.
*/
public function getUserPermissionsErrors( $action, $user, $doExpensiveQueries = true, $ignoreErrors = array() ) {
$errors = $this->getUserPermissionsErrorsInternal( $action, $user, $doExpensiveQueries );
* Permissions checks that fail most often, and which are easiest to test.
*
* @param string $action the action to check
- * @param $user User user to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkQuickPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
if ( !wfRunHooks( 'TitleQuickPermissions', array( $this, $user, $action, &$errors, $doExpensiveQueries, $short ) ) ) {
/**
* Add the resulting error code to the errors array
*
- * @param array $errors list of current errors
- * @param $result Mixed result of errors
+ * @param array $errors List of current errors
+ * @param array $result Result of errors
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function resultToError( $errors, $result ) {
if ( is_array( $result ) && count( $result ) && !is_array( $result[0] ) ) {
/**
* Check various permission hooks
*
- * @param string $action the action to check
- * @param $user User user to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkPermissionHooks( $action, $user, $errors, $doExpensiveQueries, $short ) {
// Use getUserPermissionsErrors instead
/**
* Check permissions on special pages & namespaces
*
- * @param string $action the action to check
- * @param $user User user to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkSpecialsAndNSPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
# Only 'createaccount' can be performed on special pages,
/**
* Check CSS/JS sub-page permissions
*
- * @param string $action the action to check
- * @param $user User user to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkCSSandJSPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
# Protect css/js subpages of user pages
* page. The user must possess all required rights for this
* action.
*
- * @param string $action the action to check
- * @param $user User user to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkPageRestrictions( $action, $user, $errors, $doExpensiveQueries, $short ) {
foreach ( $this->getRestrictions( $action ) as $right ) {
/**
* Check restrictions on cascading pages.
*
- * @param string $action the action to check
- * @param $user User to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkCascadingSourcesRestrictions( $action, $user, $errors, $doExpensiveQueries, $short ) {
if ( $doExpensiveQueries && !$this->isCssJsSubpage() ) {
/**
* Check action permissions not already checked in checkQuickPermissions
*
- * @param string $action the action to check
- * @param $user User to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkActionPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
global $wgDeleteRevisionsLimit, $wgLang;
/**
* Check that the user isn't blocked from editing.
*
- * @param string $action the action to check
- * @param $user User to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkUserBlock( $action, $user, $errors, $doExpensiveQueries, $short ) {
// Account creation blocks handled at userlogin.
/**
* Check that the user is allowed to read this page.
*
- * @param string $action the action to check
- * @param $user User to check
- * @param array $errors list of current errors
- * @param $doExpensiveQueries Boolean whether or not to perform expensive queries
- * @param $short Boolean short circuit on first error
+ * @param string $action The action to check
+ * @param User $user User to check
+ * @param array $errors List of current errors
+ * @param bool $doExpensiveQueries Whether or not to perform expensive queries
+ * @param bool $short Short circuit on first error
*
- * @return Array list of errors
+ * @return array List of errors
*/
private function checkReadPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
global $wgWhitelistRead, $wgWhitelistReadRegexp;
* Get a description array when the user doesn't have the right to perform
* $action (i.e. when User::isAllowed() returns false)
*
- * @param string $action the action to check
- * @param $short Boolean short circuit on first error
- * @return Array list of errors
+ * @param string $action The action to check
+ * @param bool $short Short circuit on first error
+ * @return array List of errors
*/
private function missingPermissionError( $action, $short ) {
// We avoid expensive display logic for quickUserCan's and such
* which checks ONLY that previously checked by userCan (i.e. it leaves out
* checks on wfReadOnly() and blocks)
*
- * @param string $action action that permission needs to be checked for
- * @param $user User to check
+ * @param string $action Action that permission needs to be checked for
+ * @param User $user User to check
* @param bool $doExpensiveQueries Set this to false to avoid doing unnecessary queries.
* @param bool $short Set this to true to stop after the first permission error.
- * @return Array of arrays of the arguments to wfMessage to explain permissions problems.
+ * @return array Array of arrays of the arguments to wfMessage to explain permissions problems.
*/
protected function getUserPermissionsErrorsInternal( $action, $user, $doExpensiveQueries = true, $short = false ) {
wfProfileIn( __METHOD__ );
/**
* Returns restriction types for the current Title
*
- * @return array applicable restriction types
+ * @return array Applicable restriction types
*/
public function getRestrictionTypes() {
if ( $this->isSpecialPage() ) {
* Is this title subject to title protection?
* Title protection is the one applied against creation of such title.
*
- * @return Mixed An associative array representing any existent title
+ * @return array|bool An associative array representing any existent title
* protection, or false if there's none.
*/
private function getTitleProtection() {
* Update the title protection status
*
* @deprecated since 1.19; use WikiPage::doUpdateRestrictions() instead.
- * @param $create_perm String Permission required for creation
+ * @param string $create_perm Permission required for creation
* @param string $reason Reason for protection
* @param string $expiry Expiry timestamp
- * @return boolean true
+ * @return bool
*/
public function updateTitleProtection( $create_perm, $reason, $expiry ) {
wfDeprecated( __METHOD__, '1.19' );
* in $wgSemiprotectedRestrictionLevels?
*
* @param string $action Action to check (default: edit)
- * @return Bool
+ * @return bool
*/
public function isSemiProtected( $action = 'edit' ) {
global $wgSemiprotectedRestrictionLevels;
*
* @param string $action the action the page is protected from,
* by default checks all actions.
- * @return Bool
+ * @return bool
*/
public function isProtected( $action = '' ) {
global $wgRestrictionLevels;
* Determines if $user is unable to edit this page because it has been protected
* by $wgNamespaceProtection.
*
- * @param $user User object to check permissions
- * @return Bool
+ * @param User $user User object to check permissions
+ * @return bool
*/
public function isNamespaceProtected( User $user ) {
global $wgNamespaceProtection;
/**
* Cascading protection: Return true if cascading restrictions apply to this page, false if not.
*
- * @return Bool If the page is subject to cascading restrictions.
+ * @return bool If the page is subject to cascading restrictions.
*/
public function isCascadeProtected() {
list( $sources, /* $restrictions */ ) = $this->getCascadeProtectionSources( false );
*
* @param bool $getPages Whether or not to retrieve the actual pages
* that the restrictions have come from.
- * @return Mixed Array of Title objects of the pages from which cascading restrictions
+ * @return array|bool Array of Title objects of the pages from which cascading restrictions
* have come, false for none, or true if such restrictions exist, but $getPages
* was not set. The restriction array is an array of each type, each of which
* contains a array of unique groups.
/**
* Accessor/initialisation for mRestrictions
*
- * @param string $action action that permission needs to be checked for
- * @return Array of Strings the array of groups allowed to edit this article
+ * @param string $action Action that permission needs to be checked for
+ * @return array Array of Strings the array of groups allowed to edit this article
*/
public function getRestrictions( $action ) {
if ( !$this->mRestrictionsLoaded ) {
/**
* Accessor/initialisation for mRestrictions
*
- * @return Array of Arrays of Strings the first level indexed by
+ * @return array Array of Arrays of Strings the first level indexed by
* action, the second level containing the names of the groups
* allowed to perform each action
* @since 1.23
/**
* Get the expiry time for the restriction against a given action
*
- * @param $action
- * @return String|Bool 14-char timestamp, or 'infinity' if the page is protected forever
+ * @param string $action
+ * @return string|bool 14-char timestamp, or 'infinity' if the page is protected forever
* or not protected at all, or false if the action is not recognised.
*/
public function getRestrictionExpiry( $action ) {
/**
* Returns cascading restrictions for the current article
*
- * @return Boolean
+ * @return bool
*/
function areRestrictionsCascading() {
if ( !$this->mRestrictionsLoaded ) {
/**
* Loads a string into mRestrictions array
*
- * @param $res Resource restrictions as an SQL result.
- * @param string $oldFashionedRestrictions comma-separated list of page
+ * @param ResultWrapper $res Resource restrictions as an SQL result.
+ * @param string $oldFashionedRestrictions Comma-separated list of page
* restrictions from page table (pre 1.10)
*/
private function loadRestrictionsFromResultWrapper( $res, $oldFashionedRestrictions = null ) {
* and page_restrictions table for this existing page.
* Public for usage by LiquidThreads.
*
- * @param array $rows of db result objects
- * @param string $oldFashionedRestrictions comma-separated list of page
- * restrictions from page table (pre 1.10)
+ * @param array $rows Array of db result objects
+ * @param string $oldFashionedRestrictions Comma-separated list of page
+ * restrictions from page table (pre 1.10)
*/
public function loadRestrictionsFromRows( $rows, $oldFashionedRestrictions = null ) {
global $wgContLang;
/**
* Load restrictions from the page_restrictions table
*
- * @param string $oldFashionedRestrictions comma-separated list of page
- * restrictions from page table (pre 1.10)
+ * @param string $oldFashionedRestrictions Comma-separated list of page
+ * restrictions from page table (pre 1.10)
*/
public function loadRestrictions( $oldFashionedRestrictions = null ) {
global $wgContLang;
/**
* Does this have subpages? (Warning, usually requires an extra DB query.)
*
- * @return Bool
+ * @return bool
*/
public function hasSubpages() {
if ( !MWNamespace::hasSubpages( $this->mNamespace ) ) {
/**
* Get all subpages of this page.
*
- * @param int $limit maximum number of subpages to fetch; -1 for no limit
- * @return mixed TitleArray, or empty array if this page's namespace
+ * @param int $limit Maximum number of subpages to fetch; -1 for no limit
+ * @return TitleArray|array TitleArray, or empty array if this page's namespace
* doesn't allow subpages
*/
public function getSubpages( $limit = -1 ) {
/**
* Is there a version of this page in the deletion archive?
*
- * @return Int the number of archived revisions
+ * @return int The number of archived revisions
*/
public function isDeleted() {
if ( $this->getNamespace() < 0 ) {
/**
* Is there a version of this page in the deletion archive?
*
- * @return Boolean
+ * @return bool
*/
public function isDeletedQuick() {
if ( $this->getNamespace() < 0 ) {
* Get the article ID for this Title from the link cache,
* adding it if necessary
*
- * @param int $flags a bit field; may be Title::GAID_FOR_UPDATE to select
+ * @param int $flags A bit field; may be Title::GAID_FOR_UPDATE to select
* for update
- * @return Int the ID
+ * @return int The ID
*/
public function getArticleID( $flags = 0 ) {
if ( $this->getNamespace() < 0 ) {
* Is this an article that is a redirect page?
* Uses link cache, adding it if necessary
*
- * @param int $flags a bit field; may be Title::GAID_FOR_UPDATE to select for update
- * @return Bool
+ * @param int $flags A bit field; may be Title::GAID_FOR_UPDATE to select for update
+ * @return bool
*/
public function isRedirect( $flags = 0 ) {
if ( !is_null( $this->mRedirect ) ) {
* What is the length of this page?
* Uses link cache, adding it if necessary
*
- * @param int $flags a bit field; may be Title::GAID_FOR_UPDATE to select for update
- * @return Int
+ * @param int $flags A bit field; may be Title::GAID_FOR_UPDATE to select for update
+ * @return int
*/
public function getLength( $flags = 0 ) {
if ( $this->mLength != -1 ) {
/**
* What is the page_latest field for this page?
*
- * @param int $flags a bit field; may be Title::GAID_FOR_UPDATE to select for update
- * @return Int or 0 if the page doesn't exist
+ * @param int $flags A bit field; may be Title::GAID_FOR_UPDATE to select for update
+ * @return int Int or 0 if the page doesn't exist
*/
public function getLatestRevID( $flags = 0 ) {
if ( !( $flags & Title::GAID_FOR_UPDATE ) && $this->mLatestID !== false ) {
* loading of the new page_id. It's also called from
* WikiPage::doDeleteArticleReal()
*
- * @param int $newid the new Article ID
+ * @param int $newid The new Article ID
*/
public function resetArticleID( $newid ) {
$linkCache = LinkCache::singleton();
/**
* Capitalize a text string for a title if it belongs to a namespace that capitalizes
*
- * @param string $text containing title to capitalize
- * @param int $ns namespace index, defaults to NS_MAIN
- * @return String containing capitalized title
+ * @param string $text Containing title to capitalize
+ * @param int $ns Namespace index, defaults to NS_MAIN
+ * @return string Containing capitalized title
*/
public static function capitalize( $text, $ns = NS_MAIN ) {
global $wgContLang;
* namespace prefixes, sets the other forms, and canonicalizes
* everything.
*
- * @return Bool true on success
+ * @return bool True on success
*/
private function secureAndSplit() {
# Initialisation
* WARNING: do not use this function on arbitrary user-supplied titles!
* On heavily-used templates it will max out the memory.
*
- * @param array $options may be FOR UPDATE
- * @param string $table table name
- * @param string $prefix fields prefix
- * @return Array of Title objects linking here
+ * @param array $options May be FOR UPDATE
+ * @param string $table Table name
+ * @param string $prefix Fields prefix
+ * @return Title[] Array of Title objects linking here
*/
public function getLinksTo( $options = array(), $table = 'pagelinks', $prefix = 'pl' ) {
if ( count( $options ) > 0 ) {
* WARNING: do not use this function on arbitrary user-supplied titles!
* On heavily-used templates it will max out the memory.
*
- * @param array $options may be FOR UPDATE
- * @return Array of Title the Title objects linking here
+ * @param array $options May be FOR UPDATE
+ * @return Title[] Array of Title the Title objects linking here
*/
public function getTemplateLinksTo( $options = array() ) {
return $this->getLinksTo( $options, 'templatelinks', 'tl' );
* WARNING: do not use this function on arbitrary user-supplied titles!
* On heavily-used templates it will max out the memory.
*
- * @param array $options may be FOR UPDATE
- * @param string $table table name
- * @param string $prefix fields prefix
- * @return Array of Title objects linking here
+ * @param array $options May be FOR UPDATE
+ * @param string $table Table name
+ * @param string $prefix Fields prefix
+ * @return array Array of Title objects linking here
*/
public function getLinksFrom( $options = array(), $table = 'pagelinks', $prefix = 'pl' ) {
global $wgContentHandlerUseDB;
* WARNING: do not use this function on arbitrary user-supplied titles!
* On heavily-used templates it will max out the memory.
*
- * @param array $options may be FOR UPDATE
- * @return Array of Title the Title objects used here
+ * @param array $options May be FOR UPDATE
+ * @return Title[] Array of Title the Title objects used here
*/
public function getTemplateLinksFrom( $options = array() ) {
return $this->getLinksFrom( $options, 'templatelinks', 'tl' );
* Get an array of Title objects referring to non-existent articles linked from this page
*
* @todo check if needed (used only in SpecialBrokenRedirects.php, and should use redirect table in this case)
- * @return Array of Title the Title objects
+ * @return Title[] Array of Title the Title objects
*/
public function getBrokenLinksFrom() {
if ( $this->getArticleID() == 0 ) {
* Get a list of URLs to purge from the Squid cache when this
* page changes
*
- * @return Array of String the URLs
+ * @return string[] Array of String the URLs
*/
public function getSquidURLs() {
$urls = array(
/**
* Move this page without authentication
*
- * @param $nt Title the new page Title
- * @return Mixed true on success, getUserPermissionsErrors()-like array on failure
+ * @param Title $nt The new page Title
+ * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
*/
public function moveNoAuth( &$nt ) {
return $this->moveTo( $nt, false );
* Check whether a given move operation would be valid.
* Returns true if ok, or a getUserPermissionsErrors()-like array otherwise
*
- * @param $nt Title the new title
- * @param bool $auth indicates whether $wgUser's permissions
+ * @param Title $nt The new title
+ * @param bool $auth Indicates whether $wgUser's permissions
* should be checked
- * @param string $reason is the log summary of the move, used for spam checking
- * @return Mixed True on success, getUserPermissionsErrors()-like array on failure
+ * @param string $reason Is the log summary of the move, used for spam checking
+ * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
*/
public function isValidMoveOperation( &$nt, $auth = true, $reason = '' ) {
global $wgUser, $wgContentHandlerUseDB;
/**
* Move a title to a new location
*
- * @param $nt Title the new title
- * @param bool $auth indicates whether $wgUser's permissions
+ * @param Title $nt The new title
+ * @param bool $auth Indicates whether $wgUser's permissions
* should be checked
- * @param string $reason the reason for the move
+ * @param string $reason The reason for the move
* @param bool $createRedirect Whether to create a redirect from the old title to the new title.
* Ignored if the user doesn't have the suppressredirect right.
- * @return Mixed true on success, getUserPermissionsErrors()-like array on failure
+ * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
*/
public function moveTo( &$nt, $auth = true, $reason = '', $createRedirect = true ) {
global $wgUser;
* Move page to a title which is either a redirect to the
* source page or nonexistent
*
- * @param $nt Title the page to move to, which should be a redirect or nonexistent
+ * @param Title $nt The page to move to, which should be a redirect or nonexistent
* @param string $reason The reason for the move
* @param bool $createRedirect Whether to leave a redirect at the old title. Does not check
* if the user has the suppressredirect right
/**
* Move this page's subpages to be subpages of $nt
*
- * @param $nt Title Move target
+ * @param Title $nt Move target
* @param bool $auth Whether $wgUser's permissions should be checked
* @param string $reason The reason for the move
* @param bool $createRedirect Whether to create redirects from the old subpages to
* the new ones Ignored if the user doesn't have the 'suppressredirect' right
- * @return mixed array with old page titles as keys, and strings (new page titles) or
+ * @return array Array with old page titles as keys, and strings (new page titles) or
* arrays (errors) as values, or an error array with numeric indices if no pages
* were moved
*/
* Checks if this page is just a one-rev redirect.
* Adds lock, so don't use just for light purposes.
*
- * @return Bool
+ * @return bool
*/
public function isSingleRevRedirect() {
global $wgContentHandlerUseDB;
* Checks if $this can be moved to a given Title
* - Selects for update, so don't call it unless you mean business
*
- * @param $nt Title the new title to check
- * @return Bool
+ * @param Title $nt The new title to check
+ * @return bool
*/
public function isValidMoveTarget( $nt ) {
# Is it an existing file?
* Get categories to which this Title belongs and return an array of
* categories' names.
*
- * @return Array of parents in the form:
+ * @return array Array of parents in the form:
* $parent => $currentarticle
*/
public function getParentCategories() {
/**
* Get a tree of parent categories
*
- * @param array $children with the children in the keys, to check for circular refs
- * @return Array Tree of parent categories
+ * @param array $children Array with the children in the keys, to check for circular refs
+ * @return array Tree of parent categories
*/
public function getParentCategoryTree( $children = array() ) {
$stack = array();
* Get an associative array for selecting this title from
* the "page" table
*
- * @return Array suitable for the $where parameter of DB::select()
+ * @return array Array suitable for the $where parameter of DB::select()
*/
public function pageCond() {
if ( $this->mArticleID > 0 ) {
*
* @param int $revId Revision ID. Get the revision that was before this one.
* @param int $flags Title::GAID_FOR_UPDATE
- * @return Int|Bool Old revision ID, or FALSE if none exists
+ * @return int|bool Old revision ID, or false if none exists
*/
public function getPreviousRevisionID( $revId, $flags = 0 ) {
$db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
*
* @param int $revId Revision ID. Get the revision that was after this one.
* @param int $flags Title::GAID_FOR_UPDATE
- * @return Int|Bool Next revision ID, or FALSE if none exists
+ * @return int|bool Next revision ID, or false if none exists
*/
public function getNextRevisionID( $revId, $flags = 0 ) {
$db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
* Get the first revision of the page
*
* @param int $flags Title::GAID_FOR_UPDATE
- * @return Revision|Null if page doesn't exist
+ * @return Revision|null If page doesn't exist
*/
public function getFirstRevision( $flags = 0 ) {
$pageId = $this->getArticleID( $flags );
* Get the oldest revision timestamp of this page
*
* @param int $flags Title::GAID_FOR_UPDATE
- * @return String: MW timestamp
+ * @return string MW timestamp
*/
public function getEarliestRevTime( $flags = 0 ) {
$rev = $this->getFirstRevision( $flags );
* @param int|Revision $old Old revision or rev ID (first before range)
* @param int|Revision $new New revision or rev ID (first after range)
* @param int|null $max Limit of Revisions to count, will be incremented to detect truncations
- * @return Int Number of revisions between these revisions.
+ * @return int Number of revisions between these revisions.
*/
public function countRevisionsBetween( $old, $new, $max = null ) {
if ( !( $old instanceof Revision ) ) {
/**
* Compare with another title.
*
- * @param $title Title
- * @return Bool
+ * @param Title $title
+ * @return bool
*/
public function equals( Title $title ) {
// Note: === is necessary for proper matching of number-like titles.
/**
* Check if this title is a subpage of another title
*
- * @param $title Title
- * @return Bool
+ * @param Title $title
+ * @return bool
*/
public function isSubpageOf( Title $title ) {
return $this->getInterwiki() === $title->getInterwiki()
* If you want to know if a title can be meaningfully viewed, you should
* probably call the isKnown() method instead.
*
- * @return Bool
+ * @return bool
*/
public function exists() {
return $this->getArticleID() != 0;
* existing code, but we might want to add an optional parameter to skip
* it and any other expensive checks.)
*
- * @return Bool
+ * @return bool
*/
public function isAlwaysKnown() {
$isKnown = null;
* @since 1.20
*
* @param Title $title
- * @param boolean|null $isKnown
+ * @param bool|null $isKnown
*/
wfRunHooks( 'TitleIsAlwaysKnown', array( $this, &$isKnown ) );
* since LinkHolderArray calls isAlwaysKnown() and does its own
* page existence check.
*
- * @return Bool
+ * @return bool
*/
public function isKnown() {
return $this->isAlwaysKnown() || $this->exists();
/**
* Does this page have source text?
*
- * @return Boolean
+ * @return bool
*/
public function hasSourceText() {
if ( $this->exists() ) {
/**
* Get the default message text or false if the message doesn't exist
*
- * @return String or false
+ * @return string|bool
*/
public function getDefaultMessageText() {
global $wgContLang;
/**
* Updates page_touched for this page; called from LinksUpdate.php
*
- * @return Bool true if the update succeeded
+ * @return bool True if the update succeeded
*/
public function invalidateCache() {
if ( wfReadOnly() ) {
/**
* Get the last touched timestamp
*
- * @param $db DatabaseBase: optional db
- * @return String last-touched timestamp
+ * @param DatabaseBase $db Optional db
+ * @return string Last-touched timestamp
*/
public function getTouched( $db = null ) {
$db = isset( $db ) ? $db : wfGetDB( DB_SLAVE );
/**
* Get the timestamp when this page was updated since the user last saw it.
*
- * @param $user User
- * @return String|Null
+ * @param User $user
+ * @return string|null
*/
public function getNotificationTimestamp( $user = null ) {
global $wgUser, $wgShowUpdatedMarker;
/**
* Generate strings used for xml 'id' names in monobook tabs
*
- * @param string $prepend defaults to 'nstab-'
- * @return String XML 'id' name
+ * @param string $prepend Defaults to 'nstab-'
+ * @return string XML 'id' name
*/
public function getNamespaceKey( $prepend = 'nstab-' ) {
global $wgContLang;
/**
* Get all extant redirects to this Title
*
- * @param int|Null $ns Single namespace to consider; NULL to consider all namespaces
+ * @param int|null $ns Single namespace to consider; null to consider all namespaces
* @return Title[] Array of Title redirects to this title
*/
public function getRedirectsHere( $ns = null ) {
/**
* Check if this Title is a valid redirect target
*
- * @return Bool
+ * @return bool
*/
public function isValidRedirectTarget() {
global $wgInvalidRedirectTargets;
/**
* Whether the magic words __INDEX__ and __NOINDEX__ function for this page.
*
- * @return Boolean
+ * @return bool
*/
public function canUseNoindex() {
global $wgContentNamespaces, $wgExemptFromUserRobotsControl;
*
* @since 1.21
* @param int $oldid Revision ID that's being edited
- * @return Array
+ * @return array
*/
public function getEditNotices( $oldid = 0 ) {
$notices = array();
private $mBlockedFromCreateAccount = false;
/**
- * @var Array
+ * @var array
*/
private $mWatchedItems = array();
* Create a new user object using data from session or cookies. If the
* login credentials are invalid, the result is an anonymous user.
*
- * @param WebRequest $request Object to use; $wgRequest will be used if omitted.
- * @return User object
+ * @param WebRequest|null $request Object to use; $wgRequest will be used if omitted.
+ * @return User
*/
public static function newFromSession( WebRequest $request = null ) {
$user = new User;
* Additional blacklisting may be added here rather than in
* isValidUserName() to avoid disrupting existing accounts.
*
- * @param string $name to match
+ * @param string $name String to match
* @return bool
*/
public static function isCreatableName( $name ) {
* Given unvalidated password input, return error message on failure.
*
* @param string $password Desired password
- * @return mixed: true on success, string or array of error message on failure
+ * @return bool|string|array true on success, string or array of error message on failure
*/
public function getPasswordValidity( $password ) {
$result = $this->checkPasswordValidity( $password );
/**
* Expire a user's password
* @since 1.23
- * @param $ts Mixed: optional timestamp to convert, default 0 for the current time
+ * @param int $ts Optional timestamp to convert, default 0 for the current time
*/
public function expirePassword( $ts = 0 ) {
$this->load();
/**
* Clear the password expiration for a user
* @since 1.23
- * @param bool $load ensure user object is loaded first
+ * @param bool $load Ensure user object is loaded first
*/
public function resetPasswordExpiration( $load = true ) {
global $wgPasswordExpirationDays;
* the cached User object, we assume that whatever mechanism is setting
* the expiration date is also expiring the User cache.
* @since 1.23
- * @return string|false the datestamp of the expiration, or null if not set
+ * @return string|bool The datestamp of the expiration, or null if not set
*/
public function getPasswordExpireDate() {
$this->load();
* Given unvalidated user input, return a canonical username, or false if
* the username is invalid.
* @param string $name User input
- * @param string|bool $validate type of validation to use:
- * - false No validation
- * - 'valid' Valid for batch processes
- * - 'usable' Valid for batch processes and login
- * - 'creatable' Valid for batch processes, login and account creation
+ * @param string|bool $validate Type of validation to use:
+ * - false No validation
+ * - 'valid' Valid for batch processes
+ * - 'usable' Valid for batch processes and login
+ * - 'creatable' Valid for batch processes, login and account creation
*
* @throws MWException
* @return bool|string
* @note This no longer clears uncached lazy-initialised properties;
* the constructor does that instead.
*
- * @param $name string|bool
+ * @param string|bool $name
*/
public function loadDefaults( $name = false ) {
wfProfileIn( __METHOD__ );
/**
* Return whether an item has been loaded.
*
- * @param string $item item to check. Current possibilities:
- * - id
- * - name
- * - realname
+ * @param string $item Item to check. Current possibilities:
+ * - id
+ * - name
+ * - realname
* @param string $all 'all' to check if the whole object has been loaded
- * or any other string to check if only the item is available (e.g.
- * for optimisation)
- * @return boolean
+ * or any other string to check if only the item is available (e.g.
+ * for optimisation)
+ * @return bool
*/
public function isItemLoaded( $item, $all = 'all' ) {
return ( $this->mLoadedItems === true && $all === 'all' ) ||
/**
* A comparison of two strings, not vulnerable to timing attacks
- * @param string $answer the secret string that you are comparing against.
- * @param string $test compare this string to the $answer.
+ * @param string $answer The secret string that you are comparing against.
+ * @param string $test Compare this string to the $answer.
* @return bool True if the strings are the same, false otherwise
*/
protected function compareSecrets( $answer, $test ) {
/**
* Load the data for this user object from another user object.
*
- * @param $user User
+ * @param User $user
*/
protected function loadFromUserObject( $user ) {
$user->load();
* will not be re-added automatically. The user will also not lose the
* group if they no longer meet the criteria.
*
- * @param string $event key in $wgAutopromoteOnce (each one has groups/criteria)
+ * @param string $event Key in $wgAutopromoteOnce (each one has groups/criteria)
*
* @return array Array of groups the user has been promoted to.
*
* data (i.e. self::$mCacheVars) is not cleared unless $reloadFrom is given.
*
* @param bool|string $reloadFrom Reload user and user_groups table data from a
- * given source. May be "name", "id", "defaults", "session", or false for
- * no reload.
+ * given source. May be "name", "id", "defaults", "session", or false for no reload.
*/
public function clearInstanceCache( $reloadFrom = false ) {
$this->mNewtalk = -1;
* Combine the language default options with any site-specific options
* and add the default language variants.
*
- * @return Array of String options
+ * @return array Array of String options
*/
public static function getDefaultOptions() {
global $wgNamespacesToBeSearchedDefault, $wgDefaultUserOptions, $wgContLang, $wgDefaultSkin;
/**
* Get blocking information
- * @param bool $bFromSlave Whether to check the slave database first. To
- * improve performance, non-critical checks are done
- * against slaves. Check when actually saving should be
- * done against master.
+ * @param bool $bFromSlave Whether to check the slave database first.
+ * To improve performance, non-critical checks are done against slaves.
+ * Check when actually saving should be done against master.
*/
private function getBlockedStatus( $bFromSlave = true ) {
global $wgProxyWhitelist, $wgUser, $wgApplyIpBlocksToXff;
* Whether the given IP is in a DNS blacklist.
*
* @param string $ip IP to check
- * @param bool $checkWhitelist whether to check the whitelist first
+ * @param bool $checkWhitelist Whether to check the whitelist first
* @return bool True if blacklisted.
*/
public function isDnsBlacklisted( $ip, $checkWhitelist = false ) {
* Whether the given IP is in a given DNS blacklist.
*
* @param string $ip IP to check
- * @param string|array $bases of Strings: URL of the DNS blacklist
+ * @param string|array $bases Array of Strings: URL of the DNS blacklist
* @return bool True if blacklisted.
*/
public function inDnsBlacklist( $ip, $bases ) {
/**
* Check if an IP address is in the local proxy list
*
- * @param $ip string
+ * @param string $ip
*
* @return bool
*/
* last-hit counters will be shared across wikis.
*
* @param string $action Action to enforce; 'edit' if unspecified
- * @param integer $incrBy Positive amount to increment counter by [defaults to 1]
+ * @param int $incrBy Positive amount to increment counter by [defaults to 1]
* @return bool True if a rate limiter was tripped
*/
public function pingLimiter( $action = 'edit', $incrBy = 1 ) {
* Check if user is blocked from editing a particular article
*
* @param Title $title Title to check
- * @param bool $bFromSlave whether to check the slave database instead of the master
+ * @param bool $bFromSlave Whether to check the slave database instead of the master
* @return bool
*/
public function isBlockedFrom( $title, $bFromSlave = false ) {
* If there are no new messages, it returns an empty array.
* @note This function was designed to accomodate multiple talk pages, but
* currently only returns a single link and revision.
- * @return Array
+ * @return array
*/
public function getNewMessageLinks() {
$talks = array();
* Add or update the new messages flag
* @param string $field 'user_ip' for anonymous users, 'user_id' otherwise
* @param string|int $id User's IP address for anonymous users, User ID otherwise
- * @param $curRev Revision new, as yet unseen revision of the user talk page. Ignored if null.
+ * @param Revision|null $curRev New, as yet unseen revision of the user talk page. Ignored if null.
* @return bool True if successful, false otherwise
*/
protected function updateNewtalk( $field, $id, $curRev = null ) {
/**
* Update the 'You have new messages!' status.
* @param bool $val Whether the user has new messages
- * @param $curRev Revision new, as yet unseen revision of the user talk page. Ignored if null or !$val.
+ * @param Revision $curRev New, as yet unseen revision of the user talk page. Ignored if null or !$val.
*/
public function setNewtalk( $val, $curRev = null ) {
if ( wfReadOnly() ) {
/**
* Get the user touched timestamp
- * @return string timestamp
+ * @return string Timestamp
*/
public function getTouched() {
$this->load();
/**
* Set the password for a password reminder or new account email
*
- * @param $str New password to set or null to set an invalid
+ * @param string $str New password to set or null to set an invalid
* password hash meaning that the user will not be able to use it
* @param bool $throttle If true, reset the throttle timestamp to the present
*/
* See User::listOptionKinds for the list of valid option types that can be provided.
*
* @see User::listOptionKinds
- * @param $context IContextSource
- * @param array $options assoc. array with options keys to check as keys. Defaults to $this->mOptions.
+ * @param IContextSource $context
+ * @param array $options Assoc. array with options keys to check as keys. Defaults to $this->mOptions.
* @return array the key => kind mapping data
*/
public function getOptionKinds( IContextSource $context, $options = null ) {
* Supported values are everything that can be reported by getOptionKinds()
* 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
+ * @param array|string $resetKinds Which kinds of preferences to reset. Defaults to
* array( 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' )
* for backwards-compatibility.
- * @param $context IContextSource|null context source used when $resetKinds
+ * @param IContextSource|null $context Context source used when $resetKinds
* does not contain 'all', passed to getOptionKinds().
* Defaults to RequestContext::getMain() when null.
*/
/**
* Get the permissions this user has.
- * @return Array of String permission names
+ * @return array Array of String permission names
*/
public function getRights() {
if ( is_null( $this->mRights ) ) {
/**
* Get the list of explicit group memberships this user has.
* The implicit * and user groups are not included.
- * @return Array of String internal group names
+ * @return array Array of String internal group names
*/
public function getGroups() {
$this->load();
* This includes all explicit groups, plus 'user' if logged in,
* '*' for all accounts, and autopromoted groups
* @param bool $recache Whether to avoid the cache
- * @return Array of String internal group names
+ * @return array Array of String internal group names
*/
public function getEffectiveGroups( $recache = false ) {
if ( $recache || is_null( $this->mEffectiveGroups ) ) {
* This includes 'user' if logged in, '*' for all accounts,
* and autopromoted groups
* @param bool $recache Whether to avoid the cache
- * @return Array of String internal group names
+ * @return array Array of String internal group names
*/
public function getAutomaticGroups( $recache = false ) {
if ( $recache || is_null( $this->mImplicitGroups ) ) {
/**
* Get the user's edit count.
- * @return int, null for anonymous users
+ * @return int|null null for anonymous users
*/
public function getEditCount() {
if ( !$this->getId() ) {
* Check if user is allowed to access a feature / make an action
*
* @internal param \String $varargs permissions to test
- * @return boolean: True if user is allowed to perform *any* of the given actions
+ * @return bool True if user is allowed to perform *any* of the given actions
*
* @return bool
*/
/**
* Check whether to enable recent changes patrol features for this user
- * @return boolean: True or false
+ * @return bool True or false
*/
public function useRCPatrol() {
global $wgUseRCPatrol;
* Get a WatchedItem for this user and $title.
*
* @since 1.22 $checkRights parameter added
- * @param $title Title
- * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+ * @param Title $title
+ * @param int $checkRights Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
* Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
* @return WatchedItem
*/
/**
* Check the watched status of an article.
* @since 1.22 $checkRights parameter added
- * @param $title Title of the article to look at
- * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+ * @param Title $title Title of the article to look at
+ * @param int $checkRights Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
* Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
* @return bool
*/
/**
* Watch an article.
* @since 1.22 $checkRights parameter added
- * @param $title Title of the article to look at
- * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+ * @param Title $title Title of the article to look at
+ * @param int $checkRights Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
* Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
*/
public function addWatch( $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
/**
* Stop watching an article.
* @since 1.22 $checkRights parameter added
- * @param $title Title of the article to look at
- * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+ * @param Title $title Title of the article to look at
+ * @param int $checkRights Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
* Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
*/
public function removeWatch( $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
* If e-notif e-mails are on, they will receive notification mails on
* the next change of the page if it's watched etc.
* @note If the user doesn't have 'editmywatchlist', this will do nothing.
- * @param $title Title of the article to look at
+ * @param Title $title Title of the article to look at
* @param int $oldid The revision id being viewed. If not given or 0, latest revision is assumed.
*/
public function clearNotification( &$title, $oldid = 0 ) {
/**
* Set the default cookies for this session on the user's client.
*
- * @param $request WebRequest object to use; $wgRequest will be used if null
+ * @param WebRequest|null $request WebRequest object to use; $wgRequest will be used if null
* is passed.
* @param bool $secure Whether to force secure/insecure cookies or use default
* @param bool $rememberMe Whether to add a Token cookie for elongated sessions
* Add a user to the database, return the user object
*
* @param string $name Username to add
- * @param array $params of Strings Non-default parameters to save to the database as user_* fields:
+ * @param array $params Array of Strings Non-default parameters to save to the database as user_* fields:
* - password The user's password hash. Password logins will be disabled if this is omitted.
* - newpassword Hash for a temporary password that has been mailed to the user
* - email The user's email address
* - token Random authentication token. Do not set.
* - registration Registration timestamp. Do not set.
*
- * @return User object, or null if the username already exists
+ * @return User|null User object, or null if the username already exists
*/
public static function createNew( $name, $params = array() ) {
$user = new User;
/**
* Get this user's personal page title.
*
- * @return Title: User's personal page title
+ * @return Title User's personal page title
*/
public function getUserPage() {
return Title::makeTitle( NS_USER, $this->getName() );
/**
* Get this user's talk page title.
*
- * @return Title: User's talk page title
+ * @return Title User's talk page title
*/
public function getTalkPage() {
$title = $this->getUserPage();
/**
* Check to see if the given clear-text password is one of the accepted passwords
* @param string $password user password.
- * @return boolean: True if the given password is correct, otherwise False.
+ * @return bool True if the given password is correct, otherwise False.
*/
public function checkPassword( $password ) {
global $wgAuth, $wgLegacyEncoding;
* Check if the given clear-text password matches the temporary password
* sent by e-mail for password reset operations.
*
- * @param $plaintext string
+ * @param string $plaintext
*
- * @return boolean: True if matches, false otherwise
+ * @return bool True if matches, false otherwise
*/
public function checkTemporaryPassword( $plaintext ) {
global $wgNewPasswordExpiry;
* @deprecated since 1.19, use getEditToken instead.
*
* @param string|array $salt of Strings Optional function-specific data for hashing
- * @param $request WebRequest object to use or null to use $wgRequest
+ * @param WebRequest|null $request WebRequest object to use or null to use $wgRequest
* @return string The new edit token
*/
public function editToken( $salt = '', $request = null ) {
* @since 1.19
*
* @param string|array $salt of Strings Optional function-specific data for hashing
- * @param $request WebRequest object to use or null to use $wgRequest
+ * @param WebRequest|null $request WebRequest object to use or null to use $wgRequest
* @return string The new edit token
*/
public function getEditToken( $salt = '', $request = null ) {
*
* @param string $val Input value to compare
* @param string $salt Optional function-specific data for hashing
- * @param WebRequest $request Object to use or null to use $wgRequest
- * @return boolean: Whether the token matches
+ * @param WebRequest|null $request Object to use or null to use $wgRequest
+ * @return bool Whether the token matches
*/
public function matchEditToken( $val, $salt = '', $request = null ) {
$sessionToken = $this->getEditToken( $salt, $request );
*
* @param string $val Input value to compare
* @param string $salt Optional function-specific data for hashing
- * @param WebRequest $request object to use or null to use $wgRequest
- * @return boolean: Whether the token matches
+ * @param WebRequest|null $request object to use or null to use $wgRequest
+ * @return bool Whether the token matches
*/
public function matchEditTokenNoSuffix( $val, $salt = '', $request = null ) {
$sessionToken = $this->getEditToken( $salt, $request );
* Generate a new e-mail confirmation token and send a confirmation/invalidation
* mail to the user's given address.
*
- * @param string $type message to send, either "created", "changed" or "set"
- * @return Status object
+ * @param string $type Message to send, either "created", "changed" or "set"
+ * @return Status
*/
public function sendConfirmationMail( $type = 'created' ) {
global $wgLang;
* @note Call saveSettings() after calling this function to commit
* this change to the database.
*
- * @param &$expiration \mixed Accepts the expiration time
+ * @param string &$expiration Accepts the expiration time
* @return string New token
*/
protected function confirmationToken( &$expiration ) {
/**
* Get the permissions associated with a given list of groups
*
- * @param array $groups of Strings List of internal group names
- * @return Array of Strings List of permission key names for given groups combined
+ * @param array $groups Array of Strings List of internal group names
+ * @return array Array of Strings List of permission key names for given groups combined
*/
public static function getGroupPermissions( $groups ) {
global $wgGroupPermissions, $wgRevokePermissions;
* Get all the groups who have a given permission
*
* @param string $role Role to check
- * @return Array of Strings List of internal group names with the given permission
+ * @return array Array of Strings List of internal group names with the given permission
*/
public static function getGroupsWithPermission( $role ) {
global $wgGroupPermissions;
* Return the set of defined explicit groups.
* The implicit groups (by default *, 'user' and 'autoconfirmed')
* are not included, as they are defined automatically, not in the database.
- * @return Array of internal group names
+ * @return array Array of internal group names
*/
public static function getAllGroups() {
global $wgGroupPermissions, $wgRevokePermissions;
/**
* Get a list of all available permissions.
- * @return Array of permission names
+ * @return array Array of permission names
*/
public static function getAllRights() {
if ( self::$mAllRights === false ) {
/**
* Get a list of implicit groups
- * @return Array of Strings Array of internal group names
+ * @return array Array of Strings Array of internal group names
*/
public static function getImplicitGroups() {
global $wgImplicitGroups;
/**
* 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 ),
+ * @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) )
/**
* Returns an array of groups that this user can add and remove
- * @return Array array( 'add' => array( addablegroups ),
+ * @return array array( 'add' => array( addablegroups ),
* 'remove' => array( removablegroups ),
* 'add-self' => array( addablegroups to self),
* 'remove-self' => array( removable groups from self) )
/**
* Initialize user_editcount from data out of the revision table
*
- * @param $add Integer Edits to add to the count from the revision table
- * @return integer Number of edits
+ * @param int $add Edits to add to the count from the revision table
+ * @return int Number of edits
*/
protected function initEditCount( $add = 0 ) {
// Pull from a slave to be less cruel to servers
* @param string $password Plain-text password to compare
* @param string|bool $userId User ID for old-style password salt
*
- * @return boolean
+ * @return bool
*/
public static function comparePasswords( $hash, $password, $userId = false ) {
$type = substr( $hash, 0, 3 );
* Add a newuser log entry for this user.
* Before 1.19 the return value was always true.
*
- * @param string|bool $action account creation type.
+ * @param string|bool $action Account creation type.
* - String, one of the following values:
* - 'create' for an anonymous user creating an account for himself.
* This will force the action's performer to be the created user itself,
* - false will be converted to 'create' if this object is the same as
* $wgUser and to 'create2' otherwise
*
- * @param string $reason user supplied reason
+ * @param string $reason User supplied reason
*
* @return int|bool True if not $wgNewUserLog; otherwise ID of log item or 0 on failure
*/
*/
class MailAddress {
/**
- * @param string|User $address string with an email address, or a User object
- * @param string $name human-readable name if a string address is given
- * @param string $realName human-readable real name if a string address is given
+ * @param string|User $address String with an email address, or a User object
+ * @param string $name Human-readable name if a string address is given
+ * @param string $realName Human-readable real name if a string address is given
*/
function __construct( $address, $name = null, $realName = null ) {
if ( is_object( $address ) && $address instanceof User ) {
/**
* Send mail using a PEAR mailer
*
- * @param $mailer
- * @param $dest
- * @param $headers
- * @param $body
+ * @param UserMailer $mailer
+ * @param string $dest
+ * @param string $headers
+ * @param string $body
*
* @return Status
*/
* Note RFC2822 says newlines must be CRLF (\r\n)
* but php mail naively "corrects" it and requires \n for the "correction" to work
*
- * @return String
+ * @return string
*/
static function arrayToHeaderString( $headers, $endl = "\n" ) {
$strings = array();
/**
* Create a value suitable for the MessageId Header
*
- * @return String
+ * @return string
*/
static function makeMsgId() {
global $wgSMTP, $wgServer;
* array of parameters. It requires PEAR:Mail to do that.
* Otherwise it just uses the standard PHP 'mail' function.
*
- * @param $to MailAddress: recipient's email (or an array of them)
- * @param $from MailAddress: sender's email
- * @param string $subject email's subject.
- * @param string $body email's text or Array of two strings to be the text and html bodies
- * @param $replyto MailAddress: optional reply-to email (default: null).
- * @param string $contentType optional custom Content-Type (default: text/plain; charset=UTF-8)
+ * @param MailAddress $to Recipient's email (or an array of them)
+ * @param MailAddress $from Sender's email
+ * @param string $subject Email's subject.
+ * @param string $body Email's text or Array of two strings to be the text and html bodies
+ * @param MailAddress $replyto Optional reply-to email (default: null).
+ * @param string $contentType Optional custom Content-Type (default: text/plain; charset=UTF-8)
* @throws MWException
- * @return Status object
+ * @return Status
*/
public static function send( $to, $from, $subject, $body, $replyto = null, $contentType = 'text/plain; charset=UTF-8' ) {
global $wgSMTP, $wgEnotifMaxRecips, $wgAdditionalMailParams, $wgAllowHTMLEmail;
/**
* Set the mail error message in self::$mErrorString
*
- * @param $code Integer: error number
- * @param string $string error message
+ * @param int $code Error number
+ * @param string $string Error message
*/
static function errorHandler( $code, $string ) {
self::$mErrorString = preg_replace( '/^mail\(\)(\s*\[.*?\])?: /', '', $string );
/**
* Converts a string into a valid RFC 822 "phrase", such as is used for the sender name
- * @param $phrase string
+ * @param string $phrase
* @return string
*/
public static function rfc822Phrase( $phrase ) {
*
* May be deferred via the job queue.
*
- * @param $editor User object
- * @param $title Title object
- * @param $timestamp
- * @param $summary
- * @param $minorEdit
- * @param $oldid (default: false)
- * @param $pageStatus (default: 'changed')
+ * @param User $editor
+ * @param Title $title
+ * @param string $timestamp
+ * @param string $summary
+ * @param bool $minorEdit
+ * @param bool $oldid (default: false)
+ * @param string $pageStatus (default: 'changed')
*/
public function notifyOnPageChange( $editor, $title, $timestamp, $summary, $minorEdit, $oldid = false, $pageStatus = 'changed' ) {
global $wgEnotifUseJobQ, $wgEnotifWatchlist, $wgShowUpdatedMarker, $wgEnotifMinorEdits,
* Send emails corresponding to the user $editor editing the page $title.
* Also updates wl_notificationtimestamp.
*
- * @param $editor User object
- * @param $title Title object
+ * @param User $editor
+ * @param Title $title
* @param string $timestamp Edit timestamp
* @param string $summary Edit summary
- * @param $minorEdit bool
+ * @param bool $minorEdit
* @param int $oldid Revision ID
- * @param array $watchers of user IDs
+ * @param array $watchers Array of user IDs
* @param string $pageStatus
* @throws MWException
*/
}
/**
- * @param $editor User
- * @param $title Title bool
- * @param $minorEdit
+ * @param User $editor
+ * @param Title $title
+ * @param bool $minorEdit
* @return bool
*/
private function canSendUserTalkEmail( $editor, $title, $minorEdit ) {
* depending on settings.
*
* Call sendMails() to send any mails that were queued.
- * @param $user User
+ * @param User $user
*/
function compose( $user ) {
global $wgEnotifImpersonal;
* timestamp in proper timezone, etc) and sends it out.
* Returns true if the mail was sent successfully.
*
- * @param $watchingUser User object
- * @return Boolean
+ * @param User $watchingUser
+ * @return bool
* @private
*/
function sendPersonalised( $watchingUser ) {
/**
* Same as sendPersonalised but does impersonal mail suitable for bulk
* mailing. Takes an array of MailAddress objects.
- * @param $addresses array
+ * @param MailAddress[] $addresses
* @return Status|null
*/
function sendImpersonal( $addresses ) {
*
* @see newFromId()
* @see newFromName()
- * @param $db DatabaseBase: db connection
- * @param string $database database name
- * @param string $name user name
- * @param $id Integer: user ID
+ * @param DatabaseBase $db Db connection
+ * @param string $database Database name
+ * @param string $name User name
+ * @param int $id User ID
*/
private function __construct( $db, $database, $name, $id ) {
$this->db = $db;
/**
* Accessor for $this->database
*
- * @return String: database name
+ * @return string Database name
*/
public function getDBName() {
return $this->database;
/**
* Confirm the selected database name is a valid local interwiki database name.
*
- * @param string $database database name
- * @return Boolean
+ * @param string $database Database name
+ * @return bool
*/
public static function validDatabase( $database ) {
global $wgLocalDatabases;
/**
* Same as User::whoIs()
*
- * @param string $database database name
- * @param $id Integer: user ID
- * @param $ignoreInvalidDB Boolean: if true, don't check if $database is in $wgLocalDatabases
- * @return String: user name or false if the user doesn't exist
+ * @param string $database Database name
+ * @param int $id User ID
+ * @param bool $ignoreInvalidDB If true, don't check if $database is in $wgLocalDatabases
+ * @return string User name or false if the user doesn't exist
*/
public static function whoIs( $database, $id, $ignoreInvalidDB = false ) {
$user = self::newFromId( $database, $id, $ignoreInvalidDB );
/**
* Factory function; get a remote user entry by ID number.
*
- * @param string $database database name
- * @param $id Integer: user ID
- * @param $ignoreInvalidDB Boolean: if true, don't check if $database is in $wgLocalDatabases
- * @return UserRightsProxy or null if doesn't exist
+ * @param string $database Database name
+ * @param int $id User ID
+ * @param bool $ignoreInvalidDB If true, don't check if $database is in $wgLocalDatabases
+ * @return UserRightsProxy|null If doesn't exist
*/
public static function newFromId( $database, $id, $ignoreInvalidDB = false ) {
return self::newFromLookup( $database, 'user_id', intval( $id ), $ignoreInvalidDB );
/**
* Factory function; get a remote user entry by name.
*
- * @param string $database database name
- * @param string $name user name
- * @param $ignoreInvalidDB Boolean: if true, don't check if $database is in $wgLocalDatabases
- * @return UserRightsProxy or null if doesn't exist
+ * @param string $database Database name
+ * @param string $name User name
+ * @param bool $ignoreInvalidDB If true, don't check if $database is in $wgLocalDatabases
+ * @return UserRightsProxy|null If doesn't exist
*/
public static function newFromName( $database, $name, $ignoreInvalidDB = false ) {
return self::newFromLookup( $database, 'user_name', $name, $ignoreInvalidDB );
}
/**
- * @param $database
- * @param $field
- * @param $value
- * @param $ignoreInvalidDB bool
+ * @param string $database
+ * @param string $field
+ * @param string $value
+ * @param bool $ignoreInvalidDB
* @return null|UserRightsProxy
*/
private static function newFromLookup( $database, $field, $value, $ignoreInvalidDB = false ) {
* Open a database connection to work on for the requested user.
* This may be a new connection to another database for remote users.
*
- * @param $database String
- * @param $ignoreInvalidDB Boolean: if true, don't check if $database is in $wgLocalDatabases
- * @return DatabaseBase or null if invalid selection
+ * @param string $database
+ * @param bool $ignoreInvalidDB If true, don't check if $database is in $wgLocalDatabases
+ * @return DatabaseBase|null If invalid selection
*/
public static function getDB( $database, $ignoreInvalidDB = false ) {
global $wgDBname;
/**
* Same as User::getName()
*
- * @return String
+ * @return string
*/
public function getName() {
return $this->name . '@' . $this->database;
/**
* Same as User::getUserPage()
*
- * @return Title object
+ * @return Title
*/
public function getUserPage() {
return Title::makeTitle( NS_USER, $this->getName() );
/**
* Replaces User::addUserGroup()
+ * @param string $group
*/
function addGroup( $group ) {
$this->db->insert( 'user_groups',
/**
* Replaces User::removeUserGroup()
+ * @param string $group
*/
function removeGroup( $group ) {
$this->db->delete( 'user_groups',
/**
* Replaces User::setOption()
+ * @param string $option
+ * @param mixed $value
*/
public function setOption( $option, $value ) {
$this->newOptions[$option] = $value;
/**
* Create a WatchedItem object with the given user and title
* @since 1.22 $checkRights parameter added
- * @param $user User: the user to use for (un)watching
- * @param $title Title: the title we're going to (un)watch
- * @param $checkRights int: Whether to check the 'viewmywatchlist' and 'editmywatchlist' rights.
+ * @param User $user The user to use for (un)watching
+ * @param Title $title The title we're going to (un)watch
+ * @param int $checkRights Whether to check the 'viewmywatchlist' and 'editmywatchlist' rights.
* Pass either WatchedItem::IGNORE_USER_RIGHTS or WatchedItem::CHECK_USER_RIGHTS.
- * @return WatchedItem object
+ * @return WatchedItem
*/
public static function fromUserTitle( $user, $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
$wl = new WatchedItem;
/**
* Check permissions
- * @param $what string: 'viewmywatchlist' or 'editmywatchlist'
+ * @param string $what 'viewmywatchlist' or 'editmywatchlist'
*/
private function isAllowed( $what ) {
return !$this->mCheckRights || $this->mUser->isAllowed( $what );
/**
* Get the notification timestamp of this entry.
*
- * @return false|null|string: false if the page is not watched, the value of
- * the wl_notificationtimestamp field otherwise
+ * @return bool|null|string False if the page is not watched, the value of
+ * the wl_notificationtimestamp field otherwise
*/
public function getNotificationTimestamp() {
if ( !$this->isAllowed( 'viewmywatchlist' ) ) {
/**
* Reset the notification timestamp of this entry
*
- * @param $force Whether to force the write query to be executed even if the
- * page is not watched or the notification timestamp is already NULL.
+ * @param bool $force Whether to force the write query to be executed even if the
+ * page is not watched or the notification timestamp is already NULL.
* @param int $oldid The revision id being viewed. If not given or 0, latest revision is assumed.
*/
public function resetNotificationTimestamp( $force = '', $oldid = 0 ) {
}
/**
- * Given a title and user (assumes the object is setup), add the watch to the
- * database.
+ * Given a title and user (assumes the object is setup), add the watch to the database.
* @return bool
*/
public function addWatch() {
* Check if the given title already is watched by the user, and if so
* add watches on a new title. To be used for page renames and such.
*
- * @param $ot Title: page title to duplicate entries from, if present
- * @param $nt Title: page title to add watches on
+ * @param Title $ot Page title to duplicate entries from, if present
+ * @param Title $nt Page title to add watches on
*/
public static function duplicateEntries( $ot, $nt ) {
WatchedItem::doDuplicateEntries( $ot->getSubjectPage(), $nt->getSubjectPage() );
/**
* Handle duplicate entries. Backend for duplicateEntries().
*
- * @param $ot Title
- * @param $nt Title
+ * @param Title $ot
+ * @param Title $nt
*
* @return bool
*/
/**
* Cached client IP address
- * @var String
+ * @var string
*/
private $ip;
* will return an empty array if it determines that the URL is
* inside a rewrite path.
*
- * @return Array: Any query arguments found in path matches.
+ * @return array Any query arguments found in path matches.
*/
public static function getPathInfo( $want = 'all' ) {
global $wgUsePathInfo;
* URL rewriting function; tries to extract page title and,
* optionally, one other fixed parameter value from a URL path.
*
- * @param string $path the URL path given from the client
- * @param array $bases one or more URLs, optionally with $1 at the end
- * @param string $key if provided, the matching key in $bases will be
- * passed on as the value of this URL parameter
- * @return array of URL variables to interpolate; empty if no match
+ * @param string $path The URL path given from the client
+ * @param array $bases One or more URLs, optionally with $1 at the end
+ * @param string $key If provided, the matching key in $bases will be
+ * passed on as the value of this URL parameter
+ * @return array Array of URL variables to interpolate; empty if no match
*/
static function extractTitle( $path, $bases, $key = false ) {
foreach ( (array)$bases as $keyValue => $base ) {
* @param bool $topLevel Specifies if the array passed is from the top
* level of the source. In PHP5 magic_quotes only escapes the first level
* of keys that belong to an array.
- * @return array the original array
+ * @return array The original array
* @see http://www.php.net/manual/en/function.get-magic-quotes-gpc.php#49612
*/
private function &fix_magic_quotes( &$arr, $topLevel = true ) {
/**
* Recursively normalizes UTF-8 strings in the given array.
*
- * @param $data string|array
- * @return array|string cleaned-up version of the given
+ * @param string|array $data
+ * @return array|string Cleaned-up version of the given
* @private
*/
function normalizeUnicode( $data ) {
/**
* Fetch a value from the given array or return $default if it's not set.
*
- * @param $arr Array
- * @param $name String
- * @param $default Mixed
+ * @param array $arr
+ * @param string $name
+ * @param mixed $default
* @return mixed
*/
private function getGPCVal( $arr, $name, $default ) {
* non-freeform text inputs (e.g. predefined internal text keys
* selected by a drop-down menu). For freeform input, see getText().
*
- * @param $name String
- * @param string $default optional default (or NULL)
- * @return String
+ * @param string $name
+ * @param string $default Optional default (or null)
+ * @return string
*/
public function getVal( $name, $default = null ) {
$val = $this->getGPCVal( $this->data, $name, $default );
/**
* Set an arbitrary value into our get/post data.
*
- * @param string $key key name to use
- * @param $value Mixed: value to set
- * @return Mixed: old value if one was present, null otherwise
+ * @param string $key Key name to use
+ * @param mixed $value Value to set
+ * @return mixed Old value if one was present, null otherwise
*/
public function setVal( $key, $value ) {
$ret = isset( $this->data[$key] ) ? $this->data[$key] : null;
/**
* Unset an arbitrary value from our get/post data.
*
- * @param string $key key name to use
- * @return Mixed: old value if one was present, null otherwise
+ * @param string $key Key name to use
+ * @return mixed Old value if one was present, null otherwise
*/
public function unsetVal( $key ) {
if ( !isset( $this->data[$key] ) ) {
/**
* Fetch an array from the input or return $default if it's not set.
* If source was scalar, will return an array with a single element.
- * If no source and no default, returns NULL.
+ * If no source and no default, returns null.
*
- * @param $name String
- * @param array $default optional default (or NULL)
- * @return Array
+ * @param string $name
+ * @param array $default Optional default (or null)
+ * @return array
*/
public function getArray( $name, $default = null ) {
$val = $this->getGPCVal( $this->data, $name, $default );
/**
* Fetch an array of integers, or return $default if it's not set.
* If source was scalar, will return an array with a single element.
- * If no source and no default, returns NULL.
+ * If no source and no default, returns null.
* If an array is returned, contents are guaranteed to be integers.
*
- * @param $name String
- * @param array $default option default (or NULL)
- * @return Array of ints
+ * @param string $name
+ * @param array $default Option default (or null)
+ * @return array Array of ints
*/
public function getIntArray( $name, $default = null ) {
$val = $this->getArray( $name, $default );
* Guaranteed to return an integer; non-numeric input will typically
* return 0.
*
- * @param $name String
- * @param $default Integer
- * @return Integer
+ * @param string $name
+ * @param int $default
+ * @return int
*/
public function getInt( $name, $default = 0 ) {
return intval( $this->getVal( $name, $default ) );
* Guaranteed to return an integer or null; non-numeric input will
* typically return null.
*
- * @param $name String
- * @return Integer
+ * @param string $name
+ * @return int|null
*/
public function getIntOrNull( $name ) {
$val = $this->getVal( $name );
* return 0.
*
* @since 1.23
- * @param $name String
- * @param $default Float
- * @return Float
+ * @param string $name
+ * @param float $default
+ * @return float
*/
public function getFloat( $name, $default = 0 ) {
return floatval( $this->getVal( $name, $default ) );
* Guaranteed to return true or false, with normal PHP semantics for
* boolean interpretation of strings.
*
- * @param $name String
- * @param $default Boolean
- * @return Boolean
+ * @param string $name
+ * @param bool $default
+ * @return bool
*/
public function getBool( $name, $default = false ) {
return (bool)$this->getVal( $name, $default );
* Unlike getBool, the string "false" will result in boolean false, which is
* useful when interpreting information sent from JavaScript.
*
- * @param $name String
- * @param $default Boolean
- * @return Boolean
+ * @param string $name
+ * @param bool $default
+ * @return bool
*/
public function getFuzzyBool( $name, $default = false ) {
return $this->getBool( $name, $default ) && strcasecmp( $this->getVal( $name ), 'false' ) !== 0;
* value is (even "0"). Return false if the named value is not set.
* Example use is checking for the presence of check boxes in forms.
*
- * @param $name String
- * @return Boolean
+ * @param string $name
+ * @return bool
*/
public function getCheck( $name ) {
# Checkboxes and buttons are only present when clicked
* user-supplied freeform text input (for which input transformations may
* be required - e.g. Esperanto x-coding).
*
- * @param $name String
- * @param string $default optional
- * @return String
+ * @param string $name
+ * @param string $default Optional
+ * @return string
*/
public function getText( $name, $default = '' ) {
global $wgContLang;
/**
* Returns the names of all input values excluding those in $exclude.
*
- * @param $exclude Array
+ * @param array $exclude
* @return array
*/
public function getValueNames( $exclude = array() ) {
* Get the values passed in the query string.
* No transformation is performed on the values.
*
- * @return Array
+ * @return array
*/
public function getQueryValues() {
return $_GET;
* Return the contents of the Query with no decoding. Use when you need to
* know exactly what was sent, e.g. for an OAuth signature over the elements.
*
- * @return String
+ * @return string
*/
public function getRawQueryString() {
return $_SERVER['QUERY_STRING'];
* Return the contents of the POST with no decoding. Use when you need to
* know exactly what was sent, e.g. for an OAuth signature over the elements.
*
- * @return String
+ * @return string
*/
public function getRawPostString() {
if ( !$this->wasPosted() ) {
* disallow reading the stream more than once. As stated in the php docs, this
* does not work with enctype="multipart/form-data".
*
- * @return String
+ * @return string
*/
public function getRawInput() {
static $input = false;
/**
* Get the HTTP method used for this request.
*
- * @return String
+ * @return string
*/
public function getMethod() {
return isset( $_SERVER['REQUEST_METHOD'] ) ? $_SERVER['REQUEST_METHOD'] : 'GET';
* Note that values retrieved by the object may come from the
* GET URL etc even on a POST request.
*
- * @return Boolean
+ * @return bool
*/
public function wasPosted() {
return $this->getMethod() == 'POST';
* during the current request (in which case the cookie will
* be sent back to the client at the end of the script run).
*
- * @return Boolean
+ * @return bool
*/
public function checkSessionCookie() {
return isset( $_COOKIE[session_name()] );
/**
* Get a cookie from the $_COOKIE jar
*
- * @param string $key the name of the cookie
- * @param string $prefix a prefix to use for the cookie name, if not $wgCookiePrefix
- * @param $default Mixed: what to return if the value isn't found
- * @return Mixed: cookie value or $default if the cookie not set
+ * @param string $key The name of the cookie
+ * @param string $prefix A prefix to use for the cookie name, if not $wgCookiePrefix
+ * @param mixed $default What to return if the value isn't found
+ * @return mixed Cookie value or $default if the cookie not set
*/
public function getCookie( $key, $prefix = null, $default = null ) {
if ( $prefix === null ) {
* This will be suitable for use as a relative link in HTML output.
*
* @throws MWException
- * @return String
+ * @return string
*/
public function getRequestURL() {
if ( isset( $_SERVER['REQUEST_URI'] ) && strlen( $_SERVER['REQUEST_URI'] ) ) {
* If $wgServer is protocol-relative, this will return a fully
* qualified URL with the protocol that was used for this request.
*
- * @return String
+ * @return string
*/
public function getFullRequestURL() {
return wfExpandUrl( $this->getRequestURL(), PROTO_CURRENT );
* Take an arbitrary query and rewrite the present URL to include it
* @param string $query query string fragment; do not include initial '?'
*
- * @return String
+ * @return string
*/
public function appendQuery( $query ) {
return $this->appendQueryArray( wfCgiToArray( $query ) );
* HTML-safe version of appendQuery().
* @deprecated: Deprecated in 1.20, warnings in 1.21, remove in 1.22.
*
- * @param string $query query string fragment; do not include initial '?'
- * @return String
+ * @param string $query Query string fragment; do not include initial '?'
+ * @return string
*/
public function escapeAppendQuery( $query ) {
return htmlspecialchars( $this->appendQuery( $query ) );
}
/**
- * @param $key
- * @param $value
- * @param $onlyquery bool
- * @return String
+ * @param string $key
+ * @param string $value
+ * @param bool $onlyquery
+ * @return string
*/
public function appendQueryValue( $key, $value, $onlyquery = false ) {
return $this->appendQueryArray( array( $key => $value ), $onlyquery );
/**
* Appends or replaces value of query variables.
*
- * @param array $array of values to replace/add to query
- * @param bool $onlyquery whether to only return the query string and not
- * the complete URL
- * @return String
+ * @param array $array Array of values to replace/add to query
+ * @param bool $onlyquery Whether to only return the query string and not the complete URL
+ * @return string
*/
public function appendQueryArray( $array, $onlyquery = false ) {
global $wgTitle;
* defaults if not given. The limit must be positive and is capped at 5000.
* Offset must be positive but is not capped.
*
- * @param $deflimit Integer: limit to use if no input and the user hasn't set the option.
- * @param string $optionname to specify an option other than rclimit to pull from.
- * @return array first element is limit, second is offset
+ * @param int $deflimit Limit to use if no input and the user hasn't set the option.
+ * @param string $optionname To specify an option other than rclimit to pull from.
+ * @return array First element is limit, second is offset
*/
public function getLimitOffset( $deflimit = 50, $optionname = 'rclimit' ) {
global $wgUser;
/**
* Return the path to the temporary file where PHP has stored the upload.
*
- * @param $key String:
- * @return string or NULL if no such file.
+ * @param string $key
+ * @return string|null string or null if no such file.
*/
public function getFileTempname( $key ) {
$file = new WebRequestUpload( $this, $key );
/**
* Return the upload error or 0
*
- * @param $key String:
- * @return integer
+ * @param string $key
+ * @return int
*/
public function getUploadError( $key ) {
$file = new WebRequestUpload( $this, $key );
*
* Other than this the name is not verified for being a safe filename.
*
- * @param $key String:
- * @return string or NULL if no such file.
+ * @param string $key
+ * @return string|null string or null if no such file.
*/
public function getFileName( $key ) {
$file = new WebRequestUpload( $this, $key );
/**
* Return a WebRequestUpload object corresponding to the key
*
- * @param $key string
+ * @param string $key
* @return WebRequestUpload
*/
public function getUpload( $key ) {
/**
* Get an array containing all request headers
*
- * @return Array mapping header name to its value
+ * @return array Mapping header name to its value
*/
public function getAllHeaders() {
$this->initHeaders();
/**
* Get data from $_SESSION
*
- * @param string $key name of key in $_SESSION
- * @return Mixed
+ * @param string $key Name of key in $_SESSION
+ * @return mixed
*/
public function getSessionData( $key ) {
if ( !isset( $_SESSION[$key] ) ) {
/**
* Set session data
*
- * @param string $key name of key in $_SESSION
- * @param $data Mixed
+ * @param string $key Name of key in $_SESSION
+ * @param mixed $data
*/
public function setSessionData( $key, $data ) {
$_SESSION[$key] = $data;
* message or redirect to a safer URL. Returns true if the URL is OK, and
* false if an error message has been shown and the request should be aborted.
*
- * @param $extWhitelist array
+ * @param array $extWhitelist
* @throws HttpError
* @return bool
*/
* Attempt to redirect to a URL with a QUERY_STRING that's not dangerous in
* IE 6. Returns true if it was successful, false otherwise.
*
- * @param $url string
+ * @param string $url
* @return bool
*/
protected function doSecurityRedirect( $url ) {
* @since 1.19
*
* @throws MWException
- * @return String
+ * @return string
*/
protected function getRawIP() {
if ( !isset( $_SERVER['REMOTE_ADDR'] ) ) {
/**
* Constructor. Should only be called by WebRequest
*
- * @param $request WebRequest The associated request
+ * @param WebRequest $request The associated request
* @param string $key Key in $_FILES array (name of form field)
*/
public function __construct( $request, $key ) {
/**
* Return the original filename of the uploaded file
*
- * @return mixed Filename or null if non-existent
+ * @return string|null Filename or null if non-existent
*/
public function getName() {
if ( !$this->exists() ) {
/**
* Return the path to the temporary file
*
- * @return mixed Path or null if non-existent
+ * @return string|null Path or null if non-existent
*/
public function getTempName() {
if ( !$this->exists() ) {
/**
* @param array $data of *non*-urlencoded key => value pairs, the
* fake GET/POST values
- * @param bool $wasPosted whether to treat the data as POST
- * @param $session Mixed: session array or null
+ * @param bool $wasPosted Whether to treat the data as POST
+ * @param array|null $session Session array or null
* @param string $protocol 'http' or 'https'
* @throws MWException
*/
}
/**
- * @param $method string
+ * @param string $method
* @throws MWException
*/
private function notImplemented( $method ) {
}
/**
- * @param $name string
- * @param $default string
+ * @param string $name
+ * @param string $default
* @return string
*/
public function getText( $name, $default = '' ) {
}
/**
- * @return Array
+ * @return array
*/
public function getValues() {
return $this->data;
}
/**
- * @param $name string
- * @param $val string
+ * @param string $name
+ * @param string $val
*/
public function setHeader( $name, $val ) {
$name = strtoupper( $name );
}
/**
- * @param $key
- * @return mixed
+ * @param string $key
+ * @return array|null
*/
public function getSessionData( $key ) {
if ( isset( $this->session[$key] ) ) {
}
/**
- * @param $key
- * @param $data
+ * @param string $key
+ * @param array $data
*/
public function setSessionData( $key, $data ) {
$this->session[$key] = $data;
}
/**
- * @return array|Mixed|null
+ * @return array|mixed|null
*/
public function getSessionArray() {
return $this->session;
/**
* FauxRequests shouldn't depend on raw request data (but that could be implemented here)
- * @return String
+ * @return string
*/
public function getRawQueryString() {
return '';
/**
* FauxRequests shouldn't depend on raw request data (but that could be implemented here)
- * @return String
+ * @return string
*/
public function getRawPostString() {
return '';
/**
* FauxRequests shouldn't depend on raw request data (but that could be implemented here)
- * @return String
+ * @return string
*/
public function getRawInput() {
return '';
private $context;
/**
- * @param $x null|WebRequest
+ * @param null|WebRequest $x
* @return WebRequest
*/
public function request( WebRequest $x = null ) {
}
/**
- * @param $x null|OutputPage
+ * @param null|OutputPage $x
* @return OutputPage
*/
public function output( OutputPage $x = null ) {
/**
* Parse the request to get the Title object
*
- * @return Title object to be $wgTitle
+ * @return Title Title object to be $wgTitle
*/
private function parseTitle() {
global $wgContLang;
/**
* Returns the name of the action that will be executed.
*
- * @return string: action
+ * @return string Action
*/
public function getAction() {
static $action = null;
* Initialize the main Article object for "standard" actions (view, etc)
* Create an Article object for the page, following redirects if needed.
*
- * @return mixed an Article, or a string to redirect to another URL
+ * @return mixed An Article, or a string to redirect to another URL
*/
private function initializeArticle() {
global $wgDisableHardRedirects;
/**
* Perform one of the "standard" actions
*
- * @param $page Page
- * @param $requestTitle The original title, before any redirects were applied
+ * @param Page $page
+ * @param Title $requestTitle The original title, before any redirects were applied
*/
private function performAction( Page $page, Title $requestTitle ) {
global $wgUseSquid, $wgSquidMaxage;
/**
* Get a WikiReference object for $wikiID
*
- * @param string $wikiID wiki'd id (generally database name)
- * @return WikiReference object or null if the wiki was not found
+ * @param string $wikiID Wiki'd id (generally database name)
+ * @return WikiReference|null WikiReference object or null if the wiki was not found
*/
public static function getWiki( $wikiID ) {
global $wgConf;
* Convenience to get the wiki's display name
*
* @todo We can give more info than just the wiki id!
- * @param string $wikiID wiki'd id (generally database name)
+ * @param string $wikiID Wiki'd id (generally database name)
* @return string|int Wiki's name or $wiki_id if the wiki was not found
*/
public static function getWikiName( $wikiID ) {
/**
* Convenience to get a link to a user page on a foreign wiki
*
- * @param string $wikiID wiki'd id (generally database name)
- * @param string $user user name (must be normalised before calling this function!)
- * @param string $text link's text; optional, default to "User:$user"
- * @return String: HTML link or false if the wiki was not found
+ * @param string $wikiID Wiki'd id (generally database name)
+ * @param string $user User name (must be normalised before calling this function!)
+ * @param string $text Link's text; optional, default to "User:$user"
+ * @return string HTML link or false if the wiki was not found
*/
public static function foreignUserLink( $wikiID, $user, $text = null ) {
return self::makeForeignLink( $wikiID, "User:$user", $text );
/**
* Convenience to get a link to a page on a foreign wiki
*
- * @param string $wikiID wiki'd id (generally database name)
- * @param string $page page name (must be normalised before calling this function!)
- * @param string $text link's text; optional, default to $page
- * @return String: HTML link or false if the wiki was not found
+ * @param string $wikiID Wiki'd id (generally database name)
+ * @param string $page Page name (must be normalised before calling this function!)
+ * @param string $text Link's text; optional, default to $page
+ * @return string HTML link or false if the wiki was not found
*/
public static function makeForeignLink( $wikiID, $page, $text = null ) {
if ( !$text ) {
/**
* Convenience to get a url to a page on a foreign wiki
*
- * @param string $wikiID wiki'd id (generally database name)
- * @param string $page page name (must be normalised before calling this function!)
- * @return String: URL or false if the wiki was not found
+ * @param string $wikiID Wiki'd id (generally database name)
+ * @param string $page Page name (must be normalised before calling this function!)
+ * @return string|bool URL or false if the wiki was not found
*/
public static function getForeignURL( $wikiID, $page ) {
$wiki = WikiMap::getWiki( $wikiID );
private $mPath; ///< path, '/wiki/$1'
/**
- * @param $major string
- * @param $minor string
- * @param $canonicalServer string
- * @param $path string
- * @param $server null|string
+ * @param string $major
+ * @param string $minor
+ * @param string $canonicalServer
+ * @param string $path
+ * @param null|string $server
*/
public function __construct( $major, $minor, $canonicalServer, $path, $server = null ) {
$this->mMajor = $major;
* Get the the URL in a way to de displayed to the user
* More or less Wikimedia specific
*
- * @return String
+ * @return string
*/
public function getDisplayName() {
$url = $this->getUrl( '' );
* Helper function for getUrl()
*
* @todo FIXME: This may be generalized...
- * @param string $page page name (must be normalised before calling this function!)
- * @return String: Url fragment
+ * @param string $page Page name (must be normalised before calling this function!)
+ * @return string Url fragment
*/
private function getLocalUrl( $page ) {
return str_replace( '$1', wfUrlEncode( str_replace( ' ', '_', $page ) ), $this->mPath );
/**
* Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki
*
- * @param string $page page name (must be normalised before calling this function!)
- * @return String: Url
+ * @param string $page Page name (must be normalised before calling this function!)
+ * @return string Url
*/
public function getCanonicalUrl( $page ) {
return $this->mCanonicalServer . $this->getLocalUrl( $page );
/**
* Alias for getCanonicalUrl(), for backwards compatibility.
- * @param $page string
- * @return String
+ * @param string $page
+ * @return string
*/
public function getUrl( $page ) {
return $this->getCanonicalUrl( $page );
* Get a URL based on $wgServer, like Title::getFullURL() would produce
* when called locally on the wiki.
*
- * @param string $page page name (must be normalized before calling this function!)
- * @return String: URL
+ * @param string $page Page name (must be normalized before calling this function!)
+ * @return string URL
*/
public function getFullUrl( $page ) {
return $this->mServer .
protected $mId = null;
/**
- * @var int; one of the READ_* constants
+ * @var int One of the READ_* constants
*/
protected $mDataLoadedFrom = self::READ_NONE;
protected $mLastRevision = null;
/**
- * @var string; timestamp of the current revision or empty string if not loaded
+ * @var string Timestamp of the current revision or empty string if not loaded
*/
protected $mTimestamp = '';
/**
* Constructor and clear the article
- * @param $title Title Reference to a Title object.
+ * @param Title $title Reference to a Title object.
*/
public function __construct( Title $title ) {
$this->mTitle = $title;
/**
* Constructor from a page id
*
- * @param int $id article ID to load
- * @param string|int $from one of the following values:
+ * @param int $id Article ID to load
+ * @param string|int $from One of the following values:
* - "fromdb" or WikiPage::READ_NORMAL to select from a slave database
* - "fromdbmaster" or WikiPage::READ_LATEST to select from the master database
*
* Constructor from a database row
*
* @since 1.20
- * @param $row object: database row containing at least fields returned
- * by selectFields().
- * @param string|int $from source of $data:
+ * @param object $row Database row containing at least fields returned by selectFields().
+ * @param string|int $from Source of $data:
* - "fromdb" or WikiPage::READ_NORMAL: from a slave DB
* - "fromdbmaster" or WikiPage::READ_LATEST: from the master DB
* - "forupdate" or WikiPage::READ_LOCKING: from the master DB using SELECT FOR UPDATE
/**
* Convert 'fromdb', 'fromdbmaster' and 'forupdate' to READ_* constants.
*
- * @param $type object|string|int
+ * @param object|string|int $type
* @return mixed
*/
private static function convertSelectType( $type ) {
*
* @todo Move this UI stuff somewhere else
*
- * @return Array
+ * @return array
*/
public function getActionOverrides() {
$content_handler = $this->getContentHandler();
/**
* Get the title object of the article
- * @return Title object of this page
+ * @return Title Title object of this page
*/
public function getTitle() {
return $this->mTitle;
/**
* Fetch a page record with the given conditions
- * @param $dbr DatabaseBase object
- * @param $conditions Array
- * @param $options Array
- * @return mixed Database result resource, or false on failure
+ * @param DatabaseBase $dbr
+ * @param array $conditions
+ * @param array $options
+ * @return object|bool Database result resource, or false on failure
*/
protected function pageData( $dbr, $conditions, $options = array() ) {
$fields = self::selectFields();
* Fetch a page record matching the Title object's namespace and title
* using a sanitized title string
*
- * @param $dbr DatabaseBase object
- * @param $title Title object
- * @param $options Array
- * @return mixed Database result resource, or false on failure
+ * @param DatabaseBase $dbr
+ * @param Title $title
+ * @param array $options
+ * @return object|bool Database result resource, or false on failure
*/
public function pageDataFromTitle( $dbr, $title, $options = array() ) {
return $this->pageData( $dbr, array(
/**
* Fetch a page record matching the requested ID
*
- * @param $dbr DatabaseBase
- * @param $id Integer
- * @param $options Array
- * @return mixed Database result resource, or false on failure
+ * @param DatabaseBase $dbr
+ * @param int $id
+ * @param array $options
+ * @return object|bool Database result resource, or false on failure
*/
public function pageDataFromId( $dbr, $id, $options = array() ) {
return $this->pageData( $dbr, array( 'page_id' => $id ), $options );
* Set the general counter, title etc data loaded from
* some source.
*
- * @param $from object|string|int One of the following:
+ * @param object|string|int $from One of the following:
* - A DB query result object
* - "fromdb" or WikiPage::READ_NORMAL to get from a slave DB
* - "fromdbmaster" or WikiPage::READ_LATEST to get from the master DB
* Load the object from a database row
*
* @since 1.20
- * @param $data object: database row containing at least fields returned
- * by selectFields()
+ * @param object $data Database row containing at least fields returned by selectFields()
* @param string|int $from One of the following:
* - "fromdb" or WikiPage::READ_NORMAL if the data comes from a slave DB
* - "fromdbmaster" or WikiPage::READ_LATEST if the data comes from the master DB
* Will use the revisions actual content model if the page exists,
* and the page's default if the page doesn't exist yet.
*
- * @return String
+ * @return string
*
* @since 1.21
*/
/**
* Loads page_touched and returns a value indicating if it should be used
- * @return boolean true if not a redirect
+ * @return bool true if not a redirect
*/
public function checkTouched() {
if ( !$this->mDataLoaded ) {
/**
* Get the page_touched field
- * @return string containing GMT timestamp
+ * @return string Containing GMT timestamp
*/
public function getTouched() {
if ( !$this->mDataLoaded ) {
/**
* Get the page_links_updated field
- * @return string|null containing GMT timestamp
+ * @return string|null Containing GMT timestamp
*/
public function getLinksTimestamp() {
if ( !$this->mDataLoaded ) {
/**
* Get the page_latest field
- * @return integer rev_id of current revision
+ * @return int rev_id of current revision
*/
public function getLatest() {
if ( !$this->mDataLoaded ) {
/**
* Set the latest revision
+ * @param Revision $revision
*/
protected function setLastEdit( Revision $revision ) {
$this->mLastRevision = $revision;
/**
* Get the content of the current revision. No side-effects...
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to $wgUser
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience int One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to $wgUser
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @return Content|null The content of the current revision
*
* @since 1.21
/**
* Get the text of the current revision. No side-effects...
*
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
- * @return String|false The text of the current revision
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
+ * @return string|bool The text of the current revision
* @deprecated since 1.21, getContent() should be used instead.
*/
public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) { // @todo deprecated, replace usage!
/**
* Get the text of the current revision. No side-effects...
*
- * @return String|bool The text of the current revision. False on failure
+ * @return string|bool The text of the current revision. False on failure
* @deprecated since 1.21, getContent() should be used instead.
*/
public function getRawText() {
}
/**
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @return int user ID for the user that made the last article revision
*/
public function getUser( $audience = Revision::FOR_PUBLIC, User $user = null ) {
/**
* Get the User object of the user who created the page
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @return User|null
*/
public function getCreator( $audience = Revision::FOR_PUBLIC, User $user = null ) {
}
/**
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @return string username of the user that made the last article revision
*/
public function getUserText( $audience = Revision::FOR_PUBLIC, User $user = null ) {
}
/**
- * @param $audience Integer: one of:
- * Revision::FOR_PUBLIC to be displayed to all users
- * Revision::FOR_THIS_USER to be displayed to the given user
- * Revision::RAW get the text regardless of permissions
- * @param $user User object to check for, only if FOR_THIS_USER is passed
- * to the $audience parameter
+ * @param int $audience One of:
+ * Revision::FOR_PUBLIC to be displayed to all users
+ * Revision::FOR_THIS_USER to be displayed to the given user
+ * Revision::RAW get the text regardless of permissions
+ * @param User $user User object to check for, only if FOR_THIS_USER is passed
+ * to the $audience parameter
* @return string Comment stored for the last article revision
*/
public function getComment( $audience = Revision::FOR_PUBLIC, User $user = null ) {
/**
* Returns true if last revision was marked as "minor edit"
*
- * @return boolean Minor edit indicator for the last article revision.
+ * @return bool Minor edit indicator for the last article revision.
*/
public function getMinorEdit() {
$this->loadLastEdit();
/**
* Set the cached timestamp for the last time the page changed.
* This is only used to help handle slave lag by comparing to page_touched.
- * @param $timestamp string
+ * @param string $timestamp
* @return void
*/
public function setCachedLastEditTime( $timestamp ) {
* Determine whether a page would be suitable for being counted as an
* article in the site_stats table based on the title & its content
*
- * @param $editInfo Object|bool (false): object returned by prepareTextForEdit(),
- * if false, the current database state will be used
- * @return Boolean
+ * @param object|bool $editInfo (false): object returned by prepareTextForEdit(),
+ * if false, the current database state will be used
+ * @return bool
*/
public function isCountable( $editInfo = false ) {
global $wgArticleCountMethod;
*
* The target will be fetched from the redirect table if possible.
* If this page doesn't have an entry there, call insertRedirect()
- * @return Title|mixed object, or null if this page is not a redirect
+ * @return Title|null Title object, or null if this page is not a redirect
*/
public function getRedirectTarget() {
if ( !$this->mTitle->isRedirect() ) {
* Insert an entry for this page into the redirect table.
*
* Don't call this function directly unless you know what you're doing.
- * @return Title object or null if not a redirect
+ * @return Title|null Title object or null if not a redirect
*/
public function insertRedirect() {
// recurse through to only get the final target
/**
* Insert or update the redirect table entry for this page to indicate
* it redirects to $rt .
- * @param $rt Title redirect target
+ * @param Title $rt Redirect target
*/
public function insertRedirectEntry( $rt ) {
$dbw = wfGetDB( DB_MASTER );
/**
* Get the Title object or URL this page redirects to
*
- * @return mixed false, Title of in-wiki target, or string with URL
+ * @return bool|Title|string false, Title of in-wiki target, or string with URL
*/
public function followRedirect() {
return $this->getRedirectURL( $this->getRedirectTarget() );
* Get the Title object or URL to use for a redirect. We use Title
* objects for same-wiki, non-special redirects and URLs for everything
* else.
- * @param $rt Title Redirect target
- * @return mixed false, Title object of local target, or string with URL
+ * @param Title $rt Redirect target
+ * @return bool|Title|string false, Title object of local target, or string with URL
*/
public function getRedirectURL( $rt ) {
if ( !$rt ) {
/**
* Get the last N authors
* @param int $num Number of revisions to get
- * @param int|string $revLatest the latest rev_id, selected from the master (optional)
+ * @param int|string $revLatest The latest rev_id, selected from the master (optional)
* @return array Array of authors, duplicates not removed
*/
public function getLastNAuthors( $num, $revLatest = 0 ) {
/**
* Should the parser cache be used?
*
- * @param $parserOptions ParserOptions to check
- * @param $oldid int
- * @return boolean
+ * @param ParserOptions $parserOptions ParserOptions to check
+ * @param int $oldid
+ * @return bool
*/
public function isParserCacheUsed( ParserOptions $parserOptions, $oldid ) {
global $wgEnableParserCache;
* @since 1.19
* @param ParserOptions $parserOptions ParserOptions to use for the parse operation
* @param null|int $oldid Revision ID to get the text from, passing null or 0 will
- * get the current revision (default value)
+ * get the current revision (default value)
*
- * @return ParserOutput or false if the revision was not found
+ * @return ParserOutput|bool ParserOutput or false if the revision was not found
*/
public function getParserOutput( ParserOptions $parserOptions, $oldid = null ) {
wfProfileIn( __METHOD__ );
* or else the record will be left in a funky state.
* Best if all done inside a transaction.
*
- * @param $dbw DatabaseBase
+ * @param DatabaseBase $dbw
* @return int The newly created page_id key, or false if the title already existed
*/
public function insertOn( $dbw ) {
/**
* Update the page record to point to a newly saved revision.
*
- * @param $dbw DatabaseBase: object
- * @param $revision Revision: For ID number, and text used to set
- * length and redirect status fields
- * @param $lastRevision Integer: if given, will not overwrite the page field
- * when different from the currently set value.
- * Giving 0 indicates the new page flag should be set
- * on.
- * @param $lastRevIsRedirect Boolean: if given, will optimize adding and
- * removing rows in redirect table.
+ * @param DatabaseBase $dbw
+ * @param Revision $revision For ID number, and text used to set
+ * length and redirect status fields
+ * @param int $lastRevision If given, will not overwrite the page field
+ * when different from the currently set value.
+ * Giving 0 indicates the new page flag should be set on.
+ * @param bool $lastRevIsRedirect If given, will optimize adding and
+ * removing rows in redirect table.
* @return bool true on success, false on failure
* @private
*/
/**
* Add row to the redirect table if this is a redirect, remove otherwise.
*
- * @param $dbw DatabaseBase
- * @param $redirectTitle Title object pointing to the redirect target,
- * or NULL if this is not a redirect
- * @param $lastRevIsRedirect null|bool If given, will optimize adding and
- * removing rows in redirect table.
+ * @param DatabaseBase $dbw
+ * @param Title $redirectTitle Title object pointing to the redirect target,
+ * or NULL if this is not a redirect
+ * @param null|bool $lastRevIsRedirect If given, will optimize adding and
+ * removing rows in redirect table.
* @return bool true on success, false on failure
* @private
*/
* If the given revision is newer than the currently set page_latest,
* update the page record. Otherwise, do nothing.
*
- * @param $dbw DatabaseBase object
- * @param $revision Revision object
- * @return mixed
+ * @param DatabaseBase $dbw
+ * @param Revision $revision
+ * @return bool
*/
public function updateIfNewerOn( $dbw, $revision ) {
wfProfileIn( __METHOD__ );
* Get the content that needs to be saved in order to undo all revisions
* between $undo and $undoafter. Revisions must belong to the same page,
* must exist and must not be deleted
- * @param $undo Revision
- * @param $undoafter Revision Must be an earlier revision than $undo
+ * @param Revision $undo
+ * @param Revision $undoafter Must be an earlier revision than $undo
* @return mixed string on success, false on failure
* @since 1.21
* Before we had the Content object, this was done in getUndoText
* Get the text that needs to be saved in order to undo all revisions
* between $undo and $undoafter. Revisions must belong to the same page,
* must exist and must not be deleted
- * @param $undo Revision
- * @param $undoafter Revision Must be an earlier revision than $undo
- * @return mixed string on success, false on failure
+ * @param Revision $undo
+ * @param Revision $undoafter Must be an earlier revision than $undo
+ * @return string|bool string on success, false on failure
* @deprecated since 1.21: use ContentHandler::getUndoContent() instead.
*/
public function getUndoText( Revision $undo, Revision $undoafter = null ) {
}
/**
- * @param mixed $section Null/false, a section number (0, 1, 2, T1, T2, ...) or "new".
+ * @param string|null|bool $section Null/false, a section number (0, 1, 2, T1, T2, ...) or "new".
* @param string $text New text of the section.
* @param string $sectionTitle New section's subject, only if $section is "new".
* @param string $edittime Revision timestamp or null to use the current revision.
}
/**
- * @param mixed $section Null/false, a section number (0, 1, 2, T1, T2, ...) or "new".
+ * @param string|null|bool $section Null/false, a section number (0, 1, 2, T1, T2, ...) or "new".
* @param Content $sectionContent New content of the section.
* @param string $sectionTitle New section's subject, only if $section is "new".
* @param string $edittime Revision timestamp or null to use the current revision.
/**
* Check flags and add EDIT_NEW or EDIT_UPDATE to them as needed.
- * @param $flags Int
- * @return Int updated $flags
+ * @param int $flags
+ * @return int Updated $flags
*/
public function checkFlags( $flags ) {
if ( !( $flags & EDIT_NEW ) && !( $flags & EDIT_UPDATE ) ) {
* Change an existing article or create a new article. Updates RC and all necessary caches,
* optionally via the deferred update array.
*
- * @param string $text new text
- * @param string $summary edit summary
- * @param $flags Integer bitfield:
+ * @param string $text New text
+ * @param string $summary Edit summary
+ * @param int $flags Bitfield:
* EDIT_NEW
* Article is known or assumed to be non-existent, create a new one
* EDIT_UPDATE
* edit-already-exists error will be returned. These two conditions are also possible with
* auto-detection due to MediaWiki's performance-optimised locking strategy.
*
- * @param bool|int $baseRevId int the revision ID this edit was based off, if any
- * @param $user User the user doing the edit
+ * @param bool|int $baseRevId The revision ID this edit was based off, if any
+ * @param User $user The user doing the edit
*
* @throws MWException
* @return Status object. Possible errors:
* Change an existing article or create a new article. Updates RC and all necessary caches,
* optionally via the deferred update array.
*
- * @param $content Content: new content
- * @param string $summary edit summary
- * @param $flags Integer bitfield:
+ * @param Content $content New content
+ * @param string $summary Edit summary
+ * @param int $flags Bitfield:
* EDIT_NEW
* Article is known or assumed to be non-existent, create a new one
* EDIT_UPDATE
* edit-already-exists error will be returned. These two conditions are also possible with
* auto-detection due to MediaWiki's performance-optimised locking strategy.
*
- * @param bool|int $baseRevId the revision ID this edit was based off, if any
- * @param $user User the user doing the edit
- * @param $serialisation_format String: format for storing the content in the database
+ * @param bool|int $baseRevId The revision ID this edit was based off, if any
+ * @param User $user The user doing the edit
+ * @param string $serialisation_format Format for storing the content in the database
*
* @throws MWException
* @return Status object. Possible errors:
* Returns a stdclass with source, pst and output members
*
* @deprecated since 1.21: use prepareContentForEdit instead.
+ * @return object
*/
public function prepareTextForEdit( $text, $revid = null, User $user = null ) {
ContentHandler::deprecated( __METHOD__, '1.21' );
* Purges pages that include this page if the text was changed here.
* Every 100th edit, prune the recent changes table.
*
- * @param $revision Revision object
- * @param $user User object that did the revision
- * @param array $options of options, following indexes are used:
+ * @param Revision $revision
+ * @param User $user User object that did the revision
+ * @param array $options Array of options, following indexes are used:
* - changed: boolean, whether the revision changed the content (default true)
* - created: boolean, whether the revision created the page (default false)
* - oldcountable: boolean or null (default null):
* The article must already exist; link tables etc
* are not updated, caches are not flushed.
*
- * @param string $text text submitted
- * @param $user User The relevant user
- * @param string $comment comment submitted
- * @param $minor Boolean: whereas it's a minor modification
+ * @param string $text Text submitted
+ * @param User $user The relevant user
+ * @param string $comment Comment submitted
+ * @param bool $minor Whereas it's a minor modification
*
* @deprecated since 1.21, use doEditContent() instead.
*/
* Update the article's restriction field, and leave a log entry.
* This works for protection both existing and non-existing pages.
*
- * @param array $limit set of restriction keys
- * @param array $expiry per restriction type expiration
+ * @param array $limit Set of restriction keys
+ * @param array $expiry Per restriction type expiration
* @param int &$cascade Set to false if cascading protection isn't allowed.
* @param string $reason
* @param User $user The user updating the restrictions
/**
* Insert a new null revision for this page.
*
- * @param string $revCommentMsg comment message key for the revision
- * @param array $limit set of restriction keys
- * @param array $expiry per restriction type expiration
+ * @param string $revCommentMsg Comment message key for the revision
+ * @param array $limit Set of restriction keys
+ * @param array $expiry Per restriction type expiration
* @param int $cascade Set to false if cascading protection isn't allowed.
* @param string $reason
- * @return Revision|null on error
+ * @return Revision|null Null on error
*/
public function insertProtectNullRevision( $revCommentMsg, array $limit, array $expiry, $cascade, $reason ) {
global $wgContLang;
/**
* Builds the description to serve as comment for the edit.
*
- * @param array $limit set of restriction keys
- * @param array $expiry per restriction type expiration
+ * @param array $limit Set of restriction keys
+ * @param array $expiry Per restriction type expiration
* @return string
*/
public function protectDescription( array $limit, array $expiry ) {
* protect description text. Keep them in old format to avoid breaking compatibility.
* TODO: Fix protection log to store structured description and format it on-the-fly.
*
- * @param array $limit set of restriction keys
- * @param array $expiry per restriction type expiration
+ * @param array $limit Set of restriction keys
+ * @param array $expiry Per restriction type expiration
* @return string
*/
public function protectDescriptionLog( array $limit, array $expiry ) {
*
* Deletes the article with database consistency, writes logs, purges caches
*
- * @param string $reason delete reason for deletion log
- * @param $suppress boolean suppress all revisions and log the deletion in
+ * @param string $reason Delete reason for deletion log
+ * @param bool $suppress Suppress all revisions and log the deletion in
* the suppression log instead of the deletion log
- * @param int $id article ID
- * @param $commit boolean defaults to true, triggers transaction end
- * @param &$error Array of errors to append to
- * @param $user User The deleting user
- * @return boolean true if successful
+ * @param int $id Article ID
+ * @param bool $commit Defaults to true, triggers transaction end
+ * @param array &$error Array of errors to append to
+ * @param User $user The deleting user
+ * @return bool true if successful
*/
public function doDeleteArticle(
$reason, $suppress = false, $id = 0, $commit = true, &$error = '', User $user = null
*
* @since 1.19
*
- * @param string $reason delete reason for deletion log
- * @param $suppress boolean suppress all revisions and log the deletion in
- * the suppression log instead of the deletion log
- * @param int $id article ID
- * @param $commit boolean defaults to true, triggers transaction end
- * @param &$error Array of errors to append to
- * @param $user User The deleting user
- * @return Status: Status object; if successful, $status->value is the log_id of the
- * deletion log entry. If the page couldn't be deleted because it wasn't
- * found, $status is a non-fatal 'cannotdelete' error
+ * @param string $reason Delete reason for deletion log
+ * @param bool $suppress Suppress all revisions and log the deletion in
+ * the suppression log instead of the deletion log
+ * @param int $id Article ID
+ * @param bool $commit Defaults to true, triggers transaction end
+ * @param array &$error Array of errors to append to
+ * @param User $user The deleting user
+ * @return Status Status object; if successful, $status->value is the log_id of the
+ * deletion log entry. If the page couldn't be deleted because it wasn't
+ * found, $status is a non-fatal 'cannotdelete' error
*/
public function doDeleteArticleReal(
$reason, $suppress = false, $id = 0, $commit = true, &$error = '', User $user = null
* Do some database updates after deletion
*
* @param int $id page_id value of the page being deleted
- * @param $content Content: optional page content to be used when determining the required updates.
- * This may be needed because $this->getContent() may already return null when the page proper was deleted.
+ * @param Content $content Optional page content to be used when determining the required updates.
+ * This may be needed because $this->getContent() may already return null when the page proper was deleted.
*/
public function doDeleteUpdates( $id, Content $content = null ) {
// update site status
* @param string $fromP Name of the user whose edits to rollback.
* @param string $summary Custom summary. Set to default summary if empty.
* @param string $token Rollback token.
- * @param $bot Boolean: If true, mark all reverted edits as bot.
+ * @param bool $bot If true, mark all reverted edits as bot.
*
* @param array $resultDetails contains result-specific array of additional values
* 'alreadyrolled' : 'current' (rev)
* success : 'summary' (str), 'current' (rev), 'target' (rev)
*
- * @param $user User The user performing the rollback
- * @return array of errors, each error formatted as
+ * @param User $user The user performing the rollback
+ * @return array Array of errors, each error formatted as
* array(messagekey, param1, param2, ...).
* On success, the array is empty. This array can also be passed to
* OutputPage::showPermissionsErrorPage().
* doRollback() instead.
* @param string $fromP Name of the user whose edits to rollback.
* @param string $summary Custom summary. Set to default summary if empty.
- * @param $bot Boolean: If true, mark all reverted edits as bot.
+ * @param bool $bot If true, mark all reverted edits as bot.
*
- * @param array $resultDetails contains result-specific array of additional values
- * @param $guser User The user performing the rollback
+ * @param array $resultDetails Contains result-specific array of additional values
+ * @param User $guser The user performing the rollback
* @return array
*/
public function commitRollback( $fromP, $summary, $bot, &$resultDetails, User $guser ) {
*
* This is called on page move and undelete, as well as edit
*
- * @param $title Title object
+ * @param Title $title
*/
public static function onArticleCreate( $title ) {
// Update existence markers on article/talk tabs...
/**
* Clears caches when article is deleted
*
- * @param $title Title
+ * @param Title $title
*/
public static function onArticleDelete( $title ) {
// Update existence markers on article/talk tabs...
/**
* Purge caches on page update etc
*
- * @param $title Title object
+ * @param Title $title
* @todo Verify that $title is always a Title object (and never false or null), add Title hint to parameter $title
*/
public static function onArticleEdit( $title ) {
* Returns a list of hidden categories this page is a member of.
* Uses the page_props and categorylinks tables.
*
- * @return Array of Title objects
+ * @return array Array of Title objects
*/
public function getHiddenCategories() {
$result = array();
/**
* Return an applicable autosummary if one exists for the given edit.
- * @param string|null $oldtext the previous text of the page.
+ * @param string|null $oldtext The previous text of the page.
* @param string|null $newtext The submitted text of the page.
- * @param int $flags bitmask: a bitmask of flags submitted for the edit.
+ * @param int $flags Bitmask: a bitmask of flags submitted for the edit.
* @return string An appropriate autosummary, or an empty string.
*
* @deprecated since 1.21, use ContentHandler::getAutosummary() instead
/**
* Auto-generates a deletion reason
*
- * @param &$hasHistory Boolean: whether the page has a history
- * @return mixed String containing deletion reason or empty string, or boolean false
+ * @param bool &$hasHistory Whether the page has a history
+ * @return string|bool String containing deletion reason or empty string, or boolean false
* if no revision occurred
*/
public function getAutoDeleteReason( &$hasHistory ) {
* Update all the appropriate counts in the category table, given that
* we've added the categories $added and deleted the categories $deleted.
*
- * @param array $added The names of categories that were added
+ * @param array $added The names of categories that were added
* @param array $deleted The names of categories that were deleted
*/
public function updateCategoryCounts( array $added, array $deleted ) {
/**
* Updates cascading protections
*
- * @param $parserOutput ParserOutput object for the current version
+ * @param ParserOutput $parserOutput ParserOutput object for the current version
*/
public function doCascadeProtectionUpdates( ParserOutput $parserOutput ) {
if ( wfReadOnly() || !$this->mTitle->areRestrictionsCascading() ) {
* Uses the templatelinks table
*
* @deprecated since 1.19; use Title::getTemplateLinksFrom()
- * @return Array of Title objects
+ * @return array Array of Title objects
*/
public function getUsedTemplates() {
return $this->mTitle->getTemplateLinksFrom();
* so we can do things like signatures and links-in-context.
*
* @deprecated since 1.19; use Parser::preSaveTransform() instead
- * @param string $text article contents
- * @param $user User object: user doing the edit
- * @param $popts ParserOptions object: parser options, default options for
- * the user loaded if null given
- * @return string article contents with altered wikitext markup (signatures
+ * @param string $text Article contents
+ * @param User $user User doing the edit
+ * @param ParserOptions $popts Parser options, default options for
+ * the user loaded if null given
+ * @return string Article contents with altered wikitext markup (signatures
* converted, {{subst:}}, templates, etc.)
*/
public function preSaveTransform( $text, User $user = null, ParserOptions $popts = null ) {
* Update the article's restriction field, and leave a log entry.
*
* @deprecated since 1.19
- * @param array $limit set of restriction keys
- * @param $reason String
- * @param &$cascade Integer. Set to false if cascading protection isn't allowed.
- * @param array $expiry per restriction type expiration
- * @param $user User The user updating the restrictions
+ * @param array $limit Set of restriction keys
+ * @param string $reason
+ * @param int &$cascade Set to false if cascading protection isn't allowed.
+ * @param array $expiry Per restriction type expiration
+ * @param User $user The user updating the restrictions
* @return bool true on success
*/
public function updateRestrictions(
* Returns a list of updates to be performed when this page is deleted. The updates should remove any information
* about this page from secondary data stores such as links tables.
*
- * @param Content|null $content optional Content object for determining the necessary updates
- * @return Array an array of DataUpdates objects
+ * @param Content|null $content Optional Content object for determining the necessary updates
+ * @return array An array of DataUpdates objects
*/
public function getDeletionUpdates( Content $content = null ) {
if ( !$content ) {
private $cacheKey;
/**
- * @var integer
+ * @var int
*/
private $revid;
/**
* Constructor
*
- * @param $page Page|WikiPage
- * @param $revid Integer: ID of the revision being parsed
- * @param $useParserCache Boolean: whether to use the parser cache
- * @param $parserOptions parserOptions to use for the parse operation
- * @param $content Content|String: content to parse or null to load it; may also be given as a wikitext string, for BC
+ * @param Page $page
+ * @param int $revid ID of the revision being parsed
+ * @param bool $useParserCache Whether to use the parser cache
+ * @param ParserOptions $parserOptions ParserOptions to use for the parse operation
+ * @param Content|string $content Content to parse or null to load it; may also be given as a wikitext string, for BC
*/
public function __construct( Page $page, ParserOptions $parserOptions, $revid, $useParserCache, $content = null ) {
if ( is_string( $content ) ) { // BC: old style call
}
/**
- * @param $status Status
+ * @param Status $status
* @return bool
*/
public function error( $status ) {
* Strings are assumed to not contain XML-illegal characters; special
* characters (<, >, &) are escaped but illegals are not touched.
*
- * @param string $element element name
+ * @param string $element Element name
* @param array $attribs Name=>value pairs. Values will be escaped.
- * @param string $contents NULL to make an open tag only; '' for a contentless closed tag (default)
- * @param bool $allowShortTag whether '' in $contents will result in a contentless closed tag
+ * @param string $contents Null to make an open tag only; '' for a contentless closed tag (default)
+ * @param bool $allowShortTag Whether '' in $contents will result in a contentless closed tag
* @return string
*/
public static function element( $element, $attribs = null, $contents = '', $allowShortTag = true ) {
* to set the XML attributes : attributename="value".
* The values are passed to Sanitizer::encodeAttribute.
* Return null if no attributes given.
- * @param array $attribs of attributes for an XML element
+ * @param array $attribs Array of attributes for an XML element
* @throws MWException
* @return null|string
*/
* $wgContLang->normalize() validator first to ensure that no invalid UTF-8
* is passed.
*
- * @param $element String:
+ * @param string $element
* @param array $attribs Name=>value pairs. Values will be escaped.
- * @param string $contents NULL to make an open tag only; '' for a contentless closed tag (default)
+ * @param string $contents Null to make an open tag only; '' for a contentless closed tag (default)
* @return string
*/
public static function elementClean( $element, $attribs = array(), $contents = '' ) {
/**
* This opens an XML element
*
- * @param string $element name of the element
- * @param array $attribs of attributes, see Xml::expandAttributes()
+ * @param string $element Name of the element
+ * @param array $attribs Array of attributes, see Xml::expandAttributes()
* @return string
*/
public static function openElement( $element, $attribs = null ) {
/**
* Shortcut to close an XML element
- * @param string $element element name
+ * @param string $element Element name
* @return string
*/
public static function closeElement( $element ) {
* Same as Xml::element(), but does not escape contents. Handy when the
* content you have is already valid xml.
*
- * @param string $element element name
- * @param array $attribs of attributes
- * @param string $contents content of the element
+ * @param string $element Element name
+ * @param array $attribs Array of attributes
+ * @param string $contents Content of the element
* @return string
*/
public static function tags( $element, $attribs = null, $contents ) {
/**
* Build a drop-down box for selecting a namespace
*
- * @param $selected Mixed: Namespace which should be pre-selected
- * @param $all Mixed: Value of an item denoting all namespaces, or null to omit
- * @param $element_name String: value of the "name" attribute of the select tag
- * @param string $label optional label to add to the field
+ * @param string $selected Namespace which should be pre-selected
+ * @param string|null $all Value of an item denoting all namespaces, or null to omit
+ * @param string $element_name Value of the "name" attribute of the select tag
+ * @param string $label Optional label to add to the field
* @return string
* @deprecated since 1.19
*/
/**
* Create a date selector
*
- * @param $selected Mixed: the month which should be selected, default ''
- * @param string $allmonths value of a special item denoting all month. Null to not include (default)
+ * @param string $selected The month which should be selected, default ''
+ * @param string $allmonths Value of a special item denoting all month. Null to not include (default)
* @param string $id Element identifier
- * @return String: Html string containing the month selector
+ * @return string Html string containing the month selector
*/
public static function monthSelector( $selected = '', $allmonths = null, $id = 'month' ) {
global $wgLang;
}
/**
- * @param $year Integer
- * @param $month Integer
+ * @param int $year
+ * @param int $month
* @return string Formatted HTML
*/
public static function dateMenu( $year, $month ) {
* Construct a language selector appropriate for use in a form or preferences
*
* @param string $selected The language code of the selected language
- * @param boolean $customisedOnly If true only languages which have some content are listed
+ * @param bool $customisedOnly If true only languages which have some content are listed
* @param string $inLanguage The ISO code of the language to display the select list in (optional)
* @param array $overrideAttrs Override the attributes of the select tag (since 1.20)
* @param Message|null $msg Label message key (since 1.20)
/**
* Shortcut to make a span element
- * @param string $text content of the element, will be escaped
- * @param string $class class name of the span element
- * @param array $attribs other attributes
+ * @param string $text Content of the element, will be escaped
+ * @param string $class Class name of the span element
+ * @param array $attribs Other attributes
* @return string
*/
public static function span( $text, $class, $attribs = array() ) {
/**
* Shortcut to make a specific element with a class attribute
- * @param string $text content of the element, will be escaped
- * @param string $class class name of the span element
- * @param string $tag element name
- * @param array $attribs other attributes
+ * @param string $text Content of the element, will be escaped
+ * @param string $class Class name of the span element
+ * @param string $tag Element name
+ * @param array $attribs Other attributes
* @return string
*/
public static function wrapClass( $text, $class, $tag = 'span', $attribs = array() ) {
/**
* Convenience function to build an HTML text input field
- * @param string $name value of the name attribute
- * @param int $size value of the size attribute
- * @param $value mixed value of the value attribute
- * @param array $attribs other attributes
+ * @param string $name Value of the name attribute
+ * @param int $size Value of the size attribute
+ * @param mixed $value Value of the value attribute
+ * @param array $attribs Other attributes
* @return string HTML
*/
public static function input( $name, $size = false, $value = false, $attribs = array() ) {
/**
* Convenience function to build an HTML password input field
- * @param string $name value of the name attribute
- * @param int $size value of the size attribute
- * @param $value mixed value of the value attribute
- * @param array $attribs other attributes
+ * @param string $name Value of the name attribute
+ * @param int $size Value of the size attribute
+ * @param mixed $value Value of the value attribute
+ * @param array $attribs Other attributes
* @return string HTML
*/
public static function password( $name, $size = false, $value = false, $attribs = array() ) {
/**
* Internal function for use in checkboxes and radio buttons and such.
*
- * @param $name string
- * @param $present bool
+ * @param string $name
+ * @param bool $present
*
* @return array
*/
/**
* Convenience function to build an HTML checkbox
- * @param string $name value of the name attribute
+ * @param string $name Value of the name attribute
* @param bool $checked Whether the checkbox is checked or not
- * @param array $attribs other attributes
+ * @param array $attribs Array other attributes
* @return string HTML
*/
public static function check( $name, $checked = false, $attribs = array() ) {
/**
* Convenience function to build an HTML radio button
- * @param string $name value of the name attribute
- * @param string $value value of the value attribute
+ * @param string $name Value of the name attribute
+ * @param string $value Value of the value attribute
* @param bool $checked Whether the checkbox is checked or not
- * @param array $attribs other attributes
+ * @param array $attribs Other attributes
* @return string HTML
*/
public static function radio( $name, $value, $checked = false, $attribs = array() ) {
/**
* Convenience function to build an HTML form label
- * @param string $label text of the label
- * @param $id
- * @param array $attribs an attribute array. This will usually be
+ * @param string $label Text of the label
+ * @param string $id
+ * @param array $attribs An attribute array. This will usually be
* the same array as is passed to the corresponding input element,
* so this function will cherry-pick appropriate attributes to
* apply to the label as well; only class and title are applied.
/**
* Convenience function to build an HTML text input field with a label
- * @param string $label text of the label
- * @param string $name value of the name attribute
- * @param string $id id of the input
- * @param int|Bool $size value of the size attribute
- * @param string|Bool $value value of the value attribute
- * @param array $attribs other attributes
+ * @param string $label Text of the label
+ * @param string $name Value of the name attribute
+ * @param string $id Id of the input
+ * @param int|bool $size Value of the size attribute
+ * @param string|bool $value Value of the value attribute
+ * @param array $attribs Other attributes
* @return string HTML
*/
public static function inputLabel( $label, $name, $id, $size = false, $value = false, $attribs = array() ) {
/**
* Same as Xml::inputLabel() but return input and label in an array
*
- * @param $label String
- * @param $name String
- * @param $id String
- * @param $size Int|Bool
- * @param $value String|Bool
- * @param $attribs array
+ * @param string $label
+ * @param string $name
+ * @param string $id
+ * @param int|bool $size
+ * @param string|bool $value
+ * @param array $attribs
*
* @return array
*/
/**
* Convenience function to build an HTML checkbox with a label
*
- * @param $label
- * @param $name
- * @param $id
- * @param $checked bool
- * @param $attribs array
+ * @param string $label
+ * @param string $name
+ * @param string $id
+ * @param bool $checked
+ * @param array $attribs
*
* @return string HTML
*/
/**
* Convenience function to build an HTML radio button with a label
*
- * @param $label
- * @param $name
- * @param $value
- * @param $id
- * @param $checked bool
- * @param $attribs array
+ * @param string $label
+ * @param string $name
+ * @param string $value
+ * @param string $id
+ * @param bool $checked
+ * @param array $attribs
*
* @return string HTML
*/
/**
* Convenience function to build an HTML submit button
- * @param string $value label text for the button
- * @param array $attribs optional custom attributes
+ * @param string $value Label text for the button
+ * @param array $attribs Optional custom attributes
* @return string HTML
*/
public static function submitButton( $value, $attribs = array() ) {
/**
* Convenience function to build an HTML drop-down list item.
- * @param string $text text for this item. Will be HTML escaped
- * @param string $value form submission value; if empty, use text
- * @param $selected boolean: if true, will be the default selected item
- * @param array $attribs optional additional HTML attributes
+ * @param string $text Text for this item. Will be HTML escaped
+ * @param string $value Form submission value; if empty, use text
+ * @param bool $selected If true, will be the default selected item
+ * @param array $attribs Optional additional HTML attributes
* @return string HTML
*/
public static function option( $text, $value = null, $selected = false,
/**
* Build a drop-down box from a textual list.
*
- * @param $name Mixed: Name and id for the drop-down
- * @param $list Mixed: Correctly formatted text (newline delimited) to be used to generate the options
- * @param $other Mixed: Text for the "Other reasons" option
- * @param $selected Mixed: Option which should be pre-selected
- * @param $class Mixed: CSS classes for the drop-down
- * @param $tabindex Mixed: Value of the tabindex attribute
+ * @param string $name Name and id for the drop-down
+ * @param string $list Correctly formatted text (newline delimited) to be used to generate the options
+ * @param string $other Text for the "Other reasons" option
+ * @param string $selected Option which should be pre-selected
+ * @param string $class CSS classes for the drop-down
+ * @param int $tabindex Value of the tabindex attribute
* @return string
*/
public static function listDropDown( $name = '', $list = '', $other = '', $selected = '', $class = '', $tabindex = null ) {
* Illegal control characters are assumed not to be present.
*
* @deprecated since 1.21; use Xml::encodeJsVar() or Xml::encodeJsCall() instead
- * @param string $string to escape
- * @return String
+ * @param string $string String to escape
+ * @return string
*/
public static function escapeJsString( $string ) {
// See ECMA 262 section 7.8.4 for string literal format
*
* @param mixed $value The value being encoded. Can be any type except a resource.
* @param bool $pretty If true, add non-significant whitespace to improve readability.
- * @return string|bool: String if successful; false upon failure
+ * @return string|bool String if successful; false upon failure
*/
public static function encodeJsVar( $value, $pretty = false ) {
if ( $value instanceof XmlJsCode ) {
* which evaluates to a function object which is called.
* @param array $args The arguments to pass to the function.
* @param bool $pretty If true, add non-significant whitespace to improve readability.
- * @return string|bool: String if successful; false upon failure
+ * @return string|bool String if successful; false upon failure
*/
public static function encodeJsCall( $name, $args, $pretty = false ) {
foreach ( $args as &$arg ) {
* Check if a string is well-formed XML.
* Must include the surrounding tag.
*
- * @param string $text string to test.
+ * @param string $text String to test.
* @return bool
*
* @todo Error position reporting return
* Wraps fragment in an \<html\> bit and doctype, so it can be a fragment
* and can use HTML named entities.
*
- * @param $text String:
+ * @param string $text
* @return bool
*/
public static function isWellFormedXmlFragment( $text ) {
* Replace " > and < with their respective HTML entities ( ",
* >, <)
*
- * @param string $in text that might contain HTML tags.
+ * @param string $in Text that might contain HTML tags.
* @return string Escaped string
*/
public static function escapeTagsOnly( $in ) {
}
/**
- * @param $default
+ * @param string $default
*/
public function setDefault( $default ) {
$this->default = $default;
}
/**
- * @param $name string
- * @param $value
+ * @param string $name
+ * @param array $value
*/
public function setAttribute( $name, $value ) {
$this->attributes[$name] = $value;
}
/**
- * @param $name
+ * @param string $name
* @return array|null
*/
public function getAttribute( $name ) {
}
/**
- * @param $name
- * @param $value bool
+ * @param string $name
+ * @param bool $value
*/
public function addOption( $name, $value = false ) {
// Stab stab stab
* label => value
* label => ( label => value, label => value )
*
- * @param $options
+ * @param array $options
*/
public function addOptions( $options ) {
$this->options[] = $options;
* label => value
* label => ( label => value, label => value )
*
- * @param $options
+ * @param array $options
* @param bool $default
* @return string
*/
* @param Page|WikiPage $page Page or WikiPage object to work on
* @param User $user User doing the action
* @param string $token delete token (same as edit token)
- * @param string|null $reason reason for the deletion. Autogenerated if NULL
+ * @param string|null $reason reason for the deletion. Autogenerated if null
* @return Status|array
*/
public static function delete( Page $page, User $user, $token, &$reason = null ) {
/**
* ChannelFeed doesn't give us a method to print errors in a friendly
* manner, so just punt errors to the default printer.
- * @return false
+ * @return bool
*/
public function canPrintErrors() {
return false;
*/
protected function handleException( Exception $e ) {
// Bug 63145: Rollback any open database transactions
- MWExceptionHandler::rollbackMasterChangesAndLog( $e );
+ if ( !( $e instanceof UsageException ) ) {
+ // UsageExceptions are intentional, so don't rollback if that's the case
+ MWExceptionHandler::rollbackMasterChangesAndLog( $e );
+ }
// Allow extra cleanup and logging
wfRunHooks( 'ApiMain::onException', array( $this, $e ) );
/**
* @since 1.21
*
- * @return string|false The wikitext to include when another page includes this
+ * @return string|bool The wikitext to include when another page includes this
* content, or false if the content is not includable in a wikitext page.
*
* @todo Allow native handling, bypassing wikitext representation, like
*
* @note: this allows any text-based content to be transcluded as if it was wikitext.
*
- * @return string|false The raw text, or false if the conversion failed.
+ * @return string|bool The raw text, or false if the conversion failed.
*/
public function getWikitextForTransclusion() {
$wikitext = $this->convert( CONTENT_MODEL_WIKITEXT, 'lossy' );
}
/**
- * @return array|false (int, int)
+ * @return array|bool (int, int)
*/
protected function getCoordinates() {
$m = array();
/**
* @see ORMTable::newRowFromFromDBResult
*
- * @deprecated use newRowFromDBResult instead
+ * @deprecated since 1.20 use newRowFromDBResult instead
* @since 1.20
*
* @param stdClass $result
/**
* @see ORMTable::newRow
*
- * @deprecated use newRow instead
+ * @deprecated since 1.20 use newRow instead
* @since 1.20
*
* @param array $data
/** @var Title Title we're updating */
private $title;
- /** @var Content|false Content of the page (not text) */
+ /** @var Content|bool Content of the page (not text) */
private $content;
/**
* Get the final extension from a storage or FS path
*
* @param string $path
+ * @param string $case One of (rawcase, uppercase, lowercase) (since 1.24)
* @return string
*/
- final public static function extensionFromPath( $path ) {
+ final public static function extensionFromPath( $path, $case = 'lowercase' ) {
$i = strrpos( $path, '.' );
+ $ext = $i ? substr( $path, $i + 1 ) : '';
- return strtolower( $i ? substr( $path, $i + 1 ) : '' );
+ if ( $case === 'lowercase' ) {
+ $ext = strtolower( $ext );
+ } elseif ( $case === 'uppercase' ) {
+ $ext = strtoupper( $ext );
+ }
+
+ return $ext;
}
/**
/** @var array Active temp files to purge on shutdown */
protected static $instances = array();
+ /** @var array Map of (path => 1) for paths to delete on shutdown */
+ protected static $pathsCollect = null;
+
+ public function __construct( $path ) {
+ parent::__construct( $path );
+
+ if ( self::$pathsCollect === null ) {
+ self::$pathsCollect = array();
+ register_shutdown_function( array( __CLASS__, 'purgeAllOnShutdown' ) );
+ }
+ }
+
/**
* Make a new temporary file on the file system.
* Temporary files may be purged when the file object falls out of scope.
}
}
$tmpFile = new self( $path );
- $tmpFile->canDelete = true; // safely instantiated
+ $tmpFile->autocollect(); // safely instantiated
wfProfileOut( __METHOD__ );
return $tmpFile;
$ok = unlink( $this->path );
wfRestoreWarnings();
+ unset( self::$pathsCollect[$this->path] );
+
return $ok;
}
public function preserve() {
$this->canDelete = false;
+ unset( self::$pathsCollect[$this->path] );
+
return $this;
}
public function autocollect() {
$this->canDelete = true;
+ self::$pathsCollect[$this->path] = 1;
+
return $this;
}
+ /**
+ * Try to make sure that all files are purged on error
+ *
+ * This method should only be called internally
+ */
+ public static function purgeAllOnShutdown() {
+ foreach ( self::$pathsCollect as $path ) {
+ wfSuppressWarnings();
+ unlink( $path );
+ wfRestoreWarnings();
+ }
+ }
+
/**
* Cleans up after the temporary file by deleting it
*/
function __destruct() {
if ( $this->canDelete ) {
- wfSuppressWarnings();
- unlink( $this->path );
- wfRestoreWarnings();
+ $this->purge();
}
}
}
$res = $dbw->select(
'oldimage',
array( 'oi_archive_name', 'oi_sha1' ),
- array( 'oi_archive_name' => array_keys( $oldRels ) ),
+ array( 'oi_archive_name' => array_keys( $oldRels ),
+ 'oi_name' => $this->file->getName() ), // performance
__METHOD__
);
/**
* Button cannot be invalid
*
- * @param $value String
- * @param $alldata Array
+ * @param string $value
+ * @param array $alldata
*
- * @return Bool
+ * @return bool
*/
public function validate( $value, $alldata ) {
return true;
/**
* For a checkbox, the label goes on the right hand side, and is
* added in getInputHTML(), rather than HTMLFormField::getRow()
- * @return String
+ * @return string
*/
function getLabel() {
return ' ';
/**
* checkboxes don't need a label.
+ * @return bool
*/
protected function needsLabel() {
return false;
}
/**
- * @param $request WebRequest
+ * @param WebRequest $request
*
- * @return String
+ * @return string
*/
function loadDataFromRequest( $request ) {
$invert = false;
* mParams['rows'] is an array with row labels as keys and row tags as values.
* mParams['columns'] is an array with column labels as keys and column tags as values.
*
- * @param array $value of the options that should be checked
+ * @param array $value Array of the options that should be checked
*
- * @return String
+ * @return string
*/
function getInputHTML( $value ) {
$html = '';
* line above the options in the case of a checkbox matrix, i.e. it's always
* a "vertical-label".
*
- * @param string $value the value to set the input to
+ * @param string $value The value to set the input to
*
- * @return String complete HTML table row
+ * @return string Complete HTML table row
*/
function getTableRow( $value ) {
list( $errors, $errorClass ) = $this->getErrorsAndErrorClass( $value );
}
/**
- * @param $request WebRequest
+ * @param WebRequest $request
*
- * @return Array
+ * @return array
*/
function loadDataFromRequest( $request ) {
if ( $this->mParent->getMethod() == 'post' ) {
/**
* Format in which to display form. For viable options,
* @see $availableDisplayFormats
- * @var String
+ * @var string
*/
protected $displayFormat = 'table';
/**
* Available formats in which to display the form
- * @var Array
+ * @var array
*/
protected $availableDisplayFormats = array(
'table',
/**
* Build a new HTMLForm from an array of field attributes
*
- * @param array $descriptor of Field constructs, as described above
- * @param $context IContextSource available since 1.18, will become compulsory in 1.18.
+ * @param array $descriptor Array of Field constructs, as described above
+ * @param IContextSource $context Available since 1.18, will become compulsory in 1.18.
* Obviates the need to call $form->setTitle()
- * @param string $messagePrefix a prefix to go in front of default messages
+ * @param string $messagePrefix A prefix to go in front of default messages
*/
public function __construct( $descriptor, /*IContextSource*/ $context = null,
$messagePrefix = ''
/**
* Set format in which to display the form
*
- * @param string $format the name of the format to use, must be one of
- * $this->availableDisplayFormats
+ * @param string $format The name of the format to use, must be one of
+ * $this->availableDisplayFormats
*
* @throws MWException
* @since 1.20
/**
* Getter for displayFormat
* @since 1.20
- * @return String
+ * @return string
*/
public function getDisplayFormat() {
return $this->displayFormat;
/**
* Test if displayFormat is 'vform'
* @since 1.22
- * @return Bool
+ * @return bool
*/
public function isVForm() {
return $this->displayFormat === 'vform';
/**
* Try submitting, with edit token check first
- * @return Status|boolean
+ * @return Status|bool
*/
function tryAuthorizedSubmit() {
$result = false;
* The here's-one-I-made-earlier option: do the submission if
* posted, or display the form with or without funky validation
* errors
- * @return Bool or Status whether submission was successful.
+ * @return bool|Status Whether submission was successful.
*/
function show() {
$this->prepareForm();
* Validate all the fields, and call the submission callback
* function if everything is kosher.
* @throws MWException
- * @return Mixed Bool true == Successful submission, Bool false
+ * @return mixed Bool true == Successful submission, Bool false
* == No submission attempted, anything else == Error to
* display.
*/
* Set a callback to a function to do something with the form
* once it's been successfully validated.
*
- * @param string $cb function name. The function will be passed
+ * @param string $cb Function name. The function will be passed
* the output from HTMLForm::filterDataForSubmit, and must
* return Bool true on success, Bool false if no submission
* was attempted, or String HTML output to display on error.
/**
* Set a message to display on a validation error.
*
- * @param $msg Mixed String or Array of valid inputs to wfMessage()
+ * @param string|array $msg String or Array of valid inputs to wfMessage()
* (so each entry can be either a String or Array)
*
* @return HTMLForm $this for chaining calls (since 1.20)
/**
* Set the introductory message, overwriting any existing message.
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
* Set the introductory message, overwriting any existing message.
* @since 1.19
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Add introductory text.
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Add header text, inside the form.
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
* @param string $section The section to add the header to
*
* @return HTMLForm $this for chaining calls (since 1.20)
* Set header text, inside the form.
* @since 1.19
*
- * @param string $msg complete text of message to display
- * @param $section The section to add the header to
+ * @param string $msg Complete text of message to display
+ * @param string $section The section to add the header to
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
* Set footer text, inside the form.
* @since 1.19
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
* @param string $section The section to add the footer text to
*
* @return HTMLForm $this for chaining calls (since 1.20)
/**
* Add text to the end of the display.
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Set text at the end of the display.
*
- * @param string $msg complete text of message to display
+ * @param string $msg Complete text of message to display
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Add a hidden field to the output
*
- * @param string $name field name. This will be used exactly as entered
- * @param string $value field value
- * @param $attribs Array
+ * @param string $name Field name. This will be used exactly as entered
+ * @param string $value Field value
+ * @param array $attribs
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Add a button to the form
*
- * @param string $name field name.
- * @param string $value field value
+ * @param string $name Field name.
+ * @param string $value Field value
* @param string $id DOM id for the button (default: null)
- * @param $attribs Array
+ * @param array $attribs
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
* Moreover, when doing method chaining this should be the very last method
* call just after prepareForm().
*
- * @param $submitResult Mixed output from HTMLForm::trySubmit()
+ * @param mixed $submitResult Mixed output from HTMLForm::trySubmit()
*
* @return Nothing, should be last call
*/
/**
* Returns the raw HTML generated by the form
*
- * @param $submitResult Mixed output from HTMLForm::trySubmit()
+ * @param mixed $submitResult Mixed output from HTMLForm::trySubmit()
*
* @return string
*/
*
* @param string $html HTML contents to wrap.
*
- * @return String wrapped HTML.
+ * @return string Wrapped HTML.
*/
function wrapForm( $html ) {
/**
* Get the hidden fields that should go inside the form.
- * @return String HTML.
+ * @return string HTML.
*/
function getHiddenFields() {
global $wgArticlePath;
/**
* Get the submit and (potentially) reset buttons.
- * @return String HTML.
+ * @return string HTML.
*/
function getButtons() {
$buttons = '';
/**
* Get the whole body of the form.
- * @return String
+ * @return string
*/
function getBody() {
return $this->displaySection( $this->mFieldTree, $this->mTableId );
/**
* Format and display an error message stack.
*
- * @param $errors String|Array|Status
+ * @param string|array|Status $errors
*
- * @return String
+ * @return string
*/
function getErrors( $errors ) {
if ( $errors instanceof Status ) {
*
* @param array $errors of message keys/values
*
- * @return String HTML, a "<ul>" list of errors
+ * @return string HTML, a "<ul>" list of errors
*/
public static function formatErrors( $errors ) {
$errorstr = '';
* Set the text for the submit button to a message
* @since 1.19
*
- * @param string $msg message key
+ * @param string $msg Message key
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Set the id for the submit button.
*
- * @param $t String.
+ * @param string $t
*
* @todo FIXME: Integrity of $t is *not* validated
* @return HTMLForm $this for chaining calls (since 1.20)
*
* @since 1.22
*
- * @param string $id new value of the id attribute, or "" to remove
+ * @param string $id New value of the id attribute, or "" to remove
*
* @return HTMLForm $this for chaining calls
*/
* Prompt the whole form to be wrapped in a "<fieldset>", with
* this text as its "<legend>" element.
*
- * @param string|false $legend HTML to go inside the "<legend>" element, or
+ * @param string|bool $legend HTML to go inside the "<legend>" element, or
* false for no <legend>
* Will be escaped
*
* this message as its "<legend>" element.
* @since 1.19
*
- * @param string $msg message key
+ * @param string $msg Message key
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
* @todo Currently only used for the "<fieldset>" legend on forms
* with multiple sections; should be used elsewhere?
*
- * @param $p String
+ * @param string $p
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Set the title for form submission
*
- * @param $t Title of page the form is on/should be posted to
+ * @param Title $t Title of page the form is on/should be posted to
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
/**
* Set the method used to submit the form
*
- * @param $method String
+ * @param string $method
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
* section, ignored if empty.
* @param string $fieldsetIDPrefix ID prefix for the "<fieldset>" tag of
* each subsection, ignored if empty.
- * @param boolean &$hasUserVisibleFields Whether the section had user-visible fields.
+ * @param bool &$hasUserVisibleFields Whether the section had user-visible fields.
*
- * @return String
+ * @return string
*/
public function displaySection( $fields,
$sectionName = '',
/**
* Stop a reset button being shown for this form
*
- * @param bool $suppressReset set to false to re-enable the
- * button again
+ * @param bool $suppressReset Set to false to re-enable the button again
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/
* to the form as a whole, after it's submitted but before it's
* processed.
*
- * @param $data
+ * @param array $data
*
* @return
*/
* Get a string to go in the "<legend>" of a section fieldset.
* Override this if you want something more complicated.
*
- * @param $key String
+ * @param string $key
*
- * @return String
+ * @return string
*/
public function getLegend( $key ) {
return $this->msg( "{$this->mMessagePrefix}-$key" )->text();
*
* Parameters are the same as wfMessage().
*
- * @return Message object
+ * @return Message
*/
function msg() {
$args = func_get_args();
* @param string $value The value the field was submitted with
* @param array $alldata The data collected from the form
*
- * @return Mixed Bool true on success, or String error to display.
+ * @return bool|string true on success, or String error to display.
*/
function validate( $value, $alldata ) {
if ( isset( $this->mParams['required'] )
* or the input's default value if it has not been set.
*
* @param WebRequest $request
- * @return String the value
+ * @return string The value
*/
function loadDataFromRequest( $request ) {
if ( $request->getCheck( $this->mName ) ) {
*
* @param string|null $helptext
*
- * @return String
+ * @return string
*/
public function getHelpTextHtmlDiv( $helptext ) {
if ( is_null( $helptext ) ) {
* @since 1.20
*
* @param string|null $helptext
- * @return String
+ * @return string
*/
public function getHelpTextHtmlRaw( $helptext ) {
return $this->getHelpTextHtmlDiv( $helptext );
* flatten an array of options to a single array, for instance,
* a set of "<options>" inside "<optgroups>".
*
- * @param array $options Associative Array with values either Strings
- * or Arrays
+ * @param array $options Associative Array with values either Strings or Arrays
* @return array Flattened input
*/
public static function flattenOptions( $options ) {
/**
* Formats one or more errors as accepted by field validation-callback.
*
- * @param string|Message|array $errors String|Message|Array of strings or Message instances
+ * @param string|Message|array $errors Array of strings or Message instances
* @return string HTML
* @since 1.18
*/
}
/**
- * @param $request WebRequest
+ * @param WebRequest $request
*
- * @return String
+ * @return string
*/
function loadDataFromRequest( $request ) {
if ( $this->mParent->getMethod() == 'post' ) {
* Support for seperating multi-option preferences into multiple preferences
* Due to lack of array support.
*
- * @param $data array
+ * @param array $data
*/
function filterDataForSubmit( $data );
}
* This returns a block of all the radio options, in one cell.
* @see includes/HTMLFormField#getInputHTML()
*
- * @param $value String
+ * @param string $value
*
- * @return String
+ * @return string
*/
function getInputHTML( $value ) {
$html = $this->formatOptions( $this->getOptions(), strval( $value ) );
}
/**
- * @param $request WebRequest
+ * @param WebRequest $request
*
- * @return Array("<overall message>","<select value>","<text field value>")
+ * @return array("<overall message>","<select value>","<text field value>")
*/
function loadDataFromRequest( $request ) {
if ( $request->getCheck( $this->mName ) ) {
}
/**
- * @param $request WebRequest
+ * @param WebRequest $request
*
- * @return String
+ * @return string
*/
function loadDataFromRequest( $request ) {
if ( $request->getCheck( $this->mName ) ) {
array( 'changeNullableField', 'image', 'img_metadata', 'NOT NULL' ),
array( 'changeNullableField', 'filearchive', 'fa_metadata', 'NOT NULL' ),
array( 'changeNullableField', 'recentchanges', 'rc_cur_id', 'NULL' ),
+ array( 'changeNullableField', 'recentchanges', 'rc_cur_time', 'NULL' ),
array( 'checkOiDeleted' ),
"config-download-localsettings": "Загрузіць <code>LocalSettings.php</code>",
"config-help": "дапамога",
"config-nofile": "Файл «$1» ня знойдзены. Ці быў ён выдалены?",
+ "config-extension-link": "Ці ведаеце вы, што вашая вікі падтрымлівае [//www.mediawiki.org/wiki/Manual:Extensions пашырэньні]?\n\nВы можаце праглядзець [//www.mediawiki.org/wiki/Category:Extensions_by_category пашырэньні паводле катэгорыяў] або [//www.mediawiki.org/wiki/Extension_Matrix матрыцу пашырэньняў] дзеля іх поўнага сьпісу.",
"mainpagetext": "'''MediaWiki пасьпяхова ўсталяваная.'''",
"mainpagedocfooter": "Глядзіце [//meta.wikimedia.org/wiki/Help:Contents дапаможнік карыстальніка] для атрыманьня інфармацыі па карыстаньні вікі-праграмамі.\n\n== З чаго пачаць ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Сьпіс парамэтраў канфігурацыі]\n* [//www.mediawiki.org/wiki/Manual:FAQ Частыя пытаньні MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Пераклад MediaWiki на вашую мову]"
}
"config-db-username": "Database username:",
"config-db-password": "Database password:",
"config-db-password-empty": "Please enter a password for the new database user: $1.\nWhile it may be possible to create users with no passwords, it is not secure.",
- "config-db-username-empty": "You must enter a value for \"{{int:config-db-username}}\"",
+ "config-db-username-empty": "You must enter a value for \"{{int:config-db-username}}\".",
"config-db-install-username": "Enter the username that will be used to connect to the database during the installation process.\nThis is not the username of the MediaWiki account; this is the username for your database.",
"config-db-install-password": "Enter the password that will be used to connect to the database during the installation process.\nThis is not the password for the MediaWiki account; this is the password for your database.",
"config-db-install-help": "Enter the username and password that will be used to connect to the database during the installation process.",
"config-sqlite-connection-error": "$1.\n\nCheck the data directory and database name below and try again.",
"config-sqlite-readonly": "The file <code>$1</code> is not writeable.",
"config-sqlite-cant-create-db": "Could not create database file <code>$1</code>.",
- "config-sqlite-fts3-downgrade": "PHP is missing FTS3 support, downgrading tables",
+ "config-sqlite-fts3-downgrade": "PHP is missing FTS3 support, downgrading tables.",
"config-can-upgrade": "There are MediaWiki tables in this database.\nTo upgrade them to MediaWiki $1, click <strong>Continue</strong>.",
"config-upgrade-done": "Upgrade complete.\n\nYou can now [$1 start using your wiki].\n\nIf you want to regenerate your <code>LocalSettings.php</code> file, click the button below.\nThis is <strong>not recommended</strong> unless you are having problems with your wiki.",
"config-upgrade-done-no-regenerate": "Upgrade complete.\n\nYou can now [$1 start using your wiki].",
"config-profile-help": "Wikis work best when you let as many people edit them as possible.\nIn MediaWiki, it is easy to review the recent changes, and to revert any damage that is done by naive or malicious users.\n\nHowever, many have found MediaWiki to be useful in a wide variety of roles, and sometimes it is not easy to convince everyone of the benefits of the wiki way.\nSo you have the choice.\n\nThe <strong>{{int:config-profile-wiki}}</strong> model allows anyone to edit, without even logging in.\nA wiki with <strong>{{int:config-profile-no-anon}}</strong> provides extra accountability, but may deter casual contributors.\n\nThe <strong>{{int:config-profile-fishbowl}}</strong> scenario allows approved users to edit, but the public can view the pages, including history.\nA <strong>{{int:config-profile-private}}</strong> only allows approved users to view pages, with the same group allowed to edit.\n\nMore complex user rights configurations are available after installation, see the [//www.mediawiki.org/wiki/Manual:User_rights relevant manual entry].",
"config-license": "Copyright and license:",
"config-license-none": "No license footer",
- "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+ "config-license-cc-by-sa": "Creative Commons Attribution-ShareAlike",
"config-license-cc-by": "Creative Commons Attribution",
- "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+ "config-license-cc-by-nc-sa": "Creative Commons Attribution-NonCommercial-ShareAlike",
"config-license-cc-0": "Creative Commons Zero (Public Domain)",
"config-license-gfdl": "GNU Free Documentation License 1.3 or later",
"config-license-pd": "Public Domain",
"config-insecure-keys": "<strong>Warning:</strong> {{PLURAL:$2|A secure key|Secure keys}} ($1) generated during installation {{PLURAL:$2|is|are}} not completely safe. Consider changing {{PLURAL:$2|it|them}} manually.",
"config-install-sysop": "Creating administrator user account",
"config-install-subscribe-fail": "Unable to subscribe to mediawiki-announce: $1",
- "config-install-subscribe-notpossible": "cURL is not installed and allow_url_fopen is not available.",
+ "config-install-subscribe-notpossible": "cURL is not installed and <code>allow_url_fopen</code> is not available.",
"config-install-mainpage": "Creating main page with default content",
"config-install-extension-tables": "Creating tables for enabled extensions",
"config-install-mainpage-failed": "Could not insert main page: $1",
"config-db-username": "Nome de usuario da base de datos:",
"config-db-password": "Contrasinal da base de datos:",
"config-db-password-empty": "Introduza un contrasinal para o novo usuario da base de datos: $1.\nMalia que é posible crear usuarios sen contrasinal, esta práctica non é segura.",
- "config-db-username-empty": "Debe escribir un valor \"Nome de usuario da base de datos\"",
+ "config-db-username-empty": "Debe introducir un valor para \"{{int:config-db-username}}\"",
"config-db-install-username": "Escriba o nome de usuario que empregará para conectarse á base de datos durante o proceso de instalación. Este non é o nome de usuario da conta de MediaWiki, trátase do nome de usuario para a súa base de datos.",
"config-db-install-password": "Escriba o contrasinal que empregará para conectarse á base de datos durante o proceso de instalación. Este non é o contrasinal da conta de MediaWiki, trátase do contrasinal para a súa base de datos.",
"config-db-install-help": "Introduza o nome de usuario e contrasinal que se usará para conectar á base de datos durante o proceso de instalación.",
"config-header-oracle": "Configuración do Oracle",
"config-header-mssql": "Configuración de Microsoft SQL Server",
"config-invalid-db-type": "Tipo de base de datos incorrecto",
- "config-missing-db-name": "Debe escribir un valor \"Nome da base de datos\"",
- "config-missing-db-host": "Debe escribir un valor \"Servidor da base de datos\"",
- "config-missing-db-server-oracle": "Debe escribir un valor \"TNS da base de datos\"",
+ "config-missing-db-name": "Debe introducir un valor para \"{{int:config-db-name}}\".",
+ "config-missing-db-host": "Debe introducir un valor para \"{{int:config-db-host}}\".",
+ "config-missing-db-server-oracle": "Debe introducir un valor para \"{{int:config-db-host-oracle}}\".",
"config-invalid-db-server-oracle": "O TNS da base de datos, \"$1\", é incorrecto.\nUtilice só \"TNS Name\" ou unha cadea de texto \"Easy Connect\" ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm métodos de nomeamento de Oracle])",
"config-invalid-db-name": "O nome da base de datos, \"$1\", é incorrecto.\nSó pode conter letras ASCII (a-z, A-Z), números (0-9), guións baixos (_) e guións (-).",
"config-invalid-db-prefix": "O prefixo da base de datos, \"$1\", é incorrecto.\nSó pode conter letras ASCII (a-z, A-Z), números (0-9), guións baixos (_) e guións (-).",
"config-header-mssql": "Impostazioni di Microsoft SQL Server",
"config-invalid-db-type": "Tipo di database non valido",
"config-missing-db-name": "È necessario immettere un valore per \"{{int:config-db-name}}\".",
- "config-missing-db-host": "È necessario immettere un valore per \"Host del database\"",
+ "config-missing-db-host": "È necessario immettere un valore per \"{{int:config-db-host}}\".",
"config-missing-db-server-oracle": "È necessario immettere un valore per \"{{int:config-db-host-oracle}}\".",
"config-invalid-db-name": "Nome di database \"$1\" non valido.\nUtilizza soltanto caratteri ASCII come lettere (a-z, A-Z), numeri (0-9), sottolineatura (_) e trattini (-).",
"config-invalid-db-prefix": "Prefisso database \"$1\" non valido.\nUtilizza soltanto caratteri ASCII come lettere (a-z, A-Z), numeri (0-9), sottolineatura (_) e trattini (-).",
"config-desc": "O instalador do MediaWiki",
"config-title": "Instalação do MediaWiki $1",
"config-information": "Informações",
- "config-localsettings-upgrade": "Foi detectada a existência do arquivo <code>LocalSettings.php</code>.\nPara atualizar esta instalação, insira no box abaixo o valor de <code>$wgUpgradeKey</code>.\nEssa informação pode ser encontrada no arquivo <code>LocalSettings.php</code>",
+ "config-localsettings-upgrade": "Foi detectada a existência do arquivo <code>LocalSettings.php</code>.\nPara atualizar esta instalação, insira na caixa abaixo o valor de <code>$wgUpgradeKey</code>.\nEssa informação pode ser encontrada no arquivo <code>LocalSettings.php</code>",
"config-localsettings-cli-upgrade": "Foi detectada a existência do arquivo <code><code>LocalSettings.php</code></code>.\nAtualize esta instalação executando o arquivo <code>update.php</code>",
"config-localsettings-key": "Chave de atualização:",
"config-localsettings-badkey": "A chave fornecida está incorreta.",
- "config-upgrade-key-missing": "Foi detectada uma instalação existente do MediaWiki.\nPara atualizar esta instalação, insira a seguinte linha na parte inferior do seu <code>LocalSettings.php</code>:\n\n$1",
- "config-localsettings-incomplete": "O arquivo <code>LocalSettings.php</code> parece incompleto.\nA variável $1 não está definida.\nAltere seu <code>LocalSettings.php</code> com a definição dessa variável e clique em \"{{int:Config-continue}}\".",
+ "config-upgrade-key-missing": "Foi detectada uma instalação existente do MediaWiki.\nPara atualizar esta instalação, insira a seguinte linha ao final do seu <code>LocalSettings.php</code>:\n\n$1",
+ "config-localsettings-incomplete": "O arquivo <code>LocalSettings.php</code> parece incompleto.\nA variável $1 não está definida.\nPor favor, altere seu <code>LocalSettings.php</code> e defina esta variável e clique em \"{{int:Config-continue}}\".",
"config-localsettings-connection-error": "Ocorreu um erro ao conectar ao banco de dados através das configurações presentes no arquivo <code>LocalSettings.php</code>. Por favor, corrija essas configurações e tente novamente.\n\n$1",
"config-session-error": "Erro ao iniciar a sessão: $1",
- "config-session-expired": "Os seus dados de sessão parecem ter expirado.\nAs sessões estão configuradas para uma duração de $1.\nVocê pode aumentar esta duração configurando <code>session.gc_maxlifetime</code> no php.ini.\nReinicie o processo de instalação.",
- "config-no-session": "Os seus dados de sessão foram perdidos!\nVerifique o seu php.ini e certifique-se de que em <code>session.save_path</code> está definido um diretório apropriado.",
+ "config-session-expired": "Os dados da sua sessão parecem ter expirado.\nAs sessões estão configuradas para uma duração de $1.\nVocê pode aumentar esta duração configurando <code>session.gc_maxlifetime</code> no php.ini.\nReinicie o processo de instalação.",
+ "config-no-session": "Os dados da sua sessão foram perdidos!\nVerifique o seu php.ini e certifique-se de que em <code>session.save_path</code> está definido um diretório apropriado.",
"config-your-language": "Seu idioma:",
"config-your-language-help": "Selecione o idioma que será usado durante o processo de instalação.",
- "config-wiki-language": "Idioma do wiki:",
- "config-wiki-language-help": "Selecione o idioma em que o wiki será predominantemente escrito.",
+ "config-wiki-language": "Idioma da wiki:",
+ "config-wiki-language-help": "Selecione o idioma no qual a wiki será predominantemente escrita.",
"config-back": "← Voltar",
"config-continue": "Continuar →",
"config-page-language": "Idioma",
"config-page-existingwiki": "Wiki existente",
"config-help-restart": "Deseja limpar todos os dados salvos que você introduziu e reiniciar o processo de instalação?",
"config-restart": "Sim, reiniciar",
- "config-welcome": "=== Verificações de ambiente ===\nSão realizadas verificações básicas para determinar se este ambiente é apropriado para a instalação do MediaWiki.\nLembre-se de incluir estas informações se for procurar por suporte para a conclusão da instalação.",
- "config-copyright": "=== Direitos autorais e Termos de uso ===\n\n$1\n\nEste programa é software livre; você pode redistribuí-lo e/ou modificá-lo nos termos da licença GNU General Public License, tal como publicada pela Free Software Foundation; tanto a versão 2 da Licença, como (por opção sua) qualquer versão posterior.\n\nEste programa é distribuído na esperança de que seja útil, mas '''sem qualquer garantia'''; inclusive, sem a garantia implícita da '''possibilidade de ser comercializado''' ou de '''adequação para qualquer finalidade específica'''.\nConsulte a licença GNU General Public License para mais detalhes.\n\nEm conjunto com este programa você deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito para Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
- "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Manual de uso]\n* [//www.mediawiki.org/wiki/Manual:Contents Manual administrativo]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Licença</doclink>\n* <doclink href=UpgradeDoc>Como fazer upgrade</doclink>",
+ "config-welcome": "=== Verificações de ambiente ===\nSerão realizadas verificações básicas para determinar se este ambiente é apropriado para a instalação do MediaWiki.\nLembre-se de incluir estas informações se for procurar por suporte para como concluir a instalação.",
+ "config-copyright": "=== Direitos autorais e Termos de uso ===\n\n$1\n\nEste programa é software livre; você pode redistribuí-lo e/ou modificá-lo nos termos da licença GNU General Public License tal como publicada pela Free Software Foundation; tanto a versão 2 da Licença, como (por opção sua) qualquer versão posterior.\n\nEste programa é distribuído na esperança de que seja útil, mas <strong>sem qualquer garantia</strong>; inclusive, sem a garantia implícita da <strong>possibilidade de ser comercializado</strong> ou de <strong>adequação para qualquer finalidade específica</strong>.\nConsulte a licença GNU General Public License para mais detalhes.\n\nEm conjunto com este programa você deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito para Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
+ "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Manual do usuário]\n* [//www.mediawiki.org/wiki/Manual:Contents Manual do administrador]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Licença</doclink>\n* <doclink href=UpgradeDoc>Atualizando</doclink>",
"config-env-good": "O ambiente foi verificado.\nVocê pode instalar o MediaWiki.",
"config-env-bad": "O ambiente foi verificado.\nVocê não pode instalar o MediaWiki.",
"config-env-php": "O PHP $1 está instalado.",
"config-env-php-toolow": "PHP $1 está instalado.\nNo entanto, o MediaWiki requer PHP $2 ou superior.",
"config-unicode-using-utf8": "Usando o utf8_normalize.so, de Brion Vibber, para a normalização Unicode.",
"config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
- "config-unicode-pure-php-warning": "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode sendo usada, em seu lugar, a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalização Unicode].",
- "config-unicode-update-warning": "\"Aviso:\" A versão instalada do wrapper Unicode usa uma versão mais antiga da biblioteca do : [//www.site.icu-project.org/projeto ICU].\nVocê devia [//www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] se você tem quaisquer procupações com o uso do Unicode",
+ "config-unicode-pure-php-warning": "<strong>Aviso</strong>: A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode, abortando e passando para a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalização Unicode].",
+ "config-unicode-update-warning": "<strong>Aviso:</strong> A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [//www.site.icu-project.org/projeto ICU].\nVocê deve [//www.mediawiki.org/wiki/Unicode_normalization_considerations atualizar] se você tem quaisquer preocupações com o uso do Unicode.",
"config-no-db": "Não foi possível encontrar um driver de banco de dados adequado! É necessário instalar um driver de banco de dados para o PHP.\nSão suportados os seguintes tipos de bancos de dados: $1.\n\nSe você mesmo tiver compilado o PHP, reconfigure-o com um cliente de banco de dados ativado usando, por exemplo <code>./configure --with-mysqli</code>.\nSe você instalou o PHP a partir de um pacote do Debian ou do Ubuntu, então será também necessário instalar, por exemplo, o pacote <code>php5-mysql</code>.",
- "config-outdated-sqlite": "<strong>AVISO:</strong> você tem SQLite $1 , que é menor do que a versão mínima necessária $2 . SQLite não estará disponível.",
- "config-no-fts3": "' ' 'Aviso' ' ': O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
- "config-register-globals": "' ' 'Aviso: A opção <code>[http://php.net/register_globals register_globals]</code> do PHP está ativada.'''\n' ' 'Desative-a, se puder.'''\nO MediaWiki funcionará mesmo assim, mas o seu servidor ficará exposto a potenciais vulnerabilidades de segurança.",
- "config-magic-quotes-runtime": "'''Fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está ativada!'''\nEsta opção causa corrupção dos dados de entrada, de uma forma imprevisível.\nNão pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
- "config-magic-quotes-sybase": "<strong>Fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está ativada!</strong>\nEsta opção corrompe os dados de entrada de forma imprevisível.\nNão pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
- "config-mbstring": "<strong>Fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está ativada!</strong>\nEsta opção causa erros e pode corromper os dados de forma imprevisível.\nNão pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
- "config-safe-mode": "<strong>Aviso:</strong> O [http://www.php.net/features.safe-mode safe mode] do PHP está ativo.\nEste modo pode causar problemas, especialmente no upload de arquivos e no suporte a <code>math</code>.",
- "config-xml-bad": "O módulo XML do PHP está ausente.\nO MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.\nSe está executando o Mandrake, instale o pacote php-xml.",
- "config-pcre-old": "<strong>Fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO binário do seu PHP foi vinculado com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
- "config-pcre-no-utf8": "<strong>Fatal:</strong> O módulo PCRE do PHP parece ser compilado sem suporte PCRE_UTF8.\nO MediaWiki requer suporte a UTF-8 para funcionar corretamente.",
+ "config-outdated-sqlite": "<strong>Aviso:</strong> você tem o SQLite versão $1, que é menor do que a versão mínima necessária $2. O SQLite não estará disponível.",
+ "config-no-fts3": "<strong>Aviso</strong> O SQLite foi compilado sem o [//sqlite.org/fts3.html módulo FTS3], as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
+ "config-register-globals": "<strong>Aviso: A opção <code>[http://php.net/register_globals register_globals]</code> do PHP está ativada.\nDesative-a se puder.</strong>\nO MediaWiki funcionará mesmo assim, mas o seu servidor ficará exposto a potenciais vulnerabilidades de segurança.",
+ "config-magic-quotes-runtime": "<strong>Erro fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está ativada!</strong>\nEsta opção causa corrupção dos dados de entrada de forma imprevisível.\nVocê não pode instalar ou utilizar o MediaWiki a menos que esta opção seja desativada.",
+ "config-magic-quotes-sybase": "<strong>Erro fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está ativada!</strong>\nEsta opção corrompe os dados de entrada de forma imprevisível.\nVocê não pode instalar ou utilizar o MediaWiki a menos que esta opção seja desativada.",
+ "config-mbstring": "<strong>Erro fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está ativada!</strong>\nEsta opção causa erros e pode corromper os dados de forma imprevisível.\nVocê não pode instalar ou utilizar o MediaWiki a menos que esta opção seja desativada.",
+ "config-safe-mode": "<strong>Aviso:</strong> O [http://www.php.net/features.safe-mode safe mode] do PHP está ativado.\nEste modo pode causar problemas, especialmente no carregamento de arquivos e no suporte a <code>math</code>.",
+ "config-xml-bad": "O módulo XML do PHP está ausente.\nO MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.\nSe está utilizando o Mandrake, instale o pacote php-xml.",
+ "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO binário do seu PHP foi vinculado com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
+ "config-pcre-no-utf8": "<strong>Erro fatal:</strong> O módulo PCRE do PHP parece ser compilado sem suporte a PCRE_UTF8.\nO MediaWiki requer suporte a UTF-8 para funcionar corretamente.",
"config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
- "config-memory-bad": "<strong>AVISO:</strong> A configuração <code>memory_limit</code> do PHP é $1.\nIsso provavelmente é muito baixo.\nA instalação pode falhar!",
- "config-ctype": "<strong>Fatal:</strong> O PHP deve ser compilado com suporte para o [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
- "config-json": "<strong>Fatal:</strong> O PHP foi compilado sem suporte a JSON.\nVocê deve instalar a extensão PHP JSON ou a extensão [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar o MediaWiki.!N.* A extensão JSON do PHP já está incluída no Red Hat Enterprise Linux (CentOS) 5 e 6, mas deve ser habilitado no <code>/etc/php.ini</code> ou no <code>/etc/php.d/json.ini</code> .!N. * Algumas distribuições Linux lançadas após maio de 2013 omitem a extensão PHP, oferecendo em seu lugar a extensão PECL como parte do pacote <code>php5-json</code> ou do <code>php-pecl-jsonc</code> .",
+ "config-memory-bad": "<strong>Aviso:</strong> A configuração <code>memory_limit</code> do PHP é $1.\nIsso provavelmente é muito baixo.\nA instalação pode falhar!",
+ "config-ctype": "<strong>Erro fatal:</strong> O PHP deve ser compilado com suporte para a [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
+ "config-json": "<strong>Erro fatal:</strong> O PHP foi compilado sem suporte a JSON.\nVocê deve instalar a extensão PHP JSON ou a extensão [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar o MediaWiki.\n* A extensão JSON do PHP já está incluída no Red Hat Enterprise Linux (CentOS) 5 e 6, mas deve ser habilitado no <code>/etc/php.ini</code> ou no <code>/etc/php.d/json.ini</code>.\n* Algumas distribuições Linux lançadas após maio de 2013 omitem a extensão PHP, oferecendo em seu lugar a extensão PECL como parte do pacote <code>php5-json</code> ou do <code>php-pecl-jsonc</code>.",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
"config-apc": "[http://www.php.net/apc APC] está instalado",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
- "config-no-cache": "<strong>AVISO:</strong> Não foi possível encontrar o [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nO cache de objetos não está habilitado.",
- "config-mod-security": "<strong>AVISO:</strong> Seu servidor web tem [http://modsecurity.org/ mod_security] habilitado. Se configurado incorretamente, pode causar problemas para o MediaWiki ou outro software que permite aos usuários postar conteúdo arbitrário.\nConsulte a [http://modsecurity.org/documentation/ documentação do mod_security] ou entre em contato com o suporte do seu host se você encontrar erros aleatórios.",
+ "config-no-cache": "<strong>Aviso:</strong> Não foi possível encontrar o [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nO cache de objetos não está habilitado.",
+ "config-mod-security": "<strong>Aviso:</strong> Seu servidor web tem [http://modsecurity.org/ mod_security] habilitado. Se configurado incorretamente, pode causar problemas para o MediaWiki ou outro software que permite aos usuários postar conteúdo arbitrário.\nConsulte a [http://modsecurity.org/documentation/ documentação do mod_security] ou entre em contato com o suporte do seu host se você encontrar erros aleatórios.",
"config-diff3-bad": "O GNU diff3 não foi encontrado.",
- "config-git": "Foi encontrado o software de controle de versão Git <code>$1</code>.",
+ "config-git": "Foi encontrado o software de controle de versão Git: <code>$1</code>.",
"config-git-bad": "Não foi encontrado o software de controle de versão Git.",
"config-imagemagick": "ImageMagick encontrado: <code>$1</code> .\nRedimensionamento de imagem será ativado se você permitir uploads.",
- "config-no-uri": "<strong>Error:</strong> Não foi possível determinar a URI atual. A instalação foi abortada.",
+ "config-no-uri": "<strong>Erro:</strong> Não foi possível determinar a URI atual. A instalação foi abortada.",
"config-using-server": "Utilizando o nome do servidor \"<nowiki>$1</nowiki>\".",
"config-using-uri": "Usando URL do servidor \"<nowiki>$1$2</nowiki>\".",
"config-db-type": "Tipo de base de dados:",
"config-db-name-help": "Escolha um nome que identifique a sua wiki.\nEle não deve conter espaços.\n\nSe você está utilizando um hospedeiro web compartilhado, o provedor de hospedagem lhe dará um nome especifico de base de dados para usar ou o deixará criar a partir do painel de controle.",
"config-db-name-oracle": "Esquema de base de dados:",
"config-db-install-account": "Conta de usuário para instalação",
- "config-db-username": "Usuário de base de dados:",
- "config-db-password": "Senha da base de dados:",
- "config-db-password-empty": "Por favor digite uma senha para o novo usuário da base de dados: $1. Embora seja possível criar usuários sem senha, isto não é seguro.",
- "config-db-install-username": "Digite o nome de usuário que será utilizado para conectar com a base de dados durante o processo de instalação.\nEste não é a conta de usuário do MediaWiki; este é o usuário da sua base de dados.",
- "config-db-install-password": "Digite a senha que será utilizada para conectar com a base de dados durante o processo de instalação.\nEsta não é a senha de usuário da conta do MediaWiki; esta será a senha da sua base de dados.",
- "config-db-install-help": "Digite o nome de usuário e a senha que será utilizada para conectar com a base de dados durante o processo de instalação.",
+ "config-db-username": "Nome de usuário do banco de dados:",
+ "config-db-password": "Senha do banco de dados:",
+ "config-db-password-empty": "Por favor digite uma senha para o novo usuário do banco de dados: $1. Embora seja possível criar usuários sem senha, isto não é seguro.",
+ "config-db-install-username": "Digite o nome de usuário que será utilizado para conectar com o banco de dados durante o processo de instalação.\nEste não é a conta de usuário do MediaWiki; este é o nome de usuário para sua base de dados.",
+ "config-db-install-password": "Digite a senha que será utilizada para conectar com o banco de dados durante o processo de instalação.\nEsta não é a senha de usuário da conta do MediaWiki; esta será a senha para seu banco de dados.",
+ "config-db-install-help": "Digite o nome de usuário e a senha que serão utilizados para conectar com o banco de dados durante o processo de instalação.",
"config-db-prefix": "Prefixo da tabela de banco de dados:",
- "config-db-prefix-help": "Se você precisar compartilhar a base de dados entre várias wikis, ou entre MediaWiki e uma outra aplicação web, você deve escolher adicionar um prefixo para todas as tabelas para evitar conflitos.\nNão utilize espaços.\n\nEste campo é habitualmente deixado em branco.",
- "config-db-charset": "Conjunto de caracteres da base de dados",
+ "config-db-prefix-help": "Se você precisar compartilhar a base de dados entre várias wikis, ou entre o MediaWiki e uma outra aplicação web, você pode deve escolher adicionar um prefixo ao nome de todas as tabelas para evitar conflitos.\nNão utilize espaços.\n\nEste campo é habitualmente deixado em branco.",
+ "config-db-charset": "Conjunto de caracteres do banco de dados",
"config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
"config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
"config-mysql-old": "MySQL $1 ou posterior é necessário. Você tem $2.",
"config-header-oracle": "Configurações Oracle",
"config-header-mssql": "Configurações Microsoft SQL Server",
"config-invalid-db-type": "Tipo de base de dados inválido",
- "config-missing-db-name": "Você deve inserir um valor para \"Nome da base de dados\"",
- "config-missing-db-host": "Você deve inserir um valor para \"Hospedeiro da base de dados\"",
- "config-missing-db-server-oracle": "Você deve inserir um valor para \"Database TNS\"",
+ "config-missing-db-name": "Você deve inserir um valor para \"{{int:config-db-name}}\".",
+ "config-missing-db-host": "Você deve inserir um valor para \"{{int:config-db-host}}\".",
+ "config-missing-db-server-oracle": "Você deve inserir um valor para \"{{int:config-db-host-oracle}}\".",
"config-connection-error": "$1\n\nVerifique o servidor hospedeiro, nome de usuário e senha e tente novamente.",
"config-db-sys-user-exists-oracle": "Conta de usuário $1 já existe. SYSDBA somente será utilizado para criação de uma nova conta!",
"config-postgres-old": "PostgreSQL $1 ou posterior é necessário. Você tem $2.",
"config-license-cc-choose": "Selecione uma licença personalizada do Creative Commons",
"config-email-settings": "Configurações de email",
"config-enable-email-help": "Se você quer que o email funcione, estas [http://www.php.net/manual/en/mail.configuration.php configurações de email PHP] precisam ser configuradas corretamente. \nSe você não quiser usar nenhuma das funcionalidades, você pode desabilitá-las aqui.",
- "config-email-user": "Habilitação de email de usuário para usuário",
- "config-email-user-help": "Permite que todos os usuários mandem email uns aos outros, se eles tiverem habilitado o envio em suas preferências.",
- "config-email-usertalk": "Habilitação das notificações da página de discussão dos usuários",
+ "config-email-user": "Ativar emails entre usuários",
+ "config-email-user-help": "Permitir que todos os usuários enviem email entre si se eles tiverem habilitado este recurso em suas preferências.",
+ "config-email-usertalk": "Ativar notificações de alterações à página de discussão de usuário",
"config-email-usertalk-help": "Permite que os usuários recebam as notificações quando suas páginas de discussão se modificarem, se eles tiverem habilitado as notificações em suas preferências.",
- "config-email-watchlist": "Habilitação das notificações de vigilância",
- "config-email-watchlist-help": "Permite que os usuários recebam as notificações sobre suas páginas vigiadas, se eles tiverem habilitado isto em suas preferências.",
- "config-email-auth": "Autenticação de email habilitada",
- "config-email-sender": "Endereço de email de resposta:",
+ "config-email-watchlist": "Ativar notificação de alterações às páginas vigiadas",
+ "config-email-watchlist-help": "Permite que os usuários recebam notificações sobre suas páginas vigiadas se eles tiverem habilitado este recurso em suas preferências.",
+ "config-email-auth": "Ativar autenticação de email",
+ "config-email-sender": "Endereço de email para resposta:",
"config-upload-settings": "Imagens e arquivos carregados",
- "config-upload-enable": "Habilite o carregamento de arquivos",
+ "config-upload-enable": "Permitir o carregamento de arquivos",
"config-upload-deleted": "Diretório para arquivos excluídos:",
"config-upload-deleted-help": "Escolha um diretório no qual serão armazenados os arquivos excluídos. \nIdealmente, este não deveria ser acessível pela web.",
"config-logo": "URL do logotipo:",
"config-logo-help": "Faça o upload de uma imagem de tamanho adequado e insira seu URL aqui.\n\nVocê pode usar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logotipo for associado a esses diretórios.",
- "config-instantcommons": "Habilite o Instant Commons",
+ "config-instantcommons": "Ativar o Instant Commons",
"config-cc-again": "Escolha novamente...",
"config-advanced-settings": "Configuração avançada",
"config-extensions": "Extensões",
"config-install-extension-tables": "Criando tabelas para extensões habilitadas",
"config-install-mainpage-failed": "Não foi possível inserir a página principal: $1",
"config-install-done": "'''Parabéns!'''\nVocê concluiu a instalação do MediaWiki.\n\nO instalador gerou um arquivo <code>LocalSettings.php</code>.\nEste arquivo contém todas as configurações que você fez.\n\nVocê precisa fazer o download desse arquivo e colocá-lo no diretório de raiz da sua instalação (o mesmo diretório onde está o arquivo <code>index.php</code>). Este download deve ter sido iniciado automaticamente.\n\nSe o download não foi iniciado, ou se ele foi cancelado, pode recomeçá-lo clicando o link abaixo:\n\n$3\n\n'''Nota''': Se não fizer isto agora, o arquivo que foi gerado não estará disponível depois que você sair do processo de instalação sem salvá-lo.\n\nDepois de terminar o passo anterior, pode '''[$2 entrar no wiki]'''.",
- "config-download-localsettings": "Download <code>LocalSettings.php</code>",
+ "config-download-localsettings": "Baixar <code>LocalSettings.php</code>",
"config-help": "ajuda",
"config-nofile": "O arquivo \"$1\" não pode ser encontrado. Este arquivo foi apagado?",
"config-extension-link": "Você sabia que seu wiki suporta [//www.mediawiki.org/wiki/Manual:Extensions extensões]?\n\nVocê pode explorar as [//www.mediawiki.org/wiki/Category:Extensions_by_category extensões por categoria] ou visitar a [//www.mediawiki.org/wiki/Extension_Matrix Matriz de Extensões] para ver a lista completa.",
"Byfserag",
"Hudafu",
"Liuxinyu970226",
- "Qiyue2001"
+ "Qiyue2001",
+ "Kuailong"
]
},
"config-desc": "MediaWiki安装程序",
"config-mysql-utf8": "UTF-8",
"config-mysql-charset-help": "在'''二进制模式'''下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。\n\n在'''UTF-8模式'''下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
"config-mssql-auth": "身份验证类型:",
+ "config-mssql-install-auth": "选择安装过程中链接数据库时将采用的身份验证方式。\n如果您选择“{{int:config-mssql-windowsauth}}”,将使用运行服务器的用户的身份凭据。",
"config-mssql-web-auth": "选择Web服务器在通常wiki操作期间用来连接数据库服务器的身份验证方式。\n如果您选择“{{int:config-mssql-windowsauth}}”,将使用运行Web服务器的用户的凭据。",
"config-mssql-sqlauth": "SQL Server 身份验证",
"config-mssql-windowsauth": "Windows 身份验证",
* This may add duplicate at insert time, but they will be
* removed later on, when the first one is popped.
*
- * @param array $jobs of Job objects
+ * @param array $jobs Array of Job objects
* @return bool
* @deprecated since 1.21
*/
* be rolled-back as part of a larger transaction. However,
* large batches of jobs can cause slave lag.
*
- * @param array $jobs of Job objects
+ * @param array $jobs Array of Job objects
* @return bool
* @deprecated since 1.21
*/
* actually find a job; it may be adversely affected by concurrent job
* runners.
*
- * @param $type string
+ * @param string $type
* @return Job|bool Returns false if there are no jobs
* @deprecated since 1.21
*/
*------------------------------------------------------------------------*/
/**
- * @param $command
- * @param $title
- * @param $params array|bool
+ * @param string $command
+ * @param Title $title
+ * @param array|bool $params
*/
public function __construct( $command, $title, $params = false ) {
$this->command = $command;
}
/**
- * @return integer Number of actually "work items" handled in this job
+ * @return int Number of actually "work items" handled in this job
* @see $wgJobBackoffThrottling
* @since 1.23
*/
/**
* @see JobQueue::batchPush()
* @param array $jobs
- * @param $flags
+ * @param array $flags
*/
abstract protected function doBatchPush( array $jobs, $flags );
/**
* @see JobQueue::doBatchPush()
* @param array $jobs
- * @param $flags
+ * @param array $flags
* @throws DBError|Exception
* @return bool
*/
* Reserve a row with a single UPDATE without holding row locks over RTTs...
*
* @param string $uuid 32 char hex string
- * @param $rand integer Random unsigned integer (31 bits)
+ * @param int $rand Random unsigned integer (31 bits)
* @param bool $gte Search for job_random >= $random (otherwise job_random <= $random)
* @return stdClass|bool Row|false
*/
}
/**
- * @param $index integer (DB_SLAVE/DB_MASTER)
+ * @param int $index (DB_SLAVE/DB_MASTER)
* @return DBConnRef
*/
protected function getDB( $index ) {
}
/**
- * @param $property
+ * @param string $property
* @return string
*/
private function getCacheKey( $property ) {
}
/**
- * @param $params
+ * @param array|bool $params
* @return string
*/
protected static function makeBlob( $params ) {
}
/**
- * @param $blob
+ * @param string $blob
* @return bool|mixed
*/
protected static function extractBlob( $blob ) {
}
/**
- * @param $property
+ * @param string $property
* @return string
*/
private function getCacheKey( $property ) {
/**
* Check if there are any queues with jobs (this is cached)
*
- * @param integer $type JobQueueGroup::TYPE_* constant
+ * @param int $type JobQueueGroup::TYPE_* constant
* @return bool
* @since 1.23
*/
}
/**
- * @param $name string
+ * @param string $name
* @return mixed
*/
private function getCachedConfigVar( $name ) {
/**
* @see JobQueue::doBatchPush()
* @param array $jobs
- * @param $flags
+ * @param array $flags
* @return bool
* @throws JobQueueError
*/
/**
* @param RedisConnRef $conn
- * @return array serialized string or false
+ * @return array Serialized string or false
* @throws RedisException
*/
protected function popAndDeleteBlob( RedisConnRef $conn ) {
/**
* @param RedisConnRef $conn
- * @return array serialized string or false
+ * @return array Serialized string or false
* @throws RedisException
*/
protected function popAndAcquireBlob( RedisConnRef $conn ) {
/**
* This function should not be called outside JobQueueRedis
*
- * @param $uid string
- * @param $conn RedisConnRef
+ * @param string $uid
+ * @param RedisConnRef $conn
* @return Job|bool Returns false if the job does not exist
* @throws MWException|JobQueueError
*/
}
/**
- * @param $fields array
+ * @param array $fields
* @return Job|bool
*/
protected function getJobFromFields( array $fields ) {
}
/**
- * @param $conn RedisConnRef
- * @param $e RedisException
+ * @param RedisConnRef $conn
+ * @param RedisException $e
* @throws JobQueueError
*/
protected function throwRedisException( RedisConnRef $conn, $e ) {
}
/**
- * @param $prop string
- * @param $type string|null
+ * @param string $prop
+ * @param string|null $type
* @return string
*/
private function getQueueKey( $prop, $type = null ) {
}
/**
- * @param $key string
+ * @param string $key
* @return void
*/
public function setTestingPrefix( $key ) {
/**
* Insert jobs into the job queue to fix redirects to the given title
- * @param string $reason the reason for the fix, see message
+ * @param string $reason The reason for the fix, see message
* "double-redirect-fixed-<reason>"
- * @param $redirTitle Title: the title which has changed, redirects
+ * @param Title $redirTitle The title which has changed, redirects
* pointing to this title are fixed
* @param bool $destTitle Not used
*/
/**
* Get the final destination of a redirect
*
- * @param $title Title
+ * @param Title $title
*
- * @return bool if the specified title is not a redirect, or if it is a circular redirect
+ * @return bool If the specified title is not a redirect, or if it is a circular redirect
*/
public static function getFinalDestination( $title ) {
$dbw = wfGetDB( DB_MASTER );
/**
* Run a refreshLinks2 job
- * @return boolean success
+ * @return bool Success
*/
function run() {
global $wgUpdateRowsPerJob;
}
/**
- * @param $table string
- * @param $masterPos mixed
- * @return Array
+ * @param string $table
+ * @param mixed $masterPos
+ * @return array
*/
protected function getSingleTitleJobs( $table, $masterPos ) {
# The "start"/"end" fields are not set for the base jobs
}
/**
- * @return Array
+ * @return array
*/
public function getDeduplicationInfo() {
$info = parent::getDeduplicationInfo();
}
/**
- * @param $key
+ * @param string $key
* @return mixed
*/
public static function &getSessionData( $key ) {
<?php
/**
- * lessphp v0.4.0@b7cd5c79e8
+ * lessphp v0.4.0@2cc77e3c7b
* http://leafo.net/lessphp
*
* LESS CSS compiler, adapted from http://lesscss.org
* The input is expected to be reduced. This function will not work on
* things like expressions and variables.
*/
- protected function compileValue($value) {
+ public function compileValue($value) {
switch ($value[0]) {
case 'list':
// [1] - delimiter
/**
* Get width and height from the bmp header.
*
- * @param $image
+ * @param File $image
* @param string $filename
* @return array
*/
*/
class BitmapHandler_ClientOnly extends BitmapHandler {
/**
- * @param $image File
- * @param $params
+ * @param File $image
+ * @param array $params
* @return bool
*/
function normaliseParams( $image, &$params ) {
* Get metadata, unserializing it if neccessary.
*
* @param File $file The DjVu file in question
- * @return String XML metadata as a string.
+ * @return string XML metadata as a string.
*/
private function getUnserializedMetadata( File $file ) {
$metadata = $file->getMetadata();
/**
* Return data in the style of getimagesize()
- * @return array or false on failure
+ * @return array|bool Array or false on failure
*/
public function getImageSize() {
$data = $this->getInfo();
/**
* Hack to temporarily work around djvutoxml bug
- * @param $dump
+ * @param string $dump
* @return string
*/
function convertDumpToXML( $dump ) {
}
/**
- * @param $image
+ * @param File $image
* @param array $metadata
* @return bool|int
*/
* the width and height we normally work with is logical, and will match
* any produced output views.
*
- * @param $file File
+ * @param File $file
* @return int 0, 90, 180 or 270
*/
public function getRotation( $file ) {
* @param bool $noHtml If to avoid returning anything resembling HTML.
* (Ugly hack for backwards compatibility with old MediaWiki).
* @param bool|IContextSource $context
- * @return String single value (in wiki-syntax).
+ * @return string Single value (in wiki-syntax).
* @since 1.23
*/
public static function flattenArrayContentLang( $vals, $type = 'ul',
* lang = language assoc array with keys being the lang code
* ul = unordered list, ol = ordered list
* type can also come from the '_type' member of $vals.
- * @param $noHtml Boolean If to avoid returning anything resembling HTML.
+ * @param bool $noHtml If to avoid returning anything resembling HTML.
* (Ugly hack for backwards compatibility with old mediawiki).
- * @return String single value (in wiki-syntax).
+ * @return string Single value (in wiki-syntax).
* @since 1.23
*/
public function flattenArrayReal( $vals, $type = 'ul', $noHtml = false ) {
/** Helper function for creating lists of translations.
*
- * @param string $value value (this is not escaped)
- * @param string $lang lang code of item or false
+ * @param string $value Value (this is not escaped)
+ * @param string $lang Lang code of item or false
* @param bool $default If it is default value.
* @param bool $noHtml If to avoid html (for back-compat)
* @throws MWException
* This is used by the media handlers that use the FormatMetadata class
*
* @param array $metadataArray Metadata array
- * @return array for use displaying metadata.
+ * @return array Array for use displaying metadata.
*/
function formatMetadataHelper( $metadataArray ) {
$result = array(
* Get a list of metadata items which should be displayed when
* the metadata table is collapsed.
*
- * @return array of strings
+ * @return array Array of strings
*/
protected function visibleMetadataFields() {
return FormatMetadata::getVisibleFields();
* Shown in file history box on image description page.
*
* @param File $file
- * @return String Dimensions
+ * @return string Dimensions
*/
function getDimensionsString( $file ) {
return '';
* Get list of languages file can be viewed in.
*
* @param File $file
- * @return Array Array of language codes, or empty array if unsupported.
+ * @return string[] Array of language codes, or empty array if unsupported.
* @since 1.23
*/
public function getAvailableLanguages( File $file ) {
* type do not support alternative language renderings.
*
* @param File $file
- * @return String language code or null if multi-language not supported for filetype.
+ * @return string|null Language code or null if multi-language not supported for filetype.
* @since 1.23
*/
public function getDefaultRenderLanguage( File $file ) {
/**
* Get the final extension of the thumbnail.
* Returns false for scripted transformations.
- * @return string|false
+ * @return string|bool
*/
public function getExtension() {
return $this->path ? FileBackend::extensionFromPath( $this->path ) : false;
}
/**
- * @return string|false The thumbnail URL
+ * @return string|bool The thumbnail URL
*/
public function getUrl() {
return $this->url;
}
/**
- * @param $title string
+ * @param string $title
* @param string|array $params Query parameters to add
* @return array
*/
* this list.
*
* @param File $file
- * @return Array of language codes, or empty if no language switching supported.
+ * @return array Array of language codes, or empty if no language switching supported.
*/
public function getAvailableLanguages( File $file ) {
$metadata = $file->getMetadata();
/**
* What language to render file in if none selected.
*
- * @return String language code.
+ * @return string Language code.
*/
public function getDefaultRenderLanguage( File $file ) {
return 'en';
}
/**
- * @return Array with the known metadata
+ * @return array Array with the known metadata
*/
public function getMetadata() {
return $this->metadata;
/** Get the result array. Do some post-processing before returning
* the array, and transform any metadata that is special-cased.
*
- * @return Array array of results as an array of arrays suitable for
+ * @return array Array of results as an array of arrays suitable for
* FormatMetadata::getFormattedData().
*/
public function getResults() {
* This is generally where most properties start.
*
* @param string $ns Namespace
- * @param string $tag tag name (without namespace prefix)
- * @param array $attribs array of attributes
+ * @param string $tag Tag name (without namespace prefix)
+ * @param array $attribs Array of attributes
* @throws MWException
*/
private function startElementModeInitial( $ns, $tag, $attribs ) {
* Generally just calls a helper based on what MODE we're in.
* Also does some initial set up for the wrapper element
*
- * @param $parser XMLParser
+ * @param XMLParser $parser
* @param string $elm Namespace "<space>" element
* @param array $attribs Attribute name => value
* @throws MWException
* choices. (closed choice)
*
* @param array $info Information about current property
- * @param &$val Mixed current value to validate
+ * @param mixed &$val Current value to validate
* @param bool $standalone If this is a simple property or array
*/
public static function validateClosed( $info, &$val, $standalone ) {
* function to validate and modify flash structure
*
* @param array $info Information about current property
- * @param &$val Mixed current value to validate
+ * @param mixed &$val Current value to validate
* @param bool $standalone If this is a simple property or array
*/
public static function validateFlash( $info, &$val, $standalone ) {
* @see http://www.adobe.com/devnet/xmp/pdfs/XMPSpecificationPart1.pdf page 30 (section 8.2.2.5)
*
* @param array $info Information about current property
- * @param &$val Mixed current value to validate
+ * @param mixed &$val Current value to validate
* @param bool $standalone If this is a simple property or array
*/
public static function validateLangCode( $info, &$val, $standalone ) {
* @param Closure $callback Callback method to be executed
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $attempts The amount of times to attempt a merge in case of failure
- * @return bool Cuccess
+ * @return bool Success
*/
public function merge( $key, Closure $callback, $exptime = 0, $attempts = 10 ) {
return $this->mergeViaLock( $key, $callback, $exptime, $attempts );
}
/**
- * @param $com bool
+ * @param bool $com
* @return bool
*/
function setContainsOldMagic( $com ) {
/**
* setCacheTime() sets the timestamp expressing when the page has been rendered.
* This does not control expiry, see updateCacheExpiry() for that!
- * @param $t string
+ * @param string $t
* @return string
*/
function setCacheTime( $t ) {
/**
* @since 1.23
- * @param $id int Revision id
+ * @param int $id Revision id
*/
function setCacheRevisionId( $id ) {
$this->mCacheRevisionId = $id;
* or equal to the smallest number that was provided as an argument to
* updateCacheExpiry().
*
- * @param $seconds number
+ * @param int $seconds
*/
function updateCacheExpiry( $seconds ) {
$seconds = (int)$seconds;
* per-article cache invalidation timestamps, or if it comes from
* an incompatible older version.
*
- * @param string $touched the affected article's last touched timestamp
- * @return Boolean
+ * @param string $touched The affected article's last touched timestamp
+ * @return bool
*/
public function expired( $touched ) {
global $wgCacheEpoch;
* deployed. Someday that should probably be changed.
*
* @since 1.23
- * @param int $id the affected article's current revision id
- * @return Boolean
+ * @param int $id The affected article's current revision id
+ * @return bool
*/
public function isDifferentRevision( $id ) {
$cached = $this->getCacheRevisionId();
*/
class CoreParserFunctions {
/**
- * @param $parser Parser
+ * @param Parser $parser
* @return void
*/
static function register( $parser ) {
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $part1
* @return array
*/
* Or to encode a value for the HTTP "path", spaces are encoded as '%20'.
* For links to "wiki"s, or similar software, spaces are encoded as '_',
*
- * @param $parser Parser object
+ * @param Parser $parser
* @param string $s The text to encode.
* @param string $arg (optional): The type of encoding.
* @return string
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $s
* @return
*/
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $s
* @return
*/
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $num
* @param string $arg
* @return string
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $case
* @param string $word
* @return
}
/**
- * @param $parser Parser
- * @param $username string
+ * @param Parser $parser
+ * @param string $username
* @return
*/
static function gender( $parser, $username ) {
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $text
* @return
*/
* Override the title of the page when viewed, provided we've been given a
* title which will normalise to the canonical title
*
- * @param $parser Parser: parent parser
- * @param string $text desired title text
- * @return String
+ * @param Parser $parser Parent parser
+ * @param string $text Desired title text
+ * @return string
*/
static function displaytitle( $parser, $text = '' ) {
global $wgRestrictDisplayTitle;
/**
* Matches the given value against the value of given magic word
*
- * @param string $magicword magic word key
- * @param mixed $value value to match
- * @return boolean true on successful match
+ * @param string $magicword Magic word key
+ * @param string $value Value to match
+ * @return bool True on successful match
*/
private static function matchAgainstMagicword( $magicword, $value ) {
$value = trim( strval( $value ) );
/**
* Functions to get and normalize pagenames, corresponding to the magic words
* of the same names
- * @return String
+ * @return string
*/
static function pagename( $parser, $title = null ) {
$t = Title::newFromText( $title );
* Return the size of the given page, or 0 if it's nonexistent. This is an
* expensive parser function and can't be called too many times per page.
*
- * @param $parser Parser
- * @param $page String Name of page to check (Default: empty string)
- * @param $raw String Should number be human readable with commas or just number
+ * @param Parser $parser
+ * @param string $page Name of page to check (Default: empty string)
+ * @param string $raw Should number be human readable with commas or just number
* @return string
*/
static function pagesize( $parser, $page = '', $raw = null ) {
/**
* Gives language names.
- * @param $parser Parser
- * @param string $code Language code (of which to get name)
- * @param string $inLanguage Language code (in which to get name)
- * @return String
+ * @param Parser $parser
+ * @param string $code Language code (of which to get name)
+ * @param string $inLanguage Language code (in which to get name)
+ * @return string
*/
static function language( $parser, $code = '', $inLanguage = '' ) {
$code = strtolower( $code );
/**
* Unicode-safe str_pad with the restriction that $length is forced to be <= 500
+ * @param Parser $parser
+ * @param string $string
+ * @param int $length
+ * @param string $padding
+ * @param int $direction
* @return string
*/
static function pad( $parser, $string, $length, $padding = '0', $direction = STR_PAD_RIGHT ) {
}
/**
- * @param $parser Parser
- * @param $text
+ * @param Parser $parser
+ * @param string $text
* @return string
*/
static function anchorencode( $parser, $text ) {
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @param string $text The sortkey to use
* @param string $uarg Either "noreplace" or "noerror" (in en)
* both suppress errors, and noreplace does nothing if
/**
* Parser function to extension tag adaptor
+ * @param Parser $parser
+ * @param PPFrame $frame
+ * @param array $args
* @return string
*/
public static function tagObj( $parser, $frame, $args ) {
* For a given title, which is equal to the current parser title,
* the revision object from the parser is used, when that is the current one
*
- * @param $parser Parser
- * @param $title Title
+ * @param Parser $parser
+ * @param Title $title
* @return Revision
* @since 1.23
*/
/**
* Get the pageid of a specified page
- * @param $parser Parser
- * @param $title string Title to get the pageid from
+ * @param Parser $parser
+ * @param string $title Title to get the pageid from
* @since 1.23
*/
public static function pageid( $parser, $title = null ) {
/**
* Get the id from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the id from
+ * @param Parser $parser
+ * @param string $title Title to get the id from
* @since 1.23
*/
public static function revisionid( $parser, $title = null ) {
/**
* Get the day from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the day from
+ * @param Parser $parser
+ * @param string $title Title to get the day from
* @since 1.23
*/
public static function revisionday( $parser, $title = null ) {
/**
* Get the day with leading zeros from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the day from
+ * @param Parser $parser
+ * @param string $title Title to get the day from
* @since 1.23
*/
public static function revisionday2( $parser, $title = null ) {
/**
* Get the month with leading zeros from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the month from
+ * @param Parser $parser
+ * @param string $title Title to get the month from
* @since 1.23
*/
public static function revisionmonth( $parser, $title = null ) {
/**
* Get the month from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the month from
+ * @param Parser $parser
+ * @param string $title Title to get the month from
* @since 1.23
*/
public static function revisionmonth1( $parser, $title = null ) {
/**
* Get the year from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the year from
+ * @param Parser $parser
+ * @param string $title Title to get the year from
* @since 1.23
*/
public static function revisionyear( $parser, $title = null ) {
/**
* Get the timestamp from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the timestamp from
+ * @param Parser $parser
+ * @param string $title Title to get the timestamp from
* @since 1.23
*/
public static function revisiontimestamp( $parser, $title = null ) {
/**
* Get the user from the last revision of a specified page.
- * @param $parser Parser
- * @param $title string Title to get the user from
+ * @param Parser $parser
+ * @param string $title Title to get the user from
* @since 1.23
*/
public static function revisionuser( $parser, $title = null ) {
*/
class CoreTagHooks {
/**
- * @param $parser Parser
+ * @param Parser $parser
* @return void
*/
static function register( $parser ) {
*
* Uses undocumented extended tag hook return values, introduced in r61913.
*
- * @param $content string
- * @param $attributes array
- * @param $parser Parser
+ * @param string $content
+ * @param array $attributes
+ * @param Parser $parser
* @throws MWException
* @return array
*/
*
* Uses undocumented extended tag hook return values, introduced in r61913.
*
- * @param $content string
- * @param $attributes array
- * @param $parser Parser
+ * @param string $content
+ * @param array $attributes
+ * @param Parser $parser
* @return array
*/
static function nowiki( $content, $attributes, $parser ) {
const LAST = 8;
/**
- * @param $lang Language In which language to format the date
+ * @param Language $lang In which language to format the date
*/
function __construct( Language $lang ) {
$this->lang = $lang;
/**
* Get a DateFormatter object
*
- * @param $lang Language|string|null In which language to format the date
+ * @param Language|string|null $lang In which language to format the date
* Defaults to the site content language
* @return DateFormatter object
*/
/**
* @param string $preference User preference
* @param string $text Text to reformat
- * @param array $options can contain 'linked' and/or 'match-whole'
+ * @param array $options Array can contain 'linked' and/or 'match-whole'
*
* @return string
*/
}
/**
- * @param $matches
+ * @param array $matches
* @return string
*/
function replace( $matches ) {
}
/**
- * @param $bits array
- * @param $link bool
+ * @param array $bits
+ * @param bool $link
* @return string
*/
function formatDate( $bits, $link = true ) {
/**
* Makes an ISO month, e.g. 02, from a month name
- * @param string $monthName month name
+ * @param string $monthName Month name
* @return string ISO month name
*/
function makeIsoMonth( $monthName ) {
* serializing at present.
*
* Compact the titles, only serialize the text form.
- * @return array
- */
+ * @return array
+ */
function __sleep() {
foreach ( $this->internals as &$nsLinks ) {
foreach ( $nsLinks as &$entry ) {
/**
* Merge another LinkHolderArray into this one
- * @param $other LinkHolderArray
+ * @param LinkHolderArray $other
*/
function merge( $other ) {
foreach ( $other->internals as $ns => $entries ) {
* converted for use in the destination link holder. The resulting array of
* strings will be returned.
*
- * @param $other LinkHolderArray
- * @param array $texts of strings
- * @return Array
+ * @param LinkHolderArray $other
+ * @param array $texts Array of strings
+ * @return array
*/
function mergeForeign( $other, $texts ) {
$this->tempIdOffset = $idOffset = $this->parent->nextLinkID();
* parsing of interwiki links, and secondly to allow all existence checks and
* article length checks (for stub links) to be bundled into a single query.
*
- * @param $nt Title
- * @param $text String
+ * @param Title $nt
+ * @param string $text
* @param array $query [optional]
* @param string $trail [optional]
* @param string $prefix [optional]
/**
* Replace <!--LINK--> link placeholders with actual links, in the buffer
*
- * @return array of link CSS classes, indexed by PDBK.
+ * @return array Array of link CSS classes, indexed by PDBK.
*/
function replace( &$text ) {
wfProfileIn( __METHOD__ );
/**
* Replace internal links
+ * @param string $text
*/
protected function replaceInternal( &$text ) {
if ( !$this->internals ) {
/**
* Replace interwiki links
+ * @param string $text
*/
protected function replaceInterwiki( &$text ) {
if ( empty( $this->interwikis ) ) {
/**
* Modify $this->internals and $colours according to language variant linking rules
+ * @param array $colours
*/
protected function doVariants( &$colours ) {
global $wgContLang;
* Replace <!--LINK--> link placeholders with plain text of links
* (not HTML-formatted).
*
- * @param $text String
- * @return String
+ * @param string $text
+ * @return string
*/
function replaceText( $text ) {
wfProfileIn( __METHOD__ );
/**
* Callback for replaceText()
*
- * @param $matches Array
+ * @param array $matches
* @return string
* @private
*/
var $mUniqPrefix;
/**
- * @var Array with the language name of each language link (i.e. the
+ * @var array Array with the language name of each language link (i.e. the
* interwiki prefix) in the key, value arbitrary. Used to avoid sending
* duplicate language links to the ParserOutput.
*/
/**
* Constructor
*
- * @param $conf array
+ * @param array $conf
*/
public function __construct( $conf = array() ) {
$this->mConf = $conf;
* Do not call this function recursively.
*
* @param string $text text we want to parse
- * @param $title Title object
- * @param $options ParserOptions
- * @param $linestart boolean
- * @param $clearState boolean
- * @param int $revid number to pass in {{REVISIONID}}
- * @return ParserOutput a ParserOutput
+ * @param Title $title
+ * @param ParserOptions $options
+ * @param bool $linestart
+ * @param bool $clearState
+ * @param int $revid Number to pass in {{REVISIONID}}
+ * @return ParserOutput A ParserOutput
*/
public function parse( $text, Title $title, ParserOptions $options, $linestart = true, $clearState = true, $revid = null ) {
/**
*
* If $frame is not provided, then template variables (e.g., {{{1}}}) within $text are not expanded
*
- * @param string $text text extension wants to have parsed
+ * @param string $text Text extension wants to have parsed
* @param PPFrame $frame The frame to use for expanding any template variables
*
* @return string
/**
* Expand templates and variables in the text, producing valid, static wikitext.
* Also removes comments.
+ * @param string $text
+ * @param Title $title
+ * @param ParserOptions $options
+ * @param int|null $revid
* @return mixed|string
*/
function preprocess( $text, Title $title = null, ParserOptions $options, $revid = null ) {
* Recursive parser entry point that can be called from an extension tag
* hook.
*
- * @param string $text text to be expanded
+ * @param string $text Text to be expanded
* @param PPFrame $frame The frame to use for expanding any template variables
* @return string
* @since 1.19
* transclusion, comments, templates, arguments, tags hooks and parser
* functions are untouched.
*
- * @param $text String
- * @param $title Title
- * @param $options ParserOptions
- * @param $params Array
- * @return String
+ * @param string $text
+ * @param Title $title
+ * @param ParserOptions $options
+ * @param array $params
+ * @return string
*/
public function getPreloadText( $text, Title $title, ParserOptions $options, $params = array() ) {
$msg = new RawMessage( $text );
/**
* Accessor for mUniqPrefix.
*
- * @return String
+ * @return string
*/
public function uniqPrefix() {
if ( !isset( $this->mUniqPrefix ) ) {
/**
* Set the context title
*
- * @param $t Title
+ * @param Title $t
*/
function setTitle( $t ) {
if ( !$t ) {
/**
* Accessor for the Title object
*
- * @return Title object
+ * @return Title
*/
function getTitle() {
return $this->mTitle;
/**
* Accessor/mutator for the Title object
*
- * @param $x Title object or null to just get the current one
- * @return Title object
+ * @param Title $x Title object or null to just get the current one
+ * @return Title
*/
function Title( $x = null ) {
return wfSetVar( $this->mTitle, $x );
/**
* Set the output type
*
- * @param int $ot new value
+ * @param int $ot New value
*/
function setOutputType( $ot ) {
$this->mOutputType = $ot;
* Accessor/mutator for the output type
*
* @param int|null $x New value or null to just get the current one
- * @return Integer
+ * @return int
*/
function OutputType( $x = null ) {
return wfSetVar( $this->mOutputType, $x );
/**
* Get the ParserOutput object
*
- * @return ParserOutput object
+ * @return ParserOutput
*/
function getOutput() {
return $this->mOutput;
/**
* Accessor/mutator for the ParserOptions object
*
- * @param $x ParserOptions New value or null to just get the current one
+ * @param ParserOptions $x New value or null to just get the current one
* @return ParserOptions Current ParserOptions object
*/
function Options( $x = null ) {
}
/**
- * @param $id int
+ * @param int $id
*/
function setLinkID( $id ) {
$this->mLinkID = $id;
/**
* Get the language object for language conversion
+ * @return Language|null
*/
function getConverterLanguage() {
return $this->getTargetLanguage();
* Get a User object either from $this->mUser, if set, or from the
* ParserOptions object otherwise
*
- * @return User object
+ * @return User
*/
function getUser() {
if ( !is_null( $this->mUser ) ) {
/**
* Get a preprocessor object
*
- * @return Preprocessor instance
+ * @return Preprocessor
*/
function getPreprocessor() {
if ( !isset( $this->mPreprocessor ) ) {
* Returns the unique tag which must be inserted into the stripped text
* The tag will be replaced with the original text in unstrip()
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
* parse the wiki syntax used to render tables
*
* @private
+ * @param string $text
* @return string
*/
function doTableStuff( $text ) {
*
* @private
*
- * @param $text string
- * @param $isMain bool
- * @param $frame bool
+ * @param string $text
+ * @param bool $isMain
+ * @param bool $frame
*
* @return string
*/
* DML
* @private
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
/**
* @throws MWException
- * @param $m array
+ * @param array $m
* @return HTML|string
*/
function magicLinkCallback( $m ) {
/**
* Make a free external link, given a user-supplied URL
*
- * @param $url string
+ * @param string $url
*
* @return string HTML
* @private
*
* @private
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
* Replace single quotes with HTML markup
* @private
*
- * @param $text string
+ * @param string $text
*
* @return string the altered text
*/
/**
* Helper function for doAllQuotes()
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
*
* @private
*
- * @param $text string
+ * @param string $text
*
* @throws MWException
* @return string
* Get the rel attribute for a particular external link.
*
* @since 1.21
- * @param string|bool $url optional URL, to extract the domain from for rel =>
+ * @param string|bool $url Optional URL, to extract the domain from for rel =>
* nofollow if appropriate
- * @param $title Title optional Title, for wgNoFollowNsExceptions lookups
- * @return string|null rel attribute for $url
+ * @param Title $title Optional Title, for wgNoFollowNsExceptions lookups
+ * @return string|null Rel attribute for $url
*/
public static function getExternalLinkRel( $url = false, $title = null ) {
global $wgNoFollowLinks, $wgNoFollowNsExceptions, $wgNoFollowDomainExceptions;
* (depending on configuration, namespace, and the URL's domain) and/or a
* target attribute (depending on configuration).
*
- * @param string|bool $url optional URL, to extract the domain from for rel =>
+ * @param string|bool $url Optional URL, to extract the domain from for rel =>
* nofollow if appropriate
- * @return Array associative array of HTML attributes
+ * @return array Associative array of HTML attributes
*/
function getExternalLinkAttribs( $url = false ) {
$attribs = array();
/**
* Replace unusual URL escape codes with their equivalent characters
*
- * @param $url String
- * @return String
+ * @param string $url
+ * @return string
*
* @todo This can merge genuinely required bits in the path or query string,
* breaking legit URLs. A proper fix would treat the various parts of
* Callback function used in replaceUnusualEscapes().
* Replaces unusual URL escape codes with their equivalent character
*
- * @param $matches array
+ * @param array $matches
*
* @return string
*/
* option, through the exception, or through the on-wiki whitelist
* @private
*
- * $param $url string
+ * $param string $url
*
* @return string
*/
/**
* Process [[ ]] wikilinks (RIL)
- * @param $s
+ * @param string $s
* @throws MWException
* @return LinkHolderArray
*
/**
* Return true if subpage links should be expanded on this page.
- * @return Boolean
+ * @return bool
*/
function areSubpagesAllowed() {
# Some namespaces don't allow subpages
* of both arguments, starting at the beginning of both.
* @private
*
- * @param $st1 string
- * @param $st2 string
+ * @param string $st1
+ * @param string $st2
*
* @return int
*/
* element appropriate to the prefix character passed into them.
* @private
*
- * @param $char string
+ * @param string $char
*
* @return string
*/
/**
* TODO: document
- * @param $char String
+ * @param string $char
* @private
*
* @return string
/**
* TODO: document
- * @param $char String
+ * @param string $char
* @private
*
* @return string
* Split up a string on ':', ignoring any occurrences inside tags
* to prevent illegal overlapping.
*
- * @param string $str the string to split
- * @param &$before String set to everything before the ':'
- * @param &$after String set to everything after the ':'
+ * @param string $str The string to split
+ * @param string &$before Set to everything before the ':'
+ * @param string &$after Set to everything after the ':'
* @throws MWException
- * @return String the position of the ':', or false if none found
+ * @return string The position of the ':', or false if none found
*/
function findColonNoLinks( $str, &$before, &$after ) {
wfProfileIn( __METHOD__ );
*
* @private
*
- * @param $index integer
- * @param bool|\PPFrame $frame
+ * @param int $index
+ * @param bool|PPFrame $frame
*
* @throws MWException
* @return string
/**
* Return a three-element array: leading whitespace, string contents, trailing whitespace
*
- * @param $s string
+ * @param string $s
*
* @return array
*/
* self::OT_PREPROCESS: templates but not extension tags
* self::OT_HTML: all templates and extension tags
*
- * @param string $text the text to transform
- * @param $frame PPFrame Object describing the arguments passed to the template.
+ * @param string $text The text to transform
+ * @param PPFrame $frame Object describing the arguments passed to the template.
* Arguments may also be provided as an associative array, as was the usual case before MW1.12.
* Providing arguments this way may be useful for extensions wishing to perform variable replacement explicitly.
- * @param $argsOnly Boolean only do argument (triple-brace) expansion, not double-brace expansion
+ * @param bool $argsOnly Only do argument (triple-brace) expansion, not double-brace expansion
* @private
*
* @return string
/**
* Clean up argument array - refactored in 1.9 so parserfunctions can use it, too.
*
- * @param $args array
+ * @param array $args
*
* @return array
*/
* Warn the user when a parser limitation is reached
* Will warn at most once the user per limitation type
*
- * @param string $limitationType should be one of:
+ * @param string $limitationType Should be one of:
* 'expensive-parserfunction' (corresponding messages:
* 'expensive-parserfunction-warning',
* 'expensive-parserfunction-category')
* nowiki: bool, wiki markup in $text should be escaped
*
* @since 1.21
- * @param $frame PPFrame The current frame, contains template arguments
- * @param $function string Function name
- * @param $args array Arguments to the function
+ * @param PPFrame $frame The current frame, contains template arguments
+ * @param string $function Function name
+ * @param array $args Arguments to the function
* @return array
*/
public function callParserFunction( $frame, $function, array $args = array() ) {
* Get the semi-parsed DOM representation of a template with a given title,
* and its redirect destination title. Cached.
*
- * @param $title Title
+ * @param Title $title
*
* @return array
*/
/**
* Fetch the unparsed text of a template and register a reference to it.
* @param Title $title
- * @return Array ( string or false, Title )
+ * @return array ( string or false, Title )
*/
function fetchTemplateAndTitle( $title ) {
$templateCb = $this->mOptions->getTemplateCallback(); # Defaults to Parser::statelessFetchTemplate()
/**
* Fetch the unparsed text of a template and register a reference to it.
* @param Title $title
- * @return mixed string or false
+ * @return string|bool
*/
function fetchTemplate( $title ) {
$rv = $this->fetchTemplateAndTitle( $title );
* If 'broken' is a key in $options then the file will appear as a broken thumbnail.
* @param Title $title
* @param array $options Array of options to RepoGroup::findFile
- * @return Array ( File or false, Title of file )
+ * @return array ( File or false, Title of file )
*/
function fetchFileAndTitle( $title, $options = array() ) {
$file = $this->fetchFileNoRegister( $title, $options );
*
* @param Title $title
* @param array $options Array of options to RepoGroup::findFile
- * @return File or false
+ * @return File|bool
*/
protected function fetchFileNoRegister( $title, $options = array() ) {
if ( isset( $options['broken'] ) ) {
/**
* Transclude an interwiki link.
*
- * @param $title Title
- * @param $action
+ * @param Title $title
+ * @param string $action
*
* @return string
*/
}
/**
- * @param $url string
- * @return Mixed|String
+ * @param string $url
+ * @return mixed|string
*/
function fetchScaryTemplateMaybeFromCache( $url ) {
global $wgTranscludeCacheExpiry;
* Triple brace replacement -- used for template arguments
* @private
*
- * @param $piece array
- * @param $frame PPFrame
+ * @param array $piece
+ * @param PPFrame $frame
*
* @return array
*/
* attributes Optional associative array of parsed attributes
* inner Contents of extension element
* noClose Original text did not have a close tag
- * @param $frame PPFrame
+ * @param PPFrame $frame
*
* @throws MWException
* @return string
*
* @param string $type The type of expansion
* @param int $size The size of the text
- * @return bool false if this inclusion would take it over the maximum, true otherwise
+ * @return bool False if this inclusion would take it over the maximum, true otherwise
*/
function incrementIncludeSize( $type, $size ) {
if ( $this->mIncludeSizes[$type] + $size > $this->mOptions->getMaxIncludeSize() ) {
/**
* Increment the expensive function count
*
- * @return bool false if the limit has been exceeded
+ * @return bool False if the limit has been exceeded
*/
function incrementExpensiveFunctionCount() {
$this->mExpensiveFunctionCount++;
* Strip double-underscore items like __NOGALLERY__ and __NOTOC__
* Fills $this->mDoubleUnderscores, returns the modified text
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
* It loops through all headlines, collects the necessary data, then splits up the
* string and re-inserts the newly formatted headlines.
*
- * @param $text String
- * @param string $origText original, untouched wikitext
- * @param $isMain Boolean
+ * @param string $text
+ * @param string $origText Original, untouched wikitext
+ * @param bool $isMain
* @return mixed|string
* @private
*/
/**
* Pre-save transform helper function
*
- * @param $text string
- * @param $user User
+ * @param string $text
+ * @param User $user
*
* @return string
*/
* Do not reuse this parser instance after calling getUserSig(),
* as it may have changed if it's the $wgParser.
*
- * @param $user User
- * @param string|bool $nickname nickname to use or false to use user's default nickname
- * @param $fancySig Boolean|null whether the nicknname is the complete signature
- * or null to use default value
+ * @param User $user
+ * @param string|bool $nickname Nickname to use or false to use user's default nickname
+ * @param bool|null $fancySig whether the nicknname is the complete signature
+ * or null to use default value
* @return string
*/
function getUserSig( &$user, $nickname = false, $fancySig = null ) {
/**
* Check that the user's signature contains no bad XML
*
- * @param $text String
- * @return mixed An expanded string, or false if invalid.
+ * @param string $text
+ * @return string|bool An expanded string, or false if invalid.
*/
function validateSig( $text ) {
return Xml::isWellFormedXmlFragment( $text ) ? $text : false;
* Set up some variables which are usually set up in parse()
* so that an external function can call some class members with confidence
*
- * @param $title Title|null
- * @param $options ParserOptions
- * @param $outputType
- * @param $clearState bool
+ * @param Title|null $title
+ * @param ParserOptions $options
+ * @param int $outputType
+ * @param bool $clearState
*/
public function startExternalParse( Title $title = null, ParserOptions $options, $outputType, $clearState = true ) {
$this->startParse( $title, $options, $outputType, $clearState );
}
/**
- * @param $title Title|null
- * @param $options ParserOptions
- * @param $outputType
- * @param $clearState bool
+ * @param Title|null $title
+ * @param ParserOptions $options
+ * @param int $outputType
+ * @param bool $clearState
*/
private function startParse( Title $title = null, ParserOptions $options, $outputType, $clearState = true ) {
$this->setTitle( $title );
/**
* Get all registered function hook identifiers
*
- * @return Array
+ * @return array
*/
function getFunctionHooks() {
return array_keys( $this->mFunctionHooks );
* Create a tag function, e.g. "<test>some stuff</test>".
* Unlike tag hooks, tag functions are parsed at preprocessor level.
* Unlike parser functions, their content is not preprocessed.
- * @param $tag
- * @param $callback
- * @param $flags
+ * @param string $tag
+ * @param callable $callback
+ * @param int $flags
* @throws MWException
* @return null
*/
* Replace "<!--LINK-->" link placeholders with actual links, in the buffer
* Placeholders created in Skin::makeLinkObj()
*
- * @param $text string
- * @param $options int
+ * @param string $text
+ * @param int $options
*
- * @return array of link CSS classes, indexed by PDBK.
+ * @return array Array of link CSS classes, indexed by PDBK.
*/
function replaceLinkHolders( &$text, $options = 0 ) {
return $this->mLinkHolders->replace( $text );
* Replace "<!--LINK-->" link placeholders with plain text of links
* (not HTML-formatted).
*
- * @param $text String
- * @return String
+ * @param string $text
+ * @return string
*/
function replaceLinkHoldersText( $text ) {
return $this->mLinkHolders->replaceText( $text );
}
/**
- * @param $handler
+ * @param string $handler
* @return array
*/
function getImageParams( $handler ) {
/**
* Parse image options text and use it to make an image
*
- * @param $title Title
- * @param $options String
- * @param $holders LinkHolderArray|bool
+ * @param Title $title
+ * @param string $options
+ * @param LinkHolderArray|bool $holders
* @return string HTML
*/
function makeImage( $title, $options, $holders = false ) {
}
/**
- * @param $caption
- * @param $holders LinkHolderArray
- * @return mixed|String
+ * @param string $caption
+ * @param LinkHolderArray $holders
+ * @return mixed|string
*/
protected function stripAltText( $caption, $holders ) {
# Strip bad stuff out of the title (tooltip). We can't just use
* Callback from the Sanitizer for expanding items found in HTML attribute
* values, so they can be safely tested and escaped.
*
- * @param $text String
- * @param $frame PPFrame
- * @return String
+ * @param string $text
+ * @param PPFrame $frame
+ * @return string
*/
function attributeStripCallback( &$text, $frame = false ) {
$text = $this->replaceVariables( $text, $frame );
* Transparent tag hooks are like regular XML-style tag hooks, except they
* operate late in the transformation sequence, on HTML instead of wikitext.
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
* External callers should use the getSection and replaceSection methods.
*
* @param string $text Page wikitext
- * @param string $section a section identifier string of the form:
+ * @param string $section A section identifier string of the form:
* "<flag1> - <flag2> - ... - <section number>"
*
* Currently the only recognised flag is "T", which means the target section number
*
* If a section contains subsections, these are also returned.
*
- * @param string $text text to look in
- * @param string $section section identifier
- * @param string $deftext default to return if section is not found
- * @return string text of the requested section
+ * @param string $text Text to look in
+ * @param string $section Section identifier
+ * @param string $deftext Default to return if section is not found
+ * @return string Text of the requested section
*/
public function getSection( $text, $section, $deftext = '' ) {
return $this->extractSections( $text, $section, "get", $deftext );
/**
* Get the revision object for $this->mRevisionId
*
- * @return Revision|null either a Revision object or null
+ * @return Revision|null Either a Revision object or null
* @since 1.23 (public since 1.23)
*/
public function getRevisionObject() {
/**
* Get the timestamp associated with the current revision, adjusted for
* the default server-local timestamp
+ * @return string
*/
function getRevisionTimestamp() {
if ( is_null( $this->mRevisionTimestamp ) ) {
/**
* Get the size of the revision
*
- * @return int|null revision size
+ * @return int|null Revision size
*/
function getRevisionSize() {
if ( is_null( $this->mRevisionSize ) ) {
* Accessor for $mDefaultSort
* Unlike getDefaultSort(), will return false if none is set
*
- * @return string or false
+ * @return string|bool
*/
public function getCustomDefaultSort() {
return $this->mDefaultSort;
* presumably extracted from a heading, for example "Header" from
* "== Header ==".
*
- * @param $text string
+ * @param string $text
*
* @return string
*/
* to create valid section anchors by mimicing the output of the
* parser when headings are parsed.
*
- * @param string $text text string to be stripped of wikitext
+ * @param string $text Text string to be stripped of wikitext
* for use in a Section anchor
* @return string Filtered text string
*/
/**
* strip/replaceVariables/unstrip for preprocessor regression testing
*
- * @param $text string
- * @param $title Title
- * @param $options ParserOptions
- * @param $outputType int
+ * @param string $text
+ * @param Title $title
+ * @param ParserOptions $options
+ * @param int $outputType
*
* @return string
*/
}
/**
- * @param $text string
- * @param $title Title
- * @param $options ParserOptions
+ * @param string $text
+ * @param Title $title
+ * @param ParserOptions $options
* @return string
*/
function testPst( $text, Title $title, ParserOptions $options ) {
}
/**
- * @param $text
- * @param $title Title
- * @param $options ParserOptions
+ * @param string $text
+ * @param Title $title
+ * @param ParserOptions $options
* @return string
*/
function testPreprocess( $text, Title $title, ParserOptions $options ) {
* two strings will be replaced with the value returned by the callback in
* each case.
*
- * @param $s string
- * @param $callback
+ * @param string $s
+ * @param callable $callback
*
* @return string
*/
/**
* Remove any strip markers found in the given text.
*
- * @param $text Input string
+ * @param string $text Input string
* @return string
*/
function killMarkers( $text ) {
* unserializeHalfParsedText(). The text can then be safely incorporated into
* the return value of a parser hook.
*
- * @param $text string
+ * @param string $text
*
* @return array
*/
*
* @param array $data Serialized data
* @throws MWException
- * @return String
+ * @return string
*/
function unserializeHalfParsedText( $data ) {
if ( !isset( $data['version'] ) || $data['version'] != self::HALF_PARSED_VERSION ) {
* serializeHalfParsedText(), is compatible with the current version of the
* parser.
*
- * @param $data Array
+ * @param array $data
*
* @return bool
*/
/**
* Parsed a width param of imagelink like 300px or 200x300px
*
- * @param $value String
+ * @param string $value
*
* @return array
* @since 1.20
* Setup a cache pathway with a given back-end storage mechanism.
* May be a memcached client or a BagOStuff derivative.
*
- * @param $memCached Object
+ * @param MWMemcached $memCached
* @throws MWException
*/
protected function __construct( $memCached ) {
}
/**
- * @param $article Article
- * @param $hash string
+ * @param Article $article
+ * @param string $hash
* @return mixed|string
*/
protected function getParserOutputKey( $article, $hash ) {
}
/**
- * @param $article Article
+ * @param Article $article
* @return mixed|string
*/
protected function getOptionsKey( $article ) {
* English preferences. That's why we take into account *all* user
* options. (r70809 CR)
*
- * @param $article Article
- * @param $popts ParserOptions
+ * @param Article $article
+ * @param ParserOptions $popts
* @return string
*/
function getETag( $article, $popts ) {
/**
* Retrieve the ParserOutput from ParserCache, even if it's outdated.
- * @param $article Article
- * @param $popts ParserOptions
+ * @param Article $article
+ * @param ParserOptions $popts
* @return ParserOutput|bool False on failure
*/
public function getDirty( $article, $popts ) {
*
* {{int: }} uses this which used to produce inconsistent link tables (bug 14404).
*
- * @return Language object
+ * @return Language
* @since 1.19
*/
function getUserLangObj() {
/**
* Same as getUserLangObj() but returns a string instead.
*
- * @return String Language code
+ * @return string Language code
* @since 1.17
*/
function getUserLang() {
/**
* Constructor
- * @param $user User object
- * @param $lang Language object
+ * @param User $user
+ * @param Language $lang
*/
function __construct( $user = null, $lang = null ) {
if ( $user === null ) {
* Get a ParserOptions object from a given user.
* Language will be taken from $wgLang.
*
- * @param $user User object
- * @return ParserOptions object
+ * @param User $user
+ * @return ParserOptions
*/
public static function newFromUser( $user ) {
return new ParserOptions( $user );
/**
* Get a ParserOptions object from a given user and language
*
- * @param $user User object
- * @param $lang Language object
- * @return ParserOptions object
+ * @param User $user
+ * @param Language $lang
+ * @return ParserOptions
*/
public static function newFromUserAndLang( User $user, Language $lang ) {
return new ParserOptions( $user, $lang );
/**
* Get a ParserOptions object from a IContextSource object
*
- * @param $context IContextSource object
- * @return ParserOptions object
+ * @param IContextSource $context
+ * @return ParserOptions
*/
public static function newFromContext( IContextSource $context ) {
return new ParserOptions( $context->getUser(), $context->getLanguage() );
/**
* Get user options
*
- * @param $user User object
- * @param $lang Language object
+ * @param User $user
+ * @param Language $lang
*/
private function initialiseFromUser( $user, $lang ) {
global $wgInterwikiMagic, $wgAllowExternalImages,
/**
* Registers a callback for tracking which ParserOptions which are used.
* This is a private API with the parser.
+ * @param callable $callback
*/
function registerWatcher( $callback ) {
$this->onAccessCallback = $callback;
/**
* Called when an option is accessed.
- * @param string $optionName name of the option
+ * @param string $optionName Name of the option
*/
public function optionUsed( $optionName ) {
if ( $this->onAccessCallback ) {
/**
* callback used by getText to replace editsection tokens
* @private
- * @param $m
+ * @param array $m
* @throws MWException
* @return mixed
*/
/**
* Checks, if a url is pointing to the own server
*
- * @param string $internal the server to check against
- * @param string $url the url to check
+ * @param string $internal The server to check against
+ * @param string $url The url to check
* @return bool
*/
static function isLinkInternal( $internal, $url ) {
/**
* Record a local or interwiki inline link for saving in future link tables.
*
- * @param $title Title object
- * @param $id Mixed: optional known page_id so we can skip the lookup
+ * @param Title $title
+ * @param int|null $id Optional known page_id so we can skip the lookup
*/
function addLink( Title $title, $id = null ) {
if ( $title->isExternal() ) {
* Register a file dependency for this output
* @param string $name Title dbKey
* @param string $timestamp MW timestamp of file creation (or false if non-existing)
- * @param string $sha1 base 36 SHA-1 of file (or false if non-existing)
+ * @param string $sha1 Base 36 SHA-1 of file (or false if non-existing)
* @return void
*/
function addImage( $name, $timestamp = null, $sha1 = null ) {
/**
* Register a template dependency for this output
- * @param $title Title
- * @param $page_id
- * @param $rev_id
+ * @param Title $title
+ * @param int $page_id
+ * @param int $rev_id
* @return void
*/
function addTemplate( $title, $page_id, $rev_id ) {
}
/**
- * @param $title Title object, must be an interwiki link
+ * @param Title $title Title object, must be an interwiki link
* @throws MWException if given invalid input
*/
function addInterwikiLink( $title ) {
* Add some text to the "<head>".
* If $tag is set, the section with that tag will only be included once
* in a given page.
+ * @param string $section
+ * @param string|bool $tag
*/
function addHeadItem( $section, $tag = false ) {
if ( $tag !== false ) {
/**
* Add one or more variables to be set in mw.config in JavaScript.
*
- * @param $keys {String|Array} Key or array of key/value pairs.
- * @param $value {Mixed} [optional] Value of the configuration variable.
+ * @param string|array $keys Key or array of key/value pairs.
+ * @param mixed $value [optional] Value of the configuration variable.
* @since 1.23
*/
public function addJsConfigVars( $keys, $value = null ) {
/**
* Copy items from the OutputPage object into this one
*
- * @param $out OutputPage object
+ * @param OutputPage $out
*/
public function addOutputPageMetadata( OutputPage $out ) {
$this->addModules( $out->getModules() );
/**
* Get the title to be used for display
*
- * @return String
+ * @return string
*/
public function getDisplayTitle() {
$t = $this->getTitleText();
/**
* Returns the options from its ParserOptions which have been taken
* into account to produce this output or false if not available.
- * @return mixed Array
+ * @return array
*/
public function getUsedOptions() {
if ( !isset( $this->mAccessedOptions ) ) {
* @see ParserCache::save
* @see ParserOptions::addExtraKey
* @see ParserOptions::optionsHash
+ * @param string $option
*/
public function recordOption( $option ) {
$this->mAccessedOptions[$option] = true;
*
* @since 1.20
*
- * @param $title Title The title of the page we're updating. If not given, a title object will be created
- * based on $this->getTitleText()
- * @param $recursive Boolean: queue jobs for recursive updates?
+ * @param Title $title The title of the page we're updating. If not given, a title object will
+ * be created based on $this->getTitleText()
+ * @param bool $recursive Queue jobs for recursive updates?
*
- * @return Array. An array of instances of DataUpdate
+ * @return array An array of instances of DataUpdate
*/
public function getSecondaryDataUpdates( Title $title = null, $recursive = true ) {
if ( is_null( $title ) ) {
* @since 1.21
*
* @param string $key The key for accessing the data. Extensions should take care to avoid
- * conflicts in naming keys. It is suggested to use the extension's name as a
- * prefix.
+ * conflicts in naming keys. It is suggested to use the extension's name as a prefix.
*
* @param mixed $value The value to set. Setting a value to null is equivalent to removing
- * the value.
+ * the value.
*/
public function setExtensionData( $key, $value ) {
if ( $value === null ) {
}
/**
- * @param $parser Parser
+ * @param Parser $parser
* @return bool
*/
function onClearState( &$parser ) {
/**
* Create a new preprocessor object based on an initialised Parser object
*
- * @param $parser Parser
+ * @param Parser $parser
*/
function __construct( $parser );
/**
* Create a new custom frame for programmatic use of parameter replacement as used in some extensions
*
- * @param $args array
+ * @param array $args
*
* @return PPFrame
*/
/**
* Create a new custom node for programmatic use of parameter replacement as used in some extensions
*
- * @param $values
+ * @param array $values
*/
function newPartNodeArray( $values );
/**
* Preprocess text to a PPNode
*
- * @param $text
- * @param $flags
+ * @param string $text
+ * @param int $flags
*
* @return PPNode
*/
/**
* Returns true if the infinite loop check is OK, false if a loop is detected
*
- * @param $title
- *
+ * @param Title $title
* @return bool
*/
function loopCheck( $title );
}
/**
- * @param $args array
+ * @param array $args
* @return PPCustomFrame_DOM
*/
function newCustomFrame( $args ) {
}
/**
- * @param $values
+ * @param array $values
* @return PPNode_DOM
*/
function newPartNodeArray( $values ) {
* Preprocess some wikitext and return the document tree.
* This is the ghost of Parser::replace_variables().
*
- * @param string $text the text to parse
- * @param $flags Integer: bitwise combination of:
- * Parser::PTD_FOR_INCLUSION Handle "<noinclude>" and "<includeonly>" as if the text is being
- * included. Default is to assume a direct page view.
+ * @param string $text The text to parse
+ * @param int $flags Bitwise combination of:
+ * Parser::PTD_FOR_INCLUSION Handle "<noinclude>" and "<includeonly>" as if the text is being
+ * included. Default is to assume a direct page view.
*
* The generated DOM tree must depend only on the input text and the flags.
* The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid a regression of bug 4899.
}
/**
- * @param $text string
- * @param $flags int
+ * @param string $text
+ * @param int $flags
* @return string
*/
function preprocessToXml( $text, $flags = 0 ) {
/**
* Construct a new preprocessor frame.
- * @param $preprocessor Preprocessor The parent preprocessor
+ * @param Preprocessor $preprocessor The parent preprocessor
*/
function __construct( $preprocessor ) {
$this->preprocessor = $preprocessor;
* Create a new child frame
* $args is optionally a multi-root PPNode or array containing the template arguments
*
+ * @param bool|array $args
+ * @param Title|bool $title
+ * @param int $indexOffset
* @return PPTemplateFrame_DOM
*/
function newChild( $args = false, $title = false, $indexOffset = 0 ) {
/**
* @throws MWException
- * @param $root
- * @param $flags int
+ * @param string|PPNode_DOM|DOMDocument $root
+ * @param int $flags
* @return string
*/
function expand( $root, $flags = 0 ) {
}
/**
- * @param $sep
- * @param $flags
+ * @param string $sep
+ * @param int $flags
* @return string
*/
function implodeWithFlags( $sep, $flags /*, ... */ ) {
* Implode with no flags specified
* This previously called implodeWithFlags but has now been inlined to reduce stack depth
*
+ * @param string $sep
* @return string
*/
function implode( $sep /*, ... */ ) {
* Makes an object that, when expand()ed, will be the same as one obtained
* with implode()
*
+ * @param string $sep
* @return array
*/
function virtualImplode( $sep /*, ... */ ) {
/**
* Virtual implode with brackets
+ * @param string $start
+ * @param string $sep
+ * @param string $end
* @return array
*/
function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) {
/**
* Returns true if the infinite loop check is OK, false if a loop is detected
*
+ * @param Title $title
* @return bool
*/
function loopCheck( $title ) {
var $numberedExpansionCache, $namedExpansionCache;
/**
- * @param $preprocessor
- * @param $parent PPFrame_DOM
- * @param $numberedArgs array
- * @param $namedArgs array
- * @param $title Title
+ * @param Preprocessor $preprocessor
+ * @param PPFrame_DOM $parent
+ * @param array $numberedArgs
+ * @param array $namedArgs
+ * @param Title $title
*/
function __construct( $preprocessor, $parent = false, $numberedArgs = array(), $namedArgs = array(), $title = false ) {
parent::__construct( $preprocessor );
}
/**
- * @param $type
+ * @param string $type
*
* @return bool|PPNode_DOM
*/
}
/**
- * @param $i
+ * @param int $i
* @return bool|PPNode_DOM
*/
function item( $i ) {
}
/**
- * @param $args array
+ * @param array $args
* @return PPCustomFrame_Hash
*/
function newCustomFrame( $args ) {
}
/**
- * @param $values array
+ * @param array $values
* @return PPNode_Hash_Array
*/
function newPartNodeArray( $values ) {
* Preprocess some wikitext and return the document tree.
* This is the ghost of Parser::replace_variables().
*
- * @param string $text the text to parse
- * @param $flags Integer: bitwise combination of:
- * Parser::PTD_FOR_INCLUSION Handle "<noinclude>" and "<includeonly>" as if the text is being
- * included. Default is to assume a direct page view.
+ * @param string $text The text to parse
+ * @param int $flags Bitwise combination of:
+ * Parser::PTD_FOR_INCLUSION Handle "<noinclude>" and "<includeonly>" as if the text is being
+ * included. Default is to assume a direct page view.
*
* The generated DOM tree must depend only on the input text and the flags.
* The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid a regression of bug 4899.
/**
* Get the accumulator that would result if the close is not found.
*
+ * @param int|bool $openingCount
* @return PPDAccum_Hash
*/
function breakSyntax( $openingCount = false ) {
/**
* Append a string literal
+ * @param string $s
*/
function addLiteral( $s ) {
if ( $this->lastNode === false ) {
/**
* Append a PPNode
+ * @param PPNode $node
*/
function addNode( PPNode $node ) {
if ( $this->lastNode === false ) {
/**
* Append a tree node with text contents
+ * @param string $name
+ * @param string $value
*/
function addNodeWithText( $name, $value ) {
$node = PPNode_Hash_Tree::newWithText( $name, $value );
* Append a PPAccum_Hash
* Takes over ownership of the nodes in the source argument. These nodes may
* subsequently be modified, especially nextSibling.
+ * @param PPAccum_Hash $accum
*/
function addAccum( $accum ) {
if ( $accum->lastNode === false ) {
/**
* Construct a new preprocessor frame.
- * @param $preprocessor Preprocessor: the parent preprocessor
+ * @param Preprocessor $preprocessor The parent preprocessor
*/
function __construct( $preprocessor ) {
$this->preprocessor = $preprocessor;
* Create a new child frame
* $args is optionally a multi-root PPNode or array containing the template arguments
*
- * @param array|bool|\PPNode_Hash_Array $args PPNode_Hash_Array|array
- * @param $title Title|bool
- *
+ * @param array|bool|PPNode_Hash_Array $args
+ * @param Title|bool $title
* @param int $indexOffset
* @throws MWException
* @return PPTemplateFrame_Hash
/**
* @throws MWException
- * @param $root
- * @param $flags int
+ * @param string|PPNode$root
+ * @param int $flags
* @return string
*/
function expand( $root, $flags = 0 ) {
}
/**
- * @param $sep
- * @param $flags
+ * @param string $sep
+ * @param int $flags
* @return string
*/
function implodeWithFlags( $sep, $flags /*, ... */ ) {
/**
* Implode with no flags specified
* This previously called implodeWithFlags but has now been inlined to reduce stack depth
+ * @param string $sep
* @return string
*/
function implode( $sep /*, ... */ ) {
* Makes an object that, when expand()ed, will be the same as one obtained
* with implode()
*
+ * @param string $sep
* @return PPNode_Hash_Array
*/
function virtualImplode( $sep /*, ... */ ) {
/**
* Virtual implode with brackets
*
+ * @param string $start
+ * @param string $sep
+ * @param string $end
* @return PPNode_Hash_Array
*/
function virtualBracketedImplode( $start, $sep, $end /*, ... */ ) {
}
/**
- * @param $level bool
- * @return array|bool|String
+ * @param bool $level
+ * @return array|bool|string
*/
function getPDBK( $level = false ) {
if ( $level === false ) {
}
/**
- * @param $name
+ * @param string $name
* @return bool
*/
function getArgument( $name ) {
/**
* Returns true if the infinite loop check is OK, false if a loop is detected
*
- * @param $title Title
+ * @param Title $title
*
* @return bool
*/
var $numberedExpansionCache, $namedExpansionCache;
/**
- * @param $preprocessor
- * @param $parent
- * @param $numberedArgs array
- * @param $namedArgs array
- * @param $title Title
+ * @param Preprocessor $preprocessor
+ * @param bool|PPFrame $parent
+ * @param array $numberedArgs
+ * @param array $namedArgs
+ * @param Title $title
*/
function __construct( $preprocessor, $parent = false, $numberedArgs = array(), $namedArgs = array(), $title = false ) {
parent::__construct( $preprocessor );
}
/**
- * @param $index
+ * @param int $index
* @return array|bool
*/
function getNumberedArgument( $index ) {
}
/**
- * @param $name
+ * @param string $name
* @return bool
*/
function getNamedArgument( $name ) {
}
/**
- * @param $name
+ * @param string $name
* @return array|bool
*/
function getArgument( $name ) {
}
/**
- * @param $index
+ * @param int $index
* @return bool
*/
function getArgument( $index ) {
}
/**
- * @param $name
- * @param $text
+ * @param string $name
+ * @param string $text
* @return PPNode_Hash_Tree
*/
static function newWithText( $name, $text ) {
}
/**
- * @param $i
+ * @param int $i
* @return bool
*/
function item( $i ) {
const UNSTRIP_RECURSION_LIMIT = 20;
/**
- * @param $prefix string
+ * @param string $prefix
*/
function __construct( $prefix ) {
$this->prefix = $prefix;
/**
* Add a nowiki strip item
- * @param $marker
- * @param $value
+ * @param string $marker
+ * @param string $value
*/
function addNoWiki( $marker, $value ) {
$this->addItem( 'nowiki', $marker, $value );
}
/**
- * @param $marker
- * @param $value
+ * @param string $marker
+ * @param string $value
*/
function addGeneral( $marker, $value ) {
$this->addItem( 'general', $marker, $value );
/**
* @throws MWException
- * @param $type
- * @param $marker
- * @param $value
+ * @param string $type
+ * @param string $marker
+ * @param string $value
*/
protected function addItem( $type, $marker, $value ) {
if ( !preg_match( $this->regex, $marker, $m ) ) {
}
/**
- * @param $text
+ * @param string $text
* @return mixed
*/
function unstripGeneral( $text ) {
}
/**
- * @param $text
+ * @param string $text
* @return mixed
*/
function unstripNoWiki( $text ) {
}
/**
- * @param $text
+ * @param string $text
* @return mixed
*/
function unstripBoth( $text ) {
}
/**
- * @param $type
- * @param $text
+ * @param string $type
+ * @param string $text
* @return mixed
*/
protected function unstripType( $type, $text ) {
}
/**
- * @param $m array
+ * @param array $m
* @return array
*/
protected function unstripCallback( $m ) {
* Get a StripState object which is sufficient to unstrip the given text.
* It will contain the minimum subset of strip items necessary.
*
- * @param $text string
+ * @param string $text
*
* @return StripState
*/
* will not be preserved. The strings in the $texts array will have their
* strip markers rewritten, the resulting array of strings will be returned.
*
- * @param $otherState StripState
- * @param $texts Array
- * @return Array
+ * @param StripState $otherState
+ * @param array $texts
+ * @return array
*/
function merge( $otherState, $texts ) {
$mergePrefix = Parser::getRandomString();
}
/**
- * @param $m
+ * @param array $m
* @return string
*/
protected function mergeCallback( $m ) {
/**
* Remove any strip markers found in the given text.
*
- * @param $text Input string
+ * @param string $text Input string
* @return string
*/
function killMarkers( $text ) {
}
/**
- * @param $text string
+ * @param string $text
* @return string
*/
public function getWrapped( $text ) {
}
/**
- * @param $m array
+ * @param array $m
*
* @return string
*/
}
/**
- * @param $text string
+ * @param string $text
* @return string
*/
public function postprocess( $text ) {
* If tidy isn't able to correct the markup, the original will be
* returned in all its glory with a warning comment appended.
*
- * @param string $text hideous HTML input
- * @return String: corrected HTML output
+ * @param string $text Hideous HTML input
+ * @return string Corrected HTML output
*/
public static function tidy( $text ) {
global $wgTidyInternal;
/**
* Check HTML for errors, used if $wgValidateAllHtml = true.
*
- * @param $text String
- * @param &$errorStr String: return the error string
- * @return Boolean: whether the HTML is valid
+ * @param string $text
+ * @param string &$errorStr Return the error string
+ * @return bool Whether the HTML is valid
*/
public static function checkErrors( $text, &$errorStr = null ) {
global $wgTidyInternal;
* Also called in OutputHandler.php for full page validation
*
* @param string $text HTML to check
- * @param $stderr Boolean: Whether to read result from STDERR rather than STDOUT
- * @param &$retval int Exit code (-1 on internal error)
- * @return mixed String or null
+ * @param bool $stderr Whether to read result from STDERR rather than STDOUT
+ * @param int &$retval Exit code (-1 on internal error)
+ * @return string|null
*/
private static function execExternalTidy( $text, $stderr = false, &$retval = null ) {
global $wgTidyConf, $wgTidyBin, $wgTidyOpts;
* saving the overhead of spawning a new process.
*
* @param string $text HTML to check
- * @param $stderr Boolean: Whether to read result from error status instead of output
- * @param &$retval int Exit code (-1 on internal error)
- * @return mixed String or null
+ * @param bool $stderr Whether to read result from error status instead of output
+ * @param int &$retval Exit code (-1 on internal error)
+ * @return string|null
*/
private static function execInternalTidy( $text, $stderr = false, &$retval = null ) {
global $wgTidyConf, $wgDebugTidy;
* Class for dealing with PoolCounters using class members
*/
abstract class PoolCounterWork {
- protected $cacheable = false; //Does this override getCachedWork() ?
+ /** @var string */
+ protected $type = 'generic';
+ /** @var bool */
+ protected $cacheable = false; // does this override getCachedWork() ?
/**
* @param string $type The type of PoolCounter to use
* @param string $key Key that identifies the queue this work is placed on
*/
public function __construct( $type, $key ) {
+ $this->type = $type;
$this->poolCounter = PoolCounter::factory( $type, $key );
}
public function logError( $status ) {
$key = $this->poolCounter->getKey();
- wfDebugLog( 'poolcounter', "Pool key '$key': "
+ wfDebugLog( 'poolcounter', "Pool key '$key' ({$this->type}): "
. $status->getMessage()->inLanguage( 'en' )->useDatabase( false )->text() );
}
* Get the initial time of the request, based either on $wgRequestTime or
* $wgRUstart. Will return null if not able to find data.
*
- * @param string|false $metric Metric to use, with the following possibilities:
+ * @param string|bool $metric Metric to use, with the following possibilities:
* - user: User CPU time (without system calls)
* - cpu: Total CPU time (user and system calls)
* - wall (or any other string): elapsed time
* Get the initial time of the request, based either on $wgRequestTime or
* $wgRUstart. Will return null if not able to find data.
*
- * @param string|false $metric Metric to use, with the following possibilities:
+ * @param string|bool $metric Metric to use, with the following possibilities:
* - user: User CPU time (without system calls)
* - cpu: Total CPU time (user and system calls)
* - wall (or any other string): elapsed time
class TransactionProfiler {
/** @var float seconds */
protected $mDBLockThreshold = 5.0;
- /** @var Array DB/server name => (active trx count,timestamp) */
+ /** @var array DB/server name => (active trx count,timestamp) */
protected $mDBTrxHoldingLocks = array();
- /** @var Array DB/server name => list of (function name, elapsed time) */
+ /** @var array DB/server name => list of (function name, elapsed time) */
protected $mDBTrxMethodTimes = array();
/**
/**
* Return whether this a stub profiler
*
- * @return Boolean
+ * @return bool
*/
public function isStub() {
return false;
* Return whether this profiler stores data
*
* @see Profiler::logData()
- * @return Boolean
+ * @return bool
*/
public function isPersistent() {
return false;
* Only doing collation saves memory overhead but limits the use of certain
* features like that of graph generation for the debug toolbar.
*
- * @return boolean
+ * @return bool
*/
protected function collateOnly() {
return false;
* @param string $name
* @param float $elapsedCpu
* @param float $elapsedReal
- * @param integer $memChange
- * @param integer $subcalls
+ * @param int $memChange
+ * @param int $subcalls
* @param array|null $period Map of ('start','end','memory','subcalls')
*/
protected function updateEntry(
/**
* Called by wfProfieIn()
*
- * @param $functionname String
+ * @param string $functionname
*/
public function profileIn( $functionname ) {
global $wgDebugFunctionEntry;
/**
* Called by wfProfieOut()
*
- * @param $functionname String
+ * @param string $functionname
*/
public function profileOut( $functionname ) {
global $wgDebugFunctionEntry;
/**
* Returns a profiling output to be stored in debug file
*
- * @return String
+ * @return string
*/
public function getOutput() {
global $wgDebugFunctionEntry, $wgProfileCallTree;
* Counts the number of profiled function calls sitting under
* the given point in the call graph. Not the most efficient algo.
*
- * @param $stack Array:
- * @param $start Integer:
- * @return Integer
+ * @param array $stack
+ * @param int $start
+ * @return int
*/
protected function calltreeCount( $stack, $start ) {
$level = $stack[$start][1];
* @param array $info Module info array. For backwards compatibility with 1.17alpha,
* this may also be a ResourceLoaderModule object. Optional when using
* multiple-registration calling style.
- * @throws MWException: If a duplicate module registration is attempted
- * @throws MWException: If a module name contains illegal characters (pipes or commas)
- * @throws MWException: If something other than a ResourceLoaderModule is being registered
- * @return boolean False if there were any errors, in which case one or more modules were
+ * @throws MWException If a duplicate module registration is attempted
+ * @throws MWException If a module name contains illegal characters (pipes or commas)
+ * @throws MWException If something other than a ResourceLoaderModule is being registered
+ * @return bool False if there were any errors, in which case one or more modules were
* not registered
*/
public function register( $name, $info = null ) {
*
* @param string $framework Get only the test module names for one
* particular framework (optional)
- * @return Array
+ * @return array
*/
public function getTestModuleNames( $framework = 'all' ) {
/// @todo api siteinfo prop testmodulenames modulenames
* If there's an If-Modified-Since header, respond with a 304 appropriately
* and clear out the output buffer. If the client cache is too old then do nothing.
*
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @param string $mtime The TS_MW timestamp to check the header against
* @return bool True if 304 header sent and output handled
*/
/**
* Handle exception display.
*
- * @param Exception $e to be shown to the user
- * @return string sanitized text that can be returned to the user
+ * @param Exception $e Exception to be shown to the user
+ * @return string Sanitized text that can be returned to the user
*/
public static function formatException( $e ) {
global $wgShowExceptionDetails;
/**
* Generate code for a response.
*
- * @param $context ResourceLoaderContext Context in which to generate a response
+ * @param ResourceLoaderContext $context Context in which to generate a response
* @param array $modules List of module objects keyed by module name
* @param array $missing List of requested module names that are unregistered (optional)
* @return string Response data
* Set the state of modules with the given names to the given states
*
* @param string $name
- * @param $state
+ * @param string $state
* @return string
*/
public static function makeLoaderStateScript( $name, $state = null ) {
* - ResourceLoader::makeLoaderSourcesScript( array( $id1 => $props1, $id2 => $props2, ... ) );
* Register sources with the given IDs and properties.
*
- * @param string $id source ID
- * @param array $properties source properties (see addSource())
+ * @param string $id Source ID
+ * @param array $properties Source properties (see addSource())
* @return string
*/
public static function makeLoaderSourcesScript( $id, $properties = null ) {
/**
* Build a load.php URL
- * @param array $modules of module names (strings)
+ * @param array $modules Array of module names (strings)
* @param string $lang Language code
* @param string $skin Skin name
* @param string|null $user User name. If null, the &user= parameter is omitted
* Get global LESS variables.
*
* $since 1.22
- * @return array: Map of variable names to string CSS values.
+ * @return array Map of variable names to string CSS values.
*/
public static function getLESSVars() {
global $wgResourceLoaderLESSVars;
/* Methods */
/**
- * @param $resourceLoader ResourceLoader
- * @param $request WebRequest
+ * @param ResourceLoader $resourceLoader
+ * @param WebRequest $request
*/
public function __construct( $resourceLoader, WebRequest $request ) {
global $wgDefaultSkin, $wgResourceLoaderDebug;
* an array of module names like array( 'jquery.foo', 'jquery.bar',
* 'jquery.ui.baz', 'jquery.ui.quux' )
* @param string $modules Packed module name list
- * @return array of module names
+ * @return array Array of module names
*/
public static function expandModuleNames( $modules ) {
$retval = array();
}
/**
- * @return String|null
+ * @return string|null
*/
public function getOnly() {
return $this->only;
}
/**
- * @return String|null
+ * @return string|null
*/
public function getVersion() {
return $this->version;
/* Protected Members */
- /** String: Local base path, see __construct() */
+ /** @var string Local base path, see __construct() */
protected $localBasePath = '';
- /** String: Remote base path, see __construct() */
+ /** @var string Remote base path, see __construct() */
protected $remoteBasePath = '';
/**
- * Array: List of paths to JavaScript files to always include
+ * @var array List of paths to JavaScript files to always include
* @par Usage:
* @code
* array( [file-path], [file-path], ... )
*/
protected $scripts = array();
/**
- * Array: List of JavaScript files to include when using a specific language
+ * @var array List of JavaScript files to include when using a specific language
* @par Usage:
* @code
* array( [language-code] => array( [file-path], [file-path], ... ), ... )
*/
protected $languageScripts = array();
/**
- * Array: List of JavaScript files to include when using a specific skin
+ * @var array List of JavaScript files to include when using a specific skin
* @par Usage:
* @code
* array( [skin-name] => array( [file-path], [file-path], ... ), ... )
*/
protected $skinScripts = array();
/**
- * Array: List of paths to JavaScript files to include in debug mode
+ * @var array List of paths to JavaScript files to include in debug mode
* @par Usage:
* @code
* array( [skin-name] => array( [file-path], [file-path], ... ), ... )
*/
protected $debugScripts = array();
/**
- * Array: List of paths to JavaScript files to include in the startup module
+ * @var array List of paths to JavaScript files to include in the startup module
* @par Usage:
* @code
* array( [file-path], [file-path], ... )
*/
protected $loaderScripts = array();
/**
- * Array: List of paths to CSS files to always include
+ * @var array List of paths to CSS files to always include
* @par Usage:
* @code
* array( [file-path], [file-path], ... )
*/
protected $styles = array();
/**
- * Array: List of paths to CSS files to include when using specific skins
+ * @var array List of paths to CSS files to include when using specific skins
* @par Usage:
* @code
* array( [file-path], [file-path], ... )
*/
protected $skinStyles = array();
/**
- * Array: List of modules this module depends on
+ * @var array List of modules this module depends on
* @par Usage:
* @code
* array( [file-path], [file-path], ... )
*/
protected $dependencies = array();
/**
- * Array: List of message keys used by this module
+ * @var array List of message keys used by this module
* @par Usage:
* @code
* array( [message-key], [message-key], ... )
* @endcode
*/
protected $messages = array();
- /** String: Name of group to load this module in */
+ /** @var string Name of group to load this module in */
protected $group;
- /** String: Position on the page to load this module at */
+ /** @var string Position on the page to load this module at */
protected $position = 'bottom';
- /** Boolean: Link to raw files in debug mode */
+ /** @var bool Link to raw files in debug mode */
protected $debugRaw = true;
- /** Boolean: Whether mw.loader.state() call should be omitted */
+ /** @var bool Whether mw.loader.state() call should be omitted */
protected $raw = false;
protected $targets = array( 'desktop' );
/**
- * Boolean: Whether getStyleURLsForDebug should return raw file paths,
+ * @var bool Whether getStyleURLsForDebug should return raw file paths,
* or return load.php urls
*/
protected $hasGeneratedStyles = false;
/**
- * Array: Cache for mtime
+ * @var array Cache for mtime
* @par Usage:
* @code
* array( [hash] => [mtime], [hash] => [mtime], ... )
*/
protected $modifiedTime = array();
/**
- * Array: Place where readStyleFile() tracks file dependencies
+ * @var array Place where readStyleFile() tracks file dependencies
* @par Usage:
* @code
* array( [file-path], [file-path], ... )
* Gets all scripts for a given context concatenated together.
*
* @param ResourceLoaderContext $context Context in which to generate script
- * @return string: JavaScript code for $context
+ * @return string JavaScript code for $context
*/
public function getScript( ResourceLoaderContext $context ) {
$files = $this->getScriptFiles( $context );
/**
* Gets loader script.
*
- * @return string: JavaScript code to be added to startup module
+ * @return string JavaScript code to be added to startup module
*/
public function getLoaderScript() {
if ( count( $this->loaderScripts ) == 0 ) {
* Gets all styles for a given context concatenated together.
*
* @param ResourceLoaderContext $context Context in which to generate styles
- * @return string: CSS code for $context
+ * @return string CSS code for $context
*/
public function getStyles( ResourceLoaderContext $context ) {
$styles = $this->readStyleFiles(
/**
* Gets list of message keys used by this module.
*
- * @return array: List of message keys
+ * @return array List of message keys
*/
public function getMessages() {
return $this->messages;
/**
* Gets the name of the group this module should be loaded in.
*
- * @return string: Group name
+ * @return string Group name
*/
public function getGroup() {
return $this->group;
/**
* Gets list of names of modules this module depends on.
*
- * @return array: List of module names
+ * @return array List of module names
*/
public function getDependencies() {
return $this->dependencies;
*
* @param ResourceLoaderContext $context Context in which to calculate
* the modified time
- * @return int: UNIX timestamp
+ * @return int UNIX timestamp
* @see ResourceLoaderModule::getFileDependencies
*/
public function getModifiedTime( ResourceLoaderContext $context ) {
/**
* Get the definition summary for this module.
*
- * @return Array
+ * @return array
*/
public function getDefinitionSummary( ResourceLoaderContext $context ) {
$summary = array(
*
* @since 1.22
* @param string $path
- * @return string: the stylesheet language name
+ * @return string The stylesheet language name
*/
public function getStyleSheetLang( $path ) {
return preg_match( '/\.less$/i', $path ) ? 'less' : 'css';
*
* @param array $list List of file paths in any combination of index/path
* or path/options pairs
- * @param string $option option name
- * @param mixed $default default value if the option isn't set
- * @return array: List of file paths, collated by $option
+ * @param string $option Option name
+ * @param mixed $default Default value if the option isn't set
+ * @return array List of file paths, collated by $option
*/
protected static function collateFilePathListByOption( array $list, $option, $default ) {
$collatedFiles = array();
* @param array $list List of lists to select from
* @param string $key Key to look for in $map
* @param string $fallback Key to look for in $list if $key doesn't exist
- * @return array: List of elements from $map which matched $key or $fallback,
+ * @return array List of elements from $map which matched $key or $fallback,
* or an empty list in case of no match
*/
protected static function tryForKey( array $list, $key, $fallback = null ) {
* Gets a list of file paths for all scripts in this module, in order of propper execution.
*
* @param ResourceLoaderContext $context
- * @return array: List of file paths
+ * @return array List of file paths
*/
protected function getScriptFiles( ResourceLoaderContext $context ) {
$files = array_merge(
* Gets a list of file paths for all styles in this module, in order of propper inclusion.
*
* @param ResourceLoaderContext $context
- * @return array: List of file paths
+ * @return array List of file paths
*/
protected function getStyleFiles( ResourceLoaderContext $context ) {
return array_merge_recursive(
*
* @param array $scripts List of file paths to scripts to read, remap and concetenate
* @throws MWException
- * @return string: Concatenated and remapped JavaScript data from $scripts
+ * @return string Concatenated and remapped JavaScript data from $scripts
*/
protected function readScriptFiles( array $scripts ) {
global $wgResourceLoaderValidateStaticJS;
* @param bool $flip
*
* @throws MWException
- * @return array: List of concatenated and remapped CSS data from $styles,
+ * @return array List of concatenated and remapped CSS data from $styles,
* keyed by media type
*/
protected function readStyleFiles( array $styles, $flip ) {
* @param string $path File path of style file to read
* @param bool $flip
*
- * @return string: CSS data in script file
+ * @return string CSS data in script file
* @throws MWException if the file doesn't exist
*/
protected function readStyleFile( $path, $flip ) {
/**
* Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile']
*
- * @return array of strings
+ * @return array Array of strings
*/
public function getTargets() {
return $this->targets;
*
* @since 1.22
* @param string $fileName File name of root LESS file.
- * @return string: Cache key
+ * @return string Cache key
*/
protected static function getLESSCacheKey( $fileName ) {
$vars = json_encode( ResourceLoader::getLESSVars() );
* @throws Exception If Less encounters a parse error
* @throws MWException If Less compilation returns unexpection result
* @param string $fileName File path of LESS source
- * @return string: CSS source
+ * @return string CSS source
*/
protected function compileLESSFile( $fileName ) {
$key = self::getLESSCacheKey( $fileName );
class ResourceLoaderFilePageModule extends ResourceLoaderWikiModule {
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
protected function getPages( ResourceLoaderContext $context ) {
}
/**
- * @param $context ResourceLoaderContext
- * @return string: JavaScript code
+ * @param ResourceLoaderContext $context
+ * @return string JavaScript code
*/
public function getScript( ResourceLoaderContext $context ) {
$this->language = Language::factory( $context->getLanguage() );
}
/**
- * @param $context ResourceLoaderContext
- * @return int: UNIX timestamp
+ * @param ResourceLoaderContext $context
+ * @return int UNIX timestamp
*/
public function getModifiedTime( ResourceLoaderContext $context ) {
return max( 1, $this->getHashMtime( $context ) );
}
/**
- * @param $context ResourceLoaderContext
- * @return string: Hash
+ * @param ResourceLoaderContext $context
+ * @return string Hash
*/
public function getModifiedHash( ResourceLoaderContext $context ) {
$this->language = Language::factory( $context->getLanguage() );
* Get this module's name. This is set when the module is registered
* with ResourceLoader::register()
*
- * @return mixed: Name (string) or null if no name was set
+ * @return string|null Name (string) or null if no name was set
*/
public function getName() {
return $this->name;
* Get this module's origin. This is set when the module is registered
* with ResourceLoader::register()
*
- * @return int: ResourceLoaderModule class constant, the subclass default
+ * @return int ResourceLoaderModule class constant, the subclass default
* if not set manually
*/
public function getOrigin() {
* Set this module's origin. This is called by ResourceLoader::register()
* when registering the module. Other code should not call this.
*
- * @param int $origin origin
+ * @param int $origin Origin
*/
public function setOrigin( $origin ) {
$this->origin = $origin;
* Includes all relevant JS except loader scripts.
*
* @param ResourceLoaderContext $context
- * @return string: JavaScript code
+ * @return string JavaScript code
*/
public function getScript( ResourceLoaderContext $context ) {
// Stub, override expected
* MUST return either an only= URL or a non-load.php URL.
*
* @param ResourceLoaderContext $context
- * @return array: Array of URLs
+ * @return array Array of URLs
*/
public function getScriptURLsForDebug( ResourceLoaderContext $context ) {
$url = ResourceLoader::makeLoaderURL(
* Get all CSS for this module for a given skin.
*
* @param ResourceLoaderContext $context
- * @return array: List of CSS strings or array of CSS strings keyed by media type.
+ * @return array List of CSS strings or array of CSS strings keyed by media type.
* like array( 'screen' => '.foo { width: 0 }' );
* or array( 'screen' => array( '.foo { width: 0 }' ) );
*/
* load the files directly. See also getScriptURLsForDebug()
*
* @param ResourceLoaderContext $context
- * @return array: array( mediaType => array( URL1, URL2, ... ), ... )
+ * @return array array( mediaType => array( URL1, URL2, ... ), ... )
*/
public function getStyleURLsForDebug( ResourceLoaderContext $context ) {
$url = ResourceLoader::makeLoaderURL(
*
* To get a JSON blob with messages, use MessageBlobStore::get()
*
- * @return array: List of message keys. Keys may occur more than once
+ * @return array List of message keys. Keys may occur more than once
*/
public function getMessages() {
// Stub, override expected
/**
* Get the group this module is in.
*
- * @return string: Group name
+ * @return string Group name
*/
public function getGroup() {
// Stub, override expected
/**
* Get the origin of this module. Should only be overridden for foreign modules.
*
- * @return string: Origin name, 'local' for local modules
+ * @return string Origin name, 'local' for local modules
*/
public function getSource() {
// Stub, override expected
/**
* Get the loader JS for this module, if set.
*
- * @return mixed: JavaScript loader code as a string or boolean false if no custom loader set
+ * @return mixed JavaScript loader code as a string or boolean false if no custom loader set
*/
public function getLoaderScript() {
// Stub, override expected
*
* To add dependencies dynamically on the client side, use a custom
* loader script, see getLoaderScript()
- * @return array: List of module names as strings
+ * @return array List of module names as strings
*/
public function getDependencies() {
// Stub, override expected
/**
* Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile']
*
- * @return array: Array of strings
+ * @return array Array of strings
*/
public function getTargets() {
return $this->targets;
* Currently these are only image files referenced by the module's CSS.
*
* @param string $skin Skin name
- * @return array: List of files
+ * @return array List of files
*/
public function getFileDependencies( $skin ) {
// Try in-object cache first
* Get the last modification timestamp of the message blob for this
* module in a given language.
* @param string $lang Language code
- * @return int: UNIX timestamp, or 0 if the module doesn't have messages
+ * @return int UNIX timestamp, or 0 if the module doesn't have messages
*/
public function getMsgBlobMtime( $lang ) {
if ( !isset( $this->msgBlobMtime[$lang] ) ) {
* Set a preloaded message blob last modification timestamp. Used so we
* can load this information for all modules at once.
* @param string $lang Language code
- * @param $mtime Integer: UNIX timestamp or 0 if there is no such blob
+ * @param int $mtime UNIX timestamp or 0 if there is no such blob
*/
public function setMsgBlobMtime( $lang, $mtime ) {
$this->msgBlobMtime[$lang] = $mtime;
* yourself and take its result into consideration.
*
* @param ResourceLoaderContext $context Context object
- * @return integer UNIX timestamp
+ * @return int UNIX timestamp
*/
public function getModifiedTime( ResourceLoaderContext $context ) {
// 0 would mean now
* Helper method for calculating when the module's hash (if it has one) changed.
*
* @param ResourceLoaderContext $context
- * @return integer: UNIX timestamp or 0 if no hash was provided
+ * @return int UNIX timestamp or 0 if no hash was provided
* by getModifiedHash()
*/
public function getHashMtime( ResourceLoaderContext $context ) {
* use of getHashMTime() inside getModifiedTime().
*
* @param ResourceLoaderContext $context
- * @return string|null: Hash
+ * @return string|null Hash
*/
public function getModifiedHash( ResourceLoaderContext $context ) {
return null;
/**
* Helper method for calculating when this module's definition summary was last changed.
*
- * @return integer: UNIX timestamp or 0 if no definition summary was provided
+ * @return int UNIX timestamp or 0 if no definition summary was provided
* by getDefinitionSummary()
*/
public function getDefinitionMtime( ResourceLoaderContext $context ) {
* contain arrays and scalars as values (avoid object instances) which means
* it requires abstraction.
*
- * @return Array|null
+ * @return array|null
*/
public function getDefinitionSummary( ResourceLoaderContext $context ) {
return array(
*
* @param string $fileName
* @param string $contents
- * @return string: JS with the original, or a replacement error
+ * @return string JS with the original, or a replacement error
*/
protected function validateScriptFile( $fileName, $contents ) {
global $wgResourceLoaderValidateJS;
* Gets list of pages used by this module. Obviously, it makes absolutely no
* sense to include JavaScript files here... :D
*
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
*
- * @return Array: List of pages
+ * @return array List of pages
*/
protected function getPages( ResourceLoaderContext $context ) {
return array( 'MediaWiki:Noscript.css' => array( 'type' => 'style' ) );
/**
* Gets group name
*
- * @return String: Name of group
+ * @return string Name of group
*/
public function getGroup() {
return 'noscript';
/**
* Gets list of pages used by this module
*
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
*
- * @return Array: List of pages
+ * @return array List of pages
*/
protected function getPages( ResourceLoaderContext $context ) {
global $wgUseSiteJs, $wgUseSiteCss;
/**
* Gets group name
*
- * @return String: Name of group
+ * @return string Name of group
*/
public function getGroup() {
return 'site';
/**
* Get registration code for all modules.
*
- * @param ResourceLoaderContext $context object
+ * @param ResourceLoaderContext $context
* @return string JavaScript code for registering all modules with the client loader
*/
public static function getModuleRegistrations( ResourceLoaderContext $context ) {
*
* Detect changes to mw.config settings embedded in #getScript (bug 28899).
*
- * @param $context ResourceLoaderContext
- * @return string: Hash
+ * @param ResourceLoaderContext $context
+ * @return string Hash
*/
public function getModifiedHash( ResourceLoaderContext $context ) {
global $wgLegacyJavaScriptGlobals;
/* Methods */
/**
- * @param $context ResourceLoaderContext
- * @return array|int|Mixed
+ * @param ResourceLoaderContext $context
+ * @return array|int|mixed
*/
public function getModifiedTime( ResourceLoaderContext $context ) {
$hash = $context->getHash();
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
public function getStyles( ResourceLoaderContext $context ) {
/* Protected Methods */
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
protected function getPages( ResourceLoaderContext $context ) {
/* Protected Methods */
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
protected function getPages( ResourceLoaderContext $context ) {
/* Methods */
/**
- * @param $context ResourceLoaderContext
- * @return array|int|Mixed
+ * @param ResourceLoaderContext $context
+ * @return array|int|mixed
*/
public function getModifiedTime( ResourceLoaderContext $context ) {
$hash = $context->getHash();
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return string
*/
public function getScript( ResourceLoaderContext $context ) {
/**
* Fetch the tokens for the current user.
*
- * @return array: List of tokens keyed by token type
+ * @return array List of tokens keyed by token type
*/
protected function contextUserTokens() {
global $wgUser;
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return string
*/
public function getScript( ResourceLoaderContext $context ) {
* There is an optional media key, the value of which can be the
* medium ('screen', 'print', etc.) of the stylesheet.
*
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
abstract protected function getPages( ResourceLoaderContext $context );
}
/**
- * @param $title Title
+ * @param Title $title
* @return null|string
*/
protected function getContent( $title ) {
/* Methods */
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return string
*/
public function getScript( ResourceLoaderContext $context ) {
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
public function getStyles( ResourceLoaderContext $context ) {
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return int|mixed
*/
public function getModifiedTime( ResourceLoaderContext $context ) {
/**
* Get the definition summary for this module.
*
- * @return Array
+ * @return array
*/
public function getDefinitionSummary( ResourceLoaderContext $context ) {
return array(
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return bool
*/
public function isKnownEmpty( ResourceLoaderContext $context ) {
/**
* Get the modification times of all titles that would be loaded for
* a given context.
- * @param $context ResourceLoaderContext: Context object
+ * @param ResourceLoaderContext $context Context object
* @return array( prefixed DB key => UNIX timestamp ), nonexistent titles are dropped
*/
protected function getTitleMtimes( ResourceLoaderContext $context ) {
var $namespaces = array( NS_MAIN );
protected $showSuggestion = true;
- /** @var Array Feature values */
+ /** @var array Feature values */
protected $features = array();
/**
* If title searches are not supported or disabled, return null.
* STUB
*
- * @param string $term raw search term
+ * @param string $term Raw search term
* @return SearchResultSet|Status|null
*/
function searchText( $term ) {
* If title searches are not supported or disabled, return null.
* STUB
*
- * @param string $term raw search term
+ * @param string $term Raw search term
* @return SearchResultSet|null
*/
function searchTitle( $term ) {
/**
* @since 1.18
- * @param $feature String
- * @return Boolean
+ * @param string $feature
+ * @return bool
*/
public function supports( $feature ) {
switch ( $feature ) {
/**
* Way to pass custom data for engines
* @since 1.18
- * @param $feature String
- * @param $data Mixed
+ * @param string $feature
+ * @param mixed $data
* @return bool
*/
public function setFeatureData( $feature, $data ) {
* If an exact title match can be found, or a very slightly close match,
* return the title. If no match, returns NULL.
*
- * @param $searchterm String
+ * @param string $searchterm
* @return Title
*/
public static function getNearMatch( $searchterm ) {
* Do a near match (see SearchEngine::getNearMatch) and wrap it into a
* SearchResultSet.
*
- * @param $searchterm string
+ * @param string $searchterm
* @return SearchResultSet
*/
public static function getNearMatchResultSet( $searchterm ) {
* Set the maximum number of results to return
* and how many to skip before returning the first.
*
- * @param $limit Integer
- * @param $offset Integer
+ * @param int $limit
+ * @param int $offset
*/
function setLimitOffset( $limit, $offset = 0 ) {
$this->limit = intval( $limit );
* Set which namespaces the search should include.
* Give an array of namespace index numbers.
*
- * @param $namespaces Array
+ * @param array $namespaces
*/
function setNamespaces( $namespaces ) {
$this->namespaces = $namespaces;
* don't support building a suggestion in the first place and others don't respect
* this flag.
*
- * @param boolean $showSuggestion should the searcher try to build suggestions
+ * @param bool $showSuggestion Should the searcher try to build suggestions
*/
function setShowSuggestion( $showSuggestion ) {
$this->showSuggestion = $showSuggestion;
* Parse some common prefixes: all (search everything)
* or namespace names
*
- * @param $query String
+ * @param string $query
* @return string
*/
function replacePrefixes( $query ) {
/**
* Make a list of searchable namespaces and their canonical names.
- * @return Array
+ * @return array
*/
public static function searchableNamespaces() {
global $wgContLang;
* Extract default namespaces to search from the given user's
* settings, returning a list of index numbers.
*
- * @param $user User
- * @return Array
+ * @param user $user
+ * @return array
*/
public static function userNamespaces( $user ) {
global $wgSearchEverythingOnlyLoggedIn;
/**
* Find snippet highlight settings for all users
*
- * @return Array contextlines, contextchars
+ * @return array Contextlines, contextchars
*/
public static function userHighlightPrefs() {
$contextlines = 2; // Hardcode this. Old defaults sucked. :)
/**
* An array of namespaces indexes to be searched by default
*
- * @return Array
+ * @return array
*/
public static function defaultNamespaces() {
global $wgNamespacesToBeSearchedDefault;
* Get a list of namespace names useful for showing in tooltips
* and preferences
*
- * @param $namespaces Array
+ * @param array $namespaces
* @return array
*/
public static function namespacesAsText( $namespaces ) {
/**
* Return the help namespaces to be shown on Special:Search
*
- * @return Array
+ * @return array
*/
public static function helpNamespaces() {
global $wgNamespacesToBeSearchedHelp;
/**
* Return a 'cleaned up' search string
*
- * @param $text String
- * @return String
+ * @param string $text
+ * @return string
*/
function filter( $text ) {
$lc = $this->legalSearchChars();
* Load up the appropriate search engine class for the currently
* active database backend, and return a configured instance.
*
- * @param String $type Type of search backend, if not the default
+ * @param string $type Type of search backend, if not the default
* @return SearchEngine
*/
public static function create( $type = null ) {
* Title and text should be pre-processed.
* STUB
*
- * @param $id Integer
- * @param $title String
- * @param $text String
+ * @param int $id
+ * @param string $title
+ * @param string $text
*/
function update( $id, $title, $text ) {
// no-op
* Title should be pre-processed.
* STUB
*
- * @param $id Integer
- * @param $title String
+ * @param int $id
+ * @param string $title
*/
function updateTitle( $id, $title ) {
// no-op
* Title should be pre-processed.
* STUB
*
- * @param Integer $id Page id that was deleted
- * @param String $title Title of page that was deleted
+ * @param int $id Page id that was deleted
+ * @param string $title Title of page that was deleted
*/
function delete( $id, $title ) {
// no-op
/**
* Get OpenSearch suggestion template
*
- * @return String
+ * @return string
*/
public static function getOpenSearchTemplate() {
global $wgOpenSearchTemplate, $wgCanonicalServer;
/**
* Default implementation of wikitext highlighting
*
- * @param $text String
- * @param array $terms terms to highlight (unescaped)
- * @param $contextlines Integer
- * @param $contextchars Integer
- * @return String
+ * @param string $text
+ * @param array $terms Terms to highlight (unescaped)
+ * @param int $contextlines
+ * @param int $contextchars
+ * @return tring
*/
public function highlightText( $text, $terms, $contextlines, $contextchars ) {
global $wgContLang;
* Split text into lines and add it to extracts array
*
* @param array $extracts index -> $line
- * @param $count Integer
- * @param $text String
+ * @param int $count
+ * @param string $text
*/
function splitAndAdd( &$extracts, &$count, $text ) {
$split = explode( "\n", $this->mCleanWikitext ? $this->removeWiki( $text ) : $text );
/**
* Do manual case conversion for non-ascii chars
*
- * @param $matches Array
+ * @param array $matches
* @return string
*/
function caseCallback( $matches ) {
/**
* Extract part of the text from start to end, but by
* not chopping up words
- * @param $text String
- * @param $start Integer
- * @param $end Integer
- * @param $posStart Integer: (out) actual start position
- * @param $posEnd Integer: (out) actual end position
- * @return String
+ * @param string $text
+ * @param int $start
+ * @param int $end
+ * @param int $posStart (out) actual start position
+ * @param int $posEnd (out) actual end position
+ * @return string
*/
function extract( $text, $start, $end, &$posStart = null, &$posEnd = null ) {
if ( $start != 0 ) {
/**
* Find a nonletter near a point (index) in the text
*
- * @param $text String
- * @param $point Integer
- * @param $offset Integer: offset to found index
- * @return Integer: nearest nonletter index, or beginning of utf8 char if none
+ * @param string $text
+ * @param int $point
+ * @param int $offset Offset to found index
+ * @return int Nearest nonletter index, or beginning of utf8 char if none
*/
function position( $text, $point, $offset = 0 ) {
$tolerance = 10;
/**
* Search extracts for a pattern, and return snippets
*
- * @param string $pattern regexp for matching lines
- * @param array $extracts extracts to search
- * @param $linesleft Integer: number of extracts to make
- * @param $contextchars Integer: length of snippet
- * @param array $out map for highlighted snippets
- * @param array $offsets map of starting points of snippets
+ * @param string $pattern Regexp for matching lines
+ * @param array $extracts Extracts to search
+ * @param int $linesleft Number of extracts to make
+ * @param int $contextchars Length of snippet
+ * @param array $out Map for highlighted snippets
+ * @param array $offsets Map of starting points of snippets
* @protected
*/
function process( $pattern, $extracts, &$linesleft, &$contextchars, &$out, &$offsets ) {
* callback to replace [[target|caption]] kind of links, if
* the target is category or image, leave it
*
- * @param $matches Array
+ * @param array $matches
*/
function linkReplace( $matches ) {
$colon = strpos( $matches[1], ':' );
* Simple & fast snippet extraction, but gives completely unrelevant
* snippets
*
- * @param $text String
- * @param $terms Array
- * @param $contextlines Integer
- * @param $contextchars Integer
- * @return String
+ * @param string $text
+ * @param array $terms
+ * @param int $contextlines
+ * @param int $contextchars
+ * @return string
*/
public function highlightSimple( $text, $terms, $contextlines, $contextchars ) {
global $wgContLang;
/**
* Perform a full text search query and return a result set.
*
- * @param string $term raw search term
- * @return MssqlSearchResultSet
+ * @param string $term Raw search term
+ * @return SqlSearchResultSet
* @access public
*/
function searchText( $term ) {
$resultSet = $this->db->resultObject( $this->db->query( $this->getQuery( $this->filter( $term ), true ) ) );
- return new MssqlSearchResultSet( $resultSet, $this->searchTerms );
+ return new SqlSearchResultSet( $resultSet, $this->searchTerms );
}
/**
* Perform a title-only search query and return a result set.
*
- * @param string $term raw search term
- * @return MssqlSearchResultSet
+ * @param string $term Raw search term
+ * @return SqlSearchResultSet
* @access public
*/
function searchTitle( $term ) {
$resultSet = $this->db->resultObject( $this->db->query( $this->getQuery( $this->filter( $term ), false ) ) );
- return new MssqlSearchResultSet( $resultSet, $this->searchTerms );
+ return new SqlSearchResultSet( $resultSet, $this->searchTerms );
}
/**
* Return a partial WHERE clause to limit the search to the given namespaces
*
- * @return String
+ * @return string
* @private
*/
function queryNamespaces() {
/**
* Return a LIMIT clause to limit results on the query.
*
- * @param $sql string
+ * @param string $sql
*
- * @return String
+ * @return string
*/
function queryLimit( $sql ) {
return $this->db->limitResult( $sql, $this->limit, $this->offset );
* Does not do anything for generic search engine
* subclasses may define this though
*
- * @return String
+ * @return string
*/
function queryRanking( $filteredTerm, $fulltext ) {
return ' ORDER BY ftindex.[RANK] DESC'; // return ' ORDER BY score(1)';
* Construct the full SQL query to do the search.
* The guts shoulds be constructed in queryMain()
*
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return String
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return string
*/
function getQuery( $filteredTerm, $fulltext ) {
return $this->queryLimit( $this->queryMain( $filteredTerm, $fulltext ) . ' ' .
/**
* Picks which field to index on, depending on what type of query.
*
- * @param $fulltext Boolean
+ * @param bool $fulltext
* @return string
*/
function getIndexField( $fulltext ) {
/**
* Get the base part of the search query.
*
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return String
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return string
* @private
*/
function queryMain( $filteredTerm, $fulltext ) {
* Create or update the search index record for the given page.
* Title and text should be pre-processed.
*
- * @param $id Integer
- * @param $title String
- * @param $text String
+ * @param int $id
+ * @param string $title
+ * @param string $text
* @return bool|ResultWrapper
*/
function update( $id, $title, $text ) {
* Update a search index record's title only.
* Title should be pre-processed.
*
- * @param $id Integer
- * @param $title String
+ * @param int $id
+ * @param string $title
* @return bool|ResultWrapper
*/
function updateTitle( $id, $title ) {
return $this->db->query( $sql, 'SearchMssql::updateTitle' );
}
}
-
-/**
- * @ingroup Search
- */
-class MssqlSearchResultSet extends SearchResultSet {
- function __construct( $resultSet, $terms ) {
- $this->mResultSet = $resultSet;
- $this->mTerms = $terms;
- }
-
- function termMatches() {
- return $this->mTerms;
- }
-
- function numRows() {
- return $this->mResultSet->numRows();
- }
-
- function next() {
- $row = $this->mResultSet->fetchObject();
- if ( $row === false ) {
- return false;
- }
- return new SearchResult( $row );
- }
-}
* Parse the user's query and transform it into an SQL fragment which will
* become part of a WHERE clause
*
- * @param $filteredText string
- * @param $fulltext string
+ * @param string $filteredText
+ * @param string $fulltext
*
* @return string
*/
/**
* Perform a full text search query and return a result set.
*
- * @param string $term raw search term
- * @return MySQLSearchResultSet
+ * @param string $term Raw search term
+ * @return SqlSearchResultSet
*/
function searchText( $term ) {
return $this->searchInternal( $term, true );
/**
* Perform a title-only search query and return a result set.
*
- * @param string $term raw search term
- * @return MySQLSearchResultSet
+ * @param string $term Raw search term
+ * @return SqlSearchResultSet
*/
function searchTitle( $term ) {
return $this->searchInternal( $term, false );
$totalResult->free();
}
- return new MySQLSearchResultSet( $resultSet, $this->searchTerms, $total );
+ return new SqlSearchResultSet( $resultSet, $this->searchTerms, $total );
}
public function supports( $feature ) {
/**
* Add special conditions
- * @param $query Array
+ * @param array $query
* @since 1.18
*/
protected function queryFeatures( &$query ) {
/**
* Add namespace conditions
- * @param $query Array
+ * @param array $query
* @since 1.18 (changed)
*/
function queryNamespaces( &$query ) {
/**
* Add limit options
- * @param $query Array
+ * @param array $query
* @since 1.18
*/
protected function limitResult( &$query ) {
/**
* Construct the SQL query to do the search.
* The guts shoulds be constructed in queryMain()
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return Array
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return array
* @since 1.18 (changed)
*/
function getQuery( $filteredTerm, $fulltext ) {
/**
* Picks which field to index on, depending on what type of query.
- * @param $fulltext Boolean
- * @return String
+ * @param bool $fulltext
+ * @return string
*/
function getIndexField( $fulltext ) {
return $fulltext ? 'si_text' : 'si_title';
/**
* Get the base part of the search query.
*
- * @param &$query array Search query array
- * @param $filteredTerm String
- * @param $fulltext Boolean
+ * @param array &$query Search query array
+ * @param string $filteredTerm
+ * @param bool $fulltext
* @since 1.18 (changed)
*/
function queryMain( &$query, $filteredTerm, $fulltext ) {
* Create or update the search index record for the given page.
* Title and text should be pre-processed.
*
- * @param $id Integer
- * @param $title String
- * @param $text String
+ * @param int $id
+ * @param string $title
+ * @param string $text
*/
function update( $id, $title, $text ) {
$dbw = wfGetDB( DB_MASTER );
* Update a search index record's title only.
* Title should be pre-processed.
*
- * @param $id Integer
- * @param $title String
+ * @param int $id
+ * @param string $title
*/
function updateTitle( $id, $title ) {
$dbw = wfGetDB( DB_MASTER );
* Delete an indexed page
* Title should be pre-processed.
*
- * @param Integer $id Page id that was deleted
- * @param String $title Title of page that was deleted
+ * @param int $id Page id that was deleted
+ * @param string $title Title of page that was deleted
*/
function delete( $id, $title ) {
$dbw = wfGetDB( DB_MASTER );
return self::$mMinSearchLength;
}
}
-
-/**
- * @ingroup Search
- */
-class MySQLSearchResultSet extends SqlSearchResultSet {
- function __construct( $resultSet, $terms, $totalHits = null ) {
- parent::__construct( $resultSet, $terms );
- $this->mTotalHits = $totalHits;
- }
-
- function getTotalHits() {
- return $this->mTotalHits;
- }
-}
/**
* Perform a full text search query and return a result set.
*
- * @param string $term raw search term
+ * @param string $term Raw search term
* @return SqlSearchResultSet
*/
function searchText( $term ) {
/**
* Perform a title-only search query and return a result set.
*
- * @param string $term raw search term
+ * @param string $term Raw search term
* @return SqlSearchResultSet
*/
function searchTitle( $term ) {
}
$resultSet = $this->db->resultObject( $this->db->query( $this->getQuery( $this->filter( $term ), false ) ) );
- return new MySQLSearchResultSet( $resultSet, $this->searchTerms );
+ return new SqlSearchResultSet( $resultSet, $this->searchTerms );
}
/**
* Return a partial WHERE clause to limit the search to the given namespaces
- * @return String
+ * @return string
*/
function queryNamespaces() {
if ( is_null( $this->namespaces ) ) {
/**
* Return a LIMIT clause to limit results on the query.
*
- * @param $sql string
+ * @param string $sql
*
- * @return String
+ * @return string
*/
function queryLimit( $sql ) {
return $this->db->limitResult( $sql, $this->limit, $this->offset );
* Does not do anything for generic search engine
* subclasses may define this though
*
- * @return String
+ * @return string
*/
function queryRanking( $filteredTerm, $fulltext ) {
return ' ORDER BY score(1)';
/**
* Construct the full SQL query to do the search.
* The guts shoulds be constructed in queryMain()
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return String
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return string
*/
function getQuery( $filteredTerm, $fulltext ) {
return $this->queryLimit( $this->queryMain( $filteredTerm, $fulltext ) . ' ' .
/**
* Picks which field to index on, depending on what type of query.
- * @param $fulltext Boolean
- * @return String
+ * @param bool $fulltext
+ * @return string
*/
function getIndexField( $fulltext ) {
return $fulltext ? 'si_text' : 'si_title';
/**
* Get the base part of the search query.
*
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return String
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return string
*/
function queryMain( $filteredTerm, $fulltext ) {
$match = $this->parseQuery( $filteredTerm, $fulltext );
* Create or update the search index record for the given page.
* Title and text should be pre-processed.
*
- * @param $id Integer
- * @param $title String
- * @param $text String
+ * @param int $id
+ * @param string $title
+ * @param string $text
*/
function update( $id, $title, $text ) {
$dbw = wfGetDB( DB_MASTER );
* Update a search index record's title only.
* Title should be pre-processed.
*
- * @param $id Integer
- * @param $title String
+ * @param int $id
+ * @param string $title
*/
function updateTitle( $id, $title ) {
$dbw = wfGetDB( DB_MASTER );
* Currently searches a page's current title (page.page_title) and
* latest revision article text (pagecontent.old_text)
*
- * @param string $term raw search term
+ * @param string $term Raw search term
* @return PostgresSearchResultSet
*/
function searchTitle( $term ) {
* Transform the user's search string into a better form for tsearch2
* Returns an SQL fragment consisting of quoted text to search for.
*
- * @param $term string
+ * @param string $term
*
* @return string
*/
/**
* Construct the full SQL query to do the search.
- * @param $term String
- * @param $fulltext String
- * @param $colname
+ * @param string $term
+ * @param string $fulltext
+ * @param string $colname
* @return string
*/
function searchQuery( $term, $fulltext, $colname ) {
* @ingroup Search
*/
class PostgresSearchResultSet extends SqlSearchResultSet {
- function __construct( $resultSet, $terms ) {
- parent::__construct( $resultSet, $terms );
- }
-
function next() {
- $row = $this->mResultSet->fetchObject();
+ $row = $this->resultSet->fetchObject();
if ( $row === false ) {
return false;
} else {
protected $mTitle;
/**
- * @var String
+ * @var string
*/
protected $mText;
/**
* Return a new SearchResult and initializes it with a title.
*
- * @param $title Title
+ * @param Title $title
* @return SearchResult
*/
public static function newFromTitle( $title ) {
/**
* Return a new SearchResult and initializes it with a row.
*
- * @param $row object
+ * @param object $row
* @return SearchResult
*/
public static function newFromRow( $row ) {
* Initialize from a database row. Makes a Title and passes that to
* initFromTitle.
*
- * @param $row object
+ * @param object $row
*/
protected function initFromRow( $row ) {
$this->initFromTitle( Title::makeTitle( $row->page_namespace, $row->page_title ) );
* Initialize from a Title and if possible initializes a corresponding
* Revision and File.
*
- * @param $title Title
+ * @param Title $title
*/
protected function initFromTitle( $title ) {
$this->mTitle = $title;
/**
* Check if this is result points to an invalid title
*
- * @return Boolean
+ * @return bool
*/
function isBrokenTitle() {
return is_null( $this->mTitle );
/**
* Check if target page is missing, happens when index is out of date
*
- * @return Boolean
+ * @return bool
*/
function isMissingRevision() {
return !$this->mRevision && !$this->mImage;
}
/**
- * @return float|null if not supported
+ * @return float|null If not supported
*/
function getScore() {
return null;
}
/**
- * @param array $terms terms to highlight
- * @return String: highlighted text snippet, null (and not '') if not supported
+ * @param array $terms Terms to highlight
+ * @return string Highlighted text snippet, null (and not '') if not supported
*/
function getTextSnippet( $terms ) {
global $wgAdvancedSearchHighlighting;
}
/**
- * @return String: highlighted title, '' if not supported
+ * @return string Highlighted title, '' if not supported
*/
function getTitleSnippet() {
return '';
}
/**
- * @return String: highlighted redirect name (redirect to this page), '' if none or not supported
+ * @return string Highlighted redirect name (redirect to this page), '' if none or not supported
*/
function getRedirectSnippet() {
return '';
}
/**
- * @return Title object for the redirect to this page, null if none or not supported
+ * @return Title Title object for the redirect to this page, null if none or not supported
*/
function getRedirectTitle() {
return null;
}
/**
- * @return string highlighted relevant section name, null if none or not supported
+ * @return string Highlighted relevant section name, null if none or not supported
*/
function getSectionSnippet() {
return '';
}
/**
- * @return Title object (pagename+fragment) for the section, null if none or not supported
+ * @return Title Title object (pagename+fragment) for the section, null if none or not supported
*/
function getSectionTitle() {
return null;
}
/**
- * @return String: timestamp
+ * @return string timestamp
*/
function getTimestamp() {
if ( $this->mRevision ) {
}
/**
- * @return Integer: number of words
+ * @return int Number of words
*/
function getWordCount() {
$this->initText();
}
/**
- * @return Integer: size in bytes
+ * @return int Size in bytes
*/
function getByteSize() {
$this->initText();
}
/**
- * @return Boolean if hit has related articles
+ * @return bool If hit has related articles
*/
function hasRelated() {
return false;
}
/**
- * @return String: interwiki prefix of the title (return iw even if title is broken)
+ * @return string Interwiki prefix of the title (return iw even if title is broken)
*/
function getInterwikiPrefix() {
return '';
}
/**
- * @return string interwiki namespace of the title (since we likely can't resolve it locally)
+ * @return string Interwiki namespace of the title (since we likely can't resolve it locally)
*/
function getInterwikiNamespaceText() {
return '';
/**
* Did this match file contents (eg: PDF/DJVU)?
+ * @return bool
*/
function isFileMatch() {
return false;
* the search terms as parsed by this engine in a text extract.
* STUB
*
- * @return Array
+ * @return array
*/
function termMatches() {
return array();
* Return true if results are included in this result set.
* STUB
*
- * @return Boolean
+ * @return bool
*/
function hasResults() {
return false;
*
* Return null if no total hits number is supported.
*
- * @return Integer
+ * @return int
*/
function getTotalHits() {
return null;
* Some search modes return a suggested alternate term if there are
* no exact hits. Returns true if there is one on this set.
*
- * @return Boolean
+ * @return bool
*/
function hasSuggestion() {
return false;
}
/**
- * @return String: suggested query, null if none
+ * @return string Suggested query, null if none
*/
function getSuggestionQuery() {
return null;
}
/**
- * @return String: HTML highlighted suggested query, '' if none
+ * @return string HTML highlighted suggested query, '' if none
*/
function getSuggestionSnippet() {
return '';
/**
* Check if there are results on other wikis
*
- * @return Boolean
+ * @return bool
*/
function hasInterwikiResults() {
return $this->getInterwikiResults() != null;
* Did the search contain search syntax? If so, Special:Search won't offer
* the user a link to a create a page named by the search string because the
* name would contain the search syntax.
+ * @return bool
*/
public function searchContainedSyntax() {
return false;
* @ingroup Search
*/
class SqlSearchResultSet extends SearchResultSet {
+ protected $resultSet;
+ protected $terms;
+ protected $totalHits;
- protected $mResultSet;
-
- function __construct( $resultSet, $terms ) {
- $this->mResultSet = $resultSet;
- $this->mTerms = $terms;
+ function __construct( $resultSet, $terms, $total = null ) {
+ $this->resultSet = $resultSet;
+ $this->terms = $terms;
+ $this->totalHits = $total;
}
function termMatches() {
- return $this->mTerms;
+ return $this->terms;
}
function numRows() {
- if ( $this->mResultSet === false ) {
+ if ( $this->resultSet === false ) {
return false;
}
- return $this->mResultSet->numRows();
+ return $this->resultSet->numRows();
}
function next() {
- if ( $this->mResultSet === false ) {
+ if ( $this->resultSet === false ) {
return false;
}
- $row = $this->mResultSet->fetchObject();
+ $row = $this->resultSet->fetchObject();
if ( $row === false ) {
return false;
}
}
function free() {
- if ( $this->mResultSet === false ) {
+ if ( $this->resultSet === false ) {
return false;
}
- $this->mResultSet->free();
+ $this->resultSet->free();
+ }
+
+ function getTotalHits() {
+ return $this->totalHits;
}
}
private $fetched = false;
/**
- * @param $match mixed Title if matched, else null
+ * @param Title|null $match Title if matched, else null
*/
public function __construct( $match ) {
$this->result = $match;
class SearchSqlite extends SearchDatabase {
/**
* Whether fulltext search is supported by current schema
- * @return Boolean
+ * @return bool
*/
function fulltextSearchSupported() {
return $this->db->checkForEnabledSearch();
/**
* Perform a full text search query and return a result set.
*
- * @param string $term raw search term
- * @return SqliteSearchResultSet
+ * @param string $term Raw search term
+ * @return SqlSearchResultSet
*/
function searchText( $term ) {
return $this->searchInternal( $term, true );
/**
* Perform a title-only search query and return a result set.
*
- * @param string $term raw search term
- * @return SqliteSearchResultSet
+ * @param string $term Raw search term
+ * @return SqlSearchResultSet
*/
function searchTitle( $term ) {
return $this->searchInternal( $term, false );
$totalResult->free();
}
- return new SqliteSearchResultSet( $resultSet, $this->searchTerms, $total );
+ return new SqlSearchResultSet( $resultSet, $this->searchTerms, $total );
}
/**
* Return a partial WHERE clause to limit the search to the given namespaces
- * @return String
+ * @return string
*/
function queryNamespaces() {
if ( is_null( $this->namespaces ) ) {
/**
* Returns a query with limit for number of results set.
- * @param $sql String:
- * @return String
+ * @param string $sql
+ * @return string
*/
function limitResult( $sql ) {
return $this->db->limitResult( $sql, $this->limit, $this->offset );
/**
* Construct the full SQL query to do the search.
* The guts shoulds be constructed in queryMain()
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return String
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return string
*/
function getQuery( $filteredTerm, $fulltext ) {
return $this->limitResult(
/**
* Picks which field to index on, depending on what type of query.
- * @param $fulltext Boolean
- * @return String
+ * @param bool $fulltext
+ * @return string
*/
function getIndexField( $fulltext ) {
return $fulltext ? 'si_text' : 'si_title';
/**
* Get the base part of the search query.
*
- * @param $filteredTerm String
- * @param $fulltext Boolean
- * @return String
+ * @param string $filteredTerm
+ * @param bool $fulltext
+ * @return string
*/
function queryMain( $filteredTerm, $fulltext ) {
$match = $this->parseQuery( $filteredTerm, $fulltext );
* Create or update the search index record for the given page.
* Title and text should be pre-processed.
*
- * @param $id Integer
- * @param $title String
- * @param $text String
+ * @param int $id
+ * @param string $title
+ * @param string $text
*/
function update( $id, $title, $text ) {
if ( !$this->fulltextSearchSupported() ) {
* Update a search index record's title only.
* Title should be pre-processed.
*
- * @param $id Integer
- * @param $title String
+ * @param int $id
+ * @param string $title
*/
function updateTitle( $id, $title ) {
if ( !$this->fulltextSearchSupported() ) {
__METHOD__ );
}
}
-
-/**
- * @ingroup Search
- */
-class SqliteSearchResultSet extends SqlSearchResultSet {
- function __construct( $resultSet, $terms, $totalHits = null ) {
- parent::__construct( $resultSet, $terms );
- $this->mTotalHits = $totalHits;
- }
-
- function getTotalHits() {
- return $this->mTotalHits;
- }
-}
/**
* @since 1.21
- * @deprecated Just use the constructor or the factory Site::newForType
+ * @deprecated since 1.21 Just use the constructor or the factory Site::newForType
*
* @param int $globalId
*
/**
* Entry point : initialise variables and call subfunctions.
*
- * @param string $par becomes "FOO" when called like Special:Allpages/FOO (default NULL)
+ * @param string $par becomes "FOO" when called like Special:Allpages/FOO (default null)
*/
function execute( $par ) {
$request = $this->getRequest();
/**
* @param int $namespace Namespace (Default NS_MAIN)
- * @param string $from List all pages from this name (default FALSE)
- * @param string $to List all pages to this name (default FALSE)
- * @param bool $hideredirects Dont show redirects (default FALSE)
+ * @param string $from List all pages from this name (default false)
+ * @param string $to List all pages to this name (default false)
+ * @param bool $hideredirects Dont show redirects (default false)
*/
function showChunk( $namespace = NS_MAIN, $from = false, $to = false, $hideredirects = false ) {
$output = $this->getOutput();
/**
* @param int $ns The namespace of the article
* @param string $text The name of the article
- * @return array( int namespace, string dbkey, string pagename ) or NULL on error
+ * @return array( int namespace, string dbkey, string pagename ) or null on error
*/
protected function getNamespaceKeyAndText( $ns, $text ) {
if ( $text == '' ) {
/**
* @param int $namespace Default NS_MAIN
* @param string $prefix
- * @param string $from List all pages from this name (default FALSE)
+ * @param string $from List all pages from this name (default false)
*/
protected function showPrefixChunk( $namespace = NS_MAIN, $prefix, $from = null ) {
global $wgContLang;
$profile = new ProfileSection( __METHOD__ );
if ( $result->isBrokenTitle() ) {
- return "<!-- Broken link in search result -->\n";
+ return '';
}
$title = $result->getTitle();
// The least confusing at this point is to drop the result.
// You may get less results, but... oh well. :P
if ( $result->isMissingRevision() ) {
- return "<!-- missing page " . htmlspecialchars( $title->getPrefixedText() ) . "-->\n";
+ return '';
}
// format redirects / relevant sections
$profile = new ProfileSection( __METHOD__ );
if ( $result->isBrokenTitle() ) {
- return "<!-- Broken link in search result -->\n";
+ return '';
}
$title = $result->getTitle();
<div id="signupstart"><?php $this->msgWiki( 'signupstart' ); ?></div>
<?php } ?>
<div id="userloginForm">
- <h2 class="createaccount-join">
- <?php $this->msg( $this->data['loggedin'] ? 'createacct-another-join' : 'createacct-join' ); ?>
- </h2>
<form name="userlogin2" id="userlogin2" class="mw-ui-vform" method="post" action="<?php $this->text( 'action' ); ?>">
<section class="mw-form-header">
<?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
* $wgAntivirusRequired may be used to deny upload if the scan fails.
*
* @param string $file Pathname to the temporary upload file
- * @return mixed False if not virus is found, NULL if the scan fails or is disabled,
+ * @return mixed False if not virus is found, null if the scan fails or is disabled,
* or a string containing feedback from the virus scanner if a virus was found.
* If textual feedback is missing but a virus was found, this function returns true.
*/
--- /dev/null
+<?php
+/**
+ * Internationalisation code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
+/**
+ * A fake language converter
+ *
+ * @ingroup Language
+ */
+class FakeConverter {
+ /**
+ * @var Language
+ */
+ public $mLang;
+
+ function __construct( $langobj ) {
+ $this->mLang = $langobj;
+ }
+
+ function autoConvert( $text, $variant = false ) {
+ return $text;
+ }
+
+ function autoConvertToAllVariants( $text ) {
+ return array( $this->mLang->getCode() => $text );
+ }
+
+ function convert( $t ) {
+ return $t;
+ }
+
+ function convertTo( $text, $variant ) {
+ return $text;
+ }
+
+ /**
+ * @param Title $t
+ * @return mixed
+ */
+ function convertTitle( $t ) {
+ return $t->getPrefixedText();
+ }
+
+ function convertNamespace( $ns ) {
+ return $this->mLang->getFormattedNsText( $ns );
+ }
+
+ function getVariants() {
+ return array( $this->mLang->getCode() );
+ }
+
+ function getVariantFallbacks( $variant ) {
+ return $this->mLang->getCode();
+ }
+
+ function getPreferredVariant() {
+ return $this->mLang->getCode();
+ }
+
+ function getDefaultVariant() {
+ return $this->mLang->getCode();
+ }
+
+ function getURLVariant() {
+ return '';
+ }
+
+ function getConvRuleTitle() {
+ return false;
+ }
+
+ function findVariantLink( &$l, &$n, $ignoreOtherCond = false ) {
+ }
+
+ function getExtraHashOptions() {
+ return '';
+ }
+
+ function getParsedTitle() {
+ return '';
+ }
+
+ function markNoConversion( $text, $noParse = false ) {
+ return $text;
+ }
+
+ function convertCategoryKey( $key ) {
+ return $key;
+ }
+
+ /** @deprecated since 1.22 is no longer used */
+ function armourMath( $text ) {
+ return $text;
+ }
+
+ function validateVariant( $variant = null ) {
+ return $variant === $this->mLang->getCode() ? $variant : null;
+ }
+
+ function translate( $text, $variant ) {
+ return $text;
+ }
+}
mb_internal_encoding( 'UTF-8' );
}
-/**
- * a fake language converter
- *
- * @ingroup Language
- */
-class FakeConverter {
- /**
- * @var Language
- */
- public $mLang;
- function __construct( $langobj ) { $this->mLang = $langobj; }
- function autoConvert( $text, $variant = false ) { return $text; }
- function autoConvertToAllVariants( $text ) { return array( $this->mLang->getCode() => $text ); }
- function convert( $t ) { return $t; }
- function convertTo( $text, $variant ) { return $text; }
- function convertTitle( $t ) { return $t->getPrefixedText(); }
- function convertNamespace( $ns ) { return $this->mLang->getFormattedNsText( $ns ); }
- function getVariants() { return array( $this->mLang->getCode() ); }
- function getVariantFallbacks( $variant ) { return $this->mLang->getCode(); }
- function getPreferredVariant() { return $this->mLang->getCode(); }
- function getDefaultVariant() { return $this->mLang->getCode(); }
- function getURLVariant() { return ''; }
- function getConvRuleTitle() { return false; }
- function findVariantLink( &$l, &$n, $ignoreOtherCond = false ) { }
- function getExtraHashOptions() { return ''; }
- function getParsedTitle() { return ''; }
- function markNoConversion( $text, $noParse = false ) { return $text; }
- function convertCategoryKey( $key ) { return $key; }
- /** @deprecated since 1.22 is no longer used */
- function armourMath( $text ) { return $text; }
- function validateVariant( $variant = null ) { return $variant === $this->mLang->getCode() ? $variant : null; }
- function translate( $text, $variant ) { return $text; }
-}
-
/**
* Internationalisation code
* @ingroup Language
*/
class Language {
-
/**
* @var LanguageConverter
*/
* Hook which will be called if this is the content language.
* Descendants can use this to register hook functions or modify globals
*/
- function initContLang() { }
+ function initContLang() {
+ }
/**
* Same as getFallbacksFor for current language.
*/
function getFallbackLanguageCode() {
wfDeprecated( __METHOD__, '1.19' );
+
return self::getFallbackFor( $this->mCode );
}
wfRunHooks( 'LanguageGetNamespaces', array( &$this->namespaceNames ) );
}
+
return $this->namespaceNames;
}
*/
function getNsText( $index ) {
$ns = $this->getNamespaces();
+
return isset( $ns[$index] ) ? $ns[$index] : false;
}
*/
function getFormattedNsText( $index ) {
$ns = $this->getNsText( $index );
+
return strtr( $ns, '_', ' ' );
}
function getGenderNsText( $index, $gender ) {
global $wgExtraGenderNamespaces;
- $ns = $wgExtraGenderNamespaces + self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+ $ns = $wgExtraGenderNamespaces +
+ self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+
return isset( $ns[$index][$gender] ) ? $ns[$index][$gender] : $this->getNsText( $index );
}
}
global $wgExtraGenderNamespaces;
- $genders = $wgExtraGenderNamespaces + (array)self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+ $genders = $wgExtraGenderNamespaces +
+ (array)self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
foreach ( $genders as $index => $forms ) {
foreach ( $forms as $alias ) {
$aliases[$alias] = $index;
$this->namespaceAliases = $aliases + $convertedNames;
}
+
return $this->namespaceAliases;
}
throw new MWException( __METHOD__ . ": The timestamp $ts should be a number" );
}
- for ( $p = 0; $p < strlen( $format ); $p++ ) {
+ $formatLength = strlen( $format );
+ for ( $p = 0; $p < $formatLength; $p++ ) {
$num = false;
$code = $format[$p];
- if ( $code == 'x' && $p < strlen( $format ) - 1 ) {
+ if ( $code == 'x' && $p < $formatLength - 1 ) {
$code .= $format[++$p];
}
- if ( ( $code === 'xi' || $code == 'xj' || $code == 'xk' || $code == 'xm' || $code == 'xo' || $code == 'xt' ) && $p < strlen( $format ) - 1 ) {
+ if ( ( $code === 'xi'
+ || $code === 'xj'
+ || $code === 'xk'
+ || $code === 'xm'
+ || $code === 'xo'
+ || $code === 'xt' )
+ && $p < $formatLength - 1 ) {
$code .= $format[++$p];
}
break;
case '\\':
# Backslash escaping
- if ( $p < strlen( $format ) - 1 ) {
+ if ( $p < $formatLength - 1 ) {
$s .= $format[++$p];
} else {
$s .= '\\';
break;
case '"':
# Quoted literal
- if ( $p < strlen( $format ) - 1 ) {
+ if ( $p < $formatLength - 1 ) {
$endQuote = strpos( $format, '"', $p + 1 );
if ( $endQuote === false ) {
# No terminating quote, assume literal "
}
}
}
+
return $s;
}
$zl = $zjd -1948440 + 10632;
$zn = (int)( ( $zl - 1 ) / 10631 );
$zl = $zl - 10631 * $zn + 354;
- $zj = ( (int)( ( 10985 - $zl ) / 5316 ) ) * ( (int)( ( 50 * $zl ) / 17719 ) ) + ( (int)( $zl / 5670 ) ) * ( (int)( ( 43 * $zl ) / 15238 ) );
- $zl = $zl - ( (int)( ( 30 - $zj ) / 15 ) ) * ( (int)( ( 17719 * $zj ) / 50 ) ) - ( (int)( $zj / 16 ) ) * ( (int)( ( 15238 * $zj ) / 43 ) ) + 29;
+ $zj = ( (int)( ( 10985 - $zl ) / 5316 ) ) * ( (int)( ( 50 * $zl ) / 17719 ) ) +
+ ( (int)( $zl / 5670 ) ) * ( (int)( ( 43 * $zl ) / 15238 ) );
+ $zl = $zl - ( (int)( ( 30 - $zj ) / 15 ) ) * ( (int)( ( 17719 * $zj ) / 50 ) ) -
+ ( (int)( $zj / 16 ) ) * ( (int)( ( 15238 * $zj ) / 43 ) ) + 29;
$zm = (int)( ( 24 * $zl ) / 709 );
$zd = $zl - (int)( ( 709 * $zm ) / 24 );
$zy = 30 * $zn + $zj - 30;
# Deduct years from the Gregorian calendar
# depending on the nengo periods
# Months and days are identical
- if ( ( $gy < 1912 ) || ( ( $gy == 1912 ) && ( $gm < 7 ) ) || ( ( $gy == 1912 ) && ( $gm == 7 ) && ( $gd < 31 ) ) ) {
+ if ( ( $gy < 1912 )
+ || ( ( $gy == 1912 ) && ( $gm < 7 ) )
+ || ( ( $gy == 1912 ) && ( $gm == 7 ) && ( $gd < 31 ) )
+ ) {
# Meiji period
$gy_gannen = $gy - 1868 + 1;
$gy_offset = $gy_gannen;
array( '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X' ),
array( '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', 'C' ),
array( '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', 'M' ),
- array( '', 'M', 'MM', 'MMM', 'MMMM', 'MMMMM', 'MMMMMM', 'MMMMMMM', 'MMMMMMMM', 'MMMMMMMMM', 'MMMMMMMMMM' )
+ array( '', 'M', 'MM', 'MMM', 'MMMM', 'MMMMM', 'MMMMMM', 'MMMMMMM',
+ 'MMMMMMMM', 'MMMMMMMMM', 'MMMMMMMMMM' )
);
$num = intval( $num );
*/
public function getDurationIntervals( $seconds, array $chosenIntervals = array() ) {
if ( empty( $chosenIntervals ) ) {
- $chosenIntervals = array( 'millennia', 'centuries', 'decades', 'years', 'days', 'hours', 'minutes', 'seconds' );
+ $chosenIntervals = array(
+ 'millennia',
+ 'centuries',
+ 'decades',
+ 'years',
+ 'days',
+ 'hours',
+ 'minutes',
+ 'seconds'
+ );
}
$intervals = array_intersect_key( self::$durationIntervals, array_flip( $chosenIntervals ) );
*/
public function getHumanTimestamp( MWTimestamp $ts, MWTimestamp $relativeTo, User $user ) {
$diff = $ts->diff( $relativeTo );
- $diffDay = (bool)( (int)$ts->timestamp->format( 'w' ) - (int)$relativeTo->timestamp->format( 'w' ) );
+ $diffDay = (bool)( (int)$ts->timestamp->format( 'w' ) -
+ (int)$relativeTo->timestamp->format( 'w' ) );
$days = $diff->days ?: (int)$diffDay;
- if ( $diff->invert || $days > 5 && $ts->timestamp->format( 'Y' ) !== $relativeTo->timestamp->format( 'Y' ) ) {
+ if ( $diff->invert || $days > 5
+ && $ts->timestamp->format( 'Y' ) !== $relativeTo->timestamp->format( 'Y' )
+ ) {
// Timestamps are in different years: use full timestamp
// Also do full timestamp for future dates
/**
$breaks = "[ \-\(\)\}\{\.,\?!]";
// find first letter after word break
- $replaceRegexp = "/^([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)|$breaks([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/";
+ $replaceRegexp = "/^([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)|" .
+ "$breaks([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/";
if ( function_exists( 'mb_strtoupper' ) ) {
return preg_replace_callback(
/**
* An arrow, depending on the language direction.
*
- * @param string $direction The direction of the arrow: forwards (default), backwards, left, right, up, down.
+ * @param string $direction The direction of the arrow: forwards (default),
+ * backwards, left, right, up, down.
* @return string
*/
function getArrow( $direction = 'forwards' ) {
if ( isset( $wgGrammarForms[$this->getCode()][$case][$word] ) ) {
return $wgGrammarForms[$this->getCode()][$case][$word];
}
+
return $word;
}
/**
*/
function getGrammarForms() {
global $wgGrammarForms;
- if ( isset( $wgGrammarForms[$this->getCode()] ) && is_array( $wgGrammarForms[$this->getCode()] ) ) {
+ if ( isset( $wgGrammarForms[$this->getCode()] )
+ && is_array( $wgGrammarForms[$this->getCode()] )
+ ) {
return $wgGrammarForms[$this->getCode()];
}
+
return array();
}
/**
throw new MWException( "Invalid language code \"$code\"" );
}
- return "$IP/languages/i18n/$code.json" ;
+ return "$IP/languages/i18n/$code.json";
}
/**
* @todo Document
* @param int|float $seconds
* @param array $format Optional
- * If $format['avoid'] == 'avoidseconds' - don't mention seconds if $seconds >= 1 hour
- * If $format['avoid'] == 'avoidminutes' - don't mention seconds/minutes if $seconds > 48 hours
- * If $format['noabbrevs'] is true - use 'seconds' and friends instead of 'seconds-abbrev' and friends
- * For backwards compatibility, $format may also be one of the strings 'avoidseconds' or 'avoidminutes'
+ * If $format['avoid'] === 'avoidseconds': don't mention seconds if $seconds >= 1 hour.
+ * If $format['avoid'] === 'avoidminutes': don't mention seconds/minutes if $seconds > 48 hours.
+ * If $format['noabbrevs'] is true: use 'seconds' and friends instead of 'seconds-abbrev'
+ * and friends.
+ * For backwards compatibility, $format may also be one of the strings 'avoidseconds'
+ * or 'avoidminutes'.
* @return string
*/
function formatTimePeriod( $seconds, $format = array() ) {
/**
* Format a bitrate for output, using an appropriate
- * unit (bps, kbps, Mbps, Gbps, Tbps, Pbps, Ebps, Zbps or Ybps) according to the magnitude in question
+ * unit (bps, kbps, Mbps, Gbps, Tbps, Pbps, Ebps, Zbps or Ybps) according to
+ * the magnitude in question.
*
* This use base 1000. For base 1024 use formatSize(), for another base
- * see formatComputingNumbers()
+ * see formatComputingNumbers().
*
* @param int $bps
* @return string
* @param bool $atend Optional param for specified if this is the last page
* @return string
*/
- public function viewPrevNext( Title $title, $offset, $limit, array $query = array(), $atend = false ) {
+ public function viewPrevNext( Title $title, $offset, $limit,
+ array $query = array(), $atend = false
+ ) {
// @todo FIXME: Why on earth this needs one message for the text and another one for tooltip?
# Make 'previous' link
* @param string $class Value of the "class" attribute of the link
* @return string HTML fragment
*/
- private function numLink( Title $title, $offset, $limit, array $query, $link, $tooltipMsg, $class ) {
+ private function numLink( Title $title, $offset, $limit, array $query, $link,
+ $tooltipMsg, $class
+ ) {
$query = array( 'limit' => $limit, 'offset' => $offset ) + $query;
- $tooltip = wfMessage( $tooltipMsg )->inLanguage( $this )->title( $title )->numParams( $limit )->text();
+ $tooltip = wfMessage( $tooltipMsg )->inLanguage( $this )->title( $title )
+ ->numParams( $limit )->text();
+
return Html::element( 'a', array( 'href' => $title->getLocalURL( $query ),
'title' => $tooltip, 'class' => $class ), $link );
}
* @ingroup Language
*
* @author Zhengzhu Feng <zhengzhu@gmail.com>
- * @maintainers fdcn <fdcn64@gmail.com>, shinjiman <shinjiman@gmail.com>, PhiLiP <philip.npc@gmail.com>
+ * @author fdcn <fdcn64@gmail.com>
+ * @author shinjiman <shinjiman@gmail.com>
+ * @author PhiLiP <philip.npc@gmail.com>
*/
class LanguageConverter {
-
/**
* languages supporting variants
* @since 1.20
*/
public function getExtraHashOptions() {
$variant = $this->getPreferredVariant();
+
return '!' . $variant;
}
*/
function loadDefaultTables() {
$name = get_class( $this );
+
throw new MWException( "Must implement loadDefaultTables() method in class $name" );
}
/**
* Hook for post processing after conversion tables are loaded.
*/
- function postLoadTables() { }
+ function postLoadTables() {
+ }
/**
* Reload the conversion tables.
if ( $this->mTables ) {
unset( $this->mTables );
}
+
$this->mTablesLoaded = false;
$this->loadTables( false );
}
* @ingroup Language
* @see http://be-x-old.wikipedia.org/wiki/Project_talk:LanguageBe_tarask.php
*/
+// @codingStandardsIgnoreStart Ignore class name is not in camel caps format error
class LanguageBe_tarask extends Language {
+ // @codingStandardsIgnoreEnd
/**
* The Belarusian language uses apostrophe sign,
* but the characters used for this could be both U+0027 and U+2019.
* @ingroup Language
*/
class LanguageBs extends Language {
-
/**
* Convert from the nominative form of a noun to some other case
* Invoked with {{GRAMMAR:case|word}}
break;
}
- return $word; # this will return the original value for 'nominativ' (nominative) and all undefined case values
+ # this will return the original value for 'nominativ' (nominative)
+ # and all undefined case values.
+ return $word;
}
}
* @ingroup Language
*/
class LanguageCu extends Language {
-
/**
* Convert from the nominative form of a noun to some other case
* Invoked with {{grammar:case|word}}
*/
function convertGrammar( $word, $case ) {
global $wgGrammarForms;
+
if ( isset( $wgGrammarForms['сu'][$case][$word] ) ) {
return $wgGrammarForms['сu'][$case][$word];
}
- # These rules are not perfect, but they are currently only used for site names so it doesn't
- # matter if they are wrong sometimes. Just add a special case for your site name if necessary.
+ # These rules are not perfect, but they are currently only used for
+ # site names so it doesn't matter if they are wrong sometimes. Just add
+ # a special case for your site name if necessary.
# join and array_slice instead mb_substr
$ar = array();
if ( !preg_match( "/[a-zA-Z_]/us", $word ) ) {
switch ( $case ) {
case 'genitive': # родительный падеж
- if ( ( join( '', array_slice( $ar[0], -4 ) ) == 'вики' ) || ( join( '', array_slice( $ar[0], -4 ) ) == 'Вики' ) ) {
+ if ( ( join( '', array_slice( $ar[0], -4 ) ) == 'вики' )
+ || ( join( '', array_slice( $ar[0], -4 ) ) == 'Вики' )
+ ) {
} elseif ( join( '', array_slice( $ar[0], -2 ) ) == 'ї' ) {
$word = join( '', array_slice( $ar[0], 0, -2 ) ) . 'їѩ';
}
break;
}
}
+
return $word;
}
}
* @ingroup Language
*/
class LanguageDsb extends Language {
-
/**
* Convert from the nominative form of a noun to some other case
* Invoked with {{grammar:case|word}}
break;
}
- return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values
+ # this will return the original value for 'nominatiw' (nominativ) and
+ # all undefined case values.
+ return $word;
}
-
}
* @ingroup Language
*/
class LanguageFi extends Language {
-
/**
* Convert from the nominative form of a noun to some other case
* Invoked with {{grammar:case|word}}
function translateBlockExpiry( $str, $forContent = false ) {
/*
'ago', 'now', 'today', 'this', 'next',
- 'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth',
+ 'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth',
+ 'tenth', 'eleventh', 'twelfth',
'tomorrow', 'yesterday'
- $months = 'january:tammikuu,february:helmikuu,march:maaliskuu,april:huhtikuu,may:toukokuu,june:kesäkuu,' .
- 'july:heinäkuu,august:elokuu,september:syyskuu,october:lokakuu,november:marraskuu,december:joulukuu,' .
- 'jan:tammikuu,feb:helmikuu,mar:maaliskuu,apr:huhtikuu,jun:kesäkuu,jul:heinäkuu,aug:elokuu,sep:syyskuu,'.
- 'oct:lokakuu,nov:marraskuu,dec:joulukuu,sept:syyskuu';
+ $months = 'january:tammikuu,february:helmikuu,march:maaliskuu,april:huhtikuu,' .
+ 'may:toukokuu,june:kesäkuu,july:heinäkuu,august:elokuu,september:syyskuu,' .
+ 'october:lokakuu,november:marraskuu,december:joulukuu,' .
+ 'jan:tammikuu,feb:helmikuu,mar:maaliskuu,apr:huhtikuu,jun:kesäkuu,' .
+ 'jul:heinäkuu,aug:elokuu,sep:syyskuu,oct:lokakuu,nov:marraskuu,' .
+ dec:joulukuu,sept:syyskuu';
*/
$weekds = array(
'monday' => 'maanantai',
* @ingroup Language
*/
class GanConverter extends LanguageConverter {
-
/**
* @param Language $langobj
* @param string $maincode
* @param array $manualLevel
*/
function __construct( $langobj, $maincode,
- $variants = array(),
- $variantfallbacks = array(),
- $flags = array(),
- $manualLevel = array() ) {
+ $variants = array(),
+ $variantfallbacks = array(),
+ $flags = array(),
+ $manualLevel = array() ) {
$this->mDescCodeSep = ':';
$this->mDescVarSep = ';';
parent::__construct( $langobj, $maincode,
- $variants,
- $variantfallbacks,
- $flags,
- $manualLevel );
+ $variants,
+ $variantfallbacks,
+ $flags,
+ $manualLevel );
$names = array(
'gan' => '原文',
'gan-hans' => '简体',
* @ingroup Language
*/
class LanguageGan extends LanguageZh {
-
function __construct() {
global $wgHooks;
parent::__construct();
);
$this->mConverter = new GanConverter( $this, 'gan',
- $variants, $variantfallbacks,
- array(),
- $ml );
+ $variants, $variantfallbacks,
+ array(),
+ $ml );
$wgHooks['PageContentSaveComplete'][] = $this->mConverter;
}
* @ingroup Language
*/
class LanguageHsb extends Language {
-
/**
* Convert from the nominative form of a noun to some other case
* Invoked with {{grammar:case|word}}
break;
}
- return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values
+ # this will return the original value for 'nominatiw' (nominativ) and
+ # all undefined case values.
+ return $word;
}
-
}
* @ingroup Language
*/
class IuConverter extends LanguageConverter {
-
protected $mDoContentConvert;
+
public $mToLatin = array(
'ᐦ' => 'h', 'ᐃ' => 'i', 'ᐄ' => 'ii', 'ᐅ' => 'u', 'ᐆ' => 'uu', 'ᐊ' => 'a', 'ᐋ' => 'aa',
'ᑉ' => 'p', 'ᐱ' => 'pi', 'ᐲ' => 'pii', 'ᐳ' => 'pu', 'ᐴ' => 'puu', 'ᐸ' => 'pa', 'ᐹ' => 'paa',
'ᑦ' => 't', 'ᑎ' => 'ti', 'ᑏ' => 'tii', 'ᑐ' => 'tu', 'ᑑ' => 'tuu', 'ᑕ' => 'ta', 'ᑖ' => 'taa',
'ᒃ' => 'k', 'ᑭ' => 'ki', 'ᑮ' => 'kii', 'ᑯ' => 'ku', 'ᑰ' => 'kuu', 'ᑲ' => 'ka', 'ᑳ' => 'kaa',
- 'ᖅᒃ' => 'qq', 'ᖅᑭ' => 'qqi', 'ᖅᑮ' => 'qqii', 'ᖅᑯ' => 'qqu', 'ᖅᑰ' => 'ᖅqquu', 'ᖅᑲ' => 'qqa', 'ᖅᑳ' => 'qqaa',
- 'ᒡ' => 'g', 'ᒋ' => 'gi', 'ᒌ' => 'gii', 'ᒍ' => 'gu', 'ᒎ' => 'guu', 'ᒐ' => 'ga', 'ᒑ' => 'gaa',
- 'ᒻ' => 'm', 'ᒥ' => 'mi', 'ᒦ' => 'mii', 'ᒧ' => 'mu', 'ᒨ' => 'muu', 'ᒪ' => 'ma', 'ᒫ' => 'maa',
- 'ᓐ' => 'n', 'ᓂ' => 'ni', 'ᓃ' => 'nii', 'ᓄ' => 'nu', 'ᓅ' => 'nuu', 'ᓇ' => 'na', 'ᓈ' => 'naa',
- 'ᔅ' => 's', 'ᓯ' => 'si', 'ᓰ' => 'sii', 'ᓱ' => 'su', 'ᓲ' => 'suu', 'ᓴ' => 'sa', 'ᓵ' => 'saa',
- 'ᓪ' => 'l', 'ᓕ' => 'li', 'ᓖ' => 'lii', 'ᓗ' => 'lu', 'ᓘ' => 'luu', 'ᓚ' => 'la', 'ᓛ' => 'laa',
- 'ᔾ' => 'j', 'ᔨ' => 'ji', 'ᔩ' => 'jii', 'ᔪ' => 'ju', 'ᔫ' => 'juu', 'ᔭ' => 'ja', 'ᔮ' => 'jaa',
- 'ᕝ' => 'v', 'ᕕ' => 'vi', 'ᕖ' => 'vii', 'ᕗ' => 'vu', 'ᕘ' => 'vuu', 'ᕙ' => 'va', 'ᕚ' => 'vaa',
- 'ᕐ' => 'r', 'ᕆ' => 'ri', 'ᕇ' => 'rii', 'ᕈ' => 'ru', 'ᕉ' => 'ruu', 'ᕋ' => 'ra', 'ᕌ' => 'raa',
- 'ᖅ' => 'q', 'ᕿ' => 'qi', 'ᖀ' => 'qii', 'ᖁ' => 'qu', 'ᖂ' => 'quu', 'ᖃ' => 'qa', 'ᖄ' => 'qaa',
- 'ᖕ' => 'ng', 'ᖏ' => 'ngi', 'ᖐ' => 'ngii', 'ᖑ' => 'ngu', 'ᖒ' => 'nguu', 'ᖓ' => 'nga', 'ᖔ' => 'ngaa',
- 'ᖖ' => 'nng', 'ᙱ' => 'nngi', 'ᙲ' => 'nngii', 'ᙳ' => 'nngu', 'ᙴ' => 'nnguu', 'ᙵ' => 'nnga', 'ᙶ' => 'nngaa',
- 'ᖦ' => 'ɫ', 'ᖠ' => 'ɫi', 'ᖡ' => 'ɫii', 'ᖢ' => 'ɫu', 'ᖣ' => 'ɫuu', 'ᖤ' => 'ɫa', 'ᖥ' => 'ɫaa',
+ 'ᖅᒃ' => 'qq', 'ᖅᑭ' => 'qqi', 'ᖅᑮ' => 'qqii', 'ᖅᑯ' => 'qqu', 'ᖅᑰ' => 'ᖅqquu', 'ᖅᑲ' => 'qqa',
+ 'ᖅᑳ' => 'qqaa', 'ᒡ' => 'g', 'ᒋ' => 'gi', 'ᒌ' => 'gii', 'ᒍ' => 'gu', 'ᒎ' => 'guu',
+ 'ᒐ' => 'ga', 'ᒑ' => 'gaa', 'ᒻ' => 'm', 'ᒥ' => 'mi', 'ᒦ' => 'mii', 'ᒧ' => 'mu', 'ᒨ' => 'muu',
+ 'ᒪ' => 'ma', 'ᒫ' => 'maa', 'ᓐ' => 'n', 'ᓂ' => 'ni', 'ᓃ' => 'nii', 'ᓄ' => 'nu', 'ᓅ' => 'nuu',
+ 'ᓇ' => 'na', 'ᓈ' => 'naa', 'ᔅ' => 's', 'ᓯ' => 'si', 'ᓰ' => 'sii', 'ᓱ' => 'su', 'ᓲ' => 'suu',
+ 'ᓴ' => 'sa', 'ᓵ' => 'saa', 'ᓪ' => 'l', 'ᓕ' => 'li', 'ᓖ' => 'lii', 'ᓗ' => 'lu', 'ᓘ' => 'luu',
+ 'ᓚ' => 'la', 'ᓛ' => 'laa', 'ᔾ' => 'j', 'ᔨ' => 'ji', 'ᔩ' => 'jii', 'ᔪ' => 'ju', 'ᔫ' => 'juu',
+ 'ᔭ' => 'ja', 'ᔮ' => 'jaa', 'ᕝ' => 'v', 'ᕕ' => 'vi', 'ᕖ' => 'vii', 'ᕗ' => 'vu', 'ᕘ' => 'vuu',
+ 'ᕙ' => 'va', 'ᕚ' => 'vaa', 'ᕐ' => 'r', 'ᕆ' => 'ri', 'ᕇ' => 'rii', 'ᕈ' => 'ru', 'ᕉ' => 'ruu',
+ 'ᕋ' => 'ra', 'ᕌ' => 'raa', 'ᖅ' => 'q', 'ᕿ' => 'qi', 'ᖀ' => 'qii', 'ᖁ' => 'qu', 'ᖂ' => 'quu',
+ 'ᖃ' => 'qa', 'ᖄ' => 'qaa', 'ᖕ' => 'ng', 'ᖏ' => 'ngi', 'ᖐ' => 'ngii', 'ᖑ' => 'ngu',
+ 'ᖒ' => 'nguu', 'ᖓ' => 'nga', 'ᖔ' => 'ngaa', 'ᖖ' => 'nng', 'ᙱ' => 'nngi', 'ᙲ' => 'nngii',
+ 'ᙳ' => 'nngu', 'ᙴ' => 'nnguu', 'ᙵ' => 'nnga', 'ᙶ' => 'nngaa', 'ᖦ' => 'ɫ', 'ᖠ' => 'ɫi',
+ 'ᖡ' => 'ɫii', 'ᖢ' => 'ɫu', 'ᖣ' => 'ɫuu', 'ᖤ' => 'ɫa', 'ᖥ' => 'ɫaa',
);
public $mUpperToLowerCaseLatin = array(
'j' => 'ᔾ', 'ji' => 'ᔨ', 'jii' => 'ᔩ', 'ju' => 'ᔪ', 'juu' => 'ᔫ', 'ja' => 'ᔭ', 'jaa' => 'ᔮ',
'v' => 'ᕝ', 'vi' => 'ᕕ', 'vii' => 'ᕖ', 'vu' => 'ᕗ', 'vuu' => 'ᕘ', 'va' => 'ᕙ', 'vaa' => 'ᕚ',
'r' => 'ᕐ', 'ri' => 'ᕆ', 'rii' => 'ᕇ', 'ru' => 'ᕈ', 'ruu' => 'ᕉ', 'ra' => 'ᕋ', 'raa' => 'ᕌ',
- 'qq' => 'ᖅᒃ', 'qqi' => 'ᖅᑭ', 'qqii' => 'ᖅᑮ', 'qqu' => 'ᖅᑯ', 'qquu' => 'ᖅᑰ', 'qqa' => 'ᖅᑲ', 'qqaa' => 'ᖅᑳ',
- 'q' => 'ᖅ', 'qi' => 'ᕿ', 'qii' => 'ᖀ', 'qu' => 'ᖁ', 'quu' => 'ᖂ', 'qa' => 'ᖃ', 'qaa' => 'ᖄ',
- 'ng' => 'ᖕ', 'ngi' => 'ᖏ', 'ngii' => 'ᖐ', 'ngu' => 'ᖑ', 'nguu' => 'ᖒ', 'nga' => 'ᖓ', 'ngaa' => 'ᖔ',
- 'nng' => 'ᖖ', 'nngi' => 'ᙱ', 'nngii' => 'ᙲ', 'nngu' => 'ᙳ', 'nnguu' => 'ᙴ', 'nnga' => 'ᙵ', 'nngaa' => 'ᙶ',
- 'ɫ' => 'ᖦ', 'ɫi' => 'ᖠ', 'ɫii' => 'ᖡ', 'ɫu' => 'ᖢ', 'ɫuu' => 'ᖣ', 'ɫa' => 'ᖤ', 'ɫaa' => 'ᖥ',
+ 'qq' => 'ᖅᒃ', 'qqi' => 'ᖅᑭ', 'qqii' => 'ᖅᑮ', 'qqu' => 'ᖅᑯ', 'qquu' => 'ᖅᑰ', 'qqa' => 'ᖅᑲ',
+ 'qqaa' => 'ᖅᑳ', 'q' => 'ᖅ', 'qi' => 'ᕿ', 'qii' => 'ᖀ', 'qu' => 'ᖁ', 'quu' => 'ᖂ',
+ 'qa' => 'ᖃ', 'qaa' => 'ᖄ', 'ng' => 'ᖕ', 'ngi' => 'ᖏ', 'ngii' => 'ᖐ', 'ngu' => 'ᖑ',
+ 'nguu' => 'ᖒ', 'nga' => 'ᖓ', 'ngaa' => 'ᖔ', 'nng' => 'ᖖ', 'nngi' => 'ᙱ', 'nngii' => 'ᙲ',
+ 'nngu' => 'ᙳ', 'nnguu' => 'ᙴ', 'nnga' => 'ᙵ', 'nngaa' => 'ᙶ', 'ɫ' => 'ᖦ', 'ɫi' => 'ᖠ',
+ 'ɫii' => 'ᖡ', 'ɫu' => 'ᖢ', 'ɫuu' => 'ᖣ', 'ɫa' => 'ᖤ', 'ɫaa' => 'ᖥ',
);
function loadDefaultTables() {
* @return string
*/
function parserConvert( $text, &$parser ) {
- $this->mDoContentConvert = !( is_object( $parser->getTitle() ) && $parser->getTitle()->isTalkPage() );
+ $this->mDoContentConvert = !( is_object( $parser->getTitle() )
+ && $parser->getTitle()->isTalkPage() );
return parent::parserConvert( $text, $parser );
}
* @ingroup Language
*/
class KkConverter extends LanguageConverter {
-
protected $mCyrl2Latn, $mLatn2Cyrl, $mCyLa2Arab;
/**
// disable conversion variables like $1, $2...
$varsfix = '\$[0-9]';
- $matches = preg_split( '/' . $varsfix . '[^' . $letters . ']+/u', $text, -1, PREG_SPLIT_OFFSET_CAPTURE );
+ $matches = preg_split(
+ '/' . $varsfix . '[^' . $letters . ']+/u',
+ $text,
+ -1,
+ PREG_SPLIT_OFFSET_CAPTURE
+ );
+
$mstart = 0;
$ret = '';
+
foreach ( $matches as $m ) {
$ret .= substr( $text, $mstart, $m[1] -$mstart );
$ret .= $this->regsConverter( $m[0], $toVariant );
$mstart = $m[1] + strlen( $m[0] );
}
+
return $ret;
}
switch ( $toVariant ) {
case 'kk-arab':
case 'kk-cn':
- $letters = KK_C_LC . KK_C_UC/*.KK_L_LC.KK_L_UC*/;
- $front = 'әөүіӘӨҮІ'/*.'äöüiÄÖÜİ'*/;
- $excludes = 'еэгғкқЕЭГҒКҚ'/*.'eégğkqEÉGĞKQ'*/;
+ $letters = KK_C_LC . KK_C_UC; /*.KK_L_LC.KK_L_UC*/
+ $front = 'әөүіӘӨҮІ'; /*.'äöüiÄÖÜİ'*/
+ $excludes = 'еэгғкқЕЭГҒКҚ'; /*.'eégğkqEÉGĞKQ'*/
// split text to words
$matches = preg_split( '/[\b\s\-\.:]+/', $text, -1, PREG_SPLIT_OFFSET_CAPTURE );
$mstart = 0;
// is matched the word to front vowels?
// exclude a words matched to е, э, г, к, к, қ,
// them should be without hamza
- if ( preg_match( '/[' . $front . ']/u', $m[0] ) && !preg_match( '/[' . $excludes . ']/u', $m[0] ) ) {
+ if ( preg_match( '/[' . $front . ']/u', $m[0] )
+ && !preg_match( '/[' . $excludes . ']/u', $m[0] )
+ ) {
$ret .= preg_replace( '/[' . $letters . ']+/u', H_HAMZA . '$0', $m[0] );
} else {
$ret .= $m[0];
function convertCategoryKey( $key ) {
return $this->autoConvert( $key, 'kk' );
}
-
}
/**
* @ingroup Language
*/
class LanguageKk extends LanguageKk_cyrl {
-
function __construct() {
global $wgHooks;
parent::__construct();
*
* @ingroup Language
*/
+// @codingStandardsIgnoreStart Ignore class name is not in camel caps format error
class LanguageKk_cyrl extends Language {
-
+ // @codingStandardsIgnoreEnd
# Convert from the nominative form of a noun to some other case
# Invoked with {{GRAMMAR:case|word}}
/**
} elseif ( in_array( $wordLastVowel, $backVowels ) ) {
$word = $word . "тан";
}
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Sonants )
+ || in_array( $wordEnding, $Sibilants )
+ ) {
if ( in_array( $wordLastVowel, $frontVowels ) ) {
$word = $word . "ден";
} elseif ( in_array( $wordLastVowel, $backVowels ) ) {
case "comitative": # kömektes
if ( in_array( $wordEnding, $Consonants ) ) {
$word = $word . "пен";
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Nasals )
+ || in_array( $wordEnding, $Sonants )
+ ) {
$word = $word . "мен";
} elseif ( in_array( $wordEnding, $Sibilants ) ) {
$word = $word . "бен";
case "possessive comitative": # täweldık + kömektes
if ( in_array( $wordEnding, $Consonants ) ) {
$word = $word . "пенен";
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Nasals )
+ || in_array( $wordEnding, $Sonants )
+ ) {
$word = $word . "менен";
} elseif ( in_array( $wordEnding, $Sibilants ) ) {
$word = $word . "бенен";
} elseif ( in_array( $wordLastVowel, $backVowels ) ) {
$word = $word . "tan";
}
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Sonants )
+ || in_array( $wordEnding, $Sibilants )
+ ) {
if ( in_array( $wordLastVowel, $frontVowels ) ) {
$word = $word . "den";
} elseif ( in_array( $wordLastVowel, $backVowels ) ) {
case "comitative": # kömektes
if ( in_array( $wordEnding, $Consonants ) ) {
$word = $word . "pen";
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Nasals )
+ || in_array( $wordEnding, $Sonants )
+ ) {
$word = $word . "men";
} elseif ( in_array( $wordEnding, $Sibilants ) ) {
$word = $word . "ben";
case "possessive comitative": # täweldık + kömektes
if ( in_array( $wordEnding, $Consonants ) ) {
$word = $word . "penen";
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Nasals )
+ || in_array( $wordEnding, $Sonants )
+ ) {
$word = $word . "menen";
} elseif ( in_array( $wordEnding, $Sibilants ) ) {
$word = $word . "benen";
} elseif ( in_array( $wordLastVowel, $backVowels ) ) {
$word = $word . "تان";
}
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Sonants ) || in_array( $wordEnding, $Sibilants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Sonants )
+ || in_array( $wordEnding, $Sibilants )
+ ) {
if ( in_array( $wordLastVowel, $frontVowels ) ) {
$word = $word . "دەن";
} elseif ( in_array( $wordLastVowel, $backVowels ) ) {
case "comitative": # kömektes
if ( in_array( $wordEnding, $Consonants ) ) {
$word = $word . "پەن";
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Nasals )
+ || in_array( $wordEnding, $Sonants )
+ ) {
$word = $word . "مەن";
} elseif ( in_array( $wordEnding, $Sibilants ) ) {
$word = $word . "بەن";
case "possessive comitative": # täweldık + kömektes
if ( in_array( $wordEnding, $Consonants ) ) {
$word = $word . "پەنەن";
- } elseif ( in_array( $wordEnding, $allVowels ) || in_array( $wordEnding, $Nasals ) || in_array( $wordEnding, $Sonants ) ) {
+ } elseif ( in_array( $wordEnding, $allVowels )
+ || in_array( $wordEnding, $Nasals )
+ || in_array( $wordEnding, $Sonants )
+ ) {
$word = $word . "مەنەن";
} elseif ( in_array( $wordEnding, $Sibilants ) ) {
$word = $word . "بەنەن";
* @ingroup Language
*/
class LanguageKsh extends Language {
- static $familygender = array(
+ private static $familygender = array(
// Do not add male wiki families, since that's the default.
// No need add neuter wikis having names ending in -wiki.
'wikipedia' => 'f',
' O' => 'ئۆ ',
' U' => 'ئو ',
' Û' => 'ئوو ',
- # eyn erstmal deaktivieren, einfache Anführungsstriche sind einfach zu häufig, um sie als eyn zu interpretieren
+ # eyn erstmal deaktivieren, einfache Anführungsstriche sind einfach zu
+ # häufig, um sie als eyn zu interpretieren.
# '\'' => 'ع',
/* # deactivated for now, breaks links i.e. in header of Special:Recentchanges :-(
*
* @ingroup Language
*/
+// @codingStandardsIgnoreStart Ignore class name is not in camel caps format error
class LanguageKu_ku extends Language {
-
+ // @codingStandardsIgnoreEnd
/**
* Avoid grouping whole numbers between 0 to 9999
*
* @ingroup Language
*/
class ShiConverter extends LanguageConverter {
-
protected $mDoContentConvert;
public $mToLatin = array(
* @return string
*/
function parserConvert( $text, &$parser ) {
- $this->mDoContentConvert = !( is_object( $parser->getTitle() ) && $parser->getTitle()->isTalkPage() );
+ $this->mDoContentConvert = !( is_object( $parser->getTitle() )
+ && $parser->getTitle()->isTalkPage() );
return parent::parserConvert( $text, $parser );
}
break;
}
- return $word; # this will return the original value for 'imenovalnik' (nominativ) and all undefined case values
+ # this will return the original value for 'imenovalnik' (nominativ) and
+ # all undefined case values.
+ return $word;
}
-
}
}
// Set up some constants...
- $allVowels = array( "е", "и", "э", "ө", "ү", "а", "ё", "о", "у", "ы", "ю", "я", "a", "e", "i", "o", "ö", "u", "ü", "y" );
+ $allVowels = array( "е", "и", "э", "ө", "ү", "а", "ё", "о", "у", "ы",
+ "ю", "я", "a", "e", "i", "o", "ö", "u", "ü", "y" );
$frontVowels = array( "е", "и", "э", "ө", "ү", "e", "i", "ö", "ü" );
$backVowels = array( "а", "ё", "о", "у", "ы", "ю", "я", "a", "o", "u", "y" );
$unroundFrontVowels = array( "е", "и", "э", "e", "i" );
$roundBackVowels = array( "ё", "о", "у", "ю", "o", "u" );
//$voicedPhonemes = array( "д", "б", "з", "ж", "г", "d", "b", "z", "g" );
$unvoicedPhonemes = array( "т", "п", "с", "ш", "к", "ч", "х", "t", "p", "s", "k", "x" );
- $directiveUnvoicedStems = array( "т", "п", "с", "ш", "к", "ч", "х", "л", "м", "н", "ң", "t", "p", "s", "k", "x", "l", "m", "n", "ŋ" );
+ $directiveUnvoicedStems = array( "т", "п", "с", "ш", "к", "ч", "х", "л",
+ "м", "н", "ң", "t", "p", "s", "k", "x", "l", "m", "n", "ŋ" );
$directiveVoicedStems = array( "д", "б", "з", "ж", "г", "р", "й", "d", "b", "z", "g", "r", "j" );
//$allSonants = array("л", "м", "н", "ң", "р", "й");
//Put the word in a form we can play with since we're using UTF-8
preg_match_all( '/./us', $word, $ar );
- $wordEnding = $ar[0][count( $ar[0] ) - 1]; // Here's the last letter in the word
- $wordReversed = array_reverse( $ar[0] ); // Here's an array with the order of the letters in the word reversed so we can find a match quicker *shrug*
+ // Here's the last letter in the word
+ $wordEnding = $ar[0][count( $ar[0] ) - 1];
+ // Here's an array with the order of the letters in the word reversed so
+ // we can find a match quicker. *shrug*
+ $wordReversed = array_reverse( $ar[0] );
// Find the last vowel in the word
$wordLastVowel = null;
if ( !preg_match( "/[a-zA-Z_]/us", $word ) ) {
switch ( $case ) {
case 'genitive': # родовий відмінок
- if ( ( join( '', array_slice( $ar[0], -4 ) ) == 'вікі' ) || ( join( '', array_slice( $ar[0], -4 ) ) == 'Вікі' ) ) {
+ if ( ( join( '', array_slice( $ar[0], -4 ) ) == 'вікі' )
+ || ( join( '', array_slice( $ar[0], -4 ) ) == 'Вікі' )
+ ) {
} elseif ( join( '', array_slice( $ar[0], -1 ) ) == 'ь' ) {
$word = join( '', array_slice( $ar[0], 0, -1 ) ) . 'я';
} elseif ( join( '', array_slice( $ar[0], -2 ) ) == 'ія' ) {
# stub
break;
case 'accusative': # знахідний відмінок
- if ( ( join( '', array_slice( $ar[0], -4 ) ) == 'вікі' ) || ( join( '', array_slice( $ar[0], -4 ) ) == 'Вікі' ) ) {
+ if ( ( join( '', array_slice( $ar[0], -4 ) ) == 'вікі' )
+ || ( join( '', array_slice( $ar[0], -4 ) ) == 'Вікі' )
+ ) {
} elseif ( join( '', array_slice( $ar[0], -2 ) ) == 'ія' ) {
$word = join( '', array_slice( $ar[0], 0, -2 ) ) . 'ію';
}
* @ingroup Language
*/
class ZhConverter extends LanguageConverter {
-
/**
* @param Language $langobj
* @param string $maincode
* @ingroup Language
*/
class LanguageZh extends LanguageZh_hans {
-
function __construct() {
global $wgHooks;
+
parent::__construct();
- $variants = array( 'zh', 'zh-hans', 'zh-hant', 'zh-cn', 'zh-hk', 'zh-mo', 'zh-my', 'zh-sg', 'zh-tw' );
+ $variants = array(
+ 'zh',
+ 'zh-hans',
+ 'zh-hant',
+ 'zh-cn',
+ 'zh-hk',
+ 'zh-mo',
+ 'zh-my',
+ 'zh-sg',
+ 'zh-tw'
+ );
$variantfallbacks = array(
'zh' => array( 'zh-hans', 'zh-hant', 'zh-cn', 'zh-tw', 'zh-hk', 'zh-sg', 'zh-mo', 'zh-my' ),
return $ret;
}
}
-
*
* @ingroup Language
*/
+// @codingStandardsIgnoreStart Ignore class name is not in camel caps format error
class LanguageZh_hans extends Language {
-
+ // @codingStandardsIgnoreEnd
/**
* @return bool
*/
"readonly_lag": "ተከታይ ሰርቨሮች ለቀዳሚው እስከሚደርሱ ድረስ መረጃ-ቤቱ በቀጥታ ተቆልፏል።",
"internalerror": "የውስጥ ስህተት",
"internalerror_info": "የውስጥ ስህተት፦ $1",
- "fileappenderror": "«$1» ወደ «$2» መጨምር አልተቻለም።",
"filecopyerror": "ፋይሉን «$1» ወደ «$2» መቅዳት አልተቻለም።",
"filerenameerror": "የፋይሉን ስም ከ«$1» ወደ «$2» መቀየር አተቻለም።",
"filedeleteerror": "ፋይሉን «$1» ለማጥፋት አልተቻለም።",
"directorycreateerror": "ዶሴ «$1» መፍጠር አልተቻለም።",
"filenotfound": "«$1» የሚባል ፋይል አልተገኘም።",
- "fileexistserror": "ወደ ፋይሉ «$1» መጻፍ አይቻልም፦ ፋይሉ ይኖራል",
"unexpected": "ያልተጠበቀ ዕሴት፦ «$1»=«$2»።",
"formerror": "ስኅተት፦ ማመልከቻ ለማቅረብ አልተቻለም",
"badarticleerror": "ይህ ተግባር በዚሁ ገጽ ላይ ሊደረግ አይቻልም።",
"gotaccount": "(አባልነት አሁን ካለዎ፥ '''$1''' ይግቡ)",
"gotaccountlink": "በዚህ",
"userlogin-resetlink": "የመግቢያ ዝርዝርዎን ረተዋልን?",
- "createacct-join": "ከዚህ በታች ይመዝገቡ።",
"createacct-emailrequired": "ኢ-ሜይል አድራሻ",
"createacct-email-ph": "ኢ-ሜይል አድራሻዎን ያስገቡ",
"createaccountmail": "በኢ-ሜል",
"savearticle": "ገጹን አስቀምጥ",
"preview": "ሙከራ / preview",
"showpreview": "ቅድመ እይታ",
- "showlivepreview": "የቀጥታ ቅድመ-ዕይታ",
"showdiff": "ማነጻጸሪያ",
"anoneditwarning": "'''ማስጠንቀቂያ:''' እርስዎ አሁን በአባል ስምዎ ያልገቡ ነዎት።\nይህን ገፅ ማዘጋጀት፣ ማረምና ማስተካከል ይችላሉ፤ ነገር ግን ያደረጉት ለውጥ በአባልነት ስምዎ ሳይሆን በድህረ ገፅ የመለያ ቁጥር አድራሻዎ (IP address) በገፁ የለውጥ ታሪክ ላይ ይመዘገባሉ።",
"anonpreviewwarning": "እርስዎ ገና ያልገቡ ነዎት። ይህን ገፅ በማቅረብ የመለያ ቁጥር አድራሻዎ (IP address) በገፁ የለውጥ ታሪክ ላይ ይመዘገባል።",
"search-nonefound": "ለጥያቄው ምንም የሚስማማ ውጤት አልተገኘም።",
"powersearch-legend": "ተጨማሪ ፍለጋ",
"powersearch-ns": "በነዚሁ ክፍለ-ዊኪዎች ይፈልግ:",
- "powersearch-redir": "መምሪያ መንገዶቹም ይዘርዝሩ",
"powersearch-toggleall": " ሁሉም",
"powersearch-togglenone": " ምንም",
"search-external": "አፍአዊ ፍለጋ",
"autosumm-replace": "ጽሑፉ በ«$1» ተተካ።",
"autoredircomment": "ወደ [[$1]] መምሪያ መንገድ ፈጠረ",
"autosumm-new": "አዲስ ገጽ ፈጠረ፦ «$1»",
- "livepreview-loading": "በመጫን ላይ ነው...",
- "livepreview-ready": "በመጫን ላይ ነው... ዝግጁ!",
- "livepreview-failed": "የቀጥታ ቅድመ-ዕይታ አልተከናወነም! የተለመደ ቅድመ-ዕይታ ይሞክሩ።",
- "livepreview-error": "መገናኘት አልተከናወነም፦$1 «$2»። የተለመደ ቅድመ-ዕይታ ይሞክሩ።",
"lag-warn-normal": "ከ$1 ሴኮንድ በፊት ጀምሮ የቀረቡ ለውጦች ምናልባት በዚህ ዝርዝር አይታዩም።",
"lag-warn-high": "የመረጃ-ቤት ሰርቨር በጣም ስለሚዘገይ፣ ከ$1 ሴኮንድ በፊት ጀምሮ የቀረቡ ለውጦች ምናልባት በዚህ ዝርዝር አይታዩም።",
"watchlistedit-numitems": "አሁን በሙሉ {{PLURAL:$1|$1 ገጽ|$1 ገጾች}} እየተከታተሉ ነው።",
"tag-filter-submit": "ማጣሪያ",
"tags-edit": "አርም",
"tags-hitcount": "$1 {{PLURAL:$1|ለውጥ|ለውጦች}}",
- "dberr-header": "ይህ ዊኪ ችግር አለው",
"dberr-usegoogle": "ለአሁኑ ጊዜ በጉግል መፈልግ ይችላሉ።",
"htmlform-submit": "ለማቅረብ",
"htmlform-selectorother-other": "ሌላ",
"readonly_lag": "تم قفل قاعدة البيانات تلقائيا حتى تستطيع الخواديم التابعة ملاحقة الخادوم الرئيسي",
"internalerror": "عطل داخلي",
"internalerror_info": "عطل داخلي: $1",
- "fileappenderrorread": "تعذرت قراءة \"$1\" أثناء الإضافة.",
- "fileappenderror": "تعذرت إضافة \"$1\" إلى \"$2\".",
"filecopyerror": "تعذّر نسخ الملف \"$1\" إلى \"$2\".",
"filerenameerror": "تعذّر تغيير اسم الملف \"$1\" إلى \"$2\".",
"filedeleteerror": "تعذّر حذف الملف \"$1\".",
"directorycreateerror": "تعذّر إنشاء الدليل \"$1\".",
"filenotfound": "تعذّر إيجاد الملف \"$1\".",
- "fileexistserror": "تعذّرت كتابة الملف \"$1\": الملف موجود",
"unexpected": "قيمة غير متوقعة: \"$1\"=\"$2\".",
"formerror": "عطل: تعذّر إيداع الاستمارة",
"badarticleerror": "لا يمكن إجراء هذا الفعل على هذه الصفحة.",
"userlogin-helplink2": "المساعدة في الدخول",
"userlogin-loggedin": "أنت {{GENDER:$1|مسجل|مسجلة}} الدخول مسبقًا باسم $1. {{GENDER:$1|استخدم|استخدمي}} النموذج بالأسفل لتسجيل الدخول بحساب آخر.",
"userlogin-createanother": "إنشاء حساب آخر",
- "createacct-join": "قم بإدخال المعلومات الخاصة بك أدناه.",
- "createacct-another-join": "أدخل معلومات الحساب الجديد أدناه.",
"createacct-emailrequired": "عنوان البريد الإلكتروني",
"createacct-emailoptional": "البريد الإلكتروني (اختياري)",
"createacct-email-ph": "أدخل عنوان بريدك الإلكتروني",
"savearticle": "احفظ الصفحة",
"preview": "عرض مسبق",
"showpreview": "أظهر معاينة",
- "showlivepreview": "عرض مباشر",
"showdiff": "عرض التغييرات",
"anoneditwarning": "'''تحذير:''' لم تقم بالدخول.\nسيسجل عنوان الآيبي خاصتك في تاريخ هذه الصفحة.",
"anonpreviewwarning": "''أنت غير مسجل الدخول. الحفظ سيسجل عنوان الأيبي الخاص بك في تاريخ هذه الصفحة.''",
"search-nonefound": "لا توجد نتائج تطابق الاستعلام.",
"powersearch-legend": "بحث متقدم",
"powersearch-ns": "بحث في النطاقات:",
- "powersearch-redir": "عرض التحويلات",
"powersearch-togglelabel": "اختر:",
"powersearch-toggleall": "الكل",
"powersearch-togglenone": "لا شيء",
"prefs-advancedsearchoptions": "خيارات متقدمة",
"prefs-advancedwatchlist": "خيارات متقدمة",
"prefs-displayrc": "خيارات العرض",
- "prefs-displaysearchoptions": "خصائص العرض",
"prefs-displaywatchlist": "خصائص العرض",
"prefs-tokenwatchlist": "مفتاح",
"prefs-diffs": "فروقات",
"group-bot.js": "/* أي جافاسكريبت هنا سيتم تحميلها للبوتات فقط */",
"group-sysop.js": "/* أي جافاسكريبت هنا سيتم تحميلها للإداريين فقط */",
"group-bureaucrat.js": "/* أي جافاسكريبت هنا سيتم تحميلها للبيروقراطيين فقط */",
- "notacceptable": "لا يمكن لخادوم الويكي تزويدك ببيانات بصيغة يستطيع عميلك قراءتها.",
"anonymous": "{{PLURAL:$1|مستخدم مجهول|مستخدمون مجهولون}} ل{{SITENAME}}",
"siteuser": "مستخدم {{SITENAME}} $1",
"anonuser": "مستخدم {{SITENAME}} المجهول $1",
"bitrate-exabits": "$1إكسابيت لكل ثانية",
"bitrate-zetabits": "$1زيتابيت لكل ثانية",
"bitrate-yottabits": "$1يوتابيت لكل ثانية",
- "livepreview-loading": "جاري التحميل...",
- "livepreview-ready": "يُحمّل… جاهز!",
- "livepreview-failed": "فشل العرض المباشر!\nحاول تجربة العرض العادي.",
- "livepreview-error": "لم ينجح الاتصال: $1 \"$2\"\nحاول تجربة العرض العادي.",
"lag-warn-normal": "التغييرات الأحدث من {{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتين|$1 ثوانٍ|$1 ثانية}} قد لا تظهر في هذه القائمة.",
"lag-warn-high": "نتيجة لوجود تأخر كبير في تحديث قاعدة بيانات الخادوم، التغييرات الأحدث من {{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتين|$1 ثوانٍ|$1 ثانية}} ربما لا تكون ظاهرة في هذه القائمة.",
"watchlistedit-numitems": "قائمة مراقبتك تحتوي على {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانًا|$1 عنوان}}، بدون احتساب صفحات النقاش.",
"compare-invalid-title": "العنوان الذي حددته غير متاح.",
"compare-title-not-exists": "العنوان الذي حددته غير موجود.",
"compare-revision-not-exists": "المراجعة التي حددتها غير موجودة.",
- "dberr-header": "هذا الويكي به مشكلة",
"dberr-problems": "عذرا! هذا الموقع يعاني من صعوبات تقنية.",
"dberr-again": "جرب الانتظار بضع دقائق وإعادة التحميل.",
"dberr-info": "(غير قادر على الاتصال بخادوم قاعدة البيانات: $1)",
"readonly_lag": "La base de datos candóse automáticamente mentes los sirvidores de la base de datos esclava se sincronicen cola maestra",
"internalerror": "Fallu internu",
"internalerror_info": "Fallu internu: $1",
- "fileappenderrorread": "Nun se pudo lleer «$1» mentanto l'amestadura.",
- "fileappenderror": "Nun se pudo amestar «$1» a «$2».",
"filecopyerror": "Nun se pudo copiar el ficheru «$1» como «$2».",
"filerenameerror": "Nun se pudo renomar el ficheru «$1» como «$2».",
"filedeleteerror": "Nun se pudo desaniciar el ficheru «$1».",
"directorycreateerror": "Nun se pudo crear el direutoriu «$1».",
"filenotfound": "Nun pudo atopase'l ficheru «$1».",
- "fileexistserror": "Nun se pue escribir nel ficheru «$1»: yá esiste",
"unexpected": "Valor inesperáu: «$1»=«$2».",
"formerror": "Fallu: Nun se pudo unviar el formulariu.",
"badarticleerror": "Esta aición nun pue facese nesta páxina.",
"userlogin-helplink2": "Ayuda del aniciu de sesión",
"userlogin-loggedin": "Yá anició sesión como {{GENDER:$1|$1}}.\nUtilice'l formulariu de más abaxo p'aniciar sesión como otru usuariu.",
"userlogin-createanother": "Crear otra cuenta",
- "createacct-join": "Escriba abaxo la so información.",
- "createacct-another-join": "Escriba abaxo la información de la cuenta nueva.",
"createacct-emailrequired": "Direición de corréu electrónicu",
"createacct-emailoptional": "Direición de corréu electrónicu (opcional)",
"createacct-email-ph": "Escriba la so direición de corréu electrónicu",
"savearticle": "Guardar la páxina",
"preview": "Vista previa",
"showpreview": "Amosar previsualización",
- "showlivepreview": "Vista rápida",
"showdiff": "Amosar cambeos",
"anoneditwarning": "<strong>Avisu:</strong> Nun anició sesión.\nLa direición IP quedará grabada nel historial d'edición d'esta páxina.",
"anonpreviewwarning": "''Nun aniciasti sesión. Al guardar quedará rexistrada la to direición IP nel historial d'edición d'esta páxina.''",
"search-nonefound": "Nun hebo resultaos que casaren cola consulta.",
"powersearch-legend": "Busca avanzada",
"powersearch-ns": "Buscar nos espacios de nome:",
- "powersearch-redir": "Llistar redireiciones",
"powersearch-togglelabel": "Comprobar:",
"powersearch-toggleall": "Toos",
"powersearch-togglenone": "Dengún",
"prefs-advancedsearchoptions": "Opciones avanzaes",
"prefs-advancedwatchlist": "Opciones avanzaes",
"prefs-displayrc": "Opciones de vista",
- "prefs-displaysearchoptions": "Opciones de vista",
"prefs-displaywatchlist": "Opciones de vista",
"prefs-tokenwatchlist": "Pase",
"prefs-diffs": "Diferencies",
"group-bot.js": "/* Cualesquier JavaScript que tea equí se cargará pa los bots namái */",
"group-sysop.js": "/* Cualesquier JavaScript que tea equí se cargará pa los sysops namái */",
"group-bureaucrat.js": "/* Cualesquier JavaScript que tea equí se cargará pa los burócrates namái */",
- "notacceptable": "El sirvidor de la wiki nun pue suplir los datos nun formatu llexible pol to navegador.",
"anonymous": "{{PLURAL:$1|Usuariu anónimu|Usuarios anónimos}} de {{SITENAME}}",
"siteuser": "{{SITENAME}} usuariu $1",
"anonuser": "usuariu anónimu de {{SITENAME}} $1",
"autoredircomment": "Redirixendo a [[$1]]",
"autosumm-new": "Páxina creada con «$1»",
"size-gigabytes": "$1 XB",
- "livepreview-loading": "Cargando...",
- "livepreview-ready": "Cargando… ¡Llisto!",
- "livepreview-failed": "¡La previsualización rápida falló! Intenta la previsualización normal.",
- "livepreview-error": "Nun se pudo coneutar: $1 \"$2\". Intenta la previsualización normal.",
"lag-warn-normal": "Los cambios más nuevos que $1 {{PLURAL:$1|segundu|segundos}} seique nun s'amuesen nesta llista.",
"lag-warn-high": "Pola mor d'un importante retrasu nel sirvidor de la base de datos, los cambios más nuevos que $1 {{PLURAL:$1|segundu|segundos}} seique nun s'amuesen nesta llista.",
"watchlistedit-numitems": "La to llista de vixilancia tien {{PLURAL:$1|1 títulu|$1 títulos}}, escluyendo les páxines d'alderique.",
"compare-invalid-title": "El títulu que conseñasti nun ye válidu.",
"compare-title-not-exists": "El títulu que conseñasti nun esiste.",
"compare-revision-not-exists": "La revisión que conseñasti nun esiste.",
- "dberr-header": "Esta wiki tien un problema",
"dberr-problems": "¡Sentímoslo! Esti sitiu ta esperimentando dificultaes téuniques.",
"dberr-again": "Tenta esperar dellos minutos y recargar.",
"dberr-info": "(Nun se pue contautar cola base de datos del sirvidor: $1)",
"readonly_lag": "База зьвестак была аўтаматычна заблякаваная да выкананьня рэплікацыі галоўнай базы зьвестак з другаснымі",
"internalerror": "Унутраная памылка",
"internalerror_info": "Унутраная памылка: $1",
- "fileappenderrorread": "Немагчыма прачытаць «$1» пад час дапаўненьня.",
- "fileappenderror": "Не атрымалася далучыць «$1» да «$2».",
"filecopyerror": "Немагчыма cкапіяваць файл «$1» у «$2».",
"filerenameerror": "Немагчыма перайменаваць файл «$1» у «$2».",
"filedeleteerror": "Немагчыма выдаліць файл «$1».",
"directorycreateerror": "Немагчыма стварыць дырэкторыю «$1».",
"filenotfound": "Немагчыма знайсьці файл «$1».",
- "fileexistserror": "Немагчыма запісаць у файл «$1»: файл існуе",
"unexpected": "Нечаканае значэньне: «$1»=«$2».",
"formerror": "Памылка: не атрымалася адаслаць зьвесткі формы",
"badarticleerror": "Гэтае дзеяньне немагчыма выканаць на гэтай старонцы.",
"userlogin-helplink2": "Дапамога з уваходам у сыстэму",
"userlogin-loggedin": "Вы ўжо ўвайшлі як {{GENDER:$1|$1}}.\nДля ўваходу пад іншым удзельнікам скарыстайцеся формай унізе.",
"userlogin-createanother": "Стварыць іншы рахунак",
- "createacct-join": "Увядзіце свае зьвесткі ніжэй.",
- "createacct-another-join": "Увядзіце зьвесткі для новага рахунку ніжэй.",
"createacct-emailrequired": "E-mail адрас",
"createacct-emailoptional": "E-mail адрас (неабавязкова)",
"createacct-email-ph": "Увядзіце ваш e-mail адрас",
"savearticle": "Захаваць старонку",
"preview": "Папярэдні прагляд",
"showpreview": "Праглядзець",
- "showlivepreview": "Хуткі папярэдні прагляд",
"showdiff": "Паказаць зьмены",
"anoneditwarning": "'''Папярэджаньне:''' Вы не ўвайшлі ў сыстэму. Ваш IP-адрас будзе запісаны ў гісторыі гэтай старонкі.",
"anonpreviewwarning": "''Вы не ўвайшлі ў сыстэму. Падчас захаваньня Ваш IP-адрас будзе дададзены ў гісторыю рэдагаваньняў старонкі.''",
"search-nonefound": "Супадзеньняў па запыце ня знойдзена.",
"powersearch-legend": "Удасканалены пошук",
"powersearch-ns": "Шукаць у прасторах назваў:",
- "powersearch-redir": "Паказваць перанакіраваньні",
"powersearch-togglelabel": "Пазначыць:",
"powersearch-toggleall": "Усе",
"powersearch-togglenone": "Нічога",
"prefs-advancedsearchoptions": "Дадатковыя налады",
"prefs-advancedwatchlist": "Дадатковыя налады",
"prefs-displayrc": "Налады паказу",
- "prefs-displaysearchoptions": "Налады паказу",
"prefs-displaywatchlist": "Налады паказу",
"prefs-tokenwatchlist": "Токен",
"prefs-diffs": "Розьніцы вэрсіяў",
"listgrouprights-addgroup-self-all": "Можа дадаць уласны рахунак да ўсіх груп",
"listgrouprights-removegroup-self-all": "Можа выдаліць уласны рахунак з ўсіх груп",
"listgrouprights-namespaceprotection-header": "Абмежаваньні прасторы назваў",
+ "listgrouprights-namespaceprotection-namespace": "Прастора назваў",
"trackingcategories": "Катэгорыі, якія патрабуюць увагі",
"trackingcategories-summary": "На гэтай старонцы пералічаныя катэгорыя, які патрабуюць увагі і якія аўтаматычна запаўняюцца праграмным забесьяпчэньнем MediaWiki. Іх назвы могуць быць зьмененыя рэдагаваньнем сыстэмных паведамленьняў у прасторы назваў {{ns:8}}.",
"mailnologin": "Няма адрасу атрымальніка",
"tooltip-preferences-save": "Захаваць налады",
"tooltip-summary": "Увядзіце кароткае апісаньне",
"interlanguage-link-title": "$1 — $2",
- "notacceptable": "Вікі-сэрвэр ня можа адлюстраваць зьвесткі ў выглядзе, які здольны прачытаць Ваш браўзэр.",
"anonymous": "{{PLURAL:$1|1=Ананімны ўдзельнік ці ўдзельніца|Ананімныя ўдзельнікі і ўдзельніцы}} {{GRAMMAR:родны|{{SITENAME}}}}",
"siteuser": "Удзельнік/удзельніца {{GRAMMAR:родны|{{SITENAME}}}} $1",
"anonuser": "Ананімны ўдзельнік {{GRAMMAR:родны|{{SITENAME}}}} $1",
"size-exabytes": "$1 ЭБ",
"size-zetabytes": "$1 ЗБ",
"size-yottabytes": "$1 ЁБ",
- "livepreview-loading": "Загрузка…",
- "livepreview-ready": "Загрузка… Гатова!",
- "livepreview-failed": "Немагчыма ўжыць хуткі папярэдні прагляд!\nПаспрабуйце ўжыць звычайны папярэдні прагляд.",
- "livepreview-error": "Немагчыма далучыцца да: $1 «$2».\nПаспрабуйце ўжыць звычайны папярэдні прагляд.",
"lag-warn-normal": "Зьмены, зробленыя меней чым $1 {{PLURAL:$1|сэкунду|сэкунды|сэкундаў}} таму, могуць ня трапіць у гэты сьпіс.",
"lag-warn-high": "У выніку значнага адставаньня ў сынхранізацыі сэрвэраў базаў зьвестак зьмены, зробленыя раней за $1 {{PLURAL:$1|сэкунду|сэкунды|сэкундаў}} таму, могуць быць не паказаныя ў гэтым сьпісе.",
"watchlistedit-numitems": "Ваш сьпіс назіраньня ўтрымлівае $1 {{PLURAL:$1|запіс|запісы|запісаў}}, без уліку старонак абмеркаваньня.",
"compare-invalid-title": "Пазначаная няслушная назва.",
"compare-title-not-exists": "Пазначаная старонка не існуе.",
"compare-revision-not-exists": "Пазначаная вэрсія не існуе.",
- "dberr-header": "Гэтая вікі не функцыянуе спраўна",
"dberr-problems": "Прабачце! На гэтым сайце ўзьніклі тэхнічныя цяжкасьці.",
"dberr-again": "Паспрабуйце пачакаць некалькі хвілінаў і абнавіць.",
"dberr-info": "(Немагчыма злучыцца з сэрвэрам базы зьвестак: $1)",
"readonly_lag": "Базата от данни беше автоматично заключена, докато подчинените сървъри успеят да се съгласуват с основния сървър.",
"internalerror": "Вътрешна грешка",
"internalerror_info": "Вътрешна грешка: $1",
- "fileappenderrorread": "По време на добавянето е невъзможно прочитането на „$1“.",
- "fileappenderror": "Не можете да добавяте \"$1\" към \"$2\".",
"filecopyerror": "Файлът „$1“ не можа да бъде копиран като „$2“.",
"filerenameerror": "Файлът „$1“ не можа да бъде преименуван на „$2“.",
"filedeleteerror": "Файлът „$1“ не можа да бъде изтрит.",
"directorycreateerror": "Невъзможно е да бъде създадена директория „$1“.",
"filenotfound": "Файлът „$1“ не беше намерен.",
- "fileexistserror": "Невъзможност за запис във файл „$1“: файлът съществува",
"unexpected": "Неочаквана стойност: „$1“=„$2“.",
"formerror": "Възникна грешка при изпращане на формуляра",
"badarticleerror": "Действието не може да се изпълни върху страницата.",
"userlogin-helplink2": "Помощ за влизане",
"userlogin-loggedin": "Вече сте влезли в системата като {{GENDER:$1|$1}}.\nЧрез формуляра по-долу можете да влезете като друг потребител.",
"userlogin-createanother": "Създаване на друга сметка",
- "createacct-join": "Въведете своите данни по-долу.",
- "createacct-another-join": "Попълване на информацията за новата сметка",
"createacct-emailrequired": "Адрес за електронна поща",
"createacct-emailoptional": "Адрес за електронна поща (незадължително)",
"createacct-email-ph": "Въведете Вашия адрес за електронна поща",
"savearticle": "Съхраняване",
"preview": "Предварителен преглед",
"showpreview": "Предварителен преглед",
- "showlivepreview": "Бърз предварителен преглед",
"showdiff": "Показване на промените",
"anoneditwarning": "'''Внимание:''' Не сте влезли в системата. В историята на страницата ще бъде записан вашият IP-адрес.",
"anonpreviewwarning": "Внимание: Не сте влезли в системата. Ако съхраните редакцията си, тя ще бъде записана в историята на страницата с вашият IP-адрес.",
"search-nonefound": "Няма резултати, които да отговарят на заявката.",
"powersearch-legend": "Разширено търсене",
"powersearch-ns": "Търсене в именни пространства:",
- "powersearch-redir": "Списък на пренасочванията",
"powersearch-togglelabel": "Избор:",
"powersearch-toggleall": "Всички",
"powersearch-togglenone": "Никои",
"prefs-advancedsearchoptions": "Разширени настройки",
"prefs-advancedwatchlist": "Разширени настройки",
"prefs-displayrc": "Настройки за показване на списъка",
- "prefs-displaysearchoptions": "Настройки на изгледа",
"prefs-displaywatchlist": "Видими настройки",
"prefs-tokenwatchlist": "Маркер",
"prefs-diffs": "Разлики",
"monobook.css": "/* Чрез редактиране на този файл можете да промените облика Монобук */",
"common.js": "/* Този файл съдържа код на Джаваскрипт и се зарежда при всички потребители. */",
"monobook.js": "/* Остаряла страница; използвайте [[MediaWiki:Common.js]] */",
- "notacceptable": "Сървърът не може да предостави данни във формат, който да се разпознава от клиента ви.",
"anonymous": "{{PLURAL:$1|Анонимен потребител|Анонимни потребители}}на {{SITENAME}}",
"siteuser": "потребител на {{SITENAME}} $1",
"anonuser": "Анонимен потребител на {{SITENAME}} $1",
"autosumm-replace": "Заместване на съдържанието на страницата с „$1“",
"autoredircomment": "Пренасочване към [[$1]]",
"autosumm-new": "Нова страница: $1",
- "livepreview-loading": "Зарежда се…",
- "livepreview-ready": "Зарежда се… Готово!",
- "livepreview-failed": "Бързият предварителен преглед не е възможен! Опитайте нормален предварителен преглед.",
- "livepreview-error": "Връзката не сполучи: $1 „$2“ Опитайте нормален предварителен преглед.",
"lag-warn-normal": "Промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.",
"lag-warn-high": "Поради голямото изоставане в сървърната синхронизация, промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.",
"watchlistedit-numitems": "Списъкът ви за наблюдение съдържа {{PLURAL:$1|1 страница |$1 страници}} (без беседите).",
"compare-invalid-title": "Посоченото заглавие е невалидно",
"compare-title-not-exists": "Посоченото заглавие не съществува.",
"compare-revision-not-exists": "Посочената версия не съществува.",
- "dberr-header": "Това уики има проблем",
"dberr-problems": "Съжаляваме! Сайтът изпитва технически затруднения.",
"dberr-again": "Изчакайте няколко минути и опитайте да презаредите.",
"dberr-info": "(Няма достъп до сървъра с базата данни: $1)",
"readonly_lag": "ডাটাবেজ স্বয়ংক্রিয়ভাবে বন্ধ করে দেয়া হয়েছে, যাতে অধীন ডাটাবেজ সার্ভারগুলি প্রধান ডাটাবেজ সার্ভারের অবস্থায় আসতে পারে।",
"internalerror": "আভ্যন্তরীণ ত্রুটি",
"internalerror_info": "আভ্যন্তরীণ ত্রুটি: $1",
- "fileappenderrorread": "জুড়ে দেওয়ার সময় \"$1\" পড়া যায়নি।",
- "fileappenderror": "\"$1\" কে \"$2\" এর সাথে জুড়ে দেওয়া সম্ভব নয়।",
"filecopyerror": "\"$1\" থেকে \"$2\" ফাইল কপি করা যায়নি",
"filerenameerror": "\"$1\" ফাইলটির নাম বদলে \"$2\" করা সম্ভব হচ্ছে না।",
"filedeleteerror": "\"$1\" ফাইলটি মুছে ফেলা সম্ভব হচ্ছে না।",
"directorycreateerror": "\"$1\" ডাইরেক্টরি তৈরি করা যায়নি।",
"filenotfound": "\"$1\" ফাইলটি খুঁজে পাওয়া যাচ্ছে না।",
- "fileexistserror": "\"$1\" ফাইলে লেখা যাচ্ছে না: ফাইলটি আগেই আছে",
"unexpected": "অপ্রত্যাশিত মান: \"$1\"=\"$2\"।",
"formerror": "ত্রুটি: ফরমটি জমা দেওয়া যায়নি",
"badarticleerror": "এই পাতায় এই কাজটি করা সম্ভব নয়।",
"userlogin-helplink2": "লগইন সংক্রান্ত সাহায্য",
"userlogin-loggedin": "আপনি বর্তমানে {{GENDER:$1|$1}} হিসাবে লগইন আছেন।\nঅন্য ব্যবহারকারী নামে লগইন করতে চাইলে নিচের ফর্মটি ব্যবহার করুন।",
"userlogin-createanother": "আরেকটি অ্যাকাউন্ট তৈরি করুন",
- "createacct-join": "আপনার সম্পর্কিত তথ্য নিচে যোগ করুন।",
- "createacct-another-join": "নিচে আপনার নতুন অ্যাকাউন্টের তথ্য দিন।",
"createacct-emailrequired": "ইমেইল ঠিকানা",
"createacct-emailoptional": "ইমেইল ঠিকানা (ঐচ্ছিক)",
"createacct-email-ph": "আপনার ইমেইল ঠিকানা যোগ করুন",
"savearticle": "সংরক্ষণ",
"preview": "প্রাকদর্শন",
"showpreview": "প্রাকদর্শন",
- "showlivepreview": "তাৎক্ষণিক প্রাকদর্শন",
"showdiff": "পরিবর্তনসমূহ",
"anoneditwarning": "আপনি লগ ইন করেননি। এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি সংখ্যা সংরক্ষিত হবে।",
"anonpreviewwarning": "আপনি লগ ইন করেননি। এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি সংখ্যা সংরক্ষিত হবে।",
"search-nonefound": "খোঁজকৃত পাতার সাথে মিলে যায় এমন কোনো ফলাফল নেই।",
"powersearch-legend": "উন্নত অনুসন্ধান",
"powersearch-ns": "নামস্থানে অনুসন্ধান করো:",
- "powersearch-redir": "পুনঃনির্দেশনাসমূহের তালিকা",
"powersearch-togglelabel": "পরীক্ষা:",
"powersearch-toggleall": "সকল",
"powersearch-togglenone": "কিছু নয়",
"prefs-advancedsearchoptions": "উচ্চতর অপশন",
"prefs-advancedwatchlist": "উচ্চতর অপশন",
"prefs-displayrc": "প্রদর্শনী অপশন",
- "prefs-displaysearchoptions": "প্রদর্শনী অপশন",
"prefs-displaywatchlist": "প্রদর্শনী অপশন",
"prefs-tokenwatchlist": "টোকেন",
"prefs-diffs": "পার্থক্য",
"tooltip-preferences-save": "পছন্দ সংরক্ষণ",
"tooltip-summary": "একটি সংক্ষিপ্ত সারাংশ দিন",
"interlanguage-link-title": "$1 - $2",
- "notacceptable": "আপনার ক্লায়েন্ট পড়তে পারে এমন ফরম্যাটে উইকি সার্ভার উপাত্ত সরবরাহ করতে পারছে না।",
"anonymous": "{{SITENAME}} এর বেনামী {{PLURAL:$1|ব্যবহারকারী|ব্যবহারকারীবৃন্দ}}",
"siteuser": "{{SITENAME}} ব্যবহারকারী $1",
"anonuser": "{{SITENAME}} বেনামী ব্যবহারকারী $1",
"bitrate-terabits": "$1 টিবিপিএস",
"bitrate-petabits": "$1 পিবিপিএস",
"bitrate-exabits": "$1 ইবিপিএস",
- "livepreview-loading": "লোডিং...",
- "livepreview-ready": "লোডিং… প্রস্তুত!",
- "livepreview-failed": "তাৎক্ষণিক প্রাকদর্শন কাজ করছে না! সাধারণ প্রাকদর্শন চেষ্টা করুন।",
- "livepreview-error": "সংযোগ প্রদানে সম্ভব নয়: $1 \"$2\"। সাধারণ প্রাকদর্শন চেষ্টা করুণ।",
"lag-warn-normal": "$1 {{PLURAL:$1|সেকেন্ডের|সেকেন্ডের}} চেয়ে নতুন পরিবর্তন তালিকায় না-ও দেখানো হতে পারে।",
"lag-warn-high": "ডাটাবেজ সার্ভারের অত্যধিক বিলম্বের কারণে, $1 {{PLURAL:$1|সেকেন্ডের|সেকেন্ডের}} চেয়ে নতুন পরিবর্তনগুলি এই তালিকায় না-ও দেখানো হতে পারে।",
"watchlistedit-numitems": "আপনার নজরতালিকায় আলোচনা পাতাগুলি বাদ দিয়ে {{PLURAL:$1|১টি শিরোনাম|$1টি শিরোনাম}} রয়েছে।",
"compare-invalid-title": "আপনার প্রদেয় শিরোনামটি সঠিক নয়।",
"compare-title-not-exists": "আপনার কাঙ্ক্ষিত শিরোনামটি নেই।",
"compare-revision-not-exists": "আপনার কাঙ্ক্ষিত সংস্করণটি নেই।",
- "dberr-header": "এই উইকিতে কোন সমস্যা রয়েছে",
"dberr-problems": " দুঃখিত! এই সাইটটি বর্তমানে কারীগরী অসুবিধার মুখোমুখি হয়েছে।",
"dberr-again": "কয়েক মিনিট পর পুনরায় পরিদর্শনের চেষ্টা করুন।",
"dberr-info": "(ডেটাবেজ সার্ভার $1-এর সাথে যোগাযোগ করা সম্ভব হয়নি)",
"readonly_lag": "Stanket eo bet ar bank roadennoù ent emgefre p'emañ an eilservijerioù oc'h adpakañ o dale e-keñver ar pennservijer",
"internalerror": "Fazi diabarzh",
"internalerror_info": "Fazi diabarzh : $1",
- "fileappenderrorread": "Dibosupl eo lenn \"$1\" e-pad an ensoc'hañ.",
- "fileappenderror": "Dibosupl ouzhpennañ « $1 » da « $2 ».",
"filecopyerror": "Dibosupl eilañ \"$1\" war-du \"$2\".",
"filerenameerror": "Dibosupl da adenvel « $1 » e « $2 ».",
"filedeleteerror": "Dibosupl eo diverkañ « $1 ».",
"directorycreateerror": "N'eus ket bet gallet krouiñ kavlec'h \"$1\".",
"filenotfound": "N'haller ket kavout ar restr \"$1\".",
- "fileexistserror": "Dibosupl skrivañ war ar restr \"$1\": bez'ez eus eus ar restr-se dija",
"unexpected": "Talvoudenn dic'hortoz : \"$1\"=\"$2\".",
"formerror": "Fazi: Dibosupl eo kinnig ar furmskrid",
"badarticleerror": "N'haller ket seveniñ an ober-mañ war ar bajenn-mañ.",
"userlogin-helplink2": "Skoazell evit kevreañ",
"userlogin-loggedin": "Kevreet oc'h dija evel {{GENDER:$1|$1}}.\nImplijit ar furmskrid amañ dindan evit kevreañ evel un implijer all.",
"userlogin-createanother": "Krouiñ ur gont all",
- "createacct-join": "Skrivit ho titouroù amañ dindan.",
- "createacct-another-join": "Ebarzhiñ titouroù ar gont nevez amañ dindan.",
"createacct-emailrequired": "Chomlec'h postel",
"createacct-emailoptional": "Chomlec'h postel (direizh)",
"createacct-email-ph": "Skrivit ho chomlec'h postel",
"savearticle": "Enrollañ ar bajenn",
"preview": "Rakwelet",
"showpreview": "Rakwelet",
- "showlivepreview": "Rakwelet prim",
"showdiff": "Diskouez ar c'hemmoù",
"anoneditwarning": "'''Diwallit :''' N'oc'h ket kevreet. \nHo chomlec'h IP eo a vo enrollet war istor kemmoù ar bajenn-mañ.",
"anonpreviewwarning": "''N'oc'h ket kevreet. Enrollañ a lakao war-wel ho chomlec'h IP e istor kemmoù ar bajenn.''",
"search-nonefound": "An enklask-mañ ne zisoc'h war netra.",
"powersearch-legend": "Klask araokaet",
"powersearch-ns": "Klask en esaouennoù anv :",
- "powersearch-redir": "Roll an adkasoù",
"powersearch-togglelabel": "Dibab :",
"powersearch-toggleall": "An holl",
"powersearch-togglenone": "Hini ebet",
"prefs-advancedsearchoptions": "Dibarzhioù araokaet",
"prefs-advancedwatchlist": "Dibarzhioù araokaet",
"prefs-displayrc": "Dibarzhioù diskwel",
- "prefs-displaysearchoptions": "Dibarzhioù diskwel",
"prefs-displaywatchlist": "Dibarzhioù diskwel",
"prefs-tokenwatchlist": "Jedouer",
"prefs-diffs": "Diforc'hioù",
"monobook.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur MonoBook */",
"modern.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur Modern */",
"vector.js": "/* Kement JavaScript amañ a vo karget evit an implijerien a ra gant ar gwiskadur Vektor */",
- "notacceptable": "N'eo ket ar servijer wiki-mañ evit pourchas stlennoù en ur furmad lennus evit ho arval.",
"anonymous": "{{PLURAL:$1|Implijer|Implijerien}} dizanv war {{SITENAME}}",
"siteuser": "Implijer(ez) $1 eus {{SITENAME}}",
"anonuser": "implijer dizanv $1 eus {{SITENAME}}",
"size-kilobytes": "$1 Kio",
"size-megabytes": "$1 Mio",
"size-gigabytes": "$1 Gio",
- "livepreview-loading": "O kargañ...",
- "livepreview-ready": "O kargañ... Prest !",
- "livepreview-failed": "C'hwitet eo rakwelet diouzhtu !\nKlaskit rakwelet er mod boutin.",
- "livepreview-error": "C'hwitet kevreañ : $1 \"$2\"\nKlaskit rakwelet er mod boutin.",
"lag-warn-normal": "Marteze ne ziskouezo ket ar roll-mañ an degasadennoù c'hoarvezet $1 {{PLURAL:$1|eilenn|eilenn}} zo hepken.",
"lag-warn-high": "Dre m'eo soulgarget ar bankoù roadennoù, marteze ne vo ket gwelet er roll-mañ ar c'hemmoù deuet $1 {{PLURAL:$1|eilenn|eilenn}} zo hepken.",
"watchlistedit-numitems": "{{PLURAL:$1|1 pajenn|$1 pajenn}} zo war ho roll evezhiañ, hep kontañ ar pajennoù kaozeal.",
"compare-invalid-title": "Kamm eo an titl hoc'h eus merket.",
"compare-title-not-exists": "N'eus ket eus an titl spisaet ganeoc'h.",
"compare-revision-not-exists": "N'eus ket eus an adweladenn spisaet ganeoc'h.",
- "dberr-header": "Ur gudenn zo gant ar wiki-mañ",
"dberr-problems": "Ho tigarez ! Kudennoù teknikel zo gant al lec'hienn-mañ.",
"dberr-again": "Gortozit un nebeud munutennoù a-raok adkargañ.",
"dberr-info": "(Dibosupl kevreañ ouzh servijer an diaz roadennoù: $1)",
"readonly_lag": "Baza podataka je zaključana dok se sekundarne baze podataka na serveru ne sastave sa glavnom.",
"internalerror": "Unutrašnja greška",
"internalerror_info": "Interna greška: $1",
- "fileappenderrorread": "Nije se mogao pročitati \"$1\" tokom dodavanja.",
- "fileappenderror": "Ne može se primijeniti \"$1\" na \"$2\".",
"filecopyerror": "Ne može se kopirati \"$1\" na \"$2\".",
"filerenameerror": "Ne može se promjeniti ime datoteke \"$1\" u \"$2\".",
"filedeleteerror": "Ne može se izbrisati datoteka \"$1\".",
"directorycreateerror": "Nije moguće napraviti direktorijum \"$1\".",
"filenotfound": "Ne može se naći datoteka \"$1\".",
- "fileexistserror": "Nemoguće je napisati datoteku \"$1\": datoteka već postoji",
"unexpected": "Neočekivana vrijednost: \"$1\"=\"$2\".",
"formerror": "Greška: ne može se poslati upitnik",
"badarticleerror": "Ova akcija ne može biti izvršena na ovoj stranici.",
"userlogin-helplink2": "Pomoć pri prijavljivanju",
"userlogin-loggedin": "Već ste prijavljeni kao {{GENDER:$1|$1}}.\nKoristite donji obrazac da biste se prijavili kao drugi korisnik.",
"userlogin-createanother": "Napravi još jedan račun",
- "createacct-join": "Unesite svoje podatke ispod.",
- "createacct-another-join": "Unesite informacije o novom računu ispod.",
"createacct-emailrequired": "Adresa e-pošte",
"createacct-emailoptional": "Adresa e-pošte (opcionalno)",
"createacct-email-ph": "Unesite Vašu adresu e-pоšte",
"savearticle": "Sačuvaj",
"preview": "Pregled stranice",
"showpreview": "Prikaži izgled",
- "showlivepreview": "Pregled uživo",
"showdiff": "Prikaži izmjene",
"anoneditwarning": "'''Upozorenje:''' Niste prijavljeni. \nVaša IP adresa će biti zabilježena u historiji ove stranice.",
"anonpreviewwarning": "''Niste prijavljeni. Nakon spremanja izmjena vaša IP adresa će biti zapisana u historiji uređivanja ove stranice.''",
"search-nonefound": "Nisu pronađeni rezultati koji odgovaraju upitu.",
"powersearch-legend": "Napredna pretraga",
"powersearch-ns": "Pretraga u imenskim prostorima:",
- "powersearch-redir": "Spisak preusmjerenja",
"powersearch-togglelabel": "Označi:",
"powersearch-toggleall": "Sve",
"powersearch-togglenone": "Ništa",
"prefs-advancedsearchoptions": "Napredne opcije",
"prefs-advancedwatchlist": "Napredne opcije",
"prefs-displayrc": "Postavke izgleda",
- "prefs-displaysearchoptions": "Postavke izgleda",
"prefs-displaywatchlist": "Postavke izgleda",
"prefs-diffs": "Razlike",
"email-address-validity-valid": "Izgleda valjano",
"cologneblue.js": "/* Bilo koja JavaScript će biti učitana za sve korisnike koji koriste Cologne Blue skin */",
"monobook.js": "/* Bilo koja JavaScript će biti učitana za sve korisnike koji koriste MonoBook skin */",
"modern.js": "/* Bilo koja JavaScript će biti učitana za sve korisnike koji koriste Modern skin */",
- "notacceptable": "Viki server ne može da pruži podatke u onom formatu koji Vaš klijent može da pročita.",
"anonymous": "{{PLURAL:$1|Anonimni korisnik|$1 anonimna korisnika|$1 anonimnih korisnika}} projekta {{SITENAME}}",
"siteuser": "{{SITENAME}} korisnik $1",
"anonuser": "{{SITENAME}} anonimni korisnik $1",
"size-kilobytes": "$1 KB",
"size-megabytes": "$1 MB",
"size-gigabytes": "$1 GB",
- "livepreview-loading": "Punjenje…",
- "livepreview-ready": "Punjenje… Spreman!",
- "livepreview-failed": "Pregled uživo nije uspio! Pokušajte normalni pregled.",
- "livepreview-error": "Spajanje nije uspjelo: $1 \"$2\".\nPokušajte normalni pregled.",
"lag-warn-normal": "Promjene načinjene prije manje od $1 {{PLURAL:$1|sekunde|sekunde|sekundi}} možda neće biti prikazane na ovom spisku.",
"lag-warn-high": "Zbog dužeg zastoja baze podataka na serveru, izmjene novije od $1 {{PLURAL:$1|sekunde|sekunde|sekundi}} možda neće biti prikazane na ovom spisku.",
"watchlistedit-numitems": "Vaš spisak praćenja sadrži {{PLURAL:$1|1 naslov|$1 naslova}}, izuzimajući stranice za razgovor.",
"compare-invalid-title": "Naslov koji ste unijeli je nevaljan.",
"compare-title-not-exists": "Naslov koji ste naveli ne postoji.",
"compare-revision-not-exists": "Izmjena koji ste naveli ne postoji.",
- "dberr-header": "Ovaj wiki ima problem",
"dberr-problems": "Žao nam je! Ova stranica ima određene tehničke poteškoće.",
"dberr-again": "Pokušajte pričekati par minuta i zatim osvježiti.",
"dberr-info": "(ne može se spojiti server baze podataka: $1)",
"readonly_lag": "Хаамашан базина цхьана хан блоктоьхна, хаамашан базан сервераш нисялца.",
"internalerror": "Чоьхьара гlалат",
"internalerror_info": "Чоьхьара гlалат: $1",
- "fileappenderrorread": "Тар ца дели еша «$1» тӀетухучу хенахь.",
- "fileappenderror": "Тар ца дели тӀетоха «$1» оцунах «$2».",
"filecopyerror": "Йиш яц копий ян «$1» оцунах «$2».",
"filerenameerror": "Файлан «$1» цӀе хийца «$2» йиш яц.",
"filedeleteerror": "ДӀаяккха цатарло файл «$1».",
"directorycreateerror": "Йиш яц директори «$1» кхолла.",
"filenotfound": "Файл «$1» каро йиш яц.",
- "fileexistserror": "Файл «$1» дӀаязяан йиш яц: файл йолуш ю.",
"unexpected": "БIегIийла йоцу маьIна: «$1»=«$2».",
"formerror": "ГӀалат: йиш яц хӀара формаш дӀакхачо",
"badarticleerror": "И хӀума кхочушъ дан йиш яц хӀокху агӀонехь.",
"userlogin-helplink2": "Системин чудахаран гӀодар",
"userlogin-loggedin": "Хьо {{GENDER:$1|$1}} цӀарца чохь ву/ю.\nЛахара форманца кхин цӀарца чугӀо.",
"userlogin-createanother": "Кхолла декъашхочун кхин дӀаяздар",
- "createacct-join": "ДӀаязбе лахахь хай хаам.",
- "createacct-another-join": "Язбе лахахь керлачу декъашхочун дӀаяздаран хаам.",
"createacct-emailrequired": "Электронан почтан адрес",
"createacct-emailoptional": "Электронан почтан адрес (ца яздича мега)",
"createacct-email-ph": "ДӀаязде электронан почтан адрес",
"savearticle": "Дlайазъé агlо",
"preview": "Хьалха муха ю хьажа",
"showpreview": "Хьалха муха ю хьажар",
- "showlivepreview": "Сиха хьажар",
"showdiff": "Хlоттина болу хийцам",
"anoneditwarning": "'''Тергам бе''': Ахьа хьай цӀарца тадарш деш дац. Хьан IP-адрес дӀаяздина хира ду хӀокху агӀон истори чу.",
"anonpreviewwarning": "''Системин чу цагӀахь хьан IP-адрес агӀона истори чу дӀаяз лур ду.''",
"revdelete-selected-text": "{{PLURAL:$1|Файлан хаьржина верси|Файлан хаьржина версеш}} [[:$2]]:",
"revdelete-selected-file": "{{PLURAL:$1|Файлан хаьржина верси|Файлан хаьржина версеш}} [[:$2]]:",
"logdelete-selected": "Тептар чура {{PLURAL:$1|хаьржина дӀаяздар|хаьржина дӀаяздарш}}:",
+ "revdelete-text-text": "ДӀаяьхна версеш агӀонан истори чохь хьалха санна гуш хира ю, амма чулацаман цхьадолу дакъош декъашхошна тӀекхочехь хира дац.",
+ "revdelete-text-file": "Файлан дӀаяьхна версеш агӀонан истори чохь хьалха санна гуш хира ю, амма чулацаман цхьадолу дакъош декъашхошна тӀекхочехь хира дац.",
+ "logdelete-text": "ДӀабяьхна тептар чура хиламаш тептарш чохь хьалха санна гуш хира бу, амма чулацаман цхьадолу дакъош декъашхошна тӀекхочехь хира дац.",
+ "revdelete-text-others": "{{grammar:genitive|{{SITENAME}}}} чура кхин куьйгалхошна хьалха санна йиш хира ю къайла болу чулацаме хьажа а юху меттахӀотта бан а оьцу интерфейс чухула, кхин тӀе бехкам бина бацахь.",
"revdelete-confirm": "Дехар до, бакъдар ахьа деш дерг [[{{MediaWiki:Policy-url}}|бакъонашца]] деш хилар.",
"revdelete-legend": "Доза тохар",
"revdelete-hide-text": "Къайладаккха хӀокху агӀона чура йоза",
"search-nonefound": "Дехаре терра цхьа хӀума ца карийна.",
"powersearch-legend": "Шуьро лахар",
"powersearch-ns": "Цlераши анахь лахар:",
- "powersearch-redir": "Схьагайта дlасахьажийнарш",
"powersearch-togglelabel": "Билгалдан:",
"powersearch-toggleall": "Массо",
"powersearch-togglenone": "Хlумма цаоьшу",
"prefs-advancedsearchoptions": "Кхин гӀирс нисбар",
"prefs-advancedwatchlist": "Кхин гӀирс нисбар",
"prefs-displayrc": "Гуш болу гӀирсаш",
- "prefs-displaysearchoptions": "Гуш болу гӀирсаш",
"prefs-displaywatchlist": "Гуш болу гӀирсаш",
"prefs-diffs": "Башхон верси",
"prefs-help-prefershttps": "И хийцам болх байта юхугӀо системин чу.",
"undelete-search-prefix": "Гайта агӀонаш йолалуш йолу тӀера:",
"undelete-search-submit": "Лаха",
"undelete-no-results": "Архив чохь йогӀуш агӀонаш цакарий.",
+ "undelete-error": "АгӀо меттахӀоттаяран гӀалат",
+ "undelete-error-short": "Файл меттахӀоттаяран гӀалат: $1",
+ "undelete-error-long": "Файл меттахӀоттош гӀалат даьлла:\n\n$1",
"undelete-show-file-submit": "Хlаъ",
"namespace": "Цlерийн ана:",
"invert": "Хаьржинарг хилийта",
"autosumm-replace": "АгӀона чуьраниг хийцина → «$1»",
"autoredircomment": "ДӀасахьажийна цуна [[$1]] тӏе",
"autosumm-new": "Керла агlо: «$1»",
- "livepreview-loading": "Чуйолуш…",
- "livepreview-ready": "Чуйолуш… Кийча ю!",
"watchlistedit-normal-title": "Тергаме могӀанийн хийцамаш",
"watchlistedit-normal-legend": "Тергаме могӀам юкъар дӀаяккхар",
"watchlistedit-normal-explain": "Лахахь гойту хьан тергаме могӀамехь йолу агӀонаш.\nДӀаяздарш дӀадаха билгалде уьш такха тӀетаӀе кнопка «{{int:Watchlistedit-normal-submit}}».\nКхин хьа йиш ю [[Special:EditWatchlist/raw|йозан кепар могӀом нисба ]].",
"compare-invalid-title": "Ахьа язйина йолу цӀе ца магайо.",
"compare-title-not-exists": "Иштта цӀе яц.",
"compare-revision-not-exists": "Иштта версеш яц.",
- "dberr-header": "ХӀара вики ловш ю халона бала",
"dberr-problems": "Бехк ма бил! Хlинц машан меттиган хилла гlирсаца халонаш.",
"dberr-again": "Хьажа карла йаккха агlо массех минот йаьлча.",
"dberr-info": "(аьтто ца хили зӀе хӀотта серверца бухара хаамашца: $1)",
"api-error-duplicate": "Иштта чулацам болу {{PLURAL:$1|1=[$2 кхин файл]|[$2 кхин файлаш]}} йолуш ю",
"api-error-duplicate-popup-title": "{{PLURAL:$1|1=Файлан|Файлийн}} дубликат.",
"api-error-empty-file": "Ахьа яхьийтина файл еса ю.",
+ "api-error-noimageinfo": "Кхиамца чуяьккхина, амма серверо файлахь лаьцна цхьаа хаам битина бац.",
+ "api-error-nomodule": "Чоьхьара гӀалат: чуйокху модуль нисйина яц.",
+ "api-error-ok-but-empty": "Чоьхьара гӀалат: серверара жоп дац.",
+ "api-error-overwrite": "йолуш йолу файл хийца магийна дац.",
+ "api-error-stashfailed": "Чоьхьара гӀалат: серверна хана йолу файл Ӏалашъян цаелира.",
+ "api-error-publishfailed": "Чоьхьара гӀалат: серверна хана йолу файл Ӏалашъян цаелира.",
+ "api-error-stasherror": "Файл чуйоккхуш Ӏалашечехь гӀалат даьлла.",
+ "api-error-timeout": "Хьоьжу хана серверо жоп цало.",
+ "api-error-unclassified": "Ца довза гӀалат даьлла",
+ "api-error-unknown-code": "Доьвзуш доцу гӀалат: «$1».",
+ "api-error-unknown-error": "Чоьхьара гӀалат: файл чуйоккхуш цхьа хӀума гӀалате хилла.",
+ "api-error-unknown-warning": "Доьвзуш доцу дӀахьедар: $1",
+ "api-error-unknownerror": "Доьвзуш доцу гӀалат: «$1».",
+ "api-error-uploaddisabled": "ХӀокху вики чохь файлаш чуяхар дӀадайина ду.",
"duration-seconds": "$1 {{PLURAL:$1|секунд}}",
"duration-minutes": "$1 {{PLURAL:$1|минут}}",
"duration-hours": "$1 {{PLURAL:$1|сахьт}}",
"expand_templates_title": "АгӀона {{FULLPAGENAME}} корта кхин а:",
"expand_templates_input": "Чудолу йоза:",
"expand_templates_output": "Хилам",
+ "expand_templates_xml_output": "HTML-арадаккхар",
+ "expand_templates_html_output": "HTML-арадаккхар",
"expand_templates_ok": "ХӀаъ",
"expand_templates_remove_comments": "ДӀаяха комментареш",
"expand_templates_remove_nowiki": "ДӀайоху тегаш <nowiki> хилча",
"readonly_lag": "بنكهدراوهكه بهشێوهی خۆكار بهندكراوه، لهكاتێكدا بنكهدراوهی ڕاژهكارهكه ڕۆڵی لهخۆگرتن دهگێڕێت",
"internalerror": "ھەڵەی ناوخۆیی",
"internalerror_info": "ههڵهی ناوخۆیی: $1",
- "fileappenderrorread": "نەتوانرا \"$1\" بخوێندرێتەوە لەکاتی هاوپێچکردندا.",
- "fileappenderror": "نهتواندرا \"$1\" بخرێتهسهر \"$2\".",
"filecopyerror": "نەکرا پەڕگەی «$1» کۆپی بکرێت بۆ «$2».",
"filerenameerror": "ناوی پهڕگهی \"$1\" نهگۆڕدرا بۆ \"$2\".",
"filedeleteerror": "نەکرا پەڕگەی «$1» بسڕدرێتەوە.",
"directorycreateerror": "نەتوانرا بوخچەی \"$1\"دروست بکرێت.",
"filenotfound": "پهڕگهی \"$1\" نهدۆزرایهوه",
- "fileexistserror": "ناتوانی لەسەر پەڕگەی \"$1\" بنووسیت: ئەو پەڕگەیە هەیە.",
"unexpected": "نرخی چاوەڕوان نەکراو: \"$1\"=\"$2\" .",
"formerror": "هەڵە: فورمەکە نانێردرێت.",
"badarticleerror": "ئەو ئاماژە لەم لاپەڕەدا پێکنایە.",
"userlogin-helplink2": "یارمەتی بۆ چوونەژوورەوە",
"userlogin-loggedin": "تۆ ھەر ئێستا بە ناوی {{GENDER:$1|$1}} چوویتە ژوورەوە.\nفۆرمی ژێرەوە بەکاربھێنە بۆ چوونەژوورەوە وەک بەکارھێنەرێکی تر.",
"userlogin-createanother": "ھەژمارێکی تر دروست بکە",
- "createacct-join": "زانیارییەکەت لە ژێرەوە بنووسە.",
- "createacct-another-join": "زانیارییەکانی ھەژمارە نوێکەت لە ژێرەوە بنووسە.",
"createacct-emailrequired": "ناونیشانی ئیمەیل",
"createacct-emailoptional": "ناونیشانی ئیمەیل (دڵخوازانە)",
"createacct-email-ph": "ناونیشانی ئیمەیلەکەت بنووسە",
"savearticle": "پەڕەکە پاشەکەوت بکە",
"preview": "پێشبینین",
"showpreview": "پێشبینین نیشان بدە",
- "showlivepreview": "پێشبینینی ڕاستهوخۆ",
"showdiff": "گۆڕانکارییەکان نیشان بدە",
"anoneditwarning": "'''ھۆشیار بە:''' نەچوویتە ژوورەوە.\nناونیشانی IPی تۆ لە مێژووی دەستکارییەکانی ئەم پەڕەیەدا تۆماردەکرێت.",
"anonpreviewwarning": "«نەڕۆشتوویتە ژوورەوە. پاشەکەوتکردن، ئەدرەسی IPەکەت لە مێژووی دەستکاریی ئەم پەڕە تۆمار دەکات.»",
"search-nonefound": "ھیچ ئاکامێک کە بە داواکارییەکەت بخوا نەدۆزرایەوە.",
"powersearch-legend": "گەڕانی پێشکەوتوو",
"powersearch-ns": "گەڕان لە بۆشاییی ناوەکانی:",
- "powersearch-redir": "ڕەوانەکەرەکان پێرست بکە",
"powersearch-togglelabel": "تاوتوێ بکە:",
"powersearch-toggleall": "ھەموو",
"powersearch-togglenone": "ھیچیان",
"prefs-advancedsearchoptions": "هەڵبژاردە پێشکەوتووەکان",
"prefs-advancedwatchlist": "هەڵبژاردە پێشکەوتووەکان",
"prefs-displayrc": "ھەڵبژاردەکانی نیشاندان",
- "prefs-displaysearchoptions": "ھەڵبژاردەکانی نیشاندان",
"prefs-displaywatchlist": "ھەڵبژاردەکانی نیشاندان",
"prefs-tokenwatchlist": "نیشانە",
"prefs-diffs": "جیاوازییەکان",
"tooltip-undo": "«پووچەڵکردنەوە» ئەم گۆڕانکارییە دەگەڕێنێتەوە و فۆرمی دەستکاریکردن لە شێوەی پێشبینیندا دەکاتەوە. بەم جۆرە دەکرێ ھۆکارێک لە کورتەی دەستکاریدا بنووسرێ.",
"tooltip-preferences-save": "هەڵبژاردنەکانت بپارێزە",
"tooltip-summary": "پوختەیەکی کورتی تێبخە",
- "notacceptable": "ڕاژەکاری ویکی ناتوانێت داتا بەوشێوەی بۆ ڕاژەخوازی تۆ بخوێندرێتەوە، ئامادە بکات.",
"anonymous": "{{PLURAL:$1|بەکارهێنەری|بەکارهێنەرانی}} نەناسراوی {{SITENAME}}",
"siteuser": "بەکارھێنەری {{SITENAME}}، $1",
"anonuser": "$1، بەکارھێنەری نامۆی {{SITENAME}}",
"size-gigabytes": "$1 گیگابایت",
"size-terabytes": "$1 تێرابایت",
"size-petabytes": "$1 پێبیبایت",
- "livepreview-loading": "باركردن...",
- "livepreview-ready": "بارکردن... ئامادە!",
"lag-warn-normal": "گۆڕانکاریەکانی نوێتر لە $1 {{PLURAL:$1|چرکە|چرکە}} لەوانەیە لەم لیستەدا نیشان نەدرێن.",
"lag-warn-high": "لەبەر زۆر دواکەوتنی ڕاژەکاری بنکەدراو، گۆڕانکاریەکانی نوێتر لە $1 {{PLURAL:$1|چرکە|چرکە}} لەوانەیە لەم لیستەدا نیشان نەدرێن.",
"watchlistedit-numitems": "بێجگە لە پەڕەی وتووێژەکان، لیستی چاودێڕییەکانت {{PLURAL:$1|1 بابەت|$1 بابەت}}ی تێدایە،",
"compare-rev2": "پێداچوونەوەی ٢",
"compare-submit": "ھەڵسەنگاندن",
"compare-invalid-title": "ئەم سەردێڕە دەستنیشانت کردووە نادروستە.",
- "dberr-header": "ئەم ویکییە کێشەی هەیە",
"dberr-problems": "ببورە! ئەم ماڵپەڕە ئێستا خەریک ئەزموونێکی کێشەی تەکنیکیە.",
"dberr-again": "چەن خولک ڕاوەستە و نوێی بکەوە.",
"dberr-info": "(پەیوەندی لەگەڵ ڕاژەکاری بنکەدراو پێکنایەت: $1)",
"readonly_lag": "Databáze byla automaticky dočasně uzamčena kvůli zpoždění ostatních databázových serverů oproti hlavnímu",
"internalerror": "Vnitřní chyba",
"internalerror_info": "Vnitřní chyba: $1",
- "fileappenderrorread": "Během přidávání se nepodařilo přečíst „$1“.",
- "fileappenderror": "Nepodařilo se připojit „$1“ k „$2“.",
"filecopyerror": "Nebylo možné zkopírovat soubor „$1“ na „$2“.",
"filerenameerror": "Nebylo možné přejmenovat soubor „$1“ na „$2“.",
"filedeleteerror": "Nebylo možné smazat soubor „$1“.",
"directorycreateerror": "Nelze vytvořit adresář „$1“.",
"filenotfound": "Nebylo možné najít soubor „$1“.",
- "fileexistserror": "Nelze uložit do souboru „$1“: soubor existuje",
"unexpected": "Neočekávaná hodnota: \"$1\"=\"$2\".",
"formerror": "Chyba: nebylo možné odeslat formulář",
"badarticleerror": "Tuto činnost nelze na této stránce provést.",
"userlogin-helplink2": "Nápověda k přihlašování",
"userlogin-loggedin": "Již jste {{GENDER:$1|přihlášen|přihlášena}} jako $1.\nPomocí formuláře níže se můžete přihlásit jako jiný uživatel.",
"userlogin-createanother": "Vytvořit jiný účet",
- "createacct-join": "Níže zadejte své údaje.",
- "createacct-another-join": "Níže zadejte údaje nového účtu.",
"createacct-emailrequired": "E-mailová adresa",
"createacct-emailoptional": "E-mailová adresa (nepovinné)",
"createacct-email-ph": "Zadejte svou e-mailovou adresu",
"savearticle": "Uložit změny",
"preview": "Náhled",
"showpreview": "Ukázat náhled",
- "showlivepreview": "Rychlý náhled",
"showdiff": "Ukázat změny",
"anoneditwarning": "'''Varování:''' Nejste přihlášen(a). Vaše IP adresa bude zveřejněna v historii této stránky.",
"anonpreviewwarning": "''Nejste přihlášen(a). Uložením zveřejníte svou IP adresu v historii této stránky.''",
"search-nonefound": "Na váš dotaz nebyly nalezeny žádné výsledky.",
"powersearch-legend": "Rozšířené vyhledávání",
"powersearch-ns": "Hledat ve jmenných prostorech:",
- "powersearch-redir": "Vypsat přesměrování",
"powersearch-togglelabel": "Zaškrtnout:",
"powersearch-toggleall": "Všechno",
"powersearch-togglenone": "Nic",
"prefs-advancedsearchoptions": "Rozšířené možnosti",
"prefs-advancedwatchlist": "Rozšířené možnosti",
"prefs-displayrc": "Možnosti zobrazení",
- "prefs-displaysearchoptions": "Možnosti zobrazení",
"prefs-displaywatchlist": "Možnosti zobrazení",
"prefs-tokenwatchlist": "Klíč",
"prefs-diffs": "Porovnání verzí",
"pageswithprop-prophidden-binary": "hodnota binární vlastnosti skryta ($1)",
"doubleredirects": "Dvojitá přesměrování",
"doubleredirectstext": "Na této stránce je seznam přesměrování vedoucích na další přesměrování.\nKaždý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl druhého přesměrování, který obvykle ukazuje jméno „skutečné“ cílové stránky, na kterou by mělo první přesměrování odkazovat.\n<del>Přeškrtnuté</del> položky již byly vyřešeny.",
- "double-redirect-fixed-move": "Stránka [[$1]] byla přesunuta, nyní přesměrovává na [[$2]]",
- "double-redirect-fixed-maintenance": "Oprava dvojitého přesměrování z [[$1]] na [[$2]].",
+ "double-redirect-fixed-move": "Stránka [[$1]] byla přesunuta.\nByla automaticky aktualizována a nyní přesměrovává na [[$2]].",
+ "double-redirect-fixed-maintenance": "Automatická oprava dvojitého přesměrování z [[$1]] na [[$2]] údržbovým procesem.",
"double-redirect-fixer": "Opravář přesměrování",
"brokenredirects": "Přerušená přesměrování",
"brokenredirectstext": "Tato přesměrování vedou na neexistující stránky:",
"group-bot.js": "/* Zde uvedený JavaScript bude použit pouze pro boty */",
"group-sysop.js": "/* Zde uvedený JavaScript bude použit pouze pro správce */",
"group-bureaucrat.js": "/* Zde uvedený JavaScript bude použit pouze pro byrokraty */",
- "notacceptable": "Tento wiki server není schopen poskytnout data ve formátu, který by váš klient byl schopen přečíst.",
"anonymous": "anonymní {{PLURAL:$1|uživatel|uživatelé|uživatelé}} {{GRAMMAR:2sg|{{SITENAME}}}}",
"siteuser": "uživatel {{grammar:2sg|{{SITENAME}}}} $1",
"anonuser": "anonymní uživatel {{grammar:2sg|{{SITENAME}}}} $1",
"autoredircomment": "Přesměrování na [[$1]]",
"autosumm-new": "Založena nová stránka s textem „$1“",
"size-kilobytes": "$1 KB",
- "livepreview-loading": "Nahrávám…",
- "livepreview-ready": "Nahrávám… Připraven!",
- "livepreview-failed": "Rychlý náhled není dostupný! Použijte normální náhled.",
- "livepreview-error": "Neúspěšné spojení: $1 \"$2\". Použijte normální náhled.",
"lag-warn-normal": "Změny za {{PLURAL:$1|poslední sekundu|poslední $1 sekundy|posledních $1 sekund}} nemusí být v tomto seznamu zobrazeny.",
"lag-warn-high": "Protože je databázový server právě mimořádně vytížen, nemusí být změny za {{PLURAL:$1|poslední sekundu|poslední $1 sekundy|posledních $1 sekund}} v tomto seznamu zobrazeny.",
"watchlistedit-numitems": "Váš seznam sledovaných stránek obsahuje (mimo diskusních stránek) {{PLURAL:$1|1 položku|$1 položky|$1 položek}}.",
"compare-invalid-title": "Zadaný název je neplatný.",
"compare-title-not-exists": "Zadaný název neexistuje.",
"compare-revision-not-exists": "Zadaná revize neexistuje.",
- "dberr-header": "Tato wiki má nějaké potíže",
"dberr-problems": "Promiňte! Tento server má v tuto chvíli technické problémy.",
"dberr-again": "Zkuste několik minut počkat a poté znovu načíst stránku.",
"dberr-info": "(Nelze navázat spojení s databázovým serverem: $1)",
"tog-showtoolbar": "Vis værktøjslinje til redigering",
"tog-editondblclick": "Redigér sider med dobbeltklik",
"tog-editsectiononrightclick": "Redigér afsnit ved at højreklikke på deres titler",
- "tog-rememberpassword": "Husk min login i denne browser (i højst $1 {{PLURAL:$1|dag|dage}})",
"tog-watchcreations": "Tilføj sider, jeg opretter, og filer, jeg lægger op, til min overvågningsliste",
"tog-watchdefault": "Tilføj sider og filer, jeg redigerer, til min overvågningsliste",
"tog-watchmoves": "Tilføj sider og filer, jeg flytter, til min overvågningsliste",
"readonly_lag": "Databasen er automatisk blevet låst mens slave database serverne synkronisere med master databasen",
"internalerror": "Intern fejl",
"internalerror_info": "Intern fejl: $1",
- "fileappenderrorread": "Kunne ikke læse \"$1\" mens der blev tilføjet data.",
- "fileappenderror": "Kunne ikke tilføje \"$1\" til \"$2\".",
"filecopyerror": "Kunne ikke kopiere filen \"$1\" til \"$2\".",
"filerenameerror": "Kunne ikke omdøbe filen \"$1\" til \"$2\".",
"filedeleteerror": "Kunne ikke slette filen \"$1\".",
"directorycreateerror": "Kunne ikke oprette mappen \"$1\".",
"filenotfound": "Kunne ikke finde filen \"$1\".",
- "fileexistserror": "Kunne ikke oprette \"$1\": filen findes allerede.",
"unexpected": "Uventet værdi: \"$1\"=\"$2\".",
"formerror": "Fejl: Kunne ikke afsende formular",
"badarticleerror": "Denne funktion kan ikke udføres på denne side.",
"userlogin-helplink2": "Hjælp med at logge på",
"userlogin-loggedin": "Du er allerede logget på som {{GENDER:$1|$1}}.\nBrug formularen nedenfor til at logge på som en anden bruger.",
"userlogin-createanother": "Opret en anden konto",
- "createacct-join": "Indtast dine oplysninger nedenfor.",
- "createacct-another-join": "Angiv den nye kontos oplysninger nedenfor.",
"createacct-emailrequired": "E-mailadresse",
"createacct-emailoptional": "E-mailadresse (valgfri)",
"createacct-email-ph": "Indtast din e-mailadresse",
"savearticle": "Gem side",
"preview": "Forhåndsvisning",
"showpreview": "Forhåndsvisning",
- "showlivepreview": "Live-forhåndsvisning",
"showdiff": "Vis ændringer",
"anoneditwarning": "'''Advarsel:''' Du er ikke logget på. I stedet for brugernavn vises din IP-adresse i versionshistorikken.",
"anonpreviewwarning": "''Du er ikke logget på. Hvis du gemmer, registreres din IP-adresse i versionshistorikken.''",
"search-nonefound": "Søgningen gav ingen resultater.",
"powersearch-legend": "Avanceret søgning",
"powersearch-ns": "Søg i navnerummene:",
- "powersearch-redir": "Vis omdirigeringer",
"powersearch-togglelabel": "Marker:",
"powersearch-toggleall": "Alle",
"powersearch-togglenone": "Ingen",
"prefs-advancedsearchoptions": "Avancerede indstillinger",
"prefs-advancedwatchlist": "Avancerede indstillinger",
"prefs-displayrc": "Indstillinger for visning",
- "prefs-displaysearchoptions": "Visningsmuligheder",
"prefs-displaywatchlist": "Visningsmuligheder",
"prefs-tokenwatchlist": "Mærke",
"prefs-diffs": "Forskelle",
"monobook.css": "/** CSS inkluderet her vil være aktivt for brugere af Monobook-temaet . */",
"common.js": "/* Javascript inkluderet her vil være aktivt for alle brugere. */",
"monobook.js": "/* JavaScript i denne fil vil indlæses for brugere af udseendet MonoBook */",
- "notacceptable": "Wiki-serveren kan ikke levere data i et format, som din klient understøtter.",
"anonymous": "{{PLURAL:$1|Anonym bruger|Anonyme brugere}} på {{SITENAME}}",
"siteuser": "{{SITENAME}} bruger $1",
"anonuser": "{{SITENAME}} anonym bruger $1",
"autosumm-replace": "Erstatter sidens indhold med \"$1\"",
"autoredircomment": "Omdirigering til [[$1]] oprettet",
"autosumm-new": "Oprettede siden med \"$1\"",
- "livepreview-loading": "Indlæser …",
- "livepreview-ready": "Indlæser … færdig!",
- "livepreview-failed": "Live-forhåndsvisning ikke mulig! Brug venligst den almindelige forhåndsvisning.",
- "livepreview-error": "Forbindelse ikke mulig: $1 \"$2\". Brug venligst den almindelige forhåndsvisning.",
"lag-warn-normal": "Ændringer som er nyere end {{PLURAL:$1|et sekund|$1 sekunder}}, vises muligvis ikke i denne liste.",
"lag-warn-high": "Grundet stor belastning af databaseserveren vil ændringer der er nyere end {{PLURAL:$1|et sekund|$1 sekunder}} måske ikke blive vist i denne liste.",
"watchlistedit-numitems": "Din overvågningsliste indeholder {{PLURAL:$1|1 side|$1 sider}}, diskussionssider fraregnet.",
"compare-invalid-title": "Den titel, du har angivet, er ugyldig.",
"compare-title-not-exists": "Den titel, du har angivet, findes ikke.",
"compare-revision-not-exists": "Den version, du har angivet, findes ikke.",
- "dberr-header": "Wikien har et problem",
"dberr-problems": "Undskyld! Siden har tekniske problemer.",
"dberr-again": "Prøv at vente et par minutter og opdater så siden igen.",
"dberr-info": "(Kan ikke komme i kontakt med databaseserveren: $1)",
"readonly_lag": "Die Datenbank wurde automatisch für Schreibzugriffe gesperrt, damit sich die verteilten Datenbankserver (slaves) mit dem Hauptdatenbankserver (master) abgleichen können.",
"internalerror": "Interner Fehler",
"internalerror_info": "Interner Fehler: $1",
- "fileappenderrorread": "„$1“ konnte während des Hinzufügens nicht gelesen werden.",
- "fileappenderror": "Konnte „$1“ nicht an „$2“ anhängen.",
"filecopyerror": "Die Datei „$1“ konnte nicht nach „$2“ kopiert werden.",
"filerenameerror": "Die Datei „$1“ konnte nicht nach „$2“ umbenannt werden.",
"filedeleteerror": "Die Datei „$1“ konnte nicht gelöscht werden.",
"directorycreateerror": "Das Verzeichnis „$1“ konnte nicht angelegt werden.",
"filenotfound": "Die Datei „$1“ wurde nicht gefunden.",
- "fileexistserror": "In die Datei „$1“ konnte nicht geschrieben werden, da die Datei bereits vorhanden ist.",
"unexpected": "Unerwarteter Wert: „$1“ = „$2“",
"formerror": "Fehler: Die Eingaben konnten nicht verarbeitet werden.",
"badarticleerror": "Diese Aktion kann auf diese Seite nicht angewendet werden.",
"userlogin-helplink2": "Hilfe bei der Anmeldung",
"userlogin-loggedin": "Du bist bereits als {{GENDER:$1|$1}} angemeldet.\nBenutze das unten stehende Formular, um dich unter einem anderen Benutzernamen anzumelden.",
"userlogin-createanother": "Ein weiteres Benutzerkonto erstellen",
- "createacct-join": "Gib unten deine Informationen ein.",
- "createacct-another-join": "Gib unten die Informationen des neuen Benutzerkontos ein.",
"createacct-emailrequired": "E-Mail-Adresse",
"createacct-emailoptional": "E-Mail-Adresse (optional)",
"createacct-email-ph": "Gib deine E-Mail-Adresse ein",
"savearticle": "Seite speichern",
"preview": "Vorschau",
"showpreview": "Vorschau zeigen",
- "showlivepreview": "Sofortige Vorschau",
"showdiff": "Änderungen zeigen",
"anoneditwarning": "Du bearbeitest diese Seite unangemeldet. Wenn du sie abspeicherst, wird deine aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit unwiderruflich '''öffentlich''' einsehbar.",
"anonpreviewwarning": "''Du bist nicht angemeldet. Beim Speichern wird deine IP-Adresse in der Versionsgeschichte aufgezeichnet.''",
"search-nonefound": "Zu deiner Suchanfrage wurden keine Ergebnisse gefunden.",
"powersearch-legend": "Erweiterte Suche",
"powersearch-ns": "Suche in Namensräumen:",
- "powersearch-redir": "Weiterleitungen anzeigen",
"powersearch-togglelabel": "Wähle aus:",
"powersearch-toggleall": "Alle",
"powersearch-togglenone": "Keine",
"prefs-advancedsearchoptions": "Erweiterte Optionen",
"prefs-advancedwatchlist": "Erweiterte Optionen",
"prefs-displayrc": "Anzeigeoptionen",
- "prefs-displaysearchoptions": "Anzeigeoptionen",
"prefs-displaywatchlist": "Anzeigeoptionen",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Versionsvergleich",
"group-bot.js": "/* Das folgende JavaScript wird nur für Bots geladen. */",
"group-sysop.js": "/* Das folgende JavaScript wird nur für Administratoren geladen. */",
"group-bureaucrat.js": "/* Das folgende JavaScript wird nur für Bürokraten geladen. */",
- "notacceptable": "Der Wiki-Server kann die Daten nicht für dein Ausgabegerät aufbereiten.",
"anonymous": "{{PLURAL:$1|Unangemeldeter Benutzer|Unangemeldete Benutzer}} auf {{SITENAME}}",
"siteuser": "{{SITENAME}}-{{GENDER:$2|Benutzer|Benutzerin|Benutzer}} $1",
"anonuser": "Anonymer {{SITENAME}}-Benutzer $1",
"scarytranscludefailed": "[Vorlageneinbindung für $1 ist gescheitert]",
"scarytranscludefailed-httpstatus": "[Vorlagenabruf fehlgeschlagen für $1: HTTP $2]",
"scarytranscludetoolong": "[URL ist zu lang]",
- "deletedwhileediting": "Achtung: Diese Seite wurde gelöscht, nachdem du angefangen hast sie zu bearbeiten!\nIm [{{fullurl:{{#special:Log}}|type=delete&page={{FULLPAGENAMEE}}}} Lösch-Logbuch] findest du den Grund für die Löschung. Wenn du die Seite speicherst, wird sie neu angelegt.",
+ "deletedwhileediting": "Achtung: Diese Seite wurde gelöscht, nachdem du angefangen hast, sie zu bearbeiten!\nIm [{{fullurl:{{#special:Log}}|type=delete&page={{FULLPAGENAMEE}}}} Lösch-Logbuch] findest du den Grund für die Löschung. Wenn du die Seite speicherst, wird sie neu angelegt.",
"confirmrecreate": "Benutzer [[User:$1|$1]] ([[User talk:$1|Diskussion]]) hat diese Seite gelöscht, nachdem du angefangen hast, sie zu bearbeiten. Die Begründung lautete:\n:''$2''\nBitte bestätige, dass du diese Seite wirklich neu erstellen möchten.",
"confirmrecreate-noreason": "Benutzer [[User:$1|$1 ]] ([[User talk:$1|Diskussion]]) hat diese Seite gelöscht, nachdem du mit der Bearbeitung begonnen hast. Bitte bestätige, dass du die Seite wirklich erneut erstellen möchtest.",
"recreate": "Erneut anlegen",
"size-bytes": "$1 Bytes",
"size-megabytes": "$1 MB",
"size-gigabytes": "$1 GB",
- "livepreview-loading": "Lade …",
- "livepreview-ready": "Laden … Fertig!",
- "livepreview-failed": "Die Vorschau kann nicht sofort angezeigt werden!\nBitte nutze die reguläre Vorschau.",
- "livepreview-error": "Verbindung nicht möglich: $1 „$2“. Bitte die normale Vorschau benutzen.",
"lag-warn-normal": "Bearbeitungen der letzten {{PLURAL:$1|Sekunde|$1 Sekunden}} werden in dieser Liste noch nicht angezeigt.",
"lag-warn-high": "Auf Grund hoher Datenbankauslastung werden die Bearbeitungen der letzten {{PLURAL:$1|Sekunde|$1 Sekunden}} noch nicht in dieser Liste angezeigt.",
"watchlistedit-numitems": "Deine Beobachtungsliste enthält {{PLURAL:$1|einen Eintrag|$1 Einträge}}. Die Diskussionsseiten wurden dabei nicht mitgezählt.",
"compare-invalid-title": "Der angegebene Seitenname ist ungültig.",
"compare-title-not-exists": "Der angegebene Seitenname ist nicht vorhanden.",
"compare-revision-not-exists": "Die angegebene Version ist nicht vorhanden.",
- "dberr-header": "Dieses Wiki hat ein Problem",
"dberr-problems": "Entschuldigung. Diese Seite hat momentan technische Schwierigkeiten.",
"dberr-again": "Warte einige Minuten und versuche dann neu zu laden.",
"dberr-info": "(Kann keine Verbindung zum Datenbank-Server herstellen: $1)",
"readonly_lag": "Daegeh (database) otomatikmen kılit bi, sureo ke daegehê bınêni resay daegehê serêni.",
"internalerror": "Xeta zerreki",
"internalerror_info": "Xeta zerreki: $1",
- "fileappenderrorread": "Surey pırakerdene de \"$1\" nêşa bıwaniyo.",
- "fileappenderror": "Dosyayê \"$1\" têyor nêbeno dosyayê \"$2\" ri.",
"filecopyerror": "\"$1\" qaydê na \"$2\" dosya nêbeno.",
"filerenameerror": "nameyê \"$1\" dosya nêvuriya no name \"$2\" ri.",
"filedeleteerror": "Na \"$1\" dosya hewn a nêşi .",
"directorycreateerror": "\"$1\" rêzkiyê ey nêvırazya",
"filenotfound": "Na \"$1\" dosya nêasena.",
- "fileexistserror": "\"$1\" nênusiya dosya re çunke : na dosya ca ra esta",
"unexpected": "Endek texmin nêbeni: \"$1\"=\"$2\".",
"formerror": "Xeta: Form nêerşawiyeno",
"badarticleerror": "Kar ke şıma kenê, qebul nêbi.",
"userlogin-helplink2": "Heqde ronıştışi peşti",
"userlogin-loggedin": "Tı xora namey {{GENDER:$1|$1}} ra kewtê/kewtay cı.\nFormê cêrêni bıgureyne ke namey karberio bin ra cı kewê.",
"userlogin-createanother": "Zewbi hesab vıraz",
- "createacct-join": "Cêr melumatê xo cı ke",
- "createacct-another-join": "Malumata hesabdé ğoye newi dekeré cér.",
"createacct-emailrequired": "Adresa e-postey",
"createacct-emailoptional": "Adresa e-postey (mecburi niya)",
"createacct-email-ph": "Adresa e-posteyê xo cıkewe",
"savearticle": "Pele qeyd ke",
"preview": "Verqayt",
"showpreview": "Verqayti bımocne",
- "showlivepreview": "Verqayto cınde (giyane)",
"showdiff": "Vurnayışan bımocne",
"anoneditwarning": "İqaz!: Şıma be hesabê xo nêkewtê cı. \nAdresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.",
"anonpreviewwarning": "\"Şıma be hesabê xo nêkewtê cı. Eke qeyd kerê, adresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.\"",
"search-nonefound": "Zey perskerdışê şıma netice nêvêniya.",
"powersearch-legend": "Cıgeyrayışo hera",
"powersearch-ns": "Cayanê nameyan de cıgeyrayış:",
- "powersearch-redir": "Listeya hetenayışan",
"powersearch-togglelabel": "Kontrol ke:",
"powersearch-toggleall": "Pêro",
"powersearch-togglenone": "Çıniyo",
"prefs-advancedsearchoptions": "Tercihê raverberdey",
"prefs-advancedwatchlist": "Tercihê raverberdey",
"prefs-displayrc": "Tercihan bımocne",
- "prefs-displaysearchoptions": "Weçinayışê mocnayışi",
"prefs-displaywatchlist": "Weçinayışê mocnayışi",
"prefs-tokenwatchlist": "Morge",
"prefs-diffs": "Ferqi",
"tooltip-summary": "Yew xulasaya kilm binuse",
"interlanguage-link-title": "$1 - $2",
"common.js": "/* Any JavaScript here will be loaded for all users on every page load. */",
- "notacceptable": "formatê ma'lumati no peşkeşwanê wikiyi nêweniyeno.",
"anonymous": "{{PLURAL:$1|karberê|karberê}} anonimi yê keyepelê {{SITENAME}}i",
"siteuser": "karberê {{SITENAME}}i $1",
"anonuser": "karberê anonim o {{SITENAME}}i $1",
"bitrate-exabits": "$1Ebps",
"bitrate-zetabits": "$1Zbps",
"bitrate-yottabits": "$1Ybps",
- "livepreview-loading": "Ho bar keni...",
- "livepreview-ready": "Ho bar keni... Hezir o!",
- "livepreview-failed": "Verqeyd nibiyo! Verqeydo normal deneme bike.",
- "livepreview-error": "Nieşken giredayi biy: $1 \"$2\".\nVerqeydo normal deneme bike.",
"lag-warn-normal": "Vurnayîşî ke {{PLURAL:$1|seniye|seniyeyî}} ra newiyerî belki inan nimucneno.",
"lag-warn-high": "Eka serverê databaseyî zaf hebitiyeno, ayra vurnayîşî ke {{PLURAL:$1|seniye|seniyeyî}} ra newiyerî belki inan nimucneno.",
"watchlistedit-numitems": "Listeyê seyirkerdişi ti de {{PLURAL:$1|1 title|$1 titles}} esta, feqet pelayanê minaqeşeyan dahil niyê.",
"compare-invalid-title": "Sernameyo ke şımayê vanê ravêrde niyo.",
"compare-title-not-exists": "Sernameyo ke şımayê vanê mewcud niyo.",
"compare-revision-not-exists": "Revizyono ke şımaye vanê mewcud niyo.",
- "dberr-header": "Ena Wiki de yew ğelet esta",
"dberr-problems": "Mayê muxulêm! Ena sita dı newke xırabiya teknik esta.",
"dberr-again": "Yew di dekika vinder u hin bar bike.",
"dberr-info": "(Erzmelumati ra xızmetkari nêreseno: $1)",
"tog-hidepatrolled": "Lisoko idit tinamangan ih wagu kaalanai",
"tog-newpageshidepatrolled": "Lisoko bolikon tinamangan mantad lis bolikon kawawagu",
"tog-extendwatchlist": "Pointongo koinsanai listamangan do popokito koinsanai pinongundolihon, okon ko iri kawawagu nopo",
- "tog-usenewrc": "Tinimungan nopingalanan maya bobolikon ii wagu kaalanai om lispintangan (momoguno JawaSikrip)",
+ "tog-usenewrc": "Tinimungan nopingalanan maya bobolikon ii wagu kaalanai om lispintangan",
"tog-numberheadings": "oporian-mongonumbur it tuluhon",
- "tog-showtoolbar": "Pokitono kakamotbar mongidit (momoguno JawaSikrip)",
- "tog-editondblclick": "Idito bolikon momoguno induaan todos (momoguno JawaSikrip)",
- "tog-editsectiononrightclick": "Pabanaro sikson mongidit momoguno todos golibang id sikson tuluon (momoguno JawaSikrip)",
- "tog-rememberpassword": "Soroho ot loginku id popogihuman diti (gisom solinaid do $1 {{PLURAL:$1|tadau|madau}})",
+ "tog-showtoolbar": "Pokitono kakamotbar mongidit",
+ "tog-editondblclick": "Idito bolikon momoguno induaan todos",
+ "tog-editsectiononrightclick": "Pabanaro sikson mongidit momoguno todos golibang id sikson tuluon",
"tog-watchcreations": "Ruhangai bolikon di winonsoiku om nogi pail pinosuangku id lisintanganku",
"tog-watchdefault": "Ruhangai bolikon om tangapail di niditku id lisintanganku",
"tog-watchmoves": "Ruhangai bolikon om tangapail di pinawalihku id lisintanganku.",
"tog-shownumberswatching": "Pokitono ginumu do momomoguno minongintong",
"tog-oldsig": "Sain poinsandad:",
"tog-fancysig": "Pokitono sain sobaagi do tikwiki (ingaa oporian toput )",
- "tog-uselivepreview": "Momoguno pongingintong poimpasi (momoguno JawaSikrip) (pogumbalan)",
+ "tog-uselivepreview": "Momoguno pongingintong poimpasi(pogumbalan)",
"tog-forceeditsummary": "Posoroho oku no nung awu nosuangan kutak koinibaan niditan",
"tog-watchlisthideown": "Polisoko niditanku mantad do lis piintangan",
"tog-watchlisthidebots": "Polisoko niditan rinobot mantad do lis pintangan",
"tog-diffonly": "Kada pokitono suang bobolikon id siriba tongodip",
"tog-showhiddencats": "Pokitono katogori poinlisok",
"tog-norollbackdiff": "Yadaai dip opongoh po do poturug-guli",
+ "tog-useeditwarning": "Poingato oku soira mongiduan dii bobolikon nopingalanan nga awu poh nokoopi",
+ "tog-prefershttps": "Toririmo do momoguno noputan di otingolig soira do sumuang log",
"underline-always": "Toririmo",
"underline-never": "Kada",
"underline-default": "Kourasai pogigihum sandad",
"oct": "Mas",
"nov": "Lau",
"dec": "Hau",
+ "january-date": "Milatok $1",
+ "february-date": "Mansak $1",
+ "march-date": "Gomot $1",
+ "april-date": "Ngiop $1",
+ "may-date": "Mikat $1",
+ "june-date": "Lumahas $1",
+ "july-date": "Madas $1",
+ "august-date": "Magus $1",
+ "september-date": "Manom $1",
+ "october-date": "Gumas $1",
+ "november-date": "Milau $1",
+ "december-date": "Momuhau $1",
"pagecategories": "{{PLURAL:$1|Katogori|Katogori}}",
"category_header": "Bobolikon id kalas \"$1\"",
"subcategories": "Kawo do kalas",
"newwindow": "(ukabai id liligaon wagu)",
"cancel": "Kinsilo",
"moredotdotdot": "Gumu...",
- "morenotlisted": "Susuai poh ii awu nokosurat...",
+ "morenotlisted": "Lis diti awu poh nogonop.",
"mypage": "Bolikon",
"mytalk": "Pogibabarasan",
"anontalk": "Piboros montok diti nantadon IP",
"permalink": "Toput pointatap",
"print": "Pirino",
"view": "Intaai",
+ "view-foreign": "Pongitanan id $1",
"edit": "Idito",
+ "edit-local": "Idito katarangan",
"create": "Pomonsoi",
+ "create-local": "Ruhangai katarangan",
"editthispage": "Idito iti bolikon",
"create-this-page": "Pudoliai iti bolikon",
"delete": "Pugaso",
"deletethispage": "Pugaso iti bolikon",
+ "undeletethispage": "Kada pugaso iti bolikon",
"undelete_short": "Kada pugaso {{PLURAL:$1|iso niditan|$1 niniditan}}",
"viewdeleted_short": "Intaai {{PLURAL:$1|iso niditan pinugas|$1 niniditan pinugas}}",
"protect": "Tingoligai",
"articlepage": "Intaai suang bolikon",
"talk": "Pogigibarasan",
"views": "Pongintangan",
- "toolbox": "Kabankamot",
+ "toolbox": "Tangakakamot",
"userpage": "Intaai bolikon momomoguno",
"projectpage": "Intaai bolikon purujik",
"imagepage": "Intaai bolikon pail",
"pool-errorunknown": "Ukam nosilap",
"aboutsite": "Kokomoi {{SITENAME}}",
"aboutpage": "Project:Kokomoi",
- "copyright": "Suang di haro do kokomoi $1.",
+ "copyright": "Suang di haro do kokomoi $1 suai ko poinsolimpad nokomoi.",
"copyrightpage": "{{ns:project}}:Sanganuwonsoi",
"currentevents": "Poimpanau po",
"currentevents-url": "Project:Poimpanau poh",
"youhavenewmessages": "Kiharo $1 montok dia ($2).",
"youhavenewmessagesfromusers": "Nakaramit ko do $1 mantad {{PLURAL:$3|momomoguno suai|$3 tongomomomoguno}} ($2).",
"youhavenewmessagesmanyusers": "Nakaramit koh do $1 mantad do tongomomomoguno ($2).",
- "newmessageslinkplural": "{{PLURAL:$1|pason kawawagu|tangapason kawawagu}}",
- "newmessagesdifflinkplural": "dohuri do {{PLURAL:$1|naalanan|nopingalanan}}",
+ "newmessageslinkplural": "{{PLURAL:$1|pason kawawagu|999=tangapason kawawagu}}",
+ "newmessagesdifflinkplural": "dohuri do {{PLURAL:$1|naalanan|999=nopingalanan}}",
"youhavenewmessagesmulti": "Kipason kawawagu montok dia id $1",
"editsection": "idito",
"editold": "idito",
"nospecialpagetext": "<strong>Nokopokianu ko diri bolikon pinatantu poinsilap.</strong>\n\nLis pointopot bobolikon pinatantu okito id [[Special:SpecialPages|{{int:specialpages}}]].",
"error": "Nosilopan",
"databaseerror": "Nakasala databing",
+ "databaseerror-query": "Timuhot: $1",
+ "databaseerror-function": "Gunoon: $1",
+ "databaseerror-error": "Silap: $1",
"laggedslavemode": "'''Panansarahan:''' Awu moti kaanto nopinwoguan suang do bolikon diti.",
"readonly": "Nokunsian databing",
"enterlockreason": "Posuango sabab do mongunsi, poobion do gisom soira oukaban kunsi",
"readonly_lag": "Databing noporianan nokokunsi daamot do databing mamalayan kumoduo mongogusa dilo kumoiso",
"internalerror": "Kinosilapan poinsuang",
"internalerror_info": "Kinosilapan poinsuang: $1",
- "fileappenderrorread": "Awu abasa \"$1\" maso pinapaapil.",
- "fileappenderror": "Awu kapaapil \"$1\" mongoi \"$2\".",
"filecopyerror": "Awu kadalin pail \"$1\" gisom \"$2\".",
"filerenameerror": "Awu nopingaranan pail \"$1\" mongoi \"$2\".",
"filedeleteerror": "Awu nopugas pail \"$1\".",
"directorycreateerror": "Awu kowonsoi pailtuduk \"$1\".",
"filenotfound": "Awu oihum pail \"$1\"",
- "fileexistserror": "Awu kasaga do monurat pail \"$1\": kipail noh",
"unexpected": "Awu nopoimanan gatang: \"$1\"=\"$2\".",
"formerror": "Silap: awu kapaatod pom",
"badarticleerror": "Awu milo momonsoi dino id bolikon diti.",
"cannotdelete": "Iti bolikon toi pail \"$1\" awu milo pugason.\nNopugas no kaanto do tulun suai.",
"cannotdelete-title": "Awu milo pugason bolikon \"$1\"",
"delete-hook-aborted": "Niditan pinaratu do kakait.\nIngaa kointalangan narait.",
+ "no-null-revision": "Awu kopomudali sinimakan null kawawagu montok bolikon \"$1\"",
"badtitle": "Sosomu tuluhon",
"badtitletext": "Tuluhon bobolikon di pinokianu nopo nga nokosilap, aiso, nakasala pinioputan boros toi pinioputan tuluhon wiki.\nHaro kaanto sokukuri do iso pimato it awu milo gunoon id pongkotuluhon.",
"perfcached": "Data sumusuhut namadangkob om okon ko noinwoguan. Sokiginumu do {{PLURAL:$1|iso asil|$1 tangahasil nopo nga}} haro id dangkob diti.",
"namespaceprotected": "Ingaa kasagaannu do mongidit bobolikon it kinoingaran '''$1'''.",
"customcssprotected": "Ingaa kasagaannu do mongidit diti bolikon CSS, tu kisuang ponguludan minsosondiri momoguno.",
"customjsprotected": "Ingaa kasagaannu do mongidit diti bolikon JavaScript, tu kisuang ponguludan minsosondiri momoguno.",
+ "mycustomcssprotected": "Ingaa kasagaannu do monimban diti bobolikon CSS.",
+ "mycustomjsprotected": "Ingaa kasagaannu do monimban diti bilikon Javascript.",
+ "myprivateinfoprotected": "Ingaa kasagaannu do monimban diti kointalangan minsosondirinu.",
+ "mypreferencesprotected": "Ingaa kasagaannu do monimban diti komoisaannu.",
"ns-specialprotected": "Bolikon pinotontu awu milo iditon.",
"titleprotected": "Notingoligan tuluhon diti mantad wonsoyon do [[User:$1|$1]].\nSasabab no do \"''$2''\".",
"filereadonlyerror": "Awu milo do simbanan pail \"$1\" tu pinogompi iti pail \"$2\" id mud do basaon noh tomod.\n\nMongungulud di minongunsi pinopointalang do kointalangan diti: \"$3\".",
"invalidtitle-knownnamespace": "Pogoduhan tuluhon kiruangaran \"$2\" om tiik \"$3\"",
"invalidtitle-unknownnamespace": "Pogoduhan tuluhon it awu ointutunan ruangaran numbur $1 om tiik \"$2\"",
"exception-nologin": "Amu nokolog sumuang",
- "exception-nologin-text": "Bolikon diti toi koimaan diti mumang do sumuang log koh id wiki diti.",
+ "exception-nologin-text": "Mangai [[Special:Userlogin|log in]] kaanu koh do minwaya id wiki diti.",
"virus-badscanner": "Araat kinooturon: Awu otutunan pongkowili giuk: ''$1''",
"virus-scanfailed": "nolibai pongkowili (code $1)",
"virus-unknownscanner": "tantobgiuk awu otutunan:",
"savearticle": "Umoligai bolikon",
"preview": "Kokitanan",
"showpreview": "Pokitono pongintangan",
- "showlivepreview": "Kokitanan monilombus",
"showdiff": "Pokitono nokowolion",
"anoneditwarning": "'''Woning:''' Awu ko poinlog sumuang.\nNantadon IPnu maan podolino id susuyan bolikon nidit do hiti.",
"anonpreviewwarning": "''Awu ko poinsuang log. Popogompi do sinuratan koponurat do kinoyonon IPnu id bobolikon susuyan niditan.''",
"search-nonefound": "Ingaa kootuson kaagal di kuiri.",
"powersearch-legend": "Pogigihum poimogot",
"powersearch-ns": "Pogihum momoguno ngaran:",
- "powersearch-redir": "Liniisan nopotilombus",
"powersearch-togglelabel": "Imuriai:",
"powersearch-toggleall": "Oinsanan",
"powersearch-togglenone": "Ingaa",
"prefs-advancedsearchoptions": "Pomilian pointilombus",
"prefs-advancedwatchlist": "Pomilian pointilombus",
"prefs-displayrc": "Pomilian pongitanan",
- "prefs-displaysearchoptions": "Pomilian pongitanan",
"prefs-displaywatchlist": "Pomilian pongitanan",
"prefs-diffs": "Pisuaian",
"email-address-validity-valid": "Porikatan surat-i asaah",
"readonly_lag": "Al databêş l'é stê bluchê in avtomàtich per permèter a i terminêl cun al databêş schiêv ed mètres in pâs cun al master",
"internalerror": "Erōr intêren",
"internalerror_info": "Erōr intêren: $1",
- "fileappenderrorread": "An n'é mìa stê pusébil lēşer \"$1\" mèinter es fêva la zûnta.",
- "fileappenderror": "An n'é mìa pusébil zuntêr \"$1\" a \"$2\".",
"filecopyerror": "An n'é mìa pusébil cupiêr al file \"$1\" in \"$2\".",
"filerenameerror": "An n'é mìa pusébil cambiêr al nòm ed \"$1\" in \"$2\".",
"filedeleteerror": "An n'é mìa pusébil scanşlêr al file \"$1\".",
"directorycreateerror": "An n'é mìa pusébil fêr la directory \"$1\".",
"filenotfound": "An n'é mìa pusébil catêr al file \"$1\".",
- "fileexistserror": "An n'é mìa pusébil scréver al file \"$1\": al file al gh'é bèle.",
"unexpected": "Valōr mìa pervést \"$1\"=\"$2\".",
"formerror": "Erōr: an n'é ma pusébil spidîr al môdul.",
"badarticleerror": "Operasiòun mìa permésa per cla pàgina ché.",
"userlogin-helplink2": "Ajót per l'ingrès",
"userlogin-loggedin": "T'ét bèle coleghê {{GENDER:$1|$1}}. \nDrōva al mōdul ché sòta cme un êter utèint.",
"userlogin-createanother": "Fà 'n' êtra utèinsa.",
- "createacct-join": "Mèt dèinter al tō infurmasiòun ché sòta.",
- "createacct-another-join": "Mèt dèinter al j infurmasiòun per la registrasiòun ché sòta.",
"createacct-emailrequired": "Indirés pôsta eletrônica",
"createacct-emailoptional": "Indirés pôsta eletrônica (se 's vōl)",
"createacct-email-ph": "Scrév al tó indirés ed pôsta eletrônica",
"savearticle": "Sêlva la pàgina",
"preview": "Guêrda préma",
"showpreview": "Guêrda préma 'd salvêr",
- "showlivepreview": "Guêrda préma diretamèint",
"showdiff": "Guêrda i cambiamèint",
"anoneditwarning": "'''Atensiòun:''' Ingrès mìa fât. Al tó indirés IP al srà sgnê int la stòria ed cla pàgina chè.",
"anonpreviewwarning": "\"An n'é mìa stê fât l'ingrès. Mèinter es sêlva la pàgina, l'indirés IP al srà sgnê int la stòria 'd la pàgina.\"",
"readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους servers των αντιγράφων της βάσης δεδομένων (slaves) να καλύψουν τη διαφορά με τον κεντρικό server του πρωτοτύπου της βάσης (master).",
"internalerror": "Εσωτερικό σφάλμα",
"internalerror_info": "Εσωτερικό σφάλμα: $1",
- "fileappenderrorread": "Δεν ήταν δυνατή η ανάγνωση του «$1» κατά τη διάρκεια της επισύναψης.",
- "fileappenderror": "Δεν ήταν δυνατή η προσάρτηση του αρχείου «$1» στο «$2».",
"filecopyerror": "Δεν ήταν δυνατή η αντιγραφή του αρχείου «$1» στο «$2».",
"filerenameerror": "Δεν είναι δυνατή η μετονομασία του αρχείου «$1» σε «$2».",
"filedeleteerror": "Δεν ήταν δυνατή η διαγραφή του αρχείου «$1».",
"directorycreateerror": "Δεν μπορούσε να δημιουργηθεί η κατηγορία «$1».",
"filenotfound": "Δεν είναι δυνατή η ανεύρεση του αρχείου «$1».",
- "fileexistserror": "Αδύνατον να εγγραφεί στο αρχείο «$1»: το αρχείο υπάρχει",
"unexpected": "Μη προσδοκώμενη τιμή: «$1»=«$2».",
"formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας!",
"badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί στη συγκεκριμένη σελίδα.",
"userlogin-resetpassword-link": "Ξεχάσατε τον κωδικό πρόσβασης;",
"userlogin-loggedin": "Είστε ήδη {{GENDER:$1|συνδεδεμένος|συνδεδεμένη}} ως $1.\nΧρησιμοποιήστε την παρακάτω φόρμα για να συνδεθείτε ως άλλος χρήστης.",
"userlogin-createanother": "Δημιουργήσετε έναν άλλο λογαριασμό",
- "createacct-join": "Εισάγετε τα στοιχεία σας παρακάτω.",
- "createacct-another-join": "Εισάγετε τα στοιχεία του νέου λογαριασμού παρακάτω.",
"createacct-emailrequired": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
"createacct-emailoptional": "Διεύθυνση ηλεκτρονικού ταχυδρομείου (προαιρετικό)",
"createacct-email-ph": "Εισάγετε το email σας",
"savearticle": "Αποθήκευση σελίδας",
"preview": "Προεπισκόπηση",
"showpreview": "Εμφάνιση προεπισκόπησης",
- "showlivepreview": "Άμεση προεπισκόπιση",
"showdiff": "Εμφάνιση αλλαγών",
"anoneditwarning": "'''Προειδοποίηση:''' Δεν έχετε συνδεθεί. Η διεύθυνση IP σας θα καταγραφεί στο ιστορικό επεξεργασίας αυτής της σελίδας.",
"anonpreviewwarning": "''Δεν έχετε συνδεθεί. Η αποθήκευση θα καταγράψει την διεύθυνσή IP σας στο ιστορικό επεξεργασίας αυτής της σελίδας.''",
"search-nonefound": "Δεν υπάρχουν αποτελέσματα που να ικανοποιούν το ερώτημα.",
"powersearch-legend": "Αναλυτική αναζήτηση",
"powersearch-ns": "Αναζήτηση στις περιοχές ονομάτων:",
- "powersearch-redir": "Κατάλογος ανακατευθύνσεων",
"powersearch-togglelabel": "Έλεγχος:",
"powersearch-toggleall": "Όλες",
"powersearch-togglenone": "Καμία",
"prefs-advancedsearchoptions": "Προηγμένες επιλογές",
"prefs-advancedwatchlist": "Προηγμένες επιλογές",
"prefs-displayrc": "Εμφάνιση επιλογών",
- "prefs-displaysearchoptions": "Επιλογές εμφάνισης",
"prefs-displaywatchlist": "Επιλογές εμφάνισης",
"prefs-tokenwatchlist": "Κλειδί",
"prefs-diffs": "Διαφορές",
"monobook.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το MonoBook skin */",
"modern.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το Modern skin */",
"vector.js": "/* Οποιοσδήποτε κώδικας JavaScript εδώ θα φορτωθεί για χρήστες που χρησιμοποιούν το Vector skin */",
- "notacceptable": "Ο server του Wiki δεν μπορεί να αποδώσει δεδομένα σε μορφή που να μπορεί να διαβάσει ο client σας.",
"anonymous": "{{PLURAL:$1|Ανώνυμος χρήστης|Ανώνυμοι χρήστες}} του {{SITENAME}}",
"siteuser": "{{SITENAME}} χρήστης $1",
"anonuser": "ανώνυμος χρήστης $1 του {{SITENAME}}",
"autosumm-replace": "Αντικατάσταση σελίδας με '$1'",
"autoredircomment": "Ανακατεύθυνση στη σελίδα [[$1]]",
"autosumm-new": "Νέα σελίδα με '$1'",
- "livepreview-loading": "Φόρτωση…",
- "livepreview-ready": "Φόρτωση… Έτοιμο!",
- "livepreview-failed": "Η άμεση προεπισκόπηση απέτυχε!\nΔοκιμάστε την κανονική προεπισκόπηση.",
- "livepreview-error": "Αποτυχία σύνδεσης: $1 \"$2\"\nΔοκιμάστε την κανονική προεπισκόπηση.",
"lag-warn-normal": "Αλλαγές νεότερες από {{PLURAL:$1|δευτερόλεπτο|δευτερόλεπτα}} μπορεί να μην φαίνονται σε αυτή τη λίστα.",
"lag-warn-high": "Εξαιτίας υψηλής καθυστέρησης της βάσης δεδομένων του εξυπηρετητή, αλλαγές νεότερες από $1 {{PLURAL:$1|δευτερόλεπτο|δευτερόλεπτα}} μπορεί να μην φαίνονται σε αυτή τη λίστα.",
"watchlistedit-numitems": "Η λίστα παρακολούθησής σας περιέχει {{PLURAL:$1|1 σελίδα|$1 σελίδες}}, χωρίς να συμπεριλαμβάνονται οι σελίδες συζήτησης.",
"compare-invalid-title": "Ο τίτλος που καθορίσατε δεν είναι έγκυρος.",
"compare-title-not-exists": "Ο τίτλος που καθορίσατε δεν υπάρχει.",
"compare-revision-not-exists": "Η αναθεώρηση που καθορίσατε δεν υπάρχει.",
- "dberr-header": "Αυτό το wiki έχει πρόβλημα",
"dberr-problems": "Λυπούμαστε! Αυτός ο ιστότοπος αντιμετωπίζει τεχνικές δυσκολίες.",
"dberr-again": "Δοκιμάστε να περιμενένετε λίγα λεπτά και να ανανεώσετε.",
"dberr-info": "(Δεν μπορεί να επικοινωνήσει με τον εξυπηρετητή της βάσης δεδομένων: $1)",
"readonly_lag": "The database has been automatically locked while the slave database servers catch up to the master",
"internalerror": "Internal error",
"internalerror_info": "Internal error: $1",
- "fileappenderrorread": "Could not read \"$1\" during append.",
- "fileappenderror": "Could not append \"$1\" to \"$2\".",
"filecopyerror": "Could not copy file \"$1\" to \"$2\".",
"filerenameerror": "Could not rename file \"$1\" to \"$2\".",
"filedeleteerror": "Could not delete file \"$1\".",
"directorycreateerror": "Could not create directory \"$1\".",
"filenotfound": "Could not find file \"$1\".",
- "fileexistserror": "Unable to write to file \"$1\": File exists.",
"unexpected": "Unexpected value: \"$1\"=\"$2\".",
"formerror": "Error: Could not submit form.",
"badarticleerror": "This action cannot be performed on this page.",
"userlogin-helplink2": "Help with logging in",
"userlogin-loggedin": "You are already logged in as {{GENDER:$1|$1}}.\nUse the form below to log in as another user.",
"userlogin-createanother": "Create another account",
- "createacct-join": "Enter your information below.",
- "createacct-another-join": "Enter the new account's information below.",
"createacct-emailrequired": "Email address",
"createacct-emailoptional": "Email address (optional)",
"createacct-email-ph": "Enter your email address",
"savearticle": "Save page",
"preview": "Preview",
"showpreview": "Show preview",
- "showlivepreview": "Live preview",
"showdiff": "Show changes",
"anoneditwarning": "<strong>Warning:</strong> You are not logged in.\nYour IP address will be recorded in this page's edit history.",
"anonpreviewwarning": "<em>You are not logged in. Saving will record your IP address in this page's edit history.</em>",
"search-nonefound": "There were no results matching the query.",
"powersearch-legend": "Advanced search",
"powersearch-ns": "Search in namespaces:",
- "powersearch-redir": "List redirects",
"powersearch-togglelabel": "Check:",
"powersearch-toggleall": "All",
"powersearch-togglenone": "None",
"prefs-advancedsearchoptions": "Advanced options",
"prefs-advancedwatchlist": "Advanced options",
"prefs-displayrc": "Display options",
- "prefs-displaysearchoptions": "Display options",
"prefs-displaywatchlist": "Display options",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Diffs",
"watchlist-details": "{{PLURAL:$1|$1 page|$1 pages}} on your watchlist, not separately counting talk pages.",
"wlheader-enotif": "Email notification is enabled.",
"wlheader-showupdated": "Pages that have been changed since you last visited them are shown in <strong>bold</strong>.",
- "watchmethod-recent": "checking recent edits for watched pages",
- "watchmethod-list": "checking watched pages for recent edits",
- "watchlistcontains": "Your watchlist contains $1 {{PLURAL:$1|page|pages}}.",
- "iteminvalidname": "Problem with item \"$1\", invalid name...",
"wlnote2": "Below are the changes in the last {{PLURAL:$1|hour|<strong>$1</strong> hours}}, as of $2, $3.",
"wlshowlast": "Show last $1 hours $2 days $3",
"watchlist-options": "Watchlist options",
"group-bot.js": "/* Any JavaScript here will be loaded for bots only */",
"group-sysop.js": "/* Any JavaScript here will be loaded for sysops only */",
"group-bureaucrat.js": "/* Any JavaScript here will be loaded for bureaucrats only */",
- "notacceptable": "The wiki server cannot provide data in a format your client can read.",
"anonymous": "Anonymous {{PLURAL:$1|user|users}} of {{SITENAME}}",
"siteuser": "{{SITENAME}} user $1",
"anonuser": "{{SITENAME}} anonymous user $1",
"bitrate-exabits": "$1 Ebps",
"bitrate-zetabits": "$1 Zbps",
"bitrate-yottabits": "$1 Ybps",
- "livepreview-loading": "Loading...",
- "livepreview-ready": "Loading... Ready!",
- "livepreview-failed": "Live preview failed!\nTry normal preview.",
- "livepreview-error": "Failed to connect: $1 \"$2\".\nTry normal preview.",
"lag-warn-normal": "Changes newer than $1 {{PLURAL:$1|second|seconds}} may not be shown in this list.",
"lag-warn-high": "Due to high database server lag, changes newer than $1 {{PLURAL:$1|second|seconds}} may not be shown in this list.",
"editwatchlist-summary": "",
- "watchlistedit-numitems": "Your watchlist contains {{PLURAL:$1|1 title|$1 titles}}, excluding talk pages.",
- "watchlistedit-noitems": "Your watchlist contains no titles.",
"watchlistedit-normal-title": "Edit watchlist",
"watchlistedit-normal-legend": "Remove titles from watchlist",
"watchlistedit-normal-explain": "Titles on your watchlist are shown below.\nTo remove a title, check the box next to it, and click \"{{int:Watchlistedit-normal-submit}}\".\nYou can also [[Special:EditWatchlist/raw|edit the raw list]].",
"compare-invalid-title": "The title you specified is invalid.",
"compare-title-not-exists": "The title you specified does not exist.",
"compare-revision-not-exists": "The revision you specified does not exist.",
- "dberr-header": "This wiki has a problem",
"dberr-problems": "Sorry! This site is experiencing technical difficulties.",
"dberr-again": "Try waiting a few minutes and reloading.",
"dberr-info": "(Cannot contact the database server: $1)",
"readonly_lag": "La datumbazo estis aŭtomate ŝlosita dum la subdatumbazo atingas la ĉefan datumbazon.",
"internalerror": "Interna eraro",
"internalerror_info": "Interna eraro: $1",
- "fileappenderrorread": "Ne eblis legi \"$1\" dum postaldonado.",
- "fileappenderror": "Ne eblis postaldoni \"$1\" al \"$2\".",
"filecopyerror": "Ne povis kopii dosieron \"$1\" al \"$2\".",
"filerenameerror": "Ne eblis alinomigi dosieron \"$1\" al \"$2\".",
"filedeleteerror": "Neeblis forigi dosieron \"$1\".",
"directorycreateerror": "Ne povis krei dosierujon \"$1\".",
"filenotfound": "Ne eblis trovi dosieron \"$1\".",
- "fileexistserror": "Ne povas skribi en la dosieron \"$1\": dosiero ekzistas",
"unexpected": "Neatendita valoro: \"$1\"=\"$2\".",
"formerror": "Eraro: ne eblis liveri formulon",
"badarticleerror": "Tiun ĉi agon oni ne povas apliki al tiu ĉi artikolo.",
"userlogin-helplink2": "Helpo pri ensaluto",
"userlogin-loggedin": "Vi jam estas ensalutita kiel {{GENDER:$1|$1}}.\nUzu la formularon suben por ensaluti kiel alia uzanto.",
"userlogin-createanother": "Krei alian konton",
- "createacct-join": "Suben enigu informojn pri vi",
- "createacct-another-join": "Enigu la informon de la nova konto suben.",
"createacct-emailrequired": "Retpoŝta adreso",
"createacct-emailoptional": "Retpoŝta adreso (nedeviga)",
"createacct-email-ph": "Enigu vian retpoŝtan adreson",
"savearticle": "Konservi ŝanĝojn",
"preview": "Antaŭrigardo",
"showpreview": "Antaŭrigardo",
- "showlivepreview": "Aktiva antaŭvido",
"showdiff": "Montri ŝanĝojn",
"anoneditwarning": "'''Averto:''' Vi ne estas ensalutinta.\nVia IP-adreso enregistriĝos en la redakta historio de tiu ĉi paĝo.",
"anonpreviewwarning": "''Vi ne estas ensalutita. La konservo de la paĝo registros vian IP-adreson en redakta historio de ĉi tiu paĝo.''",
"search-nonefound": "La serĉomendo rezultis kun neniuj trafoj.",
"powersearch-legend": "Progresa serĉo",
"powersearch-ns": "Serĉi en nomspacoj:",
- "powersearch-redir": "Listigi alidirektilojn",
"powersearch-togglelabel": "Elekti:",
"powersearch-toggleall": "Ĉion",
"powersearch-togglenone": "Nenion",
"prefs-advancedsearchoptions": "Progresaj opcioj",
"prefs-advancedwatchlist": "Progresaj opcioj",
"prefs-displayrc": "Montraj opcioj",
- "prefs-displaysearchoptions": "Montraj opcioj",
"prefs-displaywatchlist": "Montraj opcioj",
"prefs-tokenwatchlist": "Ĵetono",
"prefs-diffs": "Diferencoj",
"group-bot.js": "/* La jena Ĝavaskripto sole ŝargiĝos por robotoj. */",
"group-sysop.js": "/* La jena Ĝavaskripto sole ŝargiĝos por administrantoj. */",
"group-bureaucrat.js": "/* La jena Ĝavaskripto sole ŝargiĝos por burokratoj. */",
- "notacceptable": "La viki-servilo ne povas doni datumon en formato kiun via kliento povas legi.",
"anonymous": "{{PLURAL:$1|Anonima uzanto|Anonimaj uzantoj}} de {{SITENAME}}",
"siteuser": "{{SITENAME}} uzanto $1",
"anonuser": "{{SITENAME}}-anonimulo $1",
"autosumm-replace": "Anstataŭigis paĝon per '$1'",
"autoredircomment": "Alidirektigis al [[$1]]",
"autosumm-new": "Nova paĝo kun '$1'",
- "livepreview-loading": "Ŝarĝante...",
- "livepreview-ready": "Ŝarĝante… Prete!",
- "livepreview-failed": "Aktiva antaŭvido malsukcesis! Provu normalan antaŭvidon.",
- "livepreview-error": "Malsukcesis konekti: $1 \"$2\". Provu norman antaŭvidon.",
"lag-warn-normal": "Ŝanĝoj pli novaj ol $1 {{PLURAL:$1|sekundo|sekundoj}} eble ne estos montrataj en ĉi tiu listo.",
"lag-warn-high": "Pro malrapideco de la servila datumbazo, ŝanĝoj pli novaj ol $1 {{PLURAL:$1|sekundo|sekundoj}} eble ne montriĝos en ĉi tiu listo.",
"watchlistedit-numitems": "Via atentaro enhavas {{PLURAL:$1|1 titolon|$1 titolojn}}, escepte de diskuto-paĝoj.",
"compare-invalid-title": "La titolo kiun vi enmetis estas malvalida.",
"compare-title-not-exists": "La titolo kiun vi specifis ne ekzistas.",
"compare-revision-not-exists": "La revizio kiun vi specifis ne ekzistas.",
- "dberr-header": "Ĉi tiu vikio havas problemon",
"dberr-problems": "Bedaŭrinde, ĉi tiu retejo suferas pro teknikaj problemoj.",
"dberr-again": "Bonvolu atendi kelkajn minutojn kaj reŝargi.",
"dberr-info": "(Ne eblas kontakti la datenbazan servilon: $1)",
"readonly_lag": "La base de datos se ha bloqueado temporalmente mientras los servidores se sincronizan.",
"internalerror": "Error interno",
"internalerror_info": "Error interno: $1",
- "fileappenderrorread": "No se ha podido leer «$1» durante la anexión.",
- "fileappenderror": "No se ha podido añadir «$1» a «$2».",
"filecopyerror": "No se pudo copiar el archivo «$1» a «$2».",
"filerenameerror": "No se pudo renombrar el archivo «$1» a «$2».",
"filedeleteerror": "No se pudo borrar el archivo «$1».",
"directorycreateerror": "No se pudo crear el directorio «$1».",
"filenotfound": "No se pudo encontrar el archivo «$1».",
- "fileexistserror": "No se pudo escribir en el archivo «$1»: el archivo existe.",
"unexpected": "Valor inesperado: «$1»=«$2».",
"formerror": "Error: no se pudo enviar el formulario",
"badarticleerror": "Esta acción no se puede llevar a cabo en esta página.",
"userlogin-helplink2": "Ayuda con el registro",
"userlogin-loggedin": "Ya estás conectado como {{GENDER:$1|$1}}.\nUsa el formulario de abajo para iniciar sesión como otro usuario.",
"userlogin-createanother": "Crear otra cuenta",
- "createacct-join": "Introduce tus datos debajo.",
- "createacct-another-join": "Escribe la información de la cuenta nueva a continuación.",
"createacct-emailrequired": "Dirección de correo electrónico",
"createacct-emailoptional": "Dirección de correo electrónico (opcional)",
"createacct-email-ph": "Escribe tu dirección de correo electrónico",
"savearticle": "Guardar la página",
"preview": "Previsualizar",
"showpreview": "Mostrar previsualización",
- "showlivepreview": "Previsualización dinámica",
"showdiff": "Mostrar los cambios",
"anoneditwarning": "'''Aviso:''' No has iniciado sesión con una cuenta de usuario.\nTu dirección IP se almacenará en el historial de ediciones de la página.",
"anonpreviewwarning": "''No has iniciado sesión con una cuenta de usuario. Al guardar los cambios se almacenará tu dirección IP en el historial de edición de la página.''",
"search-nonefound": "No hay resultados que cumplan los criterios de búsqueda.",
"powersearch-legend": "Búsqueda avanzada",
"powersearch-ns": "Buscar en los espacios de nombres:",
- "powersearch-redir": "Listar redirecciones",
"powersearch-togglelabel": "Seleccionar:",
"powersearch-toggleall": "Todos",
"powersearch-togglenone": "Ninguno",
"prefs-advancedsearchoptions": "Opciones avanzadas",
"prefs-advancedwatchlist": "Opciones avanzadas",
"prefs-displayrc": "Opciones de mostrado",
- "prefs-displaysearchoptions": "Opciones de visualización",
"prefs-displaywatchlist": "Opciones de visualización",
"prefs-tokenwatchlist": "Clave",
"prefs-diffs": "Diferencias",
"group-bot.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Bots */",
"group-sysop.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Administradores */",
"group-bureaucrat.js": "/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Burócratas */",
- "notacceptable": "El servidor wiki no puede proveer los datos en un formato que su cliente (navegador) pueda entender.",
"anonymous": "{{PLURAL:$1|Usuario anónimo|Usuarios anónimos}} de {{SITENAME}}",
"siteuser": "{{GENDER:$1|Usuario|Usuaria}} $1 de {{SITENAME}}",
"anonuser": "{{SITENAME}} usuario anónimo $1",
"autosumm-replace": "Página reemplazada por «$1»",
"autoredircomment": "Página redirigida a [[$1]]",
"autosumm-new": "Página creada con «$1»",
- "livepreview-loading": "Cargando…",
- "livepreview-ready": "Cargando… ¡Listo!",
- "livepreview-failed": "¡La previsualización al vuelo falló!\nPrueba la previsualización normal.",
- "livepreview-error": "No se pudo conectar: $1 «$2».\nIntenta usar la previsualización normal.",
"lag-warn-normal": "Los cambios realizados en {{PLURAL:$1|el último segundo|los últimos $1 segundos}} podrían no mostrarse en esta lista.",
"lag-warn-high": "Debido a una alta latencia el servidor de base de datos, los cambios realizados en {{PLURAL:$1|el último segundo|los últimos $1 segundos}} podrían no mostrarse en esta lista.",
"watchlistedit-numitems": "Tu lista de seguimiento tiene {{PLURAL:$1|una página |$1 páginas}}, excluyendo las páginas de discusión.",
"compare-invalid-title": "El título especificado es inválido.",
"compare-title-not-exists": "El título especificado no existe.",
"compare-revision-not-exists": "La revisión especificada no existe.",
- "dberr-header": "Este wiki tiene un problema",
"dberr-problems": "Lo sentimos. Este sitio está experimentando dificultades técnicas.",
"dberr-again": "Prueba a recargar dentro de unos minutos.",
"dberr-info": "(No se puede contactar con la base de datos del servidor: $1)",
"readonly_lag": "Andmebaas on automaatselt lukustatud, seniks kuni ''slave''-andmebaasid on uuendatud.",
"internalerror": "Sisemine viga",
"internalerror_info": "Sisemine viga: $1",
- "fileappenderrorread": "Lisamise käigus ebaõnnestus faili \"$1\" lugemine.",
- "fileappenderror": "Faili \"$1\" ei saanud lisada failile \"$2\".",
"filecopyerror": "Ei saanud faili \"$1\" kopeerida nimega \"$2\".",
"filerenameerror": "Ei saanud faili \"$1\" failiks \"$2\" ümber nimetada.",
"filedeleteerror": "Faili nimega \"$1\" ei ole võimalik kustutada.",
"directorycreateerror": "Kataloogi \"$1\" ei saanud luua.",
"filenotfound": "Faili nimega \"$1\" ei leitud.",
- "fileexistserror": "Kirjutamine faili \"$1\" ebaõnnestus: fail on juba olemas",
"unexpected": "Ootamatu väärtus: \"$1\"=\"$2\".",
"formerror": "Viga: vormi ei saanud salvestada",
"badarticleerror": "Seda toimingut ei saa sellel leheküljel sooritada.",
"userlogin-helplink2": "Sisselogimisabi",
"userlogin-loggedin": "Oled juba sisse logitud nimega {{GENDER:$1|$1}}.\nKasuta allolevat vormi, et logida sisse teise kasutajaga.",
"userlogin-createanother": "Loo teine konto",
- "createacct-join": "Sisesta allapoole oma andmed.",
- "createacct-another-join": "Sisesta allpool uue konto andmed.",
"createacct-emailrequired": "E-posti aadress",
"createacct-emailoptional": "E-posti aadress (valikuline)",
"createacct-email-ph": "Sisesta oma e-posti aadress",
"savearticle": "Salvesta",
"preview": "Eelvaade",
"showpreview": "Näita eelvaadet",
- "showlivepreview": "Näita eelvaadet",
"showdiff": "Näita muudatusi",
"anoneditwarning": "'''Hoiatus:''' Sa pole sisse logitud.\nSelle lehe redigeerimislogisse salvestatakse su IP-aadress.",
"anonpreviewwarning": "''Sa pole sisse logitud. Selle lehe redigeerimislogisse salvestatakse su IP-aadress.''",
"search-nonefound": "Päringule ei leitud vasteid.",
"powersearch-legend": "Täpsem otsing",
"powersearch-ns": "Otsing nimeruumidest:",
- "powersearch-redir": "Loetle ümbersuunamised",
"powersearch-togglelabel": "Vali:",
"powersearch-toggleall": "Kõik",
"powersearch-togglenone": "Ei ühtegi",
"prefs-advancedsearchoptions": "Täpsemad eelistused",
"prefs-advancedwatchlist": "Täpsemad eelistused",
"prefs-displayrc": "Kuvasätted",
- "prefs-displaysearchoptions": "Kuvasätted",
"prefs-displaywatchlist": "Kuvasätted",
"prefs-tokenwatchlist": "Luba",
"prefs-diffs": "Erinevused",
"tooltip-summary": "Kirjuta lühike kokkuvõte",
"common.css": "/* Siin olevat CSS-i kasutavad kõik kujundused. */",
"common.js": "/* Siinne JavaScript laaditakse igale kasutajatele igal laaditud leheküljel. */",
- "notacceptable": "Viki server ei saa esitada andmeid formaadis, mida sinu veebiklient lugeda suudab.",
"anonymous": "{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$1|anonüümne kasutaja|anonüümsed kasutajad}}",
"siteuser": "{{GRAMMAR:genitive|{{SITENAME}}}} kasutaja $1",
"anonuser": "{{GRAMMAR:genitive|{{SITENAME}}}} anonüümne kasutaja $1",
"autosumm-replace": "Lehekülg asendatud tekstiga '$1'",
"autoredircomment": "Ümbersuunamine lehele [[$1]]",
"autosumm-new": "Uus lehekülg: '$1'",
- "livepreview-loading": "Laadimine...",
- "livepreview-ready": "Laadimisel... Valmis!",
- "livepreview-failed": "Elav eelvaade ebaõnnestus! Proovi normaalset eelvaadet.",
- "livepreview-error": "Ühendus ebaõnnestus: $1 \"$2\".\nProovi tavalist eelvaadet.",
"lag-warn-normal": "Viimase {{PLURAL:$1|ühe sekundi|$1 sekundi}} jooksul tehtud muudatused ei pruugi selles loendis näha olla.",
"lag-warn-high": "Andmebaasiserveri töö viivituste tõttu ei pruugi viimase {{PLURAL:$1|ühe sekundi|$1 sekundi}} jooksul tehtud muudatused selles loendis näha olla.",
"watchlistedit-numitems": "Sinu jälgimisloendis on {{PLURAL:$1|üks lehekülg|$1 lehekülge}}, aruteluleheküljed välja arvatud.",
"compare-invalid-title": "Valitud pealkiri on vigane.",
"compare-title-not-exists": "Valitud pealkirja ei ole.",
"compare-revision-not-exists": "Valitud redaktsiooni ei ole.",
- "dberr-header": "Selles vikis on probleem",
"dberr-problems": "Kahjuks on sellel saidil tehnilisi probleeme",
"dberr-again": "Oota mõni hetk ja laadi lehekülg uuesti.",
"dberr-info": "(Ei saa ühendust andmebaasi serveriga: $1)",
"readonly_lag": "Tietokanta on automaattisesti lukittu, jotta kaikki tietokantapalvelimet saisivat kaikki tuoreet muutokset",
"internalerror": "Sisäinen virhe",
"internalerror_info": "Sisäinen virhe: $1",
- "fileappenderrorread": "Ei voitu lukea tiedostoa ”$1” liittämisen aikana.",
- "fileappenderror": "Tiedostoa ”$1” ei voitu lisätä tiedostoon ”$2”.",
"filecopyerror": "Tiedostoa <b>$1</b> ei voitu kopioida tiedostoksi <b>$2</b>.",
"filerenameerror": "Tiedostoa <b>$1</b> ei voitu nimetä uudelleen nimellä <b>$2</b>.",
"filedeleteerror": "Tiedostoa <b>$1</b> ei voitu poistaa.",
"directorycreateerror": "Hakemiston ”$1” luominen epäonnistui.",
"filenotfound": "Tiedostoa <b>$1</b> ei löytynyt.",
- "fileexistserror": "Tiedostoon ”$1” kirjoittaminen epäonnistui: Tiedosto on olemassa.",
"unexpected": "Odottamaton arvo: ”$1” on ”$2”.",
"formerror": "Lomakkeen tiedot eivät kelpaa",
"badarticleerror": "Tätä toimintoa ei voi suorittaa tälle sivulle.",
"userlogin-helplink2": "Apua sisäänkirjautumiseen",
"userlogin-loggedin": "Olet jo kirjautunut sisään tunnuksella {{GENDER:$1|$1}}.\nKäytä alla olevaa lomaketta kirjautuaksesi sisään toisena käyttäjänä.",
"userlogin-createanother": "Luo toinen käyttäjätunnus",
- "createacct-join": "Kirjoita tietosi alle.",
- "createacct-another-join": "Lisää uuden käyttäjätunnuksen tiedot alle.",
"createacct-emailrequired": "Sähköpostiosoite",
"createacct-emailoptional": "Sähköpostiosoite (vapaaehtoinen)",
"createacct-email-ph": "Anna sähköpostiosoitteesi",
"savearticle": "Tallenna sivu",
"preview": "Esikatselu",
"showpreview": "Esikatsele",
- "showlivepreview": "Pikaesikatselu",
"showdiff": "Näytä muutokset",
"anoneditwarning": "'''Varoitus:''' Et ole kirjautunut sisään.\nIP-osoitteesi kirjataan tämän sivun muutoshistoriaan.",
"anonpreviewwarning": "''Et ole kirjautunut sisään. Tallentaminen kirjaa IP-osoitteesi tämän sivun muutoshistoriaan.''",
"search-nonefound": "Hakusi ei tuottanut tulosta.",
"powersearch-legend": "Laajennettu haku",
"powersearch-ns": "Hae nimiavaruuksista:",
- "powersearch-redir": "Luettele ohjaukset",
"powersearch-togglelabel": "Muuta valintaa",
"powersearch-toggleall": "Valitse kaikki",
"powersearch-togglenone": "Ei mitään",
"prefs-advancedsearchoptions": "Lisäasetukset",
"prefs-advancedwatchlist": "Lisäasetukset",
"prefs-displayrc": "Perusasetukset",
- "prefs-displaysearchoptions": "Näyttöasetukset",
"prefs-displaywatchlist": "Näyttöasetukset",
"prefs-tokenwatchlist": "Avain",
"prefs-diffs": "Eroavaisuudet",
"group-bot.js": "/* Tämän sivun JavaScript-koodi liitetään vain boteille */",
"group-sysop.js": "/* Tämän sivun JavaScript-koodi liitetään vain ylläpitäjille */",
"group-bureaucrat.js": "/* Tämän sivun JavaScript-koodi liitetään vain byrokraateille */",
- "notacceptable": "Wikipalvelin ei voi näyttää tietoja muodossa, jota ohjelmasi voisi lukea.",
"anonymous": "{{GRAMMAR:genitive|{{SITENAME}}}} {{PLURAL:$1|anonyymi käyttäjä|anonyymit käyttäjät}}",
"siteuser": "{{GRAMMAR:genitive|{{SITENAME}}}} käyttäjä $1",
"anonuser": "{{GRAMMAR:genitive|{{SITENAME}}}} anonyymi käyttäjä $1",
"size-kilobytes": "$1 KiB",
"size-megabytes": "$1 MiB",
"size-gigabytes": "$1 GiB",
- "livepreview-loading": "Ladataan…",
- "livepreview-ready": "Ladataan… Valmis!",
- "livepreview-failed": "Pikaesikatselu epäonnistui!\nYritä normaalia esikatselua.",
- "livepreview-error": "Yhdistäminen epäonnistui: $1 ”$2”\nYritä normaalia esikatselua.",
"lag-warn-normal": "Muutokset, jotka ovat uudempia kuin $1 {{PLURAL:$1|sekunti|sekuntia}}, eivät välttämättä näy tällä sivulla.",
"lag-warn-high": "Tietokannoilla on työjonoa. Muutokset, jotka ovat uudempia kuin $1 {{PLURAL:$1|sekunti|sekuntia}}, eivät välttämättä näy tällä sivulla.",
"watchlistedit-numitems": "Tarkkailulistallasi on {{PLURAL:$1|yksi sivu|$1 sivua}}, lukuun ottamatta keskustelusivuja.",
"compare-invalid-title": "Antamasi sivun nimi on virheellinen.",
"compare-title-not-exists": "Määrittämääsi sivua ei ole.",
"compare-revision-not-exists": "Määrittämääsi versiota ei ole.",
- "dberr-header": "Wikissä on tietokantaongelma",
"dberr-problems": "Tällä sivustolla on teknisiä ongelmia.",
"dberr-again": "Odota hetki ja lataa sivu uudelleen.",
"dberr-info": "(Tietokantapalvelimeen yhdistäminen epäonnistui: $1)",
"readonly_lag": "La base de données a été automatiquement verrouillée pendant que les serveurs secondaires rattrapent leur retard sur le serveur principal.",
"internalerror": "Erreur interne",
"internalerror_info": "Erreur interne : $1",
- "fileappenderrorread": "Impossible de lire « $1 » lors de l'insertion",
- "fileappenderror": "Impossible d'ajouter « $1 » à « $2 ».",
"filecopyerror": "Impossible de copier le fichier « $1 » vers « $2 ».",
"filerenameerror": "Impossible de renommer le fichier « $1 » en « $2 ».",
"filedeleteerror": "Impossible de supprimer le fichier « $1 ».",
"directorycreateerror": "Impossible de créer le dossier « $1 ».",
"filenotfound": "Impossible de trouver le fichier « $1 ».",
- "fileexistserror": "Impossible d'écrire le fichier « $1 » : le fichier existe.",
"unexpected": "Valeur inattendue : « $1 » = « $2 ».",
"formerror": "Erreur : Impossible de soumettre le formulaire.",
"badarticleerror": "Cette action ne peut pas être effectuée sur cette page.",
"userlogin-helplink2": "Aide à la connexion",
"userlogin-loggedin": "Vous êtes déjà connecté{{GENDER:$1||e}} en tant que {{GENDER:$1|$1}}.\nUtilisez le formulaire ci-dessous pour vous connecter avec un autre compte utilisateur.",
"userlogin-createanother": "Créer un autre compte",
- "createacct-join": "Entrez vos informations ci-dessous.",
- "createacct-another-join": "Saisir les informations du nouveau compte ci-dessous.",
"createacct-emailrequired": "Adresse de courriel",
"createacct-emailoptional": "Adresse de courriel (facultative)",
"createacct-email-ph": "Entrez votre adresse de courriel",
"savearticle": "Enregistrer",
"preview": "Prévisualisation",
"showpreview": "Prévisualiser",
- "showlivepreview": "Aperçu rapide",
"showdiff": "Voir les modifications",
"anoneditwarning": "'''Attention :''' vous n'êtes pas identifié(e). Votre adresse IP sera enregistrée dans l'historique de cette page.",
"anonpreviewwarning": "''Vous n'êtes pas identifié. Sauvegarder enregistrera votre adresse IP dans l'historique des modifications de la page.''",
"search-nonefound": "Il n'y a aucun résultat correspondant à la requête.",
"powersearch-legend": "Recherche avancée",
"powersearch-ns": "Rechercher dans les espaces de noms :",
- "powersearch-redir": "Afficher les redirections",
"powersearch-togglelabel": "Cocher :",
"powersearch-toggleall": "Tout",
"powersearch-togglenone": "Aucune",
"prefs-advancedsearchoptions": "Options avancées",
"prefs-advancedwatchlist": "Options avancées",
"prefs-displayrc": "Options d'affichage",
- "prefs-displaysearchoptions": "Options d'affichage",
"prefs-displaywatchlist": "Options d'affichage",
"prefs-tokenwatchlist": "Jeton",
"prefs-diffs": "Différences",
"pageswithprop-prophidden-binary": "valeur de propriété binaire masquée ($1)",
"doubleredirects": "Doubles redirections",
"doubleredirectstext": "Voici une liste des pages qui redirigent vers des pages qui sont elles-mêmes des pages de redirection.\nChaque entrée contient des liens vers la première et la seconde redirections, ainsi que la première ligne de texte de la seconde page, ce qui fournit habituellement la « vraie » page cible, vers laquelle la première redirection devrait rediriger.\nLes entrées <del>barrées</del> ont été résolues.",
- "double-redirect-fixed-move": "Cette redirection, dont la cible [[$1]] a été renommée, mène maintenant vers [[$2]].",
- "double-redirect-fixed-maintenance": "Corrige la double redirection de [[$1]] vers [[$2]].",
+ "double-redirect-fixed-move": "[[$1]] a été déplacé.\nIl a été mis à jour automatiquement et redirige maintenant vers [[$2]].",
+ "double-redirect-fixed-maintenance": "Correction automatique de la double redirection de [[$1]] vers [[$2]] dans une tâche de maintenance.",
"double-redirect-fixer": "Correcteur de redirection",
"brokenredirects": "Redirections cassées",
"brokenredirectstext": "Ces redirections mènent vers des pages inexistantes :",
"group-bot.js": "/* Le JavaScript inclus ici n’affectera que les robots */",
"group-sysop.js": "/* Le JavaScript inclus ici n’affectera que les administrateurs */",
"group-bureaucrat.js": "/* Le JavaScript inclus ici n’affectera que les bureaucrates */",
- "notacceptable": "Ce serveur wiki ne peut pas fournir les données dans un format que votre client soit capable de lire.",
"anonymous": "{{PLURAL:$1|Utilisateur non enregistré|Utilisateurs non enregistrés}} sur {{SITENAME}}",
"siteuser": "{{GENDER:$2|l'utilisateur|l'utilisatrice|l'utilisateur}} $1 de {{SITENAME}}",
"anonuser": "l'utilisateur anonyme $1 de {{SITENAME}}",
"bitrate-exabits": "$1 Ebps",
"bitrate-zetabits": "$1 Zbps",
"bitrate-yottabits": "$1 Ybps",
- "livepreview-loading": "Chargement...",
- "livepreview-ready": "Chargement … terminé !",
- "livepreview-failed": "L'aperçu rapide a échoué !\nEssayez la prévisualisation normale.",
- "livepreview-error": "Impossible de se connecter : $1 « $2 ».\nEssayez la prévisualisation normale.",
"lag-warn-normal": "Les modifications datant de moins de $1 seconde{{PLURAL:$1||s}} peuvent ne pas apparaître dans cette liste.",
"lag-warn-high": "En raison d'un retard important du serveur de base de données, les modifications datant de moins de $1 seconde{{PLURAL:$1||s}} peuvent ne pas apparaître dans cette liste.",
"watchlistedit-numitems": "Votre liste de suivi contient {{PLURAL:$1|un titre|$1 titres}}, sans compter les pages de discussion.",
"compare-invalid-title": "Le titre que vous avez spécifié n’est pas valide.",
"compare-title-not-exists": "Le titre que vous avez spécifié n’existe pas.",
"compare-revision-not-exists": "La révision que vous avez spécifiée n’existe pas.",
- "dberr-header": "Ce wiki a un problème",
"dberr-problems": "Désolé ! Ce site rencontre des difficultés techniques.",
"dberr-again": "Essayez d'attendre quelques minutes et rechargez.",
"dberr-info": "(Connexion au serveur de base de données impossible : $1)",
"filedeleteerror": "删伓正档案 \"$1\"。",
"directorycreateerror": "创建伓正目录 \"$1\"。",
"filenotfound": "寻伓到档案 \"$1\"。",
- "fileexistserror": "文件 \"$1\" 写伓正进去:佢已存在",
"unexpected": "伓正常值: \"$1\"=\"$2\"。",
"formerror": "错误:交伓正表格",
"badarticleerror": "个只操作到个页用伓正。",
"savearticle": "存到著",
"preview": "预览",
"showpreview": "望吖起",
- "showlivepreview": "即时预览",
"showdiff": "望吖差别",
"anoneditwarning": "'''警告:'''倷哈冇登入,个页𠮶编写历史会记到倷𠮶IP。",
"missingsummary": "'''提示:''' 倷冇提供编写摘要。要系倷再按系保存𠮶话,倷保存𠮶编辑就会冇编辑摘要。",
"search-nonefound": "冇合到𠮶查询结果。",
"powersearch-legend": "高级搜寻",
"powersearch-ns": "到名子空间里头寻:",
- "powersearch-redir": "重定向𠮶表单",
"searchdisabled": "{{SITENAME}}𠮶搜索功能已经关闭。倷可以用Google寻吖。但系佢𠮶索引可能系早先𠮶。",
"preferences": "参数设置",
"mypreferences": "偶𠮶参数设置",
"monobook.css": "/* 个首𠮶 CSS 会碍到正用Monobook皮肤𠮶用户 */",
"common.js": "/* 个首𠮶JavaScript仰上载进到所有用户全部页面。 */",
"monobook.js": "/* 伓再使用;请用[[MediaWiki:common.js]] */",
- "notacceptable": "个只网站服务器提供伓正倷𠮶用户端认得𠮶格式。",
"anonymous": "{{SITENAME}}𠮶匿名用户",
"siteuser": "{{SITENAME}}用户$1",
"anonuser": "{{SITENAME}}匿名用户$1",
"autosumm-replace": "搦页面换到 '$1'",
"autoredircomment": "重定向页面至[[$1]]",
"autosumm-new": "新页: $1",
- "livepreview-loading": "加载中…",
- "livepreview-ready": "加载中… 舞正哩!",
- "livepreview-failed": "即时预览失败! 试吖标准预览。",
- "livepreview-error": "连接失败: $1 \"$2\" 试吖标准预览。",
"lag-warn-normal": "将将𠮶$1秒之内𠮶改动话伓正伓会显到列表里头。",
"lag-warn-high": "数据库咁慢,将将𠮶$1秒𠮶改动话伓正伓会显到列表里头。",
"watchlistedit-numitems": "倷𠮶监视列表拢共有$1只标题,佢伓包括对话页。",
"edit": "Editar",
"edit-local": "Editar a descrición local",
"create": "Crear",
- "create-local": "Engadir a descrición local",
+ "create-local": "Engadir unha descrición local",
"editthispage": "Editar esta páxina",
"create-this-page": "Crear esta páxina",
"delete": "Borrar",
"readonly_lag": "A base de datos bloqueouse automaticamente mentres os servidores levan a cabo a sincronización co servidor principal",
"internalerror": "Erro interno",
"internalerror_info": "Erro interno: $1",
- "fileappenderrorread": "Non foi posible ler \"$1\" durante a inserción.",
- "fileappenderror": "Non se puido engadir \"$1\" a \"$2\".",
"filecopyerror": "Non se deu copiado o ficheiro \"$1\" a \"$2\".",
"filerenameerror": "Non se pode cambiar o nome do ficheiro \"$1\" a \"$2\".",
"filedeleteerror": "Non se deu borrado o ficheiro \"$1\".",
"directorycreateerror": "Non se puido crear o directorio \"$1\".",
"filenotfound": "Non se deu atopado o ficheiro \"$1\".",
- "fileexistserror": "Non se pode escribir no ficheiro \"$1\": O ficheiro xa existe.",
"unexpected": "Valor inesperado: \"$1\"=\"$2\".",
"formerror": "Erro: Non se pode enviar o formulario.",
"badarticleerror": "Non pode efectuarse esa acción nesta páxina.",
"userlogin-helplink2": "Axuda co rexistro",
"userlogin-loggedin": "Xa accedeu ao sistema como {{GENDER:$1|$1}}.\nUtilice o formulario inferior para acceder como outro usuario.",
"userlogin-createanother": "Crear outra conta",
- "createacct-join": "Insira a súa información embaixo.",
- "createacct-another-join": "Insira a información da nova conta embaixo.",
"createacct-emailrequired": "Enderezo de correo electrónico",
"createacct-emailoptional": "Enderezo de correo electrónico (opcional)",
"createacct-email-ph": "Insira o seu enderezo de correo electrónico",
"savearticle": "Gardar a páxina",
"preview": "Vista previa",
"showpreview": "Mostrar a vista previa",
- "showlivepreview": "Vista previa",
"showdiff": "Mostrar os cambios",
"anoneditwarning": "'''Aviso:''' Non accedeu ao sistema.\nO seu enderezo IP quedará rexistrado no historial de revisións desta páxina.",
"anonpreviewwarning": "''Non accedeu ao sistema. Se garda a páxina, o seu enderezo IP quedará rexistrado no historial de edicións.''",
"search-nonefound": "Non se atopou ningún resultado que coincidise coa procura.",
"powersearch-legend": "Busca avanzada",
"powersearch-ns": "Procurar nos espazos de nomes:",
- "powersearch-redir": "Listar as redireccións",
"powersearch-togglelabel": "Seleccionar:",
"powersearch-toggleall": "Todos",
"powersearch-togglenone": "Ningún",
"prefs-advancedsearchoptions": "Opcións avanzadas",
"prefs-advancedwatchlist": "Opcións avanzadas",
"prefs-displayrc": "Opcións de visualización",
- "prefs-displaysearchoptions": "Opcións de visualización",
"prefs-displaywatchlist": "Opcións de visualización",
"prefs-tokenwatchlist": "Pase",
"prefs-diffs": "Diferenzas",
"pageswithprop-prophidden-binary": "agochouse o valor de propiedade binaria ($1)",
"doubleredirects": "Redireccións dobres",
"doubleredirectstext": "Esta lista contén as páxinas que redirixen cara a outras páxinas de redirección.\nCada ringleira contén ligazóns cara á primeira e segunda redireccións, así como a primeira liña de texto da segunda páxina, que é frecuentemente o artigo \"real\", á que a primeira redirección debera apuntar.\nAs entradas <del>riscadas</del> xa foron resoltas.",
- "double-redirect-fixed-move": "A páxina \"[[$1]]\" foi movida, agora é unha redirección cara a \"[[$2]]\"",
- "double-redirect-fixed-maintenance": "Arranxo a redirección dobre entre \"[[$1]]\" e \"[[$2]]\".",
+ "double-redirect-fixed-move": "Trasladouse a páxina \"[[$1]]\".\nActualizouse automaticamente e agora é unha redirección cara a \"[[$2]]\".",
+ "double-redirect-fixed-maintenance": "Arranxo automaticamente a redirección dobre entre \"[[$1]]\" e \"[[$2]]\" como tarefa de mantemento.",
"double-redirect-fixer": "Amañador de redireccións",
"brokenredirects": "Redireccións rotas",
"brokenredirectstext": "As seguintes redireccións ligan cara a páxinas que non existen:",
"listgrouprights-removegroup-self": "Pode eliminar {{PLURAL:$2|un grupo|grupos}} pola súa propia conta: $1",
"listgrouprights-addgroup-self-all": "Pode engadir todos os grupos pola súa propia conta",
"listgrouprights-removegroup-self-all": "Pode eliminar todos os grupos pola súa propia conta",
+ "listgrouprights-namespaceprotection-header": "Restricións dos espazos de nomes",
+ "listgrouprights-namespaceprotection-namespace": "Espazo de nomes",
+ "listgrouprights-namespaceprotection-restrictedto": "Dereito(s) que permite(n) ao usuario editar",
"trackingcategories": "Categorías de seguimento",
"trackingcategories-summary": "Esta páxina lista as categorías de seguimento que o software de MediaWiki enche automaticamente. Pódense alterar os seus nomes modificando as correspondentes mensaxes do sistema no espazo de nomes \"{{ns:8}}\".",
"trackingcategories-msg": "Categoría de seguimento",
"trackingcategories-name": "Nome da mensaxe",
"trackingcategories-desc": "Criterio de inclusión da categoría",
- "noindex-category-desc": "A páxina non está indexada polos robots porque ten a palabra máxica <code><nowiki>__NOINDEX__</nowiki></code> e está nun espazo de nomes no que esa marca está permitida.",
+ "noindex-category-desc": "A páxina non está indexada polos bots porque contén a palabra máxica <code><nowiki>__NOINDEX__</nowiki></code> e está nun espazo de nomes no que esa marca está permitida.",
"index-category-desc": "A páxina contén a palabra máxica <code><nowiki>__INDEX__</nowiki></code> (e está nun espazo de nomes no que esa marca está permitida) e, polo tanto, será indexada polos bots cando non debera selo normalmente.",
"post-expand-template-inclusion-category-desc": "Despois de expandir todos os modelos, o tamaño da páxina é maior que <code>$wgMaxArticleSize</code>; algúns modelos non se expandiron.",
"post-expand-template-argument-category-desc": "Despois de expandir o argumento dun modelo (algo entre chaves triples, como <code>{{{Proba}}}</code>), a páxina é maior que <code>$wgMaxArticleSize</code>.",
"contributions-title": "Contribucións de $1",
"mycontris": "Contribucións",
"contribsub2": "De {{GENDER:$3|$1}} ($2)",
+ "contributions-userdoesnotexist": "A conta de usuario \"$1\" non está rexistrada.",
"nocontribs": "Non se deron atopado cambios con eses criterios.",
"uctop": "(última revisión)",
"month": "Desde o mes de (e anteriores):",
"group-bot.js": "/* Calquera JavaScript que haxa aquí será cargado soamente para os bots */",
"group-sysop.js": "/* Calquera JavaScript que haxa aquí será cargado soamente para os administradores */",
"group-bureaucrat.js": "/* Calquera JavaScript que haxa aquí será cargado soamente para os burócratas */",
- "notacceptable": "O servidor do wiki non pode fornecer os datos nun formato que o seu cliente poida ler.",
"anonymous": "{{PLURAL:$1|Usuario anónimo|Usuarios anónimos}} de {{SITENAME}}",
"siteuser": "$1 de {{SITENAME}}",
"anonuser": "o usuario anónimo $1 de {{SITENAME}}",
"autoredircomment": "Redirixida cara a \"[[$1]]\"",
"autosumm-new": "Nova páxina: \"$1\"",
"size-kilobytes": "$1 kB",
- "livepreview-loading": "Cargando...",
- "livepreview-ready": "Cargando… Listo!",
- "livepreview-failed": "Fallou a vista previa en tempo real! Inténteo coa vista previa normal.",
- "livepreview-error": "Fallou a conexión: $1 \"$2\".\nProbe coa vista previa normal.",
"lag-warn-normal": "Pode que os cambios feitos {{PLURAL:$1|no último segundo|nos últimos $1 segundos}} non aparezan nesta lista.",
"lag-warn-high": "Debido a unha gran demora do servidor da base de datos, pode que nesta lista non aparezan os cambios feitos {{PLURAL:$1|no último segundo|nos últimos $1 segundos}}.",
"watchlistedit-numitems": "A súa lista de vixilancia inclúe {{PLURAL:$1|un título|$1 títulos}}, excluíndo as páxinas de conversa.",
"redirect-submit": "Continuar",
"redirect-lookup": "Procurar:",
"redirect-value": "Valor:",
- "redirect-user": "Id. do usuario",
+ "redirect-user": "ID de usuario",
"redirect-page": "ID de páxina",
"redirect-revision": "Revisión de páxina",
"redirect-file": "Nome de ficheiro",
"compare-invalid-title": "O título que especificou non é válido.",
"compare-title-not-exists": "O título que especificou non existe.",
"compare-revision-not-exists": "A revisión que especificou non existe.",
- "dberr-header": "Este wiki ten un problema",
"dberr-problems": "Sentímolo! Este sitio está experimentando dificultades técnicas.",
"dberr-again": "Por favor, agarde uns minutos e logo probe a cargar de novo a páxina.",
"dberr-info": "(Non se pode conectar co servidor da base de datos: $1)",
"readonly_lag": "કનિષ્ઠ માહિતીસંચ સર્વરો મુખ્ય સર્વર સુધી પહોંચી ત્યા સુધી આ માહિતીસંચ પર સ્વયંચલિત રીતે તાળું મરાયું છે",
"internalerror": "આંતરિક ત્રુટિ",
"internalerror_info": "આંતરિક ત્રુટિ: $1",
- "fileappenderrorread": "ઉમેરો કરતાં \"$1\" વાંચી શકાયું નથી",
- "fileappenderror": "\"$1\" ને \"$2\" શાથે જોડી શકાશે નહીં.",
"filecopyerror": "\"$1\" થી \"$2\"માં નકલ નિષ્ફળ.",
"filerenameerror": "\"$1\" નું નામ બદલીને \"$2\" કરવામાં નિષ્ફળ.",
"filedeleteerror": "\"$1\" ફાઇલ હટાવી ન શકાઇ.",
"directorycreateerror": "ડિરેક્ટરી \"$1\" ન બનાવી શકાઇ.",
"filenotfound": "ફાઇલ \"$1\" ન મળી.",
- "fileexistserror": "ફાઇલ \"$1\"માં ન લખી શકાયું : ફાઇલ અસ્તિત્વ ધરાવે છે.",
"unexpected": "અણધારી કિંમત: \"$1\"=\"$2\".",
"formerror": "ત્રુટિ: પત્રક રજૂ થયું નહીં",
"badarticleerror": "આ ક્રિયા આ પાના ઉપર કરવી શક્ય નથી.",
"userlogin-resetpassword-link": "તમારો પાસવર્ડ ભૂલી ગયા છો?",
"userlogin-loggedin": "તમે પહેલેથી {{GENDER:$1|$1}} તરીકે પ્રવેશ કરેલો જ છે.\nબીજા સભ્ય તરીકે પ્રવેશ કરવા માટે નીચેનું ફોર્મ વાપરો.",
"userlogin-createanother": "બીજું ખાતું બનાવો",
- "createacct-join": "તમારી માહિતી નીચે દાખલ કરો.",
- "createacct-another-join": "નવા ખાતાંની માહિતી નીચે દાખલ કરો.",
"createacct-emailrequired": "ઇમેલ સરનામું",
"createacct-emailoptional": "ઇમેલ સરનામું (વૈકલ્પિક)",
"createacct-email-ph": "તમારું ઇમેલ સરનામું દાખલ કરો",
"savearticle": "પાનું સાચવો",
"preview": "પૂર્વાવલોકન",
"showpreview": "ઝલક દર્શાવો",
- "showlivepreview": "જીવંત પૂર્વાવલોકન",
"showdiff": "ફેરફારો દર્શાવો",
"anoneditwarning": "'''ચેતવણી:''' તમે તમારા સભ્ય નામથી પ્રવેશ કર્યો નથી.\nઆ પાનાનાં ઇતિહાસમાં તમારૂં આઇ.પી. (IP) એડ્રેસ નોંધવામાં આવશે.",
"anonpreviewwarning": "તમે સભ્યનામથી પ્રવેશ કર્યો નથી,આ પાનું ઈતિહાસમાંતમારા IP સરનામાના નામે સાચવવામાં આવશે",
"search-nonefound": "તમે આપેલી માહિતી ને મળતાં આવતાં કોઈ પરિણામો નથી",
"powersearch-legend": "વધુ પર્યાયો સાથે શોધો",
"powersearch-ns": "નામસ્થળોમાં શોધો:",
- "powersearch-redir": "અન્યત્ર વાળેલાં પાનાંની યાદી",
"powersearch-togglelabel": "ચકાસો:",
"powersearch-toggleall": "બધા",
"powersearch-togglenone": "એકે નહિ",
"prefs-advancedsearchoptions": "અદ્યતન વિકલ્પો",
"prefs-advancedwatchlist": "અદ્યતન વિકલ્પો",
"prefs-displayrc": "પ્રદર્શન વિકલ્પો",
- "prefs-displaysearchoptions": "પ્રદર્શન વિકલ્પો",
"prefs-displaywatchlist": "પ્રદર્શન વિકલ્પો",
"prefs-tokenwatchlist": "નિશાની",
"prefs-diffs": "ભેદો",
"tooltip-undo": "\"રદ કરો\" આ ફેરફારને પાછો વાળશે અને ફેરફાર પછીનું પૂર્વાવલોકન ફોર્મ નવા પાના તરીકે ખુલશે.\nતે તમને 'સારાંશ'માં કારણ જણાવવા દેશે.",
"tooltip-preferences-save": "પસંદ સાચવો",
"tooltip-summary": "ટૂંક સારાંશ ઉમેરો",
- "notacceptable": "તમારા ગ્રાહક સમજી શકે તે રીતે વિકિ માહિતી નહીં આપી શકે",
"anonymous": "{{SITENAME}} ના અજ્ઞાત {{PLURAL:$1|સભ્ય|સભ્યો}}",
"siteuser": "{{SITENAME}} સભ્ય $1",
"anonuser": "{{SITENAME}} અજ્ઞાત સભ્ય $1",
"autosumm-replace": "માહિતીને \"$1\" થી બદલી",
"autoredircomment": "[[$1]] પર દિશાનિર્દેશિત",
"autosumm-new": "$1થી શરૂ થતું નવું પાનું બનાવ્યું",
- "livepreview-loading": "લવાઇ રહ્યું છે...",
- "livepreview-ready": "લવાઇ રહ્યું છે .... તૈયાર!",
- "livepreview-failed": "સજીવ ઝલક અસફળ\nસામાન્ય ઝલક જુઓ",
- "livepreview-error": " $1 \"$2\" નો સંપર્ક અસફળ\nસામાન્ય ઝલક જુઓ",
"lag-warn-normal": "$1 {{PLURAL:$1|સેકંડ|સેકંડો}} પછી થયેલ નવા સુધારા કદાચ ન બતાવી શકાય.",
"lag-warn-high": "માહિતીસંચ સર્વરના લાંબાગાળાને કારણે $1 {{PLURAL:$1|સેકંડ|સેકંડો}} પછી કરેલા ફેરફાર જોઇ શકાશે નહીં",
"watchlistedit-numitems": "તમારી ધ્યાન સૂચિ {{PLURAL:$1|1 શીર્ષક |$1 શીર્ષકો}} ધરાવે છે, ચર્ચાના પાના સિવાય.",
"compare-invalid-title": "આ શીર્ષક અમાન્ય છે.",
"compare-title-not-exists": "આ શીર્ષક અસ્તિત્વમાં નથી.",
"compare-revision-not-exists": "આ આવૃત્તિ અસ્તિત્વમાં નથી.",
- "dberr-header": "આ વિકિમાં તકલીફ છે",
"dberr-problems": "માફ કરશો! આ સાઇટ તકનિકી અડચણો અનુભવી રહી છે.",
"dberr-again": "થોડી વાર રાહ જોઈને ફરી પેજ લોડ કરવાનો પ્રયત્ન કરો.",
"dberr-info": "(માહિતી સંચય સર્વર : $1નો સંપર્ક નથી કરી શકાયો)",
"readonly_lag": "Ua hikalaka ka hōkeo ʻikepili i ka hele nei ʻana o nā hōkeo ʻikepili kauā i ka haku",
"internalerror": "Hewa koloko",
"internalerror_info": "Hewa koloko:$1",
- "fileappenderrorread": "ʻAʻole hiki ke heluhelu iā \"$1\" ma loko o ka pākuʻi ʻana.",
- "fileappenderror": "ʻAʻole hiki ke pākuʻi \"$1\" iā \"$2\".",
"filecopyerror": "ʻAʻole hiki ke kope ka waihona \"$1\" iā \"$2\".",
"filerenameerror": "ʻAʻole hiki ke hōʻinoa hou ka waihona \"$1\" iā \"$2\".",
"filedeleteerror": "‘A‘ole hiki ke holoi i ka waihona \"$1\".",
"directorycreateerror": "ʻAʻole hiki ke haku ka papakuhi waihona \"$1\"",
"filenotfound": "‘A‘ole hiki ke loa‘a ka waihona \"$1\".",
- "fileexistserror": "ʻAʻole hiki ke kākau i ka waihona \"$1\": Aia no ia.",
"unexpected": "Helu mahuʻi ʻole: \"$1\"=\"$2\".",
"formerror": "Hewa: Hiki ʻole ke waiho i ke kahua.",
"badarticleerror": "Hiki ʻole i kēia hana ke hana ʻia ma kēia ʻaoʻao.",
"userlogin-helplink2": "Ke kōkua ʻana me ka ʻeʻe ʻana",
"userlogin-loggedin": "Ua ʻeʻe ʻē ʻoe penei: {{GENDER:$1|$1}}.\nHana i ke kahua i lalo no ka ʻeʻe ʻana i kekahi mea hoʻohana ʻē aʻe.",
"userlogin-createanother": "E kāinoa i kekahi moʻokāki ʻē aʻe",
- "createacct-join": "E kikokiko i kāu ʻike i lalo.",
- "createacct-another-join": "E kikokiko i ka ʻike o ka moʻokāki hou i lalo.",
"createacct-emailrequired": "Wahinoho lekauila",
"createacct-emailoptional": "Wahinoho lekauila (kāpae)",
"createacct-email-ph": "E kikokiko i kāu wahinoho lekauila",
"savearticle": "E mālama i ka ʻaoʻao",
"preview": "Nāmua",
"showpreview": "E hō'ike i ka nāmua",
- "showlivepreview": "Nāmua ʻānō",
"showdiff": "E hō'ike i nā loli",
"anoneditwarning": "<strong>E akahele:</strong> ʻAʻole ʻoe ʻeʻe nei.\nE hoʻopaʻa ʻia ana kāu IP ma ko kēia ʻaoʻao mōʻaukala hoʻololi.",
"summary-preview": "Nāmua hōʻuluʻulu manaʻo:",
"search-nonefound": "ʻAʻohe hualoaʻa no kēia huli.",
"powersearch-legend": "Hulina kūlana kiʻekiʻe",
"powersearch-ns": "Huli i loko o nā wahi inoa:",
- "powersearch-redir": "Helu i nā kiahou",
"powersearch-togglelabel": "Hōʻoia:",
"powersearch-toggleall": "Nā mea apau",
"powersearch-togglenone": "ʻAʻohe",
"prefs-advancedsearchoptions": "Koho kiʻelē",
"prefs-advancedwatchlist": "Koho kiʻelē",
"prefs-displayrc": "Koho nānā",
- "prefs-displaysearchoptions": "Koho nānā",
"prefs-displaywatchlist": "Koho nānā",
"prefs-tokenwatchlist": "Tokene",
"prefs-diffs": "ʻOkoʻa",
"autosumm-replace": "Ke pani nei i ka mealoko me '$1'",
"autoredircomment": "Kiahou i ka ʻaoʻao iā [[$1]]",
"autosumm-new": "Ua hoʻokumu ʻia kekahi ʻaoʻao me '$1'",
- "livepreview-loading": "Ke ho‘ouka nei…",
"watchlistedit-normal-title": "Hoʻololi i ka papakiaʻi",
"watchlisttools-view": "Nānā i nā loli ʻālike",
"watchlisttools-edit": "Nānā a hoʻololi i ka papakiaʻi",
"readonly_lag": "בסיס הנתונים ננעל אוטומטית כדי לאפשר לבסיסי הנתונים המשניים להתעדכן מהבסיס הראשי.",
"internalerror": "שגיאה פנימית",
"internalerror_info": "שגיאה פנימית: $1",
- "fileappenderrorread": "קריאת \"$1\" במהלך צירוף נכשלה.",
- "fileappenderror": "צירוף \"$1\" ל־\"$2\" נכשל.",
"filecopyerror": "העתקת \"$1\" ל־\"$2\" נכשלה.",
"filerenameerror": "שינוי השם של \"$1\" ל־\"$2\" נכשל.",
"filedeleteerror": "מחיקת \"$1\" נכשלה.",
"directorycreateerror": "יצירת התיקייה \"$1\" נכשלה.",
"filenotfound": "הקובץ \"$1\" לא נמצא.",
- "fileexistserror": "הכתיבה לקובץ \"$1\" נכשלה: הקובץ קיים",
"unexpected": "ערך לא צפוי: \"$1\"=\"$2\"",
"formerror": "שגיאה: לא יכול לשלוח טופס.",
"badarticleerror": "לא ניתן לבצע פעולה זו בדף זה.",
"userlogin-helplink2": "עזרה בכניסה לחשבון",
"userlogin-loggedin": "אתם כבר מחוברים לחשבון {{GENDER:$1|$1}}.\nהשתמשו בטופס שלהלן כדי להתחבר לחשבון אחר.",
"userlogin-createanother": "יצירת חשבון אחר",
- "createacct-join": "יש להקליד להלן את הפרטים שלך.",
- "createacct-another-join": "יש להקליד להלן את פרטי החשבון החדש.",
"createacct-emailrequired": "כתובת דוא\"ל",
"createacct-emailoptional": "כתובת דוא\"ל (לא חובה)",
"createacct-email-ph": "יש להקליד את כתובת הדוא\"ל שלך",
"savearticle": "שמירה",
"preview": "תצוגה מקדימה",
"showpreview": "תצוגה מקדימה",
- "showlivepreview": "תצוגה מקדימה מהירה",
"showdiff": "הצגת שינויים",
"anoneditwarning": "'''אזהרה:''' אינכם מחוברים לחשבון. כתובת ה־IP שלכם תירשם בהיסטוריית העריכות של הדף.",
"anonpreviewwarning": "''אינכם מחוברים לחשבון. שמירה תגרום לכתובת ה־IP שלכם להירשם בהיסטוריית העריכות של הדף.''",
"search-nonefound": "לא נמצאו תוצאות המתאימות לחיפוש.",
"powersearch-legend": "חיפוש מתקדם",
"powersearch-ns": "חיפוש על־פי מרחבי שם:",
- "powersearch-redir": "הצגת דפי הפניה",
"powersearch-togglelabel": "בחירה:",
"powersearch-toggleall": "הכול",
"powersearch-togglenone": "אף אחד",
"prefs-advancedsearchoptions": "אפשרויות מתקדמות",
"prefs-advancedwatchlist": "אפשרויות מתקדמות",
"prefs-displayrc": "אפשרויות תצוגה",
- "prefs-displaysearchoptions": "אפשרויות תצוגה",
"prefs-displaywatchlist": "אפשרויות תצוגה",
"prefs-tokenwatchlist": "אסימון",
"prefs-diffs": "הבדלים בין גרסאות",
"group-bot.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ עבור בוטים בלבד */",
"group-sysop.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ עבור מפעילי מערכת בלבד */",
"group-bureaucrat.js": "/* כל סקריפט JavaScript שנכתב כאן ירוץ עבור ביורוקרטים בלבד */",
- "notacceptable": "האתר לא יכול לספק מידע בפורמט שתוכנת הלקוח יכולה לקרוא.",
"anonymous": "{{PLURAL:$1|משתמש אנונימי|משתמשים אנונימיים}} של {{SITENAME}}",
"siteuser": "משתמש {{SITENAME}} $1",
"anonuser": "משתמש אנונימי של {{SITENAME}} $1",
"size-exabytes": "$1 אקסה־בייט",
"size-zetabytes": "$1 זטה־בייט",
"size-yottabytes": "$1 יוטה־בייט",
- "livepreview-loading": "בטעינה…",
- "livepreview-ready": "בטעינה… נטען!",
- "livepreview-failed": "התצוגה המקדימה המהירה נכשלה! נסו להשתמש בתצוגה מקדימה רגילה.",
- "livepreview-error": "ההתחברות נכשלה: $1 \"$2\". נסו להשתמש בתצוגה מקדימה רגילה.",
"lag-warn-normal": "שינויים שבוצעו לפני פחות מ{{PLURAL:$1|שנייה אחת|־$1 שניות}} אינם מוצגים ברשימה זו.",
"lag-warn-high": "בגלל עיכוב בעדכון בסיס הנתונים, שינויים שבוצעו לפני פחות מ{{PLURAL:$1|שנייה אחת|־$1 שניות}} אינם מוצגים ברשימה זו.",
"watchlistedit-numitems": "יש לכם {{PLURAL:$1|פריט אחד|$1 פריטים}} ברשימת המעקב, לא כולל דפי שיחה.",
"compare-invalid-title": "שם הדף שציינת אינו תקין.",
"compare-title-not-exists": "הדף שציינת אינו קיים.",
"compare-revision-not-exists": "הגרסה שציינת אינה קיימת.",
- "dberr-header": "בעיה בוויקי",
"dberr-problems": "מצטערים! קיימת בעיה טכנית באתר זה.",
"dberr-again": "נסו להמתין מספר שניות ולהעלות מחדש את הדף.",
"dberr-info": "(לא ניתן ליצור קשר עם שרת הנתונים: $1)",
"readonly_lag": "Die Datebank woard automatisch für Schreibzugriffe gesperrt, domit sich die verteilte Datebankserver (Slaves/Skloove) mit dem Hauptdatebankserver (Master / Meister) abgegleicht sin könne.",
"internalerror": "Interner Fehler",
"internalerror_info": "Interner Fehler: $1",
- "fileappenderrorread": "„$1“ konnt im Verloof von der Hinzufüche net geles sin.",
- "fileappenderror": "Konnt „$1“ net an \"$2\" oonhänge.",
"filecopyerror": "Die Datei \"$1\" konnt net noh \"$2\" kopiert sin.",
"filerenameerror": "Die Datei \"$1\" konnt net noh \"$2\" umbenannt sin.",
"filedeleteerror": "Die Datei \"$1\" konnt net gelöscht sin.",
"directorycreateerror": "Das Verzeichnis \"$1\" konnt net oongeleht sin.",
"filenotfound": "Die Datei \"$1\" woard net gefund.",
- "fileexistserror": "In die Datei \"$1\" konnt net geschrieb sin, weil die Datei schon voarhand ist.",
"unexpected": "Unerwoorteter Weart: „$1“ = „$2“",
"formerror": "Fehler: Die Igäb konnte net veroorbeitet sin.",
"badarticleerror": "Die Aktion kann uff die Seit net oongewendt sin.",
"userlogin-helplink2": "Hellef bei der Oonmeldung",
"userlogin-loggedin": "Du bist schon als {{GENDER:$1|$1}} oongemeldt.\nBenutz das unne stehnd Formular, um dich unner enem annren Benutzername oonzumelde.",
"userlogin-createanother": "En weitres Benutzerkonto erstelle",
- "createacct-join": "Geb do unne deine Informatione ren.",
- "createacct-another-join": "Geb do unne die Informationen von der neie Benutzerkonto ren.",
"createacct-emailrequired": "E-Mail-Adress",
"createacct-emailoptional": "E-Mail-Adress (optional)",
"createacct-email-ph": "Geb dein E-Mail-Adress ren",
"savearticle": "Seit speichre",
"preview": "Voarschau",
"showpreview": "Vorschau zeiche",
- "showlivepreview": "Sofortiche Voarschau",
"showdiff": "Ändrunge zeiche",
"anoneditwarning": "Du beoorbeitest die Seit unoongemeldet. Wenn du sie abspeichre tust, weard dein aktuelle Komputador IP-Adress in der Versionsgeschicht uffgezeichnet und ist domit unwiderruflich und kann '''öffentlich''' gesiehn sind.",
"anonpreviewwarning": "''Du bist net oongemeldet. Beim Speichre weard dein IP-Adress in der Versionsgeschicht uffgezeichnet.''",
"search-nonefound": "Zu deiner Suchoonfroch wore ken Ergebnisse gefund.",
"powersearch-legend": "Erweiterte Such",
"powersearch-ns": "Such in Noomeräume:",
- "powersearch-redir": "Weiterleitunge oonzeiche",
"powersearch-togglelabel": "Wähl aus:",
"powersearch-toggleall": "All",
"powersearch-togglenone": "Ken",
"prefs-advancedsearchoptions": "Erweiterte Optione",
"prefs-advancedwatchlist": "Erweiterte Optione",
"prefs-displayrc": "Oonzeichoptione",
- "prefs-displaysearchoptions": "Oonzeichoptione",
"prefs-displaywatchlist": "Oonzeichoptione",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Versionsvergleich",
"tooltip-undo": "\"Umwerfe\" Macht ledichlich die en Ännrung rückgängich und zeicht das Resultoot in der Vorschau an, domit in der Zusammenfassungszeil, im Summarium, en Begründung oongeb sin kann.",
"tooltip-preferences-save": "Einstellunge speichre",
"tooltip-summary": "Tue en koorz Zusammerfassung ren gewe.",
- "notacceptable": "Der Wiki-Server kann die Date net für dein Ausgäbgerät uffbereite.",
"anonymous": "{{PLURAL:$1|Unangemeldeter Benutzer|Unangemeldete Benutzer}} uff {{SITENAME}}",
"siteuser": "{{SITENAME}}-{{GENDER:$2|Benutzer|Benutzerin|Benutzer}} $1",
"anonuser": "Anonymer {{SITENAME}}-Benutzer $1",
"autosumm-replace": "Der Seiteinhalt woard dorrich en annre Text ersetzt: \"$1\"",
"autoredircomment": "Weiterleitung noh [[$1]] erstellt",
"autosumm-new": "Die Seit woard nei oongeleht: „$1“",
- "livepreview-loading": "Am loode …",
- "livepreview-ready": "Lood … Fertich!",
- "livepreview-failed": "Die Vorschau kann net sofort oongezeicht sin!\nBittschön nutz die reguläre Voarschau.",
- "livepreview-error": "Verbinnung net möchlich: $1 \"$2\". Bittschön die normale Voarschau benutze.",
"lag-warn-normal": "Beoorbeitunge von der letzte {{PLURAL:$1|Sekund|$1 Sekunde}} werre in der List noch net oongezeicht.",
"lag-warn-high": "Uff Grund von hocher Datebankauslaschtung werre die Beoorbeitunge von der letzte {{PLURAL:$1|Sekund|$1 Sekunde}} noch net in der List oongezeicht.",
"watchlistedit-numitems": "Deine Beobachtungslist enthält {{PLURAL:$1|ein Introoch|$1 Einträche}}. Die Diskussionsseite woorre dabei net mitgezählt.",
"compare-invalid-title": "Der oongebne Seitenoome ist ungültich.",
"compare-title-not-exists": "Der oongebne Seitenoome ist net voarhand.",
"compare-revision-not-exists": "Die oongebne Version ist net voarhand.",
- "dberr-header": "Das Wiki hot en Problem",
"dberr-problems": "Entschuldichung. Die Seit hot momentan technische Schwierichkeite.",
"dberr-again": "Woort en pooh Minute und versuch dann nochmo zu loode.",
"dberr-info": "(Kann ken Verbinnung zum Datebank-Server hearstelle: $1)",
"readonly_lag": "Datowa banka bu awtomatisce zawrjena, mjeztym zo pospytuja wotwisne serwery datowych bankow hłowny serwer docpěć",
"internalerror": "Znutřkowny zmylk",
"internalerror_info": "Znutřkowny zmylk: $1",
- "fileappenderrorread": "\"$1\" njeda so čitać při připowěšenju.",
- "fileappenderror": "Njeje móžno było \"$1\" k \"$2\" připowěsnyć.",
"filecopyerror": "Njebě móžno dataju „$1” do „$2” kopěrować.",
"filerenameerror": "Njebě móžno dataju „$1” do „$2” přemjenować.",
"filedeleteerror": "Njebě móžno dataju „$1” wušmórnyć.",
"directorycreateerror": "Zapis „$1“ njeda so wutworić.",
"filenotfound": "Njebě móžno dataju „$1” namakać.",
- "fileexistserror": "Njebě móžno do dataje „$1“ pisać: Dataja eksistuje.",
"unexpected": "Njewočakowana hódnota: \"$1\"=\"$2\".",
"formerror": "Zmylk: Njebě móžno formular wotesłać.",
"badarticleerror": "Tuta akcija njeda so na tutej stronje wuwjesć.",
"userlogin-helplink2": "Pomoc při přizjewjenju",
"userlogin-loggedin": "Sy hižo jako {{GENDER:$1|$1 přizjewjeny|$1 přizjewjena}}. Wužij slědowacy formular, zo by so jako druhi wužiwar přizjewił.",
"userlogin-createanother": "Dalše konto załožić",
- "createacct-join": "Zapodaj deleka swoje informacije.",
- "createacct-another-join": "Zapodaj deleka informacije noweho konta.",
"createacct-emailrequired": "E-mejlowa adresa",
"createacct-emailoptional": "E-mejlowa adresa (opcionalny)",
"createacct-email-ph": "Zapodaj swoju e-mejlowu adresu",
"savearticle": "Stronu składować",
"preview": "Přehlad",
"showpreview": "Přehlad pokazać",
- "showlivepreview": "Hnydomny přehlad",
"showdiff": "Změny pokazać",
"anoneditwarning": "'''Kedźbu:''' Njejsy přizjewjeny. Twoja IP-adresa budźe so do wersijowych stawiznow strony přijimać.",
"anonpreviewwarning": "''Njejsy přizjewjeny. Składowanje přenošuje twoju IP-adresu do wobdźěłowanskeje historije tuteje strony.''",
"search-nonefound": "Njebuchu wuslědki namakane, kotrež naprašowanju wotpowěduja.",
"powersearch-legend": "Rozšěrjene pytanje",
"powersearch-ns": "W mjenowych rumach pytać:",
- "powersearch-redir": "Daleposrědkowanja nalistować",
"powersearch-togglelabel": "Kontrolować:",
"powersearch-toggleall": "Wšě",
"powersearch-togglenone": "Žadyn",
"prefs-advancedsearchoptions": "Rozšěrjene opcije",
"prefs-advancedwatchlist": "Rozšěrjene opcije",
"prefs-displayrc": "Zwobraznjenske opcije",
- "prefs-displaysearchoptions": "Zwobraznjenske opcije",
"prefs-displaywatchlist": "Zwobraznjenske opcije",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Rozdźěle",
"monobook.css": "/* CSS wobdźěłać, zo by so skin „monobook” za wšěčh wužiwarjow tutoho skina priměrił */",
"common.js": "/* Kóždy JavaScript tu so za wšěch wužiwarjow při kóždym zwobraznjenju někajkeje strony začita. */",
"monobook.js": "/* Slědowacy JavaScript začita so za wužiwarjow, kotřiž šat MonoBook wužiwaja */",
- "notacceptable": "Serwer wikija njemóže daty we formaće poskićić, kotryž twój wudawanski nastroj móže čitać.",
"anonymous": "{{PLURAL:$1|Anonymny wužiwar|Anonymnaj wužiwarjej|Anonymni wužiwarjo|Anonymni wužiwarjo}} we {{GRAMMAR:lokatiw|{{SITENAME}}}}",
"siteuser": "wužiwarja $1 na {{GRAMMAR:lokatiw|{{SITENAME}}}}",
"anonuser": "anonymny wužiwar $1 na {{GRAMMAR:lokatiw|{{SITENAME}}}}",
"autoredircomment": "posrědkuju k stronje „[[$1]]”",
"autosumm-new": "Wutwori stronu z '$1'",
"size-kilobytes": "$1 kB",
- "livepreview-loading": "Čita so…",
- "livepreview-ready": "Začitanje… Hotowe!",
- "livepreview-failed": "Dynamiski přehlad njemóžno!\nSpytaj normalny přehlad.",
- "livepreview-error": "Zwisk njemóžno: $1 \"$2\"\nSpytaj normalny přehlad.",
"lag-warn-normal": "Změny {{PLURAL:$1|zašłeje $1 sekundy|zašłeju $1 sekundow|zašłych $1 sekundow|zašłych $1 sekundow}} so w tutej lisćinje hišće njezwobraznjeja.",
"lag-warn-high": "Wućeženja datoweje banki dla so změny {{PLURAL:$1|zašłeje $1 sekundy|zašłeje $1 sekundow|zašłych $1 sekundow|zašłych $1 sekundow}} w tutej lisćinje hišće njepokazuja.",
"watchlistedit-numitems": "Twoje wobkedźbowanki wobsahuja {{PLURAL:$1|1 zapisk|$1 zapiskaj|$1 zapiski|$1 zapiskow}}, diskusijne strony njejsu ličene.",
"compare-invalid-title": "Titul, kotryž sy podał, je njepłaćiwy.",
"compare-title-not-exists": "Titul, kotryž sy podał, njeeksistuje.",
"compare-revision-not-exists": "Wersija, kotruž sy podał, njeeksistuje.",
- "dberr-header": "Tutón wiki ma problem",
"dberr-problems": "Wodaj! Tute sydło ma techniske ćežkosće.",
"dberr-again": "Počakń někotre mjeńšiny a zaktualizuj stronu.",
"dberr-info": "(Njeje móžno ze serwerom datoweje banki zwjazać: $1)",
"readonly_lag": "Az adatbázis automatikusan le lett zárva, amíg a mellékkiszolgálók utolérik a főkiszolgálót.",
"internalerror": "Belső hiba",
"internalerror_info": "Belső hiba: $1",
- "fileappenderrorread": "A(z) „$1” nem olvasható hozzáírás közben.",
- "fileappenderror": "Nem sikerült hozzáfűzni a(z) „$1” fájlt a(z) „$2” fájlhoz.",
"filecopyerror": "Nem tudtam átmásolni a(z) „$1” fájlt „$2” névre.",
"filerenameerror": "Nem tudtam átnevezni a(z) „$1” fájlt „$2” névre.",
"filedeleteerror": "Nem tudtam törölni a(z) „$1” fájlt.",
"directorycreateerror": "Nem tudtam létrehozni a(z) „$1” könyvtárat.",
"filenotfound": "A(z) „$1” fájl nem található.",
- "fileexistserror": "Nem tudtam írni a(z) „$1” fájlba: a fájl már létezik",
"unexpected": "Váratlan érték: „$1”=„$2”.",
"formerror": "Hiba: nem tudom elküldeni az űrlapot",
"badarticleerror": "Ez a tevékenység nem végezhető el ezen a lapon.",
"userlogin-resetpassword-link": "Elfelejtetted a jelszavad?",
"userlogin-loggedin": "Már be vagy jelentkezve mint {{GENDER:$1|$1}}. Ha más néven akarsz belépni, alább megteheted.",
"userlogin-createanother": "Felhasználói fiók létrehozása",
- "createacct-join": "Add meg az alábbi információkat.",
- "createacct-another-join": "Add meg az új fiók adatait alább.",
"createacct-emailrequired": "E-mail cím",
"createacct-emailoptional": "E-mail cím (opcionális)",
"createacct-email-ph": "Add meg e-mail címed",
"savearticle": "Lap mentése",
"preview": "Előnézet",
"showpreview": "Előnézet megtekintése",
- "showlivepreview": "Élő előnézet",
"showdiff": "Változtatások megtekintése",
"anoneditwarning": "'''Figyelem:''' Nem vagy bejelentkezve, ha szerkesztesz, az IP-címed látható lesz a laptörténetben.",
"anonpreviewwarning": "''Nem vagy bejelentkezve. A mentéskor az IP-címed rögzítve lesz a laptörténetben.''",
"search-nonefound": "Nincs egyezés a megadott szöveggel.",
"powersearch-legend": "Részletes keresés",
"powersearch-ns": "Névterek:",
- "powersearch-redir": "Átirányítások megjelenítése",
"powersearch-togglelabel": "Megjelölés:",
"powersearch-toggleall": "Mind",
"powersearch-togglenone": "Egyik sem",
"prefs-advancedsearchoptions": "Haladó beállítások",
"prefs-advancedwatchlist": "Haladó beállítások",
"prefs-displayrc": "Megjelenítési beállítások",
- "prefs-displaysearchoptions": "Megjelenítési beállítások",
"prefs-displaywatchlist": "Megjelenítési beállítások",
"prefs-diffs": "Eltérések (diffek)",
"prefs-help-prefershttps": "A beállítás a legközelebbi belépés után lép érvénybe.",
"group-bot.js": "/* Az ide elhelyezett JavaScript csak botoknak töltődik be */",
"group-sysop.js": "/* Az ide elhelyezett JavaScript csak adminisztrátoroknak töltődik be */",
"group-bureaucrat.js": "/* Az ide elhelyezett JavaScript csak bürokratáknak töltődik be */",
- "notacceptable": "A wiki kiszolgálója nem tudja olyan formátumban biztosítani az adatokat, amit a kliens olvasni tud.",
"anonymous": "Névtelen {{SITENAME}}-{{PLURAL:$1|szerkesztő|szerkesztők}}",
"siteuser": "$1 {{SITENAME}}-felhasználó",
"anonuser": "$1 névtelen {{SITENAME}}-felhasználó",
"autosumm-replace": "A lap tartalmának cseréje erre: $1",
"autoredircomment": "Átirányítás ide: [[$1]]",
"autosumm-new": "Új oldal, tartalma: „$1”",
- "livepreview-loading": "Betöltés…",
- "livepreview-ready": "Betöltés… Kész!",
- "livepreview-failed": "Az élő előnézet nem sikerült! Próbálkozz a normál előnézettel.",
- "livepreview-error": "A csatlakozás nem sikerült: $1 \"$2\". Próbálkozz a normál előnézettel.",
"lag-warn-normal": "{{PLURAL:$1|Az egy|A(z) $1}} másodpercnél frissebb szerkesztések nem biztos, hogy megjelennek ezen a listán.",
"lag-warn-high": "Az adatbázisszerver túlterheltsége miatt {{PLURAL:$1|az egy|a(z) $1}} másodpercnél frissebb változtatások nem biztos, hogy megjelennek ezen a listán.",
"watchlistedit-numitems": "A figyelőlistádon {{PLURAL:$1|egy|$1}} cím szerepel (a vitalapok nélkül).",
"compare-invalid-title": "A megadott cím érvénytelen.",
"compare-title-not-exists": "A megadott cím nem létezik.",
"compare-revision-not-exists": "A megadott lapváltozat nem létezik.",
- "dberr-header": "A wikivel problémák vannak",
"dberr-problems": "Sajnáljuk, de az oldallal technikai problémák vannak.",
"dberr-again": "Várj néhány percet, majd frissítsd az oldalt.",
"dberr-info": "(Nem sikerült kapcsolatot létesíteni az adatbázisszerverrel: $1)",
"tog-showtoolbar": "Monstrar instrumentario de modification",
"tog-editondblclick": "Modificar paginas con duple clic",
"tog-editsectiononrightclick": "Permitter modification de sectiones con clic-a-dextra sur titulos de section",
- "tog-rememberpassword": "Memorar mi contrasigno in iste navigator (pro un maximo de $1 {{PLURAL:$1|die|dies}})",
"tog-watchcreations": "Adder le paginas que io crea e le files que io incarga a mi observatorio",
"tog-watchdefault": "Adder le paginas e files que io modifica a mi observatorio",
"tog-watchmoves": "Adder le paginas e files que io renomina a mi observatorio",
"readonly_lag": "Le base de datos ha essite automaticamente blocate durante que le servitores de base de datos secundari se synchronisa con le servitor principal.",
"internalerror": "Error interne",
"internalerror_info": "Error interne: $1",
- "fileappenderrorread": "Non poteva leger \"$1\" durante le adjunction.",
- "fileappenderror": "Non poteva adjunger \"$1\" a \"$2\".",
"filecopyerror": "Impossibile copiar file \"$1\" a \"$2\".",
"filerenameerror": "Impossibile renominar file \"$1\" a \"$2\".",
"filedeleteerror": "Impossibile deler file \"$1\".",
"directorycreateerror": "Impossibile crear le directorio \"$1\".",
"filenotfound": "Impossibile trovar file \"$1\".",
- "fileexistserror": "Impossibile scriber in le file \"$1\": le file ja existe",
"unexpected": "Valor impreviste: \"$1\"=\"$2\".",
"formerror": "Error: impossibile submitter formulario",
"badarticleerror": "Iste action non pote esser effectuate super iste pagina.",
"userlogin-helplink2": "Adjuta al accesso",
"userlogin-loggedin": "Tu ha jam aperite session como {{GENDER:$1|$1}}.\nUsa le formulario sequente pro aperir session como altere usator.",
"userlogin-createanother": "Crear un altere conto",
- "createacct-join": "Specifica tu information hic infra.",
- "createacct-another-join": "Specifica le informationes del nove conto ci infra.",
"createacct-emailrequired": "Adresse de e-mail",
"createacct-emailoptional": "Adresse de e-mail (optional)",
"createacct-email-ph": "Entra tu adresse de e-mail",
"savearticle": "Publicar pagina",
"preview": "Previsualisation",
"showpreview": "Monstrar previsualisation",
- "showlivepreview": "Previsualisation directe",
"showdiff": "Detaliar modificationes",
"anoneditwarning": "'''Attention:''' Tu non ha aperite un session.\nTu adresse IP essera registrate in le historia de modificationes de iste pagina.",
"anonpreviewwarning": "''Tu non ha aperite un session. Salveguardar registrara tu adresse IP in le historia de modificationes de iste pagina.''",
"search-nonefound": "Le recerca non ha producite resultatos.",
"powersearch-legend": "Recerca avantiate",
"powersearch-ns": "Cercar in spatios de nomines:",
- "powersearch-redir": "Listar redirectiones",
"powersearch-togglelabel": "Seliger:",
"powersearch-toggleall": "Totes",
"powersearch-togglenone": "Nihil",
"prefs-advancedsearchoptions": "Optiones avantiate",
"prefs-advancedwatchlist": "Optiones avantiate",
"prefs-displayrc": "Optiones de presentation",
- "prefs-displaysearchoptions": "Optiones de presentation",
"prefs-displaywatchlist": "Optiones de presentation",
"prefs-tokenwatchlist": "Indicio",
"prefs-diffs": "Differentias",
"pageswithprop-prophidden-binary": "valor de proprietate binari celate ($1)",
"doubleredirects": "Redirectiones duple",
"doubleredirectstext": "Iste pagina lista paginas de redirection verso altere paginas de redirection.\nCata linea contine ligamines al prime e al secunde redirection, con le destination del secunde redirection. Iste es normalmente le \"ver\" pagina de destination, al qual le prime redirection tamben deberea punctar.\nLe entratas <del>cancellate</del> ha essite resolvite.",
- "double-redirect-fixed-move": "[[$1]] ha essite renominate, illo es ora un redirection verso [[$2]]",
- "double-redirect-fixed-maintenance": "Corrige redirection duple de [[$1]] a [[$2]].",
+ "double-redirect-fixed-move": "[[$1]] ha essite renominate.\nIllo ha essite automaticamente actualisate e ora redirige verso [[$2]].",
+ "double-redirect-fixed-maintenance": "Corrige automaticamente le redirection duple de [[$1]] a [[$2]] durante un carga de mantenentia.",
"double-redirect-fixer": "Corrector de redirectiones",
"brokenredirects": "Redirectiones rupte",
"brokenredirectstext": "Le sequente redirectiones mena a paginas non existente:",
"monobook.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia MonoBook */",
"modern.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia Moderne */",
"vector.js": "/* Omne JavaScript hic se executara pro le usatores del apparentia Vector */",
- "notacceptable": "Le servitor wiki non pote provider datos in un formato que tu cliente sape leger.",
"anonymous": "{{PLURAL:$1|Usator|Usatores}} anonyme de {{SITENAME}}",
"siteuser": "Usator $1 de {{SITENAME}}",
"anonuser": "le usator anonyme $1 de {{SITENAME}}",
"autosumm-replace": "Contento reimplaciate per '$1'",
"autoredircomment": "Redirection verso [[$1]]",
"autosumm-new": "Pagina create con '$1'",
- "livepreview-loading": "Cargamento in curso…",
- "livepreview-ready": "Cargamento in curso… Preste!",
- "livepreview-failed": "Le previsualisation directe ha fallite! Prova le previsualisation normal.",
- "livepreview-error": "Impossibile connecter: $1 \"$2\". Prova le previsualisation normal.",
"lag-warn-normal": "Le modificationes plus nove que $1 {{PLURAL:$1|secunda|secundas}} possibilemente non se revela in iste lista.",
"lag-warn-high": "Le servitor del base de datos es in retardo; modificationes facite durante le ultime $1 {{PLURAL:$1|secunda|secundas}} possibilemente non appare in iste lista.",
"watchlistedit-numitems": "Tu observatorio contine {{PLURAL:$1|1 titulo|$1 titulos}}, excludente le paginas de discussion.",
"compare-invalid-title": "Le titulo que tu specificava es invalide.",
"compare-title-not-exists": "Le titulo que tu specificava non existe.",
"compare-revision-not-exists": "Le version que tu specificava non existe.",
- "dberr-header": "Iste wiki ha un problema",
"dberr-problems": "Pardono! Iste sito ha incontrate difficultates technic.",
"dberr-again": "Proba attender alcun minutas e recargar.",
"dberr-info": "(Non pote contactar le servitor del base de datos: $1)",
"readonly_lag": "Il database è stato bloccato automaticamente per consentire ai server con i database slave di sincronizzarsi con il master",
"internalerror": "Errore interno",
"internalerror_info": "Errore interno: $1",
- "fileappenderrorread": "Non è stato possibile leggere \"$1\" durante l'aggiunta.",
- "fileappenderror": "Impossibile aggiungere \"$1\" a \"$2\".",
"filecopyerror": "Impossibile copiare il file \"$1\" in \"$2\".",
"filerenameerror": "Impossibile rinominare il file \"$1\" in \"$2\".",
"filedeleteerror": "Impossibile cancellare il file \"$1\".",
"directorycreateerror": "Impossibile creare la directory \"$1\".",
"filenotfound": "Impossibile trovare il file \"$1\".",
- "fileexistserror": "Impossibile scrivere il file \"$1\": il file esiste già",
"unexpected": "Valore imprevisto: \"$1\"=\"$2\".",
"formerror": "Errore: impossibile inviare il modulo",
"badarticleerror": "Operazione non consentita per questa pagina.",
"userlogin-helplink2": "Aiuto con l'accesso",
"userlogin-loggedin": "Sei già connesso come {{GENDER:$1|$1}}.\nUsa il modulo sottostante per accedere come altro utente.",
"userlogin-createanother": "Crea un'altra utenza",
- "createacct-join": "Inserisci i tuoi dati qui sotto.",
- "createacct-another-join": "Inserisci le informazioni per la registrazione qui sotto.",
"createacct-emailrequired": "Indirizzo email",
"createacct-emailoptional": "Indirizzo di posta elettronica (opzionale)",
"createacct-email-ph": "Inserisci il tuo indirizzo email",
"savearticle": "Salva la pagina",
"preview": "Anteprima",
"showpreview": "Visualizza anteprima",
- "showlivepreview": "Funzione ''Live preview''",
"showdiff": "Mostra modifiche",
"anoneditwarning": "'''Attenzione:''' Accesso non effettuato. Nella cronologia della pagina verrà registrato il tuo indirizzo IP.",
"anonpreviewwarning": "''Non è stato eseguito il login. Salvando la pagina, il proprio indirizzo IP sarà registrato nella cronologia.''",
"search-nonefound": "La ricerca non ha prodotto risultati.",
"powersearch-legend": "Ricerca avanzata",
"powersearch-ns": "Cerca nei namespace:",
- "powersearch-redir": "Elenca redirect",
"powersearch-togglelabel": "Seleziona:",
"powersearch-toggleall": "Tutti",
"powersearch-togglenone": "Nessuno",
"default": "predefinito",
"prefs-files": "File",
"prefs-custom-css": "CSS personalizzato",
- "prefs-custom-js": "JS personalizzato",
- "prefs-common-css-js": "CSS/JS condiviso per tutte le skin:",
+ "prefs-custom-js": "JavaScript personalizzato",
+ "prefs-common-css-js": "CSS/JavaScript condiviso per tutte le skin:",
"prefs-reset-intro": "È possibile usare questa pagina per reimpostare le proprie preferenze a quelle predefinite del sito.\nL'operazione non può essere annullata.",
"prefs-emailconfirm-label": "Conferma dell'e-mail:",
"youremail": "Indirizzo email:",
"prefs-advancedsearchoptions": "Opzioni avanzate",
"prefs-advancedwatchlist": "Opzioni avanzate",
"prefs-displayrc": "Opzioni di visualizzazione",
- "prefs-displaysearchoptions": "Opzioni di visualizzazione",
"prefs-displaywatchlist": "Opzioni di visualizzazione",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Differenze",
"pageswithprop-prophidden-binary": "valore binario della proprietà nascosto ($1)",
"doubleredirects": "Redirect doppi",
"doubleredirectstext": "In questa pagina sono elencate pagine che reindirizzano ad altre pagine di redirect.\nCiascuna riga contiene i collegamenti al primo ed al secondo redirect, oltre alla prima riga di testo del secondo redirect che di solito contiene la pagina di destinazione \"corretta\" alla quale dovrebbe puntare anche il primo redirect.\nI redirect <del>cancellati</del> sono stati corretti.",
- "double-redirect-fixed-move": "[[$1]] è stata spostato.\nE' stato automaticamente aggiornato e ora è un redirect a [[$2]].",
- "double-redirect-fixed-maintenance": "Correggere automaticamente il doppio redirect da [[$1]] a [[$2]] nel lavoro di manutenzione.",
+ "double-redirect-fixed-move": "[[$1]] è stata spostato.\nÈ stato automaticamente aggiornato e ora è un redirect a [[$2]].",
+ "double-redirect-fixed-maintenance": "Corretto automaticamente il doppio redirect da [[$1]] a [[$2]] nel lavoro di manutenzione.",
"double-redirect-fixer": "Correttore di redirect",
"brokenredirects": "Redirect errati",
"brokenredirectstext": "I seguenti redirect puntano a pagine inesistenti:",
"group-bot.js": "/ * Il codice JavaScript inserito qui viene caricato solo per i bot * /",
"group-sysop.js": "/ * Il codice JavaScript inserito qui viene caricato solo per gli amministratori/sysop * /",
"group-bureaucrat.js": "/ * Il codice JavaScript inserito qui viene caricato solo per i burocrati * /",
- "notacceptable": "Il server wiki non è in grado di fornire i dati in un formato leggibile dal client.",
"anonymous": "{{PLURAL:$1|Utente anonimo|Utenti anonimi}} di {{SITENAME}}",
"siteuser": "$1, utente di {{SITENAME}}",
"anonuser": "$1, utente anonimo di {{SITENAME}}",
"autoredircomment": "Redirect alla pagina [[$1]]",
"autosumm-new": "Creata pagina con \"$1\"",
"size-bytes": "$1 byte",
- "livepreview-loading": "Caricamento in corso...",
- "livepreview-ready": "Caricamento in corso… Pronto.",
- "livepreview-failed": "Errore nella funzione Live preview.\nUsare l'anteprima standard.",
- "livepreview-error": "Impossibile effettuare il collegamento: $1 \"$2\"\nUsare l'anteprima standard.",
"lag-warn-normal": "Le modifiche apportate {{PLURAL:$1|nell'ultimo secondo|negli ultimi $1 secondi}} potrebbero non apparire in questa lista.",
"lag-warn-high": "A causa di un eccessivo ritardo nell'aggiornamento del server di database, le modifiche apportate {{PLURAL:$1|nell'ultimo secondo|negli ultimi $1 secondi}} potrebbero non apparire in questa lista.",
"watchlistedit-numitems": "La lista degli osservati speciali contiene {{PLURAL:$1|una pagina (e la rispettiva pagina di discussione)|$1 pagine (e le rispettive pagine di discussione)}}.",
"compare-invalid-title": "Il titolo che hai specificato non è valido.",
"compare-title-not-exists": "Il titolo che hai specificato non esiste.",
"compare-revision-not-exists": "La revisione che hai specificato non esiste.",
- "dberr-header": "Questa wiki ha un problema",
"dberr-problems": "Questo sito sta avendo dei problemi tecnici.",
"dberr-again": "Prova ad attendere qualche minuto e ricaricare.",
"dberr-info": "(Impossibile contattare il server del database: $1)",
"readonly_lag": "データベースはスレーブのデータベースサーバーがマスターに同期するまで自動的にロックされています",
"internalerror": "内部エラー",
"internalerror_info": "内部エラー: $1",
- "fileappenderrorread": "追加中に、「$1」を読み取れませんでした。",
- "fileappenderror": "「$1」を「$2」に追加できませんでした。",
"filecopyerror": "ファイル「$1」を「$2」に複製できませんでした。",
"filerenameerror": "ファイル名を「$1」から「$2」へ変更できませんでした。",
"filedeleteerror": "ファイル「$1」を削除できませんでした。",
"directorycreateerror": "ディレクトリ「$1」を作成できませんでした。",
"filenotfound": "ファイル「$1」が見つかりませんでした。",
- "fileexistserror": "ファイル「$1」に書き込めませんでした: ファイルが存在します。",
"unexpected": "予期しない値「$1」=「$2」です。",
"formerror": "エラー: フォームを送信できませんでした。",
"badarticleerror": "このページでは要求された操作を行えません。",
"userlogin-helplink2": "ログインについてのヘルプ",
"userlogin-loggedin": "{{GENDER:$1|$1}} として既にログインしています。\n別の利用者としてログインするには下のフォームを使用してください。",
"userlogin-createanother": "別アカウントを作成",
- "createacct-join": "以下の情報を入力してください。",
- "createacct-another-join": "新しいアカウントの情報を以下に記入してください。",
"createacct-emailrequired": "メールアドレス",
"createacct-emailoptional": "メールアドレス (省略可能)",
"createacct-email-ph": "メールアドレスを入力",
"savearticle": "ページを保存",
"preview": "プレビュー",
"showpreview": "プレビューを表示",
- "showlivepreview": "ライブプレビュー",
"showdiff": "差分を表示",
"anoneditwarning": "<strong>警告:</strong> ログインしていません。\n編集すると、IPアドレスがこのページの編集履歴に記録されます。",
"anonpreviewwarning": "<em>ログインしていません。投稿を保存すると、ご使用中のIPアドレスがこのページの履歴に記録されます。</em>",
"search-nonefound": "問い合わせに合致する検索結果はありませんでした。",
"powersearch-legend": "高度な検索",
"powersearch-ns": "名前空間を指定して検索:",
- "powersearch-redir": "転送ページを含める",
"powersearch-togglelabel": "チェックを入れる:",
"powersearch-toggleall": "すべて",
"powersearch-togglenone": "すべて外す",
"prefs-advancedsearchoptions": "詳細設定",
"prefs-advancedwatchlist": "詳細設定",
"prefs-displayrc": "表示の設定",
- "prefs-displaysearchoptions": "表示の設定",
"prefs-displaywatchlist": "表示の設定",
"prefs-tokenwatchlist": "トークン",
"prefs-diffs": "差分",
"recentchanges-legend-newpage": "([[Special:NewPages|新しいページ一覧]]も参照)",
"recentchanges-legend-plusminus": "(<em>±123</em>)",
"rcnotefrom": "以下は<strong>$2</strong>以降の更新です (最大 <strong>$1</strong> 件)。",
- "rclistfrom": "$1以降の更新を表示する",
+ "rclistfrom": "$3の$2以降の更新を表示する",
"rcshowhideminor": "細部の編集を$1",
"rcshowhideminor-show": "表示",
"rcshowhideminor-hide": "非表示",
"group-bot.js": "/* ここにあるすべてのJavaScriptは、ボットのみに読み込まれます */",
"group-sysop.js": "/* ここにあるすべてのJavaScriptは、管理者のみに読み込まれます */",
"group-bureaucrat.js": "/* ここにあるすべてのJavaScriptは、ビューロクラットのみに読み込まれます */",
- "notacceptable": "ウィキサーバーは、ご使用中のクライアントが読める形式では情報を提供できません。",
"anonymous": "{{SITENAME}}の匿名{{PLURAL:$1|利用者}}",
"siteuser": "{{SITENAME}}の利用者 $1",
"anonuser": "{{SITENAME}}の匿名利用者 $1",
"size-exabytes": "$1 EB",
"size-zetabytes": "$1 ZB",
"size-yottabytes": "$1 YB",
- "livepreview-loading": "読み込み中...",
- "livepreview-ready": "読み込み中...完了!",
- "livepreview-failed": "ライブプレビューが失敗しました!\n通常のプレビューを試してください。",
- "livepreview-error": "接続に失敗しました: $1「$2」。\n通常のプレビューを試してください。",
"lag-warn-normal": "この一覧には $1 {{PLURAL:$1|秒}}前以降の変更内容が表示されていないおそれがあります。",
"lag-warn-high": "データベースサーバーの大幅な遅延のため、この一覧には $1 {{PLURAL:$1|秒}}前以降の変更内容が表示されていないおそれがあります。",
"watchlistedit-numitems": "ウォッチリストには {{PLURAL:$1|$1 件のページ}}が登録されています (トークページを除く)。",
"compare-invalid-title": "指定したページ名は無効です。",
"compare-title-not-exists": "指定したページは存在しません。",
"compare-revision-not-exists": "指定した版は存在しません。",
- "dberr-header": "このウィキには問題があります",
"dberr-problems": "申し訳ありません! このウェブサイトに技術的な障害が発生しています。",
"dberr-again": "数分間待った後、もう一度読み込んでください。",
"dberr-info": "(データベースサーバー $1 に接続できませんでした)",
"readonly_lag": "მონაცემთა ბაზა ავტომატურად დაიხურა, სანამ შვილობილი ბაზის სერვერები მთავარ ბაზასთან სინქრონიზაციას ახდენს",
"internalerror": "შიდა შეცდომა",
"internalerror_info": "შიდა შეცდომა: $1",
- "fileappenderrorread": "შეუძლებელია „$1“-ის წაკითხვა დამატებისას.",
- "fileappenderror": "ვერ მოხერხდა „$1“ შეერთება „$2“-თან",
"filecopyerror": "„$1“ ფაილის „$2“-ზე კოპირება ვერ მოხერხდა.",
"filerenameerror": "შეუძლებელია ფაილის „$1“ სათაურის შეცვლა სახელწოდებით „$2“.",
"filedeleteerror": "ფაილის „$1“ წაშლა ვერ მოხერხდა.",
"directorycreateerror": "დირექტორიის „$1“ შექმნა შეუძლებელია.",
"filenotfound": "ფაილის „$1“ მოძიება ვერ მოხერხდა.",
- "fileexistserror": "შეუძლებელია ფაილის „$1“ ჩაწერა: ფაილი არსებობს",
"unexpected": "გაუთვალისწინებელი სიდიდე: „$1“=„$2“.",
"formerror": "შეცდომა: ფორმის გაგზავნა ვერ მოხერხდა.",
"badarticleerror": "ეს მოქმედება ვერ შესრულდება ამ გვერდზე.",
"userlogin-resetlink": "ავტორიზაციის მონაცემები დაგავიწყდათ?",
"userlogin-resetpassword-link": "დაგავიწყდათ პაროლი?",
"userlogin-createanother": "სხვა ანგარიშის შექმნა",
- "createacct-join": "ქვემოთ მიუთითეთ ინფორმაცია თქვენ შესახებ.",
- "createacct-another-join": "ქვემოთ შეიყვანეთ ახალი ანგარიშის ინფორმაცია.",
"createacct-emailrequired": "ელ. ფოსტის მისამართი",
"createacct-emailoptional": "ელ. ფოსტის მისამართი (არასავალდებულო)",
"createacct-email-ph": "შეიყვანეთ თქვენი ელ. ფოსტის მისამართი",
"savearticle": "შენახვა",
"preview": "წინასწარი გადახედვა",
"showpreview": "წინასწარი გადახედვა",
- "showlivepreview": "შავი ნიმუში",
"showdiff": "ცვლილებების ჩვენება",
"anoneditwarning": "'''გაფრთხილება:''' თქვენ არ ხართ რეგისტრირებული. თქვენი IP მისამართი ჩაიწერება ამ გვერდის რედაქტირების ისტორიაში.",
"anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP მისამართი შეინახება გვერდის ისტორიაში. ''",
"search-nonefound": "მოთხოვნის შესაბამისობა არ არის ნაპოვნი.",
"powersearch-legend": "გაფართოებული ძიება",
"powersearch-ns": "ძიება სახელთა სივრცეებში:",
- "powersearch-redir": "გადამისამართებების სიის ჩვენება",
"powersearch-togglelabel": "მონიშვნა:",
"powersearch-toggleall": "ყველა",
"powersearch-togglenone": "არაფერი",
"prefs-advancedsearchoptions": "გაფართოებული პარამეტრები",
"prefs-advancedwatchlist": "გაფართოებული კონფიგურაციები",
"prefs-displayrc": "გამოსახვის კონფიგურაციები",
- "prefs-displaysearchoptions": "გამოსახვის კონფიგურაციები",
"prefs-displaywatchlist": "გამოსახვის კონფიგურაციები",
"prefs-tokenwatchlist": "ჟეტონი",
"prefs-diffs": "სხვაობა ვერსიებს შორის",
"group-sysop.css": "/* აქ განთავსებული CSS გამოყენებული იქნება მხოლოდ ადმინისტრატორებისათვის */",
"group-bureaucrat.css": "/* აქ განთავსებული CSS გამოყენებული იქნება მხოლოდ ბიუროკრატებისათვის */",
"common.js": "/* აქ ნებისმიერი ჯავასკრიპტი ყველა მომხმარებლისთვის ჩაიტვირთება ყველა გვერდზე. */",
- "notacceptable": "ვიკი სერვერს არ შეუძლია წარმოგიდგინოთ ინფორმაცია იმ სახით, რომლის კითხვა თქვენ ბრაუზერს შეუძლია.",
"anonymous": "{{SITENAME}}-ის ანონიმური {{PLURAL:$1|მომხმარებელი|მომხმარებლები}}",
"siteuser": "{{SITENAME}} მომხმარებელი $1",
"anonuser": "{{SITENAME}} ანონიმური მომხმარებელი $1",
"bitrate-exabits": "$1 ებ/წმ",
"bitrate-zetabits": "$1 ზბ/წმ",
"bitrate-yottabits": "$1 იბ/წმ",
- "livepreview-loading": "იტვირთება…",
- "livepreview-ready": "იტვირთება… მზადაა!",
- "livepreview-failed": "ვვერ მოხერხდა ჩქარი წინასწარ გადახედვის განხორციელება. ეცადეთ ჩვეულებრივი წინასწარ გადახედვის გამოყენება/",
- "livepreview-error": "ვერ მოხერხდა დაკავშირება: $1 «$2». ეცადეთ ჩვეულებრივი წინასწარ გადახედვის გამოყენება.",
"lag-warn-normal": "სიაში $1 {{PLURAL:$1|წამი|წამები|წამებში}} განხორციელებული ცვლილებები არ იქნება ნაჩვენები ამ სიაში.",
"lag-warn-high": "სერვერთა სიქრონიზაციაში შეფერხების გამო $1 {{PLURAL:$1|წამი|წამები|წამებში}} განხორციელებული ცვლილებები არ იქნება ნაჩვენები ამ სიაში.",
"watchlistedit-numitems": "თქვენი კონტროლის სია $1 სათაურს შეიცავს, განხილვის გვერდების გარდა.",
"compare-invalid-title": "თქვენ მიერ მითითებულია დაუშვებელი სახელი.",
"compare-title-not-exists": "თქვენ მიერ მითითებული სახელი არ არსებობს.",
"compare-revision-not-exists": "თქვენ მიერ მითითებული ვერსია არ არსებობს.",
- "dberr-header": "ეს ვიკი განიცდის პრობლემას",
"dberr-problems": "ბოდიში! საიტზე დროებითი ტექნიკური პრობლემებია",
"dberr-again": "ეცადეთ რამდენიმე წუთით დაცდა და ამ გვერდის გადატვირთვა",
"dberr-info": "ვერ მოხერხდა ინფორმაციის $1 სერვერთან დაკავშირება",
"readonly_lag": "Жетек дерекқор серверлер басқасымен қадамланғанда осы дерекқор өздіктік құлыпталынған",
"internalerror": "Ішкі қате",
"internalerror_info": "Ішкі қатесі: $1",
- "fileappenderrorread": "Толықтыру кезінде «$1» оқылмады.",
- "fileappenderror": "«$2» -ге \"$1\" -ді қосу мүмкін болмады.",
"filecopyerror": "«$1» файлы «$2» файлына көшірілмеді.",
"filerenameerror": "«$1» файл атауы «$2» атауына өзгертілмеді.",
"filedeleteerror": "«$1» файлы жойылмайды.",
"directorycreateerror": "«$1» қалтасы құрылмады.",
"filenotfound": "«$1» файлы табылмады.",
- "fileexistserror": "«$1» файлға жазу икемді емес: файл бар",
"unexpected": "Күтілмеген мағына: «$1» = «$2».",
"formerror": "Қателік: пішін жөнелтілмейді",
"badarticleerror": "Осындай әрекет мына бетте атқарылмайды.",
"userlogin-helplink2": "Кіруге көмек",
"userlogin-loggedin": "{{GENDER:$1|$1}} ретінде әлдеқашан кіргенсіз.\nТөмендегі пішінді басқа қатысушы кіруі ретінде қолданыңыз.",
"userlogin-createanother": "Басқа тіркелгі жасау",
- "createacct-join": "Төменге өзіңіз туралы ақпарат енгізіңіз.",
- "createacct-another-join": "Төменге жаңа тіркелгі туралы ақпарат енгізіңіз.",
"createacct-emailrequired": "Е-пошта мекен-жайы:",
"createacct-emailoptional": "Е-поштаның мекен-жайы (міндетті емес)",
"createacct-email-ph": "Е-пошта мекен-жайыңызды енгізіңіз",
"savearticle": "Бетті сақтау",
"preview": "Қарап шығу",
"showpreview": "Алдын ала қарау",
- "showlivepreview": "Жылдам қарау",
"showdiff": "Өзгерістерді көрсет",
"anoneditwarning": "'''Ескерту:''' Сіз жүйеге кірмегенсіз.\nIP-мекенжайыңыз бұл беттің түзету тарихында жазылып алынады.",
"anonpreviewwarning": "\"Сіз жүйеге кірмегенсіз. IP-мекенжайыңыз бұл беттің өңдеу тарихында жазылып алынады.\"",
"undo-success": "Бұл өңдеме жоққа шығарылуы мүмкін. Талабыңызды құптап алдын ала төмендегі салыстыруды тексеріп шығыңыз да, өңдемені жоққа шығаруын бітіру үшін төмендегі өзгерістерді сақтаңыз.",
"undo-failure": "Бұл өңдеме жоққа шығарылмайды, себебі арада қақтығысты өңдемелер бар.",
"undo-norev": "Бұл өңдеме жоққа шығарылмайды, себебі бұл жоқ немесе жойылған.",
- "undo-nochange": "Өңдеме әлдеқашан жоққа шығарылғаны анықталыды.",
+ "undo-nochange": "Өңдеме әлдеқашан жоққа шығарылғаны анықталды.",
"undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|т]]) істеген нөмір $1 түзетуін [[Project:Жоққа шығару|жоққа шығарды]]",
"undo-summary-username-hidden": "$1 нұсқасын жасырылған қатысушы жоққа шығарды",
"cantcreateaccounttitle": "Жаңа тіркелгі жасалмады",
"search-nonefound": "Сұрауға сәйкес нәтижелер табылмады.",
"powersearch-legend": "Кеңейтілген іздеу",
"powersearch-ns": "Атау кеңістіктері бойынша іздеу:",
- "powersearch-redir": "Бағыттауларды тізімдеу",
"powersearch-togglelabel": "Белгілеу:",
"powersearch-toggleall": "Барлығы",
"powersearch-togglenone": "Ешқандай",
"prefs-advancedsearchoptions": "Кеңейтілген баптаулар",
"prefs-advancedwatchlist": "Кеңейтілген баптаулар",
"prefs-displayrc": "Көрсету бапталымдары",
- "prefs-displaysearchoptions": "Көрсету бапталымдары",
"prefs-displaywatchlist": "Көрсету бапталымдары",
"prefs-diffs": "Айырмашылықтар",
"prefs-help-prefershttps": "Бұл баптауды келесі кіргеніңізде әсерін көре аласыз.",
"cologneblue.js": "/* Мындағы JavaScript тек «Көлн зеңгірлігі» (cologneblue) мәнерін пайдаланушылар үшін жегіледі */",
"monobook.js": "/* Мындағы JavaScript тек «Дара кітап» (monobook) мәнерін пайдаланушылар үшін жегіледі */",
"modern.js": "/* Мындағы JavaScript тек «Заманауи» (modern) мәнерін пайдаланушылар үшін жегіледі */",
- "notacceptable": "Тұтынғышыңыз оқи алатын пішімі бар деректерді бұл уики сервер жетістіре алмайды.",
"anonymous": "{{SITENAME}} тіркелгісіз {{PLURAL:$1|қатысушысы|қатысушылары}}",
"siteuser": "{{SITENAME}} қатысушы $1",
"anonuser": "{{SITENAME}} анонимді қатысушы: $1",
"autosumm-new": "Жаңа бетте: $1",
"size-bytes": "$1 байт",
"size-kilobytes": "$1 КБ",
- "livepreview-loading": "Жүктеуде…",
- "livepreview-ready": "Жүктеуде… Дайын!",
- "livepreview-failed": "Тура қарап шығу сәтсіз! Кәдімгі қарап шығу әдісін байқап көріңіз.",
- "livepreview-error": "Қосылу сәтсіз: $1 \"$2\". Кәдімгі қарап шығу әдісін байқап көріңіз.",
"lag-warn-normal": "{{PLURAL:$1|секунтта|секунтта}} $1 жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.",
"lag-warn-high": "Дерекқор сервері көп кешігуі себебінен, $1 {{PLURAL:$1|секунтта|сеунтта}} жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.",
"watchlistedit-numitems": "Бақылау тізіміңізде, талқылау беттерсіз, {{PLURAL:$1|1 тақырып аты|$1 тақырып аттары}} бар.",
"compare-invalid-title": "Cіз көрсеткен атау жарамды емес.",
"compare-title-not-exists": "Cіз көрсеткен атау жоқ.",
"compare-revision-not-exists": "Cіз көрсеткен нұсқа жоқ.",
- "dberr-header": "Бұл уикиде мәселе бар",
"htmlform-required": "Бұл мән міндетті",
"htmlform-submit": "Жіберу",
"htmlform-reset": "Өзгерістерді болдырмау",
"readonly_lag": "ಅಡಿಯಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್ ಸರ್ವರ್ಗಳು ಮೂಲ ಸರ್ವರ್ ಒಂದಿಗೆ ಸಮಾನತೆಗೆ ಬರುವವರೆಗೂ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಯಾಂತ್ರಿಕವಾಗಿ ಮುಚ್ಚಲಾಗಿದೆ",
"internalerror": "ಆಂತರಿಕ ದೋಷ",
"internalerror_info": "ಆಂತರಿಕ ದೋಷ: $1",
- "fileappenderrorread": "ಸೇರಿಸುವಾಗ \"$1\" ನ್ನು ಓದಲಾಗಿಲ್ಲ",
- "fileappenderror": "\"$1\"ನ್ನು\"$2\" ರೊಂದಿಗೆ ಸೇರಿಸಲಾಗಿಲ್ಲ",
"filecopyerror": "\"$1\" ಫೈಲ್ ಅನ್ನು \"$2\" ಗೆ ನಕಲಿಸಲಾಗಲಿಲ್ಲ.",
"filerenameerror": "\"$1\" ಫೈಲನ್ನು \"$2\" ಎಂದು ಮರುನಾಮಕರಣ ಮಾಡಲು ಆಗಲಿಲ್ಲ.",
"filedeleteerror": "\"$1\" ಫೈಲ್ ಅನ್ನು ಅಳಿಸಲಾಗಲಿಲ್ಲ.",
"directorycreateerror": "\"$1\" ನಿದರ್ಶಕವನ್ನು ಸೃಷ್ಟಿಸಲಾಗಲಿಲ್ಲ.",
"filenotfound": "\"$1\" ಫೈಲನ್ನು ಹುಡುಕಲಾಗಲಿಲ್ಲ.",
- "fileexistserror": "ಫೈಲು \"$1\" ಅನ್ನು ಬರೆಯಲಾಗಲಿಲ್ಲ: ಫೈಲು ಆಗಲೆ ಇದೆ",
"unexpected": "ಅನಿರೀಕ್ಷಿತ ಮೌಲ್ಯ: \"$1\"=\"$2\".",
"formerror": "ದೋಷ: ಅರ್ಜಿ ಕಳುಹಿಸಲಾಗಲಿಲ್ಲ",
"badarticleerror": "ಈ ಪುಟದ ಮೇಲೆ ನೀವು ಪ್ರಯತ್ನಿಸಿದ ಕಾರ್ಯವನ್ನು ನಡೆಸಲಾಗದು.",
"userlogin-resetpassword-link": "ನಿಮ್ಮ ಪ್ರವೇಶಪದ ಮರೆತಿರೇ?",
"userlogin-helplink2": "ಲಾಗಿನ್ ಆಗಲು ಸಹಾಯ",
"userlogin-createanother": "ಇನ್ನೊಂದು ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ",
- "createacct-join": "ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಕೆಳಗೆ ನಮೂದಿಸಿ",
- "createacct-another-join": "ಹೊಸ ಖಾತೆಯ ವಿವರಗಳನ್ನು ಈ ಕೆಳಗೆ ನಮೂದಿಸಿ.",
"createacct-emailrequired": "ಇ-ಮೇಲ್ ವಿಳಾಸ:",
"createacct-emailoptional": "ಮಿಂಚಂಚೆ ವಿಳಾಸ (ಐಚ್ಛಿಕ)",
"createacct-email-ph": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ",
"savearticle": "ಪುಟವನ್ನು ಉಳಿಸಿ",
"preview": "ಮುನ್ನೋಟ",
"showpreview": "ಮುನ್ನೋಟ",
- "showlivepreview": "ಸಜೀವ ಮುನ್ನೋಟ",
"showdiff": "ಬದಲಾವಣೆಗಳನ್ನು ತೋರಿಸು",
"anoneditwarning": "'''ಎಚ್ಚರ:''' ನೀವು ಲಾಗ್ ಇನ್ ಆಗಿಲ್ಲ. ನಿಮ್ಮ ಐಪಿ ವಿಳಾಸವು ಪುಟದ ಸಂಪಾದನೆಗಳ ಇತಿಹಾಸದಲ್ಲಿ ದಾಖಲಾಗುತ್ತದೆ.",
"anonpreviewwarning": "''ನೀವು ಲಾಗಿನ್ ಆಗಿಲ್ಲ . ಉಳಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ನಿಮ್ಮ IP ವಿಳಾಸವನ್ನು ಈ ಪುಟದ ಸಂಪಾದನೆ ಇತಿಹಾಸದಲ್ಲಿ ನಮೂದಿಸಲಗುವುದು.''",
"search-nonefound": "ನಿಮ್ಮ ವಿಚಾರಣೆಗೆ ತಕ್ಕ ಫಲಿತಾಂಶಗಳಿಲ್ಲ.",
"powersearch-legend": "ಮುಂದುವರೆದ ಹುಡುಕಾಟ",
"powersearch-ns": "ಈ ಪುಟ ಪ್ರಬೇಧಗಳಲ್ಲಿ ಹುಡುಕು:",
- "powersearch-redir": "ಪುನರ್ನಿರ್ದೇಶನಗಳ ಪಟ್ಟಿ",
"powersearch-togglelabel": "ಪರೀಕ್ಷಿಸಿ:",
"powersearch-toggleall": "ಎಲ್ಲಾ",
"powersearch-togglenone": "ಯಾವುದೂ ಇಲ್ಲ",
"prefs-advancedsearchoptions": "ಪರಿಣತ ಇಚ್ಛೆಗಳು",
"prefs-advancedwatchlist": "ಪರಿಣತ ಇಚ್ಛೆಗಳು",
"prefs-displayrc": "ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು",
- "prefs-displaysearchoptions": "ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು",
"prefs-displaywatchlist": "ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು",
"email-address-validity-valid": "ಮಿಂಚಂಚೆ ವಿಳಾಸವು ಸಿಂಧುವೆಂದು ತೋರುತ್ತದೆ",
"email-address-validity-invalid": "ಸಿಂಧುವಾದ ಮಿಂಚಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ",
"tog-extendwatchlist": "주시문서 목록에서 가장 최근의 편집만이 아닌 모든 편집을 보기",
"tog-usenewrc": "최근 바뀜과 주시문서 목록의 문서별 그룹 바뀜",
"tog-numberheadings": "자동으로 머릿글 번호 매기기",
- "tog-showtoolbar": "편집에 툴바 보이기",
+ "tog-showtoolbar": "편집 도구 모음 보이기",
"tog-editondblclick": "더블 클릭으로 문서 편집하기",
"tog-editsectiononrightclick": "제목을 오른쪽 클릭해서 문단 편집하기 활성화",
"tog-watchcreations": "내가 만드는 문서와 내가 올린 파일을 주시문서 목록에 추가",
"readonly_lag": "슬레이브 데이터베이스가 마스터 서버의 자료를 새로 고치는 중입니다. 데이터베이스가 자동으로 잠겨 있습니다.",
"internalerror": "내부 오류",
"internalerror_info": "내부 오류: $1",
- "fileappenderrorread": "내용을 덧붙이는 도중 \"$1\" 파일을 읽을 수 없었습니다.",
- "fileappenderror": "\"$1\" 파일을 \"$2\"에 덧붙일 수 없습니다.",
"filecopyerror": "\"$1\" 파일을 \"$2\"로 복사할 수 없습니다.",
"filerenameerror": "\"$1\" 파일을 \"$2\"로 옮길 수 없습니다.",
"filedeleteerror": "\"$1\" 파일을 삭제할 수 없습니다.",
"directorycreateerror": "\"$1\" 디렉터리를 만들 수 없습니다.",
"filenotfound": "\"$1\" 파일을 찾을 수 없습니다.",
- "fileexistserror": "\"$1\" 파일이 이미 있어서 쓸 수 없습니다.",
"unexpected": "예기치 못한 값: \"$1\"=\"$2\"",
"formerror": "오류: 양식을 제출할 수 없습니다.",
"badarticleerror": "해당 명령은 이 문서에서 실행할 수 없습니다.",
"userlogin-helplink2": "로그인에 대한 도움말",
"userlogin-loggedin": "이미 $1로 로그인되어 있습니다. 아래의 양식을 사용하여 다른 계정으로 로그인하세요.",
"userlogin-createanother": "다른 계정 만들기",
- "createacct-join": "아래에 정보를 입력하세요.",
- "createacct-another-join": "아래에 새 계정의 정보를 입력하세요.",
"createacct-emailrequired": "이메일 주소",
"createacct-emailoptional": "이메일 주소 (선택 사항)",
"createacct-email-ph": "이메일 주소를 입력하세요",
"userexists": "입력한 사용자 계정 이름이 이미 사용되고 있습니다.\n다른 이름을 선택하세요.",
"loginerror": "로그인 오류",
"createacct-error": "계정 만들기 오류",
- "createaccounterror": "ê³\84ì \95ì\9d\84 ë§\8cë\93¤ì§\80 못í\96\88습니다: $1",
+ "createaccounterror": "ê³\84ì \95ì\9d\84 ë§\8cë\93¤ì\88\98 ì\97\86습니다: $1",
"nocookiesnew": "사용자 계정을 만들었지만, 아직 로그인하지 않았습니다.\n{{SITENAME}}에서는 로그인 정보를 저장하기 위해 쿠키를 사용합니다.\n지금 사용하는 웹 브라우저는 쿠키를 사용하지 않도록 설정되어 있습니다.\n로그인하기 전에 웹 브라우저에서 쿠키를 사용하도록 설정해주세요.",
"nocookieslogin": "{{SITENAME}}에서는 로그인을 위해 쿠키를 사용합니다.\n쿠키가 비활성되어 있습니다.\n쿠키 사용을 활성화한 다음 다시 시도하세요.",
"nocookiesfornew": "요청의 출처를 확인할 수 없기 때문에 사용자 계정이 만들어지지 않았습니다.\n쿠키를 허용한 것을 확인한 후에 이 문서를 새로 고치고 나서 다시 시도하세요.",
"invalidemailaddress": "이메일 주소의 형식이 잘못되어 인식할 수 없습니다.\n정상적인 형식의 이메일을 입력하거나 칸을 비워 주세요.",
"cannotchangeemail": "이 위키에서는 계정의 이메일 주소를 바꿀 수 없습니다.",
"emaildisabled": "이 사이트에서는 이메일을 보낼 수 없습니다.",
- "accountcreated": "계정 만들어짐",
+ "accountcreated": "계정이 만들어짐",
"accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|토론]]) 사용자 계정이 만들어졌습니다.",
"createaccount-title": "{{SITENAME}} 계정 만들기",
"createaccount-text": "누군가가 {{SITENAME}} ($4)에서 사용자 이름 \"$2\", 비밀번호 \"$3\"로 당신의 이메일 주소가 등록된 계정을 만들었습니다. \n지금 로그인하여 비밀번호를 바꾸십시오.\n\n실수로 계정을 잘못 만들었다면 이 메시지는 무시해도 됩니다.",
"savearticle": "문서 저장",
"preview": "미리 보기",
"showpreview": "미리 보기",
- "showlivepreview": "실시간 미리 보기",
"showdiff": "차이 보기",
"anoneditwarning": "'''경고''': 로그인하고 있지 않습니다.\nIP 주소가 문서 역사에 남게 됩니다.",
"anonpreviewwarning": "'''로그인하고 있지 않습니다. 문서를 저장하면 당신의 IP 주소가 문서 역사에 남게 됩니다.'''",
"undo-nochange": "편집이 이미 되돌려진 것으로 나타납니다.",
"undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|토론]])의 $1판 편집을 되돌림",
"undo-summary-username-hidden": "숨겨진 사용자가 $1 판을 되돌림",
- "cantcreateaccounttitle": "ê³\84ì \95ì\9d\84 ë§\8cë\93¤ ì\88\98 ì\97\86ì\9d\8c",
+ "cantcreateaccounttitle": "ê³\84ì \95ì\9d\84 ë§\8cë\93¤ ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤",
"cantcreateaccount-text": "현재 아이피 주소('''$1''')는 [[User:$3|$3]] 사용자에 의해 계정 만들기가 차단되었습니다.\n\n차단 이유는 다음과 같습니다: $2",
"cantcreateaccount-range-text": "당신의 IP 주소('''$4''')가 속해 있는 '''$1''' 대역에서의 계정 생성을 [[User:$3|$3]] 사용자가 차단하였습니다.\n\n$3 사용자가 제시한 이유는 \"$2\"입니다.",
"viewpagelogs": "이 문서의 기록 보기",
"search-nonefound": "검색어와 일치하는 결과가 없습니다.",
"powersearch-legend": "고급 검색",
"powersearch-ns": "다음 이름공간에서 검색:",
- "powersearch-redir": "넘겨주기 목록",
"powersearch-togglelabel": "확인:",
"powersearch-toggleall": "모두",
"powersearch-togglenone": "모두 제외",
"prefs-advancedsearchoptions": "고급 설정",
"prefs-advancedwatchlist": "고급 설정",
"prefs-displayrc": "보이기 설정",
- "prefs-displaysearchoptions": "보이기 설정",
"prefs-displaywatchlist": "보이기 설정",
"prefs-tokenwatchlist": "토큰",
"prefs-diffs": "차이",
"recentchanges-legend-newpage": "([[Special:NewPages|새 문서 목록]]도 보세요)",
"recentchanges-legend-plusminus": "(''±123'')",
"rcnotefrom": "다음은 <strong>$2</strong>에서부터 바뀐 문서 <strong>$1</strong>개입니다.",
- "rclistfrom": "$1 이래로 새로 바뀐 문서 보기",
+ "rclistfrom": "$3 $2부터 시작하는 새로 바뀐 문서 보기",
"rcshowhideminor": "사소한 편집을 $1",
"rcshowhideminor-show": "보이기",
"rcshowhideminor-hide": "숨기기",
"listusers-creationsort": "계정을 만든 날짜순으로 정렬",
"listusers-desc": "내림차순으로 정렬",
"usereditcount": "{{PLURAL:$1|편집}} $1회",
- "usercreated": "$1 $2에 계정 {{GENDER:$3|만들어짐}}",
+ "usercreated": "$1 $2에 계정이 {{GENDER:$3|만들어짐}}",
"newpages": "새 문서 목록",
"newpages-username": "사용자 이름:",
"ancientpages": "오래된 문서 목록",
"group-bot.js": "/* 이 자바스크립트 설정은 봇에만 적용됩니다 */",
"group-sysop.js": "/* 이 자바스크립트 설정은 관리자에만 적용됩니다 */",
"group-bureaucrat.js": "/* 이 자바스크립트 설정은 사무관에만 적용됩니다 */",
- "notacceptable": "클라이언트에서 인식 가능한 출력 포맷이 없습니다.",
"anonymous": "{{SITENAME}} 익명 {{PLURAL:$1|사용자}}",
"siteuser": "{{SITENAME}} 사용자 $1",
"anonuser": "{{SITENAME}} 익명 사용자 $1",
"noimages": "그림이 없습니다.",
"ilsubmit": "검색",
"bydate": "날짜",
- "sp-newimages-showfrom": "$1 $2ë¶\80í\84° ì\98¬ë\9d¼ì\98¨ í\8c\8cì\9d¼ 목ë¡\9d 보기",
+ "sp-newimages-showfrom": "$1 $2ë¶\80í\84° ì\8b\9cì\9e\91í\95\98ë\8a\94 ì\83\88 í\8c\8cì\9d¼ 보기",
"seconds": "$1초",
"minutes": "$1분",
"hours": "$1시간",
"autosumm-replace": "문서 내용을 \"$1\"으로 바꿈",
"autoredircomment": "[[$1]] 문서로 넘겨주기",
"autosumm-new": "새 문서: $1",
- "livepreview-loading": "불러오는 중...",
- "livepreview-ready": "불러오는 중... 준비!",
- "livepreview-failed": "실시간 미리 보기 실패!\n일반 미리 보기를 이용하세요.",
- "livepreview-error": "연결에 실패하였습니다: $1 \"$2\"\n일반 미리 보기를 이용하세요.",
"lag-warn-normal": "최근 $1{{PLURAL:$1|초}} 안에 바뀐 문서는 이 목록에서 빠졌을 수 있습니다.",
"lag-warn-high": "데이터베이스 서버의 과도한 부하 때문에 최근 $1{{PLURAL:$1|초}} 안에 바뀐 문서 목록은 보이지 않을 수 있습니다.",
"watchlistedit-numitems": "주시문서 목록에 토론 문서를 제외하고, {{PLURAL:$1|문서 1개|문서 $1개}}가 들어 있습니다.",
"compare-invalid-title": "입력한 제목이 잘못되었습니다.",
"compare-title-not-exists": "입력한 문서가 존재하지 않습니다.",
"compare-revision-not-exists": "지정한 판이 없습니다.",
- "dberr-header": "이 위키에 문제가 있습니다",
"dberr-problems": "죄송합니다! 이 사이트에 기술적인 문제가 발생하고 있습니다.",
"dberr-again": "잠시 기다리고 나서 다시 불러오세요.",
"dberr-info": "(데이터베이스 서버에 연결할 수 없습니다: $1)",
"readonly_lag": "Информация база, экинчи сервер биринчи сервер бла синхронизацияны тындыргъынчы, тюрлендириуледен автомат джабылыб турады.",
"internalerror": "Ич халат",
"internalerror_info": "Ич халат: $1",
- "fileappenderrorread": "«$1» окъулуналмагъанды къошулгъан заманда",
- "fileappenderror": "«$1» файл «$2» файлгъа къошулмайды.",
"filecopyerror": "«$2» файлны «$1» файлгъа копия этиб болмайды.",
"filerenameerror": "«$1» файлны атын «$2» атха алышдырыргъа болмайды.",
"filedeleteerror": "«$1» файлны кетерирге болмайды.",
"directorycreateerror": "«$1» директория къураргъа болмайды.",
"filenotfound": "«$1» файл табылынмайды.",
- "fileexistserror": "«$1» файлгъа джазаргъа болмайды: ол энди барды",
"unexpected": "Келишмеген магъана: «$1»=«$2».",
"formerror": "Халат: форма ташылмайды",
"badarticleerror": "Бу бетде этилирге болмайды быллай амал.",
"userlogin-resetpassword-link": "Паролунгу унутдунгму?",
"userlogin-helplink2": "Кириуде болушлукъ",
"userlogin-createanother": "Башха аккаунт къурау",
- "createacct-join": "Билгилеринги тюбюрекде джаз.",
"createacct-emailrequired": "Электрон почтаны адреси",
"createacct-emailoptional": "Электрон почтаны адреси (амалсыз тюлдю)",
"createacct-email-ph": "Электрон почта адресигизни джазыгъыз",
"savearticle": "Бетни сакъла",
"preview": "Ал къарау",
"showpreview": "Ал къарау",
- "showlivepreview": "Терк ал къарау",
"showdiff": "Къошулгъан тюрлениуле",
"anoneditwarning": "'''Эс бёлюгюз''': Сиз системагъа кирмегенсиз. Сизни IP-адресигиз бу бетни тюрлениу тарихине джазыллыкъды.",
"anonpreviewwarning": "''Сиз тергеу джазыуугъуз бла кирмегенсиз. Бетде тюрлениулени сакълатсагъыз, бетни тюрлениу тарихине IP-адресигиз джазыллыкъды.''",
"search-nonefound": "Соруу бла келишген эсеб джокъду",
"powersearch-legend": "Кенг излеу",
"powersearch-ns": "Атла аламда излеу:",
- "powersearch-redir": "Джибериулени кёргюз",
"powersearch-togglelabel": "Белгиле:",
"powersearch-toggleall": "Барысы да",
"powersearch-togglenone": "Бири да",
"prefs-advancedsearchoptions": "Кенгленнген джарашдырыула",
"prefs-advancedwatchlist": "Кенгленнген джарашдырыула",
"prefs-displayrc": "Кёрюнюуню джарашдырыулары",
- "prefs-displaysearchoptions": "Кёрюнюуню джарашдырыулары",
"prefs-displaywatchlist": "Кёрюнюуню джарашдырыулары",
"prefs-diffs": "Версияланы башхалыкълары",
"prefs-help-prefershttps": "Бу джарашдырыу эндиги авторизацияны ётгенден сора сингдирилликди.",
"tooltip-undo": "Этилиннген тюрлендириуню ызына ал эмда ал къарауну кёргюз, ызына нек алыннгын чертирча",
"tooltip-preferences-save": "Джарашдырыуланы сакълат",
"tooltip-summary": "Къысха ачыкълау джазыгъыз",
- "notacceptable": "Бу вики-сервер сизни браузеригиз излеген форматда билгиле берелмейди.",
"anonymous": "сайтны аноним {{PLURAL:$1|1=къошулуучулары|къошулуучулары}}",
"siteuser": "{{SITENAME}} къошулуучу $1",
"anonuser": "{{SITENAME}} аноним къошулуучу $1",
"size-kilobytes": "$1 КБ",
"size-megabytes": "$1 МБ",
"size-gigabytes": "$1 МБ",
- "livepreview-loading": "Джюклениу...",
- "livepreview-ready": "Джюклениу... Хазырды!",
- "livepreview-failed": "Джанлы ал къарау джетишимсиз! Нормал ал къарауну сынагъыз.",
- "livepreview-error": "Байланыу этиленмеди: $1 \"$2\".\nНормал ал къарауну хайырланыгъыз.",
"lag-warn-normal": "$1 {{PLURAL:$1|секундан}} джангы тюрлендириуле бу тизмеде кёрюнмезге боллукъдула.",
"lag-warn-high": "Билги базаны сервериндеги бек кечигиу себебли, $1 {{PLURAL:$1|секундан}} джангы тюрлендириуле бу тизмеде кёрюнмей къалыргъа болур.",
"watchlistedit-numitems": "Кёзде тургъан тизмеде {{PLURAL:$1|1 джазылгъан|$1 джазылгъан}} барды, сюзюу бетлени тышында.",
"compare-rev2": "Экинчи версия",
"compare-submit": "Тенглешдир",
"compare-title-not-exists": "Белгиленнген башлыкъ джокъду.",
- "dberr-header": "Бу викини проблемасы барды",
"dberr-problems": "Кечериксиз! Бу сайтда техника джаны бла проблемала чыкъгъандыла.",
"dberr-again": "Талай минутну сакълаб, джангыдан кириб кёрюгюз.",
"dberr-info": "(билги базаны сервери бла байлам къурулалмайды: $1)",
"readonly_lag": "D'Datebank gouf automatesch gespaart fir datt d'Zweetserveren (slaves) nees mat dem Haaptserver (master) synchron geschalt kënne ginn.",
"internalerror": "Interne Feeler",
"internalerror_info": "Interne Feeler: $1",
- "fileappenderrorread": "\"$1\" konnt während dem Derbäisetze net gelies ginn.",
- "fileappenderror": "\"$1\" konnt net bei \"$2\" derbäigesat ginn.",
"filecopyerror": "De Fichier \"$1\" konnt net op \"$2\" kopéiert ginn.",
"filerenameerror": "De Fichier \"$1\" konnt net op \"$2\" ëmbenannt ginn.",
"filedeleteerror": "De Fichier \"$1\" konnt net geläscht ginn.",
"directorycreateerror": "De Repertoire \"$1\" konnt net geschafe ginn.",
"filenotfound": "De Fichier \"$1\" gouf net fonnt.",
- "fileexistserror": "De Fichier \"$1\" konnt net geschriwwe ginn, well et dee Fichier scho gëtt.",
"unexpected": "Onerwaarte Wäert: \"$1\"=\"$2\".",
"formerror": "Feeler: Dat wat Dir aginn hutt konnt net verschafft ginn.",
"badarticleerror": "Dës Aktioun kann net op dëser Säit duerchgefouert ginn.",
"userlogin-helplink2": "Hëllef beim Aloggen",
"userlogin-loggedin": "Dir sidd schonn als {{GENDER:$1|$1}} ageloggt.\nBenotzt de Formulaire hei drënner fir Iech als een anere Benotzer anzeloggen.",
"userlogin-createanother": "Maacht een anere Benotzerkont op",
- "createacct-join": "Gitt Är Informatioune hei drënner an.",
- "createacct-another-join": "Gitt d'Informatioune fir den neie Benotzerkont hei drënner an.",
"createacct-emailrequired": "E-Mail-Adress",
"createacct-emailoptional": "E-Mailadress (fakultativ)",
"createacct-email-ph": "Gitt Är E-Mail-Adress an",
"savearticle": "Säit späicheren",
"preview": "Kucken ouni ofzespäicheren",
"showpreview": "Kucken ouni ofzespäicheren",
- "showlivepreview": "Live-Kucken ouni ofzespäicheren",
"showdiff": "Ännerunge weisen",
"anoneditwarning": "'''Opgepasst:''' Dir sidd net ageloggt. Dowéinst gëtt amplaz vun engem Benotzernumm Är IP Adress am Historique vun dëser Säit gespäichert.",
"anonpreviewwarning": "''Dir sidd net ageloggt. Wann Dir ofspäichert gëtt Är IP-Adress an der Lëscht vun de Versioune vun dëser Säit enregistréiert.''",
"search-nonefound": "Fir Är Ufro gouf näischt fonnt.",
"powersearch-legend": "Erweidert Sich",
"powersearch-ns": "Sichen an den Nummraim:",
- "powersearch-redir": "Viruleedunge weisen",
"powersearch-togglelabel": "Markéieren:",
"powersearch-toggleall": "All",
"powersearch-togglenone": "Keen",
"prefs-advancedsearchoptions": "Méi Optiounen",
"prefs-advancedwatchlist": "Méi Optiounen",
"prefs-displayrc": "Optioune vun deem wat gewise gëtt",
- "prefs-displaysearchoptions": "Optioune vum Affichage",
"prefs-displaywatchlist": "Optioune vun deem wat gewise gëtt",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Ënnerscheeder",
"monobook.css": "/* Dës CSS huet nëmmen Afloss op de Skin ''Monobook'' */",
"modern.css": "/* Dës CSS huet nëmmen Afloss op de Skin ''Modern'' */",
"common.js": "/* All JavaScript hei gëtt fir all Benotzer beim Luede vun all Säit gelueden. */",
- "notacceptable": "De Wiki-Server kann d'Donnéeë net an engem Format liwweren déi vun ärem Apparat geliest kënne ginn.",
"anonymous": "{{PLURAL:$1|Anonyme Benotzer|Anonym Benotzer}} op {{SITENAME}}",
"siteuser": "{{SITENAME}}-Benotzer $1",
"anonuser": "Anonyme(n) {{SITENAME}}-Benotzer $1",
"autosumm-replace": "Säitinhalt gëtt ersat duerch '$1'",
"autoredircomment": "Virugeleet op [[$1]]",
"autosumm-new": "Säit ugeluecht mat: '$1'",
- "livepreview-loading": "Lueden...",
- "livepreview-ready": "Lueden … Fäerdeg!",
- "livepreview-failed": "Live-Preview huet net funktionéiert! Benotzt w.e.g. d'Funktioun ''Kucken ouni ofzespäicheren''.",
- "livepreview-error": "Verbindung net méiglech: $1 „$2“.\nBenotzt w.e.g. d'Funktioun fir déi nach net gespäichert Versioun ze kucken (Kucken ouni ofzespäicheren).",
"lag-warn-normal": "Ännerunge vun {{PLURAL:$1|der leschter Sekonn|de leschte(n) $1 Sekonnen}} kënnen an dëser Lëscht net gewise ginn.",
"lag-warn-high": "Duerch eng héich Serverbelaaschtung kënne Verännerungen déi viru manner wéi $1 {{PLURAL:$1|Sekonn|Sekonne}} gemaach goufen, net an dëser Lëscht ugewise ginn.",
"watchlistedit-numitems": "Op Ärer Iwwerwaachungslëscht {{PLURAL:$1|steet 1 Säit|stinn $1 Säiten}}, ouni d'Diskussiounssäiten.",
"compare-invalid-title": "Den Titel deen Dir uginn hutt ass net valabel.",
"compare-title-not-exists": "Den Titel deen Dir uginn hutt gëtt et net.",
"compare-revision-not-exists": "D'Versioun déi Dir uginn hutt gëtt et net.",
- "dberr-header": "Dës Wiki huet e Problem",
"dberr-problems": "Pardon! Dëse Site huet technesch Schwieregkeeten.",
"dberr-again": "Versicht e puer Minutten ze waarden an dann nei ze lueden.",
"dberr-info": "(Den Datebank-Server kann net erreecht ginn: $1)",
"readonly_lag": "ای پاگا دونسمنی قلف بیه تا اوسه که سرور پایگا دونسمنیا وه مینجاون برسه.",
"internalerror": "خطا داخلی",
"internalerror_info": "خطا داخلی:$1",
- "fileappenderrorread": "نبوئه $1 نه اوسه که پیوست بوئه بحونیت.",
- "fileappenderror": "نبوئه فایل $1 د $2 پیوست بوئه",
"filecopyerror": "نبوئه فایل $1 د $2 کپی بوئه",
"filerenameerror": "نبوئه فایل $1 د $2 نوم آلشت بوئه",
"filedeleteerror": "نبوئه فایل $1 پاک بوئه",
"directorycreateerror": "نبوئه سردسه $1 راس بوئه.",
"filenotfound": "نتونیت فایل $1 پیدا بکید",
- "fileexistserror": "نبوئه د فایل \"$1\" بنیسید:فایل هئیش",
"unexpected": "ارزایشت ناحاسته: \"$1\"=\"$2\".",
"formerror": "خطا:نبوئه فرم وه مو بئيت",
"badarticleerror": "ای انجوم دئنی د ای بلگه انجوم نگره.",
"userlogin-helplink2": "هومیاری وا مین اومائن",
"userlogin-loggedin": "شما ایسه د عنوان {{جنس:$1|$1}} اومایته وا مین.\nد فرم هاری سی وا مین اومائن وه عنوان کارور هنی استفاده بکیتو.",
"userlogin-createanother": "يه گل حساوهنی راست بكيد",
- "createacct-join": "دونسمنيا دباره خوتونه د هار وارد بكيد",
- "createacct-another-join": "دونسمنیا یه گل حساو د هار وارد بکید",
"createacct-emailrequired": "نشونی ايميل",
"createacct-emailoptional": "نشونی ايميل",
"createacct-email-ph": "نوم نشون ايميلتونه وارد بكيت",
"savearticle": "بلگه ضبط بوئه",
"preview": "پيش سيل",
"showpreview": "پيش نمائش نشون بيئه",
- "showlivepreview": "پیش سیل زنه",
"showdiff": "آلشتيانه نشون بيئه",
"anoneditwarning": "زنهار شما وامین نیومایته.\nنشونی آی پی تو د ویرگار ویرایشت ای بلگه ضفط بوئه",
"missingcommenttext": "لطفن د ایچه نظر بیئتو",
"prefs-advancedsearchoptions": "گزینه یا پیشکرده",
"prefs-advancedwatchlist": "گزینه یا پیشکرده",
"prefs-displayrc": "گزینه یا نه نشو بیه",
- "prefs-displaysearchoptions": "گزینه یا نه نشو بیه",
"prefs-displaywatchlist": "گزینه یا نه نشو بیه",
"prefs-diffs": "فرخیا",
"email-address-validity-valid": "نشونی ایمیل دیار بیه خوئه",
"missingarticle-diff": "(異:$1,$2)",
"internalerror": "家誤",
"internalerror_info": "家誤:$1",
- "fileappenderrorread": "當附時無讀 \"$1\",未可為也。",
- "fileappenderror": "\"$2\"附\"$1\",未可為也。",
"filecopyerror": "\"$1\"謄\"$2\",未可為也。",
"filerenameerror": "\"$2\"替\"$1\"名,未可為也。",
"filedeleteerror": "\"$1\"未可刪也。",
"directorycreateerror": "立目\"$1\",未可為也。",
"filenotfound": "\"$1\"未見。",
- "fileexistserror": "\"$1\"存焉,未可儲也。",
"unexpected": "異數,\"$1\"=\"$2\"。",
"formerror": "有誤:表不可呈",
"badarticleerror": "此頁莫為之",
"savearticle": "存儲",
"preview": "草覽",
"showpreview": "草覽",
- "showlivepreview": "即覽",
"showdiff": "示異",
"anoneditwarning": "'''警示:'''子未登簿,IP將誌。",
"anonpreviewwarning": "''子未登簿,IP將誌。''",
"search-nonefound": "詢中無結。",
"powersearch-legend": "尋",
"powersearch-ns": "尋名集:",
- "powersearch-redir": "轉表",
"powersearch-togglelabel": "核:",
"powersearch-toggleall": "全",
"powersearch-togglenone": "無",
"prefs-advancedsearchoptions": "進",
"prefs-advancedwatchlist": "進",
"prefs-displayrc": "示項",
- "prefs-displaysearchoptions": "示項",
"prefs-displaywatchlist": "示項",
"prefs-diffs": "異",
"email-address-validity-valid": "電郵有效之",
"autoredircomment": "渡至[[$1]]",
"autosumm-new": "新文「$1」",
"size-bytes": "$1 位元組",
- "livepreview-loading": "遺藏…",
- "livepreview-ready": "藏至矣。",
- "livepreview-failed": "弗能即時示之!\n嘗以本法。",
- "livepreview-error": "莫之連也:$1 \"$2\"。\n嘗以本法。",
"lag-warn-normal": "近$1秒新易者疑喪也。",
"lag-warn-high": "遣藏遲焉。近$1秒新易者疑喪也。",
"watchlistedit-numitems": "不計議論,哨有題$1。",
"readonly_lag": "\nMihidy ho azy aloha ny banky angona mandra-pahatratran'ny serveur andevo ny tompony",
"internalerror": "Tsy fetezana anatin'ny rindrankajy",
"internalerror_info": "Tsy fetezana ety anatiny : $1",
- "fileappenderrorread": "Tsy afaka mamaky « $1 » nandritry ny fampidirana.",
- "fileappenderror": "Tsy afaka ampiana amin'ny « $2 » « $1 ».",
"filecopyerror": "Tsy voadika ho \"$2\" ilay rakitra\"$1\".",
"filerenameerror": "Tsy voaova ho \"$2\" ny anaran'ilay rakitra \"$1\".",
"filedeleteerror": "Tsy voafafa ilay rakitra \"$1\".",
"directorycreateerror": "Tsy afaka amboarina ny petra-drakitra (''dossier, directory'') « $1 ».",
"filenotfound": "Tsy hita ilay rakitra \"$1\".",
- "fileexistserror": "Tsy afaka manoratra ao anatin'ilay dossier « $1 » : efa misy ilay fisy",
"unexpected": "Tsy nandrasana: \"$1\"=\"$2\".",
"formerror": "Tsy mety: tsy lasa ny fisy",
"badarticleerror": "Tsy azo atao eto amin'ity pejy ity io asa io.",
"userlogin-resetpassword-link": "Hadino ny tenimiafina?",
"userlogin-loggedin": "Efa tafiditra amin'ny anaran'i {{GENDER:$1|$1}} ianao. Ampiasao ny fôrmiolera eo ambany raha hiditra amin'ny anaran'ny mpikambana hafa.",
"userlogin-createanother": "Hamorona kaonty hafa",
- "createacct-join": "Atsofohy eo ambany ny fampahalalana momba anao.",
- "createacct-another-join": "Atsofohy eo ambany ny fampahalalana vaovaon'ny kaonty",
"createacct-emailrequired": "Adiresy mailaka :",
"createacct-emailoptional": "Adiresy mailaka (azo tsy atao) :",
"createacct-email-ph": "Atsofohy ny adiresy mailakao",
"savearticle": "Tehirizo",
"preview": "Topi-maso",
"showpreview": "Asehoy aloha",
- "showlivepreview": "Topi-maso maikamaika",
"showdiff": "Asehoy ny fiovana",
"anoneditwarning": "'''Tandremo''' : Tsy nisoratra tato amin'ny sehtatra ianao. Ho voatahiry ao amin'ny tantaram-pejy ny adiresy IP anao.",
"anonpreviewwarning": "''Tsy niditra ianao. Hampitahiry ny adiresy IP anao ao amin'ny tantaram-panovan'ity pejy ity ny fitehirizana ny fanovana.''",
"search-nonefound": "Tsy nahitana valiny ilay fanontaniana.",
"powersearch-legend": "Fikarohana havanana",
"powersearch-ns": "Hitady anatin'ny anaran-tsehatra :",
- "powersearch-redir": "Ampiseho ny redirect",
"powersearch-togglelabel": "Marihana:",
"powersearch-toggleall": "Rehetra",
"powersearch-togglenone": "Tsy misy",
"prefs-advancedsearchoptions": "Antsipirihan-tsafidy",
"prefs-advancedwatchlist": "Antsipirihan-tsafidy",
"prefs-displayrc": "safidim-tseho",
- "prefs-displaysearchoptions": "Safidin-tseho",
"prefs-displaywatchlist": "Safidin-tseho",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Diff",
"tooltip-preferences-save": "Tehirizina ny safidy",
"tooltip-summary": "Atsofohy eo ambangovangony fohifohy",
"monobook.css": "/* Ovay ity rakitra ity raha hampiasa takilan'angaly (stylesheet) anao manokana amin'ny wiki iray manontolo */",
- "notacceptable": "Tsy afaka manome données amin'ny format zakan'ny navigateur-nao ny serveur wiki.",
"anonymous": "Mpikambana {{PLURAL:$1}} tsy mitonona anarana eto amin'ny {{SITENAME}}",
"siteuser": "{{SITENAME}} mpikambana $1",
"anonuser": "ny mpikambana tsy nisoratra anarana $1 an'i {{SITENAME}}",
"autosumm-replace": "Votoatiny novaina ho « $1 »",
"autoredircomment": "Pejy fihodinana mankany [[$1]]",
"autosumm-new": "Pejy voaforona amin'ny « $1 »",
- "livepreview-loading": "Am-pakàna…",
- "livepreview-ready": "Am-pakàna … vita !",
- "livepreview-failed": "Tsy nandeha soa aman-tsara ny topi-maso haingankaingana !\nAndrano ny topi-maso tsotra.",
- "livepreview-error": "Tsy afaka mifandray : $1 « $2 ».\nAndramo ny topi-maso tsotra",
"lag-warn-normal": "Ny fanovana vaovao nohon'ny $1 segondra {{PLURAL:}} dia tsy hiseho eo amin'ity lisitra ity.",
"lag-warn-high": "Noho ny hataraiky ny lohamilin'ny banky angona, tsy hiseho eto ny fanovana natao tao anatin'ny fotoana latsaky ny $1 segondra{{PLURAL:}}.",
"watchlistedit-numitems": "Ny lisitry ny pejy arahanao maso dia misy {{PLURAL:$1|lohateny iray|lohateny $1}}, raha tsy kaontiana ny pejin-dresaka.",
"compare-rev1": "Versiona 1",
"compare-rev2": "Versiona 2",
"compare-submit": "Ampitahao",
- "dberr-header": "Misy olana io wiki io",
"dberr-problems": "Azafady Tompoko ! Manana olana ara-teknika ny sehatra.",
"dberr-again": "Miandrasa minitra vitsivitsy ary alefaso fanindroany",
"dberr-info": "(Tsy afaka mifandray amin'ny lohamilin'ny database : $1)",
"readonly_lag": "Базата е автоматски заклучена додека помошните опслужувачи не се усогласат",
"internalerror": "Внатрешна грешка",
"internalerror_info": "Внатрешна грешка: $1",
- "fileappenderrorread": "Не можев да го прочитам „$1“ во текот на придодавањето.",
- "fileappenderror": "Не можe да се додаде „$1“ на „$2“.",
"filecopyerror": "Не можeв да ја ископирам податотеката „$1“ во „$2“.",
"filerenameerror": "Не можев да ја преименувам податотеката „$1“ во „$2“.",
"filedeleteerror": "Не може да се избрише податотеката „$1“.",
"directorycreateerror": "Не можеше да се создаде именикот „$1“.",
"filenotfound": "Не може да се најде податотеката „$1“.",
- "fileexistserror": "Не може да се запишува во податотеката „$1“: податотеката постои",
"unexpected": "Неочекувана вредност: „$1“=„$2“.",
"formerror": "Грешка: не можам да го испратам образецот",
"badarticleerror": "Ова дејство не може да се спроведе на оваа страница.",
"userlogin-helplink2": "Помош за најава",
"userlogin-loggedin": "Веќе сте најавени како {{GENDER:$1|$1}}.\nСо образецот подолу можете да се најавите како друг корисник.",
"userlogin-createanother": "Направи нова сметка",
- "createacct-join": "Внесете ваши информации",
- "createacct-another-join": "Подолу внесете податоци за сметката",
"createacct-emailrequired": "Е-пошта",
"createacct-emailoptional": "Е-пошта (незадолжително)",
"createacct-email-ph": "Внесете е-пошта",
"savearticle": "Зачувај",
"preview": "Преглед",
"showpreview": "Преглед",
- "showlivepreview": "Преглед во живо",
"showdiff": "Прикажи промени",
"anoneditwarning": "'''Предупредување:''' Не сте најавени.\nВашата IP-адреса ќе биде заведена во историјата на уредување на страницата.",
"anonpreviewwarning": "''Не сте најавени. Ако ја зачувате, Вашата IP-адреса ќе биде заведена во историјата на уредување на страницата.''",
"search-nonefound": "Нема резултати што одговараат на бараното.",
"powersearch-legend": "Напредно пребарување",
"powersearch-ns": "Пребарај во следниве именски простори:",
- "powersearch-redir": "Дај и пренасочувања",
"powersearch-togglelabel": "Одбери:",
"powersearch-toggleall": "Сè",
"powersearch-togglenone": "Ништо",
"prefs-advancedsearchoptions": "Напредни нагодувања",
"prefs-advancedwatchlist": "Напредни нагодувања",
"prefs-displayrc": "Нагодувања на приказот",
- "prefs-displaysearchoptions": "Нагодувања на приказот",
"prefs-displaywatchlist": "Нагодувања на приказот",
"prefs-tokenwatchlist": "Шифра",
"prefs-diffs": "Разлики",
"pageswithprop-prophidden-binary": "бинарната вредност на својството за долгиот текст е скриена ($1)",
"doubleredirects": "Двојни пренасочувања",
"doubleredirectstext": "Оваа страница ги прикажува пренасочувачките страници до други пренасочувачки страници.\nСекој ред содржи врски кон првото и второто пренасочување, како и целта на второто пренасочување, кое обично ја посочува <i>вистинската</i> целна страница кон која првото пренасочување би требало да насочува.\n<del>Пречкртаните</del> ставки треба да се разрешат.",
- "double-redirect-fixed-move": "Страницата [[$1]] е преместена.\nСега пренасочува кон [[$2]]",
- "double-redirect-fixed-maintenance": "Ð\98Ñ\81пÑ\80авка на двоÑ\98но пÑ\80енаÑ\81оÑ\87Ñ\83ваÑ\9aе од [[$1]] на [[$2]].",
+ "double-redirect-fixed-move": "Страницата „[[$1]]“ е преместена.\nСега е самоподновена и пренасочува кон [[$2]].",
+ "double-redirect-fixed-maintenance": "СамоиÑ\81пÑ\80авка на двоÑ\98но пÑ\80енаÑ\81оÑ\87Ñ\83ваÑ\9aе од [[$1]] на [[$2]] во задаÑ\87а за одÑ\80жÑ\83ваÑ\9aе.",
"double-redirect-fixer": "Исправувач на пренасочувања",
"brokenredirects": "Прекинати пренасочувања",
"brokenredirectstext": "Следните пренасочувања водат до непостоечки страници.",
"group-bot.js": "/* Тука поставениот JavaScript ќе им се вчитува само на ботовите */",
"group-sysop.js": "/* Тука поставениот JavaScript ќе им се вчитува само на системските оператори */",
"group-bureaucrat.js": "/* Тука поставениот JavaScript ќе им се вчитува само на бирократите */",
- "notacceptable": "Опслужувачот не може да создаде податоци во формат погоден за вашиот клиент.",
"anonymous": "{{PLURAL:$1|Анонимен корисник|Анонимни корисници}} на {{SITENAME}}",
"siteuser": "{{SITENAME}} корисник $1",
"anonuser": "{{SITENAME}} анонимен корисник $1",
"bitrate-exabits": "$1 Еб/с",
"bitrate-zetabits": "$1 Зб/с",
"bitrate-yottabits": "$1 Јб/с",
- "livepreview-loading": "Вчитувам...",
- "livepreview-ready": "Се вчитува… готово!",
- "livepreview-failed": "Неуспешно прегледување!\nПробајте со нормален преглед.",
- "livepreview-error": "Неуспешно поврзување: $1 „$2“\nОбидете се со нормален преглед.",
"lag-warn-normal": "Промените во {{PLURAL:$1|последната секунда|последните $1 секунди}} може да не бидат прикажани во списокот.",
"lag-warn-high": "Поради преоптовареност на податочниот опслужувач, промените понови од {{PLURAL:$1|една секунда|$1 секунди}}\nможе да не бидат прикажани во списокот.",
"watchlistedit-numitems": "Вашиот список на набљудувања содржи {{PLURAL:$1|еден наслов|$1 наслови}}, без страниците за разговор.",
"compare-invalid-title": "Наведениот наслов е неважечки.",
"compare-title-not-exists": "Наведениот наслов не постои.",
"compare-revision-not-exists": "Наведената преработка не постои.",
- "dberr-header": "Ова вики не функционира како што треба",
"dberr-problems": "Жалиме! Ова мрежно место се соочува со технички потешкотии.",
"dberr-again": "Почекајте неколку минути и обидете се повторно.",
"dberr-info": "(Не може да се добие опслужувачот на базата на податоци: $1)",
"readonly_lag": " കീഴ്-വിവരശേഖര സെർവറുകൾ മാസ്റ്റർ വരെ എത്തിയതിനാൽ വിവരശേഖരം സ്വയം ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു",
"internalerror": "ആന്തരിക പിഴവ്",
"internalerror_info": "ആന്തരിക പിഴവ്: $1",
- "fileappenderrorread": "കൂട്ടിച്ചേർക്കുന്ന സമയം \"$1\" വായിച്ചെടുക്കാൻ കഴിഞ്ഞില്ല.",
- "fileappenderror": "\"$1\" എന്നത് \"$2\" എന്നതിലേയ്ക്ക് കൂട്ടിച്ചേർക്കുവാൻ സാധിച്ചില്ല.",
"filecopyerror": "\"$1\" എന്ന പ്രമാണം \"$2\" എന്നതിലേയ്ക്ക് പകർത്താൻ സാധിച്ചില്ല.",
"filerenameerror": "പ്രമാണം \"$1\", \"$2\" എന്ന തലക്കെട്ടിലേയ്ക്ക് മാറ്റാൻ സാധിച്ചില്ല.",
"filedeleteerror": "\"$1\" നീക്കം ചെയ്യാൻ സാധിച്ചില്ല.",
"directorycreateerror": "\"$1\" എന്ന ഡയറക്റ്ററി സൃഷ്ടിക്കാൻ സാധിച്ചില്ല.",
"filenotfound": "\"$1\" എന്ന പ്രമാണം കണ്ടെത്താനായില്ല.",
- "fileexistserror": "\"$1\" എന്ന പ്രമാണത്തിലേയ്ക്ക് എഴുതാൻ പറ്റിയില്ല: പ്രമാണം നിലവിലുണ്ട്",
"unexpected": "പ്രതീക്ഷിക്കാത്ത മൂല്യം: \"$1\"=\"$2\".",
"formerror": "പിഴവ്: ഫോം സമർപ്പിക്കുവാൻ പറ്റിയില്ല",
"badarticleerror": "താങ്കൾ ചെയ്യാനുദ്ദേശിക്കുന്നത് ഈ താളിൽ സാദ്ധ്യമല്ല",
"userlogin-helplink2": "പ്രവേശിക്കാൻ സഹായമാവശ്യമെങ്കിൽ",
"userlogin-loggedin": "താങ്കൾ ഇപ്പോൾ തന്നെ {{GENDER:$1|$1}} ആയി പ്രവേശിച്ചിരിക്കുന്നു.\nതാഴെ ഉള്ള ഫോം ഉപയോഗിച്ച് മറ്റൊരു ഉപയോക്താവായി പ്രവേശിക്കാവുന്നതാണ്.",
"userlogin-createanother": "മറ്റൊരു അംഗത്വമെടുക്കുക",
- "createacct-join": "താങ്കളെപ്പറ്റിയുള്ള വിവരങ്ങൾ താഴെ നൽകുക.",
- "createacct-another-join": "പുതിയ അംഗത്വത്തിന്റെ വിവരങ്ങൾ താഴെ നൽകുക.",
"createacct-emailrequired": "ഇമെയിൽ വിലാസം",
"createacct-emailoptional": "ഇമെയിൽ വിലാസം (നിർബന്ധമില്ല)",
"createacct-email-ph": "താങ്കളുടെ ഇമെയിൽ വിലാസം നൽകുക",
"savearticle": "താൾ സേവ് ചെയ്യുക",
"preview": "എങ്ങനെയുണ്ടെന്നു കാണുക",
"showpreview": "എങ്ങനെയുണ്ടെന്നു കാണുക",
- "showlivepreview": "തത്സമയ പ്രിവ്യൂ",
"showdiff": "മാറ്റങ്ങൾ കാണിക്കുക",
"anoneditwarning": "'''മുന്നറിയിപ്പ്:''' താങ്കൾ ലോഗിൻ ചെയ്തിട്ടില്ല. താങ്കളുടെ ഐ.പി. വിലാസം താളിന്റെ തിരുത്തൽ ചരിത്രത്തിൽ ചേർക്കുന്നതാണ്.",
"anonpreviewwarning": "''താങ്കൾ ലോഗിൻ ചെയ്തിട്ടില്ല. സേവ് ചെയ്യുമ്പോൾ താളിന്റെ തിരുത്തൽ ചരിത്രത്തിൽ താങ്കളുടെ ഐ.പി. വിലാസം ചേർത്തു സൂക്ഷിക്കപ്പെടും.''",
"search-nonefound": "താങ്കൾ തിരഞ്ഞ പദത്തിനു യോജിച്ച ഫലങ്ങളൊന്നും ലഭിച്ചില്ല.",
"powersearch-legend": "വിപുലീകൃത തിരച്ചിൽ",
"powersearch-ns": "തിരയേണ്ട നാമമേഖലകൾ",
- "powersearch-redir": "തിരിച്ചുവിടലുകൾ കാണിക്കുക",
"powersearch-togglelabel": "അടയാളപ്പെടുത്തുക:",
"powersearch-toggleall": "എല്ലാം",
"powersearch-togglenone": "ഒന്നുംവേണ്ട",
"prefs-advancedsearchoptions": "വിപുലമായ ഉപാധികൾ",
"prefs-advancedwatchlist": "വിപുലമായ ഉപാധികൾ",
"prefs-displayrc": "പ്രദർശന ഐച്ഛികങ്ങൾ",
- "prefs-displaysearchoptions": "പ്രദർശന ഐച്ഛികങ്ങൾ",
"prefs-displaywatchlist": "പ്രദർശന ഐച്ഛികങ്ങൾ",
"prefs-tokenwatchlist": "ചീട്ട്",
"prefs-diffs": "വ്യത്യാസങ്ങൾ",
"group-bot.js": "/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് ബോട്ടുകൾക്ക് ബാധകമായിരിക്കും */",
"group-sysop.js": "/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് കാര്യനിർവാഹകർക്ക് ബാധകമായിരിക്കും */",
"group-bureaucrat.js": "/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് ബ്യൂറോക്രാറ്റുകൾക്ക് ബാധകമായിരിക്കും */",
- "notacceptable": "താങ്കളുടെ ക്ലയന്റിനു മനസ്സിലാക്കാൻ പാകത്തിലുള്ള തരത്തിൽ വിവരങ്ങൾ നൽകാൻ വിക്കി സെർവറിനു ശേഷിയില്ല.",
"anonymous": "{{SITENAME}} സംരംഭത്തിലെ അജ്ഞാത {{PLURAL:$1|ഉപയോക്താവ്|ഉപയോക്താക്കൾ}}",
"siteuser": "{{SITENAME}} ഉപയോക്താവ് $1",
"anonuser": "{{SITENAME}} പദ്ധതിയിലെ അജ്ഞാത ഉപയോക്താവ് $1",
"bitrate-kilobits": "$1കെ.ബി.പി.എസ്.",
"bitrate-megabits": "$1എം.ബി.പി.എസ്.",
"bitrate-gigabits": "$1ജി.ബി.പി.എസ്.",
- "livepreview-loading": "ശേഖരിക്കുന്നു...",
- "livepreview-ready": "ശേഖരിച്ചുകൊണ്ടിരിക്കുന്നു… തയ്യാർ!",
- "livepreview-failed": "തൽസമയ പ്രിവ്യൂ പരാജയപ്പെട്ടു. സാധാരണ പ്രിവ്യൂ പരീക്ഷിക്കുക.",
- "livepreview-error": "ബന്ധപ്പെടൽ പരാജയപ്പെട്ടു. $1 \"$2\".\nദയവായി സാധാരണ പ്രിവ്യൂ ശ്രമിക്കുക.",
"lag-warn-normal": "$1 {{PLURAL:$1|സെക്കന്റിനുള്ളിൽ|സെക്കന്റുകൾക്കുള്ളിൽ}} നടന്ന തിരുത്തലുകൾ ഈ പട്ടികയിൽ ഉണ്ടാകാനിടയില്ല.",
"lag-warn-high": "ഡേറ്റാബേസ് സെർവറിന്റെ കൂടിയ താമസം മൂലം, {{PLURAL:$1|ഒരു സെക്കന്റിൽ|$1 സെക്കന്റുകളിൽ}} നടന്ന മാറ്റങ്ങൾ പട്ടികയിൽ കാണണമെന്നില്ല.",
"watchlistedit-numitems": "താങ്കൾ സംവാദത്താളുകൾ ഒഴിച്ച് {{PLURAL:$1|ഒരു താൾ|$1 താളുകൾ}} ശ്രദ്ധിക്കുന്നുണ്ട്.",
"compare-invalid-title": "താങ്കൾ നൽകിയ തലക്കെട്ട് അസാധുവാണ്.",
"compare-title-not-exists": "താങ്കൾ നൽകിയ തലക്കെട്ട് നിലവിലില്ല.",
"compare-revision-not-exists": "താങ്കൾ വ്യക്തമാക്കിയ നാൾപ്പതിപ്പ് നിലവിലില്ല.",
- "dberr-header": "ഈ വിക്കിയിൽ പ്രശ്നമുണ്ട്",
"dberr-problems": "ക്ഷമിക്കണം! ഈ സൈറ്റിൽ സാങ്കേതിക തകരാറുകൾ അനുഭവപ്പെടുന്നുണ്ട്.",
"dberr-again": "കുറച്ച് മിനിട്ടുകൾ കാത്തിരുന്ന് വീണ്ടും തുറക്കുവാൻ ശ്രമിക്കുക.",
"dberr-info": "(വിവരശേഖര സെർവറുമായി ബന്ധപ്പെടാൻ പറ്റിയില്ല: $1)",
"readonly_lag": "Хоёрдогч серверүүд анхдагчдаа гүйцэж ирэх хүртэл мэдээллийн санг автоматаар түгжлээ.",
"internalerror": "Дотоод алдаа",
"internalerror_info": "Дотоод алдаа: $1",
- "fileappenderrorread": "Нэмж залгах үед \"$1\"-г уншиж чадсангүй",
- "fileappenderror": "\"$1\"-г \"$2-нд нэмж чадсангүй.",
"filecopyerror": "Файлыг \"$1\"-с \"$2\" руу хуулж чадсангүй.",
"filerenameerror": "Файлын нэрийг \"$1\"-с \"$2\" болгон өөрчилж чадсангүй.",
"filedeleteerror": "\"$1\" файлыг устгаж чадсангүй.",
"directorycreateerror": "\"$1\" жагсаалтыг үүсгэж чадсангүй.",
"filenotfound": "\"$1\" файл олдсонгүй.",
- "fileexistserror": "\"$1\" файл руу бичиж болохгүй байна: ийм файл оршиж байна",
"unexpected": "Санаандгүй утга: \"$1\"=\"$2\".",
"formerror": "Алдаа: маягтыг явуулж чадсангүй",
"badarticleerror": "Энэ үйлдлийг энэ хуудсан дээр гүйцэтгэх боломжгүй байна.",
"userlogin-resetpassword-link": "Нууц үгээ мартсан уу?",
"userlogin-loggedin": "Та {{GENDER:$1|$1}} нэрээр нэвтэрсэн байна.\nӨөр нэрээр нэвтрэх бол доорх маягтыг ашиглана уу.",
"userlogin-createanother": "Өөр бүртгэл үүсгэх",
- "createacct-join": "Мэдээллээ оруулна уу.",
- "createacct-another-join": "Шинэ бүртгэлийн мэдээллээ оруулна уу.",
"createacct-emailrequired": "Цахим шуудангийн хаяг",
"createacct-email-ph": "Цахим шуудангийн хаягаа оруулна уу",
"createacct-another-email-ph": "Цахим шуудангийн хаяг оруулна уу",
"savearticle": "Хуудсыг хадгалах",
"preview": "Урьдчилж харах",
"showpreview": "Урьдчилж харах",
- "showlivepreview": "Шууд байдлаар урьдчилж харах",
"showdiff": "Өөрчлөлтүүдийг харуул",
"anoneditwarning": "'''Анхаар:''' Та нэвтрээгүй байна.\nЭнэ хуудасны засварын түүхэнд таны IP хаяг хадгалагдана.",
"anonpreviewwarning": "''Та нэвтрээгүй байна. Хадгалвал энэ хуудасны түүхэнд таны IP хаяг бичигдлэх болно.''",
"search-nonefound": "Хайлтад таарсан үр дүн илэрсэнгүй.",
"powersearch-legend": "Сонгосон хайлт",
"powersearch-ns": "Дараах нэрний зайнуудад хайх:",
- "powersearch-redir": "Чиглүүлэгч хуудсуудыг оролцуулах",
"powersearch-togglelabel": "Сонгох:",
"powersearch-toggleall": "Бүгдийг",
"powersearch-togglenone": "Байхгүй",
"prefs-advancedsearchoptions": "Ахимаг хэмжээний сонголтууд",
"prefs-advancedwatchlist": "Ахимаг хэмжээний сонголтууд",
"prefs-displayrc": "Харагдах байдлын сонголтууд",
- "prefs-displaysearchoptions": "Харагдацийн тохиргоо",
"prefs-displaywatchlist": "Харагдацийн тохиргоо",
"prefs-diffs": "Ялгаанууд",
"email-address-validity-valid": "Цахим шуудан хүчинтэй байна",
"tooltip-summary": "Товч тайлбар оруулах",
"common.css": "/* Энд тавигдсан CSS-үүд бүх арьсанд нэмэгдэх болно */",
"common.js": "/* Энд байгаа ЖаваСкрипт хэрэглэгч бүрд ямар нэгэн хуудас нээж үзэх болгонд дуудагдах болно. */",
- "notacceptable": "Вики сервер нь мэдээллийг таны клиентийн уншиж чадах хэлбэрт олгох боломжгүй байна.",
"anonymous": "{{SITENAME}}-н бүртгүүлээгүй {{PLURAL:$1|хэрэглэгч|хэрэглэгчид}}",
"siteuser": "{{SITENAME}}-н хэрэглэгч $1",
"anonuser": "{{SITENAME}}-н бүртгэлгүй хэрэглэгч $1",
"size-kilobytes": "$1 КБ",
"size-megabytes": "$1 МБ",
"size-gigabytes": "$1 ГБ",
- "livepreview-loading": "Уншиж байна...",
- "livepreview-ready": "Уншиж байна...Боллоо!",
- "livepreview-failed": "Шууд урьдчилж харах боломжгүй байна! Ердийн аргаар урьдчилж харна уу.",
- "livepreview-error": "Холбогдож чадсангүй: $1 \"$2\".\nУрьдчилж харах ердийн аргыг хэрэглэнэ үү.",
"lag-warn-normal": "$1 {{PLURAL:$1|секундээс|секундээс}}-с өмнөх шинэ өөрчлөлтүүд энэ жагсаалтанд ороогүй байж болзошгүй.",
"lag-warn-high": "Өгөгдлийн сангийн удаашралтаас үүдэн энэ жагсаалтанд $1 {{PLURAL:$1|секундээс|секундээс}}-с өмнөх шинэ өөрчлөлтүүд ороогүй байж болзошгүй.",
"watchlistedit-numitems": "Таны хянаж буй хуудасны жагсаалтанд {{PLURAL:$1|1 зүйл|$1 зүйл}} байна (хэлэлцүүлгийн хуудсуудыг оролцуулахгүйгээр).",
"compare-submit": "Харьцуулах",
"compare-invalid-title": "Өгсөн гарчиг буруу байна.",
"compare-title-not-exists": "Өгсөн гарчиг байхгүй байна.",
- "dberr-header": "Энэхүү викид асуудал үүсэв",
"dberr-problems": "Уучлаарай! Энэхүү сайтад техникийн саатал учирч байна.",
"dberr-again": "Хэдэн минут хүлээгээд дахин ачаалж үзнэ үү.",
"dberr-info": "(өгөгдлийн сангийн серверт хандаж чадсангүй: $1)",
"readonly_lag": "佇附屬的資料庫更新到主要資料庫資料的時陣,資料庫會自動鎖定。",
"internalerror": "Loē-pō͘ ê chhò-ngō͘",
"internalerror_info": "Loē-pō͘ ê chhò-ngō͘: $1",
- "fileappenderrorread": "Ka-ji̍p(append) ê sî bô-hoat-tō͘ thak \"$1\".",
- "fileappenderror": "Bô-hoat-tō͘ kā \"$1\" chiap khì \"$2\".",
"filecopyerror": "Bô-hoat-tō· kā tóng-àn \"$1\" khó·-pih khì \"$2\".",
"filerenameerror": "Bô-hoat-tō· kā tóng-àn \"$1\" kái-miâ chò \"$2\".",
"filedeleteerror": "Bô-hoat-tō· kā tóng-àn \"$1\" thâi tiāu",
"directorycreateerror": "Bô-hoat-tō͘ khui bo̍k-lo̍k \"$1\".",
"filenotfound": "Chhōe bô tóng-àn \"$1\".",
- "fileexistserror": "Bô-hoat-tō͘ chûn-ji̍p tóng-àn \"$1\": í-keng ū chit ê tóng-àn",
"unexpected": "Koài-koài ê pió-tat: \"$1\"=\"$2\"。",
"formerror": "Chhò-gō·: bô-hoat-tō· kā pió sàng chhut khì.",
"badarticleerror": "Bē-tàng tiàm chit ia̍h chip-hêng chit ê tōng-chok.",
"readonly_lag": "Databasen er automatisk skrivebeskyttet så slavetjenerne kan ta igjen mestertjeneren",
"internalerror": "Intern feil",
"internalerror_info": "Intern feil: $1",
- "fileappenderrorread": "Klarte ikke å lese «$1» når data skulle tilføyes.",
- "fileappenderror": "Kunne ikke legge «$1» til «$2».",
"filecopyerror": "Klarte ikke å kopiere filen «$1» til «$2».",
"filerenameerror": "Klarte ikke å døpe om filen «$1» til «$2».",
"filedeleteerror": "Klarte ikke å slette filen «$1».",
"directorycreateerror": "Klarte ikke å opprette mappe «$1».",
"filenotfound": "Klarte ikke å finne filen «$1».",
- "fileexistserror": "Klarte ikke å skrive til filen «$1»: filen finnes fra før",
"unexpected": "Uventet verdi: «$1»=«$2».",
"formerror": "Feil: klarte ikke å sende skjema",
"badarticleerror": "Handlingen kan ikke utføres på denne siden.",
"userlogin-helplink2": "Hjelp med innlogging",
"userlogin-loggedin": "Du er allerede logget inn som {{GENDER:$1|$1}}.\nBruk skjemaet nedenfor for å logge inn som en annen bruker.",
"userlogin-createanother": "Opprett ny konto",
- "createacct-join": "Skriv inn informasjonen din under.",
- "createacct-another-join": "Legg inn den nye kontoens informasjon under.",
"createacct-emailrequired": "E-postadresse",
"createacct-emailoptional": "E-postadresse (valgfritt)",
"createacct-email-ph": "Skriv inn e-postadressen din",
"savearticle": "Lagre siden",
"preview": "Forhåndsvisning",
"showpreview": "Forhåndsvisning",
- "showlivepreview": "Levende forhåndsvisning",
"showdiff": "Vis endringer",
"anoneditwarning": "'''Advarsel:''' Du er ikke logget inn.\nIP-adressen din blir bevart i sidens redigeringshistorikk.",
"anonpreviewwarning": "''Du er ikke logget inn. Lagring vil registrere din IP-adresse i sidens redigeringshistorikk.''",
"search-nonefound": "Ingen resultater passet til søket.",
"powersearch-legend": "Avansert søk",
"powersearch-ns": "Søk i navnerom:",
- "powersearch-redir": "Vis omdirigeringer",
"powersearch-togglelabel": "Merk:",
"powersearch-toggleall": "Alle",
"powersearch-togglenone": "Ingen",
"prefs-advancedsearchoptions": "Avanserte alternativer",
"prefs-advancedwatchlist": "Avanserte alternativer",
"prefs-displayrc": "Visningsalternativer",
- "prefs-displaysearchoptions": "Visningsalternativer",
"prefs-displaywatchlist": "Visningsalternativer",
"prefs-tokenwatchlist": "Merke",
"prefs-diffs": "Forskjeller",
"pageswithprop-prophidden-binary": "skjult verdi for binæregenskap ($1)",
"doubleredirects": "Doble omdirigeringer",
"doubleredirectstext": "Denne siden lister opp de sidene som er omdirigeringer til andre omdirigeringssider.\nHver rad inneholder lenker til første og andre omdirigering, samt målet for den andre omdirigeringen, som vanligvis er den «virkelige» målsiden som den første omdirigeringen burde peke til.\n<del>Gjennomstrøkne</del> sider har blitt fikset.",
- "double-redirect-fixed-move": "[[$1]] har blitt flyttet, og er nå en omdirigering til [[$2]]",
- "double-redirect-fixed-maintenance": "Fikser dobbel omdirigering fra [[$1]] til [[$2]].",
+ "double-redirect-fixed-move": "[[$1]] har blitt flyttet.\nDen ble automatisk oppdatert og er nå en omdirigering til [[$2]].",
+ "double-redirect-fixed-maintenance": "Fikser automatisk dobbel omdirigering fra [[$1]] til [[$2]] som en del av en vedlikeholdsoppgave.",
"double-redirect-fixer": "Omdirigeringsfikser",
"brokenredirects": "Brutte omdirigeringer",
"brokenredirectstext": "Følgende omdirigeringer peker til ikkeeksisterende sider:",
"cologneblue.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Kølnerblå */",
"monobook.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Monobook */",
"modern.js": "/* Javascript i denne fila vil gjelde for brukere av drakta Modern */",
- "notacceptable": "Tjeneren har ingen mulige måter å vise data i din nettleser.",
"anonymous": "{{PLURAL:$1|Anonym bruker|Anonyme brukere}} av {{SITENAME}}",
"siteuser": "{{SITENAME}}-bruker $1",
"anonuser": "{{SITENAME}}s anonyme bruker $1",
"autosumm-replace": "Erstatter siden med «$1»",
"autoredircomment": "Omdirigerer til [[$1]]",
"autosumm-new": "Ny side: $1",
- "livepreview-loading": "Laster…",
- "livepreview-ready": "Laster … Klar!",
- "livepreview-failed": "Levende forhåndsvisning mislyktes. Prøv vanlig forhåndsvisning.",
- "livepreview-error": "Tilkobling mislyktes: $1 «$2»\nPrøv vanlig forhåndsvisning.",
"lag-warn-normal": "Endringer nyere enn $1 {{PLURAL:$1|sekund|sekunder}} vises muligens ikke i denne listen.",
"lag-warn-high": "På grunn av stor databaseforsinkelse, vil ikke endringer som er nyere enn $1 {{PLURAL:$1|sekund|sekunder}} vises i denne listen.",
"watchlistedit-numitems": "Overvåkningslisten din inneholder {{PLURAL:$1|én tittel|$1 titler}}, ikke inkludert diskusjonssider.",
"compare-invalid-title": "Tittelen du oppga er ugyldig.",
"compare-title-not-exists": "Tittelen du oppga eksisterer ikke.",
"compare-revision-not-exists": "Versjonen du oppga eksisterer ikke.",
- "dberr-header": "Wikien har et problem",
"dberr-problems": "Siden har tekniske problemer.",
"dberr-again": "Prøv å oppdatere siden om noen minutter.",
"dberr-info": "(Kan ikke kontakte databasetjeneren: $1)",
"readonly_lag": "De database is automatisch vergrendeld terwijl de ondergeschikte databaseservers synchroniseren met de hoofdserver.",
"internalerror": "Interne fout",
"internalerror_info": "Interne fout: $1",
- "fileappenderrorread": "\"$1\" kon niet gelezen worden tijdens het toevoegen.",
- "fileappenderror": "Het was niet mogelijk \"$1\" toe te voegen aan \"$2\".",
"filecopyerror": "Bestand \"$1\" kon niet naar \"$2\" gekopieerd worden.",
"filerenameerror": "\"$1\" kon niet hernoemd worden naar \"$2\".",
"filedeleteerror": "Bestand \"$1\" kon niet verwijderd worden.",
"directorycreateerror": "De map \"$1\" kon niet aangemaakt worden.",
"filenotfound": "Bestand \"$1\" kon niet gevonden worden.",
- "fileexistserror": "Schrijven naar bestand \"$1\" onmogelijk: het bestand bestaat al.",
"unexpected": "Onverwachte waarde: \"$1\"=\"$2\".",
"formerror": "Fout: formulier kon niet verzonden worden",
"badarticleerror": "Deze handeling kan niet op deze pagina worden uitgevoerd.",
"userlogin-helplink2": "Hulp bij aanmelden",
"userlogin-loggedin": "U bent al aangemeld als {{GENDER:$1|$1}}.\nGebruik het onderstaande formulier om aan te melden als een andere gebruiker.",
"userlogin-createanother": "Gebruiker aanmaken",
- "createacct-join": "Geef uw gegevens hieronder op.",
- "createacct-another-join": "Geef hieronder de informatie voor de nieuwe gebruiker op.",
"createacct-emailrequired": "E-mailadres",
"createacct-emailoptional": "E-mailadres (optioneel)",
"createacct-email-ph": "Geef uw e-mailadres op",
"savearticle": "Pagina opslaan",
"preview": "Voorvertoning",
"showpreview": "Bewerking ter controle bekijken",
- "showlivepreview": "Bewerking ter controle bekijken",
"showdiff": "Wijzigingen bekijken",
"anoneditwarning": "'''Waarschuwing:''' u bent niet aangemeld.\nUw IP-adres wordt opgeslagen als u wijzigingen op deze pagina maakt.",
"anonpreviewwarning": "''U bent niet aangemeld.''\n''Door uw bewerking op te slaan wordt uw IP-adres opgeslagen in de paginageschiedenis.''",
"search-nonefound": "Er zijn geen resultaten voor uw zoekopdracht.",
"powersearch-legend": "Uitgebreid zoeken",
"powersearch-ns": "Zoeken in naamruimten:",
- "powersearch-redir": "Doorverwijzingen weergeven",
"powersearch-togglelabel": "Selecteren:",
"powersearch-toggleall": "Alle",
"powersearch-togglenone": "Geen",
"prefs-advancedsearchoptions": "Gevorderde instellingen",
"prefs-advancedwatchlist": "Gevorderde instellingen",
"prefs-displayrc": "Weergaveopties",
- "prefs-displaysearchoptions": "Weergaveopties",
"prefs-displaywatchlist": "Weergaveopties",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Verschillen",
"group-bot.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op robots */",
"group-sysop.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op beheerders */",
"group-bureaucrat.js": "/* JavaScript die hier wordt geplaatst heeft alleen invloed op bureaucraten */",
- "notacceptable": "De wikiserver kan de gegevens niet leveren in een vorm die uw browser kan lezen.",
"anonymous": "Anonieme {{PLURAL:$1|gebruiker|gebruikers}} van {{SITENAME}}",
"siteuser": "{{SITENAME}}-gebruiker $1",
"anonuser": "anonieme {{SITENAME}}-gebruiker $1",
"autoredircomment": "Verwijst door naar [[$1]]",
"autosumm-new": "Nieuwe pagina aangemaakt met '$1'",
"size-kilobytes": "$1 kB",
- "livepreview-loading": "Bezig met laden…",
- "livepreview-ready": "Bezig met laden… Klaar!",
- "livepreview-failed": "Live voorvertoning mislukt!\nProbeer de normale voorvertoning.",
- "livepreview-error": "Verbinden mislukt: $1 \"$2\".\nProbeer normale voorvertoning te gebruiken.",
"lag-warn-normal": "Wijzigingen in de afgelopen {{PLURAL:$1|seconde|$1 seconden}} worden misschien niet weergegeven in deze lijst.",
"lag-warn-high": "Door een hoge database-servertoevoer zijn wijzigingen nieuwer dan $1 {{PLURAL:$1|seconde|seconden}} mogelijk niet beschikbaar in de lijst.",
"watchlistedit-numitems": "Uw volglijst bevat {{PLURAL:$1|1 pagina|$1 pagina’s}}, zonder overlegpagina’s.",
"compare-invalid-title": "De opgegeven pagina is ongeldig.",
"compare-title-not-exists": "De titel die u hebt opgegeven bestaat niet.",
"compare-revision-not-exists": "De versie die u hebt opgegeven bestaat niet.",
- "dberr-header": "Deze wiki heeft een probleem",
"dberr-problems": "Onze excuses. Deze site ondervindt op het moment technische problemen.",
"dberr-again": "Wacht een aantal minuten en probeer het daarna opnieuw.",
"dberr-info": "(Kan geen verbinding maken met de databaseserver: $1)",
"readonly_lag": "La banca de donadas es estada automaticament clavada pendent que los servidors segondaris ratrapan lor retard sul servidor principal.",
"internalerror": "Error intèrna",
"internalerror_info": "Error intèrna: $1",
- "fileappenderrorread": "Impossible de legir « $1 » al moment de l’insercion",
- "fileappenderror": "Impossible d'apondre « $1 » a « $2 ».",
"filecopyerror": "Impossible de copiar lo fichièr « $1 » cap a « $2 ».",
"filerenameerror": "Impossible de tornar nomenar lo fichièr « $1 » en « $2 ».",
"filedeleteerror": "Impossible de suprimir lo fichièr « $1 ».",
"directorycreateerror": "Impossible de crear lo dorsièr « $1 ».",
"filenotfound": "Impossible de trobar lo fichièr « $1 ».",
- "fileexistserror": "Impossible d’escriure dins lo dorsièr « $1 » : lo fichièr existís",
"unexpected": "Valor imprevista : « $1 » = « $2 ».",
"formerror": "Error: Impossible de sometre lo formulari",
"badarticleerror": "Aquesta accion pòt pas èsser efectuada sus aquesta pagina.",
"userlogin-helplink2": "Ajuda a la connexion",
"userlogin-loggedin": "Sètz ja connectat en tant que {{GENDER:$1|$1}}.\nUtilizatz lo formulari çaijós per vos connectar amb un autre utilizaire.",
"userlogin-createanother": "Crear un autre compte",
- "createacct-join": "Entratz vòstras informacions çaijós.",
- "createacct-another-join": "Picar las informacions del novèl compte çaijós.",
"createacct-emailrequired": "Adreça electronica",
"createacct-emailoptional": "Adreça de corrièr electronic (facultativa)",
"createacct-email-ph": "Entratz vòstra adreça de corrièr electronic",
"savearticle": "Salvar",
"preview": "Previsualizar",
"showpreview": "Previsualizacion",
- "showlivepreview": "Apercebut rapid",
"showdiff": "Veire los cambiaments",
"anoneditwarning": "'''Atencion :''' sètz pas identificat(ada).\nVòstra adreça IP serà enregistrada dins l’istoric d'aquesta pagina.",
"anonpreviewwarning": "''Sètz pas identificat. Salvar enregistrarà vòstra adreça IP dins l’istoric de las modificacions de la pagina.''",
"search-nonefound": "I a pas cap de resultat correspondent a la requèsta.",
"powersearch-legend": "Recèrca avançada",
"powersearch-ns": "Recercar dins los espacis de nom :",
- "powersearch-redir": "Lista de las redireccions",
"powersearch-togglelabel": "Marcar :",
"powersearch-toggleall": "Tot",
"powersearch-togglenone": "Pas cap",
"prefs-advancedsearchoptions": "Opcions avançadas",
"prefs-advancedwatchlist": "Opcions avançadas",
"prefs-displayrc": "Opcions d'afichatge",
- "prefs-displaysearchoptions": "Opcions d'afichatge",
"prefs-displaywatchlist": "Opcions d'afichatge",
"prefs-tokenwatchlist": "Geton",
"prefs-diffs": "Diferéncias",
"monobook.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge MonoBook unicament. */",
"modern.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Modern unicament. */",
"vector.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Vector unicament. */",
- "notacceptable": "Aqueste servidor wiki pòt pas fornir las donadas dins un format que vòstre client es capable de legir.",
"anonymous": "{{PLURAL:$1|Utilizaire anonim|Utilizaires anonims}} de {{SITENAME}}",
"siteuser": "Utilizaire $1 de {{SITENAME}}",
"anonuser": "l'utilizaire anonim $1 de {{SITENAME}}",
"size-kilobytes": "$1 Ko",
"size-megabytes": "$1 Mo",
"size-gigabytes": "$1 Go",
- "livepreview-loading": "Cargament…",
- "livepreview-ready": "Cargament… Acabat!",
- "livepreview-failed": "L’apercebut rapid a pas capitat!\nEnsajatz la previsualizacion normala.",
- "livepreview-error": "Impossible de se connectar : $1 \"$2\"\nEnsajatz la previsualizacion normala.",
"lag-warn-normal": "Los cambiaments que datan de mens de $1 {{PLURAL:$1|segonda|segondas}} pòdon aparéisser pas dins aquesta lista.",
"lag-warn-high": "En rason d’una fòrta carga de las bancas de donadas, los cambiaments que datan de mens de $1 {{PLURAL:$1|segonda|segondas}} pòdon aparéisser pas dins aquesta lista.",
"watchlistedit-numitems": "Vòstra lista de seguiment conten {{PLURAL:$1|una pagina|$1 paginas}}, sens comptar las paginas de discussion",
"compare-invalid-title": "Lo títol qu'avètz especificat es incorrècte.",
"compare-title-not-exists": "Lo títol qu'avètz especificat existís pas",
"compare-revision-not-exists": "La revision qu'avètz especificada existís pas.",
- "dberr-header": "Aqueste wiki a un problèma",
"dberr-problems": "O planhèm ! Aqueste site rencontra de dificultats tecnicas.",
"dberr-again": "Ensajatz d'esperar qualques minutas e tornatz cargar.",
"dberr-info": "(Se pòt pas connectar al servidor de la banca de donadas : $1)",
"readonly_lag": "ଏହି ଡାଟାବେସଟିରେ ଆପେ ଆପେ ତାଲା ପଡ଼ିଯାଇଅଛି, ଇତିମଧ୍ୟରେ ସାନ ଡାଟାବେସଟି ମୁଖ୍ୟ ଡାଟାବେସ ସହିତ ଯୋଗାଯୋଗ କରୁଅଛି",
"internalerror": "ଭିତରର ଭୁଲ",
"internalerror_info": "ଭିତରର ଭୁଲ : $1",
- "fileappenderrorread": "ଯୋଡ଼ିବା ବେଳେ \"$1\"କୁ ପଢ଼ିପାରିଲୁଁ ନାହିଁ ।",
- "fileappenderror": "\"$1\" ସହ \"$2\" କୁ ଯୋଡ଼ିପାରିଲୁଁ ନାହିଁ ।",
"filecopyerror": "\"$1\" ରୁ \"$2\" କୁ ନକଲ କରିପାରିଲୁଁ ନାହିଁ ।",
"filerenameerror": "\"$1\" ରୁ \"$2\" କୁ ନାମ ବଦଳ କରିପାରିଲୁଁ ନାହିଁ ।",
"filedeleteerror": "\"$1\" ଫାଇଲଟି ଲିଭାଇ ପାରିଲୁଁ ନାହିଁ ।",
"directorycreateerror": "\"$1\" ସୂଚିଟି ତିଆରି କରିପାରିଲୁଁ ନାହିଁ ।",
"filenotfound": "\"$1\" ଫାଇଲଟି ପାଇଲୁ ନାହିଁ ।",
- "fileexistserror": "\"$1\" ଫାଇଲଟି ଲେଖିପାରିଲୁଁ ନାହିଁ: ଏହା ଆଗରୁ ଅଛି",
"unexpected": "ଅଜଣା ନାମ ମିଳିଲା: \"$1\"=\"$2\" ।",
"formerror": "ଭୁଲ: ଫର୍ମଟି ପଠାଇ ପାରିଲୁଁ ନାହିଁ",
"badarticleerror": "ଏହି ପୃଷ୍ଠାରେ ଏହି କାମଟି ହୋଇପାରିବ ନାହିଁ ।",
"savearticle": "ସାଇତିବେ [Save]",
"preview": "ସାଇତିବା ଆଗରୁ ଦେଖନ୍ତୁ",
"showpreview": "ଦେଖଣା [Preview]",
- "showlivepreview": "ଜୀବନ୍ତ ଦେଖଣା",
"showdiff": "ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ",
"anoneditwarning": "'''ସାବଧାନ:''' ଆପଣ ଲଗ-ଇନ କରିନାହାନ୍ତି ।\nଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ଆପଣଙ୍କ IP Address ଟି ସାଇତା ହୋଇଯିବ ।",
"anonpreviewwarning": "''ଆପଣ ଲଗ ଇନ କରି ନାହାନ୍ତି । ବଦଳକରି ସାଇତିଲେ ଆପଣଙ୍କର IP ଠିକଣା ଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ସାଇତା ହୋଇଯିବ ।''",
"search-nonefound": "ଆପଣ ଖୋଜିଥିବା ପ୍ରଶ୍ନ ପାଇଁ କିଛି ଫଳ ମିଳିଲା ନାହିଁ ।",
"powersearch-legend": "ଗହିର ଖୋଜା",
"powersearch-ns": "ନେମସ୍ପେସରେ ଖୋଜିବେ",
- "powersearch-redir": "ପୁନପ୍ରେରଣ ପୃଷ୍ଠାସମୂହର ତାଲିକା ତିଆରିବେ",
"powersearch-togglelabel": "ଯାଞ୍ଚ କରିବା:",
"powersearch-toggleall": "ସବୁ",
"powersearch-togglenone": "କିଛି ନାହିଁ",
"prefs-advancedsearchoptions": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
"prefs-advancedwatchlist": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
"prefs-displayrc": "ଦେଖଣା ବିକଳ୍ପ",
- "prefs-displaysearchoptions": "ଦେଖଣା ବିକଳ୍ପ",
"prefs-displaywatchlist": "ଦେଖଣା ବିକଳ୍ପ",
"prefs-tokenwatchlist": "ଟୋକନ୍",
"prefs-diffs": "ତଫାତସବୁ",
"tooltip-undo": "\"କରନାହିଁ\" ଆଗରୁ କରାଯାଇଥିବା ବଦଳଟିକୁ ପଛକୁ ଲେଉଟାଇଦିଏ ଆଉ ବଦଳ ଫରମଟିକୁ ଦେଖଣା ଭାବରେ ଖୋଲେ । ଏହା ଆପଣଙ୍କୁ ସାରକଥାରେ ଗୋଟିଏ କାରଣ ଲେଖିବାକୁ ଅନୁମତି ଦିଏ ।",
"tooltip-preferences-save": "ଆପଣା ପସନ୍ଦ ସାଇତିବେ",
"tooltip-summary": "ଛୋଟ ସାରକଥାଟିଏ ଦିଅନ୍ତୁ",
- "notacceptable": "ଆପଣଙ୍କ ସହଯୋଗୀ ପଢ଼ିପାରିବା ଢଙ୍ଗରେ ଉଇକି ସର୍ଭର ତଥ୍ୟ ଦେଇପାରିବ ନାହିଁ ।",
"anonymous": "{{SITENAME}}ର ଅଜଣା {{PLURAL:$1|ଜଣ ବ୍ୟବହାରକାରୀ |ଜଣ ବ୍ୟବହାରକାରୀଗଣ}}",
"siteuser": "{{SITENAME}} ବ୍ୟବହାରକାରୀ $1",
"anonuser": "{{SITENAME}} ବେନାମି ବ୍ୟବହାରକାରୀ $1",
"autosumm-replace": "ବିଷୟବସ୍ତୁକୁ \"$1\" ଦେଇ ପ୍ରତିବଦଳ କଲେ",
"autoredircomment": "[[$1]]କୁ ପୃଷ୍ଠାଟି ଘୁଞ୍ଚାଇଦିଆଗଲା",
"autosumm-new": "\"$1\" ନାଆଁରେ ପୃଷ୍ଠାଟିଏ ତିଆରିକଲେ",
- "livepreview-loading": "ଖୋଲୁଅଛି...",
- "livepreview-ready": "ଖୋଲୁଅଛି...ଏବେ ସଜିଲ!",
- "livepreview-failed": "ସିଧା ଦେଖଣା ବିଫଳ ହେଲା!\nସାଧାରଣ ଦେଖଣା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ ।",
- "livepreview-error": "ଏହିସବୁ କାମ ପାଇଁ ଯୋଡ଼ିପାରୁନାହୁଁ $1 \"$2\" \nସାଧାରଣ ଦେଖଣା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ ।",
"lag-warn-normal": "$1 {{PLURAL:$1|ସେକେଣ୍ଡ|ସେକେଣ୍ଡ}}ରୁ ନୂଆ ବଦଳ ଏହି ତାଲିକାରେ ଦେଖାଯାଉ ନାହିଁ ।",
"lag-warn-high": "ଅଧିକ ଡାଟାବେସ ସର୍ଭର ପଛୁଆ ଅବସ୍ଥା ହେତୁ $1 {{PLURAL:$1|ସେକେଣ୍ଡ|ସେକେଣ୍ଡ}}ରୁ ନୂଆ ବଦଳସବୁ ଏହି ତାଲିକାରେ ଦେଖାଯିବ ନାହିଁ ।",
"watchlistedit-numitems": "ଆପଣଙ୍କ ଦେଖଣାତାଲିକାରେ ଅଲୋଚନାକୁ ଛାଡ଼ି {{PLURAL:$1|ନାମଟିଏ|$1 ଗୋଟି ନାମ}} ଅଛି ।",
"compare-invalid-title": "ଆପଣ ଦର୍ଶାଇଥିବା ଶିରୋନାମା ବୈଧ ନୁହେଁ ।",
"compare-title-not-exists": "ଆପଣ ଦର୍ଶାଇଥିବା ଶିରୋନାମାଟି ଆଦୌ ନାହିଁ ।",
"compare-revision-not-exists": "ଆପଣ ଦର୍ଶାଇଥିବା ପୁନରାବୃତ୍ତି ଆଦୌ ନାହିଁ ।",
- "dberr-header": "ଏହି ଉଇକିରେ କିଛି ଅସୁବିଧା ଅଛି ।",
"dberr-problems": "କ୍ଷମାକରିବେ ! ଏହି ସାଇଟରେ ଟିକେ ବୈଷୟିକ ତ୍ରୁଟି ଦେଖାଦେଇଛି ।",
"dberr-again": "କିଛି ମିନିଟ ଅପେକ୍ଷା କରିବା ସହ ଆଉ ଥରେ ଲୋଡ କରନ୍ତୁ ।",
"dberr-info": "(ଡାଟାବେସ ସର୍ଭର ସହ ଯୋଗାଯୋଗ କରିପାରିଲୁ ନାହିଁ: $1)",
"search-interwiki-more": "(weidere)",
"searchall": "all",
"powersearch-ns": "Guck uff in Blatznaame:",
- "powersearch-redir": "Lischt vun Weiterleidinge",
"powersearch-toggleall": "All",
"powersearch-togglenone": "Ken",
"search-external": "Guck im Gewebb",
"table_pager_limit_submit": "Geh los",
"autosumm-blank": "Des Blatt iss leer gmacht worre.",
"autosumm-new": "Des Blatt is gschtaert warre: „$1“",
- "livepreview-loading": "Laade…",
"watchlistedit-normal-title": "Watsch-Lischt ennere",
"version": "Version",
"version-specialpages": "Besunnere Bledder",
"readonly_lag": "Baza danych została automatycznie zablokowana na czas potrzebny do wykonania synchronizacji zmian między serwerem głównym i serwerami pośredniczącymi.",
"internalerror": "Błąd wewnętrzny",
"internalerror_info": "Błąd wewnętrzny – $1",
- "fileappenderrorread": "Błąd odczytu „$1” w trakcie dołączania.",
- "fileappenderror": "Nie udało się dołączyć „$1” do „$2”.",
"filecopyerror": "Nie można skopiować pliku „$1” do „$2”.",
"filerenameerror": "Nie można zmienić nazwy pliku „$1” na „$2”.",
"filedeleteerror": "Nie można usunąć pliku „$1”.",
"directorycreateerror": "Nie udało się utworzyć katalogu „$1”.",
"filenotfound": "Nie można znaleźć pliku „$1”.",
- "fileexistserror": "Nie udało się zapisać do pliku „$1” ponieważ plik istnieje",
"unexpected": "Nieoczekiwana wartość „$1”=„$2”.",
"formerror": "Błąd – nie można wysłać formularza",
"badarticleerror": "Dla tej strony ta operacja nie może być wykonana.",
"userlogin-helplink2": "Pomoc przy logowaniu",
"userlogin-loggedin": "Zalogowano jako {{GENDER:$1|$1}}.\nUżyj poniższego formularza, aby zalogować się jako inny użytkownik.",
"userlogin-createanother": "Załóż nowe konto",
- "createacct-join": "Wpisz poniżej swoje dane.",
- "createacct-another-join": "Wprowadź szczegóły nowego konta poniżej.",
"createacct-emailrequired": "Adres e‐mail",
"createacct-emailoptional": "Adres e-mail (opcjonalnie)",
"createacct-email-ph": "Wpisz swój adres e-mail",
"savearticle": "Zapisz",
"preview": "Podgląd",
"showpreview": "Pokaż podgląd",
- "showlivepreview": "Dynamiczny podgląd",
"showdiff": "Podgląd zmian",
"anoneditwarning": "'''Uwaga:''' Nie jesteś {{GENDER:|zalogowany|zalogowana}}.\nTwój adres IP zostanie zapisany w historii edycji strony.",
"anonpreviewwarning": "''Nie jesteś zalogowany. Jeśli zapiszesz zmiany, w historii edycji strony zostanie umieszczony Twój adres IP.''",
"search-nonefound": "Brak wyników spełniających kryteria podane w zapytaniu.",
"powersearch-legend": "Wyszukiwanie zaawansowane",
"powersearch-ns": "Przeszukaj przestrzenie nazw:",
- "powersearch-redir": "Pokaż przekierowania",
"powersearch-togglelabel": "Zaznacz",
"powersearch-toggleall": "wszystko",
"powersearch-togglenone": "nic",
"prefs-advancedsearchoptions": "Zaawansowane",
"prefs-advancedwatchlist": "Zaawansowane",
"prefs-displayrc": "Opcje wyświetlania",
- "prefs-displaysearchoptions": "Opcje wyświetlania",
"prefs-displaywatchlist": "Opcje wyświetlania",
"prefs-tokenwatchlist": "Token",
"prefs-diffs": "Zmiany",
"monobook.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Książka */",
"modern.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Nowoczesna */",
"vector.js": "/* Umieszczony tutaj kod JavaScript zostanie załadowany wyłącznie przez użytkowników korzystających ze skórki Wektor */",
- "notacceptable": "Serwer wiki nie może dostarczyć danych w formacie, którego Twoja przeglądarka oczekuje.",
"anonymous": "{{PLURAL:$1|Anonimowy użytkownik|Anonimowi użytkownicy}} {{GRAMMAR:D.lp|{{SITENAME}}}}",
"siteuser": "{{GENDER:$2|użytkownik|użytkowniczka}} {{GRAMMAR:D.lp|{{SITENAME}}}} – $1",
"anonuser": "niezalogowany użytkownik {{GRAMMAR:D.lp|{{SITENAME}}}} – $1",
"size-kilobytes": "$1 KB",
"size-megabytes": "$1 MB",
"size-gigabytes": "$1 GB",
- "livepreview-loading": "Trwa ładowanie…",
- "livepreview-ready": "Trwa ładowanie… Gotowe!",
- "livepreview-failed": "Podgląd na żywo nie zadziałał! Spróbuj podglądu standardowego.",
- "livepreview-error": "Nieudane połączenie: $1 „$2” Spróbuj podglądu standardowego.",
"lag-warn-normal": "Zmiany nowsze niż $1 {{PLURAL:$1|sekunda|sekundy|sekund}} mogą nie być widoczne na tej liście.",
"lag-warn-high": "Z powodu dużego obciążenia serwerów bazy danych, zmiany nowsze niż $1 {{PLURAL:$1|sekunda|sekundy|sekund}} mogą nie być widoczne na tej liście.",
"watchlistedit-numitems": "Lista obserwowanych przez Ciebie stron zawiera {{PLURAL:$1|1 stronę|$1 strony|$1 stron}}, nie licząc stron dyskusji.",
"compare-invalid-title": "Tytuł jest nieprawidłowy.",
"compare-title-not-exists": "Podany tytuł nie istnieje.",
"compare-revision-not-exists": "Wybrana wersja nie istnieje.",
- "dberr-header": "Ta wiki nie działa poprawnie",
"dberr-problems": "Przepraszamy! Witryna ma problemy techniczne.",
"dberr-again": "Spróbuj przeładować stronę za kilka minut.",
"dberr-info": "(Brak komunikacji z serwerem bazy danych – $1)",
"readonly_lag": "O banco de dados foi automaticamente bloqueado enquanto os servidores secundários se sincronizam com o principal",
"internalerror": "Erro interno",
"internalerror_info": "Erro interno: $1",
- "fileappenderrorread": "Não foi possível ler \"$1\" durante a anexação.",
- "fileappenderror": "Não foi possível adicionar \"$1\" a \"$2\".",
"filecopyerror": "Não foi possível copiar o arquivo \"$1\" para \"$2\".",
"filerenameerror": "Não foi possível renomear o arquivo \"$1\" para \"$2\".",
"filedeleteerror": "Não foi possível eliminar o arquivo \"$1\".",
"directorycreateerror": "Não foi possível criar o diretório \"$1\".",
"filenotfound": "Não foi possível encontrar o arquivo \"$1\".",
- "fileexistserror": "Não foi possível escrever no arquivo \"$1\": ele já existe",
"unexpected": "Valor não esperado: \"$1\"=\"$2\".",
"formerror": "Erro: Não foi possível enviar o formulário",
"badarticleerror": "Esta ação não pode ser realizada nesta página.",
"userlogin-helplink2": "Ajuda com o login",
"userlogin-loggedin": "Você já está conectado como {{GENDER:$1|$1}}.\nUse o formulário abaixo para iniciar sessão como outro usuário.",
"userlogin-createanother": "Crie uma outra conta",
- "createacct-join": "Insira suas informações abaixo.",
- "createacct-another-join": "Preeencha as informações para a nova conta",
"createacct-emailrequired": "Endereço de e-mail",
"createacct-emailoptional": "Endereço de e-mail (opcional)",
"createacct-email-ph": "Confirme seu endereço de e-mail",
"savearticle": "Salvar página",
"preview": "Pré-visualização",
"showpreview": "Mostrar previsão",
- "showlivepreview": "Pré-visualização em tempo real",
"showdiff": "Mostrar alterações",
"anoneditwarning": "'''Atenção''': Você não se encontra autenticado.\nO seu endereço de IP será registrado no histórico de edições desta página.",
"anonpreviewwarning": "''Você não está logado. Gravar registará o seu endereço IP no histórico de edições desta página.''",
"search-nonefound": "Não há resultados que correspondam à consulta.",
"powersearch-legend": "Pesquisa avançada",
"powersearch-ns": "Pesquisar nos espaços nominais:",
- "powersearch-redir": "Listar redirecionamentos",
"powersearch-togglelabel": "Selecionar:",
"powersearch-toggleall": "Todos",
"powersearch-togglenone": "Nenhum",
"prefs-advancedsearchoptions": "Opções avançadas",
"prefs-advancedwatchlist": "Opções avançadas",
"prefs-displayrc": "Opções de exibição",
- "prefs-displaysearchoptions": "Opções de exibição",
"prefs-displaywatchlist": "Opções de exibição",
"prefs-tokenwatchlist": "Senha",
"prefs-diffs": "Diferenças",
"monobook.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin MonoBook */",
"modern.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin Moderno */",
"vector.js": "/* Qualquer JavaScript aqui colocado afetará os usuários do skin Vector */",
- "notacceptable": "O servidor não pode fornecer os dados em um formato que o seu cliente possa ler.",
"anonymous": "{{PLURAL:$1|Usuário anônimo|Usuários anônimos}} da {{SITENAME}}",
"siteuser": "{{GENDER:$2|um utilizador|uma utilizadora|um utilizador}} da {{SITENAME}} ($1)",
"anonuser": "usuário anônimo $1 da {{SITENAME}}",
"autosumm-replace": "Página substituída por '$1'",
"autoredircomment": "Redirecionando para [[$1]]",
"autosumm-new": "Criou página com '$1'",
- "livepreview-loading": "Carregando…",
- "livepreview-ready": "Carregando… Pronto!",
- "livepreview-failed": "A previsão instantânea falhou!\nTente a previsão comum.",
- "livepreview-error": "Falha ao conectar: $1 \"$2\"\nTente a previsão comum.",
"lag-warn-normal": "É possível que as alterações que sejam mais recentes do que $1 {{PLURAL:$1|segundo|segundos}} não sejam exibidas nesta lista.",
"lag-warn-high": "Devido a sérios problemas de latência no servidor do banco de dados, as alterações mais recentes que $1 {{PLURAL:$1|segundo|segundos}} poderão não ser exibidas nesta lista.",
"watchlistedit-numitems": "A sua lista de páginas vigiadas possui {{PLURAL:$1|um título|$1 títulos}}, além das respectivas páginas de discussão.",
"compare-invalid-title": "O título que você especificou é inválido.",
"compare-title-not-exists": "O título que você especificou não existe.",
"compare-revision-not-exists": "A revisão que você especificou não existe.",
- "dberr-header": "Este wiki tem um problema",
"dberr-problems": "Desculpe! Este sítio está passando por dificuldades técnicas.",
"dberr-again": "Experimente esperar alguns minutos e atualizar.",
"dberr-info": "(Não foi possível contactar o servidor de base de dados: $1)",
"readonly_lag": "Error message displayed when the database is locked.",
"internalerror": "{{Identical|Internal error}}",
"internalerror_info": "Parameters:\n* $1 - error message",
- "fileappenderrorread": "\"Append\" is a computer procedure, explained on [[w:Append|Wikipedia]]. Parameters:\n* $1 - probably filename",
- "fileappenderror": "Parameters:\n* $1 - file name\n* $2 - file name",
"filecopyerror": "Parameters:\n* $1 - source file name\n* $2 - destination file name",
"filerenameerror": "Parameters:\n* $1 - old file name\n* $2 - new file name",
"filedeleteerror": "Parameters:\n* $1 - file name",
"directorycreateerror": "Parameters:\n* $1 - directory name",
"filenotfound": "Parameters:\n* $1 - file name",
- "fileexistserror": "Parameters:\n* $1 - file name",
"unexpected": "This message indicates the value $2 is unexpected for $1. Parameters:\n* $1 - name\n* $2 - value",
"formerror": "Generic error message show to a user when they try to submit information that could not be processed for any reason.",
"badarticleerror": "Used as error message in moving page.\n\nSee also:\n* {{msg-mw|Articleexists}}\n* {{msg-mw|Bad-target-model}}",
"userlogin-helplink2": "Label for a link to login help.\n\nSee example: [[Special:UserLogin]]\n\nSee also:\n* {{msg-mw|Helplogin-url}}",
"userlogin-loggedin": "Used as warning on [[Special:UserLogin]] when the current user is already logged in.\n\nFollowed by the Login form.\n\nSee example: [[Special:UserLogin]].\n\nParameters:\n* $1 - user name (used for display and for gender support)",
"userlogin-createanother": "Used as label for the button on [[Special:UserLogin]] shown when the current user is already logged in.\n{{Identical|Create another account}}",
- "createacct-join": "Subheading of vertical-layout create account form encouraging user to join the wiki.\n\nSee example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]",
- "createacct-another-join": "Subheading of create account form when one user creates an account for another.",
"createacct-emailrequired": "Label in create account form for email field when it is required.\n\nSee also:\n* {{msg-mw|Createacct-emailoptional}}\n{{Identical|E-mail address}}",
"createacct-emailoptional": "Label in vertical-layout create account form for email field when it is optional.\n\nSee example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]\n\nSee also:\n* {{msg-mw|Createacct-emailrequired}}",
"createacct-email-ph": "Placeholder in vertical-layout create account form for email field.\n\nSee example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]",
"savearticle": "Text on the Save page button. See also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons.\n\nSee also:\n* {{msg-mw|Savearticle}}\n* {{msg-mw|Accesskey-save}}\n* {{msg-mw|Tooltip-save}}\n{{Identical|Save page}}",
"preview": "The title of the Preview page shown after clicking the \"Show preview\" button in the edit page. Since this is a heading, it should probably be translated as a noun and not as a verb.\n\n{{Identical|Preview}}",
"showpreview": "The text of the button to preview the page you are editing. See also {{msg-mw|showdiff}} and {{msg-mw|savearticle}} for the other buttons.\n\nSee also:\n* {{msg-mw|Showpreview}}\n* {{msg-mw|Accesskey-preview}}\n* {{msg-mw|Tooltip-preview}}\n{{Identical|Show preview}}",
- "showlivepreview": "An edit preview without needing to reload the edit form.",
"showdiff": "Button below the edit page. See also {{msg-mw|Showpreview}} and {{msg-mw|Savearticle}} for the other buttons.\n\nSee also:\n* {{msg-mw|Showdiff}}\n* {{msg-mw|Accesskey-diff}}\n* {{msg-mw|Tooltip-diff}}\n{{Identical|Show change}}",
"anoneditwarning": "Shown when editing a page anonymously.\nSee also:\n* {{msg-mw|Sf autoedit anoneditwarning}}\n* {{msg-mw|Wikibase-anonymouseditwarning-property}}\n* {{msg-mw|Wikibase-anonymouseditwarning-item}}\n* {{msg-mw|Anonpreviewwarning}}",
"anonpreviewwarning": "See also:\n* {{msg-mw|Anoneditwarning}}",
"search-nonefound": "Message shown when a search returned no results (when using the default MediaWiki search engine).",
"powersearch-legend": "Advanced search\n\n{{Identical|Advanced search}}",
"powersearch-ns": "Used in the extended search form at [[Special:Search]]",
- "powersearch-redir": "Used in the extended search form at [[Special:Search]]",
"powersearch-togglelabel": "Used in [{{canonicalurl:Special:Search|advanced=1}} Advanced search]. Synonym: \"Select\" as verb.\n{{Identical|Check}}",
"powersearch-toggleall": "\"All\" refers to namespaces. It is used in Advanced search: {{canonicalurl:Special:Search|advanced=1}}\n{{Identical|All}}",
"powersearch-togglenone": "\"None\" refers to namespaces. It is used in Advanced search: {{canonicalurl:Special:Search|advanced=1}}\n{{Identical|None}}",
"prefs-advancedsearchoptions": "Used in [[Special:Preferences]], tab \"Search options\".\n{{Identical|Advanced options}}",
"prefs-advancedwatchlist": "Used in [[Special:Preferences]], tab \"Watchlist\".\n{{Identical|Advanced options}}",
"prefs-displayrc": "\"Display\" is a noun that specifies the kind of \"options\". So translate as \"options about display\", not as \"display the options\".\n\nUsed in [[Special:Preferences]], tab \"Recent changes\". The display options refer to:\n* {{msg-mw|Recentchangesdays}}\n* {{msg-mw|Recentchangescount}}",
- "prefs-displaysearchoptions": "\"Display\" is a noun that specifies the kind of \"options\". So translate as \"options about display\", not as \"display the options\".\n\nUsed in [[Special:Preferences]], tab \"Search options\". The display options refer to:\n* {{msg-mw|Vector-simplesearch-preference}}",
"prefs-displaywatchlist": "\"Display\" is a noun that specifies the kind of \"options\". So translate as \"options about display\", not as \"display the options\".\n\nUsed in [[Special:Preferences]], tab \"Watchlist\". The display options refer to:\n* {{msg-mw|Prefs-watchlist-days}}\n* {{msg-mw|Prefs-watchlist-edits}}",
"prefs-tokenwatchlist": "Section heading.\nUsed in [[Special:Preferences]], tab \"Watchlist\".\n{{Identical|Token}}",
"prefs-diffs": "Used in [[Special:Preferences]], tab \"Misc\".",
"group-bot.js": "{{doc-group|bot|js}}",
"group-sysop.js": "{{doc-group|sysop|js}}",
"group-bureaucrat.js": "{{doc-group|bureaucrat|js}}",
- "notacceptable": "Used as error message for HTTP \"406 Not acceptable\" error.",
"anonymous": "This message is shown when viewing the credits of a page (example: {{fullurl:Main Page|action=credits}}). Note that this action is disabled by default (currently enabled on translatewiki.net).\n\nThis message appears at the very end of the list of names in the message {{msg-mw|Othercontribs}}.\n\nIf there are no anonymous users in the credits list then this message does not appear at all.\n\nParameters:\n* $1 - the number of anonymous users in the message",
"siteuser": "This message is shown when viewing the credits of a page ([{{fullurl:Main Page|action=credits}} example]). Note that this action is disabled by default, but currently enabled on translatewiki.net. This message is the variable $3 in the message {{msg-mw|lastmodifiedatby}}. This message only appears if a user has not entered their 'real name' in their preferences. See also {{msg-mw|Siteusers}}.\n\nParameters:\n* $1 is a link to a user page with the user name as link text\n* $2 is a user name for use with GENDER (optional)",
"anonuser": "Shown when viewing the credits of a page (example: {{canonicalurl:Main Page|action=credits}}).\n\nNote that this action is enabled by default but disabled on Wikimedia wikis.\n\nUsed as <code>$3</code> in {{msg-mw|Lastmodifiedatby}}. This message only appears if the user is anonymous.\n\nParameters:\n* $1 - a link to the user's contributions\n\nSee also:\n* {{msg-mw|Anonusers}}\n* {{msg-mw|Siteuser}}",
"bitrate-exabits": "{{optional}}\nBitrate (of a file, typically) in exabits (1 exabits = 1000×1000×1000×1000×1000×1000 bits).",
"bitrate-zetabits": "{{optional}}\nBitrate (of a file, typically) in zetabits (1 zetabits = 1000×1000×1000×1000×1000×1000×1000 bits).",
"bitrate-yottabits": "{{optional}}\nBitrate (of a file, typically) in yottabits (1 yottabits = 1000×1000×1000×1000×1000×1000×1000×1000 bits).",
- "livepreview-loading": "{{Identical|Loading}}",
- "livepreview-ready": "See also:\n* {{msg-mw|Livepreview-loading}}\n* {{msg-mw|Livepreview-failed}}\n* {{msg-mw|Livepreview-error}}",
- "livepreview-failed": "Used as error message.\n\nSee also:\n* {{msg-mw|Livepreview-failed}}\n* {{msg-mw|Livepreview-error}}",
- "livepreview-error": "Used as error message. Parameters:\n* $1 - ...\n* $2 - ...\nSee also:\n* {{msg-mw|Livepreview-failed}}\n* {{msg-mw|Livepreview-error}}",
"lag-warn-normal": "Used as warning about slave lag. Parameters:\n* $1 - number of seconds\nSee also:\n* {{msg-mw|Lag-warn-high}}",
"lag-warn-high": "Used as warning about slave lag. Parameters:\n* $1 - number of seconds\nSee also:\n* {{msg-mw|Lag-warn-normal}}",
"editwatchlist-summary": "{{doc-specialpagesummary|editwatchlist}}",
"compare-invalid-title": "Used as error message in [[Special:ComparePages]].",
"compare-title-not-exists": "Used as error message in [[Special:ComparePages]].",
"compare-revision-not-exists": "Used as error message in [[Special:ComparePages]].",
- "dberr-header": "This message does not allow any wiki nor html markup.",
"dberr-problems": "This message does not allow any wiki nor html markup.",
"dberr-again": "This message does not allow any wiki nor html markup.",
"dberr-info": "This message does not allow any wiki nor html markup. Parameters:\n* $1 - database server name\nSee also:\n* {{msg-mw|Dberr-info-hidden}} - hides database server name",
"readonly_lag": "Baza de date a fost închisă automatic în timp ce serverele secundare ale bazei de date îl urmează pe cel principal.",
"internalerror": "Eroare internă",
"internalerror_info": "Eroare internă: $1",
- "fileappenderrorread": "Citirea fișierului „$1” nu a putut fi executată în timpul adăugării.",
- "fileappenderror": "Nu se poate adăuga \"$1\" în \"$2\".",
"filecopyerror": "Fișierul \"$1\" nu a putut fi copiat la \"$2\".",
"filerenameerror": "Fișierul \"$1\" nu a putut fi mutat la \"$2\".",
"filedeleteerror": "Fișierul \"$1\" nu a putut fi șters.",
"directorycreateerror": "Nu se poate crea directorul \"$1\".",
"filenotfound": "Fișierul „$1” nu a putut fi găsit.",
- "fileexistserror": "Imposibil de scris fișierul „$1”: fișierul există deja.",
"unexpected": "Valoare neașteptată: „$1”=„$2”.",
"formerror": "Eroare: datele nu au putut fi trimise",
"badarticleerror": "Această acțiune nu poate fi efectuată pe această pagină.",
"userlogin-helplink2": "Ajutor la autentificare",
"userlogin-loggedin": "Sunteți deja {{GENDER:$1|autentificat|autentificată}} ca {{GENDER:$1|$1}}.\nUtilizați formularul de mai jos pentru a vă autentifica cu alt nume de utilizator.",
"userlogin-createanother": "Creează un alt cont",
- "createacct-join": "Introduceți-vă informațiile mai jos.",
- "createacct-another-join": "Introduceți, mai jos, informațiile noului cont.",
"createacct-emailrequired": "Adresă de e-mail",
"createacct-emailoptional": "Adresă de e-mail (opțională)",
"createacct-email-ph": "Introduceți adresa dumnevoastră de e-mail",
"savearticle": "Salvare pagină",
"preview": "Previzualizare",
"showpreview": "Previzualizare",
- "showlivepreview": "Previzualizare live",
"showdiff": "Afișare diferențe",
"anoneditwarning": "'''Atenție:''' Nu v-ați autentificat. Adresa IP vă va fi înregistrată în istoricul acestei pagini.",
"anonpreviewwarning": "''Nu v-ați autentificat. Dacă salvați pagina adresa dumneavoastră IP va fi înregistrată în istoric.''",
"search-nonefound": "Nu sunt rezultate conforme interogării.",
"powersearch-legend": "Căutare avansată",
"powersearch-ns": "Căutare în spațiile de nume:",
- "powersearch-redir": "Afișează redirecționările",
"powersearch-togglelabel": "Selectare:",
"powersearch-toggleall": "Tot",
"powersearch-togglenone": "Nimic",
"prefs-advancedsearchoptions": "Opțiuni avansate",
"prefs-advancedwatchlist": "Opțiuni avansate",
"prefs-displayrc": "Opțiuni de afișare",
- "prefs-displaysearchoptions": "Opțiuni de afișare",
"prefs-displaywatchlist": "Opțiuni de afișare",
"prefs-tokenwatchlist": "Jeton",
"prefs-diffs": "Diferențe",
"modern.css": "/* CSS plasate aici vor afecta utilizatorii stilului Modern */",
"vector.css": "/* CSS plasate aici vor afecta utilizatorii stilului Vector */",
"print.css": "/* CSS plasate aici vor afecta modul în care paginile vor fi imprimate */",
- "notacceptable": "Serverul wiki nu poate oferi date într-un format pe care clientul tău să-l poată citi.",
"anonymous": "{{PLURAL:$1|Utilizator anonim|Utilizatori anonimi}} ai {{SITENAME}}",
"siteuser": "Utilizator {{SITENAME}} $1",
"anonuser": "utlizator anonim $1 al {{SITENAME}}",
"autosumm-replace": "Pagină înlocuită cu „$1”",
"autoredircomment": "Redirecționat înspre [[$1]]",
"autosumm-new": "Pagină nouă: $1",
- "livepreview-loading": "Încărcare…",
- "livepreview-ready": "Încărcare… Gata!",
- "livepreview-failed": "Previzualizarea directă a eșuat! Încearcă previzualizarea normală.",
- "livepreview-error": "Conectarea a eșuat: $1 „$2”.\nÎncearcă previzualizarea normală.",
"lag-warn-normal": "Modificările mai noi de $1 {{PLURAL:$1|secondă|seconde}} pot să nu apară în listă.",
"lag-warn-high": "Serverul bazei de date este suprasolicitat, astfel încît modificările făcute în ultimele $1 {{PLURAL:$1|secundă|secunde}} pot să nu apară în listă.",
"watchlistedit-numitems": "Lista ta de pagini urmărite conține {{PLURAL:$1|1 titlu|$1 titluri}}, excluzând paginile de discuții.",
"compare-invalid-title": "Titlul specificat nu este corect.",
"compare-title-not-exists": "Titlul specificat nu există.",
"compare-revision-not-exists": "Versiunea specificată nu există.",
- "dberr-header": "Acest site are o problemă",
"dberr-problems": "Ne cerem scuze! Acest site întâmpină dificultăți tehnice.",
"dberr-again": "Așteptați câteva minute și încercați din nou.",
"dberr-info": "(Nu se poate contacta serverul bazei de date: $1)",
"Александр Сигачёв",
"ОйЛ",
"Умар",
- "לערי ריינהארט"
+ "לערי ריינהארט",
+ "Meshkov.a"
]
},
"tog-underline": "Подчёркивание ссылок:",
"readonly_lag": "База данных автоматически заблокирована от изменений на время, пока вторичные сервера базы данных не синхронизируются с первичным.",
"internalerror": "Внутренняя ошибка",
"internalerror_info": "Внутренняя ошибка: $1",
- "fileappenderrorread": "Не удалось прочитать «$1» во время дополнения.",
- "fileappenderror": "Не удалось присоединить «$1» к «$2».",
"filecopyerror": "Невозможно скопировать файл «$1» в «$2».",
"filerenameerror": "Невозможно переименовать файл «$1» в «$2».",
"filedeleteerror": "Невозможно удалить файл «$1».",
"directorycreateerror": "Невозможно создать директорию «$1».",
"filenotfound": "Невозможно найти файл «$1».",
- "fileexistserror": "Невозможно записать в файл «$1»: файл существует.",
"unexpected": "Неподходящее значение: «$1»=«$2».",
"formerror": "Ошибка: невозможно передать данные формы",
"badarticleerror": "Это действие не может быть выполнено на данной странице.",
"userlogin-helplink2": "Помощь по входу",
"userlogin-loggedin": "Вы уже вошли как {{GENDER:$1|$1}}.\nИспользуйте форму ниже, чтобы войти под другой учётной записью.",
"userlogin-createanother": "Создать другую учётную запись",
- "createacct-join": "Введите свои данные ниже.",
- "createacct-another-join": "Введите данные новой учётной записи ниже.",
"createacct-emailrequired": "Адрес электронной почты",
"createacct-emailoptional": "Адрес электронной почты (необязательно)",
"createacct-email-ph": "Введите свой адрес электронной почты",
"savearticle": "Записать страницу",
"preview": "Предпросмотр",
"showpreview": "Предварительный просмотр",
- "showlivepreview": "Быстрый предпросмотр",
"showdiff": "Внесённые изменения",
"anoneditwarning": "'''Внимание!''' Вы не авторизовались на сайте.\nВ истории изменений этой страницы будет записан ваш IP-адрес.",
"anonpreviewwarning": "''Вы не представились системе. Сохранение приведёт к записи вашего IP-адреса в историю изменений страницы.''",
"search-nonefound": "Соответствий запросу не найдено.",
"powersearch-legend": "Расширенный поиск",
"powersearch-ns": "Поиск в пространствах имён:",
- "powersearch-redir": "Выводить перенаправления",
"powersearch-togglelabel": "Отметить:",
"powersearch-toggleall": "Все",
"powersearch-togglenone": "Ничего",
"prefs-advancedsearchoptions": "Расширенные настройки",
"prefs-advancedwatchlist": "Расширенные настройки",
"prefs-displayrc": "Настройки отображения",
- "prefs-displaysearchoptions": "Настройки отображения",
"prefs-displaywatchlist": "Настройки отображения",
"prefs-tokenwatchlist": "Токен",
"prefs-diffs": "Разница версий",
"pageswithprop-prophidden-binary": "значение двоичного свойства скрыто ($1)",
"doubleredirects": "Двойные перенаправления",
"doubleredirectstext": "На этой странице представлен список перенаправлений на другие перенаправления.\nКаждая строка содержит ссылки на первое и второе перенаправления, а также целевую страницу второго перенаправления, в которой обычно указывается название страницы, куда должно ссылаться первое перенаправление.\n<del>Зачёркнутые</del> записи были исправлены.",
- "double-redirect-fixed-move": "СÑ\82Ñ\80аниÑ\86а [[$1]] бÑ\8bла пеÑ\80еименована, Ñ\81ейÑ\87аÑ\81 она пеÑ\80енапÑ\80авлÑ\8fеÑ\82 на [[$2]]",
- "double-redirect-fixed-maintenance": "Ð\98Ñ\81пÑ\80авление двойного пеÑ\80енапÑ\80авлениÑ\8f Ñ\81 [[$1]] на [[$2]].",
+ "double-redirect-fixed-move": "СÑ\82Ñ\80аниÑ\86а [[$1]] бÑ\8bла пеÑ\80емеÑ\89ена.\nÐ\9eна авÑ\82омаÑ\82иÑ\87еÑ\81ки обновлена и Ñ\82епеÑ\80Ñ\8c она пеÑ\80енапÑ\80авлÑ\8fеÑ\82 на Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 [[$2]].",
+ "double-redirect-fixed-maintenance": "Ð\90вÑ\82омаÑ\82иÑ\87еÑ\81кое иÑ\81пÑ\80авление двойного пеÑ\80енапÑ\80авлениÑ\8f Ñ\81 [[$1]] на [[$2]] в Ñ\80абоÑ\82е по Ñ\82еÑ\85ниÑ\87еÑ\81комÑ\83 обÑ\81лÑ\83живаниÑ\8e.",
"double-redirect-fixer": "Исправитель перенаправлений",
"brokenredirects": "Разорванные перенаправления",
"brokenredirectstext": "Следующие перенаправления указывают на несуществующие страницы:",
"group-bot.js": "/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус ботов (bots) */",
"group-sysop.js": "/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус администраторов (sysops) */",
"group-bureaucrat.js": "/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус бюрократов (bureaucrats) */",
- "notacceptable": "Вики-сервер не может предоставить данные в формате, который мог бы прочитать ваш браузер.<br />\nThe wiki server can't provide data in a format your client can read.",
"anonymous": "{{PLURAL:$1|1=Анонимный участник|Анонимные участники}} {{grammar:genitive|{{SITENAME}}}}",
"siteuser": "{{GENDER:$2|участник|участница}} {{grammar:genitive|{{SITENAME}}}} $1",
"anonuser": "анонимный участник {{grammar:genitive|{{SITENAME}}}} $1",
"bitrate-megabits": "$1 Мб/с",
"bitrate-gigabits": "$1 Гб/с",
"bitrate-terabits": "$1 Тб/с",
- "livepreview-loading": "Загрузка…",
- "livepreview-ready": "Загрузка… Готово!",
- "livepreview-failed": "Не удалось использовать быстрый предпросмотр. Попробуйте воспользоваться обычным предпросмотром.",
- "livepreview-error": "Не удалось установить соединение: $1 «$2». Попробуйте воспользоваться обычным предпросмотром.",
"lag-warn-normal": "Изменения, сделанные менее {{PLURAL:$1|$1 секунды|$1 секунд|1=секунды}} назад, могут не отображаться в этом списке.",
"lag-warn-high": "Из-за большого отставания в синхронизации серверов баз данных изменения, сделанные менее {{PLURAL:$1|$1 секунды|$1 секунд|1=секунды}} назад, могут не отображаться в этом списке.",
"watchlistedit-numitems": "Ваш список наблюдения содержит $1 {{PLURAL:$1|запись|записей|записи}}, не считая страниц обсуждений.",
"compare-invalid-title": "Указанное вами название недопустимо.",
"compare-title-not-exists": "Не существует указанного вами названия.",
"compare-revision-not-exists": "Указанной вами версии не существует.",
- "dberr-header": "Эта вики испытывает затруднения",
"dberr-problems": "Извините! На данном сайте возникли технические трудности.",
"dberr-again": "Попробуйте обновить страницу через несколько минут.",
"dberr-info": "(невозможно соединиться с сервером баз данных: $1)",
"readonly_lag": "सहायकतन्त्रांशः (slave database) यावत् मुख्यतन्त्रांशात् किमपि स्वीकुर्यात्, तावत् मुख्यतन्त्रांशः तन्त्रांशमाध्यमेन स्वयमेव कीलितः अभवत्",
"internalerror": "आन्तरिकः दोषः",
"internalerror_info": "आन्तरिकः दोषः: $1",
- "fileappenderrorread": "योजनकाले \"$1\" पठितुं न शक्यते ।",
- "fileappenderror": "$1 इत्येनं $2 इत्येन सह योजयितुं न शक्यते ।",
"filecopyerror": "Could not copy file \"$1\" to \"$2\".",
"filerenameerror": "$1 सञ्चिकायाः $2 इति पुनर्नामकरणं निष्फलम् ।",
"filedeleteerror": "$1 इति सञ्चिका अपाकर्तुं न शक्यते ।",
"directorycreateerror": "'''$1''' इति विभागः रचितुं न शक्यते ।",
"filenotfound": "'\"$1\"' सञ्चिका न लब्धा ।",
- "fileexistserror": "$1 सञ्चिकायां नोल्लेखितं : सञ्चिका वर्तते इति ।",
"unexpected": "अनपेक्षितं मूल्यम् : \"$1\"=\"$2\"",
"formerror": "दोषः : प्रपत्रं (form) न प्रेषितम्",
"badarticleerror": "अस्मिन् पृष्ठे एषा क्रिया कर्तुं न शक्यते ।",
"userlogin-helplink2": "प्रवेशविषयकं साहाय्यम्",
"userlogin-loggedin": "भवाता/भवत्या पूर्वस्मादेव {{GENDER:$1|$1}} योजकत्वेन प्रवेशः प्राप्तः अस्ति । भिन्नयोजकत्वेन प्रवेष्टुं निम्नप्रपत्रं पूरयतु ।",
"userlogin-createanother": "अन्यसदस्यता प्राप्यताम्",
- "createacct-join": "स्वविषये अधः लिख्यताम् ।",
- "createacct-another-join": "नवीनसदस्यतायाः विषये अधः लिख्यताम् ।",
"createacct-emailrequired": "ई-पत्रसङ्केतः",
"createacct-emailoptional": "ई-पत्रसङ्केतः (ऐच्छिकः)",
"createacct-email-ph": "स्वस्य ई-पत्रसङ्केतं लिखतु",
"savearticle": "पृष्ठं रक्ष्यताम्",
"preview": "प्राग्दृश्यम्",
"showpreview": "प्राग्दृश्यं दृश्यताम्",
- "showlivepreview": "प्रत्यक्षं प्राग्दृश्यम्",
"showdiff": "परिवर्तनानि दृश्यन्ताम्",
"anoneditwarning": "'''पूर्वसूचना''' भवता/भवत्या प्रवेशः न कृतः !\nअत्र सम्पादनं कर्तुं प्रवेशः अनिवार्यः । अन्यथा अस्य पृष्ठस्य इतिहासे भवतः/भवत्याः अन्तर्जालसंविदः (IP) सङ्ख्या अङ्किता भवति ।",
"anonpreviewwarning": "''भवता/भवत्या प्रवेशः न स्वीकृतः । अस्य पृष्ठस्य परिवर्तनस्य इतिहासे भवतः/भवत्याः अन्तर्जालसंविदः (IP) उल्लेखो भविष्यति ।''",
"search-nonefound": "भवतः/भवत्याः अपेक्षानुगुणं परिणामः न विद्यते ।",
"powersearch-legend": "प्रगतम् अन्वेषणम्",
"powersearch-ns": "नामाकाशेषु अन्विष्यताम्:",
- "powersearch-redir": "अनुप्रेषणानां सूचिका दर्श्यताम्",
"powersearch-togglelabel": "आयीका:",
"powersearch-toggleall": "सर्वम्",
"powersearch-togglenone": "नास्ति",
"prefs-advancedsearchoptions": "उन्नतविकल्पाः",
"prefs-advancedwatchlist": "उन्नतविकल्पाः",
"prefs-displayrc": "प्रदर्शनविकल्पाः",
- "prefs-displaysearchoptions": "प्रदर्शनविकल्पाः",
"prefs-displaywatchlist": "प्रदर्शनविकल्पाः",
"prefs-diffs": "अन्तरम्",
"email-address-validity-valid": "प्रयुक्तः विद्युन्मानपत्रसङ्केतः मानितः ।",
"tooltip-undo": "'\"पूर्ववत्\"' इति अन्तिमसम्पादनम् अपाकरोति, सम्पादनप्रारूपं प्राग्दृश्यरूपेण उद्घाटयति, नवीनसम्पादनानन्तरं सम्पादनपृष्ठं प्राग्दृश्यत्वेन प्रदर्शयति च । \n\nअस्य सारांशे अपाकरणस्य कारणमपि लिखितुं शक्यते ।",
"tooltip-preferences-save": "आद्यताः रक्षतु ।",
"tooltip-summary": "सङ्क्षिप्तसारांशः योज्यताम्",
- "notacceptable": "भवतः ग्रहकस्य पठनेच्छारूपेण विकिवितारकः दत्तपाठं प्रकल्पितुं नैव शक्नोति ।",
"anonymous": "{{SITENAME}} इत्यस्य {{PLURAL:$1||}} अनामकयोजकः ।",
"siteuser": "{{SITENAME}} योजक $1",
"anonuser": "{{SITENAME}} अज्ञात योजक $1",
"autosumm-replace": "\"$1\" इत्यनेन सह आधेस्य विनिमयः कृतः ।",
"autoredircomment": "[[$1]] प्रति पुटं पुनर्निदिष्टम् ।",
"autosumm-new": "$1 नवीन पृष्ठं निर्मीत अस्ती",
- "livepreview-loading": "सम्पूर्यमाणः.....",
- "livepreview-ready": "सम्पूरणं सज्जम् ।",
- "livepreview-failed": "साक्षात् पूर्वावलोकनं निष्पलम् ।\nसामान्यपूर्वावलोकनं यतताम् ।",
- "livepreview-error": "$1 \"$2\" तः सम्पर्कः न सिद्धः ।\nसामान्यपूर्वावलोकनं यतताम् ।",
"lag-warn-normal": "$1 {{PLURAL:$1|क्षणम्|क्षणानि}} इति काले सम्भूतपरिवर्तन प्रायः अस्यां सूचिकायां न दर्शितम् ।",
"lag-warn-high": "अत्युन्नतदत्तांशवितारकस्य विलम्बत्वेन {{PLURAL:$1|क्षणम्|क्षणानि}} तः पूर्वं सम्भूतपरिवर्तनं सूचिकायां न दृश्यते ।",
"watchlistedit-numitems": "भवतः अवलोकनावली {{PLURAL:$1|1 शीर्षकम्|$1 शीर्षकानि}}, अन्तर्भूता, सम्भाषणपुटरहिता ।",
"compare-invalid-title": "सूचिता शीर्षिका अमान्या वर्तते ।",
"compare-title-not-exists": "निर्दिष्टं शीर्षकं न विद्यते ।",
"compare-revision-not-exists": "निर्दिष्टं संस्करनं न विद्यते ।",
- "dberr-header": "अस्मिन् विकिमध्ये काचित् समस्या विद्यते",
"dberr-problems": "क्षम्यताम् ! अस्मिन् जालपुटे तान्त्रिकसमस्याः अनुभूयमानाः सन्ति ।",
"dberr-again": "किञ्चित् कालं प्रतीक्ष्य पुनः उपारोप्यताम् ।",
"dberr-info": "(दत्ताशं वितारकं सम्पर्कयितुं नैव शक्यते $1 )",
"readonly_lag": "Билии олоҕун хос сиэрбэрдэрэ сүрүн сиэрбэри кытта мэнэйдэһэр кэмнэригэр билии олоҕо хатанна",
"internalerror": "Ис алҕас (внутренняя ошибка)",
"internalerror_info": "Ис алҕас: $1",
- "fileappenderrorread": "Эбии кэмигэр «$1» кыайан ааҕыллыбата.",
- "fileappenderror": "Маны \"$1\" манна \"$2\" холбуур табыллыбата.",
"filecopyerror": "\"$1\" диэн билэ \"$2\"-а кыайан төгүллэммэт.",
"filerenameerror": "\"$1\" диэн билэ аатын \"$2\" диэҥҥэ кыайан уларытыллыбат.",
"filedeleteerror": "\"$1\" диэн билэ кыайан сотторуллубат.",
"directorycreateerror": "\"$1\" диэн ыйдарыы кыайан оҥоһуллубата.",
"filenotfound": "\"$1\" диэн билэни кыайан булбатым.",
- "fileexistserror": "\"$1\" билэ сатаан суруллубата: маннык билэ баар эбит",
"unexpected": "Барсыбат суолталаах: \"$1\"=\"$2\".",
"formerror": "Сыыһа: халыып кыайан ылыллыбата",
"badarticleerror": "Бу дьайыы бу сирэйгэ кыайан оҥоһуллубат.",
"userlogin-helplink2": "Киирэргэ көмө",
"userlogin-loggedin": "Маннык аатынан киирбиккин {{GENDER:$1|$1}}.\nАтын аатынан киирэргэ аллара көстөр форманы туһан.",
"userlogin-createanother": "Атын аатынан бэлиэтэн",
- "createacct-join": "Аллара суруй.",
- "createacct-another-join": "Саҥа бэлиэ-аат туһунан аллара суруй.",
"createacct-emailrequired": "Email аадырыс",
"createacct-emailoptional": "Email аадырыс (булгуччута суох)",
"createacct-email-ph": "Эл аадырыскын суруй",
"savearticle": "Уларытыыны бигэргэтии",
"preview": "Холоон көрүү",
"showpreview": "Уларытыах иннинэ көрүү",
- "showlivepreview": "Түргэнник эрдэ көрүү",
"showdiff": "Уларытыылар",
"anoneditwarning": "'''Болҕой:''' Системаҕа киирбэтэххин. Онон аатыҥ оннугар IP аадаырыһыҥ бу сирэй историятыгар киириэ.",
"anonpreviewwarning": "''Эн тиһиккэ ааккын эппэттэххин. Уларытыыгын бигэргэттэххинэ IP-аадырыһыҥ сирэй устуоруйатыгар суруллуо.''",
"search-nonefound": "Көрдөбүлгэ эппиэттиир билэлэр көстүбэтилэр.",
"powersearch-legend": "Дириҥэтэн көрдөөһүн",
"powersearch-ns": "Аат далыгар көрдөө:",
- "powersearch-redir": "Утаарыылар тиһиликтэрэ",
"powersearch-togglelabel": "Бэлиэтээ:",
"powersearch-toggleall": "Барытын",
"powersearch-togglenone": "Бэлиэтээмэ",
"prefs-advancedsearchoptions": "Дириҥэтиллибит туруоруулар",
"prefs-advancedwatchlist": "Дириҥэтиллибит туруоруулар",
"prefs-displayrc": "Туруоруулары көрдөр",
- "prefs-displaysearchoptions": "Көстүүтүн туруоруулара",
"prefs-displaywatchlist": "Көстүүтүн туруоруулара",
"prefs-diffs": "Уратылара",
"prefs-help-prefershttps": "Аныгыскы киириигэр үлэлиир буолуо.",
"monobook.css": "/* Манна оҥоһуллубут CSS Monobook диэн скиҥҥа туһаныллыа */",
"common.js": "/* Оҥоһуллубут JavaScript ханнык баҕарар киһи манна киирдэҕинэ үлэлээн кэлиэ. */",
"monobook.js": "/* Эргэрбит; маны туһан:[[MediaWiki:common.js]] */",
- "notacceptable": "Биики-сиэрбэр эн браузерыҥ ааҕар формаатын кыайан көрдөрбөт.<br /> The wiki server can't provide data in a format your client can read.",
"anonymous": "{{SITENAME}} ааттамматах {{PLURAL:$1|кыттааччыта|кыттааччылара}}",
"siteuser": "{{SITENAME}} кыттааччыта $1",
"anonuser": "{{SITENAME}} бэйэтин билиһиннэрбэтэх кыттааччыта $1",
"autoredircomment": "Утаарыы: [[$1]]",
"autosumm-new": "'$1' ыйааһыннаах саҥа сирэй оҥоһулунна",
"size-bytes": "$1 байт",
- "livepreview-loading": "Киллэрии бара турар…",
- "livepreview-ready": "Суруттарыы… Бэлэм!",
- "livepreview-failed": "Түргэн инники көрүү моһуогурда! Көннөрү инники көрүүнү туһан.",
- "livepreview-error": "Холбоммото: $1 \"$2\". Көннөрү инники көрүүнү туһан.",
"lag-warn-normal": "$1 {{PLURAL:$1|сөкүүндэ|сөкүүндэ}} иһинэн оҥоһуллубут уларытыылар манна көстүө суохтарын сөп.",
"lag-warn-high": "Синхронизация лаппа хойутуур буолан кэнники $1 {{PLURAL:$1|сөкүүндэ|сөкүүндэ}} иһинэн оҥоһуллубут уларытыылар манна көстүө суохтарын сөп.",
"watchlistedit-numitems": "Эн кэтиир тиһигиҥ {{PLURAL:$1|1 суруктаах|$1 пууннаах}}, ырытыы сирэйэ ааҕыллыбата.",
"compare-invalid-title": "Суруллубут аат туттуллара сатаммат.",
"compare-title-not-exists": "Ыйбыт аатыҥ суох эбит.",
"compare-revision-not-exists": "Ыйбыт барылыҥ суох эбит.",
- "dberr-header": "Бу биики туга эрэ сатаммата",
"dberr-problems": "Баалаама! Бу саайт техническэй ыарахаттары көрсүбүт.",
"dberr-again": "Аҕыйах мүнүүтэннэн саҥардан көрөөр.",
"dberr-info": "(Билэ тиһигин кытта ситим быстыбыт: $1)",
"filedeleteerror": "Impussìbiri canzillà lu file \"$1\".",
"directorycreateerror": "Impussìbiri crià la directory \"$1\".",
"filenotfound": "File \"$1\" no acciappaddu.",
- "fileexistserror": "Impussìbiri ischribì lu file \"$1\": lu file isisthì già",
"unexpected": "Varori impribisthu: \"$1\"=\"$2\".",
"formerror": "Errori: impussìbiri invià lu mòdulu",
"badarticleerror": "Operazioni no cunsintidda pa chistha pàgina.",
"savearticle": "Saivvà la pagina",
"preview": "Antiprimma",
"showpreview": "Visuarizza antiprimma",
- "showlivepreview": "Funzioni ''Live preview''",
"showdiff": "Musthra ciambamenti",
"anoneditwarning": "'''Attinzioni:''' Intradda nò effettuadda. I' la cronologia di la pàgina sarà rigisthraddu l'indirizzu IP tóiu.",
"missingsummary": "'''Promimória:''' Nò hai ippizzificaddu l'oggettu di la mudìfigga. Turrendi à incalchà '''Saivva la pàgina''' lu mudìfigga sarà saivvadda cun l'oggettu bioddu.",
"search-nonefound": "Nisciuni risulthaddi pa la to' zercha",
"powersearch-legend": "Zercha abanzadda",
"powersearch-ns": "Zercha i' li tipi di pàgina:",
- "powersearch-redir": "Listha rinvii",
"powersearch-toggleall": "Tutti",
"powersearch-togglenone": "Nisciunu",
"searchdisabled": "Abà no pói zirchà in {{SITENAME}}; proba cun Google o sìmiri, ma ammèntaddi chi li cuntinuddi di {{SITENAME}} poni assé no aggiornaddi.",
"tooltip-rollback": "\"Turra che primma\" annulla li mudìfigghi a chistha pagina di l'ulthimu cuntributori cu' un soru clic.",
"tooltip-undo": "\"Annulla\" pilmitti d'annullà chistha mudifigga e abbri lu modulu di mudifigga d'antiprimma. Pilmitti d'insirì una mutibazioni i' l'oggettu di la mudifigga.",
"tooltip-summary": "Ischribbi un riassuntu corthu",
- "notacceptable": "Lu server wiki nò è bonu a frunì li dati i' un fuimmaddu liggìbiri da lu nabiggadori utirizaddu.",
"anonymous": "{{PLURAL:$1|Utenti anonimu|utenti anonimi}} di {{SITENAME}}",
"siteuser": "$1, utenti di {{SITENAME}}",
"lastmodifiedatby": "Chistha pàgina è isthadda mudìfiggadda pa l'ulthima voltha lu $2, $1 da $3.",
"autosumm-replace": "Pàgina susthituidda cun '$1'",
"autoredircomment": "Rinviu à la pàgina [[$1]]",
"autosumm-new": "Criadda pàgina cun '$1'",
- "livepreview-loading": "Carrigghendi…",
- "livepreview-ready": "Carrigghendi… Prontu!",
- "livepreview-failed": "Errori i' la funzioni Live preview. Usà l'antiprimma standard.",
- "livepreview-error": "Impussìbiri effettuà lu cullegamentu: $1 \"$2\". Usà l'antiprimma standard.",
"lag-warn-normal": "Li mudìfigghi arriggaddi {{PLURAL:$1|i' l'ulthimu sigundu|i' l'ulthimi $1 sigundi}} pudiani nò apparì in chistha listha.",
"lag-warn-high": "Pa un ritardhu mannu di l'elaburaddori sivvidori di la bancadati, li mudìfigghi arriggaddi i' l'ulthimi $1 sigundi pudiani nò apparì in chistha listha.",
"watchlistedit-numitems": "La listha di l'abbaidaddi ippiziari cunteni {{PLURAL:$1|una pàgina (e la rippettiba pàgina di dischussioni)|$1 pàgini (e li rippettibi pàgini di dischussioni)}}.",
"readonly_lag": "Podatkovna zbirka se je samodejno zaklenila, dokler se podrejeni strežniki ne uskladijo z glavnim.",
"internalerror": "Notranja napaka",
"internalerror_info": "Notranja napaka: $1",
- "fileappenderrorread": "Ni bilo mogoče prebrati »$1« med pripenjanjem.",
- "fileappenderror": "Ne morem pripeti »$1« v »$2«.",
"filecopyerror": "Datoteke »$1« ni mogoče prepisati v »$2«.",
"filerenameerror": "Datoteke »$1« ni mogoče preimenovati v »$2«.",
"filedeleteerror": "Datoteke »$1« ni mogoče izbrisati.",
"directorycreateerror": "Ne morem ustvariti direktorija »$1«.",
"filenotfound": "Datoteke »$1« ne najdem.",
- "fileexistserror": "Ne morem pisati v datoteko »$1«: datoteka obstaja",
"unexpected": "Nepričakovana vrednost: \"$1\"=\"$2\".",
"formerror": "Napaka: obrazca ni mogoče predložiti",
"badarticleerror": "Na tej strani dejanja ne morem izvesti. Morda je bila stran med predložitvijo vaše zahteve že izbrisana.",
"userlogin-helplink2": "Pomoč pri prijavi",
"userlogin-loggedin": "Prijavljeni ste že kot {{GENDER:$1|$1}}.\nUporabite spodnji obrazec, da se prijavite kot drug uporabnik.",
"userlogin-createanother": "Ustvari drug račun",
- "createacct-join": "Spodaj vnesite svoje informacije.",
- "createacct-another-join": "Spodaj vnesite informacije o novem računu.",
"createacct-emailrequired": "E-poštni naslov",
"createacct-emailoptional": "E-poštni naslov (izbirno)",
"createacct-email-ph": "Vnesite svoj e-poštni naslov",
"savearticle": "Shrani stran",
"preview": "Predogled",
"showpreview": "Prikaži predogled",
- "showlivepreview": "Predogled v živo",
"showdiff": "Prikaži spremembe",
"anoneditwarning": "'''Opozorilo''': niste prijavljeni. V zgodovino strani se bo zapisal vaš IP-naslov.",
"anonpreviewwarning": "Niste prijavljeni. Ob spremembi strani se bo vaš IP-naslov zapisal v zgodovini urejanja te strani.",
"search-nonefound": "Ni bilo zadetkov, ki ustrezajo poizvedbi.",
"powersearch-legend": "Napredno iskanje",
"powersearch-ns": "Iskanje v imenskih prostorih:",
- "powersearch-redir": "Seznam preusmeritev",
"powersearch-togglelabel": "Izberi:",
"powersearch-toggleall": "Vse",
"powersearch-togglenone": "Nič",
"prefs-advancedsearchoptions": "Napredne možnosti",
"prefs-advancedwatchlist": "Napredne možnosti",
"prefs-displayrc": "Možnosti prikaza",
- "prefs-displaysearchoptions": "Možnosti prikaza",
"prefs-displaywatchlist": "Možnosti prikaza",
"prefs-tokenwatchlist": "Žeton",
"prefs-diffs": "Primerjave",
"tooltip-preferences-save": "Shrani nastavitve",
"tooltip-summary": "Vnesite kratek povzetek",
"interlanguage-link-title": "$1 – $2",
- "notacceptable": "V obliki, ki jo lahko bere vaš odjemalec, wikistrežnik podatkov ne more ponuditi.",
"anonymous": "{{PLURAL:$1|Brezimni uporabnik|Brezimna uporabnika|Brezimni uporabniki}} {{GRAMMAR:rodilnik|{{SITENAME}}}}",
"siteuser": "uporabnik {{GRAMMAR:rodilnik|{{SITENAME}}}} $1",
"anonuser": "Brezimni uporabnik {{GRAMMAR:rodilnik|{{SITENAME}}}} $1",
"autosumm-replace": "Zamenjava strani s/z '$1'",
"autoredircomment": "preusmeritev na [[$1]]",
"autosumm-new": "Nova stran z vsebino: $1",
- "livepreview-loading": "Nalaganje ...",
- "livepreview-ready": "Nalaganje ... Pripravljen!",
- "livepreview-failed": "Predogled v živo je spodletel!\nPoskusite normalni predogled.",
- "livepreview-error": "Povezovanje ni uspelo: $1 »$2«.\nPoskusite normalni predogled.",
"lag-warn-normal": "Spremembe novejše od $1 {{PLURAL:$1|sekunde|sekund}} morda ne bodo prikazane na seznamu.",
"lag-warn-high": "Zaradi visoke zasedenosti strežniških podatkovnih baz, spremembe novejše od $1 {{PLURAL:$1|sekunde|sekund}} morda ne bodo prikazane na seznamu.",
"watchlistedit-numitems": "Vaš spisek nadzorov vsebuje $1 {{PLURAL:$1|stran|strani}}, izključujoč pogovorne strani.",
"compare-invalid-title": "Navedeni naslov ni veljaven.",
"compare-title-not-exists": "Navedeni naslov ne obstaja.",
"compare-revision-not-exists": "Navedena redakcija ne obstaja.",
- "dberr-header": "Ta wiki ima težavo",
"dberr-problems": "Oprostite! Ta stran se sooča s tehničnimi težavami.",
"dberr-again": "Poskusite počakati nekaj minut in ponovno naložite stran.",
"dberr-info": "(Ne morem se povezati s strežnikom zbirke podatkov: $1)",
"readonly_lag": "База података је закључана док се споредни базни сервери не ускладе с главним.",
"internalerror": "Унутрашња грешка",
"internalerror_info": "Унутрашња грешка: $1",
- "fileappenderrorread": "Не могу да прочитам „$1“ током качења.",
- "fileappenderror": "Не могу да закачим „$1“ на „$2“.",
"filecopyerror": "Не могу да умножим датотеку „$1“ у „$2“.",
"filerenameerror": "Не могу да преименујем датотеку „$1“ у „$2“.",
"filedeleteerror": "Не могу да обришем датотеку „$1“.",
"directorycreateerror": "Не могу да направим фасциклу „$1“.",
"filenotfound": "Не могу да пронађем датотеку „$1“.",
- "fileexistserror": "Не могу да пишем по датотеци „$1“: датотека већ постоји",
"unexpected": "Неочекивана вредност: „$1“=„$2“.",
"formerror": "Грешка: не могу да пошаљем образац",
"badarticleerror": "Ова радња се не може извршити на овој страници.",
"userlogin-helplink2": "Помоћ при пријављивању",
"userlogin-loggedin": "Већ сте пријављени као {{GENDER:$1|$1}}.\nКористите доњи образац да бисте се пријавили као други корисник.",
"userlogin-createanother": "Отвори још један налог",
- "createacct-join": "Унесите своје податке испод",
- "createacct-another-join": "Унесите податке за нови налог испод.",
"createacct-emailrequired": "Адреса е-поште",
"createacct-emailoptional": "Адреса е-поште (опционо)",
"createacct-email-ph": "Унесите вашу адресу е-поште",
"savearticle": "Сачувај страницу",
"preview": "Претпреглед",
"showpreview": "Прикажи претпреглед",
- "showlivepreview": "Тренутни преглед",
"showdiff": "Прикажи измене",
"anoneditwarning": "'''Упозорење:''' нисте пријављени.\nВаша ИП адреса ће бити забележена у историји ове странице.",
"anonpreviewwarning": "''Нисте пријављени. Ваша ИП адреса ће бити забележена у историји ове странице.''",
"search-nonefound": "Нема поклапања.",
"powersearch-legend": "Напредна претрага",
"powersearch-ns": "Тражи у следећим именским просторима:",
- "powersearch-redir": "Списак преусмерења",
"powersearch-togglelabel": "Изабери:",
"powersearch-toggleall": "све",
"powersearch-togglenone": "ништа",
"prefs-advancedsearchoptions": "Напредне поставке",
"prefs-advancedwatchlist": "Напредне поставке",
"prefs-displayrc": "Поставке приказа",
- "prefs-displaysearchoptions": "Поставке приказа",
"prefs-displaywatchlist": "Поставке приказа",
"prefs-diffs": "Разлике",
"prefs-help-prefershttps": "Ова подешавања ће ступити на снагу при следећој пријави.",
"group-bot.js": "/* Јаваскрипт постављен овде ће се учитати само за ботове */",
"group-sysop.js": "/* Јаваскрипт постављен овде ће се учитати само за системске операторе */",
"group-bureaucrat.js": "/* Јаваскрипт постављен овде ће се учитати само за бирократе */",
- "notacceptable": "Сервер не може да направи податке у формату погодном за ваш клијент.",
"anonymous": "Анонимни {{PLURAL:$1|корисник|корисници}} на пројекту {{SITENAME}}",
"siteuser": "{{SITENAME}} корисник $1",
"anonuser": "{{SITENAME}} анониман корисник $1",
"size-kilobytes": "$1 kB",
"size-megabytes": "$1 MB",
"size-gigabytes": "$1 GB",
- "livepreview-loading": "Учитавам…",
- "livepreview-ready": "Учитавање… спремно!",
- "livepreview-failed": "Неуспешно прегледање.\nПробајте обичан преглед.",
- "livepreview-error": "Не могу да се повежем: $1 „$2“.\nПробајте обичан приказ.",
"lag-warn-normal": "Измене новије од $1 {{PLURAL:$1|секунде|секунде|секунди}} неће бити приказане.",
"lag-warn-high": "Због преоптерећења базе података, измене новије од $1 {{PLURAL:$1|секунда|секунде}} неће бити приказане.",
"watchlistedit-numitems": "Ваш списак надгледања садржи {{PLURAL:$1|један наслов|$1 наслова|$1 наслова}}, без страница за разговор.",
"compare-invalid-title": "Наведени наслов је неисправан.",
"compare-title-not-exists": "Наведени наслов не постоји.",
"compare-revision-not-exists": "Наведена измена не постоји.",
- "dberr-header": "Овај вики не ради како треба",
"dberr-problems": "Дошло је до техничких проблема.",
"dberr-again": "Сачекајте неколико минута и поново учитајте страницу.",
"dberr-info": "(не могу да се повежем са сервером базе: $1)",
"readonly_lag": "Baza podataka je zaključana dok se sporedni bazni serveri ne usklade s glavnim.",
"internalerror": "Unutrašnja greška",
"internalerror_info": "Unutrašnja greška: $1",
- "fileappenderrorread": "Ne mogu da pročitam „$1“ tokom kačenja.",
- "fileappenderror": "Ne mogu da zakačim „$1“ na „$2“.",
"filecopyerror": "Ne mogu da umnožim datoteku „$1“ u „$2“.",
"filerenameerror": "Ne mogu da preimenujem datoteku „$1“ u „$2“.",
"filedeleteerror": "Ne mogu da obrišem datoteku „$1“.",
"directorycreateerror": "Ne mogu da napravim fasciklu „$1“.",
"filenotfound": "Ne mogu da pronađem datoteku „$1“.",
- "fileexistserror": "Ne mogu da pišem po datoteci „$1“: datoteka već postoji",
"unexpected": "Neočekivana vrednost: „$1“=„$2“.",
"formerror": "Greška: ne mogu da pošaljem obrazac",
"badarticleerror": "Ova radnja se ne može izvršiti na ovoj stranici.",
"userlogin-helplink2": "Pomoć pri prijavljivanju",
"userlogin-loggedin": "Već ste prijavljeni kao {{GENDER:$1|$1}}.\nKoristite donji obrazac da biste se prijavili kao drugi korisnik.",
"userlogin-createanother": "Otvori još jedan nalog",
- "createacct-join": "Unesite svoje podatke ispod.",
- "createacct-another-join": "Unesite podatke za novi nalog ispod.",
"createacct-emailrequired": "Adresa e-pošte",
"createacct-emailoptional": "Adresa e-pošte (opciono)",
"createacct-email-ph": "Unesite vašu adresu e-pоšte",
"savearticle": "Sačuvaj stranicu",
"preview": "Pregled",
"showpreview": "Prikaži pretpregled",
- "showlivepreview": "Trenutni pregled",
"showdiff": "Prikaži izmene",
"anoneditwarning": "'''Upozorenje:''' niste prijavljeni.\nVaša IP adresa će biti zabeležena u istoriji ove stranice.",
"anonpreviewwarning": "''Niste prijavljeni. Vaša IP adresa će biti zabeležena u istoriji ove stranice.''",
"search-nonefound": "Nema poklapanja.",
"powersearch-legend": "Napredna pretraga",
"powersearch-ns": "Traži u sledećim imenskim prostorima:",
- "powersearch-redir": "Spisak preusmerenja",
"powersearch-togglelabel": "Izaberi:",
"powersearch-toggleall": "sve",
"powersearch-togglenone": "ništa",
"prefs-advancedsearchoptions": "Napredne postavke",
"prefs-advancedwatchlist": "Napredne postavke",
"prefs-displayrc": "Postavke prikaza",
- "prefs-displaysearchoptions": "Postavke prikaza",
"prefs-displaywatchlist": "Postavke prikaza",
"prefs-diffs": "Razlike",
"prefs-help-prefershttps": "Ova podešavanja će stupiti na snagu pri sledećoj prijavi.",
"group-bot.js": "/* Javaskript postavljen ovde će se učitati samo za botove */",
"group-sysop.js": "/* Javaskript postavljen ovde će se učitati samo za sistemske operatore */",
"group-bureaucrat.js": "/* Javaskript postavljen ovde će se učitati samo za birokrate */",
- "notacceptable": "Server ne može da napravi podatke u formatu pogodnom za vaš klijent.",
"anonymous": "Anonimni {{PLURAL:$1|korisnik|korisnici}} na projektu {{SITENAME}}",
"siteuser": "{{SITENAME}} korisnik $1",
"anonuser": "{{SITENAME}} anoniman korisnik $1",
"size-kilobytes": "$1 kB",
"size-megabytes": "$1 MB",
"size-gigabytes": "$1 GB",
- "livepreview-loading": "Učitavam…",
- "livepreview-ready": "Učitavanje… spremno!",
- "livepreview-failed": "Neuspešno pregledanje.\nProbajte običan pregled.",
- "livepreview-error": "Ne mogu da se povežem: $1 „$2“.\nProbajte običan prikaz.",
"lag-warn-normal": "Izmene novije od $1 {{PLURAL:$1|sekunde|sekunde|sekundi}} neće biti prikazane.",
"lag-warn-high": "Zbog preopterećenja baze podataka, izmene novije od $1 {{PLURAL:$1|sekunde|sekundi}} neće biti prikazane.",
"watchlistedit-numitems": "Vaš spisak nadgledanja sadrži {{PLURAL:$1|jedan naslov|$1 naslova|$1 naslova}}, bez stranica za razgovor.",
"compare-invalid-title": "Navedeni naslov je neispravan.",
"compare-title-not-exists": "Navedeni naslov ne postoji.",
"compare-revision-not-exists": "Navedena izmena ne postoji.",
- "dberr-header": "Ovaj viki ne radi kako treba",
"dberr-problems": "Došlo je do tehničkih problema.",
"dberr-again": "Sačekajte nekoliko minuta i ponovo učitajte stranicu.",
"dberr-info": "(ne mogu da se povežem sa serverom baze: $1)",
"readonly_lag": "Databasen har automatiskt skrivskyddats medan slavdatabasservrarna synkroniseras med huvudservern.",
"internalerror": "Internt fel",
"internalerror_info": "Internt fel: $1",
- "fileappenderrorread": "Kunde inte läsa \"$1\" medan data skulle tillföras.",
- "fileappenderror": "Kunde inte bifoga \"$1\" till \"$2\".",
"filecopyerror": "Kunde inte kopiera filen \"$1\" till \"$2\".",
"filerenameerror": "Kunde inte byta namn på filen \"$1\" till \"$2\".",
"filedeleteerror": "Kunde inte radera filen \"$1\".",
"directorycreateerror": "Kunde inte skapa katalogen \"$1\".",
"filenotfound": "Kunde inte hitta filen \"$1\".",
- "fileexistserror": "Kan inte skriva till \"$1\": filen finns redan",
"unexpected": "Oväntat värde: \"$1\"=\"$2\".",
"formerror": "Fel: Kunde inte sända formulär",
"badarticleerror": "Den åtgärden kan inte utföras på den här sidan.",
"userlogin-helplink2": "Hjälp med inloggning",
"userlogin-loggedin": "Du är redan inloggad som {{GENDER:$1|$1}}.\nAnvänd formuläret nedan för att logga in som en annan användare.",
"userlogin-createanother": "Skapa ett annat konto",
- "createacct-join": "Ange din information nedan.",
- "createacct-another-join": "Ange information för det nya kontot nedan.",
"createacct-emailrequired": "E-postadress",
"createacct-emailoptional": "E-postadress (valfritt)",
"createacct-email-ph": "Bekräfta din e-postadress",
"savearticle": "Spara sida",
"preview": "Förhandsgranska",
"showpreview": "Visa förhandsgranskning",
- "showlivepreview": "Automatiskt uppdaterad förhandsvisning",
"showdiff": "Visa ändringar",
"anoneditwarning": "'''Varning:''' Du är inte inloggad.\nDin IP-adress kommer att sparas i historiken för den här sidan.",
"anonpreviewwarning": "''Du är inte inloggad. Om du sparar kommer din IP-adress registreras på denna sidas redigeringshistorik.''",
"search-nonefound": "Inga resultat matchade frågan.",
"powersearch-legend": "Avancerad sökning",
"powersearch-ns": "Sök i namnrymderna:",
- "powersearch-redir": "Lista omdirigeringar",
"powersearch-togglelabel": "Kryssa:",
"powersearch-toggleall": "Alla",
"powersearch-togglenone": "Ingen",
"prefs-advancedsearchoptions": "Avancerade alternativ",
"prefs-advancedwatchlist": "Avancerade alternativ",
"prefs-displayrc": "Visningsalternativ",
- "prefs-displaysearchoptions": "Visningalternativ",
"prefs-displaywatchlist": "Visningalternativ",
"prefs-tokenwatchlist": "Nyckel",
"prefs-diffs": "Skillnader",
"group-bot.js": "/* JavaScript här kommer att laddas för robotar */",
"group-sysop.js": "/* JavaScript här kommer att laddas för administratörer */",
"group-bureaucrat.js": "/* JavaScript här kommer att laddas för byråkrater */",
- "notacceptable": "Den här wiki-servern kan inte erbjuda data i ett format som din klient kan läsa.",
"anonymous": "{{PLURAL:$1|Anonym användare|Anonyma användare}} på {{SITENAME}}",
"siteuser": "användaren $1 på {{SITENAME}}",
"anonuser": "{{SITENAME}} anonym användare $1",
"size-kilobytes": "$1 kbyte",
"size-megabytes": "$1 Mbyte",
"size-gigabytes": "$1 Gbyte",
- "livepreview-loading": "Laddar…",
- "livepreview-ready": "Laddar… Färdig!",
- "livepreview-failed": "Live preview misslyckades!\nPröva vanlig förhandsgranskning istället.",
- "livepreview-error": "Lyckades inte ansluta: $1 \"$2\"\nPröva vanlig förhandsgranskning istället.",
"lag-warn-normal": "Ändringar under {{PLURAL:$1|den senaste sekunden|de $1 senaste sekunderna}} kanske inte visas i den här listan.",
"lag-warn-high": "På grund av omfattande fördröjning i databasen visas kanske inte ändringar nyare än $1 {{PLURAL:$1|sekund|sekunder}} i den här listan.",
"watchlistedit-numitems": "Din bevakningslista innehåller {{PLURAL:$1|1 sida|$1 sidor}}, utöver diskussionsidor.",
"compare-invalid-title": "Titeln du angav är ogiltig.",
"compare-title-not-exists": "Titeln du angav finns inte.",
"compare-revision-not-exists": "Versionen du angav finns inte.",
- "dberr-header": "Den här wikin har ett problem",
"dberr-problems": "Ursäkta! Denna sajt har just nu tekniska problem.",
"dberr-again": "Pröva med att vänta några minuter och ladda om.",
"dberr-info": "(Kan inte kontakta databasservern: $1)",
"readonly_lag": "అనుచర (స్లేవ్) డేటాబేసు సర్వర్లు, ప్రధాన (మాస్టరు) సర్వరును అందుకునేందుకుగాను, డేటాబేసు ఆటోమాటిక్గా లాకు అయింది.",
"internalerror": "అంతర్గత లోపం",
"internalerror_info": "అంతర్గత లోపం: $1",
- "fileappenderrorread": "చేరుస్తున్నప్పుడు \"$1\"ని చదవలేకపోయాం.",
- "fileappenderror": "\"$1\" ని \"$2\" తో కూర్చలేకపోయాం",
"filecopyerror": "ఫైలు \"$1\" ను \"$2\" కు కాపీ చెయ్యలేకపోయాం.",
"filerenameerror": "ఫైలు \"$1\" పేరును \"$2\"గా మార్చలేకపోయాం.",
"filedeleteerror": "ఫైలు \"$1\"ని తొలగించలేకపోయాం.",
"directorycreateerror": "\"$1\" అనే డైరెక్టరీని సృష్టించలేక పోయాం.",
"filenotfound": "ఫైలు \"$1\" కనబడలేదు.",
- "fileexistserror": "\"$1\" అనే ఫైలులోకి రాయలేకపోతున్నాం. అది ఈసరికే ఉంది.",
"unexpected": "అనుకోని విలువ: \"$1\"=\"$2\".",
"formerror": "లోపం: ఈ ఫారాన్ని పంపించలేకపోయాం.",
"badarticleerror": "ఈ పేజీపై ఈ పని చేయడం కుదరదు.",
"userlogin-helplink2": "లాగినవడంలో సహాయం",
"userlogin-loggedin": "మీరు ఈసరికే {{GENDER:$1|$1}} గా లాగిన్ అయి ఉన్నారు.\nవేరే వాడుకరిగా లాగినయేందుకు కింది ఫారమును వాడండి.",
"userlogin-createanother": "మరొక ఖాతాను సృష్టించండి",
- "createacct-join": "మీ సమాచారాన్ని క్రింద ఇవ్వండి.",
- "createacct-another-join": "కొత్త ఖాతా యొక్క సమాచారాన్ని క్రింద ఇవ్వండి.",
"createacct-emailrequired": "ఈమెయిలు చిరునామా",
"createacct-emailoptional": "ఈమెయిలు చిరునామా (ఐచ్చికం)",
"createacct-email-ph": "మీ ఈమెయిలు చిరునామాను ఇవ్వండి",
"savearticle": "పేజీని భద్రపరచు",
"preview": "మునుజూపు",
"showpreview": "మునుజూపు చూపు",
- "showlivepreview": "తక్షణ మునుజూపు",
"showdiff": "తేడాలను చూపించు",
"anoneditwarning": "<strong>హెచ్చరిక:</strong> మీరు లాగినవలేదు.\nఈ పేజీ దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.",
"anonpreviewwarning": "<em>మీరు లాగినవలేదు. భద్రపరిస్తే ఈ పేజీ యొక్క దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.</em>",
"search-nonefound": "మీ ప్రశ్నకి సరిపోలిన ఫలితాలేమీ లేవు.",
"powersearch-legend": "నిశితమైన అన్వేషణ",
"powersearch-ns": "ఈ పేరుబరుల్లో వెతుకు:",
- "powersearch-redir": "దారిమార్పులను చూపించు",
"powersearch-togglelabel": "ఎంచుకోండి:",
"powersearch-toggleall": "అన్నీ",
"powersearch-togglenone": "ఏదీకాదు",
"prefs-advancedsearchoptions": "ఉన్నత ఎంపికలు",
"prefs-advancedwatchlist": "ఉన్నత ఎంపికలు",
"prefs-displayrc": "ప్రదర్శన ఎంపికలు",
- "prefs-displaysearchoptions": "ప్రదర్శన ఎంపికలు",
"prefs-displaywatchlist": "ప్రదర్శన ఎంపికలు",
"prefs-tokenwatchlist": "టోకెన్",
"prefs-diffs": "తేడాలు",
"tooltip-undo": "\"రద్దుచేయి\" ఈ మార్పుని రద్దుచేసి, దిద్దుబాటు ఫారాన్ని మునుజూపులో తెరుస్తుంది.\nసారాంశానికి కారణాన్ని చేర్చే వీలుకల్పిస్తుంది.",
"tooltip-preferences-save": "అభిరుచులను భద్రపరచు",
"tooltip-summary": "చిన్న సారాంశాన్ని ఇవ్వండి",
- "notacceptable": "ఈ వికీ సర్వరు మీ క్లయంటు చదవగలిగే రీతిలో డేటాను ఇవ్వలేదు.",
"anonymous": "{{SITENAME}} యొక్క అజ్ఞాత {{PLURAL:$1|వాడుకరి|వాడుకరులు}}",
"siteuser": "{{SITENAME}} వాడుకరి $1",
"anonuser": "{{SITENAME}} అజ్ఞాత వాడుకరి $1",
"autosumm-replace": "పేజీని '$1' తో మారుస్తున్నాం",
"autoredircomment": "[[$1]]కు దారిమళ్ళించారు",
"autosumm-new": "'$1' తో కొత్త పేజీని సృష్టించారు",
- "livepreview-loading": "లోడవుతోంది...",
- "livepreview-ready": "లోడవుతోంది… సిద్ధం!",
- "livepreview-failed": "టైపు చేస్తుండగా ప్రీవ్యూ సృష్టించడం కుదరలేదు! మామూలు ప్రీవ్యూను ప్రయత్నించండి.",
- "livepreview-error": "అనుసంధానం కుదరలేదు: $1 \"$2\". మామూలు ప్రీవ్యూ ప్రయత్నించి చూడండి.",
"lag-warn-normal": "$1 {{PLURAL:$1|క్షణం|క్షణాల}} లోపు జరిగిన మార్పులు ఈ జాబితాలో కనిపించకపోవచ్చు.",
"lag-warn-high": "అధిక వత్తిడి వలన డేటాబేసు సర్వరు వెనుకబడింది, $1 {{PLURAL:$1|క్షణం|క్షణాల}} కంటే కొత్తవైన మార్పులు ఈ జాబితాలో కనిపించకపోవచ్చు.",
"watchlistedit-numitems": "మీ వీక్షణ జాబితాలో చర్చాపేజీలు కాకుండా {{PLURAL:$1|1 శీర్షిక|$1 శీర్షికలు}} ఉన్నాయి.",
"compare-invalid-title": "మీరు ఇచ్చిన శీర్షిక చెల్లనిది.",
"compare-title-not-exists": "మీరు పేర్కొన్న శీర్షిక లేనే లేదు.",
"compare-revision-not-exists": "మీరు పేర్కొన్న కూర్పు లేనే లేదు.",
- "dberr-header": "ఈ వికీ సమస్యాత్మకంగా ఉంది",
"dberr-problems": "క్షమించండి! ఈ సైటు సాంకేతిక సమస్యలని ఎదుర్కొంటుంది.",
"dberr-again": "కొన్ని నిమిషాలాగి మళ్ళీ ప్రయత్నించండి.",
"dberr-info": "(డాటాబేసు సర్వరుని సంధానించలేకున్నాం: $1)",
"filedeleteerror": "Парванда \"$1\" ҳазф натавонист шуд.",
"directorycreateerror": "Имкони эҷоди пӯшаи \"$1\" вуҷуд надорад.",
"filenotfound": "Парвандаи \"$1\" ёфт нашуд.",
- "fileexistserror": "Имкони навиштан рӯи парвандаи \"$1\" вуҷуд надорад: парванда аз қабл вуҷуд дорад",
"unexpected": "Миқдори ғайри мунтазир: \"$1\"=\"$2\".",
"formerror": "Хато: наметавон формро фиристод",
"badarticleerror": "Наметавон ин амалро бар ин саҳифа анҷом дод.",
"userlogin-helplink2": "Роҳнамои вуруд",
"userlogin-loggedin": "Шумо дар ҳол чун {{GENDER:$1|$1}} вуруд шудаед.\nБо истифода аз форми зер чун корбари дигар вориди систем шавед.",
"userlogin-createanother": "Эҷоди ҳисоби дигар",
- "createacct-join": "Маълумоти худро дар зер ворид кунед.",
- "createacct-another-join": "Маълумоти ҳисоби нави худро дар зер ворид кунед.",
"createacct-emailrequired": "Нишонаи email",
"createacct-emailoptional": "Нишони email (ихтиёрӣ)",
"createacct-email-ph": "Нишони email худро ворид кунед",
"savearticle": "Саҳифа захира шавад",
"preview": "Пешнамоиш",
"showpreview": "Пеш намоиш",
- "showlivepreview": "Пешнамоиши зинда",
"showdiff": "Намоиши тағйирот",
"anoneditwarning": "'''Огоҳӣ:''' Шумо вуруд накардаед. Суроғаи IP Шумо дар вироишоти ин саҳифа сабт хоҳад шуд.",
"anonpreviewwarning": "<em>Шумо вориди нашудаед. Захиракунӣ IP нишонаи шуморо дар таърихи вироиши ин саҳифа захира хоҳад кард.</em>",
"search-nonefound": "Натиҷаи муносиб бо дархост пайдо нашуд.",
"powersearch-legend": "Ҷустуҷӯи пешрафта",
"powersearch-ns": "Ҷустуҷӯ дар фазоҳои ном:",
- "powersearch-redir": "Феҳрист кардани масирҳо",
"powersearch-togglelabel": "Баррасӣ:",
"powersearch-toggleall": "Ҳама",
"powersearch-togglenone": "Ҳеҷ",
"prefs-advancedsearchoptions": "Ихтиёроти пешрафта",
"prefs-advancedwatchlist": "Ихтиёроти пешрафта",
"prefs-displayrc": "Ихтиёроти намоиш",
- "prefs-displaysearchoptions": "Ихтиёроти намоиш",
"prefs-displaywatchlist": "Ихтиёроти намоиш",
"prefs-tokenwatchlist": "Рамз",
"prefs-diffs": "Тафовут",
"tooltip-undo": "\"Ботил\" ин вироишро ботил мекунад ва форми вироишро дар ҳолати пешнамоиш боз мекунад.\nИн имкони илова кардани як сабаберо дар хулоса медиҳад.",
"tooltip-preferences-save": "Захираи тарҷиҳот",
"tooltip-summary": "Хулосаи кӯтоҳ ворид кунед",
- "notacceptable": "Коргузори ин вики аз ирсоли дода ба шакле ки барномаи шумо битавонад намоиш диҳад, пешкаш карда наметавонад.",
"anonymous": "{{PLURAL:$1|корбари|корбарони}} гумномӣ {{SITENAME}}",
"siteuser": "Википедиа user $1",
"lastmodifiedatby": "Ин саҳифа охирин маротиба дар $2, $1 аз тарафи $3 тағйир дода шудааст.",
"autosumm-replace": "Ивазкунии саҳифа бо '$1'",
"autoredircomment": "Тағйири масир ба [[$1]]",
"autosumm-new": "Саҳифаи нав бо \"$1\" эҷод шуд",
- "livepreview-loading": "Дар ҳоли бор шудан…",
- "livepreview-ready": "Бор шудан… Омода!",
- "livepreview-failed": "Пешнамоиши зинда ба мушкилӣ бархӯрд! Лутфан аз пешнамоиши оддӣ истифода кунед.",
- "livepreview-error": "Иртибот ба мушкилӣ бархӯрд: $1 \"$2\". Аз пешнамоиши оддӣ истифода кунед.",
"lag-warn-normal": "Мумкин аст тағйироти тозатар аз $1 сония дар ин феҳрист нишон дода нашавад.",
"lag-warn-high": "Мумкин аст, ба хотири пасафтодагии зиёд коргузори додаҳо, тағйироти тоза аз $1 сония дар ин феҳрист нишон нашуда бошанд.",
"watchlistedit-numitems": "Феҳристи пайгириҳои шумо шомили {{PLURAL:$1|1 саҳифа|$1 саҳифаҳо}}, ба ғайр аз саҳифаҳои баҳс аст.",
"readonly_lag": "Ätiýaçlyk serwerler esasy serwere boýunça täzelenýärkä, maglumat bazasy awtomatik usulda gulplandy.",
"internalerror": "Içerki säwlik",
"internalerror_info": "Içerki säwlik: $1",
- "fileappenderrorread": "Goşmaça goşulýan mahaly \"$1\" okatdyrmady.",
- "fileappenderror": "\"$1\" faýlyny \"$2\" faýlyna goşup bolmady.",
"filecopyerror": "\"$1\" faýlyny \"$2\" faýlyna göçürip bolmady.",
"filerenameerror": "\"$1\" faýlynyň adyny \"$2\" diýip üýtgedip bolmady.",
"filedeleteerror": "\"$1\" faýlyny öçürip bolmady.",
"directorycreateerror": "\"$1\" direktoriýasyny döredip bolmady",
"filenotfound": "\n\"$1\" faýly tapylmady.",
- "fileexistserror": "\"$1\" faýlyna ýazyp bolmady: faýl onsuzam bar",
"unexpected": "Garaşylmadyk baha: \"$1\"=\"$2\".",
"formerror": "Säwlik: formy iberip bolmady",
"badarticleerror": "Bu işi bu sahypada amala aşyryp bolmaýar.",
"savearticle": "Sahypany ýazdyr",
"preview": "Deslapky syn",
"showpreview": "Deslapky syny görkez",
- "showlivepreview": "Gönümel deslapky syn",
"showdiff": "Üýtgeşmeleri görkez",
"anoneditwarning": "'''Üns beriň:''' Hasaba girmänsiňiz. Şonuň üçin hem IP adresiňiz bu sahypanyň özgerdişler geçmişine ýazylyp alynar.",
"anonpreviewwarning": "''Sessiýa açmadyňyz. Ýazdyrsaňyz, sahypanyň redaktirleme geçmişine IP adresiňiz ýazylar.''",
"search-nonefound": "Talaba gabat gelýän hiç hili netije ýok.",
"powersearch-legend": "Giňişleýin gözleg",
"powersearch-ns": "At giňişliklerinde gözleg:",
- "powersearch-redir": "Gönükdirmeleri sanawla",
"powersearch-togglelabel": "Belle:",
"powersearch-toggleall": "Ählisi",
"powersearch-togglenone": "Hiç biri",
"prefs-advancedsearchoptions": "Giňeldilen opsiýalar",
"prefs-advancedwatchlist": "Giňeldilen opsiýalar",
"prefs-displayrc": "Görkeziş opsiýalary",
- "prefs-displaysearchoptions": "Görkeziş opsiýalary",
"prefs-displaywatchlist": "Görkeziş opsiýalary",
"prefs-diffs": "Tapawutlar",
"userrights": "Ulanyjy hukuklary dolandyryşy",
"tooltip-undo": "\"Yzyna al\" bu özgerdişi yzyna getirýär we özgerdiş formuny synlaw modunda açýar. Yzyna almagyň sebäbini ýazmaga mümkinçilik berýär.",
"tooltip-preferences-save": "Ileri tutmalary ýazdyr",
"tooltip-summary": "Gysgaça düşündiriş giriziň",
- "notacceptable": "Bu wiki serweri brauzeriňiziň okap biljek formatynda maglumat üpjün edip bilmeýär.",
"anonymous": "{{SITENAME}} anonim {{PLURAL:$1|ulanyjysy|ulanyjylary}}",
"siteuser": "{{SITENAME}} ulanyjysy $1",
"anonuser": "{{SITENAME}} anonim ulanyjysy $1",
"autosumm-replace": "Mazmun '$1' bilen çalşyryldy",
"autoredircomment": "[[$1]] sahypasyna gönükdirildi",
"autosumm-new": "Sahypa döretdi, mazmuny: '$1'",
- "livepreview-loading": "Ýüklenýär...",
- "livepreview-ready": "Ýüklenýär... Taýýar!",
- "livepreview-failed": "Gönümel deslapky syn şowsuz boldy! Adaty deslapky syny synap görüň.",
- "livepreview-error": "Birigip bolmady: $1 \"$2\".\nAdaty deslapky syny synap görüň.",
"lag-warn-normal": "$1 {{PLURAL:$1|sekuntdan|sekuntdan}} täzeki üýtgeşmeler bu sanawda görkezilmän biler.",
"lag-warn-high": "Maglumat bazasyndaky uly gijikme zerarly, $1 {{PLURAL:$1|sekuntdan|sekuntdan}} täzeki üýtgeşmeler bu sanawda görkezilmän biler.",
"watchlistedit-numitems": "Gözegçilik sanawyňyzda çekişme sahypalaryny hasap etmäniňde {{PLURAL:$1|1 sany at|$1 sany at}} bar.",
"compare-rev1": "Wersiýa 1",
"compare-rev2": "Wersiýa 2",
"compare-submit": "Deňeşdir",
- "dberr-header": "Bu wikiniň bir problemasy bar",
"dberr-problems": "Bagyşlaň! Bu saýtda tehniki kynçylyklar ýüze çykdy.",
"dberr-again": "Birnäçe minut garaşyň we gaýtadan ýükläp görüň.",
"dberr-info": "(Maglumat bazasynyň serwerine birigip bolanok: $1)",
"readonly_lag": "Automatikong kinandado ang kalipunan ng datos habang humahabol ang mga aliping serbidor sa pinunong kalipunan nito",
"internalerror": "Kamaliang panloob",
"internalerror_info": "Kamaliang panloob: $1",
- "fileappenderrorread": "Hindi mabasa ang \"$1\" habang inilalakip.",
- "fileappenderror": "Hindi mailakip ang \"$1\" sa \"$2\".",
"filecopyerror": "Hindi makopya ang talaksang \"$1\" sa \"$2\".",
"filerenameerror": "Hindi mapalitan ang pangalan ng talaksang \"$1\" sa \"$2\".",
"filedeleteerror": "Hindi mabura ang talaksang \"$1\".",
"directorycreateerror": "Hindi malikha ang direktoryong \"$1\".",
"filenotfound": "Hindi mahanap ang talaksang \"$1\".",
- "fileexistserror": "Hindi makapagsulat sa talaksang \"$1\": umiiral ang talaksan",
"unexpected": "Hindi inaasahang halaga: \"$1\"=\"$2\".",
"formerror": "Kamalian: hindi maipadala ang pormularyo",
"badarticleerror": "Hindi maisasagawa ang gawaing ito sa pahinang ito.",
"userlogin-helplink2": "Tulong sa pag-login",
"userlogin-loggedin": "Naka-login ka na bilang {{GENDER:$1|$1}}. Gamitin ang form sa ibaba upang maka-login bilang ibang tagagamit o user.",
"userlogin-createanother": "Lumikha ng iba pang account",
- "createacct-join": "Ilagay ang iyong impormasyon sa ibaba.",
- "createacct-another-join": "Ilagay ang impormasyon ng bagong account sa ibaba.",
"createacct-emailrequired": "Direksiyong e-liham:",
"createacct-emailoptional": "Email (hindi kailangan)",
"createacct-email-ph": "Ipasok ang iyong email address",
"savearticle": "Itala ang pahina",
"preview": "Paunang tingin",
"showpreview": "Ipakita ang paunang tingin",
- "showlivepreview": "Buhay na paunang tingin",
"showdiff": "Ipakita ang mga pagbabago",
"anoneditwarning": "'''Babala:''' Hindi ka nakalagda.\nMatatala ang iyong direksiyong IP sa kasaysayan ng pagbabago ng pahinang ito.",
"anonpreviewwarning": "''Hindi ka nakalagda. Itatala sa inyong pagtatala ang inyong direksiyong IP sa kasaysayan ng pagbabago ng pahinang ito.''",
"search-nonefound": "Walang mga resultang tumutugma sa katanungan/pagtatanong.",
"powersearch-legend": "Paghahanap na may mas mataas na antas",
"powersearch-ns": "Maghanap sa mga espasyo ng pangalan:",
- "powersearch-redir": "Itala ang mga panuto",
"powersearch-togglelabel": "Suriin:",
"powersearch-toggleall": "Lahat",
"powersearch-togglenone": "Wala",
"prefs-advancedsearchoptions": "Masulong na mga mapagpipilian",
"prefs-advancedwatchlist": "Masulong na mga mapagpipilian",
"prefs-displayrc": "Ipakita ang mga pagpipilian",
- "prefs-displaysearchoptions": "Ipakita ang mga pagpipilian",
"prefs-displaywatchlist": "Ipakita ang mga pagpipilian",
"prefs-tokenwatchlist": "Token o susi",
"prefs-diffs": "Mga pagkakaiba",
"group-bot.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga bot lamang */",
"group-sysop.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga tagapagpaandar ng sistema lamang */",
"group-bureaucrat.js": "/* Ang anumang JavaScript dito ay ikakarga para sa mga burokrata lamang */",
- "notacceptable": "Hindi makapagbigay ng dato ang serbidor ng wiki sa anyong mababasa ng iyong kliyente.",
"anonymous": "Hindi kilalang {{PLURAL:$1|tagagamit|mga tagagamit}} ng {{SITENAME}}",
"siteuser": "Tagagamit $1 ng {{SITENAME}}",
"anonuser": "Hindi nakikilalang tagagamit na $1 ng {{SITENAME}}",
"bitrate-exabits": "$1Ebps",
"bitrate-zetabits": "$1Zbps",
"bitrate-yottabits": "$1Ybps",
- "livepreview-loading": "Ikinakarga...",
- "livepreview-ready": "Ikinakarga… Handa na!",
- "livepreview-failed": "Nabigo ang umiiral na paunang tingin! Subukan ang normal/pangkaraniwang paunang tingin.",
- "livepreview-error": "Hindi matagumpay ang pagkonekta: $1 \"$2\".\nSubukan ang karaniwang paunang tingin.",
"lag-warn-normal": "Maaaring hindi naipapakita sa talaang ito ang mga pagbabagong mas bago pa kaysa $1 {{PLURAL:$1|segundo|mga segundo}}.",
"lag-warn-high": "Dahil mataas na bilang ng mga naiiwanan/antas ng kabagalan ng serbidor ng kalipunan ng dato,\nmaaaring hindi naipapakita sa talaang ito ang mga pagbabagong mas bago pa kaysa $1 {{PLURAL:$1|segundo|mga segundo}}.",
"watchlistedit-numitems": "Naglalaman ang iyong talaan ng mga binabantayan ng {{PLURAL:$1|1 pamagat|$1 mga pamagat}}, hindi kabilang ang mga pahina ng usapan.",
"compare-invalid-title": "Hindi katanggap-tanggap ang tinukoy mong pamagat.",
"compare-title-not-exists": "Hindi umiiral ang tinukoy mong pamagat.",
"compare-revision-not-exists": "Hindi umiiral ang tinukoy mong rebisyon.",
- "dberr-header": "May isang suliranin ang wiking ito",
"dberr-problems": "Paumanhin! Dumaranas ng mga kahirapang teknikal ang sityong ito.",
"dberr-again": "Subuking maghintay ng ilang mga minuto at muling magkarga.",
"dberr-info": "(Hindi makaugnay sa tagapaghain ng kalipunan ng dato: $1)",
"readonly_lag": "Yedek sunucular ana sunucu ile güncellenmeye çalışılırken veritabanı otomatik olarak kilitlendi.",
"internalerror": "Yazılım hatası",
"internalerror_info": "İç hata: $1",
- "fileappenderrorread": "Ekleme yapılırken \"$1\" okunamadı.",
- "fileappenderror": "\"$1\" dosyası \"$2\" dosyasına eklenemiyor.",
"filecopyerror": "\"$1\" \"$2\" dosyasına kopyalanamıyor.",
"filerenameerror": "\"$1\" dosyasının ismi \"$2\" olarak değiştirilemedi.",
"filedeleteerror": "\"$1\" dosyası silinemedi.",
"directorycreateerror": "\"$1\" dizini oluşturulamadı",
"filenotfound": "\"$1\" dosyası bulunamadı.",
- "fileexistserror": "\"$1\" dosyasına yazılamadı: dosya zaten mevcut",
"unexpected": "beklenmeyen değer: \"$1\"=\"$2\".",
"formerror": "Hata: Form gönderilemiyor",
"badarticleerror": "Bu işlem, bu sayfada yapılamaz.",
"userlogin-helplink2": "Oturum açma konusunda yardım alın",
"userlogin-loggedin": "Zaten {{GENDER:$1|$1}} olarak oturum açtınız.\nBaşka bir kullanıcı olarak oturum açmak için aşağıdaki formu kullanın.",
"userlogin-createanother": "Başka bir hesap oluşturun",
- "createacct-join": "Aşağıya bilgilerinizi girin.",
- "createacct-another-join": "Aşağıya yeni hesabınızın bilgilerini girin.",
"createacct-emailrequired": "E-posta adresi",
"createacct-emailoptional": "E-posta adresi (isteğe bağlı)",
"createacct-email-ph": "E-posta adresinizi girin",
"savearticle": "Sayfayı kaydet",
"preview": "Önizleme",
"showpreview": "Önizlemeyi göster",
- "showlivepreview": "Canlı ön izleme",
"showdiff": "Değişiklikleri göster",
"anoneditwarning": "'''Uyarı:''' Oturum açmadınız.\nIP adresiniz sayfanın değişiklik geçmişine kaydedilecektir.",
"anonpreviewwarning": "''Giriş yapmadınız. Kaydederseniz, sayfanın değişiklik geçmişine IP adresiniz yazılır.''",
"search-nonefound": "Sorguyla eşleşen bir sonuç yok.",
"powersearch-legend": "Gelişmiş arama",
"powersearch-ns": "Ad alanlarında ara:",
- "powersearch-redir": "Yönlendirmeleri listele",
"powersearch-togglelabel": "Seç:",
"powersearch-toggleall": "Hepsi",
"powersearch-togglenone": "Hiçbiri",
"prefs-advancedsearchoptions": "Gelişmiş seçenekler",
"prefs-advancedwatchlist": "Gelişmiş seçenekler",
"prefs-displayrc": "Görüntü seçenekleri",
- "prefs-displaysearchoptions": "Görüntüleme seçenekleri",
"prefs-displaywatchlist": "Görüntüleme seçenekleri",
"prefs-tokenwatchlist": "Anahtar",
"prefs-diffs": "Farklar",
"common.css": "/* Buraya konulacak CSS kodu tüm temalarda etkin olur */",
"monobook.css": "/* Buraya konulacak CSS kodu tüm Monobook teması kullanan tüm kullanıcılarda etkin olur */",
"common.js": "/* Buraya konulacak JavaScript kodu sitedeki her kullanıcı için her sayfa yüklendiğinde çalışacaktır */",
- "notacceptable": "Bu viki sunucusu istemcinizin okuyabileceği formatta bir veri sağlayamıyor.",
"anonymous": "{{SITENAME}} sitesinin anonim {{PLURAL:$1|kullanıcısı|kullanıcıları}}",
"siteuser": "{{SITENAME}} kullanıcısı $1",
"anonuser": "{{SITENAME}} anonim kullanıcısı $1",
"autosumm-replace": "Sayfa içeriği '$1' ile değiştiriliyor",
"autoredircomment": "[[$1]] sayfasına yönlendirildi",
"autosumm-new": "Yeni sayfa: \"$1\"",
- "livepreview-loading": "Yükleniyor...",
- "livepreview-ready": "Yükleniyor... Tamam!",
- "livepreview-failed": "Canlı önizleme başarısız! Normal önizlemeyi deneyin.",
- "livepreview-error": "Bağlantı başarısız: $1 \"$2\".\nNormal önizlemeyi deneyin.",
"lag-warn-normal": "$1 {{PLURAL:$1|saniyeden|saniyeden}} yeni değişiklikler bu listede görünmeyebilir.",
"lag-warn-high": "Veritabanı sunucusundaki aşırı gecikmeden dolayı, $1 {{PLURAL:$1|saniyeden|saniyeden}} yeni değişiklikler bu listede görünmeyebilir.",
"watchlistedit-numitems": "İzleme sayfanızda {{PLURAL:$1|1 başlık|$1 başlık}} var, tartışma sayfaları hariç.",
"compare-invalid-title": "Belirttiğiniz başlık geçersiz.",
"compare-title-not-exists": "Belirttiğiniz başlık mevcut değil.",
"compare-revision-not-exists": "Belirttiğiniz sürüm mevcut değil.",
- "dberr-header": "Bu vikinin bir sorunu var",
"dberr-problems": "Üzgünüz! Bu site teknik zorluklar yaşıyor.",
"dberr-again": "Bir kaç dakika bekleyip tekrar yüklemeyi deneyin.",
"dberr-info": "(Veritabanı sunucusuyla irtibat kurulamıyor: $1)",
"readonly_lag": "База даних автоматично заблокована від змін, доки вторинний сервер БД не синхронізується з первинним.",
"internalerror": "Внутрішня помилка",
"internalerror_info": "Внутрішня помилка: $1",
- "fileappenderrorread": "Не вдалося прочитати \"$1\" під час додавання.",
- "fileappenderror": "Не вдалося приєднати «$1» до «$2».",
"filecopyerror": "Неможливо скопіювати файл «$1» в «$2».",
"filerenameerror": "Неможливо перейменувати файл «$1» в «$2».",
"filedeleteerror": "Неможливо вилучити файл «$1».",
"directorycreateerror": "Неможливо створити директорію «$1».",
"filenotfound": "Неможливо знайти файл «$1».",
- "fileexistserror": "Неможливо записати до файлу «$1»: файл існує.",
"unexpected": "Неочікуване значення: «$1»=«$2».",
"formerror": "Помилка: неможливо передати дані форми",
"badarticleerror": "Ця дія не може бути виконана на цій сторінці.",
"userlogin-helplink2": "Допомога з входом у систему",
"userlogin-loggedin": "Ви вже увійшли як {{GENDER:$1|$1}}.\nВикористайте нижче форму для входу як інший користувач.",
"userlogin-createanother": "Створити інший обліковий запис",
- "createacct-join": "Введіть вашу інформацію нижче.",
- "createacct-another-join": "Введіть нижче дані нового облікового запису.",
"createacct-emailrequired": "Адреса електронної пошти",
"createacct-emailoptional": "Адреса електронної пошти (не обов'язково)",
"createacct-email-ph": "Введіть Вашу адресу електронної пошти",
"savearticle": "Зберегти сторінку",
"preview": "Попередній перегляд",
"showpreview": "Попередній перегляд",
- "showlivepreview": "Швидкий попередній перегляд",
"showdiff": "Показати зміни",
"anoneditwarning": "'''Увага''': Ви не увійшли до системи. Ваша IP-адреса буде записана до історії змін цієї сторінки.",
"anonpreviewwarning": "''Ви не увійшли в систему. Якщо ви виконаєте збереження, то в історію сторінки буде записана ваша IP-адреса.''",
"search-nonefound": "Не знайдено результатів, що відповідають запиту.",
"powersearch-legend": "Розширений пошук",
"powersearch-ns": "Пошук у просторах назв:",
- "powersearch-redir": "Показувати перенаправлення",
"powersearch-togglelabel": "Позначити:",
"powersearch-toggleall": "Усі",
"powersearch-togglenone": "Жодний",
"prefs-advancedsearchoptions": "Розширені налаштування",
"prefs-advancedwatchlist": "Розширені налаштування",
"prefs-displayrc": "Налаштування показу",
- "prefs-displaysearchoptions": "Налаштування показу",
"prefs-displaywatchlist": "Налаштування показу",
"prefs-tokenwatchlist": "Жетон",
"prefs-diffs": "Різниці версій",
"group-bot.js": "/* Розміщений тут код JavaScript буде завантажений тільки для ботів */",
"group-sysop.js": "/* Розміщений тут код JavaScript буде завантажений тільки для адміністраторів */",
"group-bureaucrat.js": "/* Розміщений тут код JavaScript буде завантажений тільки для бюрократів */",
- "notacceptable": "Вікі-сервер не може подати дані в форматі, який міг би прочитати ваш браузер.<br />\nThe wiki server can't provide data in a format your client can read.",
"anonymous": "{{PLURAL:$1|1=Анонімний користувач|Анонімні користувачі}} {{grammar:genitive|{{SITENAME}}}}",
"siteuser": "Користувач {{grammar:genitive|{{SITENAME}}}} $1",
"anonuser": "анонімний користувач {{grammar:genitive|{{SITENAME}}}} $1",
"size-kilobytes": "$1 КБ",
"size-megabytes": "$1 МБ",
"size-gigabytes": "$1 ГБ",
- "livepreview-loading": "Завантаження…",
- "livepreview-ready": "Завантаження… Готово!",
- "livepreview-failed": "Не вдалося використати швидкий попередній перегляд. Спробуйте скористатися звичайним попереднім переглядом.",
- "livepreview-error": "Не вдалося встановити з'єднання: $1 «$2». Спробуйте скористатися звичайним попереднім переглядом.",
"lag-warn-normal": "Зміни, зроблені менш ніж $1 {{PLURAL:$1|секунду|секунди|секунд}} тому, можуть не відображатися в цьому переліку.",
"lag-warn-high": "Зміни, зроблені менш ніж $1 {{PLURAL:$1|секунду|секунди|секунд}} тому, можуть не відображатися в цьому переліку внаслідок значної затримки сервера БД.",
"watchlistedit-numitems": "Ваш список спостереження містить {{PLURAL:$1|$1 запис|$1 записи|$1 записів}}, не включаючи сторінок обговорення.",
"compare-invalid-title": "Зазначена назва неприпустима.",
"compare-title-not-exists": "Зазначена назва не існує.",
"compare-revision-not-exists": "Зазначеної версії не існує.",
- "dberr-header": "Ця вікі має проблеми",
"dberr-problems": "Вибачте! На цьому сайті виникли технічні труднощі.",
"dberr-again": "Спробуйте оновити сторінку за кілька хвилин.",
"dberr-info": "(неможливо з'єднатися з сервером баз даних: $1)",
"userlogin-resetpassword-link": "Unutib qoʻydingizmi?",
"userlogin-loggedin": "Siz {{GENDER:$1|$1}} nomi bilan kirgansiz.\nBoshqa hisob raqami orqali kirish uchun quyidagi formadan foydalaning.",
"userlogin-createanother": "Boshqa hisob yaratish",
- "createacct-join": "Maʼlumotlaringizni quyiga yozing",
- "createacct-another-join": "Yangi hisob yozuvi maʼlumotlarini quyida koʻrsating.",
"createacct-emailrequired": "Elektron pochta manzilingiz",
"createacct-emailoptional": "Elektron pochta manzili (majburiy emas)",
"createacct-email-ph": "Elektron pochta manzilingizni kiriting",
"savearticle": "Saqlash",
"preview": "Ko‘rib chiqish",
"showpreview": "Koʻrib chiqish",
- "showlivepreview": "Tezkor koʻrib chiqish",
"showdiff": "O‘zgarishlarni ko‘rsatish",
"anoneditwarning": "'''Diqqat:''' Siz tizimga kirmagansiz. Ushbu sahifa tarixida Sizning IP manzilingiz yozib qolinadi.",
"missingcommenttext": "Iltimos sharh qoldiring.",
"search-nonefound": "Talabga javob beradigan natija topilmadi.",
"powersearch-legend": "Kengaytirilgan qidiruv",
"powersearch-ns": "Quyidagi nomfazolardan qidir:",
- "powersearch-redir": "Qayta yoʻnaltirishlarni koʻrsatish",
"powersearch-togglelabel": "Belgilash:",
"powersearch-toggleall": "Hammasini",
"powersearch-togglenone": "Hech qaysini",
"prefs-advancedsearchoptions": "Qoʻshimcha moslamalar",
"prefs-advancedwatchlist": "Qoʻshimcha moslamalar",
"prefs-displayrc": "Tasvirlash moslamalari",
- "prefs-displaysearchoptions": "Tasvirlash moslamalari",
"prefs-displaywatchlist": "Tasvirlash moslamalari",
"prefs-diffs": "Versiyalar farqi",
"userrights-user-editname": "Foydalanuvchi nomingizni kiriting:",
"readonly_lag": "Cơ sở dữ liệu bị khóa tự động trong khi các máy chủ cập nhật thông tin của nhau.",
"internalerror": "Lỗi nội bộ",
"internalerror_info": "Lỗi nội bộ: $1",
- "fileappenderrorread": "Không đọc được “$1” trong việc bổ sung.",
- "fileappenderror": "Không thể nối “$1” vào “$2”.",
"filecopyerror": "Không thể chép tập tin “$1” đến “$2”.",
"filerenameerror": "Không thể đổi tên tập tin “$1” thành “$2”.",
"filedeleteerror": "Không thể xóa tập tin “$1”.",
"directorycreateerror": "Không thể tạo được danh mục “$1”.",
"filenotfound": "Không tìm thấy tập tin “$1”.",
- "fileexistserror": "Không thể ghi ra tập tin “$1”: tập tin đã tồn tại",
"unexpected": "Không hiểu giá trị: “$1”=“$2”.",
"formerror": "Lỗi: không gửi mẫu đi được.",
"badarticleerror": "Không thể thực hiện được tác vụ như thế tại trang này.",
"userlogin-helplink2": "Trợ giúp đăng nhập",
"userlogin-loggedin": "Bạn đã đăng nhập với tên {{GENDER:$1}}$1.\nHãy sử dụng biểu mẫu ở dưới để đăng nhập với tài khoản người dùng khác.",
"userlogin-createanother": "Mở thêm tài khoản",
- "createacct-join": "Nhập thông tin của bạn bên dưới.",
- "createacct-another-join": "Nhập thông tin của tài khoản mới dưới đây.",
"createacct-emailrequired": "Địa chỉ thư điện tử",
"createacct-emailoptional": "Địa chỉ thư điện tử (tùy chọn)",
"createacct-email-ph": "Nhập địa chỉ thư điện tử của bạn",
"savearticle": "Lưu trang",
"preview": "Xem trước",
"showpreview": "Xem trước",
- "showlivepreview": "Xem trước nhanh",
"showdiff": "Xem thay đổi",
"anoneditwarning": "'''Cảnh báo:''' Bạn chưa đăng nhập. Địa chỉ IP của bạn sẽ được ghi lại trong lịch sử sửa đổi của trang.",
"anonpreviewwarning": "''Bạn chưa đăng nhập. Khi lưu trang này, địa chỉ IP của bạn sẽ được ghi vào lịch sử trang.''",
"search-nonefound": "Không có kết quả nào khớp với câu truy vấn.",
"powersearch-legend": "Tìm kiếm nâng cao",
"powersearch-ns": "Tìm trong không gian tên:",
- "powersearch-redir": "Liệt kê cả trang đổi hướng",
"powersearch-togglelabel": "Chọn:",
"powersearch-toggleall": "Tất cả",
"powersearch-togglenone": "Không",
"prefs-advancedsearchoptions": "Tùy chọn nâng cao",
"prefs-advancedwatchlist": "Tùy chọn nâng cao",
"prefs-displayrc": "Tùy chọn hiển thị",
- "prefs-displaysearchoptions": "Tùy chọn hiển thị",
"prefs-displaywatchlist": "Tùy chọn hiển thị",
"prefs-tokenwatchlist": "Dấu hiệu",
"prefs-diffs": "Khác biệt",
"group-bot.js": "/* Mã JavaScript tại đây sẽ chỉ được tải cho các bot */",
"group-sysop.js": "/* Mã JavaScript tại đây sẽ chỉ được tải cho các bảo quản viên */",
"group-bureaucrat.js": "/* Mã JavaScript tại đây sẽ chỉ được tải cho các hành chính viên */",
- "notacceptable": "Máy chủ không thể cho ra định dạng dữ liệu tương thích với phần mềm của bạn.",
"anonymous": "{{PLURAL:$1|Người dùng|Người dùng}} vô danh của {{SITENAME}}",
"siteuser": "thành viên $1 của {{SITENAME}}",
"anonuser": "người dùng vô danh $1 tại {{SITENAME}}",
"bitrate-exabits": "$1 Ebps",
"bitrate-zetabits": "$1 Zbps",
"bitrate-yottabits": "$1 Ybps",
- "livepreview-loading": "Đang tải…",
- "livepreview-ready": "Đang tải… Xong!",
- "livepreview-failed": "Không thể xem trước trực tiếp! Hãy dùng thử chế độ xem trước thông thường.",
- "livepreview-error": "Không thể kết nối: $1 “$2”. Hãy dùng thử chế độ xem trước thông thường.",
"lag-warn-normal": "Những thay đổi trong vòng $1 {{PLURAL:||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.",
"lag-warn-high": "Do độ trễ của máy chủ cơ sở dữ liệu, những thay đổi trong vòng $1 {{PLURAL:$1||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.",
"watchlistedit-numitems": "Danh sách theo dõi của bạn có $1 {{PLURAL:$1|tựa đề|tựa đề}}, không tính các trang thảo luận.",
"compare-invalid-title": "Tên trang chỉ định không hợp lệ.",
"compare-title-not-exists": "Tên trang chỉ định không tồn tại.",
"compare-revision-not-exists": "Phiên bản chỉ định không tồn tại.",
- "dberr-header": "Wiki này đang gặp trục trặc",
"dberr-problems": "Xin lỗi! Trang này đang gặp phải những khó khăn về kỹ thuật.",
"dberr-again": "Xin thử đợi vài phút rồi tải lại trang.",
"dberr-info": "(Không thể liên lạc với máy chủ cơ sở dữ liệu: $1)",
"readonly_lag": "从数据库服务器垃拉从主服务器上更新,数据库已经拨自动锁定",
"internalerror": "内部错误",
"internalerror_info": "内部错误:$1",
- "fileappenderrorread": "当附加时无法读取\"$1\"。",
- "fileappenderror": "“$1”附加到“$2”弗来三。",
"filecopyerror": "弗好拿文件“$1”复制到“$2”。",
"filerenameerror": "拿文件“$1”重命名为“$2”失败。",
"filedeleteerror": "弗好删除文件“$1”。",
"directorycreateerror": "创建目录“$1”失败。",
"filenotfound": "寻弗着文件 \"$1\"。",
- "fileexistserror": "弗好写入文件“$1”:文件已存在",
"unexpected": "非正常值:“$1”=“$2”。",
"formerror": "错误:提交表单失败",
"badarticleerror": "呒处垃拉箇只页面进行箇只操作。",
"userlogin-resetpassword-link": "转设密码",
"userlogin-loggedin": "你侬用{{GENDER:$1|$1}}登进来哉。用下向个表以别样身份登进。",
"userlogin-createanother": "建别样账号",
- "createacct-join": "下向打进你侬个信息。",
- "createacct-another-join": "下向打进新账号个信息。",
"createacct-emailrequired": "电子信地址",
"createacct-emailoptional": "电子信地址(填弗填由你)",
"createacct-email-ph": "畀你侬个电子信地址打进去",
"savearticle": "保存页面",
"preview": "望望相",
"showpreview": "显示望望相",
- "showlivepreview": "实时预览",
"showdiff": "显示变化",
"anoneditwarning": "'''警告:''' 你侬朆登进来。\n你侬个IP地址会记进箇页个编史里。",
"anonpreviewwarning": "''侬弗曾登录。侬个IP位址会得记录拉此页个编辑历史里向。''",
"search-nonefound": "查询呒有结果。",
"powersearch-legend": "高级搜索",
"powersearch-ns": "垃拉箇眼名字空间里向搜索:",
- "powersearch-redir": "重定向列表",
"powersearch-togglelabel": "选择:",
"powersearch-toggleall": "全选",
"powersearch-togglenone": "侪弗选",
"readonly_lag": "附属数据库服务器正在将缓存更新到主服务器上,数据库已被自动锁定",
"internalerror": "内部错误",
"internalerror_info": "内部错误:$1",
- "fileappenderrorread": "当附加时无法读取\"$1\"。",
- "fileappenderror": "无法将“$1”附加到“$2”。",
"filecopyerror": "无法将文件“$1”复制到“$2”。",
"filerenameerror": "无法将文件“$1”重命名为“$2”。",
"filedeleteerror": "无法删除文件“$1”。",
"directorycreateerror": "无法创建目录“$1”。",
"filenotfound": "找不到文件“$1”。",
- "fileexistserror": "无法写入文件“$1”:文件已存在",
"unexpected": "非正常值:“$1”=“$2”。",
"formerror": "错误:无法提交表单",
"badarticleerror": "无法在此页进行该操作。",
"userlogin-helplink2": "登录帮助",
"userlogin-loggedin": "您已经以{{GENDER:$1|$1}}的身份登录。使用下面的表格以其他用户的身份登录。",
"userlogin-createanother": "创建另一个账户",
- "createacct-join": "请在下面输入你的信息。",
- "createacct-another-join": "在下方输入新帐户信息。",
"createacct-emailrequired": "电子邮件地址",
"createacct-emailoptional": "电子邮件地址(可选)",
"createacct-email-ph": "请输入你的电子邮件地址",
"savearticle": "保存页面",
"preview": "预览",
"showpreview": "显示预览",
- "showlivepreview": "实时预览",
"showdiff": "显示更改",
"anoneditwarning": "<strong>警告:</strong>您没有登录。您的IP地址将被记录在该页面的编辑历史中。",
"anonpreviewwarning": "''你没有登录。保存会记录你的IP地址于该页面的编辑历史中。''",
"search-nonefound": "找不到和查询相匹配的结果。",
"powersearch-legend": "高级搜索",
"powersearch-ns": "搜索名字空间:",
- "powersearch-redir": "列出重定向",
"powersearch-togglelabel": "选择:",
"powersearch-toggleall": "全选",
"powersearch-togglenone": "全不选",
"prefs-advancedsearchoptions": "高级选项",
"prefs-advancedwatchlist": "高级选项",
"prefs-displayrc": "显示",
- "prefs-displaysearchoptions": "显示",
"prefs-displaywatchlist": "显示",
"prefs-tokenwatchlist": "密钥",
"prefs-diffs": "差异对比",
"group-bot.js": "/* 这里的任何JavaScript将只为机器人加载 */",
"group-sysop.js": "/* 这里的任何JavaScript将只为管理员加载 */",
"group-bureaucrat.js": "/* 这里的任何JavaScript将只为行政员加载 */",
- "notacceptable": "该网站服务器不能提供您的客户端能识别的数据格式。",
"anonymous": "{{SITENAME}}匿名{{PLURAL:$1|用户}}",
"siteuser": "{{SITENAME}}用户$1",
"anonuser": "{{SITENAME}}匿名用户$1",
"autosumm-blank": "清空页面",
"autosumm-replace": "以“$1”替换内容",
"autoredircomment": "重定向页面至[[$1]]",
- "autosumm-new": "以“$1”为内容创建页面",
+ "autosumm-new": "创建页面,内容为“$1”",
"size-bytes": "$1字节",
- "livepreview-loading": "正在载入...",
- "livepreview-ready": "正在载入... 完成!",
- "livepreview-failed": "实时预览失败!\n尝试标准预览。",
- "livepreview-error": "连接失败:$1“$2”。\n尝试标准预览。",
"lag-warn-normal": "过去$1秒内的更改未必会在这个列表中显示。",
"lag-warn-high": "由于数据库的过度延迟,过去$1秒的更改未必会在这个列表中显示。",
"watchlistedit-numitems": "不计讨论页面,您的监视列表包含$1个标题。",
"compare-invalid-title": "您指定的标题无效。",
"compare-title-not-exists": "您指定的标题不存在。",
"compare-revision-not-exists": "你指定的版本不存在。",
- "dberr-header": "本wiki出现了问题",
"dberr-problems": "抱歉!本网站出现了一些技术问题。",
"dberr-again": "请等待几分钟后重试。",
"dberr-info": "(无法连接到数据库服务器:$1)",
"readonly_lag": "附屬資料庫伺服器正在將快取更新到主伺服器,資料庫已被自動鎖定",
"internalerror": "內部錯誤",
"internalerror_info": "內部錯誤:$1",
- "fileappenderrorread": "當附加時無法讀取「$1」。",
- "fileappenderror": "不能附加「$1」到「$2」。",
"filecopyerror": "無法複製檔案「$1」到「$2」。",
"filerenameerror": "無法重新命名檔案「$1」到「$2」。",
"filedeleteerror": "無法刪除「$1」檔案。",
"directorycreateerror": "無法建立目錄「$1」。",
"filenotfound": "找不到「$1」檔案。",
- "fileexistserror": "無法寫入檔案\"$1\": 檔案已存在",
"unexpected": "不正常值:\"$1\"=\"$2\"。",
"formerror": "錯誤:無法提交表單",
"badarticleerror": "無法在此頁進行該操作。",
"userlogin-helplink2": "登入幫助",
"userlogin-loggedin": "您已作為{{GENDER:$1|$1}}登錄。\n利用以下表單以作為另一賬戶登錄。",
"userlogin-createanother": "建立另一賬戶",
- "createacct-join": "輸入您的基本資料:",
- "createacct-another-join": "在下方輸入新帳號的資訊。",
"createacct-emailrequired": "電子郵件",
"createacct-emailoptional": "電子郵件(可選)",
"createacct-email-ph": "設定信件位址",
"savearticle": "儲存本頁",
"preview": "預覽",
"showpreview": "顯示預覽",
- "showlivepreview": "即時預覽",
"showdiff": "顯示差異",
"anoneditwarning": "'''警告:'''您沒有登入。\n您的IP位址將記錄在此頁的編輯歷史中。",
"anonpreviewwarning": "''您沒有登入。保存頁面將會把您的IP位址記錄在此頁的編輯歷史中。''",
"search-nonefound": "在查詢中無結果相符。",
"powersearch-legend": "進階搜尋",
"powersearch-ns": "在以下的名字空間中搜尋:",
- "powersearch-redir": "重定向清單",
"powersearch-togglelabel": "核取:",
"powersearch-toggleall": "所有",
"powersearch-togglenone": "無",
"prefs-advancedsearchoptions": "進階選項",
"prefs-advancedwatchlist": "進階選項",
"prefs-displayrc": "顯示選項",
- "prefs-displaysearchoptions": "顯示選項",
"prefs-displaywatchlist": "顯示選項",
"prefs-tokenwatchlist": "密鑰",
"prefs-diffs": "差異",
"monobook.js": "/* 此處的JavaScript將載入於使用Monobook面板的用戶 */",
"modern.js": "/* 此處的JavaScript將載入於使用Modern面板的用戶 */",
"vector.js": "/* 此處的JavaScript將載入於使用Vector面板的用戶 */",
- "notacceptable": "該網站伺服器不能提供您的客戶端能識別的數據格式。",
"anonymous": "{{SITENAME}}的匿名{{PLURAL:$1|用戶}}",
"siteuser": "{{SITENAME}}用戶$1",
"anonuser": "{{SITENAME}}匿名用戶$1",
"autoredircomment": "重定向頁面到[[$1]]",
"autosumm-new": "以內容「$1」創建新頁面",
"size-bytes": "$1 位元組",
- "livepreview-loading": "正在載入…",
- "livepreview-ready": "正在載入… 完成!",
- "livepreview-failed": "實時預覽失敗!\n嘗試標準預覽。",
- "livepreview-error": "連接失敗: $1 \"$2\"。\n嘗試標準預覽。",
"lag-warn-normal": "過去$1秒內的更改未必會在這個清單中顯示。",
"lag-warn-high": "由於資料庫的過度延遲,過去$1秒內的更改未必會在這個清單中顯示。",
"watchlistedit-numitems": "您的監視列表中共有$1個標題,當中不包括對話頁面。",
"compare-invalid-title": "所指定標題無效。",
"compare-title-not-exists": "所指定的話題不存在。",
"compare-revision-not-exists": "所指定的修訂不存在。",
- "dberr-header": "這個 wiki 出現了問題",
"dberr-problems": "歉!這個網站出現了一些技術上的問題。",
"dberr-again": "嘗試等候數分鐘後,然後再試。",
"dberr-info": "(無法連繫到資料庫伺服器: $1)",
* for the level 4 operators, since they return boolean and don't accept
* boolean inputs.
*/
- static $precedence = array(
+ private static $precedence = array(
'or' => 2,
'and' => 3,
'is' => 4,
*
* @var array
*/
- static $opTypes = array(
+ private static $opTypes = array(
'or' => 'bbb',
'and' => 'bbb',
'is' => 'nnb',
*
* @var array
*/
- static $typeSpecMap = array(
+ private static $typeSpecMap = array(
'b' => 'boolean',
'n' => 'number',
'r' => 'range',
/**
* Map for converting the new operators introduced in Rev 33 to the old forms
*/
- static $aliasMap = array(
+ private static $aliasMap = array(
'%' => 'mod',
'!=' => 'not-in',
'=' => 'in'
* Determine if the given number is inside the range.
*
* @param int $number The number to check
- * @param bool $integerConstraint If true, also asserts the number is an integer; otherwise, number simply has to be inside the range.
+ * @param bool $integerConstraint If true, also asserts the number is an integer;
+ * otherwise, number simply has to be inside the range.
* @return bool True if the number is inside the range; otherwise, false.
*/
function isNumberIn( $number, $integerConstraint = true ) {
/**
* @throws MWException Failure to parse XML input
- * @return true
+ * @return bool
*/
function readDump( $input ) {
$this->buffer = "";
*
* @ingroup Benchmark
*/
-class bench_HTTP_HTTPS extends Benchmarker {
-
+class BenchHttpHttps extends Benchmarker {
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmark HTTP request vs HTTPS request.";
$this->bench( array(
array( 'function' => array( $this, 'getHTTP' ) ),
array( 'function' => array( $this, 'getHTTPS' ) ),
- ));
+ ) );
print $this->getFormattedResults();
}
}
}
-$maintClass = 'bench_HTTP_HTTPS';
+$maintClass = 'BenchHttpHttps';
require_once RUN_MAINTENANCE_IF_MAIN;
* @ingroup Benchmark
*/
class BenchmarkDeleteTruncate extends Benchmarker {
-
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmarks SQL DELETE vs SQL TRUNCATE.";
*
* @ingroup Maintenance
*/
-class bench_if_switch extends Benchmarker {
-
+class BenchIfSwitch extends Benchmarker {
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmark if elseif... versus switch case.";
$this->bench( array(
array( 'function' => array( $this, 'doElseIf' ) ),
array( 'function' => array( $this, 'doSwitch' ) ),
- ));
+ ) );
print $this->getFormattedResults();
}
// bench function 1
function doElseIf() {
$a = 'z';
- if( $a == 'a') {}
- elseif( $a == 'b') {}
- elseif( $a == 'c') {}
- elseif( $a == 'd') {}
- elseif( $a == 'e') {}
- elseif( $a == 'f') {}
- elseif( $a == 'g') {}
- elseif( $a == 'h') {}
- elseif( $a == 'i') {}
- elseif( $a == 'j') {}
- elseif( $a == 'k') {}
- elseif( $a == 'l') {}
- elseif( $a == 'm') {}
- elseif( $a == 'n') {}
- elseif( $a == 'o') {}
- elseif( $a == 'p') {}
- else {}
+ if ( $a == 'a' ) {
+ } elseif ( $a == 'b' ) {
+ } elseif ( $a == 'c' ) {
+ } elseif ( $a == 'd' ) {
+ } elseif ( $a == 'e' ) {
+ } elseif ( $a == 'f' ) {
+ } elseif ( $a == 'g' ) {
+ } elseif ( $a == 'h' ) {
+ } elseif ( $a == 'i' ) {
+ } elseif ( $a == 'j' ) {
+ } elseif ( $a == 'k' ) {
+ } elseif ( $a == 'l' ) {
+ } elseif ( $a == 'm' ) {
+ } elseif ( $a == 'n' ) {
+ } elseif ( $a == 'o' ) {
+ } elseif ( $a == 'p' ) {
+ } else {
+ }
}
// bench function 2
function doSwitch() {
$a = 'z';
- switch( $a ) {
- case 'b': break;
- case 'c': break;
- case 'd': break;
- case 'e': break;
- case 'f': break;
- case 'g': break;
- case 'h': break;
- case 'i': break;
- case 'j': break;
- case 'k': break;
- case 'l': break;
- case 'm': break;
- case 'n': break;
- case 'o': break;
- case 'p': break;
+ switch ( $a ) {
+ case 'b':
+ break;
+ case 'c':
+ break;
+ case 'd':
+ break;
+ case 'e':
+ break;
+ case 'f':
+ break;
+ case 'g':
+ break;
+ case 'h':
+ break;
+ case 'i':
+ break;
+ case 'j':
+ break;
+ case 'k':
+ break;
+ case 'l':
+ break;
+ case 'm':
+ break;
+ case 'n':
+ break;
+ case 'o':
+ break;
+ case 'p':
+ break;
default:
}
}
}
-$maintClass = 'bench_if_switch';
+$maintClass = 'BenchIfSwitch';
require_once RUN_MAINTENANCE_IF_MAIN;
*
* @ingroup Benchmark
*/
-class bench_strtr_str_replace extends Benchmarker {
-
+class BenchStrtrStrReplace extends Benchmarker {
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmark for strtr() vs str_replace().";
function benchstr_replace_indirect() {
bfNormalizeTitleStrReplace( "[[MediaWiki:Some_random_test_page]]" );
}
-
}
-$maintClass = 'bench_strtr_str_replace';
+$maintClass = 'BenchStrtrStrReplace';
require_once RUN_MAINTENANCE_IF_MAIN;
*
* @ingroup Benchmark
*/
-class bench_utf8_title_check extends Benchmarker {
-
+class BenchUtf8TitleCheck extends Benchmarker {
private $canRun;
private $data;
public function __construct() {
parent::__construct();
+ // @codingStandardsIgnoreStart Ignore long line warnings.
$this->data = array(
"",
"United States of America", // 7bit ASCII
. "Sara%20Sidle%7CSofia%20Curtis%7CS%C3%A9rie%20t%C3%A9l%C3%A9vis%C3%A9e%7CWallace%20Langham%7C"
. "Warrick%20Brown%7CWendy%20Simms%7C%C3%89tats-Unis"
);
+ // @codingStandardsIgnoreEnd
$this->canRun = function_exists ( 'mb_check_encoding' );
if ( $this->canRun ) {
- $this->mDescription = "Benchmark for using a regexp vs. mb_check_encoding to check for UTF-8 encoding.";
+ $this->mDescription = "Benchmark for using a regexp vs. mb_check_encoding " .
+ "to check for UTF-8 encoding.";
mb_internal_encoding( 'UTF-8' );
} else {
$this->mDescription = "CANNOT RUN benchmark using mb_check_encoding: function not available.";
function use_mb_check_encoding( $s ) {
$this->isutf8 = mb_check_encoding( $s, 'UTF-8' );
}
-
}
-$maintClass = 'bench_utf8_title_check';
+$maintClass = 'BenchUtf8TitleCheck';
require_once RUN_MAINTENANCE_IF_MAIN;
*
* @ingroup Benchmark
*/
-class bench_wfBaseConvert extends Benchmarker {
-
+class BenchWfBaseConvert extends Benchmarker {
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmark for wfBaseConvert.";
}
}
-$maintClass = 'bench_wfBaseConvert';
+$maintClass = 'BenchWfBaseConvert';
require_once RUN_MAINTENANCE_IF_MAIN;
*
* @ingroup Benchmark
*/
-class bench_wfIsWindows extends Benchmarker {
-
+class BenchWfIsWindows extends Benchmarker {
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmark for wfIsWindows.";
}
}
-$maintClass = 'bench_wfIsWindows';
+$maintClass = 'BenchWfIsWindows';
require_once RUN_MAINTENANCE_IF_MAIN;
* @ingroup Benchmark
*/
class BenchmarkHooks extends Benchmarker {
-
public function __construct() {
parent::__construct();
$this->mDescription = 'Benchmark MediaWiki Hooks.';
* @ingroup Benchmark
*/
class BenchmarkPurge extends Benchmarker {
-
public function __construct() {
parent::__construct();
$this->mDescription = "Benchmark the Squid purge functions.";
$this->addOption( 'parser1', 'The first parser to compare.', true, true );
$this->addOption( 'parser2', 'The second parser to compare.', true, true );
$this->addOption( 'tidy', 'Run tidy on the articles.', false, false );
- $this->addOption( 'save-failed', 'Folder in which articles which differ will be stored.', false, true );
+ $this->addOption(
+ 'save-failed',
+ 'Folder in which articles which differ will be stored.',
+ false,
+ true
+ );
$this->addOption( 'show-diff', 'Show a diff of the two renderings.', false, false );
- $this->addOption( 'diff-bin', 'Binary to use for diffing (can also be provided by DIFF env var).', false, false );
- $this->addOption( 'strip-parameters', 'Remove parameters of html tags to increase readability.', false, false );
- $this->addOption( 'show-parsed-output', 'Show the parsed html if both Parsers give the same output.', false, false );
+ $this->addOption(
+ 'diff-bin',
+ 'Binary to use for diffing (can also be provided by DIFF env var).',
+ false,
+ false
+ );
+ $this->addOption(
+ 'strip-parameters',
+ 'Remove parameters of html tags to increase readability.',
+ false,
+ false
+ );
+ $this->addOption(
+ 'show-parsed-output',
+ 'Show the parsed html if both Parsers give the same output.',
+ false,
+ false
+ );
}
public function checkOptions() {
$content = $rev->getContent();
if ( $content->getModel() !== CONTENT_MODEL_WIKITEXT ) {
- $this->error( "Page {$title->getPrefixedText()} does not contain wikitext but {$content->getModel()}\n" );
+ $this->error( "Page {$title->getPrefixedText()} does not contain wikitext "
+ . "but {$content->getModel()}\n" );
+
return;
}
$this->error( "Parsing for {$title->getPrefixedText()} differs\n" );
if ( $this->saveFailed ) {
- file_put_contents( $this->saveFailed . '/' . rawurlencode( $title->getPrefixedText() ) . ".txt", $text );
+ file_put_contents(
+ $this->saveFailed . '/' . rawurlencode( $title->getPrefixedText() ) . ".txt",
+ $text
+ );
}
if ( $this->showDiff ) {
- $this->output( wfDiff( $this->stripParameters( $output1->getText() ), $this->stripParameters( $output2->getText() ), '' ) );
+ $this->output( wfDiff(
+ $this->stripParameters( $output1->getText() ),
+ $this->stripParameters( $output2->getText() ),
+ ''
+ ) );
}
} else {
$this->output( $title->getPrefixedText() . "\tOK\n" );
+
if ( $this->showParsedOutput ) {
$this->output( $this->stripParameters( $output1->getText() ) );
}
public function __construct() {
parent::__construct();
- $this->mDescription = "Convert from the old links schema (string->ID) to the new schema (ID->ID).
-The wiki should be put into read-only mode while this script executes";
+ $this->mDescription =
+ "Convert from the old links schema (string->ID) to the new schema (ID->ID)."
+ . "The wiki should be put into read-only mode while this script executes";
$this->addArg( 'logperformance', "Log performance to perfLogFilename.", false );
- $this->addArg( 'perfLogFilename', "Filename where performance is logged if --logperformance was set (defaults to 'convLinksPerf.txt').", false );
- $this->addArg( 'keep-links-table', "Don't overwrite the old links table with the new one, leave the new table at links_temp.", false );
- $this->addArg( 'nokeys', "Don't create keys, and so allow duplicates in the new links table.\n
-This gives a huge speed improvement for very large links tables which are MyISAM." /* (What about InnoDB?) */, false );
+ $this->addArg(
+ 'perfLogFilename',
+ "Filename where performance is logged if --logperformance was set "
+ . "(defaults to 'convLinksPerf.txt').",
+ false
+ );
+ $this->addArg(
+ 'keep-links-table',
+ "Don't overwrite the old links table with the new one, leave the new table at links_temp.",
+ false
+ );
+ $this->addArg(
+ 'nokeys',
+ /* (What about InnoDB?) */
+ "Don't create keys, and so allow duplicates in the new links table.\n"
+ . "This gives a huge speed improvement for very large links tables which are MyISAM.",
+ false
+ );
}
public function getDbType() {
global $wgContLang;
- $numBadLinks = $curRowsRead = 0; # counters etc
- $totalTuplesInserted = 0; # total tuples INSERTed into links_temp
+ # counters etc
+ $numBadLinks = $curRowsRead = 0;
- $reportCurReadProgress = true; # whether or not to give progress reports while reading IDs from cur table
- $curReadReportInterval = 1000; # number of rows between progress reports
+ # total tuples INSERTed into links_temp
+ $totalTuplesInserted = 0;
- $reportLinksConvProgress = true; # whether or not to give progress reports during conversion
- $linksConvInsertInterval = 1000; # number of rows per INSERT
+ # whether or not to give progress reports while reading IDs from cur table
+ $reportCurReadProgress = true;
+
+ # number of rows between progress reports
+ $curReadReportInterval = 1000;
+
+ # whether or not to give progress reports during conversion
+ $reportLinksConvProgress = true;
+
+ # number of rows per INSERT
+ $linksConvInsertInterval = 1000;
$initialRowOffset = 0;
- # $finalRowOffset = 0; # not used yet; highest row number from links table to process
+
+ # not used yet; highest row number from links table to process
+ # $finalRowOffset = 0;
$overwriteLinksTable = !$this->hasOption( 'keep-links-table' );
$noKeys = $this->hasOption( 'noKeys' );
# --------------------------------------------------------------------
- list( $cur, $links, $links_temp, $links_backup ) = $dbw->tableNamesN( 'cur', 'links', 'links_temp', 'links_backup' );
+ list( $cur, $links, $links_temp, $links_backup ) =
+ $dbw->tableNamesN( 'cur', 'links', 'links_temp', 'links_backup' );
if ( $dbw->tableExists( 'pagelinks' ) ) {
$this->output( "...have pagelinks; skipping old links table updates\n" );
$curRowsRead++;
if ( $reportCurReadProgress ) {
if ( ( $curRowsRead % $curReadReportInterval ) == 0 ) {
- $this->performanceLog( $fh, $curRowsRead . " " . ( $this->getMicroTime() - $baseTime ) . "\n" );
+ $this->performanceLog(
+ $fh,
+ $curRowsRead . " " . ( $this->getMicroTime() - $baseTime ) . "\n"
+ );
$this->output( "\t$curRowsRead rows of $cur table read.\n" );
}
}
$dbw->freeResult( $res );
$dbw->bufferResults( true );
$this->output( "Finished loading IDs.\n\n" );
- $this->performanceLog( $fh, "Took " . ( $this->getMicroTime() - $baseTime ) . " seconds to load IDs.\n\n" );
+ $this->performanceLog(
+ $fh,
+ "Took " . ( $this->getMicroTime() - $baseTime ) . " seconds to load IDs.\n\n"
+ );
# --------------------------------------------------------------------
$this->performanceLog( $fh, "Processing $numRows rows from $links table...\n" );
$this->performanceLog( $fh, "rows inserted vs seconds elapsed:\n" );
- for ( $rowOffset = $initialRowOffset; $rowOffset < $numRows; $rowOffset += $linksConvInsertInterval ) {
+ for ( $rowOffset = $initialRowOffset; $rowOffset < $numRows;
+ $rowOffset += $linksConvInsertInterval
+ ) {
$sqlRead = "SELECT * FROM $links ";
$sqlRead = $dbw->limitResult( $sqlRead, $linksConvInsertInterval, $rowOffset );
$res = $dbw->query( $sqlRead );
}
}
$dbw->freeResult( $res );
- # $this->output( "rowOffset: $rowOffset\ttuplesAdded: $tuplesAdded\tnumBadLinks: $numBadLinks\n" );
+ # $this->output( "rowOffset: $rowOffset\ttuplesAdded: "
+ # . "$tuplesAdded\tnumBadLinks: $numBadLinks\n" );
if ( $tuplesAdded != 0 ) {
if ( $reportLinksConvProgress ) {
$this->output( "Inserting $tuplesAdded tuples into $links_temp..." );
$totalTuplesInserted += $tuplesAdded;
if ( $reportLinksConvProgress ) {
$this->output( " done. Total $totalTuplesInserted tuples inserted.\n" );
- $this->performanceLog( $fh, $totalTuplesInserted . " " . ( $this->getMicroTime() - $baseTime ) . "\n" );
+ $this->performanceLog(
+ $fh,
+ $totalTuplesInserted . " " . ( $this->getMicroTime() - $baseTime ) . "\n"
+ );
}
}
}
- $this->output( "$totalTuplesInserted valid titles and $numBadLinks invalid titles were processed.\n\n" );
- $this->performanceLog( $fh, "$totalTuplesInserted valid titles and $numBadLinks invalid titles were processed.\n" );
- $this->performanceLog( $fh, "Total execution time: " . ( $this->getMicroTime() - $startTime ) . " seconds.\n" );
+ $this->output( "$totalTuplesInserted valid titles and "
+ . "$numBadLinks invalid titles were processed.\n\n" );
+ $this->performanceLog(
+ $fh,
+ "$totalTuplesInserted valid titles and $numBadLinks invalid titles were processed.\n"
+ );
+ $this->performanceLog(
+ $fh,
+ "Total execution time: " . ( $this->getMicroTime() - $startTime ) . " seconds.\n"
+ );
if ( $this->logPerformance ) {
fclose ( $fh );
}
* @ingroup Maintenance
*/
class CreateAndPromote extends Maintenance {
-
- static $permitRoles = array( 'sysop', 'bureaucrat', 'bot' );
+ private static $permitRoles = array( 'sysop', 'bureaucrat', 'bot' );
public function __construct() {
parent::__construct();
$this->mDescription = "Create a new user account and/or grant it additional rights";
- $this->addOption( "force", "If acccount exists already, just grant it rights or change password." );
+ $this->addOption(
+ 'force',
+ 'If acccount exists already, just grant it rights or change password.'
+ );
foreach ( self::$permitRoles as $role ) {
$this->addOption( $role, "Add the account to the {$role} group" );
}
$inGroups = $user->getGroups();
}
- $promotions = array_diff( array_filter( self::$permitRoles, array( $this, 'hasOption' ) ), $inGroups );
+ $promotions = array_diff(
+ array_filter( self::$permitRoles, array( $this, 'hasOption' ) ),
+ $inGroups
+ );
if ( $exists && !$password && count( $promotions ) === 0 ) {
$this->output( "Account exists and nothing to do.\n" );
class DeleteArchivedRevisions extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Deletes all archived revisions\nThese revisions will no longer be restorable";
+ $this->mDescription =
+ "Deletes all archived revisions\nThese revisions will no longer be restorable";
$this->addOption( 'delete', 'Performs the deletion' );
}
$dbw = wfGetDB( DB_MASTER );
$res = $dbw->selectRow( 'archive', 'COUNT(*) as count', array(), __FUNCTION__ );
$this->output( "Found {$res->count} revisions to delete.\n" );
- $this->output( "Please run the script again with the --delete option to really delete the revisions.\n" );
+ $this->output( "Please run the script again with the --delete option "
+ . "to really delete the revisions.\n" );
}
}
}
$dbw = wfGetDB( DB_MASTER );
# Handle each entry
+ // @codingStandardsIgnoreStart Ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
for ( $linenum = 1; !feof( $file ); $linenum++ ) {
+ // @codingStandardsIgnoreEnd
$line = trim( fgets( $file ) );
if ( $line == '' ) {
continue;
foreach ( $res as $row ) {
if ( $i % $this->report == 0 ) {
- $this->output( sprintf( "%s: %13s done (%s)\n", wfWikiID(), "$i/$total", wfPercent( $i / $total * 100 ) ) );
+ $this->output( sprintf(
+ "%s: %13s done (%s)\n",
+ wfWikiID(),
+ "$i/$total",
+ wfPercent( $i / $total * 100 )
+ ) );
}
$md5 = md5( $row->img_name );
$wgMemc->delete( wfMemcKey( 'Image', $md5 ) );
# Find all the orphaned revisions
$this->output( "Checking for orphaned revisions..." );
- $sql = "SELECT rev_id FROM {$revision} LEFT JOIN {$page} ON rev_page = page_id WHERE page_namespace IS NULL";
+ $sql = "SELECT rev_id FROM {$revision} LEFT JOIN {$page} ON rev_page = page_id "
+ . "WHERE page_namespace IS NULL";
$res = $dbw->query( $sql, 'deleteOrphanedRevisions' );
# Stash 'em all up for deletion (if needed)
$this->output( "Revision $revID not found\n" );
} else {
$affected += $dbw->affectedRows();
- $pageID = $dbw->selectField( 'revision', 'rev_page', array( 'rev_id' => $revID ), __METHOD__ );
- $pageLatest = $dbw->selectField( 'page', 'page_latest', array( 'page_id' => $pageID ), __METHOD__ );
+ $pageID = $dbw->selectField(
+ 'revision',
+ 'rev_page',
+ array( 'rev_id' => $revID ),
+ __METHOD__
+ );
+ $pageLatest = $dbw->selectField(
+ 'page',
+ 'page_latest',
+ array( 'page_id' => $pageID ),
+ __METHOD__
+ );
$dbw->delete( 'revision', array( 'rev_id' => $revID ) );
if ( $pageLatest == $revID ) {
// Database integrity
- $newLatest = $dbw->selectField( 'revision', 'rev_id', array( 'rev_page' => $pageID ), __METHOD__, array( 'ORDER BY' => 'rev_timestamp DESC' ) );
- $dbw->update( 'page', array( 'page_latest' => $newLatest ), array( 'page_id' => $pageID ), __METHOD__ );
+ $newLatest = $dbw->selectField(
+ 'revision',
+ 'rev_id',
+ array( 'rev_page' => $pageID ),
+ __METHOD__,
+ array( 'ORDER BY' => 'rev_timestamp DESC' )
+ );
+ $dbw->update(
+ 'page',
+ array( 'page_latest' => $newLatest ),
+ array( 'page_id' => $pageID ),
+ __METHOD__
+ );
}
}
}
// @todo FIXME: Replace this hack with general farm-friendly code
# @todo FIXME: Wikimedia-specific stuff needs to go away to an ext
# Maybe a hook?
+ // @codingStandardsIgnoreStart MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
global $cluster;
$cluster = 'pmtpa';
+ // @codingStandardsIgnoreEnd
require "$IP/../wmf-config/wgConf.php";
}
// Require the configuration (probably LocalSettings.php)
}
if ( $maintenance->getDbType() === Maintenance::DB_NONE ) {
- if ( $wgLocalisationCacheConf['storeClass'] === false && ( $wgLocalisationCacheConf['store'] == 'db' || ( $wgLocalisationCacheConf['store'] == 'detect' && !$wgCacheDirectory ) ) ) {
+ if ( $wgLocalisationCacheConf['storeClass'] === false
+ && ( $wgLocalisationCacheConf['store'] == 'db'
+ || ( $wgLocalisationCacheConf['store'] == 'detect' && !$wgCacheDirectory ) )
+ ) {
$wgLocalisationCacheConf['storeClass'] = 'LCStoreNull';
}
}
$revision = new WikiRevision;
$revision->setText( file_get_contents( $this->getOption( 'file' ) ) );
- $revision->setTitle( Title::newFromText( rawurldecode( basename( $this->getOption( 'file' ), '.txt' ) ) ) );
+ $revision->setTitle( Title::newFromText(
+ rawurldecode( basename( $this->getOption( 'file' ), '.txt' ) )
+ ) );
$this->handleRevision( $revision );
+
return;
}
if ( $this->getOption( 'dump' ) == '-' ) {
$source = new ImportStreamSource( $this->getStdin() );
} else {
- $this->error( "Sorry, I don't support dump filenames yet. Use - and provide it on stdin on the meantime.", true );
+ $this->error( "Sorry, I don't support dump filenames yet. "
+ . "Use - and provide it on stdin on the meantime.", true );
}
$importer = new WikiImporter( $source );
$this->error( round( $this->count / $delta, 2 ) . " pages/sec" );
}
- # Perform the memory_get_peak_usage() when all the other data has been output so there's no damage if it dies.
- # It is only available since 5.2.0 (since 5.2.1 if you haven't compiled with --enable-memory-limit)
+ # Perform the memory_get_peak_usage() when all the other data has been
+ # output so there's no damage if it dies. It is only available since
+ # 5.2.0 (since 5.2.1 if you haven't compiled with --enable-memory-limit)
$this->error( "Memory peak usage of " . memory_get_peak_usage() . " bytes\n" );
}
*/
private function getHooksFromOnlineDoc() {
// All hooks
- $allhookdata = Http::get( 'http://www.mediawiki.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:MediaWiki_hooks&cmlimit=500&format=php' );
+ $allhookdata = Http::get(
+ 'http://www.mediawiki.org/w/api.php?action=query&list=categorymembers&'
+ . 'cmtitle=Category:MediaWiki_hooks&cmlimit=500&format=php'
+ );
$allhookdata = unserialize( $allhookdata );
$allhooks = array();
foreach ( $allhookdata['query']['categorymembers'] as $page ) {
}
}
// Removed hooks
- $oldhookdata = Http::get( 'http://www.mediawiki.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Removed_hooks&cmlimit=500&format=php' );
+ $oldhookdata = Http::get(
+ 'http://www.mediawiki.org/w/api.php?action=query&list=categorymembers&'
+ . 'cmtitle=Category:Removed_hooks&cmlimit=500&format=php'
+ );
$oldhookdata = unserialize( $oldhookdata );
$removed = array();
foreach ( $oldhookdata['query']['categorymembers'] as $page ) {
private function getHooksFromFile( $file ) {
$content = file_get_contents( $file );
$m = array();
- preg_match_all( '/(?:wfRunHooks|Hooks\:\:run|ContentHandler\:\:runLegacyHooks)\(\s*([\'"])(.*?)\1/', $content, $m );
+ preg_match_all(
+ '/(?:wfRunHooks|Hooks\:\:run|ContentHandler\:\:runLegacyHooks)\(\s*([\'"])(.*?)\1/',
+ $content,
+ $m
+ );
+
return $m[2];
}
if ( !$async ) {
$success = ( $dryrun ? true : $job->run() );
if ( !$success ) {
- $this->error( "Error fixing " . $titleA->getPrefixedText() . ": " . $job->getLastError() . "\n" );
+ $this->error( "Error fixing " . $titleA->getPrefixedText()
+ . ": " . $job->getLastError() . "\n" );
}
} else {
$jobs[] = $job;
class FixExtLinksProtocolRelative extends LoggedUpdateMaintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Fixes any entries in the externallinks table containing protocol-relative URLs";
+ $this->mDescription =
+ "Fixes any entries in the externallinks table containing protocol-relative URLs";
}
protected function getUpdateKey() {
)
), __METHOD__, array( 'IGNORE' )
);
- $db->delete( 'externallinks', array( 'el_index' => $row->el_index, 'el_from' => $row->el_from, 'el_to' => $row->el_to ), __METHOD__ );
+ $db->delete(
+ 'externallinks',
+ array(
+ 'el_index' => $row->el_index,
+ 'el_from' => $row->el_from,
+ 'el_to' => $row->el_to
+ ),
+ __METHOD__
+ );
}
$this->output( "Done, $count rows updated.\n" );
return true;
* @ingroup Maintenance
*/
class FixSlaveDesync extends Maintenance {
+ /** @var array */
+ private $slaveIndexes;
+
public function __construct() {
parent::__construct();
$this->mDescription = "";
public function execute() {
$this->slaveIndexes = array();
- for ( $i = 1; $i < wfGetLB()->getServerCount(); $i++ ) {
+ $serverCount = wfGetLB()->getServerCount();
+ for ( $i = 1; $i < $serverCount; $i++ ) {
if ( wfGetLB()->isNonZeroLoad( $i ) ) {
$this->slaveIndexes[] = $i;
}
$n = 0;
$dbw = wfGetDB( DB_MASTER );
$masterIDs = array();
- $res = $dbw->select( 'page', array( 'page_id', 'page_latest' ), array( 'page_id<6054123' ), __METHOD__ );
+ $res = $dbw->select(
+ 'page',
+ array( 'page_id', 'page_latest' ),
+ array( 'page_id<6054123' ),
+ __METHOD__
+ );
$this->output( "Number of pages: " . $res->numRows() . "\n" );
foreach ( $res as $row ) {
$masterIDs[$row->page_id] = $row->page_latest;
foreach ( $this->slaveIndexes as $i ) {
$db = wfGetDB( $i );
- $res = $db->select( 'page', array( 'page_id', 'page_latest' ), array( 'page_id<6054123' ), __METHOD__ );
+ $res = $db->select(
+ 'page',
+ array( 'page_id', 'page_latest' ),
+ array( 'page_id<6054123' ),
+ __METHOD__
+ );
foreach ( $res as $row ) {
if ( isset( $masterIDs[$row->page_id] ) && $masterIDs[$row->page_id] != $row->page_latest ) {
$desync[$row->page_id] = true;
if ( count( $masterIDs ) < count( $slaveIDs ) ) {
$missingIDs = array_diff( $slaveIDs, $masterIDs );
if ( count( $missingIDs ) ) {
- $this->output( "Found " . count( $missingIDs ) . " lost in master, copying from slave... " );
+ $this->output( "Found " . count( $missingIDs )
+ . " lost in master, copying from slave... " );
$dbFrom = $dbw;
$found = true;
$toMaster = true;
} else {
$missingIDs = array_diff( $masterIDs, $slaveIDs );
if ( count( $missingIDs ) ) {
- $this->output( "Found " . count( $missingIDs ) . " missing revision(s), copying from master... " );
+ $this->output( "Found " . count( $missingIDs )
+ . " missing revision(s), copying from master... " );
$dbFrom = $dbw;
$found = true;
$toMaster = false;
if ( $found ) {
$this->output( "Fixing page_latest... " );
if ( $toMaster ) {
- # $dbw->update( 'page', array( 'page_latest' => $realLatest ), array( 'page_id' => $pageID ), __METHOD__ );
+ /*
+ $dbw->update(
+ 'page',
+ array( 'page_latest' => $realLatest ),
+ array( 'page_id' => $pageID ),
+ __METHOD__
+ );
+ */
} else {
foreach ( $this->slaveIndexes as $i ) {
$db = wfGetDB( $i );
- $db->update( 'page', array( 'page_latest' => $realLatest ), array( 'page_id' => $pageID ), __METHOD__ );
+ $db->update(
+ 'page',
+ array( 'page_latest' => $realLatest ),
+ array( 'page_id' => $pageID ),
+ __METHOD__
+ );
}
}
$this->output( "done\n" );
$fixup = -$offset;
$sql = "UPDATE $revisionTable " .
- "SET rev_timestamp=DATE_FORMAT(DATE_ADD(rev_timestamp, INTERVAL $fixup SECOND), '%Y%m%d%H%i%s') " .
+ "SET rev_timestamp="
+ . "DATE_FORMAT(DATE_ADD(rev_timestamp, INTERVAL $fixup SECOND), '%Y%m%d%H%i%s') " .
"WHERE rev_id IN (" . $dbw->makeList( $badRevs ) . ')';
$dbw->query( $sql, __METHOD__ );
$this->output( "Done\n" );
foreach ( $res as $row ) {
$id = $row->user_id;
// Get first edit time
- $timestamp = $dbr->selectField( 'revision', 'MIN(rev_timestamp)', array( 'rev_user' => $id ), __METHOD__ );
+ $timestamp = $dbr->selectField(
+ 'revision',
+ 'MIN(rev_timestamp)',
+ array( 'rev_user' => $id ),
+ __METHOD__
+ );
// Update
if ( !empty( $timestamp ) ) {
- $dbw->update( 'user', array( 'user_registration' => $timestamp ), array( 'user_id' => $id ), __METHOD__ );
+ $dbw->update(
+ 'user',
+ array( 'user_registration' => $timestamp ),
+ array( 'user_id' => $id ),
+ __METHOD__
+ );
$this->output( "$id $timestamp\n" );
} else {
$this->output( "$id NULL\n" );
parent::__construct();
$this->mDescription = "Build JSON messages files from a PHP messages file";
$this->addArg( 'phpfile', 'PHP file defining a $messages array', true );
- $this->addArg( 'jsondir', 'Directory to write JSON files to', true );
+ $this->addArg( 'jsondir', 'Directory to write JSON files to. ' .
+ 'Required unless <phpfile> exists and --shim-only is specified', false );
$this->addOption( 'langcode', 'Language code; only needed for converting core i18n files',
false, true );
+ $this->addOption( 'shim-only', 'Only create or update the backward-compatibility shim' );
}
public function execute() {
$phpfile = $this->getArg( 0 );
$jsondir = $this->getArg( 1 );
+ if ( $this->hasOption( 'shim-only' ) ) {
+ $this->shimOnly( $phpfile, $jsondir );
+ return;
+ }
+
+ if ( $jsondir === null ) {
+ $this->error( 'Argument [jsondir] is required unless --shim-only is specified.' );
+ $this->maybeHelp( true );
+ }
+
if ( !is_readable( $phpfile ) ) {
$this->error( "Error reading $phpfile\n", 1 );
}
$jsonfile = "$jsondir/$langcode.json";
$success = file_put_contents(
$jsonfile,
- FormatJson::encode( $langmsgs, true, FormatJson::ALL_OK ) . "\n"
+ FormatJson::encode( $langmsgs, "\t", FormatJson::ALL_OK ) . "\n"
);
if ( $success === false ) {
$this->error( "FAILED to write $jsonfile", 1 );
$this->output( "Also add \$wgMessagesDirs['YourExtension'] = __DIR__ . '/i18n';\n" );
}
+ protected function shimOnly( $phpfile, $jsondir ) {
+ if ( file_exists( $phpfile ) ) {
+ if ( !is_readable( $phpfile ) ) {
+ $this->error( "Error reading $phpfile\n", 1 );
+ }
+
+ $phpfileContents = file_get_contents( $phpfile );
+ $m = array();
+ if ( !preg_match( '!"/([^"$]+)/\$csCode.json";!', $phpfileContents, $m ) ) {
+ $this->error( "Cannot recognize $phpfile as a shim.\n", 1 );
+ }
+
+ if ( $jsondir === null ) {
+ $jsondir = $m[1];
+ }
+
+ $this->output( "Updating existing shim $phpfile\n" );
+ } elseif ( $jsondir === null ) {
+ $this->error( "$phpfile does not exist.\n" .
+ "Argument [jsondir] is required in order to create a new shim.\n", 1 );
+ } else {
+ $this->output( "Creating new shim $phpfile\n" );
+ }
+
+ $shim = $this->doShim( $jsondir );
+ file_put_contents( $phpfile, $shim );
+ $this->output( "All done.\n" );
+ }
+
protected function doShim( $jsondir ) {
$shim = <<<'PHP'
<?php
* This shim maintains compatibility back to MediaWiki 1.17.
*/
$messages = array();
-$GLOBALS['wgHooks']['LocalisationCacheRecache'][] = function ( $cache, $code, &$cachedData ) {
- $codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
- foreach ( $codeSequence as $csCode ) {
- $fileName = __DIR__ . "/{{OUT}}/$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] );
+if ( !function_exists( '{{FUNC}}' ) ) {
+ function {{FUNC}}( $cache, $code, &$cachedData ) {
+ $codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
+ foreach ( $codeSequence as $csCode ) {
+ $fileName = dirname( __FILE__ ) . "/{{OUT}}/$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['messages'] = array_merge( $data, $cachedData['messages'] );
- }
- $cachedData['deps'][] = new FileDependency( $fileName );
+ $cachedData['deps'][] = new FileDependency( $fileName );
+ }
+ return true;
}
- return true;
-};
+
+ $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = '{{FUNC}}';
+}
PHP;
$jsondir = str_replace( '\\', '/', $jsondir );
$shim = str_replace( '{{OUT}}', $jsondir, $shim );
+ $shim = str_replace( '{{FUNC}}', 'wfJsonI18nShim' . wfRandomString( 16 ), $shim );
return $shim;
}
public $fspath;
/**
- * The URL path to prepend to filenames in the index; should resolve to the same directory as $fspath
+ * The URL path to prepend to filenames in the index;
+ * should resolve to the same directory as $fspath.
*
* @var string
*/
public function __construct() {
parent::__construct();
$this->mDescription = "Creates a sitemap for the site";
- $this->addOption( 'fspath', 'The file system path to save to, e.g. /tmp/sitemap; defaults to current directory', false, true );
- $this->addOption( 'urlpath', 'The URL path corresponding to --fspath, prepended to filenames in the index; defaults to an empty string', false, true );
- $this->addOption( 'compress', 'Compress the sitemap files, can take value yes|no, default yes', false, true );
+ $this->addOption(
+ 'fspath',
+ 'The file system path to save to, e.g. /tmp/sitemap; defaults to current directory',
+ false,
+ true
+ );
+ $this->addOption(
+ 'urlpath',
+ 'The URL path corresponding to --fspath, prepended to filenames in the index; '
+ . 'defaults to an empty string',
+ false,
+ true
+ );
+ $this->addOption(
+ 'compress',
+ 'Compress the sitemap files, can take value yes|no, default yes',
+ false,
+ true
+ );
$this->addOption( 'skip-redirects', 'Do not include redirecting articles in the sitemap' );
- $this->addOption( 'identifier', 'What site identifier to use for the wiki, defaults to $wgDBname', false, true );
+ $this->addOption(
+ 'identifier',
+ 'What site identifier to use for the wiki, defaults to $wgDBname',
+ false,
+ true
+ );
}
/**
* @return string
*/
function priority( $namespace ) {
- return isset( $this->priorities[$namespace] ) ? $this->priorities[$namespace] : $this->guessPriority( $namespace );
+ return isset( $this->priorities[$namespace] )
+ ? $this->priorities[$namespace]
+ : $this->guessPriority( $namespace );
}
/**
* @return string
*/
function guessPriority( $namespace ) {
- return MWNamespace::isSubject( $namespace ) ? $this->priorities[self::GS_MAIN] : $this->priorities[self::GS_TALK];
+ return MWNamespace::isSubject( $namespace )
+ ? $this->priorities[self::GS_MAIN]
+ : $this->priorities[self::GS_TALK];
}
/**
continue;
}
- if ( $i++ === 0 || $i === $this->url_limit + 1 || $length + $this->limit[1] + $this->limit[2] > $this->size_limit ) {
+ if ( $i++ === 0
+ || $i === $this->url_limit + 1
+ || $length + $this->limit[1] + $this->limit[2] > $this->size_limit
+ ) {
if ( $this->file !== false ) {
$this->write( $this->file, $this->closeFile() );
$this->close( $this->file );
if ( $vCode == $wgContLang->getCode() ) {
continue; // we don't want default variant
}
- $entry = $this->fileEntry( $title->getCanonicalURL( '', $vCode ), $date, $this->priority( $namespace ) );
+ $entry = $this->fileEntry(
+ $title->getCanonicalURL( '', $vCode ),
+ $date,
+ $this->priority( $namespace )
+ );
$length += strlen( $entry );
$this->write( $this->file, $entry );
}
function open( $file, $flags ) {
$resource = $this->compress ? gzopen( $file, $flags ) : fopen( $file, $flags );
if ( $resource === false ) {
- throw new MWException( __METHOD__ . " error opening file $file with flags $flags. Check permissions?" );
+ throw new MWException( __METHOD__
+ . " error opening file $file with flags $flags. Check permissions?" );
}
return $resource;
}
$this->limit = array(
strlen( $this->openFile() ),
- strlen( $this->fileEntry( $title->getCanonicalURL(), wfTimestamp( TS_ISO_8601, wfTimestamp() ), $this->priority( $namespace ) ) ),
+ strlen( $this->fileEntry(
+ $title->getCanonicalURL(),
+ wfTimestamp( TS_ISO_8601, wfTimestamp() ),
+ $this->priority( $namespace )
+ ) ),
strlen( $this->closeFile() )
);
}
$titleText = $title->getPrefixedText();
$this->error( "Page $titleText does not exist.\n", true );
}
- $content = $rev->getContent( $this->hasOption( 'show-private' ) ? Revision::RAW : Revision::FOR_PUBLIC );
+ $content = $rev->getContent( $this->hasOption( 'show-private' )
+ ? Revision::RAW
+ : Revision::FOR_PUBLIC );
+
if ( $content === false ) {
$titleText = $title->getPrefixedText();
$this->error( "Couldn't extract the text from $titleText.\n", true );
function __construct() {
parent::__construct();
- $gz = in_array( 'compress.zlib', stream_get_wrappers() ) ? 'ok' : '(disabled; requires PHP zlib module)';
- $bz2 = in_array( 'compress.bzip2', stream_get_wrappers() ) ? 'ok' : '(disabled; requires PHP bzip2 module)';
+ $gz = in_array( 'compress.zlib', stream_get_wrappers() )
+ ? 'ok'
+ : '(disabled; requires PHP zlib module)';
+ $bz2 = in_array( 'compress.bzip2', stream_get_wrappers() )
+ ? 'ok'
+ : '(disabled; requires PHP bzip2 module)';
$this->mDescription = <<<TEXT
This script reads pages from an XML file as produced from Special:Export or
$this->addOption( 'dry-run', 'Parse dump without actually importing pages' );
$this->addOption( 'debug', 'Output extra verbose debug information' );
$this->addOption( 'uploads', 'Process file upload data if included (experimental)' );
- $this->addOption( 'no-updates', 'Disable link table updates. Is faster but leaves the wiki in an inconsistent state' );
+ $this->addOption(
+ 'no-updates',
+ 'Disable link table updates. Is faster but leaves the wiki in an inconsistent state'
+ );
$this->addOption( 'image-base-path', 'Import files from a specified path', false, true );
$this->addArg( 'file', 'Dump file to import [else use stdin]', false );
}
return false;
}
-# FIXME: Access the api in a saner way and performing just one query (preferably batching files too).
+# @todo FIXME: Access the api in a saner way and performing just one query
+# (preferably batching files too).
function getFileCommentFromSourceWiki( $wiki_host, $file ) {
- $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:' . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=comment';
+ $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:'
+ . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=comment';
$body = Http::get( $url );
if ( preg_match( '#<ii comment="([^"]*)" />#', $body, $matches ) == 0 ) {
return false;
}
function getFileUserFromSourceWiki( $wiki_host, $file ) {
- $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:' . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=user';
+ $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:'
+ . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=user';
$body = Http::get( $url );
if ( preg_match( '#<ii user="([^"]*)" />#', $body, $matches ) == 0 ) {
return false;
* using the web-based interface.
*
* "Smart import" additions:
- * - aim: preserve the essential metadata (user, description) when importing medias from an existing wiki
+ * - aim: preserve the essential metadata (user, description) when importing media
+ * files from an existing wiki.
* - process:
* - interface with the source wiki, don't use bare files only (see --source-wiki-url).
* - fetch metadata from source wiki for each file to import.
}
# Get --from
-$from = @$options['from'];
+wfSuppressWarnings();
+$from = $options['from'];
+wfRestoreWarnings();
# Get sleep time.
-$sleep = @$options['sleep'];
+wfSuppressWarnings();
+$sleep = $options['sleep'];
+wfRestoreWarnings();
+
if ( $sleep ) {
$sleep = (int)$sleep;
}
# Get limit number
-$limit = @$options['limit'];
+wfSuppressWarnings();
+$limit = $options['limit'];
+wfRestoreWarnings();
+
if ( $limit ) {
$limit = (int)$limit;
}
} else {
if ( isset( $options['skip-dupes'] ) ) {
$repo = $image->getRepo();
- $sha1 = File::sha1Base36( $file ); # XXX: we end up calculating this again when actually uploading. that sucks.
+ # XXX: we end up calculating this again when actually uploading. that sucks.
+ $sha1 = File::sha1Base36( $file );
$dupes = $repo->findBySha1( $sha1 );
if ( $commentExt ) {
$f = findAuxFile( $file, $commentExt );
if ( !$f ) {
- echo " No comment file with extension {$commentExt} found for {$file}, using default comment. ";
+ echo " No comment file with extension {$commentExt} found "
+ . "for {$file}, using default comment. ";
} else {
$commentText = file_get_contents( $f );
if ( !$commentText ) {
if ( isset( $options['dry'] ) ) {
echo "done.\n";
- } elseif ( $image->recordUpload2( $archive->value, $summary, $commentText, $props, $timestamp ) ) {
+ } elseif ( $image->recordUpload2(
+ $archive->value,
+ $summary,
+ $commentText,
+ $props,
+ $timestamp
+ ) ) {
# We're done!
echo "done.\n";
<dir> : Path to the directory containing images to be imported
Options:
---extensions=<exts> Comma-separated list of allowable extensions, defaults to \$wgFileExtensions
---overwrite Overwrite existing images with the same name (default is to skip them)
---limit=<num> Limit the number of images to process. Ignored or skipped images are not counted.
---from=<name> Ignore all files until the one with the given name. Useful for resuming
- aborted imports. <name> should be the file's canonical database form.
---skip-dupes Skip images that were already uploaded under a different name (check SHA1)
---search-recursively Search recursively for files in subdirectories
+--extensions=<exts> Comma-separated list of allowable extensions, defaults
+ to \$wgFileExtensions.
+--overwrite Overwrite existing images with the same name (default
+ is to skip them).
+--limit=<num> Limit the number of images to process. Ignored or
+ skipped images are not counted.
+--from=<name> Ignore all files until the one with the given name.
+ Useful for resuming aborted imports. <name> should be
+ the file's canonical database form.
+--skip-dupes Skip images that were already uploaded under a different
+ name (check SHA1).
+--search-recursively Search recursively for files in subdirectories.
--sleep=<sec> Sleep between files. Useful mostly for debugging.
---user=<username> Set username of uploader, default 'Maintenance script'
+--user=<username> Set username of uploader, default 'Maintenance script'.
--check-userblock Check if the user got blocked during import.
--comment=<text> Set file description, default 'Importing file'.
--comment-file=<file> Set description to the content of <file>.
---comment-ext=<ext> Causes the description for each file to be loaded from a file with the same name
- but the extension <ext>. If a global description is also given, it is appended.
---license=<code> Use an optional license template
---dry Dry run, don't import anything
---protect=<protect> Specify the protect value (autoconfirmed,sysop)
---summary=<summary> Upload summary, description will be used if not provided
---timestamp=<timestamp> Override upload time/date, all MediaWiki timestamp formats are accepted
---unprotect Unprotects all uploaded images
---source-wiki-url If specified, take User and Comment data for each imported file from this URL.
- For example, --source-wiki-url="http://en.wikipedia.org/"
+--comment-ext=<ext> Causes the description for each file to be loaded from a
+ file with the same name, but the extension <ext>. If a
+ global description is also given, it is appended.
+--license=<code> Use an optional license template.
+--dry Dry run, don't import anything.
+--protect=<protect> Specify the protect value (autoconfirmed,sysop).
+--summary=<summary> Upload summary, description will be used if not
+ provided.
+--timestamp=<timestamp> Override upload time/date, all MediaWiki timestamp
+ formats are accepted.
+--unprotect Unprotects all uploaded images.
+--source-wiki-url If specified, take User and Comment data for each
+ imported file from this URL. For example,
+ --source-wiki-url="http://en.wikipedia.org/."
TEXT;
exit( 1 );
public function __construct() {
parent::__construct();
$this->mDescription = "Re-initialise the site statistics tables";
- $this->addOption( 'update', 'Update the existing statistics (preserves the ss_total_views field)' );
+ $this->addOption(
+ 'update',
+ 'Update the existing statistics (preserves the ss_total_views field)'
+ );
$this->addOption( 'noviews', "Don't update the page view counter" );
$this->addOption( 'active', 'Also update active users count' );
$this->addOption( 'use-master', 'Count using the master database' );
$this->addArg( 'admin', 'The username of the wiki administrator (WikiSysop)', true );
$this->addOption( 'pass', 'The password for the wiki administrator.', false, true );
- $this->addOption( 'passfile', 'An alternative way to provide pass option, as the contents of this file', false, true );
+ $this->addOption(
+ 'passfile',
+ 'An alternative way to provide pass option, as the contents of this file',
+ false,
+ true
+ );
/* $this->addOption( 'email', 'The email for the wiki administrator', false, true ); */
- $this->addOption( 'scriptpath', 'The relative path of the wiki in the web server (/wiki)', false, true );
+ $this->addOption(
+ 'scriptpath',
+ 'The relative path of the wiki in the web server (/wiki)',
+ false,
+ true
+ );
$this->addOption( 'lang', 'The language to use (en)', false, true );
/* $this->addOption( 'cont-lang', 'The content language (en)', false, true ); */
$this->addOption( 'installdbpass', 'The pasword for the DB user to install as.', false, true );
$this->addOption( 'dbuser', 'The user to use for normal operations (wikiuser)', false, true );
$this->addOption( 'dbpass', 'The pasword for the DB user for normal operations', false, true );
- $this->addOption( 'dbpassfile', 'An alternative way to provide dbpass option, as the contents of this file', false, true );
+ $this->addOption(
+ 'dbpassfile',
+ 'An alternative way to provide dbpass option, as the contents of this file',
+ false,
+ true
+ );
$this->addOption( 'confpath', "Path to write LocalSettings.php to, default $IP", false, true );
- /* $this->addOption( 'dbschema', 'The schema for the MediaWiki DB in pg (mediawiki)', false, true ); */
- /* $this->addOption( 'namespace', 'The project namespace (same as the name)', false, true ); */
+ /*
+ $this->addOption( 'dbschema', 'The schema for the MediaWiki DB in pg (mediawiki)', false, true );
+ $this->addOption( 'namespace', 'The project namespace (same as the name)', false, true );
+ */
$this->addOption( 'env-checks', "Run environment checks only, don't change anything" );
}
function execute() {
global $IP;
- $siteName = isset( $this->mArgs[0] ) ? $this->mArgs[0] : "Don't care"; // Will not be set if used with --env-checks
+
+ // Will not be set if used with --env-checks
+ $siteName = isset( $this->mArgs[0] ) ? $this->mArgs[0] : "Don't care";
$adminName = isset( $this->mArgs[1] ) ? $this->mArgs[1] : null;
$dbpassfile = $this->getOption( 'dbpassfile', false );
if ( $dbpassfile !== false ) {
if ( $this->getOption( 'dbpass', false ) !== false ) {
- $this->error( 'WARNING: You provide the options "dbpass" and "dbpassfile". The content of "dbpassfile" overwrites "dbpass".' );
+ $this->error( 'WARNING: You provide the options "dbpass" and "dbpassfile". '
+ . 'The content of "dbpassfile" overwrites "dbpass".' );
}
wfSuppressWarnings();
$dbpass = file_get_contents( $dbpassfile );
$passfile = $this->getOption( 'passfile', false );
if ( $passfile !== false ) {
if ( $this->getOption( 'pass', false ) !== false ) {
- $this->error( 'WARNING: You provide the options "pass" and "passfile". The content of "passfile" overwrites "pass".' );
+ $this->error( 'WARNING: You provide the options "pass" and "passfile". '
+ . 'The content of "passfile" overwrites "pass".' );
}
wfSuppressWarnings();
$pass = file_get_contents( $passfile );
if ( $this->hasOption( 'r' ) ) {
$lb = wfGetLB();
echo 'time ';
- for ( $i = 1; $i < $lb->getServerCount(); $i++ ) {
+
+ $serverCount = $lb->getServerCount();
+ for ( $i = 1; $i < $serverCount; $i++ ) {
$hostname = $lb->getServerName( $i );
printf( "%-12s ", $hostname );
}
function __construct() {
parent::__construct();
- $this->addOption( 'list-file', 'A file containing a list of extension setup files, one per line.', false, true );
+ $this->addOption(
+ 'list-file',
+ 'A file containing a list of extension setup files, one per line.',
+ false,
+ true
+ );
$this->addOption( 'extensions-dir', 'Path where extensions can be found.', false, true );
$this->addOption( 'output', 'Send output to this file (omit for stdout)', false, true );
$this->mDescription = 'Merge $wgExtensionMessagesFiles and $wgMessagesDirs from ' .
}
public function execute() {
- global $mmfl, $wgExtensionEntryPointListFiles;
+ // @codingStandardsIgnoreStart Ignore error: Global variable "$mmfl" is lacking 'wg' prefix
+ global $mmfl;
+ // @codingStandardsIgnoreEnd
+ global $wgExtensionEntryPointListFiles;
if ( !count( $wgExtensionEntryPointListFiles )
&& !$this->hasOption( 'list-file' )
# Setup complete, now start
$dbw = wfGetDB( DB_MASTER );
+ // @codingStandardsIgnoreStart Ignore avoid function calls in a FOR loop test part warning
for ( $linenum = 1; !feof( $file ); $linenum++ ) {
+ // @codingStandardsIgnoreEnd
$line = fgets( $file );
if ( $line === false ) {
break;
$ltable = "{$wgDBprefix}{$stable}";
}
- $result = $dbw->query( "SELECT uc.constraint_name, uc.table_name, ucc.column_name, uccpk.table_name pk_table_name, uccpk.column_name pk_column_name, uc.delete_rule, uc.deferrable, uc.deferred
- FROM user_constraints uc, user_cons_columns ucc, user_cons_columns uccpk
- WHERE uc.constraint_type = 'R'
- AND ucc.constraint_name = uc.constraint_name
- AND uccpk.constraint_name = uc.r_constraint_name
- AND uccpk.table_name = '$ltable'" );
+ $result = $dbw->query( "SELECT uc.constraint_name, uc.table_name, ucc.column_name,
+ uccpk.table_name pk_table_name, uccpk.column_name pk_column_name,
+ uc.delete_rule, uc.deferrable, uc.deferred
+ FROM user_constraints uc, user_cons_columns ucc, user_cons_columns uccpk
+ WHERE uc.constraint_type = 'R'
+ AND ucc.constraint_name = uc.constraint_name
+ AND uccpk.constraint_name = uc.r_constraint_name
+ AND uccpk.table_name = '$ltable'" );
while ( ( $row = $result->fetchRow() ) !== false ) {
$this->output( "Altering {$row['constraint_name']} ..." );
try {
- $dbw->query( "ALTER TABLE {$row['table_name']} DROP CONSTRAINT {$wgDBprefix}{$row['constraint_name']}" );
+ $dbw->query( "ALTER TABLE {$row['table_name']}
+ DROP CONSTRAINT {$wgDBprefix}{$row['constraint_name']}" );
} catch ( DBQueryError $exdb ) {
if ( $exdb->errno != 2443 ) {
throw $exdb;
}
$deleteRule = $row['delete_rule'] == 'NO ACTION' ? '' : "ON DELETE {$row['delete_rule']}";
- $dbw->query( "ALTER TABLE {$row['table_name']} ADD CONSTRAINT {$wgDBprefix}{$row['constraint_name']}
+ $dbw->query( "ALTER TABLE {$row['table_name']}
+ ADD CONSTRAINT {$wgDBprefix}{$row['constraint_name']}
FOREIGN KEY ({$row['column_name']})
REFERENCES {$wgSharedDB}.$stable({$row['pk_column_name']})
{$deleteRule} {$row['deferrable']} INITIALLY {$row['deferred']}" );
$this->lockTables( $dbw );
}
- $this->output( "Checking for orphan revision table entries... (this may take a while on a large wiki)\n" );
+ $this->output( "Checking for orphan revision table entries... "
+ . "(this may take a while on a large wiki)\n" );
$result = $dbw->query( "
SELECT *
FROM $revision LEFT OUTER JOIN $page ON rev_page=page_id
$orphans = $result->numRows();
if ( $orphans > 0 ) {
global $wgContLang;
+
$this->output( "$orphans orphan revisions...\n" );
- $this->output( sprintf( "%10s %10s %14s %20s %s\n", 'rev_id', 'rev_page', 'rev_timestamp', 'rev_user_text', 'rev_comment' ) );
+ $this->output( sprintf(
+ "%10s %10s %14s %20s %s\n",
+ 'rev_id', 'rev_page', 'rev_timestamp', 'rev_user_text', 'rev_comment'
+ ) );
+
foreach ( $result as $row ) {
$comment = ( $row->rev_comment == '' )
? ''
$this->lockTables( $dbw );
}
- $this->output( "\nChecking for childless page table entries... (this may take a while on a large wiki)\n" );
+ $this->output( "\nChecking for childless page table entries... "
+ . "(this may take a while on a large wiki)\n" );
$result = $dbw->query( "
SELECT *
FROM $page LEFT OUTER JOIN $revision ON page_latest=rev_id
$this->lockTables( $dbw, array( 'user', 'text' ) );
}
- $this->output( "\nChecking for pages whose page_latest links are incorrect... (this may take a while on a large wiki)\n" );
+ $this->output( "\nChecking for pages whose page_latest links are incorrect... "
+ . "(this may take a while on a large wiki)\n" );
$result = $dbw->query( "
SELECT *
FROM $page LEFT OUTER JOIN $revision ON page_latest=rev_id
public function __construct() {
parent::__construct();
$this->mDescription = "Parse a given wikitext";
- $this->addOption( 'title', 'Title name for the given wikitext (Default: \'CLIParser\')', false, true );
+ $this->addOption(
+ 'title',
+ 'Title name for the given wikitext (Default: \'CLIParser\')',
+ false,
+ true
+ );
$this->addArg( 'file', 'File containing wikitext (Default: stdin)', false );
}
if ( $input_file === $php_stdin ) {
$ctrl = wfIsWindows() ? 'CTRL+Z' : 'CTRL+D';
- $this->error( basename( __FILE__ ) . ": warning: reading wikitext from STDIN. Press $ctrl to parse.\n" );
+ $this->error( basename( __FILE__ )
+ . ": warning: reading wikitext from STDIN. Press $ctrl to parse.\n" );
}
return file_get_contents( $input_file );
public function __construct() {
parent::__construct();
$this->mDescription = "Run an SQL file into the DB, replacing prefix and charset vars";
- $this->addArg( 'patch-name', 'Name of the patch file, either full path or in maintenance/archives' );
+ $this->addArg(
+ 'patch-name',
+ 'Name of the patch file, either full path or in maintenance/archives'
+ );
}
public function getDbType() {
will not run again without the --force option.
TEXT;
# '
- $this->addOption( 'begin', 'Only do categories whose names are alphabetically after the provided name', false, true );
- $this->addOption( 'max-slave-lag', 'If slave lag exceeds this many seconds, wait until it drops before continuing. Default: 10', false, true );
- $this->addOption( 'throttle', 'Wait this many milliseconds after each category. Default: 0', false, true );
+ $this->addOption(
+ 'begin',
+ 'Only do categories whose names are alphabetically after the provided name',
+ false,
+ true
+ );
+ $this->addOption(
+ 'max-slave-lag',
+ 'If slave lag exceeds this many seconds, wait until it drops before continuing. Default: 10',
+ false,
+ true
+ );
+ $this->addOption(
+ 'throttle',
+ 'Wait this many milliseconds after each category. Default: 0',
+ false,
+ true
+ );
$this->addOption( 'force', 'Run regardless of whether the database says it\'s been run already' );
}
parent::__construct();
$this->mDescription = "Populate the img_sha1 field";
$this->addOption( 'force', "Recalculate sha1 for rows that already have a value" );
+ $this->addOption( 'multiversiononly', "Calculate only for files with several versions" );
$this->addOption( 'method', "Use 'pipe' to pipe to mysql command line,\n" .
"\t\tdefault uses Database class", false, true );
- $this->addOption( 'file', 'Fix for a specific file, without File: namespace prefixed', false, true );
+ $this->addOption(
+ 'file',
+ 'Fix for a specific file, without File: namespace prefixed',
+ false,
+ true
+ );
}
protected function getUpdateKey() {
}
public function execute() {
- if ( $this->getOption( 'file' ) ) {
+ if ( $this->getOption( 'file' ) || $this->hasOption( 'multiversiononly' ) ) {
$this->doDBUpdates(); // skip update log checks/saves
} else {
parent::execute();
$conds = array( 'img_sha1' => '' );
$this->output( "Populating img_sha1 field\n" );
}
- $res = $dbw->select( 'image', array( 'img_name' ), $conds, __METHOD__ );
+ if ( $this->hasOption( 'multiversiononly' ) ) {
+ $res = $dbw->select( 'oldimage',
+ array( 'img_name' => 'DISTINCT(oi_name)' ), $conds, __METHOD__ );
+ } else {
+ $res = $dbw->select( 'image', array( 'img_name' ), $conds, __METHOD__ );
+ }
}
$imageTable = $dbw->tableName( 'image' );
"Done %d of %d, %5.3f%% \r", $i, $numRows, $i / $numRows * 100 ) );
wfWaitForSlaves();
}
+
$file = wfLocalFile( $row->img_name );
if ( !$file ) {
continue;
}
+
// Upgrade the current file version...
$sha1 = $file->getRepo()->getFileSha1( $file->getPath() );
if ( strval( $sha1 ) !== '' ) { // file on disk and hashed properly
* @ingroup Maintenance
*/
class PopulateLogSearch extends LoggedUpdateMaintenance {
- static $tableMap = array( 'rev' => 'revision', 'fa' => 'filearchive', 'oi' => 'oldimage', 'ar' => 'archive' );
+ private static $tableMap = array(
+ 'rev' => 'revision',
+ 'fa' => 'filearchive',
+ 'oi' => 'oldimage',
+ 'ar' => 'archive'
+ );
public function __construct() {
parent::__construct();
# If there are none, check the the highest ID with a lower timestamp
if ( !$previousID ) {
# Get the highest older timestamp
- $lastTimestamp = $db->selectField( 'revision', 'rev_timestamp',
- array( 'rev_page' => $row->rev_page, "rev_timestamp < " . $db->addQuotes( $row->rev_timestamp ) ),
+ $lastTimestamp = $db->selectField(
+ 'revision',
+ 'rev_timestamp',
+ array(
+ 'rev_page' => $row->rev_page,
+ "rev_timestamp < " . $db->addQuotes( $row->rev_timestamp )
+ ),
__METHOD__,
- array( 'ORDER BY' => 'rev_timestamp DESC' ) );
+ array( 'ORDER BY' => 'rev_timestamp DESC' )
+ );
# If there is one, let the highest rev ID win
if ( $lastTimestamp ) {
$previousID = $db->selectField( 'revision', 'rev_id',
* @ingroup Maintenance
*/
-require_once dirname( __FILE__ ) . '/Maintenance.php';
+require_once __DIR__ . '/Maintenance.php';
/**
* Maintenance script to populate the rc_source field.
class PopulateRecentChangesSource extends LoggedUpdateMaintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Populates rc_source field of the recentchanges table with the data in rc_type.";
+ $this->mDescription =
+ "Populates rc_source field of the recentchanges table with the data in rc_type.";
$this->setBatchSize( 100 );
}
$this->output( "Populating ar_len column\n" );
$ar = $this->doLenUpdates( 'archive', 'ar_id', 'ar', Revision::selectArchiveFields() );
- $this->output( "rev_len and ar_len population complete [$rev revision rows, $ar archive rows].\n" );
+ $this->output( "rev_len and ar_len population complete "
+ . "[$rev revision rows, $ar archive rows].\n" );
return true;
}
$this->output( "Populating ar_sha1 column legacy rows\n" );
$ac += $this->doSha1LegacyUpdates();
- $this->output( "rev_sha1 and ar_sha1 population complete [$rc revision rows, $ac archive rows].\n" );
+ $this->output( "rev_sha1 and ar_sha1 population complete "
+ . "[$rc revision rows, $ac archive rows].\n" );
return true;
}
CREATE TABLE recentchanges (
rc_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('recentchanges_rc_id_seq'),
rc_timestamp TIMESTAMPTZ NOT NULL,
- rc_cur_time TIMESTAMPTZ NOT NULL,
+ rc_cur_time TIMESTAMPTZ NULL,
rc_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
rc_user_text TEXT NOT NULL,
rc_namespace SMALLINT NOT NULL,
try {
$this->mPreprocessor->preprocessToObj( strval( $content->getNativeData() ), 0 );
} catch ( Exception $e ) {
- $this->error( "Caught exception " . $e->getMessage() . " in " . $rev->getTitle()->getPrefixedText() );
+ $this->error( "Caught exception " . $e->getMessage() . " in "
+ . $rev->getTitle()->getPrefixedText() );
}
}
}
// public $outputTypes = array( 'OT_HTML', 'OT_WIKI', 'OT_PREPROCESS' );
public $entryPoints = array( 'testSrvus', 'testPst', 'testPreprocess' );
public $verbose = false;
- static $currentTest = false;
+
+ private static $currentTest = false;
function execute() {
if ( !file_exists( 'results' ) ) {
$options = ParserOptions::newFromUser( $wgUser );
$options->setTemplateCallback( array( $this, 'templateHook' ) );
$options->setTimestamp( wfTimestampNow() );
- $this->output = call_user_func( array( $wgParser, $this->entryPoint ), $this->mainText, $this->title, $options );
+ $this->output = call_user_func(
+ array( $wgParser, $this->entryPoint ),
+ $this->mainText,
+ $this->title,
+ $options
+ );
+
return $this->output;
}
$s = "Title: " . $this->title->getPrefixedDBkey() . "\n" .
// "Output type: {$this->outputType}\n" .
"Entry point: {$this->entryPoint}\n" .
- "User: " . ( $this->fancySig ? 'fancy' : 'no-fancy' ) . ' ' . var_export( $this->nickname, true ) . "\n" .
+ "User: " . ( $this->fancySig ? 'fancy' : 'no-fancy' ) .
+ ' ' . var_export( $this->nickname, true ) . "\n" .
"Main text: " . var_export( $this->mainText, true ) . "\n";
foreach ( $this->templates as $titleText => $template ) {
$finalTitle = $template['finalTitle'];
}
}
$s .= "Output: " . var_export( $this->output, true ) . "\n";
+
return $s;
}
}
# Count things
$this->output( "Checking current edits..." );
- $res = $dbw->select( 'revision', 'COUNT(*) AS count', $this->userConditions( $from, 'rev_user', 'rev_user_text' ), __METHOD__ );
+ $res = $dbw->select(
+ 'revision',
+ 'COUNT(*) AS count',
+ $this->userConditions( $from, 'rev_user', 'rev_user_text' ),
+ __METHOD__
+ );
$row = $dbw->fetchObject( $res );
$cur = $row->count;
$this->output( "found {$cur}.\n" );
$this->output( "Checking deleted edits..." );
- $res = $dbw->select( 'archive', 'COUNT(*) AS count', $this->userConditions( $from, 'ar_user', 'ar_user_text' ), __METHOD__ );
+ $res = $dbw->select(
+ 'archive',
+ 'COUNT(*) AS count',
+ $this->userConditions( $from, 'ar_user', 'ar_user_text' ),
+ __METHOD__
+ );
$row = $dbw->fetchObject( $res );
$del = $row->count;
$this->output( "found {$del}.\n" );
# Don't count recent changes if we're not supposed to
if ( $rc ) {
$this->output( "Checking recent changes..." );
- $res = $dbw->select( 'recentchanges', 'COUNT(*) AS count', $this->userConditions( $from, 'rc_user', 'rc_user_text' ), __METHOD__ );
+ $res = $dbw->select(
+ 'recentchanges',
+ 'COUNT(*) AS count',
+ $this->userConditions( $from, 'rc_user', 'rc_user_text' ),
+ __METHOD__
+ );
$row = $dbw->fetchObject( $res );
$rec = $row->count;
$this->output( "found {$rec}.\n" );
* @return array
*/
private function userConditions( &$user, $idfield, $utfield ) {
- return $user->getId() ? array( $idfield => $user->getId() ) : array( $utfield => $user->getName() );
+ return $user->getId()
+ ? array( $idfield => $user->getId() )
+ : array( $utfield => $user->getName() );
}
/**
public function execute() {
// Rebuild the text index
if ( wfGetDB( DB_SLAVE )->getType() != 'postgres' ) {
- $this->output( "** Rebuilding fulltext search index (if you abort this will break searching; run this script again to fix):\n" );
+ $this->output( "** Rebuilding fulltext search index (if you abort "
+ . "this will break searching; run this script again to fix):\n" );
$rebuildText = $this->runChild( 'RebuildTextIndex', 'rebuildtextindex.php' );
$rebuildText->execute();
}
$rebuildRC->execute();
// Rebuild link tables
- $this->output( "\n\n** Rebuilding links tables -- this can take a long time. It should be safe to abort via ctrl+C if you get bored.\n" );
+ $this->output( "\n\n** Rebuilding links tables -- this can take a long time. "
+ . "It should be safe to abort via ctrl+C if you get bored.\n" );
$rebuildLinks = $this->runChild( 'RefreshLinks', 'refreshLinks.php' );
$rebuildLinks->execute();
'rc_this_oldid' => 'rev_id',
'rc_last_oldid' => 0, // is this ok?
'rc_type' => $dbw->conditional( 'page_is_new != 0', RC_NEW, RC_EDIT ),
- 'rc_source' => $dbw->conditional( 'page_is_new != 0', $dbw->addQuotes( RecentChange::SRC_NEW ), $dbw->addQuotes( RecentChange::SRC_EDIT ) ),
+ 'rc_source' => $dbw->conditional(
+ 'page_is_new != 0',
+ $dbw->addQuotes( RecentChange::SRC_NEW ),
+ $dbw->addQuotes( RecentChange::SRC_EDIT )
+ ),
'rc_deleted' => 'rev_deleted'
), array(
'rev_timestamp > ' . $dbw->addQuotes( $dbw->timestamp( $cutoff ) ),
$cutoff = time() - $wgRCMaxAge;
list( $logging, $page ) = $dbw->tableNamesN( 'logging', 'page' );
- $dbw->insertSelect( 'recentchanges', array( 'user', "$logging LEFT JOIN $page ON (log_namespace=page_namespace AND log_title=page_title)" ),
+ $dbw->insertSelect(
+ 'recentchanges',
+ array(
+ 'user',
+ "$logging LEFT JOIN $page ON (log_namespace=page_namespace AND log_title=page_title)"
+ ),
array(
'rc_timestamp' => 'log_timestamp',
'rc_user' => 'log_user',
$dbw = wfGetDB( DB_MASTER );
- list( $recentchanges, $usergroups, $user ) = $dbw->tableNamesN( 'recentchanges', 'user_groups', 'user' );
+ list( $recentchanges, $usergroups, $user ) =
+ $dbw->tableNamesN( 'recentchanges', 'user_groups', 'user' );
$botgroups = User::getGroupsWithPermission( 'bot' );
$autopatrolgroups = $wgUseRCPatrol ? User::getGroupsWithPermission( 'autopatrol' ) : array();
$this->db = wfGetDB( DB_MASTER );
if ( $this->db->getType() == 'sqlite' ) {
if ( !DatabaseSqlite::getFulltextSearchModule() ) {
- $this->error( "Your version of SQLite module for PHP doesn't support full-text search (FTS3).\n", true );
+ $this->error( "Your version of SQLite module for PHP doesn't "
+ . "support full-text search (FTS3).\n", true );
}
if ( !$this->db->checkForEnabledSearch() ) {
- $this->error( "Your database schema is not configured for full-text search support. Run update.php.\n", true );
+ $this->error( "Your database schema is not configured for "
+ . "full-text search support. Run update.php.\n", true );
}
}
$this->mDescription = 'Script to update image metadata records';
$this->setBatchSize( 200 );
- $this->addOption( 'force', 'Reload metadata from file even if the metadata looks ok', false, false, 'f' );
- $this->addOption( 'broken-only', 'Only fix really broken records, leave old but still compatible records alone.' );
- $this->addOption( 'verbose', 'Output extra information about each upgraded/non-upgraded file.', false, false, 'v' );
+ $this->addOption(
+ 'force',
+ 'Reload metadata from file even if the metadata looks ok',
+ false,
+ false,
+ 'f'
+ );
+ $this->addOption(
+ 'broken-only',
+ 'Only fix really broken records, leave old but still compatible records alone.'
+ );
+ $this->addOption(
+ 'verbose',
+ 'Output extra information about each upgraded/non-upgraded file.',
+ false,
+ false,
+ 'v'
+ );
$this->addOption( 'start', 'Name of file to start with', false, true );
$this->addOption( 'end', 'Name of file to end with', false, true );
- $this->addOption( 'mime', '(Inefficient!) Only refresh files with this mime type. Can accept wild-card image/*', false, true );
- $this->addOption( 'metadata-contains', '(Inefficient!) Only refresh files where the img_metadata field contains this string. Can be used if its known a specific property was being extracted incorrectly.', false, true );
+ $this->addOption(
+ 'mime',
+ '(Inefficient!) Only refresh files with this mime type. Can accept wild-card image/*',
+ false,
+ true
+ );
+ $this->addOption(
+ 'metadata-contains',
+ '(Inefficient!) Only refresh files where the img_metadata field '
+ . 'contains this string. Can be used if its known a specific '
+ . 'property was being extracted incorrectly.',
+ false,
+ true
+ );
}
$total = $upgraded + $leftAlone;
if ( $force ) {
- $this->output( "\nFinished refreshing file metadata for $total files. $upgraded needed to be refreshed, $leftAlone did not need to be but were refreshed anyways, and $error refreshes were suspicious.\n" );
+ $this->output( "\nFinished refreshing file metadata for $total files. "
+ . "$upgraded needed to be refreshed, $leftAlone did not need to "
+ . "be but were refreshed anyways, and $error refreshes were suspicious.\n" );
} else {
- $this->output( "\nFinished refreshing file metadata for $total files. $upgraded were refreshed, $leftAlone were already up to date, and $error refreshes were suspicious.\n" );
+ $this->output( "\nFinished refreshing file metadata for $total files. "
+ . "$upgraded were refreshed, $leftAlone were already up to date, "
+ . "and $error refreshes were suspicious.\n" );
}
}
}
$touchedSeconds = 86400 * $touched;
foreach ( $res as $row ) {
- # Check the account, but ignore it if it's within a $excludedGroups group or if it's touched within the $touchedSeconds seconds.
+ # Check the account, but ignore it if it's within a $excludedGroups
+ # group or if it's touched within the $touchedSeconds seconds.
$instance = User::newFromId( $row->user_id );
if ( count( array_intersect( $instance->getEffectiveGroups(), $excludedGroups ) ) == 0
&& $this->isInactiveAccount( $row->user_id, true )
$this->output( "done.\n" );
# Update the site_stats.ss_users field
$users = $dbw->selectField( 'user', 'COUNT(*)', array(), __METHOD__ );
- $dbw->update( 'site_stats', array( 'ss_users' => $users ), array( 'ss_row_id' => 1 ), __METHOD__ );
+ $dbw->update(
+ 'site_stats',
+ array( 'ss_users' => $users ),
+ array( 'ss_row_id' => 1 ),
+ __METHOD__
+ );
} elseif ( $count > 0 ) {
$this->output( "\nRun the script again with --delete to remove them from the database.\n" );
}
class ResetUserTokens extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Reset the user_token of all users on the wiki. Note that this may log some of them out.";
+ $this->mDescription =
+ "Reset the user_token of all users on the wiki. Note that this may log some of them out.";
$this->addOption( 'nowarn', "Hides the 5 seconds warning", false, false );
- $this->addOption( 'nulls', 'Only reset tokens that are currently null (string of \x00\'s)', false, false );
+ $this->addOption(
+ 'nulls',
+ 'Only reset tokens that are currently null (string of \x00\'s)',
+ false,
+ false
+ );
$this->setBatchSize( 1000 );
}
if ( !$this->getOption( 'nowarn' ) ) {
if ( $this->nullsOnly ) {
- $this->output( "The script is about to reset the user_token for USERS WITH NULL TOKENS in the database.\n" );
+ $this->output( "The script is about to reset the user_token "
+ . "for USERS WITH NULL TOKENS in the database.\n" );
} else {
$this->output( "The script is about to reset the user_token for ALL USERS in the database.\n" );
$this->output( "This may log some of them out and is not necessary unless you believe your\n" );
$this->output( "user table has been compromised.\n" );
}
$this->output( "\n" );
- $this->output( "Abort with control-c in the next five seconds (skip this countdown with --nowarn) ... " );
+ $this->output( "Abort with control-c in the next five seconds "
+ . "(skip this countdown with --nowarn) ... " );
wfCountDown( 5 );
}
class RollbackEdits extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Rollback all edits by a given user or IP provided they're the most recent edit";
- $this->addOption( 'titles', 'A list of titles, none means all titles where the given user is the most recent', false, true );
+ $this->mDescription =
+ "Rollback all edits by a given user or IP provided they're the most recent edit";
+ $this->addOption(
+ 'titles',
+ 'A list of titles, none means all titles where the given user is the most recent',
+ false,
+ true
+ );
$this->addOption( 'user', 'A user or IP to rollback all edits for', true, true );
$this->addOption( 'summary', 'Edit summary to use', false, true );
$this->addOption( 'bot', 'Mark the edits as bot' );
class BatchedQueryRunner extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Run a query repeatedly until it affects 0 rows, and wait for slaves in between.\n" .
+ $this->mDescription =
+ "Run a query repeatedly until it affects 0 rows, and wait for slaves in between.\n" .
"NOTE: You need to set a LIMIT clause yourself.";
}
$backoffs = $this->loadBackoffs(); // map of (type => UNIX expiry)
$startingBackoffs = $backoffs; // avoid unnecessary writes
- $backoffExpireFunc = function( $t ) { return $t > time(); };
+ $backoffExpireFunc = function ( $t ) {
+ return $t > time();
+ };
$jobsRun = 0; // counter
$flags = JobQueueGroup::USE_CACHE;
$total = $hits + $expired + $absent + $stub;
if ( $total ) {
$this->output( sprintf( "hits: %-10d %6.2f%%\n", $hits, $hits / $total * 100 ) );
- $this->output( sprintf( "expired: %-10d %6.2f%%\n", $expired, $expired / $total * 100 ) );
- $this->output( sprintf( "absent: %-10d %6.2f%%\n", $absent, $absent / $total * 100 ) );
+ $this->output( sprintf(
+ "expired: %-10d %6.2f%%\n",
+ $expired,
+ $expired / $total * 100
+ ) );
+ $this->output( sprintf(
+ "absent: %-10d %6.2f%%\n",
+ $absent,
+ $absent / $total * 100
+ ) );
$this->output( sprintf( "stub threshold: %-10d %6.2f%%\n", $stub, $stub / $total * 100 ) );
$this->output( sprintf( "total: %-10d %6.2f%%\n", $total, 100 ) );
} else {
$total = $hits + $misses;
if ( $total ) {
$this->output( sprintf( "hits: %-10d %6.2f%%\n", $hits, $hits / $total * 100 ) );
- $this->output( sprintf( "misses: %-10d %6.2f%%\n", $misses, $misses / $total * 100 ) );
+ $this->output( sprintf(
+ "misses: %-10d %6.2f%%\n",
+ $misses,
+ $misses / $total * 100
+ ) );
$this->output( sprintf( "updates: %-10d\n", $updates ) );
} else {
$this->output( "no statistics available\n" );
$total = $hits + $misses + $uncacheable;
if ( $total ) {
$this->output( sprintf( "hits: %-10d %6.2f%%\n", $hits, $hits / $total * 100 ) );
- $this->output( sprintf( "misses: %-10d %6.2f%%\n", $misses, $misses / $total * 100 ) );
- $this->output( sprintf( "uncacheable: %-10d %6.2f%%\n", $uncacheable, $uncacheable / $total * 100 ) );
+ $this->output( sprintf(
+ "misses: %-10d %6.2f%%\n",
+ $misses,
+ $misses / $total * 100
+ ) );
+ $this->output( sprintf(
+ "uncacheable: %-10d %6.2f%%\n",
+ $uncacheable,
+ $uncacheable / $total * 100
+ ) );
} else {
$this->output( "no statistics available\n" );
}
parent::__construct();
$this->mDescription = "Show number of jobs waiting in master database";
$this->addOption( 'group', 'Show number of jobs per job type' );
- $this->addOption( 'list', 'Show a complete list of all jobs in a machine-readable format, instead of statistics' );
+ $this->addOption(
+ 'list',
+ 'Show a complete list of all jobs in a machine-readable format, instead of statistics'
+ );
}
public function execute() {
// Show them
foreach ( $fields as $field => $desc ) {
- $this->output( sprintf( "%-{$max_length_desc}s: %{$max_length_value}d\n", $desc, $stats->$field ) );
+ $this->output( sprintf(
+ "%-{$max_length_desc}s: %{$max_length_value}d\n",
+ $desc,
+ $stats->$field
+ ) );
}
}
}
$index = DB_SLAVE;
} else {
$index = null;
- for ( $i = 0; $i < $lb->getServerCount(); ++$i ) {
+ $serverCount = $lb->getServerCount();
+ for ( $i = 0; $i < $serverCount; ++$i ) {
if ( $lb->getServerName( $i ) === $server ) {
$index = $i;
break;
public function __construct() {
parent::__construct();
$this->mDescription = "Performs some operations specific to SQLite database backend";
- $this->addOption( 'vacuum', 'Clean up database by removing deleted pages. Decreases database file size' );
+ $this->addOption(
+ 'vacuum',
+ 'Clean up database by removing deleted pages. Decreases database file size'
+ );
$this->addOption( 'integrity', 'Check database for integrity' );
$this->addOption( 'backup-to', 'Backup database to the given file', false, true );
$this->addOption( 'check-syntax', 'Check SQL file(s) for syntax errors', false, true );
$curIds = array();
if ( count( $objectRevs ) ) {
$headerLength = 300;
- $res = $dbr->select( 'text', array( 'old_id', 'old_flags', "LEFT(old_text, $headerLength) AS header" ),
- array( 'old_id IN (' . implode( ',', $objectRevs ) . ')' ), __METHOD__ );
+ $res = $dbr->select(
+ 'text',
+ array( 'old_id', 'old_flags', "LEFT(old_text, $headerLength) AS header" ),
+ array( 'old_id IN (' . implode( ',', $objectRevs ) . ')' ),
+ __METHOD__
+ );
foreach ( $res as $row ) {
$oldId = $row->old_id;
$matches = array();
$className = strtolower( $matches[2] );
if ( strlen( $className ) != $matches[1] ) {
- $this->error( 'restore text', "Error: invalid object header, wrong class name length", $oldId );
+ $this->error(
+ 'restore text',
+ "Error: invalid object header, wrong class name length",
+ $oldId
+ );
continue;
}
$externalConcatBlobs = array();
if ( count( $concatBlobs ) ) {
$headerLength = 300;
- $res = $dbr->select( 'text', array( 'old_id', 'old_flags', "LEFT(old_text, $headerLength) AS header" ),
- array( 'old_id IN (' . implode( ',', array_keys( $concatBlobs ) ) . ')' ), __METHOD__ );
+ $res = $dbr->select(
+ 'text',
+ array( 'old_id', 'old_flags', "LEFT(old_text, $headerLength) AS header" ),
+ array( 'old_id IN (' . implode( ',', array_keys( $concatBlobs ) ) . ')' ),
+ __METHOD__
+ );
foreach ( $res as $row ) {
$flags = explode( ',', $row->old_flags );
if ( in_array( 'external', $flags ) ) {
if ( in_array( 'object', $flags ) ) {
$urlParts = explode( '/', $row->header );
if ( $urlParts[0] != 'DB:' ) {
- $this->error( 'unfixable', "Error: unrecognised external storage type \"{$urlParts[0]}", $row->old_id );
+ $this->error(
+ 'unfixable',
+ "Error: unrecognised external storage type \"{$urlParts[0]}",
+ $row->old_id
+ );
} else {
$cluster = $urlParts[2];
$id = $urlParts[3];
);
}
} else {
- $this->error( 'unfixable', "Error: invalid flags \"{$row->old_flags}\" on concat bulk row {$row->old_id}",
+ $this->error(
+ 'unfixable',
+ "Error: invalid flags \"{$row->old_flags}\" on concat bulk row {$row->old_id}",
$concatBlobs[$row->old_id] );
}
- } elseif ( strcasecmp( substr( $row->header, 0, strlen( self::CONCAT_HEADER ) ), self::CONCAT_HEADER ) ) {
- $this->error( 'restore text', "Error: Incorrect object header for concat bulk row {$row->old_id}",
- $concatBlobs[$row->old_id] );
+ } elseif ( strcasecmp(
+ substr( $row->header, 0, strlen( self::CONCAT_HEADER ) ),
+ self::CONCAT_HEADER
+ ) ) {
+ $this->error(
+ 'restore text',
+ "Error: Incorrect object header for concat bulk row {$row->old_id}",
+ $concatBlobs[$row->old_id]
+ );
} # else good
unset( $concatBlobs[$row->old_id] );
array( 'blob_id IN( ' . implode( ',', $blobIds ) . ')' ), __METHOD__ );
foreach ( $res as $row ) {
if ( strcasecmp( $row->header, self::CONCAT_HEADER ) ) {
- $this->error( 'restore text', "Error: invalid header on target $cluster/{$row->blob_id} of two-part ES URL",
- $oldIds[$row->blob_id] );
+ $this->error(
+ 'restore text',
+ "Error: invalid header on target $cluster/{$row->blob_id} of two-part ES URL",
+ $oldIds[$row->blob_id]
+ );
}
unset( $oldIds[$row->blob_id] );
// Print errors for missing blobs rows
foreach ( $oldIds as $blobId => $oldIds2 ) {
- $this->error( 'restore text', "Error: missing target $cluster/$blobId for two-part ES URL", $oldIds2 );
+ $this->error(
+ 'restore text',
+ "Error: missing target $cluster/$blobId for two-part ES URL",
+ $oldIds2
+ );
}
}
}
parent::__construct();
$this->mDescription = 'Compress the text of a wiki';
$this->addOption( 'type', 'Set compression type to either: gzip|concat', false, true, 't' );
- $this->addOption( 'chunksize', 'Maximum number of revisions in a concat chunk', false, true, 'c' );
- $this->addOption( 'begin-date', 'Earliest date to check for uncompressed revisions', false, true, 'b' );
+ $this->addOption(
+ 'chunksize',
+ 'Maximum number of revisions in a concat chunk',
+ false,
+ true,
+ 'c'
+ );
+ $this->addOption(
+ 'begin-date',
+ 'Earliest date to check for uncompressed revisions',
+ false,
+ true,
+ 'b'
+ );
$this->addOption( 'end-date', 'Latest revision date to compress', false, true, 'e' );
- $this->addOption( 'startid', 'The id to start from (gzip -> text table, concat -> page table)', false, true, 's' );
- $this->addOption( 'extdb', 'Store specified revisions in an external cluster (untested)', false, true );
- $this->addOption( 'endid', 'The page_id to stop at (only when using concat compression type)', false, true, 'n' );
+ $this->addOption(
+ 'startid',
+ 'The id to start from (gzip -> text table, concat -> page table)',
+ false,
+ true,
+ 's'
+ );
+ $this->addOption(
+ 'extdb',
+ 'Store specified revisions in an external cluster (untested)',
+ false,
+ true
+ );
+ $this->addOption(
+ 'endid',
+ 'The page_id to stop at (only when using concat compression type)',
+ false,
+ true,
+ 'n'
+ );
}
public function execute() {
$this->output( "Starting from old_id $start...\n" );
$dbw = wfGetDB( DB_MASTER );
do {
- $res = $dbw->select( 'text', array( 'old_id', 'old_flags', 'old_text' ),
- "old_id>=$start", __METHOD__, array( 'ORDER BY' => 'old_id', 'LIMIT' => $chunksize, 'FOR UPDATE' ) );
+ $res = $dbw->select(
+ 'text',
+ array( 'old_id', 'old_flags', 'old_text' ),
+ "old_id>=$start",
+ __METHOD__,
+ array( 'ORDER BY' => 'old_id', 'LIMIT' => $chunksize, 'FOR UPDATE' )
+ );
+
if ( $res->numRows() == 0 ) {
break;
}
+
$last = $start;
+
foreach ( $res as $row ) {
# print " {$row->old_id} - {$row->old_namespace}:{$row->old_title}\n";
$this->compressPage( $row, $extdb );
$last = $row->old_id;
}
+
$start = $last + 1; # Deletion may leave long empty stretches
$this->output( "$start...\n" );
} while ( true );
* @return bool
*/
private function compressPage( $row, $extdb ) {
- if ( false !== strpos( $row->old_flags, 'gzip' ) || false !== strpos( $row->old_flags, 'object' ) ) {
+ if ( false !== strpos( $row->old_flags, 'gzip' )
+ || false !== strpos( $row->old_flags, 'object' )
+ ) {
#print "Already compressed row {$row->old_id}\n";
return false;
}
$compress = $storeObj->store( $extdb, $compress );
if ( $compress === false ) {
$this->error( "Unable to store object" );
+
return false;
}
}
), __METHOD__,
array( 'LIMIT' => 1 )
);
+
return true;
}
# overwriting bulk storage concat rows. Don't compress external references, because
# the script doesn't yet delete rows from external storage.
$conds = array(
- 'old_flags NOT ' . $dbr->buildLike( $dbr->anyString(), 'object', $dbr->anyString() ) . ' AND old_flags NOT '
- . $dbr->buildLike( $dbr->anyString(), 'external', $dbr->anyString() ) );
+ 'old_flags NOT ' . $dbr->buildLike( $dbr->anyString(), 'object', $dbr->anyString() )
+ . ' AND old_flags NOT '
+ . $dbr->buildLike( $dbr->anyString(), 'external', $dbr->anyString() )
+ );
if ( $beginDate ) {
if ( !preg_match( '/^\d{14}$/', $beginDate ) ) {
$this->error( "Invalid begin date \"$beginDate\"\n" );
+
return false;
}
$conds[] = "rev_timestamp>'" . $beginDate . "'";
if ( $endDate ) {
if ( !preg_match( '/^\d{14}$/', $endDate ) ) {
$this->error( "Invalid end date \"$endDate\"\n" );
+
return false;
}
$conds[] = "rev_timestamp<'" . $endDate . "'";
$usedChunk = false;
$primaryOldid = $revs[$i]->rev_text_id;
+ // @codingStandardsIgnoreStart Ignore avoid function calls in a FOR loop test part warning
# Get the text of each revision and add it to the object
for ( $j = 0; $j < $thisChunkSize && $chunk->isHappy(); $j++ ) {
+ // @codingStandardsIgnoreEnd
$oldid = $revs[$i + $j]->rev_text_id;
# Get text
if ( $usedChunk ) {
if ( $extdb != "" ) {
# Move blob objects to External Storage
- $stored = $storeObj->store( $extdb, serialize( $chunk ));
+ $stored = $storeObj->store( $extdb, serialize( $chunk ) );
if ( $stored === false ) {
$this->error( "Unable to store object" );
+
return false;
}
# Store External Storage URLs instead of Stub placeholders
}
$this->output( "\n" );
}
+
return true;
}
-
}
$maintClass = 'CompressOld';
$text = $secondaryRow->old_text;
if ( in_array( 'external', $flags ) ) {
$url = $text;
- @list( /* $proto */ , $path ) = explode( '://', $url, 2 );
+ wfSuppressWarnings();
+ list( /* $proto */ , $path ) = explode( '://', $url, 2 );
+ wfRestoreWarnings();
+
if ( $path == "" ) {
return false;
}
class OrphanStats extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "how some statistics on the blob_orphans table, created with trackBlobs.php";
+ $this->mDescription =
+ "Show some statistics on the blob_orphans table, created with trackBlobs.php";
}
protected function &getDB( $cluster, $groups = array(), $wiki = false ) {
foreach ( $res as $boRow ) {
$extDB = $this->getDB( $boRow->bo_cluster );
- $blobRow = $extDB->selectRow( 'blobs', '*', array( 'blob_id' => $boRow->bo_blob_id ), __METHOD__ );
+ $blobRow = $extDB->selectRow(
+ 'blobs',
+ '*',
+ array( 'blob_id' => $boRow->bo_blob_id ),
+ __METHOD__
+ );
$num++;
$size = strlen( $blobRow->blob_text );
if ( count( $args ) < 1 ) {
echo "Usage: php recompressTracked.php [options] <cluster> [... <cluster>...]
-Moves blobs indexed by trackBlobs.php to a specified list of destination clusters, and recompresses them in the process. Restartable.
+Moves blobs indexed by trackBlobs.php to a specified list of destination clusters,
+and recompresses them in the process. Restartable.
Options:
- --procs <procs> Set the number of child processes (default 1)
- --copy-only Copy only, do not update the text table. Restart without this option to complete.
- --debug-log <file> Log debugging data to the specified file
- --info-log <file> Log progress messages to the specified file
- --critical-log <file> Log error messages to the specified file
+ --procs <procs> Set the number of child processes (default 1)
+ --copy-only Copy only, do not update the text table. Restart
+ without this option to complete.
+ --debug-log <file> Log debugging data to the specified file
+ --info-log <file> Log progress messages to the specified file
+ --critical-log <file> Log error messages to the specified file
";
exit( 1 );
}
public $debugLog, $infoLog, $criticalLog;
public $store;
- static $optionsWithArgs = array( 'procs', 'slave-id', 'debug-log', 'info-log', 'critical-log' );
- static $cmdLineOptionMap = array(
+ private static $optionsWithArgs = array(
+ 'procs',
+ 'slave-id',
+ 'debug-log',
+ 'info-log',
+ 'critical-log'
+ );
+
+ private static $cmdLineOptionMap = array(
'no-count' => 'noCount',
'procs' => 'numProcs',
'copy-only' => 'copyOnly',
}
# Get the (maybe) external row
- $externalRow = $dbr->selectRow( 'text', array( 'old_text' ),
- array( 'old_id' => $stub->mOldId, 'old_flags' . $dbr->buildLike( $dbr->anyString(), 'external', $dbr->anyString() ) ),
+ $externalRow = $dbr->selectRow(
+ 'text',
+ array( 'old_text' ),
+ array(
+ 'old_id' => $stub->mOldId,
+ 'old_flags' . $dbr->buildLike( $dbr->anyString(), 'external', $dbr->anyString() )
+ ),
$fname
);
$optionsWithArgs = array( 'start', 'limit', 'type' );
require __DIR__ . '/../commandLine.inc';
-if ( !isset( $args[0] ) ) {
- echo "Usage: php testCompression.php [--type=<type>] [--start=<start-date>] [--limit=<num-revs>] <page-title>\n";
+if ( !isset( $args[0] ) ) {
+ echo "Usage: php testCompression.php [--type=<type>] [--start=<start-date>] " .
+ "[--limit=<num-revs>] <page-title>\n";
exit( 1 );
}
$this->addOption( 'doshared', 'Also update shared tables' );
$this->addOption( 'nopurge', 'Do not purge the objectcache table after updates' );
$this->addOption( 'noschema', 'Only do the updates that are not done during schema updates' );
- $this->addOption( 'schema', 'Output SQL to do the schema updates instead of doing them. Works even when $wgAllowSchemaUpdates is false', false, true );
+ $this->addOption(
+ 'schema',
+ 'Output SQL to do the schema updates instead of doing them. Works '
+ . 'even when $wgAllowSchemaUpdates is false',
+ false,
+ true
+ );
$this->addOption( 'force', 'Override when $wgAllowSchemaUpdates disables this script' );
}
function getDbType() {
/* If we used the class constant PHP4 would give a parser error here */
- return 2 /* Maintenance::DB_ADMIN */;
+ return 2; /* Maintenance::DB_ADMIN */
}
function compatChecks() {
function execute() {
global $wgVersion, $wgLang, $wgAllowSchemaUpdates;
- if ( !$wgAllowSchemaUpdates && !( $this->hasOption( 'force' ) || $this->hasOption( 'schema' ) || $this->hasOption( 'noschema' ) ) ) {
+ if ( !$wgAllowSchemaUpdates
+ && !( $this->hasOption( 'force' )
+ || $this->hasOption( 'schema' )
+ || $this->hasOption( 'noschema' ) )
+ ) {
$this->error( "Do not run update.php on this wiki. If you're seeing this you should\n"
. "probably ask for some help in performing your schema updates or use\n"
. "the --noschema and --schema options to get an SQL file for someone\n"
$this->output( "Depending on the size of your database this may take a while!\n" );
if ( !$this->hasOption( 'quick' ) ) {
- $this->output( "Abort with control-c in the next five seconds (skip this countdown with --quick) ... " );
+ $this->output( "Abort with control-c in the next five seconds "
+ . "(skip this countdown with --quick) ... " );
wfCountDown( 5 );
}
if ( $this->hasOption( 'update' ) ) {
$this->output( "Updating site statistics table... " );
$dbw = wfGetDB( DB_MASTER );
- $dbw->update( 'site_stats', array( 'ss_good_articles' => $result ), array( 'ss_row_id' => 1 ), __METHOD__ );
+ $dbw->update(
+ 'site_stats',
+ array( 'ss_good_articles' => $result ),
+ array( 'ss_row_id' => 1 ),
+ __METHOD__
+ );
$this->output( "done.\n" );
} else {
- $this->output( "To update the site statistics table, run the script with the --update option.\n" );
+ $this->output( "To update the site statistics table, run the script "
+ . "with the --update option.\n" );
}
}
}
parent::__construct();
$this->mDescription = "Script to normalize double-byte latin UTF-8 characters";
$this->addOption( 'q', 'quiet', false, true );
- $this->addOption( 'l', 'How long the searchindex and revision tables will be locked for', false, true );
+ $this->addOption(
+ 'l',
+ 'How long the searchindex and revision tables will be locked for',
+ false,
+ true
+ );
}
public function getDbType() {
while ( $blockEnd <= $end ) {
$this->output( "...doing page_id from $blockStart to $blockEnd\n" );
$cond = "page_id BETWEEN $blockStart AND $blockEnd AND page_restrictions !=''";
- $res = $db->select( 'page', array( 'page_id', 'page_namespace', 'page_restrictions' ), $cond, __METHOD__ );
+ $res = $db->select(
+ 'page',
+ array( 'page_id', 'page_namespace', 'page_restrictions' ),
+ $cond,
+ __METHOD__
+ );
$batch = array();
foreach ( $res as $row ) {
$oldRestrictions = array();
// Kill any broken rows from previous imports
$db->delete( 'page_restrictions', array( 'pr_level' => '' ) );
// Kill other invalid rows
- $db->deleteJoin( 'page_restrictions', 'page', 'pr_page', 'page_id', array( 'page_namespace' => NS_MEDIAWIKI ) );
+ $db->deleteJoin(
+ 'page_restrictions',
+ 'page',
+ 'pr_page',
+ 'page_id',
+ array( 'page_namespace' => NS_MEDIAWIKI )
+ );
$this->output( "...Done!\n" );
}
}
$this->mDescription = "Script for periodic off-peak updating of the search index";
$this->addOption( 's', 'starting timestamp', false, true );
$this->addOption( 'e', 'Ending timestamp', false, true );
- $this->addOption( 'p', 'File for saving/loading timestamps, searchUpdate.WIKI_ID.pos by default', false, true );
- $this->addOption( 'l', 'How long the searchindex and revision tables will be locked for', false, true );
+ $this->addOption(
+ 'p',
+ 'File for saving/loading timestamps, searchUpdate.WIKI_ID.pos by default',
+ false,
+ true
+ );
+ $this->addOption(
+ 'l',
+ 'How long the searchindex and revision tables will be locked for',
+ false,
+ true
+ );
}
public function getDbType() {
if ( $this->reassigned > 0 ) {
if ( $doDelete ) {
- $this->out( "$this->reassigned duplicate accounts had edits reassigned to a canonical record id.\n" );
+ $this->out( "$this->reassigned duplicate accounts had edits "
+ . "reassigned to a canonical record id.\n" );
} else {
$this->out( "$this->reassigned duplicate accounts need to have edits reassigned.\n" );
}
if ( $this->trimmed > 0 ) {
if ( $doDelete ) {
- $this->out( "$this->trimmed duplicate user records were deleted from " . wfWikiID() . ".\n" );
+ $this->out( "$this->trimmed duplicate user records were deleted from "
+ . wfWikiID() . ".\n" );
} else {
- $this->out( "$this->trimmed duplicate user accounts were found on " . wfWikiID() . " which can be removed safely.\n" );
+ $this->out( "$this->trimmed duplicate user accounts were found on "
+ . wfWikiID() . " which can be removed safely.\n" );
}
}
$userValue = $user->getOption( $this->mAnOption );
if ( $userValue <> $defaultOptions[$this->mAnOption] ) {
+ // @codingStandardsIgnoreStart Ignore silencing errors is discouraged warning
@$ret[$this->mAnOption][$userValue]++;
+ // @codingStandardsIgnoreEnd
}
} else {
foreach ( $defaultOptions as $name => $defaultValue ) {
$userValue = $user->getOption( $name );
if ( $userValue <> $defaultValue ) {
+ // @codingStandardsIgnoreStart Ignore silencing errors is discouraged warning
@$ret[$name][$userValue]++;
+ // @codingStandardsIgnoreEnd
}
}
}
if ( $curValue == $this->mOldValue ) {
if ( !$this->mQuiet ) {
- print "Setting {$this->mAnOption} for $username from '{$this->mOldValue}' to '{$this->mNewValue}'): ";
+ print "Setting {$this->mAnOption} for $username from '{$this->mOldValue}' " .
+ "to '{$this->mNewValue}'): ";
}
// Change value
line-height: 1.4em;
width: auto;
overflow: visible;
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.2);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.2);
box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
background: -ms-linear-gradient(top, #fff 0%, #eee 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #fff 0%, #eee 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.1);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.1);
box-shadow: 0 1px 3px rgba(0,0,0,.1);
}
body .ui-button:active,
body .ui-button:focus {
border-color: #8ad !important;
- -webkit-box-shadow: 0 0 1px 1px rgba(167,215,249,.5);
- -moz-box-shadow: 0 0 1px 1px rgba(167,215,249,.5);
box-shadow: 0 0 1px 1px rgba(167,215,249,.5);
}
body .ui-button:active {
background: -ms-linear-gradient(top, #3c8 0%, #295 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #3c8 0%, #295 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33cc88', endColorstr='#229955', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.3);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.3);
box-shadow: 0 1px 3px rgba(0,0,0,.3);
}
body .ui-button.ui-button-green:hover {
background: -ms-linear-gradient(top, #44d388 0%, #33a055 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #44d388 0%, #33a055 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#44d388', endColorstr='#33a055', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25);
box-shadow: 0 1px 3px rgba(0,0,0,.25);
}
body .ui-button.ui-button-green:active,
body .ui-button.ui-button-green:focus {
border-color: #172 !important;
- -webkit-box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
- -moz-box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
}
body .ui-button.ui-button-green:active {
background: -ms-linear-gradient(top, #48e 0%, #36b 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #48e 0%, #36b 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4488ee', endColorstr='#3366bb', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.35);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.35);
box-shadow: 0 1px 3px rgba(0,0,0,.35);
}
body .ui-button.ui-button-blue:hover {
body .ui-button.ui-button-blue:active,
body .ui-button.ui-button-blue:focus {
border-color: #357 !important;
- -webkit-box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
- -moz-box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
box-shadow: 0 0 2px 2px rgba(167,215,249,.75);
}
body .ui-button.ui-button-blue:active {
background: -ms-linear-gradient(top, #d44 0%, #a22 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #d44 0%, #a22 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dd4444', endColorstr='#aa2222', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.35);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.35);
box-shadow: 0 1px 3px rgba(0,0,0,.35);
}
body .ui-button.ui-button-red:hover {
background: -ms-linear-gradient(top, #ee4646 0%, #b03333 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #ee4646 0%, #b03333 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee4646', endColorstr='#b03333', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.3);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,.3);
box-shadow: 0 1px 3px rgba(0,0,0,.3);
}
body .ui-button.ui-button-red:active,
body .ui-button.ui-button-red:focus {
border-color: #747 !important;
- -webkit-box-shadow: 0 0 2px 2px rgba(167,215,249,.7);
- -moz-box-shadow: 0 0 2px 2px rgba(167,215,249,.7);
box-shadow: 0 0 2px 2px rgba(167,215,249,.7);
}
body .ui-button.ui-button-red:active {
background: -ms-linear-gradient(top, #f6f6f6 0%, #eee 90%) !important; /* IE10+ */
background: linear-gradient(to bottom, #f6f6f6 0%, #eee 90%) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6f6f6', endColorstr='#eeeeee', GradientType=0); /* IE6-8 */
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0);
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,0);
box-shadow: 0 1px 3px rgba(0,0,0,0);
}
body .ui-button-green.disabled .ui-button-text,
border: 1px solid #dcd9d9;
text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
border-radius: 5px;
- -webkit-box-shadow: 0 2px 5px 0 #ccc;
box-shadow: 0 2px 5px 0 #ccc;
-webkit-transition: all 0.25s ease-in-out;
-moz-transition: all 0.25s ease-in-out;
/* mediawiki.notification */
.skin-monobook .mw-notification {
- -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
}
padding: 0.75em 1.5em;
border: solid 1px @content-border-color;
border-radius: 0.75em;
- -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
}
}
//Make 1 page with 1 revision
$page = WikiPage::factory( Title::newFromText( 'UTPage' ) );
- if ( !$page->getId() == 0 ) {
+ if ( $page->getId() == 0 ) {
$page->doEditContent(
new WikitextContent( 'UTContent' ),
'UTPageSummary',
public function testHasMessage() {
$status = new Status();
$status->fatal( 'bad' );
+ $status->fatal( wfMessage( 'bad-msg' ) );
$this->assertTrue( $status->hasMessage( 'bad' ) );
+ $this->assertTrue( $status->hasMessage( 'bad-msg' ) );
+ $this->assertTrue( $status->hasMessage( wfMessage( 'bad-msg' ) ) );
$this->assertFalse( $status->hasMessage( 'good' ) );
}
/**
* @covers SpecialSearch::load
* @dataProvider provideSearchOptionsTests
- * @param array $requested Request parameters. For example array( '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.
+ * @param array $requested Request parameters. For example array( '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.
* @param string $expectedProfile An expected search profile name
* @param array $expectedNs Expected namespaces
*/
*
* @param string $name The name of the element to check for
* (e.g.: "mediawiki" for <mediawiki>...</mediawiki>)
- * @param string|false $text If string, check if it equals the elements text.
+ * @param string|bool $text If string, check if it equals the elements text.
* If false, ignore the element's text
* @param bool $skip_ws (optional) if true, skip past white spaces that trail the
* closing element.
}
wfLogProfilingData();
+// Commit and close up!
+$factory = wfGetLBFactory();
+$factory->commitMasterChanges();
+$factory->shutdown();
//--------------------------------------------------------------------------