to be set. If they are both set, the value of rootpage= will be ignored.
* prop=revision output in enum mode is now sorted by timestamp rather than
revision ID. This usually won't make any difference.
+* (T102645) Namespace list from meta=siteinfo&siprop=namespaces is now an array
+ with formatversion=2.
+* Various other output from meta=siteinfo will now always be arrays instead of
+ sometimes being numerically-indexed objects with formatversion=2.
+* When errors about users being blocked are returned, they now include
+ information about the relevant block.
=== Action API internal changes in 1.26 ===
* wfSuppressWarnings() and wfRestoreWarnings() were split into a separate library,
mediawiki/at-ease, and are now deprecated. Callers should use
MediaWiki\suppressWarnings() and MediaWiki\restoreWarnings() directly.
+* The Block class constructor now takes an associative array of parameters
+ instead of many optional positional arguments. Calling the constructor the old
+ way will issue a deprecation warning.
+* The jquery.mwExtension module was deprecated.
== Compatibility ==
'HTMLFileCache' => __DIR__ . '/includes/cache/HTMLFileCache.php',
'HTMLFloatField' => __DIR__ . '/includes/htmlform/HTMLFloatField.php',
'HTMLForm' => __DIR__ . '/includes/htmlform/HTMLForm.php',
+ 'HTMLFormFieldWithButton' => __DIR__ . '/includes/htmlform/HTMLFormFieldWithButton.php',
'HTMLFormField' => __DIR__ . '/includes/htmlform/HTMLFormField.php',
'HTMLFormFieldCloner' => __DIR__ . '/includes/htmlform/HTMLFormFieldCloner.php',
'HTMLFormFieldRequiredOptionsException' => __DIR__ . '/includes/htmlform/HTMLFormFieldRequiredOptionsException.php',
'HTMLSelectField' => __DIR__ . '/includes/htmlform/HTMLSelectField.php',
'HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/HTMLSelectLimitField.php',
'HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/HTMLSelectNamespace.php',
+ 'HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/HTMLSelectNamespaceWithButton.php',
'HTMLSelectOrOtherField' => __DIR__ . '/includes/htmlform/HTMLSelectOrOtherField.php',
'HTMLSubmitField' => __DIR__ . '/includes/htmlform/HTMLSubmitField.php',
'HTMLTagFilter' => __DIR__ . '/includes/htmlform/HTMLTagFilter.php',
'HTMLTextAreaField' => __DIR__ . '/includes/htmlform/HTMLTextAreaField.php',
'HTMLTextField' => __DIR__ . '/includes/htmlform/HTMLTextField.php',
+ 'HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/HTMLTextFieldWithButton.php',
'HWLDFWordAccumulator' => __DIR__ . '/includes/diff/DairikiDiff.php',
'HashBagOStuff' => __DIR__ . '/includes/libs/objectcache/HashBagOStuff.php',
'HashConfig' => __DIR__ . '/includes/config/HashConfig.php',
"leafo/lessphp": "0.5.0",
"liuggio/statsd-php-client": "1.0.12",
"mediawiki/at-ease": "1.0.0",
- "oojs/oojs-ui": "0.11.4",
+ "oojs/oojs-ui": "0.11.5",
"php": ">=5.3.3",
"psr/log": "1.0.0",
"wikimedia/cdb": "1.0.1",
<?php
-die("Not a valid entry point\n");
+die( "Not a valid entry point\n" );
/**
* This file does not hold any code. It is only there so we can generate
* the doxygen documentation main page.
$result = call_user_func_array( $this->func_name, $this->args );
if ( $result === false || $result === null ) {
- wfDebug( __METHOD__ . ' ERROR while dispatching '
- . $this->func_name . "(" . var_export( $this->args, true ) . "): "
- . "no data returned\n" );
+ wfDebug( __METHOD__ . ' ERROR while dispatching ' .
+ $this->func_name . "(" . var_export( $this->args, true ) . "): " .
+ "no data returned\n" );
wfHttpError( 500, 'Internal Error',
"{$this->func_name} returned no data" );
wfDebug( __METHOD__ . ' dispatch complete for ' . $this->func_name . "\n" );
}
} catch ( Exception $e ) {
- wfDebug( __METHOD__ . ' ERROR while dispatching '
- . $this->func_name . "(" . var_export( $this->args, true ) . "): "
- . get_class( $e ) . ": " . $e->getMessage() . "\n" );
+ wfDebug( __METHOD__ . ' ERROR while dispatching ' .
+ $this->func_name . "(" . var_export( $this->args, true ) . "): " .
+ get_class( $e ) . ": " . $e->getMessage() . "\n" );
if ( !headers_sent() ) {
wfHttpError( 500, 'Internal Error',
HttpStatus::header( $n );
}
- header ( "Content-Type: " . $this->mContentType );
+ header( "Content-Type: " . $this->mContentType );
if ( $this->mLastModified ) {
- header ( "Last-Modified: " . $this->mLastModified );
+ header( "Last-Modified: " . $this->mLastModified );
} else {
- header ( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
+ header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
}
if ( $this->mCacheDuration ) {
} else {
# Let the client do the caching. Cache is not purged.
- header ( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $this->mCacheDuration ) . " GMT" );
- header ( "Cache-Control: s-maxage={$this->mCacheDuration}," .
+ header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $this->mCacheDuration ) . " GMT" );
+ header( "Cache-Control: s-maxage={$this->mCacheDuration}," .
"public,max-age={$this->mCacheDuration}" );
}
} else {
# always expired, always modified
- header ( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); // Date in the past
- header ( "Cache-Control: no-cache, must-revalidate" ); // HTTP/1.1
- header ( "Pragma: no-cache" ); // HTTP/1.0
+ header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); // Date in the past
+ header( "Cache-Control: no-cache, must-revalidate" ); // HTTP/1.1
+ header( "Pragma: no-cache" ); // HTTP/1.0
}
if ( $this->mVary ) {
- header ( "Vary: " . $this->mVary );
+ header( "Vary: " . $this->mVary );
}
}
/** @var string */
public $mReason;
- /** @var bool|string */
+ /** @var string */
public $mTimestamp;
- /** @var int */
+ /** @var bool */
public $mAuto;
- /** @var bool|string */
+ /** @var string */
public $mExpiry;
+ /** @var bool */
public $mHideName;
/** @var int */
protected $blocker;
/** @var bool */
- protected $isHardblock = true;
+ protected $isHardblock;
/** @var bool */
- protected $isAutoblocking = true;
+ protected $isAutoblocking;
# TYPE constants
const TYPE_USER = 1;
const TYPE_ID = 5;
/**
- * @todo FIXME: Don't know what the best format to have for this constructor
- * is, but fourteen optional parameters certainly isn't it.
- * @param string $address
- * @param int $user
- * @param int $by
- * @param string $reason
- * @param mixed $timestamp
- * @param int $auto
- * @param string $expiry
- * @param int $anonOnly
- * @param int $createAccount
- * @param int $enableAutoblock
- * @param int $hideName
- * @param int $blockEmail
- * @param int $allowUsertalk
- * @param string $byText
+ * Create a new block with specified parameters on a user, IP or IP range.
+ *
+ * @param array $options Parameters of the block:
+ * address string|User Target user name, User object, IP address or IP range
+ * user int Override target user ID (for foreign users)
+ * by int User ID of the blocker
+ * reason string Reason of the block
+ * timestamp string The time at which the block comes into effect
+ * auto bool Is this an automatic block?
+ * expiry string Timestamp of expiration of the block or 'infinity'
+ * anonOnly bool Only disallow anonymous actions
+ * createAccount bool Disallow creation of new accounts
+ * enableAutoblock bool Enable automatic blocking
+ * hideName bool Hide the target user name
+ * blockEmail bool Disallow sending emails
+ * allowUsertalk bool Allow the target to edit its own talk page
+ * byText string Username of the blocker (for foreign users)
+ *
+ * @since 1.26 accepts $options array instead of individual parameters; order
+ * of parameters above reflects the original order
*/
- function __construct( $address = '', $user = 0, $by = 0, $reason = '',
- $timestamp = 0, $auto = 0, $expiry = '', $anonOnly = 0, $createAccount = 0, $enableAutoblock = 0,
- $hideName = 0, $blockEmail = 0, $allowUsertalk = 0, $byText = ''
- ) {
- if ( $timestamp === 0 ) {
- $timestamp = wfTimestampNow();
- }
+ function __construct( $options = array() ) {
+ $defaults = array(
+ 'address' => '',
+ 'user' => null,
+ 'by' => null,
+ 'reason' => '',
+ 'timestamp' => '',
+ 'auto' => false,
+ 'expiry' => '',
+ 'anonOnly' => false,
+ 'createAccount' => false,
+ 'enableAutoblock' => false,
+ 'hideName' => false,
+ 'blockEmail' => false,
+ 'allowUsertalk' => false,
+ 'byText' => '',
+ );
- if ( count( func_get_args() ) > 0 ) {
- # Soon... :D
- # wfDeprecated( __METHOD__ . " with arguments" );
+ if ( func_num_args() > 1 || !is_array( $options ) ) {
+ $options = array_combine(
+ array_slice( array_keys( $defaults ), 0, func_num_args() ),
+ func_get_args()
+ );
+ wfDeprecated( __METHOD__ . ' with multiple arguments', '1.26' );
}
- $this->setTarget( $address );
- if ( $this->target instanceof User && $user ) {
- $this->forcedTargetID = $user; // needed for foreign users
+ $options += $defaults;
+
+ $this->setTarget( $options['address'] );
+
+ if ( $this->target instanceof User && $options['user'] ) {
+ # Needed for foreign users
+ $this->forcedTargetID = $options['user'];
}
- if ( $by ) { // local user
- $this->setBlocker( User::newFromId( $by ) );
- } else { // foreign user
- $this->setBlocker( $byText );
+
+ if ( $options['by'] ) {
+ # Local user
+ $this->setBlocker( User::newFromID( $options['by'] ) );
+ } else {
+ # Foreign user
+ $this->setBlocker( $options['byText'] );
}
- $this->mReason = $reason;
- $this->mTimestamp = wfTimestamp( TS_MW, $timestamp );
- $this->mAuto = $auto;
- $this->isHardblock( !$anonOnly );
- $this->prevents( 'createaccount', $createAccount );
- $this->mExpiry = wfGetDB( DB_SLAVE )->decodeExpiry( $expiry );
- $this->isAutoblocking( $enableAutoblock );
- $this->mHideName = $hideName;
- $this->prevents( 'sendemail', $blockEmail );
- $this->prevents( 'editownusertalk', !$allowUsertalk );
+
+ $this->mReason = $options['reason'];
+ $this->mTimestamp = wfTimestamp( TS_MW, $options['timestamp'] );
+ $this->mExpiry = wfGetDB( DB_SLAVE )->decodeExpiry( $options['expiry'] );
+
+ # Boolean settings
+ $this->mAuto = (bool)$options['auto'];
+ $this->mHideName = (bool)$options['hideName'];
+ $this->isHardblock( !$options['anonOnly'] );
+ $this->isAutoblocking( (bool)$options['enableAutoblock'] );
+
+ # Prevention measures
+ $this->prevents( 'sendemail', (bool)$options['blockEmail'] );
+ $this->prevents( 'editownusertalk', !$options['allowUsertalk'] );
+ $this->prevents( 'createaccount', (bool)$options['createAccount'] );
$this->mFromMaster = false;
}
$blocks = array();
foreach ( $rows as $row ) {
$block = self::newFromRow( $row );
- if ( !$block->deleteIfExpired() ) {
+ if ( !$block->deleteIfExpired() ) {
$blocks[] = $block;
}
}
'category' => array( 'LEFT JOIN', array(
'cat_title = page_title',
'page_namespace' => NS_CATEGORY
- ))
+ ) )
)
);
*
* These settings describe a foreign MediaWiki installation. They are optional, and will be ignored
* for local repositories:
- * - descBaseUrl URL of image description pages, e.g. http://en.wikipedia.org/wiki/File:
+ * - descBaseUrl URL of image description pages, e.g. https://en.wikipedia.org/wiki/File:
* - scriptDirUrl URL of the MediaWiki installation, equivalent to $wgScriptPath, e.g.
- * http://en.wikipedia.org/w
+ * https://en.wikipedia.org/w
* - scriptExtension Script extension of the MediaWiki installation, equivalent to
* $wgScriptExtension, e.g. .php5 defaults to .php
*
- * - articleUrl Equivalent to $wgArticlePath, e.g. http://en.wikipedia.org/wiki/$1
+ * - articleUrl Equivalent to $wgArticlePath, e.g. https://en.wikipedia.org/wiki/$1
* - fetchDescription Fetch the text of the remote file description page. Equivalent to
* $wgFetchCommonsDescriptions.
* - abbrvThreshold File names over this size will use the short form of thumbnail names.
*
* @par Example:
* @code
- * $wgUploadNavigationUrl = 'http://commons.wikimedia.org/wiki/Special:Upload';
+ * $wgUploadNavigationUrl = 'https://commons.wikimedia.org/wiki/Special:Upload';
* @endcode
*/
$wgUploadNavigationUrl = false;
*
* Please specify the namespace, as in the example below.
*/
-$wgRepositoryBaseUrl = "http://commons.wikimedia.org/wiki/File:";
+$wgRepositoryBaseUrl = "https://commons.wikimedia.org/wiki/File:";
/**
* This is the list of preferred extensions for uploading files. Uploading files
* - Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
* - [...]
*
- * @link http://en.wikipedia.org/w/index.php?diff=12356041&oldid=12355864
- * @link http://en.wikipedia.org/wiki/Template%3AOS9
+ * @link https://en.wikipedia.org/w/index.php?diff=12356041&oldid=12355864
+ * @link https://en.wikipedia.org/wiki/Template%3AOS9
*/
'/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/',
/**
* Google wireless transcoder, seems to eat a lot of chars alive
- * http://it.wikipedia.org/w/index.php?title=Luciano_Ligabue&diff=prev&oldid=8857361
+ * https://it.wikipedia.org/w/index.php?title=Luciano_Ligabue&diff=prev&oldid=8857361
*/
'/^Mozilla\/4\.0 \(compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;\)/'
);
/**
* This is to let user authenticate using https when they come from http.
* Based on an idea by George Herbert on wikitech-l:
- * http://lists.wikimedia.org/pipermail/wikitech-l/2010-October/050039.html
+ * https://lists.wikimedia.org/pipermail/wikitech-l/2010-October/050039.html
* @since 1.17
*/
$wgSecureLogin = false;
* There's no administrator override on-wiki, so be careful what you set. :)
* May be an array of regexes or a single string for backwards compatibility.
*
- * @see http://en.wikipedia.org/wiki/Regular_expression
+ * @see https://en.wikipedia.org/wiki/Regular_expression
*
* @note Each regex needs a beginning/end delimiter, eg: # or /
*/
*
* The host should be running a daemon which can be obtained from MediaWiki
* Git at:
- * http://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile
+ * https://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile
*
* @deprecated set $wgProfiler['udphost'] instead
*/
$undo = $wgRequest->getInt( 'undo' );
if ( $undo > 0 && $undoafter > 0 ) {
-
$undorev = Revision::newFromId( $undo );
$oldrev = Revision::newFromId( $undoafter );
# Otherwise, $content will be left as-is.
if ( !is_null( $undorev ) && !is_null( $oldrev ) &&
!$undorev->isDeleted( Revision::DELETED_TEXT ) &&
- !$oldrev->isDeleted( Revision::DELETED_TEXT ) ) {
-
+ !$oldrev->isDeleted( Revision::DELETED_TEXT )
+ ) {
$content = $this->mArticle->getUndoContent( $undorev, $oldrev );
if ( $content === false ) {
if ( !$converted ) {
//TODO: somehow show a warning to the user!
- wfDebug( "Attempt to preload incompatible content: "
- . "can't convert " . $content->getModel()
- . " to " . $handler->getModelID() );
+ wfDebug( "Attempt to preload incompatible content: " .
+ "can't convert " . $content->getModel() .
+ " to " . $handler->getModelID() );
return $handler->makeEmptyContent();
}
}
if ( in_array( 'escape', $options, true ) ) {
- $string = htmlspecialchars ( $string );
+ $string = htmlspecialchars( $string );
} elseif ( in_array( 'escapenoentities', $options, true ) ) {
$string = Sanitizer::escapeHtmlAllowEntities( $string );
}
$useLogPipe = false;
if ( is_executable( '/bin/bash' ) ) {
- $time = intval ( isset( $limits['time'] ) ? $limits['time'] : $wgMaxShellTime );
+ $time = intval( isset( $limits['time'] ) ? $limits['time'] : $wgMaxShellTime );
if ( isset( $limits['walltime'] ) ) {
$wallTime = intval( $limits['walltime'] );
} elseif ( isset( $limits['time'] ) ) {
} else {
$wallTime = intval( $wgMaxShellWallClockTime );
}
- $mem = intval ( isset( $limits['memory'] ) ? $limits['memory'] : $wgMaxShellMemory );
- $filesize = intval ( isset( $limits['filesize'] ) ? $limits['filesize'] : $wgMaxShellFileSize );
+ $mem = intval( isset( $limits['memory'] ) ? $limits['memory'] : $wgMaxShellMemory );
+ $filesize = intval( isset( $limits['filesize'] ) ? $limits['filesize'] : $wgMaxShellFileSize );
if ( $time > 0 || $mem > 0 || $filesize > 0 || $wallTime > 0 ) {
$cmd = '/bin/bash ' . escapeshellarg( "$IP/includes/limit.sh" ) . ' ' .
$countKey = 'title_' . $title->getPrefixedText();
$countable = $page->isCountable( $editInfo );
if ( array_key_exists( $countKey, $this->countableCache ) &&
- $countable != $this->countableCache[ $countKey ] ) {
+ $countable != $this->countableCache[$countKey] ) {
DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array(
- 'articles' => ( (int)$countable - (int)$this->countableCache[ $countKey ] )
+ 'articles' => ( (int)$countable - (int)$this->countableCache[$countKey] )
) ) );
}
}
$tag = $this->reader->localName;
if ( $tag == 'namespace' ) {
- $this->foreignNamespaces[ $this->nodeAttribute( 'key' ) ] =
+ $this->foreignNamespaces[$this->nodeAttribute( 'key' )] =
$this->nodeContents();
} elseif ( in_array( $tag, $normalFields ) ) {
$siteInfo[$tag] = $this->nodeContents();
/**
* Guess the MIME type from the file contents.
*
+ * @todo Remove $ext param
+ *
* @param string $file
* @param mixed $ext
* @return bool|string
* @throws MWException
*/
- private function doGuessMimeType( $file, $ext ) { // TODO: remove $ext param
+ private function doGuessMimeType( $file, $ext ) {
// Read a chunk of the file
MediaWiki\suppressWarnings();
$f = fopen( $file, 'rb' );
$module = $resourceLoader->getModule( $val );
if ( $module instanceof ResourceLoaderModule && $module->isPositionDefault() ) {
- $warning = __METHOD__ . ': style module should define its position explicitly: ' . $val . ' ' . get_class( $module );
+ $warning = __METHOD__ . ': style module should define its position explicitly: ' .
+ $val . ' ' . get_class( $module );
wfDebugLog( 'resourceloader', $warning );
wfLogWarning( $warning );
}
if ( $this->mArticleBodyOnly ) {
echo $this->mBodytext;
} else {
-
$sk = $this->getSkin();
// add skin specific modules
$modules = $sk->getDefaultModules();
}
# Max is +14:00 and min is -12:00, see:
- # http://en.wikipedia.org/wiki/Timezone
+ # https://en.wikipedia.org/wiki/Timezone
$minDiff = min( $minDiff, 840 ); # 14:00
$minDiff = max( $minDiff, - 720 ); # -12:00
return 'Offset|' . $minDiff;
if ( !isset( $attribs['title'] )
&& isset( $row->ar_namespace )
- && isset( $row->ar_title ) ) {
-
+ && isset( $row->ar_title )
+ ) {
$attribs['title'] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
}
// are changed (like in the screwed up test system) we will re-initialise the settings.
$globalContext = implode( '-', compact( 'wgAllowMicrodataAttributes', 'wgAllowImageTag' ) );
if ( !$staticInitialised || $staticInitialised != $globalContext ) {
-
$htmlpairsStatic = array( # Tags that must be closed
'b', 'bdi', 'del', 'i', 'ins', 'u', 'font', 'big', 'small', 'sub', 'sup', 'h1',
'h2', 'h3', 'h4', 'h5', 'h6', 'cite', 'code', 'em', 's',
$wgForeignFileRepos[] = array(
'class' => 'ForeignAPIRepo',
'name' => 'wikimediacommons',
- 'apibase' => WebRequest::detectProtocol() === 'https' ?
- 'https://commons.wikimedia.org/w/api.php' :
- 'http://commons.wikimedia.org/w/api.php',
+ 'apibase' => 'https://commons.wikimedia.org/w/api.php',
'hashLevels' => 2,
'fetchDescription' => true,
'descriptionCacheExpiry' => 43200,
// Default value is 2000 or the suhosin limit if it is between 1 and 2000
if ( $wgResourceLoaderMaxQueryLength === false ) {
- $suhosinMaxValueLength = (int) ini_get( 'suhosin.get.max_value_length' );
+ $suhosinMaxValueLength = (int)ini_get( 'suhosin.get.max_value_length' );
if ( $suhosinMaxValueLength > 0 && $suhosinMaxValueLength < 2000 ) {
$wgResourceLoaderMaxQueryLength = $suhosinMaxValueLength;
} else {
$wgResourceLoaderMaxQueryLength = 2000;
}
- unset($suhosinMaxValueLength);
+ unset( $suhosinMaxValueLength );
}
/**
}
// Blacklisted file extensions shouldn't appear on the "allowed" list
-$wgFileExtensions = array_values( array_diff ( $wgFileExtensions, $wgFileBlacklist ) );
+$wgFileExtensions = array_values( array_diff( $wgFileExtensions, $wgFileBlacklist ) );
if ( $wgInvalidateCacheOnLocalSettingsChange ) {
MediaWiki\suppressWarnings();
) {
if ( !is_array( $info ) ) {
if ( $sendErrors ) {
- HttpStatus::header( 404 );
+ HttpStatus::header( 404 );
header( 'Cache-Control: no-cache' );
header( 'Content-Type: text/html; charset=utf-8' );
$encFile = htmlspecialchars( $path );
if ( !is_callable( $renderer ) ) {
throw new RuntimeException( "Requested template, {$templateName}, is not callable" );
}
- return $this->renderers[$templateName] = $renderer;
+ $this->renderers[$templateName] = $renderer;
+ return $renderer;
}
/**
*
* @param integer $flags User::READ_* constant bitfield
*/
- public function load( $flags = self::READ_LATEST ) {
+ public function load( $flags = self::READ_NORMAL ) {
if ( $this->mLoadedItems === true ) {
return;
}
$this->loadDefaults();
break;
case 'name':
- // @TODO: this gets the ID from a slave, assuming renames
- // are rare. This should be controllable and more consistent.
- $this->mId = self::idFromName( $this->mName );
+ // Make sure this thread sees its own changes
+ if ( wfGetLB()->hasOrMadeRecentMasterChanges() ) {
+ $flags |= self::READ_LATEST;
+ $this->queryFlagsUsed = $flags;
+ }
+
+ $this->mId = self::idFromName( $this->mName, $flags );
if ( !$this->mId ) {
// Nonexistent user placeholder object
$this->loadDefaults( $this->mName );
return false;
}
- // Try cache
- $cache = $this->loadFromCache();
- if ( !$cache ) {
+ // Try cache (unless this needs to lock the DB).
+ // NOTE: if this thread called saveSettings(), the cache was cleared.
+ if ( ( $flags & self::READ_LOCKING ) || !$this->loadFromCache() ) {
wfDebug( "User: cache miss for user {$this->mId}\n" );
- // Load from DB
+ // Load from DB (make sure this thread sees its own changes)
+ if ( wfGetLB()->hasOrMadeRecentMasterChanges() ) {
+ $flags |= self::READ_LATEST;
+ }
if ( !$this->loadFromDatabase( $flags ) ) {
// Can't load from ID, user is anonymous
return false;
}
- if ( $flags & self::READ_LATEST ) {
- // Only save master data back to the cache to keep it consistent.
- // @TODO: save it anyway and have callers specifiy $flags and have
- // load() called as needed. That requires updating MANY callers...
- $this->saveToCache();
- }
+ $this->saveToCache();
}
$this->mLoadedItems = true;
return false;
}
- $cache = ObjectCache::getMainWANInstance();
$key = wfMemcKey( 'user', 'id', $this->mId );
- $data = $cache->get( $key );
+ $data = ObjectCache::getMainWANInstance()->get( $key );
if ( !is_array( $data ) || $data['mVersion'] < self::VERSION ) {
// Object is expired
return false;
return;
}
- $cache = ObjectCache::getMainWANInstance();
-
- // The cache needs good consistency due to its high TTL, so the user
- // should have been loaded from the master to avoid lag amplification.
- if ( !( $this->queryFlagsUsed & self::READ_LATEST ) ) {
- wfWarn( "Cannot cache slave-loaded User object with ID '{$this->mId}'." );
- return;
- }
-
$data = array();
foreach ( self::$mCacheVars as $name ) {
$data[$name] = $this->$name;
$data['mVersion'] = self::VERSION;
$key = wfMemcKey( 'user', 'id', $this->mId );
- $cache->set( $key, $data );
+ ObjectCache::getMainWANInstance()->set( $key, $data, 3600 );
}
/** @name newFrom*() static factory methods */
/**
* Get database id given a user name
* @param string $name Username
+ * @param integer $flags User::READ_* constant bitfield
* @return int|null The corresponding user's ID, or null if user is nonexistent
*/
- public static function idFromName( $name ) {
+ public static function idFromName( $name, $flags = self::READ_NORMAL ) {
$nt = Title::makeTitleSafe( NS_USER, $name );
if ( is_null( $nt ) ) {
// Illegal name
return self::$idCacheByName[$name];
}
- $dbr = wfGetDB( DB_SLAVE );
- $s = $dbr->selectRow(
+ $db = ( $flags & self::READ_LATEST )
+ ? wfGetDB( DB_MASTER )
+ : wfGetDB( DB_SLAVE );
+
+ $s = $db->selectRow(
'user',
array( 'user_id' ),
array( 'user_name' => $nt->getText() ),
}
$proposedUser = User::newFromId( $sId );
- $proposedUser->load( self::READ_LATEST );
if ( !$proposedUser->isLoggedIn() ) {
// Not a valid ID
return false;
if ( $this->mId ) {
if ( $this->mQuickTouched === null ) {
- $cache = ObjectCache::getMainWANInstance();
$key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
- $timestamp = $cache->getCheckKeyTime( $key );
+ $timestamp = ObjectCache::getMainWANInstance()->getCheckKeyTime( $key );
if ( $timestamp ) {
$this->mQuickTouched = wfTimestamp( TS_MW, (int)$timestamp );
} else {
return; // anon
}
- // This method is for updating existing users, so the user should
- // have been loaded from the master to begin with to avoid problems.
- if ( !( $this->queryFlagsUsed & self::READ_LATEST ) ) {
- wfWarn( "Attempting to save slave-loaded User object with ID '{$this->mId}'." );
- }
-
// Get a new user_touched that is higher than the old one.
// This will be used for a CAS check as a last-resort safety
// check against race conditions and slave lag.
// Maybe the problem was a missed cache update; clear it to be safe
$this->clearSharedCache();
// User was changed in the meantime or loaded with stale data
+ $from = ( $this->queryFlagsUsed & self::READ_LATEST ) ? 'master' : 'slave';
MWExceptionHandler::logException( new MWException(
- "CAS update failed on user_touched for user ID '{$this->mId}';" .
+ "CAS update failed on user_touched for user ID '{$this->mId}' (read from $from);" .
"the version of the user to be saved is older than the current version."
) );
// This shouldn't happen!
throw new MWException( "Web server doesn't provide either " .
"REQUEST_URI, HTTP_X_ORIGINAL_URL or SCRIPT_NAME. Report details " .
- "of your web server configuration to http://bugzilla.wikimedia.org/" );
+ "of your web server configuration to https://phabricator.wikimedia.org/" );
}
// User-agents should not send a fragment with the URI, but
// if they do, and the web server passes it on to us, we
*
* @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
+ * @return int[] First element is limit, second is offset
*/
public function getLimitOffset( $deflimit = 50, $optionname = 'rclimit' ) {
global $wgUser;
}
public function show() {
-
$this->page->unprotect();
}
}
*/
protected function validateLimit( $paramName, &$value, $min, $max, $botMax = null, $enforceLimits = false ) {
if ( !is_null( $min ) && $value < $min ) {
-
$msg = $this->encodeParamName( $paramName ) . " may not be less than $min (set to $value)";
$this->warnOrDie( $msg, $enforceLimits );
$value = $min;
wfDeprecated( __METHOD__, '1.25' );
$params = $this->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
if ( $params ) {
-
$paramsDescription = $this->getFinalParamDescription();
$msg = '';
$paramPrefix = "\n" . str_repeat( ' ', 24 );
if ( $user->isBlocked() ) {
$status = SpecialBlock::checkUnblockSelf( $params['user'], $user );
if ( $status !== true ) {
- $this->dieUsageMsg( array( $status ) );
+ $msg = $this->parseMsg( $status );
+ $this->dieUsage(
+ $msg['info'],
+ $msg['code'],
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $user->getBlock() ) )
+ );
}
}
);
}
if ( $this->getUser()->isBlockedFromCreateAccount() ) {
- $this->dieUsage( 'You cannot create a new account because you are blocked', 'blocked' );
+ $this->dieUsage(
+ 'You cannot create a new account because you are blocked',
+ 'blocked',
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $this->getUser()->getBlock() ) )
+ );
}
$params = $this->extractRequestParams();
$errors = array_merge( $errors, $titleObj->getUserPermissionsErrors( 'create', $user ) );
}
if ( count( $errors ) ) {
- $this->dieUsageMsg( $errors[0] );
+ if ( is_array( $errors[0] ) ) {
+ switch ( $errors[0][0] ) {
+ case 'blockedtext':
+ $this->dieUsage(
+ 'You have been blocked from editing',
+ 'blocked',
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $user->getBlock() ) )
+ );
+ break;
+ case 'autoblockedtext':
+ $this->dieUsage(
+ 'Your IP address has been blocked automatically, because it was used by a blocked user',
+ 'autoblocked',
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $user->getBlock() ) )
+ );
+ break;
+ default:
+ $this->dieUsageMsg( $errors[0] );
+ }
+ } else {
+ $this->dieUsageMsg( $errors[0] );
+ }
}
$toMD5 = $params['text'];
$titleObj->getNextRevisionID( $undoafterRev->getID() ) == $params['undo']
) {
$params['summary'] = wfMessage( 'undo-summary' )
- ->params ( $params['undo'], $undoRev->getUserText() )->inContentLanguage()->text();
+ ->params( $params['undo'], $undoRev->getUserText() )->inContentLanguage()->text();
}
}
$this->dieUsageMsg( array( 'spamdetected', $result['spam'] ) );
case EditPage::AS_BLOCKED_PAGE_FOR_USER:
- $this->dieUsageMsg( 'blockedtext' );
+ $this->dieUsage(
+ 'You have been blocked from editing',
+ 'blocked',
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $user->getBlock() ) )
+ );
case EditPage::AS_MAX_ARTICLE_SIZE_EXCEEDED:
case EditPage::AS_CONTENT_TOO_BIG:
!isset( $prop['jsconfigvars'] ) && !isset( $prop['encodedjsconfigvars'] ) ) {
$this->setWarning( "Property 'modules' was set but not 'jsconfigvars' " .
"or 'encodedjsconfigvars'. Configuration variables are necessary " .
- "for proper module usage.");
+ "for proper module usage." );
}
}
}
'Custom' => function ( &$data, &$metadata ) {
if ( isset( $metadata[ApiResult::META_TYPE] ) ) {
// We want to use non-BC for BCassoc to force outputting of _idx.
- switch( $metadata[ApiResult::META_TYPE] ) {
+ switch ( $metadata[ApiResult::META_TYPE] ) {
case 'BCassoc':
$metadata[ApiResult::META_TYPE] = 'assoc';
break;
case LoginForm::CREATE_BLOCKED:
$result['result'] = 'CreateBlocked';
$result['details'] = 'Your IP address is blocked from account creation';
+ $result = array_merge(
+ $result,
+ ApiQueryUserInfo::getBlockInfo( $context->getUser()->getBlock() )
+ );
break;
case LoginForm::THROTTLED:
case LoginForm::USER_BLOCKED:
$result['result'] = 'Blocked';
+ $result = array_merge(
+ $result,
+ ApiQueryUserInfo::getBlockInfo( User::newFromName( $params['name'] )->getBlock() )
+ );
break;
case LoginForm::ABORTED:
? '' : ( $module->getModulePath() . '+' );
$item['submodules'] = array();
foreach ( $item['type'] as $v ) {
- $item['submodules'][$v] = $prefix.$v;
+ $item['submodules'][$v] = $prefix . $v;
}
}
if ( isset( $settings[ApiBase::PARAM_SUBMODULE_PARAM_PREFIX] ) ) {
!isset( $prop['jsconfigvars'] ) && !isset( $prop['encodedjsconfigvars'] ) ) {
$this->setWarning( "Property 'modules' was set but not 'jsconfigvars' " .
"or 'encodedjsconfigvars'. Configuration variables are necessary " .
- "for proper module usage.");
+ "for proper module usage." );
}
if ( isset( $prop['indicators'] ) ) {
// Add item to results and see whether it fits
$fit = $apiResult->addValue(
- array( 'query', 'interwiki' . $this->getModuleName(), $result->getInterwikiPrefix() ),
+ array( 'query', 'interwiki' . $this->getModuleName(), $result->getInterwikiPrefix() ),
null,
$vals
);
}
}
+ ApiResult::setArrayType( $data, 'BCarray' );
ApiResult::setIndexedTagName( $data, 'ns' );
return $this->getResult()->addValue( 'query', $property, $data );
$groups = array_intersect( $rights[$group], $allGroups );
if ( $groups ) {
$arr[$type] = $groups;
+ ApiResult::setArrayType( $arr[$type], 'BCarray' );
ApiResult::setIndexedTagName( $arr[$type], 'group' );
}
}
'semiprotectedlevels' => $config->get( 'SemiprotectedRestrictionLevels' ),
);
+ ApiResult::setArrayType( $data['types'], 'BCarray' );
+ ApiResult::setArrayType( $data['levels'], 'BCarray' );
+ ApiResult::setArrayType( $data['cascadinglevels'], 'BCarray' );
+ ApiResult::setArrayType( $data['semiprotectedlevels'], 'BCarray' );
+
ApiResult::setIndexedTagName( $data['types'], 'type' );
ApiResult::setIndexedTagName( $data['levels'], 'level' );
ApiResult::setIndexedTagName( $data['cascadinglevels'], 'level' );
global $wgParser;
$wgParser->firstCallInit();
$tags = array_map( array( $this, 'formatParserTags' ), $wgParser->getTags() );
+ ApiResult::setArrayType( $tags, 'BCarray' );
ApiResult::setIndexedTagName( $tags, 't' );
return $this->getResult()->addValue( 'query', $property, $tags );
global $wgParser;
$wgParser->firstCallInit();
$hooks = $wgParser->getFunctionHooks();
+ ApiResult::setArrayType( $hooks, 'BCarray' );
ApiResult::setIndexedTagName( $hooks, 'h' );
return $this->getResult()->addValue( 'query', $property, $hooks );
public function appendVariables( $property ) {
$variables = MagicWord::getVariableIDs();
+ ApiResult::setArrayType( $variables, 'BCarray' );
ApiResult::setIndexedTagName( $variables, 'v' );
return $this->getResult()->addValue( 'query', $property, $variables );
public function appendProtocols( $property ) {
// Make a copy of the global so we don't try to set the _element key of it - bug 45130
$protocols = array_values( $this->getConfig()->get( 'UrlProtocols' ) );
+ ApiResult::setArrayType( $protocols, 'BCarray' );
ApiResult::setIndexedTagName( $protocols, 'p' );
return $this->getResult()->addValue( 'query', $property, $protocols );
'subscribers' => array_map( array( 'SpecialVersion', 'arrayToString' ), $subscribers ),
);
+ ApiResult::setArrayType( $arr['subscribers'], 'BCarray' );
ApiResult::setIndexedTagName( $arr['subscribers'], 's' );
$data[] = $arr;
}
$result->addValue( 'query', $this->getModuleName(), $r );
}
- protected function getCurrentUserInfo() {
+ /**
+ * Get basic info about a given block
+ * @param Block $block
+ * @return array Array containing several keys:
+ * - blockid - ID of the block
+ * - blockedby - username of the blocker
+ * - blockedbyid - user ID of the blocker
+ * - blockreason - reason provided for the block
+ * - blockedtimestamp - timestamp for when the block was placed/modified
+ * - blockexpiry - expiry time of the block
+ */
+ public static function getBlockInfo( Block $block ) {
global $wgContLang;
+ $vals = array();
+ $vals['blockid'] = $block->getId();
+ $vals['blockedby'] = $block->getByName();
+ $vals['blockedbyid'] = $block->getBy();
+ $vals['blockreason'] = $block->mReason;
+ $vals['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $block->mTimestamp );
+ $vals['blockexpiry'] = $wgContLang->formatExpiry(
+ $block->getExpiry(), TS_ISO_8601, 'infinite'
+ );
+ return $vals;
+ }
+ protected function getCurrentUserInfo() {
$user = $this->getUser();
$result = $this->getResult();
$vals = array();
$vals['anon'] = true;
}
- if ( isset( $this->prop['blockinfo'] ) ) {
- if ( $user->isBlocked() ) {
- $block = $user->getBlock();
- $vals['blockid'] = $block->getId();
- $vals['blockedby'] = $block->getByName();
- $vals['blockedbyid'] = $block->getBy();
- $vals['blockreason'] = $user->blockedFor();
- $vals['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $block->mTimestamp );
- $vals['blockexpiry'] = $wgContLang->formatExpiry(
- $block->getExpiry(), TS_ISO_8601, 'infinite'
- );
- }
+ if ( isset( $this->prop['blockinfo'] ) && $user->isBlocked() ) {
+ $vals = array_merge( $vals, self::getBlockInfo( $user->getBlock() ) );
}
if ( isset( $this->prop['hasmsg'] ) ) {
if ( $user->isBlocked() ) {
$status = SpecialBlock::checkUnblockSelf( $params['user'], $user );
if ( $status !== true ) {
- $this->dieUsageMsg( $status );
+ $msg = $this->parseMsg( $status );
+ $this->dieUsage(
+ $msg['info'],
+ $msg['code'],
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $user->getBlock() ) )
+ );
}
}
}
if ( $this->getUser()->isBlocked() ) {
- $this->dieUsageMsg( 'blockedtext' );
+ $this->dieUsage(
+ 'You have been blocked from editing',
+ 'blocked',
+ 0,
+ array( 'blockinfo' => ApiQueryUserInfo::getBlockInfo( $this->getUser()->getBlock() ) )
+ );
}
$titleObj = Title::newFromText( $params['title'] );
"api-help-param-required": "Tento parametr je povinný.",
"api-help-datatypes-header": "Datové typy",
"api-help-datatypes": "Některé typy parametrů v API potřebují bližší vysvětlení:\n;boolean\n:Booleovské parametry fungují jako zaškrtávací políčka v HTML: pokud je parametr uveden, bez ohledu na hodnotu, je považován za pravdivý. Pro nepravdivou hodnotu parametr zcela vynechte.\n;časová značka\n:Časové značky lze uvádět v několika formátech. Doporučuje se datum a čas podle ISO 8601. Všechny časy jsou v UTC a obsažené časové pásmo je ignorováno.\n:* Datum a čas podle ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (interpunkce a <kbd>Z</kbd> jsou nepovinné)\n:* Datum a čas podle ISO 8601 s (ignorovaným) zlomkem sekundy, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (pomlčky, dvojtečky a <kbd>Z</kbd> jsou nepovinné)\n:* Formát MediaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Obecný číselný formát, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (nepovinné časové pásmo <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd> nebo <kbd>-<var>##</var></kbd> se ignoruje)\n:* Formát EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formát podle RFC 2822 (časové pásmo lze vynechat), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formát podle RFC 850 (časové pásmo lze vynechat), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Formát podle céčkové funkce ctime, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Sekundy od 1970-01-01T00:00:00Z jako celé číslo o 1–13 číslicích (s výjimkou <kbd>0</kbd>)\n:* Řetězec <kbd>now</kbd>",
+ "api-help-param-type-integer": "Typ: {{PLURAL:$1|1=celé číslo|2=seznam celých čísel}}",
"api-help-param-type-boolean": "Typ: boolean ([[Special:ApiHelp/main#main/datatypes|podrobnosti]])",
"api-help-param-list": "{{PLURAL:$1|1=Jedna hodnota|2=Hodnoty (oddělené <kbd>{{!}}</kbd>)}}: $2",
"api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Musí být prázdné|Může být prázdné nebo $2}}",
"apihelp-login-param-domain": "Domeinua (hautazkoa).",
"apihelp-login-example-login": "Saioa hasi",
"apihelp-move-description": "Orrialde bat mugitu",
+ "apihelp-options-example-reset": "Berrezarri hobespen guztiak.",
"apihelp-protect-example-protect": "Orrialde bat babestu",
"apihelp-query+allusers-param-witheditsonly": "Bakarrik zerrendatu aldaketak egin dituzten erabiltzaileak.",
"apihelp-query+allusers-param-activeusers": "Bakarrik zerrendatu azken {{PLURAL:$1|eguneko|$1 egunetako}} erabiltzaile aktiboak.",
"apihelp-block-description": "חסימת משתמש.",
"apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח IP שהנך רוצה לחסום.",
"apihelp-block-param-reason": "סיבה לחסימה.",
- "apihelp-block-param-anononly": "×\97ס×\95×\9d ×\9eשת×\9eש×\99×\9d ×\90× ×\95× ×\99×\9e×\99×\99×\9d ×\91×\9c×\91×\93 (×\93×\94×\99×\99× ×\95, ×\94ש×\91תת ער×\99×\9b×\95ת ×\90× ×\95× ×\99×\9e×\99×\95ת ×\9e×\9bת×\95×\91ת ×\94IP הזאת)",
+ "apihelp-block-param-anononly": "×\9c×\97ס×\95×\9d ×\9eשת×\9eש×\99×\9d ×\90×\9c×\9e×\95× ×\99×\99×\9d ×\91×\9c×\91×\93 (×\93×\94×\99×\99× ×\95, ×\94ש×\91תת ער×\99×\9b×\95ת ×\90×\9c×\9e×\95× ×\99×\95ת ×\9e×\9bת×\95×\91ת ×\94Ö¾IP הזאת)",
"apihelp-block-param-nocreate": "מניעת יצירת חשבונות",
"apihelp-block-param-autoblock": "חסימה אוטומטית גם של כתובת ה־IP האחרונה שהשתמש בה ושל כל כתובת IP שינסה להשתמש בה בעתיד.",
"apihelp-compare-param-fromtitle": "כותרת ראשונה להשוואה.",
"api-help-source-unknown": "מקור: <span class=\"apihelp-unknown\">לא ידוע</span>",
"api-help-license": "רישיון: [[$1|$2]]",
"api-help-license-noname": "רישיון: [[$1|ראו קישור]]",
+ "api-help-license-unknown": "רישיון: <span class=\"apihelp-unknown\">לא ידוע</span>",
"api-help-parameters": "{{PLURAL:$1|פרמטר|פרמטרים}}:",
"api-help-param-deprecated": "מיושן.",
"api-help-param-required": "פרמטר זה נדרש.",
"Twotwo2019",
"아라",
"LiteHell",
- "Ysjbserver"
+ "Ysjbserver",
+ "Alex00728"
]
},
"apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page 설명문서]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 메일링 리스트]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API 공지 사항] * [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 버그 및 요청] </div>\n<strong>상태:</strong> 이 페이지에 표시된 모든 기능은 정상 작동할 것이지만, API는 여전히 활발하게 개발되고 있으며, 언제든지 바뀔 수 있습니다. 업데이트 정보를 받아보려면 [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce 메일링 리스트]를 구독하십시오.\n\n<strong>잘못된 요청:</strong> API에 잘못된 요청이 전송되면 HTTP 헤더에서 \"MediaWiki-API-Error\" 키를 보내고, 헤더 값과 오류 코드가 같게 설정됩니다. 자세한 정보에 대해서는 https://www.mediawiki.org/wiki/API:Errors_and_warnings 를 참고하십시오.",
"apihelp-edit-param-bot": "이 편집을 봇으로 표시.",
"apihelp-edit-example-edit": "문서 편집",
"apihelp-expandtemplates-param-title": "문서 제목",
+ "apihelp-feedrecentchanges-param-tagfilter": "태그로 분류",
"apihelp-login-param-name": "계정 이름.",
"apihelp-login-param-password": "비밀번호.",
"apihelp-login-example-login": "로그인.",
"apihelp-move-description": "문서 이동하기.",
+ "apihelp-move-param-reason": "제목을 변경하는 이유",
+ "apihelp-move-param-movetalk": "토론 문서가 존재한다면, 토론 문서도 이름을 변경해주세요.",
+ "apihelp-move-param-movesubpages": "하위 문서가 있다면, 하위 문서도 이름을 변경해주세요.",
+ "apihelp-move-param-noredirect": "넘겨주기 문서 만들지 않기",
+ "apihelp-move-param-watch": "현재 사용자의 주시 문서에 이 문서와 넘겨주기 문서를 추가하기",
+ "apihelp-move-param-unwatch": "현재 사용자의 주시 문서에 이 문서와 넘겨주기 문서를 제거하기",
+ "apihelp-move-param-ignorewarnings": "모든 경고 무시하기",
+ "apihelp-opensearch-description": "OpenSearch 프로토콜을 이용하여 위키 검색하기",
+ "apihelp-opensearch-param-search": "문자열 검색",
+ "apihelp-opensearch-param-limit": "반환할 결과의 최대 수",
+ "apihelp-options-param-reset": "사이트 기본으로 설정 초기화",
+ "apihelp-options-example-reset": "모든 설정 초기화",
+ "apihelp-protect-example-protect": "문서 보호",
+ "apihelp-query+pageswithprop-param-limit": "나타낼 문서의 최대 수입니다.",
+ "apihelp-query+pageswithprop-param-dir": "정렬 순서",
+ "apihelp-query+prefixsearch-param-search": "문자열 검색",
"api-help-title": "미디어위키 API 도움말",
"api-help-lead": "이 페이지는 자동으로 생성된 미디어위키 API 도움말 문서입니다.\n\n설명 문서 및 예시: https://www.mediawiki.org/wiki/API",
"api-help-main-header": "메인 모듈",
"apihelp-expandtemplates-param-includecomments": "Ov Aanmärkonge em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>-Fommaht med ußjejovve wähde sulle.",
"apihelp-expandtemplates-param-generatexml": "Donn ene Boum vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Paaser opboue. Es dorsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=parsetree</code>“ ässäz.",
"apihelp-expandtemplates-example-simple": "Donn dä Wikkitäx <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\"><nowiki>{{Project:Sandbox}}</nowiki></kbd> en Täx wandelle.",
- "apihelp-feedcontributions-description": "Jidd ene Kannahl met de Beidräsch vun enem Metmaacher uß.",
+ "apihelp-feedcontributions-description": "Jidd ene Kannahl met de Beidrähsch vun enem Metmaacher uß.",
"apihelp-feedcontributions-param-feedformat": "Däm Kannahl sing Fommaht.",
"apihelp-feedcontributions-param-user": "De Beijdrähsch för wat för en Metmaacher holle.",
"apihelp-feedcontributions-param-namespace": "Wat för ene Appachtemang för de Beijdrähsch ußjeschloße wähde sull.",
"apihelp-delete-example-reason": "Usuń <kbd>Stronę Główną</kbd> z powodem <kbd>Przygotowania do przenoszenia</kbd>.",
"apihelp-disabled-description": "Ten moduł został wyłączony.",
"apihelp-edit-description": "Utwórz i edytuj strony.;",
+ "apihelp-edit-param-section": "Numer sekcji. <kbd>0</kbd> dla górnej sekcji, <kbd>new</kbd> dla nowej sekcji.",
"apihelp-edit-param-sectiontitle": "Tytuł nowej sekcji.",
"apihelp-edit-param-text": "Zawartość strony.",
"apihelp-edit-param-tags": "Zmień tagi do przypisania do tej edycji.",
"apihelp-feedcontributions-param-deletedonly": "Pokazuj tylko usunięty wkład.",
"apihelp-feedcontributions-param-toponly": "Pokazuj tylko edycje będące ostatnią zmianą strony.",
"apihelp-feedcontributions-param-newonly": "Pokazuj tylko edycje tworzące stronę.",
+ "apihelp-feedcontributions-param-showsizediff": "Pokaż różnicę rozmiaru między wersjami.",
"apihelp-feedrecentchanges-param-namespace": "Przestrzeń nazw, do której ograniczone są wyniki.",
"apihelp-feedrecentchanges-param-invert": "Wszystkie przestrzenie nazw oprócz wybranej.",
"apihelp-feedrecentchanges-param-days": "Dni, do których ograniczone są wyniki.",
"apihelp-filerevert-description": "Przywróć plik do starej wersji.",
"apihelp-filerevert-param-filename": "Docelowa nazwa pliku bez prefiksu Plik:",
"apihelp-filerevert-param-comment": "Prześlij komentarz.",
+ "apihelp-filerevert-example-revert": "Przywróć <kbd>Wiki.png</kbd> do wersji z <kbd>2011-03-05T15:27:40Z</kbd>.",
"apihelp-help-description": "Wyświetl pomoc dla określonych modułów.",
"apihelp-help-param-modules": "Moduły do wyświetlenia pomocy dla (wartości <var>action</var> i <var>format</var> parametry, lub <kbd>main</kbd>). Może określić podmoduły z <kbd>+</kbd>.",
"apihelp-help-param-recursivesubmodules": "Zawiera pomoc dla podmodułów rekursywnie.",
"apihelp-help-param-helpformat": "Format wyjściowy pomocy.",
+ "apihelp-help-param-toc": "Dołącz spis treści do wyjściowego HTML.",
"apihelp-help-example-main": "Pomoc dla modułu głównego",
"apihelp-help-example-recursive": "Cała pomoc na jednej stronie.",
"apihelp-help-example-help": "Pomoc dla modułu pomocy",
"apihelp-help-example-query": "Pomoc dla dwóch podmodułów zapytań.",
"apihelp-imagerotate-description": "Obróć jeden lub wiecej obrazków.",
"apihelp-imagerotate-param-rotation": "Stopni w prawo, aby obrócić zdjęcie.",
+ "apihelp-imagerotate-example-simple": "Obróć <kbd>Plik:Przykład.png</kbd> o <kbd>90</kbd> stopni.",
+ "apihelp-imagerotate-example-generator": "Obróć wszystkie obrazki w <kbd>Kategorii:Flip</kbd> o <kbd>180</kbd> stopni.",
"apihelp-import-param-summary": "Podsumowanie importu.",
"apihelp-import-param-xml": "Przesłany plik XML.",
"apihelp-import-param-interwikisource": "Dla importów mediawiki: źródłowa wiki.",
"apihelp-import-param-interwikipage": "Dla importów interwiki: strona do importu.",
"apihelp-import-param-fullhistory": "Dla importów interwiki: importuj całą historię, a nie tylko obecną wersję.",
"apihelp-import-param-templates": "Dla importów mediawiki: importuj też wszystkie użyte szablony.",
+ "apihelp-import-param-namespace": "Importuj do tej przestrzeni nazw. Nie może być użyte razem z <var>$1rootpage</var>.",
+ "apihelp-import-param-rootpage": "Importuj jako podstronę tej strony. Nie może być użyte razem z <var>$1namespace</var>.",
"apihelp-login-param-name": "Nazwa użytkownika.",
"apihelp-login-param-password": "Hasło.",
"apihelp-login-param-domain": "Domena (opcjonalnie).",
"apihelp-login-example-login": "Zaloguj się",
"apihelp-logout-description": "Wyloguj i wyczyść dane sesji.",
"apihelp-logout-example-logout": "Wyloguj obecnego użytkownika.",
+ "apihelp-managetags-param-reason": "Opcjonalny powód utworzenia, usunięcia, włączenia lub wyłączenia znacznika.",
"apihelp-managetags-param-ignorewarnings": "Czy zignorować ostrzeżenia, które pojawiają się w trakcie operacji.",
"apihelp-move-description": "Przenieś stronę.",
"apihelp-move-param-reason": "Powód zmiany nazwy.",
"apihelp-query+alldeletedrevisions-paraminfo-useronly": "Może być użyte tylko z <var>$3user</var>.",
"apihelp-query+alldeletedrevisions-param-from": "Zacznij nasłuchiwanie na tym tytule.",
"apihelp-query+alldeletedrevisions-param-to": "Skończ nasłuchiwanie na tym tytule.",
- "apihelp-query+alldeletedrevisions-param-tag": "Pokazuj tylko zmiany oznaczone tym tagiem.",
+ "apihelp-query+alldeletedrevisions-param-tag": "Pokazuj tylko zmiany oznaczone tym znacznikiem.",
"apihelp-query+alldeletedrevisions-param-user": "Pokazuj tylko zmiany dokonane przez tego użytkownika.",
"apihelp-query+alldeletedrevisions-param-excludeuser": "Nie pokazuj zmian dokonanych przez tego użytkownika.",
"apihelp-query+alldeletedrevisions-param-namespace": "Listuj tylko strony z tej przestrzeni nazw.",
"apihelp-query+prefixsearch-param-offset": "Liczba wyników do pominięcia.",
"apihelp-query+protectedtitles-description": "Lista wszystkich tytułów zabezpieczonych przed tworzeniem.",
"apihelp-query+protectedtitles-param-namespace": "Listuj tylko strony z tych przestrzeni nazw.",
- "apihelp-query+protectedtitles-param-limit": "Łączna ilość stron do zwrócenia.",
+ "apihelp-query+protectedtitles-param-limit": "Łączna liczba stron do zwrócenia.",
"apihelp-query+protectedtitles-example-simple": "Lista chronionych nagłówków",
"apihelp-query+recentchanges-param-user": "Listuj tylko zmiany dokonane przez tego użytkownika.",
"apihelp-query+recentchanges-param-excludeuser": "Nie listuj zmian dokonanych przez tego użytkownika.",
"apihelp-query+recentchanges-param-tag": "Pokazuj tylko zmiany oznaczone tym tagiem.",
"apihelp-query+recentchanges-example-simple": "Lista ostatnich zmian.",
"apihelp-query+redirects-param-limit": "Ile przekierowań zwrócić.",
- "apihelp-query+revisions+base-param-limit": "Ograniczenia na ilość wersji które będą zwrócone.",
+ "apihelp-query+revisions+base-param-limit": "Ograniczenie na liczbę wersji, które będą zwrócone.",
"apihelp-query+search-description": "Wykonaj wyszukiwanie pełnotekstowe.",
"apihelp-query+search-param-info": "Które metadane zwrócić.",
- "apihelp-query+search-param-limit": "Łączna ilość stron do zwrócenia.",
+ "apihelp-query+search-param-limit": "Łączna liczba stron do zwrócenia.",
"apihelp-query+search-param-interwiki": "Dołączaj wyniki wyszukiwań interwiki w wyszukiwarce, jeśli możliwe.",
"apihelp-query+search-example-simple": "Szukaj <kbd>meaning</kbd>.",
"apihelp-query+siteinfo-example-simple": "Pobierz informacje o stronie.",
"apihelp-move-param-unwatch": "从当前用户的监视列表中移除页面及重定向。",
"apihelp-move-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
"apihelp-move-param-ignorewarnings": "忽略任何警告。",
- "apihelp-move-example-move": "移动<kbd>坏标题</kbd>到<kbd>好标题</kbd>并且不留下重定向。",
+ "apihelp-move-example-move": "移动<kbd>Badtitle</kbd>到<kbd>Goodtitle</kbd>,不保留重定向。",
"apihelp-opensearch-description": "使用OpenSearch协议搜索本wiki。",
"apihelp-opensearch-param-search": "搜索字符串。",
"apihelp-opensearch-param-limit": "要返回的结果最大数。",
public function startWrite( $code ) {
$this->currentLang = $code;
- $this->fname = $this->directory. '/' . $code . '.l10n.php';
+ $this->fname = $this->directory . '/' . $code . '.l10n.php';
$this->data[$code] = array();
if ( file_exists( $this->fname ) ) {
$this->data[$code] = require $this->fname;
public function get( $code, $key ) {
if ( !array_key_exists( $code, $this->data ) ) {
- $fname = $this->directory. '/' . $code . '.l10n.php';
+ $fname = $this->directory . '/' . $code . '.l10n.php';
if ( !file_exists( $fname ) ) {
return null;
}
$key = $nt->getPrefixedDBkey();
if ( $this->isBadLink( $key ) || $nt->isExternal() ) {
-
return 0;
}
$id = $this->getGoodLinkID( $key );
if ( $id != 0 ) {
-
return $id;
}
if ( $key === '' ) {
-
return 0;
}
public function readJSONFile( $fileName ) {
if ( !is_readable( $fileName ) ) {
-
return array();
}
$json = file_get_contents( $fileName );
if ( $json === false ) {
-
return array();
}
*/
protected $mLoadedLanguages = array();
+ /**
+ * @var bool $mInParser
+ */
+ protected $mInParser = false;
+
+ /** @var BagOStuff */
+ protected $mMemc;
+ /** @var WANObjectCache */
+ protected $wanCache;
+
/**
* Singleton instance
*
*/
private static $instance;
- /**
- * @var bool $mInParser
- */
- protected $mInParser = false;
-
/**
* Get the signleton instance of this class
*
$this->mMemc = $memCached;
$this->mDisable = !$useDB;
$this->mExpiry = $expiry;
+
+ $this->wanCache = ObjectCache::getMainWANInstance();
}
/**
# Loading code starts
$success = false; # Keep track of success
$staleCache = false; # a cache array with expired data, or false if none has been loaded
+ $hashExpired = false; # whether the cluster-local validation hash is stale
$where = array(); # Debug info, delayed to avoid spamming debug log too much
- $cacheKey = wfMemcKey( 'messages', $code ); # Key in memc for messages
# Local cache
# Hash of the contents is stored in memcache, to detect if local cache goes
# out of date (e.g. due to replace() on some other server)
if ( $wgUseLocalMessageCache ) {
- $hash = $this->mMemc->get( wfMemcKey( 'messages', $code, 'hash' ) );
+ list( $hash, $hashExpired ) = $this->getValidationHash( $code );
if ( $hash ) {
$cache = $this->getLocalCache( $hash, $code );
if ( !$cache ) {
} elseif ( $this->isCacheExpired( $cache ) ) {
$where[] = 'local cache is expired';
$staleCache = $cache;
+ } elseif ( $hashExpired ) {
+ $where[] = 'local cache validation key is expired';
+ $staleCache = $cache;
} else {
$where[] = 'got from local cache';
$success = true;
}
if ( !$success ) {
+ $cacheKey = wfMemcKey( 'messages', $code ); # Key in memc for messages
# Try the global cache. If it is empty, try to acquire a lock. If
# the lock can't be acquired, wait for the other thread to finish
# and then try the global cache a second time.
for ( $failedAttempts = 0; $failedAttempts < 2; $failedAttempts++ ) {
- $cache = $this->mMemc->get( $cacheKey );
- if ( !$cache ) {
- $where[] = 'global cache is empty';
- } elseif ( $this->isCacheExpired( $cache ) ) {
- $where[] = 'global cache is expired';
- $staleCache = $cache;
+ if ( $hashExpired && $staleCache ) {
+ # Do not bother fetching the whole cache blob to avoid I/O.
+ # Instead, just try to get the non-blocking $statusKey lock
+ # below, and use the local stale value if it was not acquired.
+ $where[] = 'global cache is presumed expired';
} else {
- $where[] = 'got from global cache';
- $this->mCache[$code] = $cache;
- $this->saveToCaches( $cache, 'local-only', $code );
- $success = true;
+ $cache = $this->mMemc->get( $cacheKey );
+ if ( !$cache ) {
+ $where[] = 'global cache is empty';
+ } elseif ( $this->isCacheExpired( $cache ) ) {
+ $where[] = 'global cache is expired';
+ $staleCache = $cache;
+ } else {
+ $where[] = 'got from global cache';
+ $this->mCache[$code] = $cache;
+ $this->saveToCaches( $cache, 'local-only', $code );
+ $success = true;
+ }
}
if ( $success ) {
break;
}
- # We need to call loadFromDB. Limit the concurrency to a single
- # process. This prevents the site from going down when the cache
- # expires.
- $statusKey = wfMemcKey( 'messages', $code, 'status' );
- $acquired = $this->mMemc->add( $statusKey, 'loading', MSG_LOAD_TIMEOUT );
- if ( $acquired ) {
- # Unlock the status key if there is an exception
- $that = $this;
- $statusUnlocker = new ScopedCallback( function () use ( $that, $statusKey ) {
- $that->mMemc->delete( $statusKey );
- } );
-
- # Now let's regenerate
- $where[] = 'loading from database';
-
- # Lock the cache to prevent conflicting writes
- # If this lock fails, it doesn't really matter, it just means the
- # write is potentially non-atomic, e.g. the results of a replace()
- # may be discarded.
- if ( $this->lock( $cacheKey ) ) {
- $mainUnlocker = new ScopedCallback( function () use ( $that, $cacheKey ) {
- $that->unlock( $cacheKey );
- } );
- } else {
- $mainUnlocker = null;
- $where[] = 'could not acquire main lock';
- }
-
- $cache = $this->loadFromDB( $code );
- $this->mCache[$code] = $cache;
- $success = true;
- $saveSuccess = $this->saveToCaches( $cache, 'all', $code );
-
- # Unlock
- ScopedCallback::consume( $mainUnlocker );
- ScopedCallback::consume( $statusUnlocker );
-
- if ( !$saveSuccess ) {
- # Cache save has failed.
- # There are two main scenarios where this could be a problem:
- #
- # - The cache is more than the maximum size (typically
- # 1MB compressed).
- #
- # - Memcached has no space remaining in the relevant slab
- # class. This is unlikely with recent versions of
- # memcached.
- #
- # Either way, if there is a local cache, nothing bad will
- # happen. If there is no local cache, disabling the message
- # cache for all requests avoids incurring a loadFromDB()
- # overhead on every request, and thus saves the wiki from
- # complete downtime under moderate traffic conditions.
- if ( !$wgUseLocalMessageCache ) {
- $this->mMemc->set( $statusKey, 'error', 60 * 5 );
- $where[] = 'could not save cache, disabled globally for 5 minutes';
- } else {
- $where[] = "could not save global cache";
- }
- }
-
+ # We need to call loadFromDB. Limit the concurrency to one process.
+ # This prevents the site from going down when the cache expires.
+ if ( $this->loadFromDBWithLock( $code, $where ) ) {
# Load from DB complete, no need to retry
+ $success = true;
break;
} elseif ( $staleCache ) {
# Use the stale cache while some other thread constructs the new one
$where[] = "could not acquire status key.";
break;
} else {
+ $statusKey = wfMemcKey( 'messages', $code, 'status' );
$status = $this->mMemc->get( $statusKey );
if ( $status === 'error' ) {
# Disable cache
# All good, just record the success
$this->mLoadedLanguages[$code] = true;
}
+
$info = implode( ', ', $where );
wfDebugLog( 'MessageCache', __METHOD__ . ": Loading $code... $info\n" );
return $success;
}
+ /**
+ * @param string $code
+ * @param array $where List of wfDebug() comments
+ * @return bool Lock acquired and loadFromDB() called
+ */
+ protected function loadFromDBWithLock( $code, array &$where ) {
+ global $wgUseLocalMessageCache;
+
+ $memCache = $this->mMemc;
+
+ $statusKey = wfMemcKey( 'messages', $code, 'status' );
+ if ( !$memCache->add( $statusKey, 'loading', MSG_LOAD_TIMEOUT ) ) {
+ return false; // could not acquire lock
+ }
+
+ # Unlock the status key if there is an exception
+ $statusUnlocker = new ScopedCallback( function () use ( $memCache, $statusKey ) {
+ $memCache->delete( $statusKey );
+ } );
+
+ # Now let's regenerate
+ $where[] = 'loading from database';
+
+ $cacheKey = wfMemcKey( 'messages', $code );
+ # Lock the cache to prevent conflicting writes
+ # If this lock fails, it doesn't really matter, it just means the
+ # write is potentially non-atomic, e.g. the results of a replace()
+ # may be discarded.
+ if ( $this->lock( $cacheKey ) ) {
+ $that = $this;
+ $mainUnlocker = new ScopedCallback( function () use ( $that, $cacheKey ) {
+ $that->unlock( $cacheKey );
+ } );
+ } else {
+ $mainUnlocker = null;
+ $where[] = 'could not acquire main lock';
+ }
+
+ $cache = $this->loadFromDB( $code );
+ $this->mCache[$code] = $cache;
+ $saveSuccess = $this->saveToCaches( $cache, 'all', $code );
+
+ # Unlock
+ ScopedCallback::consume( $mainUnlocker );
+ ScopedCallback::consume( $statusUnlocker );
+
+ if ( !$saveSuccess ) {
+ # Cache save has failed.
+ # There are two main scenarios where this could be a problem:
+ #
+ # - The cache is more than the maximum size (typically
+ # 1MB compressed).
+ #
+ # - Memcached has no space remaining in the relevant slab
+ # class. This is unlikely with recent versions of
+ # memcached.
+ #
+ # Either way, if there is a local cache, nothing bad will
+ # happen. If there is no local cache, disabling the message
+ # cache for all requests avoids incurring a loadFromDB()
+ # overhead on every request, and thus saves the wiki from
+ # complete downtime under moderate traffic conditions.
+ if ( !$wgUseLocalMessageCache ) {
+ $memCache->set( $statusKey, 'error', 60 * 5 );
+ $where[] = 'could not save cache, disabled globally for 5 minutes';
+ } else {
+ $where[] = "could not save global cache";
+ }
+ }
+
+ return true;
+ }
+
/**
* Loads cacheable messages from the database. Messages bigger than
* $wgMaxMsgCacheEntrySize are assigned a special value, and are loaded
# Update caches
$this->saveToCaches( $this->mCache[$code], 'all', $code );
$this->unlock( $cacheKey );
+ $this->wanCache->touchCheckKey( wfMemcKey( 'messages', $code ) );
// Also delete cached sidebar... just in case it is affected
$codes = array( $code );
$codes = array_keys( Language::fetchLanguageNames() );
}
- $cache = ObjectCache::getMainWANInstance();
foreach ( $codes as $code ) {
$sidebarKey = wfMemcKey( 'sidebar', $code );
- $cache->delete( $sidebarKey, 5 );
+ $this->wanCache->delete( $sidebarKey, 5 );
}
// Update the message in the message blob store
protected function saveToCaches( $cache, $dest, $code = false ) {
global $wgUseLocalMessageCache;
- $cacheKey = wfMemcKey( 'messages', $code );
-
if ( $dest === 'all' ) {
+ $cacheKey = wfMemcKey( 'messages', $code );
$success = $this->mMemc->set( $cacheKey, $cache );
} else {
$success = true;
if ( $wgUseLocalMessageCache ) {
$serialized = serialize( $cache );
$hash = md5( $serialized );
- $this->mMemc->set( wfMemcKey( 'messages', $code, 'hash' ), $hash );
+ $this->setValidationHash( $code, $hash );
$this->saveToLocal( $serialized, $hash, $code );
}
return $success;
}
+ /**
+ * Get the md5 used to validate the local disk cache
+ *
+ * @param string $code
+ * @return array (hash or false, bool expiry status)
+ */
+ protected function getValidationHash( $code ) {
+ $curTTL = null;
+ $value = $this->wanCache->get(
+ wfMemcKey( 'messages', $code, 'hash' ),
+ $curTTL,
+ array( wfMemcKey( 'messages', $code ) )
+ );
+ $expired = ( $curTTL === null || $curTTL < 0 );
+
+ return array( $value, $expired );
+ }
+
+ /**
+ * Set the md5 used to validate the local disk cache
+ *
+ * @param string $code
+ * @param string $hash
+ */
+ protected function setValidationHash( $code, $hash ) {
+ $this->wanCache->set(
+ wfMemcKey( 'messages', $code, 'hash' ),
+ $hash,
+ WANObjectCache::TTL_NONE
+ );
+ }
+
/**
* Represents a write lock on the messages key.
*
function clear() {
$langs = Language::fetchLanguageNames( null, 'mw' );
foreach ( array_keys( $langs ) as $code ) {
- # Global cache
- $this->mMemc->delete( wfMemcKey( 'messages', $code ) );
- # Invalidate all local caches
- $this->mMemc->delete( wfMemcKey( 'messages', $code, 'hash' ) );
+ # Global and local caches
+ $this->wanCache->touchCheckKey( wfMemcKey( 'messages', $code ) );
}
+
$this->mLoadedLanguages = array();
}
$lb = new LinkBatch();
foreach ( $usersToCheck as $userId => $name ) {
if ( $this->queryNeeded( $userId, 'userpage', $options ) ) {
- $lb->add( NS_USER, str_replace( ' ', '_', $row->user_name ) );
+ $lb->add( NS_USER, $row->user_name );
$this->typesCached[$userId]['userpage'] = 1;
}
if ( $this->queryNeeded( $userId, 'usertalk', $options ) ) {
- $lb->add( NS_USER_TALK, str_replace( ' ', '_', $row->user_name ) );
+ $lb->add( NS_USER_TALK, $row->user_name );
$this->typesCached[$userId]['usertalk'] = 1;
}
}
} elseif ( !ChangesList::userCan( $rcObj, Revision::DELETED_TEXT, $this->getUser() ) ) {
$link = '<span class="history-deleted">' . $rcObj->timestamp . '</span> ';
} else {
-
$link = Linker::linkKnown(
$rcObj->getTitle(),
$rcObj->timestamp,
return Status::newFatal( 'tags-update-no-permission' );
}
- // to be added, a tag has to be explicitly defined
- // @todo Allow extensions to define tags that can be applied by users...
- $explicitlyDefinedTags = self::listExplicitlyDefinedTags();
- $diff = array_diff( $tagsToAdd, $explicitlyDefinedTags );
- if ( $diff ) {
- return self::restrictedTagError( 'tags-update-add-not-allowed-one',
- 'tags-update-add-not-allowed-multi', $diff );
+ if ( $tagsToAdd ) {
+ // to be added, a tag has to be explicitly defined
+ // @todo Allow extensions to define tags that can be applied by users...
+ $explicitlyDefinedTags = self::listExplicitlyDefinedTags();
+ $diff = array_diff( $tagsToAdd, $explicitlyDefinedTags );
+ if ( $diff ) {
+ return self::restrictedTagError( 'tags-update-add-not-allowed-one',
+ 'tags-update-add-not-allowed-multi', $diff );
+ }
}
- // to be removed, a tag has to be either explicitly defined or not defined
- // at all
- $definedTags = self::listDefinedTags();
- $diff = array_diff( $tagsToRemove, $explicitlyDefinedTags );
- if ( $diff ) {
- $intersect = array_intersect( $diff, $definedTags );
+ if ( $tagsToRemove ) {
+ // to be removed, a tag must not be defined by an extension, or equivalently it
+ // has to be either explicitly defined or not defined at all
+ // (assuming no edge case of a tag both explicitly-defined and extension-defined)
+ $extensionDefinedTags = self::listExtensionDefinedTags();
+ $intersect = array_intersect( $tagsToRemove, $extensionDefinedTags );
if ( $intersect ) {
return self::restrictedTagError( 'tags-update-remove-not-allowed-one',
'tags-update-remove-not-allowed-multi', $intersect );
return Status::newFatal( 'tags-manage-no-permission' );
}
- // non-existing tags cannot be activated
- $tagUsage = self::tagUsageStatistics();
- if ( !isset( $tagUsage[$tag] ) ) {
- return Status::newFatal( 'tags-activate-not-found', $tag );
- }
-
// defined tags cannot be activated (a defined tag is either extension-
// defined, in which case the extension chooses whether or not to active it;
// or user-defined, in which case it is considered active)
return Status::newFatal( 'tags-activate-not-allowed', $tag );
}
+ // non-existing tags cannot be activated
+ $tagUsage = self::tagUsageStatistics();
+ if ( !isset( $tagUsage[$tag] ) ) { // we already know the tag is undefined
+ return Status::newFatal( 'tags-activate-not-found', $tag );
+ }
+
return Status::newGood();
}
// does the tag already exist?
$tagUsage = self::tagUsageStatistics();
- if ( isset( $tagUsage[$tag] ) ) {
+ if ( isset( $tagUsage[$tag] ) || in_array( $tag, self::listDefinedTags() ) ) {
return Status::newFatal( 'tags-create-already-exists', $tag );
}
return Status::newFatal( 'tags-manage-no-permission' );
}
- if ( !isset( $tagUsage[$tag] ) ) {
+ if ( !isset( $tagUsage[$tag] ) && !in_array( $tag, self::listDefinedTags() ) ) {
return Status::newFatal( 'tags-delete-not-found', $tag );
}
- if ( $tagUsage[$tag] > self::MAX_DELETE_USES ) {
+ if ( isset( $tagUsage[$tag] ) && $tagUsage[$tag] > self::MAX_DELETE_USES ) {
return Status::newFatal( 'tags-delete-too-many-uses', $tag, self::MAX_DELETE_USES );
}
// store the tag usage statistics
$tagUsage = self::tagUsageStatistics();
+ $hitcount = isset( $tagUsage[$tag] ) ? $tagUsage[$tag] : 0;
// do it!
$deleteResult = self::deleteTagEverywhere( $tag );
}
// log it
- $logId = self::logTagManagementAction( 'delete', $tag, $reason, $user, $tagUsage[$tag] );
+ $logId = self::logTagManagementAction( 'delete', $tag, $reason, $user, $hitcount );
$deleteResult->value = $logId;
return $deleteResult;
}
/**
* Returns a map of any tags used on the wiki to number of edits
* tagged with them, ordered descending by the hitcount.
+ * This does not include tags defined somewhere that have never been applied.
*
* Keeps a short-term cache in memory, so calling this multiple times in the
* same request should be fine.
$out[$row->ct_tag] = $row->hitcount;
}
- foreach ( ChangeTags::listDefinedTags() as $tag ) {
- if ( !isset( $out[$tag] ) ) {
- $out[$tag] = 0;
- }
- }
-
return $out;
},
300,
$text = $with->getNativeData();
if ( strval( $sectionId ) === '' ) {
-
return $with; # XXX: copy first?
}
*/
public function getSkin() {
if ( $this->skin === null ) {
-
$skin = null;
Hooks::run( 'RequestContextCreateSkin', array( $this, &$skin ) );
$factory = SkinFactory::getDefaultInstance();
// Although postgres and oracle support schemas, we don't use them (yet)
// to maintain backwards compatibility
$defaultSchemas = array(
- 'mysql' => null,
- 'postgres' => null,
- 'sqlite' => null,
- 'oracle' => null,
'mssql' => 'get from global',
);
$p['flags'] = isset( $p['flags'] ) ? $p['flags'] : 0;
$p['variables'] = isset( $p['variables'] ) ? $p['variables'] : array();
$p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : 'get from global';
- $p['schema'] = isset( $p['schema'] ) ? $p['schema'] : $defaultSchemas[$dbType];
+ if ( !isset( $p['schema'] ) ) {
+ $p['schema'] = isset( $defaultSchemas[$dbType] ) ? $defaultSchemas[$dbType] : null;
+ }
$p['foreign'] = isset( $p['foreign'] ) ? $p['foreign'] : false;
return new $class( $p );
* @param string $s
* @return string
*/
- public function strencode( $s ) { # Should not be called by us
+ public function strencode( $s ) {
+ // Should not be called by us
+
return str_replace( "'", "''", $s );
}
return pg_unescape_bytea( $b );
}
- function strencode( $s ) { # Should not be called by us
+ function strencode( $s ) {
+ // Should not be called by us
+
return pg_escape_string( $this->mConn, $s );
}
}
} // end DatabasePostgres class
-class PostgresBlob extends Blob {}
+class PostgresBlob extends Blob {
+}
# Now we have an explicit index into the servers array
$conn = $this->openConnection( $i, $wiki );
if ( !$conn ) {
-
return $this->reportConnectionError();
}
} elseif ( $channel === 'profileoutput' ) {
// Legacy wfLogProfilingData formatitng
$forward = '';
- if ( isset( $context['forwarded_for'] )) {
+ if ( isset( $context['forwarded_for'] ) ) {
$forward = " forwarded for {$context['forwarded_for']}";
}
if ( isset( $context['client_ip'] ) ) {
# If using cleanup triggers, we can skip some manual deletes
if ( !$this->mDb->cleanupTriggers() ) {
- # Clean up recentchanges entries...
- $this->mDb->delete( 'recentchanges',
- array( 'rc_type != ' . RC_LOG,
+ # Find recentchanges entries to clean up...
+ $rcIdsForTitle = $this->mDb->selectFieldValues( 'recentchanges',
+ 'rc_id',
+ array(
+ 'rc_type != ' . RC_LOG,
'rc_namespace' => $title->getNamespace(),
- 'rc_title' => $title->getDBkey() ),
- __METHOD__ );
- $this->mDb->delete( 'recentchanges',
+ 'rc_title' => $title->getDBkey()
+ ),
+ __METHOD__
+ );
+ $rcIdsForPage = $this->mDb->selectFieldValues( 'recentchanges',
+ 'rc_id',
array( 'rc_type != ' . RC_LOG, 'rc_cur_id' => $id ),
- __METHOD__ );
+ __METHOD__
+ );
+
+ # T98706: delete PK to avoid lock contention with RC delete log insertions
+ $rcIds = array_merge( $rcIdsForTitle, $rcIdsForPage );
+ if ( $rcIds ) {
+ $this->mDb->delete( 'recentchanges', array( 'rc_id' => $rcIds ), __METHOD__ );
+ }
}
}
$this->mCacheHit = true;
// Check if the diff should be hidden from this user
if ( !$this->loadRevisionData() ) {
-
return false;
} elseif ( $this->mOldRev &&
!$this->mOldRev->userCan( Revision::DELETED_TEXT, $this->getUser() )
) {
-
return false;
} elseif ( $this->mNewRev &&
!$this->mNewRev->userCan( Revision::DELETED_TEXT, $this->getUser() )
) {
-
return false;
}
// Short-circuit
if ( $this->mOldRev === false || ( $this->mOldRev && $this->mNewRev
&& $this->mOldRev->getID() == $this->mNewRev->getID() )
) {
-
return '';
}
// Cacheable?
// Loadtext is permission safe, this just clears out the diff
if ( !$this->loadText() ) {
-
return false;
}
$tempFile1 = fopen( $tempName1, "w" );
if ( !$tempFile1 ) {
-
return false;
}
$tempFile2 = fopen( $tempName2, "w" );
if ( !$tempFile2 ) {
-
return false;
}
fwrite( $tempFile1, $otext );
$key = $title->quickUserCan( 'edit', $user ) ? 'editold' : 'viewsourceold';
$msg = $this->msg( $key )->escaped();
$editLink = $this->msg( 'parentheses' )->rawParams(
- Linker::linkKnown( $title, $msg, array( ), $editQuery ) )->escaped();
+ Linker::linkKnown( $title, $msg, array(), $editQuery ) )->escaped();
$header .= ' ' . Html::rawElement(
'span',
array( 'class' => 'mw-diff-edit' ),
public function getSha1Base36( $recache = false ) {
if ( $this->sha1Base36 !== null && !$recache ) {
-
return $this->sha1Base36;
}
$cStat = $cBackend->getFileStat( array( 'src' => $cPath, 'latest' => true ) );
if ( $cStat === null || ( $cSha1 !== false && !$cStat ) ) { // sanity
$status->fatal( 'backend-fail-internal', $cBackend->getName() );
- wfDebugLog( 'FileOperation', __METHOD__
- . ': File is not available on the clone backend' );
+ wfDebugLog( 'FileOperation', __METHOD__ .
+ ': File is not available on the clone backend' );
continue; // file is not available on the clone backend...
}
if ( $mSha1 === $cSha1 ) {
break; // got it
}
if ( $attempt >= 5 ) {
-
return null; // give up
}
}
protected $transformVia404;
/** @var string URL of image description pages, e.g.
- * http://en.wikipedia.org/wiki/File:
+ * https://en.wikipedia.org/wiki/File:
*/
protected $descBaseUrl;
* to $wgScriptExtension, e.g. .php5 defaults to .php */
protected $scriptExtension;
- /** @var string Equivalent to $wgArticlePath, e.g. http://en.wikipedia.org/wiki/$1 */
+ /** @var string Equivalent to $wgArticlePath, e.g. https://en.wikipedia.org/wiki/$1 */
protected $articleUrl;
/** @var bool Equivalent to $wgCapitalLinks (or $wgCapitalLinkOverrides[NS_FILE],
* $wgForeignFileRepos[] = array(
* 'class' => 'ForeignAPIRepo',
* 'name' => 'shared',
- * 'apibase' => 'http://en.wikipedia.org/w/api.php',
+ * 'apibase' => 'https://en.wikipedia.org/w/api.php',
* 'fetchDescription' => true, // Optional
* 'descriptionCacheExpiry' => 3600,
* );
global $wgLocalFileRepo;
parent::__construct( $info );
- // http://commons.wikimedia.org/w/api.php
+ // https://commons.wikimedia.org/w/api.php
$this->mApiBase = isset( $info['apibase'] ) ? $info['apibase'] : null;
if ( isset( $info['apiThumbCacheExpiry'] ) ) {
# ATTENTION: The newline after <div class="gallerytext"> is needed to
# accommodate htmltidy which in version 4.8.6 generated crackpot HTML
- # in its absence, see: http://bugzilla.wikimedia.org/show_bug.cgi?id=1765
+ # in its absence, see: https://phabricator.wikimedia.org/T3765
# -Ævar
$thumbWidth = $this->getGBWidth( $thumb ) - $this->getThumbPadding() - $this->getGBPadding();
protected function wrapGalleryText( $galleryText, $thumb ) {
# ATTENTION: The newline after <div class="gallerytext"> is needed to
# accommodate htmltidy which in version 4.8.6 generated crackpot html in
- # its absence, see: http://bugzilla.wikimedia.org/show_bug.cgi?id=1765
+ # its absence, see: https://phabricator.wikimedia.org/T3765
# -Ævar
return "\n\t\t\t" . '<div class="gallerytext">' . "\n"
$attr['class'] = $this->mClass;
}
- $chkLabel = Xml::check( $this->mName, $value, $attr )
- . ' '
- . Html::rawElement( 'label', array( 'for' => $this->mID ), $this->mLabel );
+ $attrLabel = array( 'for' => $this->mID );
+ if ( isset( $attr['title'] ) ) {
+ // propagate tooltip to label
+ $attrLabel['title'] = $attr['title'];
+ }
+
+ $chkLabel = Xml::check( $this->mName, $value, $attr ) .
+ ' ' .
+ Html::rawElement( 'label', $attrLabel, $this->mLabel );
if ( $wgUseMediaWikiUIEverywhere || $this->mParent instanceof VFormHTMLForm ) {
$chkLabel = Html::rawElement(
function getLabel() {
if ( $this->mParent instanceof OOUIHTMLForm ) {
return $this->mLabel;
+ } elseif (
+ $this->mParent instanceof HTMLForm &&
+ $this->mParent->getDisplayFormat() === 'div'
+ ) {
+ return '';
} else {
return ' ';
}
public static $typeMappings = array(
'api' => 'HTMLApiField',
'text' => 'HTMLTextField',
+ 'textwithbutton' => 'HTMLTextFieldWithButton',
'textarea' => 'HTMLTextAreaField',
'select' => 'HTMLSelectField',
'radio' => 'HTMLRadioField',
'selectorother' => 'HTMLSelectOrOtherField',
'selectandother' => 'HTMLSelectAndOtherField',
'namespaceselect' => 'HTMLSelectNamespace',
+ 'namespaceselectwithbutton' => 'HTMLSelectNamespaceWithButton',
'tagfilter' => 'HTMLTagFilter',
'submit' => 'HTMLSubmitField',
'hidden' => 'HTMLHiddenField',
'mw-htmlform-nolabel' => ( $label === '' )
);
- $field = Html::rawElement(
- 'div',
- array( 'class' => $outerDivClass ) + $cellAttributes,
- $inputHtml . "\n$errors"
- );
- $divCssClasses = array( "mw-htmlform-field-$fieldType", $this->mClass, $this->mVFormClass, $errorClass );
+ $horizontalLabel = isset( $this->mParams['horizontal-label'] )
+ ? $this->mParams['horizontal-label'] : false;
+
+ if ( $horizontalLabel ) {
+ $field = ' ' . $inputHtml . "\n$errors";
+ } else {
+ $field = Html::rawElement(
+ 'div',
+ array( 'class' => $outerDivClass ) + $cellAttributes,
+ $inputHtml . "\n$errors"
+ );
+ }
+ $divCssClasses = array( "mw-htmlform-field-$fieldType",
+ $this->mClass, $this->mVFormClass, $errorClass );
$wrapperAttributes = array(
'class' => $divCssClasses,
$displayFormat = $this->mParent->getDisplayFormat();
$html = '';
+ $horizontalLabel = isset( $this->mParams['horizontal-label'] )
+ ? $this->mParams['horizontal-label'] : false;
if ( $displayFormat === 'table' ) {
$html =
array( 'class' => 'mw-label' ) + $cellAttributes,
Html::rawElement( 'label', $for, $labelValue ) );
} elseif ( $hasLabel || $this->mShowEmptyLabels ) {
- if ( $displayFormat === 'div' ) {
+ if ( $displayFormat === 'div' && !$horizontalLabel ) {
$html =
Html::rawElement( 'div',
array( 'class' => 'mw-label' ) + $cellAttributes,
--- /dev/null
+<?php
+/**
+ * Enables HTMLFormField elements to be build with a button.
+ */
+class HTMLFormFieldWithButton extends HTMLFormField {
+ /** @var string $mButtonClass CSS class for the button in this field */
+ protected $mButtonClass = '';
+
+ /** @var string|integer $mButtonId Element ID for the button in this field */
+ protected $mButtonId = '';
+
+ /** @var string $mButtonName Name the button in this field */
+ protected $mButtonName = '';
+
+ /** @var string $mButtonType Type of the button in this field (e.g. button or submit) */
+ protected $mButtonType = 'submit';
+
+ /** @var string $mButtonType Value for the button in this field */
+ protected $mButtonValue;
+
+ public function __construct( $info ) {
+ if ( isset( $info['buttonclass'] ) ) {
+ $this->mButtonClass = $info['buttonclass'];
+ }
+ if ( isset( $info['buttonid'] ) ) {
+ $this->mButtonId = $info['buttonid'];
+ }
+ if ( isset( $info['buttonname'] ) ) {
+ $this->mButtonName = $info['buttonname'];
+ }
+ if ( isset( $info['buttondefault'] ) ) {
+ $this->mButtonValue = $info['buttondefault'];
+ }
+ if ( isset( $info['buttontype'] ) ) {
+ $this->mButtonType = $info['buttontype'];
+ }
+ parent::__construct( $info );
+ }
+
+ public function getInputHTML( $value ) {
+ $attr = array(
+ 'class' => 'mw-htmlform-submit ' . $this->mButtonClass,
+ 'id' => $this->mButtonId,
+ ) + $this->getAttributes( array( 'disabled', 'tabindex' ) );
+
+ return Html::input( $this->mButtonName, $this->mButtonValue, $this->mButtonType, $attr );
+ }
+
+ /**
+ * Combines the passed element with a button.
+ * @param String $element Element to combine the button with.
+ * @return String
+ */
+ public function getElement( $element ) {
+ return $element . ' ' . $this->getInputHTML( '' );
+ }
+}
\ No newline at end of file
*/
function loadDataFromRequest( $request ) {
if ( $request->getCheck( $this->mName ) ) {
-
$list = $request->getText( $this->mName );
$text = $request->getText( $this->mName . '-other' );
--- /dev/null
+<?php
+/**
+ * Creates a Html::namespaceSelector input field with a button assigned to the input field.
+ */
+class HTMLSelectNamespaceWithButton extends HTMLSelectNamespace {
+ /** @var HTMLFormClassWithButton $mClassWithButton */
+ protected $mClassWithButton = null;
+
+ public function __construct( $info ) {
+ $this->mClassWithButton = new HTMLFormFieldWithButton( $info );
+ parent::__construct( $info );
+ }
+
+ public function getInputHTML( $value ) {
+ return $this->mClassWithButton->getElement( parent::getInputHTML( $value ) );
+ }
+}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Creates a text input field with a button assigned to the input field.
+ */
+class HTMLTextFieldWithButton extends HTMLTextField {
+ /** @var HTMLFormClassWithButton $mClassWithButton */
+ protected $mClassWithButton = null;
+
+ public function __construct( $info ) {
+ $this->mClassWithButton = new HTMLFormFieldWithButton( $info );
+ parent::__construct( $info );
+ }
+
+ public function getInputHTML( $value ) {
+ return $this->mClassWithButton->getElement( parent::getInputHTML( $value ) );
+ }
+}
\ No newline at end of file
} elseif ( $c <= 0x7FF ) {
return chr( 0xC0 | $c >> 6 ) . chr( 0x80 | $c & 0x3F );
} elseif ( $c <= 0xFFFF ) {
- return chr( 0xE0 | $c >> 12 ) . chr( 0x80 | $c >> 6 & 0x3F )
- . chr( 0x80 | $c & 0x3F );
+ return chr( 0xE0 | $c >> 12 ) . chr( 0x80 | $c >> 6 & 0x3F ) .
+ chr( 0x80 | $c & 0x3F );
} elseif ( $c <= 0x10FFFF ) {
- return chr( 0xF0 | $c >> 18 ) . chr( 0x80 | $c >> 12 & 0x3F )
- . chr( 0x80 | $c >> 6 & 0x3F )
- . chr( 0x80 | $c & 0x3F );
+ return chr( 0xF0 | $c >> 18 ) . chr( 0x80 | $c >> 12 & 0x3F ) .
+ chr( 0x80 | $c >> 6 & 0x3F ) .
+ chr( 0x80 | $c & 0x3F );
} else {
return false;
}
{$magic}\$wgUseImageMagick = true;
{$magic}\$wgImageMagickConvertCommand = \"{$this->values['wgImageMagickConvertCommand']}\";
-# InstantCommons allows wiki to use images from http://commons.wikimedia.org
+# InstantCommons allows wiki to use images from https://commons.wikimedia.org
\$wgUseInstantCommons = {$this->values['wgUseInstantCommons']};
## If you use ImageMagick (or any other shell command) on a
array( 'addField', 'mwuser', 'user_password_expires', 'patch-user_password_expires.sql' ),
// 1.24
- array( 'addField', 'page', 'page_lang', 'patch-page-page_lang.sql'),
+ array( 'addField', 'page', 'page_lang', 'patch-page-page_lang.sql' ),
// 1.25
array( 'dropTable', 'hitcounter' ),
"config-magic-quotes-sybase": "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nToto nastavení nepředvídatelně poškozuje vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
"config-mbstring": "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nToto nastavení způsobuje chyby a může nepředvídatelně poškozovat vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
"config-safe-mode": "'''Upozornění:''' Je aktivní [http://www.php.net/features.safe-mode bezpečný režim] PHP.\nMůže způsobovat potíže, zejména při použití načítání souborů a podpory <code>math</code>.",
- "config-xml-bad": "Chybí XML modul pro PHP.\nMediaWiki potřebuje funkce v tomto modulu a v této konfiguraci nebude fungovat.\nPokud běžíte na Mandrake, nainstalujte balíček php-xml.",
+ "config-xml-bad": "Chybí XML modul pro PHP.\nMediaWiki potřebuje funkce v tomto modulu a v této konfiguraci nebude fungovat.\nMožná si budete muset nainstalovat RPM balíček php-xml.",
"config-pcre-old": "'''Kritická chyba:''' Je vyžadováno PCRE verze $1 nebo novější.\nVaše binárka PHP obsahuje PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Více informací.]",
"config-pcre-no-utf8": "'''Kritická chyba''': PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.\nMediaWiki vyžaduje ke správné funkci podporu UTF-8.",
"config-memory-raised": "<code>memory_limit</code> v PHP byl nastaven na $1, zvýšen na $2.",
"config-install-pg-schema-failed": "Falló la creación de las tablas.\nAsegúrate de que la cuenta «$1» tiene permiso de escritura para el esquema «$2».",
"config-install-pg-commit": "Validando los cambios",
"config-install-pg-plpgsql": "Comprobación de lenguaje PL/pgSQL",
- "config-pg-no-plpgsql": "Necesita instalar el lenguaje PL/pgSQL en la base de datos $1",
+ "config-pg-no-plpgsql": "Necesitas instalar el lenguaje PL/pgSQL en la base de datos $1",
"config-pg-no-create-privs": "La cuenta especificada para la instalación no tiene suficientes privilegios para crear una cuenta.",
"config-pg-not-in-role": "La cuenta especificada para el usuario web ya existe.\nLa cuenta especificada para la instalación no es de un superusuario y no es miembro del grupo de usuarios con acceso a la web, por lo que es incapaz de crear objetos pertenecientes al usuario web.\n\nMediaWiki requiere actualmente que las tablas sean propiedad del usuario web. Especifique otro nombre de cuenta web, o haga clic en \"atrás\" y especifique un usuario de instalación con los privilegios convenientes.",
"config-install-user": "Creando el usuario de la base de datos",
"Hym411",
"Priviet",
"Namoroka",
- "Revi"
+ "Revi",
+ "Alex00728"
]
},
"config-desc": "미디어위키를 위한 설치 관리자",
"config-magic-quotes-sybase": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상을 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
"config-mbstring": "<strong>치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성화되어 있습니다!</strong>\n이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상을 일으킬 수 있습니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
"config-safe-mode": "<strong>경고:</strong> PHP의 [http://www.php.net/features.safe-mode 안전 모드]가 활성화되어 있습니다!\n특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
- "config-xml-bad": "PHP의 XML 모듈이 없습니다.\n미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.\nMandrake를 실행하고 있다면 php-xml 패키지를 설치하세요.",
+ "config-xml-bad": "PHP의 XML 모듈이 없습니다.\n미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.\nphp-xml 패키지를 설치해야할 수도 있습니다.",
"config-pcre-old": "<strong>치명:</strong> PCRE $1 또는 그 이상이 필요합니다.\nPHP 바이너리는 PCRE $2에 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 자세한 정보].",
"config-pcre-no-utf8": "<strong>치명:</strong> PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 올바르게 작동하려면 UTF-8을 지원해야 합니다.",
"config-memory-raised": "PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘렸습니다.",
"config-information": "دونسمنيا",
"config-your-language": "زون شما:",
"config-wiki-language": "زون ویکی:",
+ "config-back": "← ڤادئما",
+ "config-continue": "نئها گئرئتئن →",
"config-page-language": "زون",
"config-page-welcome": "د ویکی رسانه خوش اومایت!",
+ "config-page-dbconnect": "ڤأصل بییئن د رئسینە جا",
+ "config-page-dbsettings": "میزوٙنکاری رئسینە جا",
"config-page-name": "نوم",
"config-page-options": "گزينه يا هنی:",
"config-page-install": "پورنیئن",
"config-mysql-engine": "Mutore d'astipo:",
"config-mysql-innodb": "InnoDB",
"config-mysql-myisam": "MyISAM",
+ "config-mysql-engine-help": "<strong>InnoDB</strong> è quase sempe 'a meglia opzione, pecché ave nu buono suppuorto concorrente.\n\n<strong>MyISAM</strong> putesse ghì cchiù ampressa int'a na installazione mono-utente e liegge-surtanto.\n'E database MyISAM se scassano cchiù spisso d' 'e database InnoDB.",
"config-mysql-charset": "Nzieme 'e carattere d' 'o database:",
"config-mysql-binary": "Binario",
"config-mysql-utf8": "UTF-8",
"config-no-scaling": "Nie odnaleziono biblioteki GD lub ImageMagick. Możliwość zmniejszania załadowywanych grafik zostanie wyłączona.",
"config-no-uri": "'''Błąd:''' Nie można określić aktualnego URI.\nInstalacja została przerwana.",
"config-no-cli-uri": "<strong>Ostrzeżenie:</strong> Nie wskazano <code>--scriptpath</code>, użycie wartości domyślnej: <code>$1</code>.",
- "config-using-server": "â\80\9e<nowiki>$1</nowiki>â\80\9c jest adresem serwera, na którym instalowana jest wiki.",
+ "config-using-server": "â\80\9e<nowiki>$1</nowiki>â\80\9d jest adresem serwera, na którym instalowana jest wiki.",
"config-using-uri": "Wiki będzie zainstalowana pod adresem \"<nowiki>$1$2</nowiki>\".",
"config-uploads-not-safe": "'''Uwaga''' – domyślny katalog do którego zapisywane są przesyłane pliki <code>$1</code> jest podatny na wykonanie dowolnego skryptu.\nChociaż MediaWiki sprawdza wszystkie przesłane pliki pod kątem bezpieczeństwa, zaleca się jednak, aby [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security zamknąć tę lukę w zabezpieczeniach] przed włączeniem przesyłania plików.",
"config-no-cli-uploads-check": "'''Ostrzeżenie:''' Katalog domyślny przesyłanych plików ( <code>$1</code> ) nie jest sprawdzona względem luki\n wykonania dowolnego skryptu podczas instalacji CLI w zabezpieczeniach.",
"config-connection-error": "$1.\n\nSprawdź adres serwera, nazwę użytkownika i hasło, a następnie spróbuj ponownie.",
"config-invalid-schema": "Nieprawidłowa nazwa schematu dla MediaWiki „$1”.\nNazwa może zawierać wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9) i podkreślenia (_).",
"config-db-sys-create-oracle": "Instalator może wykorzystać wyłącznie konto SYSDBA do tworzenia nowych kont użytkowników.",
- "config-db-sys-user-exists-oracle": "Konto użytkownika â\80\9e$1â\80\9c już istnieje. SYSDBA można użyć tylko do utworzenia nowego konta!",
+ "config-db-sys-user-exists-oracle": "Konto użytkownika â\80\9e$1â\80\9d już istnieje. SYSDBA można użyć tylko do utworzenia nowego konta!",
"config-postgres-old": "Korzystasz z wersji $2 oprogramowania PostgreSQL, a potrzebna jest wersja co najmniej $1.",
"config-mssql-old": "Wymagany jest Microsoft SQL Server w wersji $1 lub nowszej. Masz zainstalowaną wersję $2.",
"config-sqlite-name-help": "Wybierz nazwę, która będzie identyfikować Twoją wiki.\nNie wolno używać spacji ani myślników.\nZostanie ona użyta jako nazwa pliku danych SQLite.",
"config-pg-no-create-privs": "Konto, które zostało określone dla instalacji nie ma wystarczających uprawnień, aby utworzyć konto.",
"config-pg-not-in-role": "Konto określone dla użytkownika sieci już istnieje.\nKonto określone dla instalacji nie ma uprawnień administratora ani nie jest przynależy do roli użytkownika sieci web, więc nie można utworzyć obiektów stanowiących własność użytkownika sieci.\n\nMediaWiki wymaga obecnie, by tabele były własnością konta zwykłego użytkownika. Podaj inną nazwę konta użytkownika, lub kliknij przycisk \"Wstecz\" i podaj nazwę konta użytkownika instalatora, które posiada odpowiednie uprawnienia.",
"config-install-user": "Tworzenie użytkownika bazy danych",
- "config-install-user-alreadyexists": "Konto użytkownika â\80\9e$1â\80\9c już istnieje",
+ "config-install-user-alreadyexists": "Konto użytkownika â\80\9e$1â\80\9d już istnieje",
"config-install-user-create-failed": "Tworzenie użytkownika \"$1\" nie powiodło się: $2",
"config-install-user-grant-failed": "Przyznanie uprawnień użytkownikowi „$1” nie powiodło się – $2",
- "config-install-user-missing": "Nie istnieje konto użytkownika â\80\9e$1â\80\9c.",
+ "config-install-user-missing": "Nie istnieje konto użytkownika â\80\9e$1â\80\9d.",
"config-install-user-missing-create": "Określony użytkownik \"$1\" nie istnieje.\nKliknij poniższe pole wyboru „utwórz konto\" jeśli chcesz go utworzyć.",
"config-install-tables": "Tworzenie tabel",
"config-install-tables-exist": "'''Uwaga''' – wygląda na to, że tabele MediaWiki już istnieją.\nPomijam tworzenie tabel.",
"config-insecure-keys": "'''Ostrzeżenie:''' {{PLURAL:$2|Klucz bezpieczeństwa|Klucze bezpieczeństwa|Klucze bezpieczeństwa}} ($1) utworzone podczas instalacji {{PLURAL:$2|utworzony podczas instalacji nie jest|utworzone podczas instalacji nie są|utworzone podczas instalacji nie są}} w pełni bezpieczne. Być może warto wygenerować {{PLURAL:$2|własny klucz|własne klucze|własne klucze}}.",
"config-install-updates": "Zapobieganie uruchamianiu niepotrzebnych aktualizacji",
"config-install-sysop": "Tworzenie konta administratora",
- "config-install-subscribe-fail": "Nie można zapisaÄ\87 na listÄ\99 â\80\9emediawiki-announceâ\80\9c – $1",
+ "config-install-subscribe-fail": "Nie można zapisaÄ\87 na listÄ\99 â\80\9emediawiki-announceâ\80\9d – $1",
"config-install-subscribe-notpossible": "cURL nie jest zainstalowany, więc <code>allow_url_fopen</code> nie jest dostępne.",
"config-install-mainpage": "Tworzenie strony głównej z domyślną zawartością",
"config-install-extension-tables": "Tworzenie tabel dla aktywnych rozszerzeń",
"authors": [
"Kusavica",
"KuboF",
- "Sudo77(new)"
+ "Sudo77(new)",
+ "Hromoslav"
]
},
"config-desc": "Inštalátor pre MediaWiki",
"config-missing-db-name": "Musíte zadať hodnotu pre \"{{int:config-db-name}}\".",
"config-missing-db-host": "Musíte zadať hodnotu pre \"{{int:config-db-host}}\".",
"config-missing-db-server-oracle": "Musíte zadať hodnotu pre \"{{int:config-db-host-oracle}}\".",
+ "config-ns-generic": "Projekt",
"config-admin-box": "Účet správcu",
"config-admin-name": "Vaše používateľské meno:",
"config-admin-password": "Heslo:",
"config-optional-skip": "Už ma to nudí, proste nainštaluj wiki.",
"config-profile-wiki": "Otvorená wiki",
"config-profile-private": "Súkromná wiki",
+ "config-license-pd": "Voľné dielo",
"config-email-settings": "Nastavenia e-mailu",
"config-install-step-done": "hotovo",
"config-install-step-failed": "zlyhalo",
{
"@metadata": {
"authors": [
- "Andrewboltachev"
+ "Andrewboltachev",
+ "AlnashPiyash2"
]
},
+ "config-title": "MediaWiki $1 пуктон",
+ "config-your-language": "Тӥляд кылды:",
+ "config-back": "← Берлань",
+ "config-continue": "Азьлань →",
+ "config-page-language": "Кыл",
+ "config-page-options": "Настройкаос",
+ "config-page-complete": "Быдэстэмын!",
+ "config-page-readme": "Лыдӟы монэ",
+ "config-page-copying": "Лицензия",
"mainpagetext": "'''MediaWiki движок азинлыко пуктэмын.'''"
}
* @since 1.22
*/
final public function getSiblingQueuesWithJobs( array $types ) {
-
return $this->doGetSiblingQueuesWithJobs( $types );
}
* @since 1.22
*/
final public function getSiblingQueueSizes( array $types ) {
-
return $this->doGetSiblingQueueSizes( $types );
}
protected function doPurge() {
return true;
}
-}
\ No newline at end of file
+}
$inComment = false;
$multiline = false;
- for ($idx = 0; $idx < $maxLen; $idx++) {
+ for ( $idx = 0; $idx < $maxLen; $idx++ ) {
switch ( $str[$idx] ) {
case '"':
$lookBehind = ( $idx - 1 >= 0 ) ? $str[$idx - 1] : '';
* Execute an HTTP(S) request
*
* This method returns a response map of:
- * - code : HTTP response code or 0 if there was a serious cURL error
- * - reason : HTTP response reason (empty if there was a serious cURL error)
- * - headers : <header name/value associative array>
- * - body : HTTP response body or resource (if "stream" was set)
+ * - code : HTTP response code or 0 if there was a serious cURL error
+ * - reason : HTTP response reason (empty if there was a serious cURL error)
+ * - headers : <header name/value associative array>
+ * - body : HTTP response body or resource (if "stream" was set)
* - error : Any cURL error string
- * The map also stores integer-indexed copies of these values. This lets callers do:
+ * The map also stores integer-indexed copies of these values. This lets callers do:
* @code
* list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $http->run( $req );
* @endcode
/**
* @param array $params
*/
- public function __construct( array $params ) {}
+ public function __construct( array $params ) {
+ }
/**
* @param string $channel
*
* This method may mangle any of the $reqs entry 'response' fields as needed:
* - code : perform any code normalization [as needed]
- * - reason : perform any reason normalization [as needed]
- * - headers : perform any header normalization [as needed]
+ * - reason : perform any reason normalization [as needed]
+ * - headers : perform any header normalization [as needed]
*
* This method can also remove some of the requests as well as add new ones
* (using $idGenerator to set each of the entries' array keys). For any existing
break;
case 'GPSDOP':
- // See http://en.wikipedia.org/wiki/Dilution_of_precision_(GPS)
+ // See https://en.wikipedia.org/wiki/Dilution_of_precision_(GPS)
if ( $val <= 2 ) {
$val = $this->exifMsg( $tag, 'excellent', $this->formatNum( $val ) );
} elseif ( $val <= 5 ) {
*/
private function gcd( $a, $b ) {
/*
- // http://en.wikipedia.org/wiki/Euclidean_algorithm
+ // https://en.wikipedia.org/wiki/Euclidean_algorithm
// Recursive form would be:
if( $b == 0 )
return $a;
// If revision deleted, exit immediately
if ( $file->isDeleted( File::DELETED_FILE ) ) {
-
return array();
}
*
* @ingroup Exception
*/
-class MediaTransformInvalidParametersException extends MWException {}
+class MediaTransformInvalidParametersException extends MWException {
+}
} elseif ( $this->reader->namespaceURI == self::NS_SVG
&& $this->reader->nodeType == XMLReader::ELEMENT
) {
-
$sysLang = $this->reader->getAttribute( 'systemLanguage' );
if ( !is_null( $sysLang ) && $sysLang !== '' ) {
// See http://www.w3.org/TR/SVG/struct.html#SystemLanguageAttribute
* Handler for the Gimp's native file format (XCF)
*
* Overview:
- * http://en.wikipedia.org/wiki/XCF_(file_format)
+ * https://en.wikipedia.org/wiki/XCF_(file_format)
* Specification in Gnome repository:
* http://svn.gnome.org/viewvc/gimp/trunk/devel-docs/xcf.txt?view=markup
*
$len = unpack( 'Nlength/Noffset', substr( $content, 32, 8 ) );
if ( !$len || $len['length'] < 4 || $len['offset'] < 0 || $len['offset'] > $len['length'] ) {
- $this->logger->info( __METHOD__ . 'Error reading extended XMP block, invalid length or offset.' );
+ $this->logger->info( __METHOD__ . 'Error reading extended XMP block, invalid length or offset.' );
return false;
}
// Validate structures.
list( $ns, $tag ) = explode( ' ', $elm, 2 );
if ( isset( $this->items[$ns][$tag]['validate'] ) ) {
-
$info =& $this->items[$ns][$tag];
$finalName = isset( $info['map_name'] )
? $info['map_name'] : $tag;
return $result;
}
-
-
/**
* @param string $key
* @param mixed $value
* @return string|bool String containing article contents, or false if null
* @deprecated since 1.21, use WikiPage::getContent() instead
*/
- function fetchContent() { #BC cruft!
+ function fetchContent() {
+ // BC cruft!
+
ContentHandler::deprecated( __METHOD__, '1.21' );
if ( $this->mContentLoaded && $this->mContent ) {
) );
}
- // Get the last edit not by this guy...
+ // Get the last edit not by this person...
// Note: these may not be public values
$user = intval( $current->getUser( Revision::RAW ) );
$user_text = $dbw->addQuotes( $current->getUserText( Revision::RAW ) );
return array( array( 'notvisiblerev' ) );
}
- // Set patrolling and bot flag on the edits, which gets rollbacked.
- // This is done before the rollback edit to have patrolling also on failure (bug 62157).
- $set = array();
- if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
- // Mark all reverted edits as bot
- $set['rc_bot'] = 1;
- }
-
- if ( $wgUseRCPatrol ) {
- // Mark all reverted edits as patrolled
- $set['rc_patrolled'] = 1;
- }
-
- if ( count( $set ) ) {
- $dbw->update( 'recentchanges', $set,
- array( /* WHERE */
- 'rc_cur_id' => $current->getPage(),
- 'rc_user_text' => $current->getUserText(),
- 'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
- ), __METHOD__
- );
- }
-
// Generate the edit summary if necessary
$target = Revision::newFromId( $s->rev_id, Revision::READ_LATEST );
if ( empty( $summary ) ) {
$guser
);
+ // Set patrolling and bot flag on the edits, which gets rollbacked.
+ // This is done even on edit failure to have patrolling in that case (bug 62157).
+ $set = array();
+ if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
+ // Mark all reverted edits as bot
+ $set['rc_bot'] = 1;
+ }
+
+ if ( $wgUseRCPatrol ) {
+ // Mark all reverted edits as patrolled
+ $set['rc_patrolled'] = 1;
+ }
+
+ if ( count( $set ) ) {
+ $dbw->update( 'recentchanges', $set,
+ array( /* WHERE */
+ 'rc_cur_id' => $current->getPage(),
+ 'rc_user_text' => $current->getUserText(),
+ 'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
+ ),
+ __METHOD__
+ );
+ }
+
if ( !$status->isOK() ) {
return $status->getErrorsArray();
}
// for each found variants, figure out link holders and replace
foreach ( $varRes as $s ) {
-
$variantTitle = Title::makeTitle( $s->page_namespace, $s->page_title );
$varPdbk = $variantTitle->getPrefixedDBkey();
$vardbk = $variantTitle->getDBkey();
'-' => '',
' ' => '',
'x' => 'X',
- ));
+ ) );
$titleObj = SpecialPage::getTitleFor( 'Booksources', $num );
return '<a href="' .
htmlspecialchars( $titleObj->getLocalURL() ) .
# Don't break a trailing HTML entity by moving the ; into $trail
# This is in hot code, so use substr_compare to avoid having to
# create a new string object for the comparison
- if ( $numSepChars && substr_compare( $url, ";", -$numSepChars, 1 ) === 0) {
+ if ( $numSepChars && substr_compare( $url, ";", -$numSepChars, 1 ) === 0 ) {
# more optimization: instead of running preg_match with a $
# anchor, which can be slow, do the match on the reversed
# string starting at the desired offset.
# SUBST
if ( !$found ) {
-
$substMatch = $this->mSubstWords->matchStartAndRemove( $part1 );
# Possibilities for substMatch: "subst", "safesubst" or FALSE
# Parser functions
if ( !$found ) {
-
$colonPos = strpos( $part1, ':' );
if ( $colonPos !== false ) {
$func = substr( $part1, 0, $colonPos );
$cacheable = ( $wgPreprocessorCacheThreshold !== false
&& strlen( $text ) > $wgPreprocessorCacheThreshold );
if ( $cacheable ) {
-
$cacheKey = wfMemcKey( 'preprocess-xml', md5( $text ), $flags );
$cacheValue = $wgMemc->get( $cacheKey );
if ( $cacheValue ) {
&& strlen( $text ) > $wgPreprocessorCacheThreshold;
if ( $cacheable ) {
-
$cacheKey = wfMemcKey( 'preprocess-hash', md5( $text ), $flags );
$cacheValue = $wgMemc->get( $cacheKey );
if ( $cacheValue ) {
*
* @param string $name Name of the function to profile
*/
- public function __construct( $name ) {}
+ public function __construct( $name ) {
+ }
}
}
// Kept BC for now, remove when possible
- public function profileIn( $functionname ) {}
- public function profileOut( $functionname ) {}
+ public function profileIn( $functionname ) {
+ }
+
+ public function profileOut( $functionname ) {
+ }
/**
* Mark the start of a custom profiling frame (e.g. DB queries).
function wfGetRusage() {
if ( !function_exists( 'getrusage' ) ) {
return false;
- } elseif ( defined ( 'HHVM_VERSION' ) ) {
+ } elseif ( defined( 'HHVM_VERSION' ) ) {
return getrusage( 2 /* RUSAGE_THREAD */ );
} else {
return getrusage( 0 /* RUSAGE_SELF */ );
/**
* ProfilerSimpleUDP class, that sends out messages for 'udpprofile' daemon
- * (see http://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile)
+ * (see https://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile)
*
* @ingroup Profiler
* @since 1.25
/**
* @param string $name
- * @param mixed $value
+ * @param array $value
* @param array &$array
+ * @throws InvalidArgumentException
*/
protected function storeToArray( $name, $value, &$array ) {
+ if ( !is_array( $value ) ) {
+ throw new InvalidArgumentException( "The value for '$name' should be an array" );
+ }
if ( isset( $array[$name] ) ) {
$array[$name] = array_merge_recursive( $array[$name], $value );
} else {
if ( !is_array( $info ) ) {
throw new Exception( "$path is not a valid JSON file." );
}
- if ( !isset( $info['manifest_version' ] ) ) {
+ if ( !isset( $info['manifest_version'] ) ) {
// For backwards-compatability, assume a version of 1
$info['manifest_version'] = 1;
}
* @since 1.24
*/
class DerivativeResourceLoaderContext extends ResourceLoaderContext {
+ const INHERIT_VALUE = -1;
/**
* @var ResourceLoaderContext
*/
private $context;
- protected $modules;
- protected $language;
- protected $direction;
- protected $skin;
- protected $user;
- protected $debug;
- protected $only;
- protected $version;
- protected $hash;
- protected $raw;
+
+ protected $modules = self::INHERIT_VALUE;
+ protected $language = self::INHERIT_VALUE;
+ protected $direction = self::INHERIT_VALUE;
+ protected $skin = self::INHERIT_VALUE;
+ protected $user = self::INHERIT_VALUE;
+ protected $debug = self::INHERIT_VALUE;
+ protected $only = self::INHERIT_VALUE;
+ protected $version = self::INHERIT_VALUE;
+ protected $raw = self::INHERIT_VALUE;
public function __construct( ResourceLoaderContext $context ) {
$this->context = $context;
}
public function getModules() {
- if ( !is_null( $this->modules ) ) {
- return $this->modules;
- } else {
+ if ( $this->modules === self::INHERIT_VALUE ) {
return $this->context->getModules();
}
+ return $this->modules;
}
/**
}
public function getLanguage() {
- if ( !is_null( $this->language ) ) {
- return $this->language;
- } else {
+ if ( $this->language === self::INHERIT_VALUE ) {
return $this->context->getLanguage();
}
+ return $this->language;
}
/**
*/
public function setLanguage( $language ) {
$this->language = $language;
- $this->direction = null; // Invalidate direction since it might be based on language
+ // Invalidate direction since it is based on language
+ $this->direction = null;
$this->hash = null;
}
public function getDirection() {
- if ( !is_null( $this->direction ) ) {
- return $this->direction;
- } else {
+ if ( $this->direction === self::INHERIT_VALUE ) {
return $this->context->getDirection();
}
+ if ( $this->direction === null ) {
+ $this->direction = Language::factory( $this->getLanguage() )->getDir();
+ }
+ return $this->direction;
}
/**
}
public function getSkin() {
- if ( !is_null( $this->skin ) ) {
- return $this->skin;
- } else {
+ if ( $this->skin === self::INHERIT_VALUE ) {
return $this->context->getSkin();
}
+ return $this->skin;
}
/**
}
public function getUser() {
- if ( !is_null( $this->user ) ) {
- return $this->user;
- } else {
+ if ( $this->user === self::INHERIT_VALUE ) {
return $this->context->getUser();
}
+ return $this->user;
}
/**
}
public function getDebug() {
- if ( !is_null( $this->debug ) ) {
- return $this->debug;
- } else {
+ if ( $this->debug === self::INHERIT_VALUE ) {
return $this->context->getDebug();
}
+ return $this->debug;
}
/**
}
public function getOnly() {
- if ( !is_null( $this->only ) ) {
- return $this->only;
- } else {
+ if ( $this->only === self::INHERIT_VALUE ) {
return $this->context->getOnly();
}
+ return $this->only;
}
/**
- * @param string $only
+ * @param string|null $only
*/
public function setOnly( $only ) {
$this->only = $only;
}
public function getVersion() {
- if ( !is_null( $this->version ) ) {
- return $this->version;
- } else {
+ if ( $this->version === self::INHERIT_VALUE ) {
return $this->context->getVersion();
}
+ return $this->version;
}
/**
- * @param string $version
+ * @param string|null $version
*/
public function setVersion( $version ) {
$this->version = $version;
}
public function getRaw() {
- if ( !is_null( $this->raw ) ) {
- return $this->raw;
- } else {
+ if ( $this->raw === self::INHERIT_VALUE ) {
return $this->context->getRaw();
}
+ return $this->raw;
}
/**
$module = array(
$name,
$scripts,
- (object) $styles,
- (object) $messages,
- (object) $templates,
+ (object)$styles,
+ (object)$messages,
+ (object)$templates,
);
self::trimArray( $module );
$this->resourceLoader = $resourceLoader;
$this->request = $request;
- // Interpret request
// List of modules
$modules = $request->getVal( 'modules' );
$this->modules = $modules ? self::expandModuleNames( $modules ) : array();
+
// Various parameters
- $this->skin = $request->getVal( 'skin' );
$this->user = $request->getVal( 'user' );
$this->debug = $request->getFuzzyBool(
- 'debug', $resourceLoader->getConfig()->get( 'ResourceLoaderDebug' )
+ 'debug',
+ $resourceLoader->getConfig()->get( 'ResourceLoaderDebug' )
);
- $this->only = $request->getVal( 'only' );
- $this->version = $request->getVal( 'version' );
+ $this->only = $request->getVal( 'only', null );
+ $this->version = $request->getVal( 'version', null );
$this->raw = $request->getFuzzyBool( 'raw' );
+
// Image requests
$this->image = $request->getVal( 'image' );
$this->variant = $request->getVal( 'variant' );
$this->format = $request->getVal( 'format' );
+ $this->skin = $request->getVal( 'skin' );
$skinnames = Skin::getSkinNames();
// If no skin is specified, or we don't recognize the skin, use the default skin
if ( !$this->skin || !isset( $skinnames[$this->skin] ) ) {
public function getLanguage() {
if ( $this->language === null ) {
// Must be a valid language code after this point (bug 62849)
- $this->language = RequestContext::sanitizeLangCode( $this->request->getVal( 'lang' ) );
+ $this->language = RequestContext::sanitizeLangCode( $this->getRequest()->getVal( 'lang' ) );
}
return $this->language;
}
*/
public function getDirection() {
if ( $this->direction === null ) {
- $this->direction = $this->request->getVal( 'dir' );
+ $this->direction = $this->getRequest()->getVal( 'dir' );
if ( !$this->direction ) {
// Determine directionality based on user language (bug 6100)
$this->direction = Language::factory( $this->getLanguage() )->getDir();
}
/**
- * @return string|null
+ * @return string
*/
public function getSkin() {
return $this->skin;
* @return bool
*/
public function shouldIncludeScripts() {
- return is_null( $this->getOnly() ) || $this->getOnly() === 'scripts';
+ return $this->getOnly() === null || $this->getOnly() === 'scripts';
}
/**
* @return bool
*/
public function shouldIncludeStyles() {
- return is_null( $this->getOnly() ) || $this->getOnly() === 'styles';
+ return $this->getOnly() === null || $this->getOnly() === 'styles';
}
/**
* @return bool
*/
public function shouldIncludeMessages() {
- return is_null( $this->getOnly() );
+ return $this->getOnly() === null;
}
/**
}
/**
- * @param ResourceLoaderContext $context
- * @return array
+ * @return bool
*/
- public function getDefinitionSummary( ResourceLoaderContext $context ) {
- $summary = parent::getDefinitionSummary( $context );
- $summary[] = array(
- 'lessVars' => $this->getLessVars( $context ),
- );
- return $summary;
+ public function enableModuleContentVersion() {
+ return true;
}
/**
return $this->raw;
}
+ /**
+ * Disable module content versioning.
+ *
+ * This class uses getDefinitionSummary() instead, to avoid filesystem overhead
+ * involved with building the full module content inside a startup request.
+ *
+ * @return bool
+ */
+ public function enableModuleContentVersion() {
+ return false;
+ }
+
/**
* Helper method to gather file mtimes for getDefinitionSummary.
*
$this->variants = $variants;
// Expand shorthands:
- // array( "en,de,fr" => "foo.svg" ) → array( "en" => "foo.svg", "de" => "foo.svg", "fr" => "foo.svg" )
+ // array( "en,de,fr" => "foo.svg" )
+ // → array( "en" => "foo.svg", "de" => "foo.svg", "fr" => "foo.svg" )
if ( is_array( $this->descriptor ) && isset( $this->descriptor['lang'] ) ) {
foreach ( array_keys( $this->descriptor['lang'] ) as $langList ) {
if ( strpos( $langList, ',' ) !== false ) {
$this->descriptor['lang'] += array_fill_keys(
explode( ',', $langList ),
- $this->descriptor['lang'][ $langList ]
+ $this->descriptor['lang'][$langList]
);
- unset( $this->descriptor['lang'][ $langList ] );
+ unset( $this->descriptor['lang'][$langList] );
}
}
}
} );
$extensions = array_unique( $extensions );
if ( count( $extensions ) !== 1 ) {
- throw new InvalidArgumentException( "File type for different image files of '$name' not the same" );
+ throw new InvalidArgumentException(
+ "File type for different image files of '$name' not the same"
+ );
}
$ext = $extensions[0];
if ( !isset( self::$fileTypes[$ext] ) ) {
- throw new InvalidArgumentException( "Invalid file type for image files of '$name' (valid: svg, png, gif, jpg)" );
+ throw new InvalidArgumentException(
+ "Invalid file type for image files of '$name' (valid: svg, png, gif, jpg)"
+ );
}
$this->extension = $ext;
}
$desc = $this->descriptor;
if ( is_string( $desc ) ) {
return $this->basePath . '/' . $desc;
- } elseif ( isset( $desc['lang'][ $context->getLanguage() ] ) ) {
- return $this->basePath . '/' . $desc['lang'][ $context->getLanguage() ];
- } elseif ( isset( $desc[ $context->getDirection() ] ) ) {
- return $this->basePath . '/' . $desc[ $context->getDirection() ];
+ } elseif ( isset( $desc['lang'][$context->getLanguage()] ) ) {
+ return $this->basePath . '/' . $desc['lang'][$context->getLanguage()];
+ } elseif ( isset( $desc[$context->getDirection()] ) ) {
+ return $this->basePath . '/' . $desc[$context->getDirection()];
} else {
return $this->basePath . '/' . $desc['default'];
}
* // List of image files and their options
* 'images' => array(
* [theme name] => array(
- * [file path string],
- * [file path string] => array(
- * 'name' => [image name string, defaults to file name],
+ * [icon name] => array(
+ * 'file' => [file path string or array whose values are file path strings
+ * and whose keys are 'default', 'ltr', 'rtl', a single
+ * language code like 'en', or a list of language codes like
+ * 'en,de,ar'],
* 'variants' => [array of variant name strings, variants
* available for this image],
* ),
$prefix = isset( $options['prefix'] ) && $options['prefix'];
$selector = isset( $options['selector'] ) && $options['selector'];
- $selectorWithoutVariant = isset( $options['selectorWithoutVariant'] ) && $options['selectorWithoutVariant'];
- $selectorWithVariant = isset( $options['selectorWithVariant'] ) && $options['selectorWithVariant'];
+ $selectorWithoutVariant = isset( $options['selectorWithoutVariant'] )
+ && $options['selectorWithoutVariant'];
+ $selectorWithVariant = isset( $options['selectorWithVariant'] )
+ && $options['selectorWithVariant'];
if ( $selectorWithoutVariant && !$selectorWithVariant ) {
- throw new InvalidArgumentException( "Given 'selectorWithoutVariant' but no 'selectorWithVariant'." );
+ throw new InvalidArgumentException(
+ "Given 'selectorWithoutVariant' but no 'selectorWithVariant'."
+ );
}
if ( $selectorWithVariant && !$selectorWithoutVariant ) {
- throw new InvalidArgumentException( "Given 'selectorWithVariant' but no 'selectorWithoutVariant'." );
+ throw new InvalidArgumentException(
+ "Given 'selectorWithVariant' but no 'selectorWithoutVariant'."
+ );
}
if ( $selector && $selectorWithVariant ) {
- throw new InvalidArgumentException( "Incompatible 'selector' and 'selectorWithVariant'+'selectorWithoutVariant' given." );
+ throw new InvalidArgumentException(
+ "Incompatible 'selector' and 'selectorWithVariant'+'selectorWithoutVariant' given."
+ );
}
if ( !$prefix && !$selector && !$selectorWithVariant ) {
- throw new InvalidArgumentException( "None of 'prefix', 'selector' or 'selectorWithVariant'+'selectorWithoutVariant' given." );
+ throw new InvalidArgumentException(
+ "None of 'prefix', 'selector' or 'selectorWithVariant'+'selectorWithoutVariant' given."
+ );
}
foreach ( $options as $member => $option ) {
$this->loadFromDefinition();
$this->imageObjects = array();
}
- if ( !isset( $this->imageObjects[ $skin ] ) ) {
- $this->imageObjects[ $skin ] = array();
- if ( !isset( $this->images[ $skin ] ) ) {
- $this->images[ $skin ] = isset( $this->images[ 'default' ] ) ?
- $this->images[ 'default' ] :
+ if ( !isset( $this->imageObjects[$skin] ) ) {
+ $this->imageObjects[$skin] = array();
+ if ( !isset( $this->images[$skin] ) ) {
+ $this->images[$skin] = isset( $this->images['default'] ) ?
+ $this->images['default'] :
array();
}
- foreach ( $this->images[ $skin ] as $name => $options ) {
+ foreach ( $this->images[$skin] as $name => $options ) {
$fileDescriptor = is_string( $options ) ? $options : $options['file'];
$allowedVariants = array_merge(
is_array( $options ) && isset( $options['variants'] ) ? $options['variants'] : array(),
$this->getGlobalVariants( $context )
);
- if ( isset( $this->variants[ $skin ] ) ) {
+ if ( isset( $this->variants[$skin] ) ) {
$variantConfig = array_intersect_key(
- $this->variants[ $skin ],
+ $this->variants[$skin],
array_fill_keys( $allowedVariants, true )
);
} else {
$this->localBasePath,
$variantConfig
);
- $this->imageObjects[ $skin ][ $image->getName() ] = $image;
+ $this->imageObjects[$skin][$image->getName()] = $image;
}
}
- return $this->imageObjects[ $skin ];
+ return $this->imageObjects[$skin];
}
/**
$this->loadFromDefinition();
$this->globalVariants = array();
}
- if ( !isset( $this->globalVariants[ $skin ] ) ) {
- $this->globalVariants[ $skin ] = array();
- if ( !isset( $this->variants[ $skin ] ) ) {
- $this->variants[ $skin ] = isset( $this->variants[ 'default' ] ) ?
- $this->variants[ 'default' ] :
+ if ( !isset( $this->globalVariants[$skin] ) ) {
+ $this->globalVariants[$skin] = array();
+ if ( !isset( $this->variants[$skin] ) ) {
+ $this->variants[$skin] = isset( $this->variants['default'] ) ?
+ $this->variants['default'] :
array();
}
- foreach ( $this->variants[ $skin ] as $name => $config ) {
+ foreach ( $this->variants[$skin] as $name => $config ) {
if ( isset( $config['global'] ) && $config['global'] ) {
- $this->globalVariants[ $skin ][] = $name;
+ $this->globalVariants[$skin][] = $name;
}
}
}
- return $this->globalVariants[ $skin ];
+ return $this->globalVariants[$skin];
}
/**
}
/**
- * @param ResourceLoaderContext $context
- * @return array|null
+ * @return bool
*/
- public function getDefinitionSummary( ResourceLoaderContext $context ) {
- $summary = parent::getDefinitionSummary( $context );
- $summary[] = array(
- 'sanitizerData' => Sanitizer::getRecognizedTagData()
- );
- return $summary;
+ public function enableModuleContentVersion() {
+ return true;
}
}
}
/**
- * @param ResourceLoaderContext $context
- * @return string Hash
+ * @return bool
*/
- public function getModifiedHash( ResourceLoaderContext $context ) {
- return md5( serialize( $this->getData( $context ) ) );
+ public function enableModuleContentVersion() {
+ return true;
}
/**
protected $targets = array( 'desktop', 'mobile' );
-
/**
* @param ResourceLoaderContext $context
* @return array
}
/**
- * @param ResourceLoaderContext $context
- * @return string Hash
+ * @return bool
*/
- public function getModifiedHash( ResourceLoaderContext $context ) {
- return md5( serialize( $this->getData( $context ) ) );
+ public function enableModuleContentVersion() {
+ return true;
}
}
/**
* Whether the position returned by getPosition() is a default value or comes from the module
- * definition. This method is meant to be short-lived, and is only useful until classes added via
- * addModuleStyles with a default value define an explicit position. See getModuleStyles() in
- * OutputPage for the related migration warning.
+ * definition. This method is meant to be short-lived, and is only useful until classes added
+ * via addModuleStyles with a default value define an explicit position. See getModuleStyles()
+ * in OutputPage for the related migration warning.
*
* @return bool
* @since 1.26
}
$dbr = wfGetDB( DB_SLAVE );
- $deps = $dbr->selectField( 'module_deps', 'md_deps', array(
+ $deps = $dbr->selectField( 'module_deps',
+ 'md_deps',
+ array(
'md_module' => $this->getName(),
'md_skin' => $skin,
- ), __METHOD__
+ ),
+ __METHOD__
);
+
if ( !is_null( $deps ) ) {
$this->fileDeps[$skin] = (array)FormatJson::decode( $deps, true );
} else {
$this->fileDeps[$skin] = array();
}
+
return $this->fileDeps[$skin];
}
}
$dbr = wfGetDB( DB_SLAVE );
- $msgBlobMtime = $dbr->selectField( 'msg_resource', 'mr_timestamp', array(
+ $msgBlobMtime = $dbr->selectField( 'msg_resource',
+ 'mr_timestamp',
+ array(
'mr_resource' => $this->getName(),
'mr_lang' => $lang
- ), __METHOD__
+ ),
+ __METHOD__
);
// If no blob was found, but the module does have messages, that means we need
// to regenerate it. Return NOW
// Cache this expensive operation. This calls builds the scripts, styles, and messages
// content which typically involves filesystem and/or database access.
if ( !array_key_exists( $contextHash, $this->contents ) ) {
- $this->contents[ $contextHash ] = $this->buildContent( $context );
+ $this->contents[$contextHash] = $this->buildContent( $context );
}
- return $this->contents[ $contextHash ];
+ return $this->contents[$contextHash];
}
/**
$stylePairs[$media] = array();
foreach ( $style as $cssText ) {
if ( is_string( $cssText ) ) {
- $stylePairs[$media][] = $rl->filter( 'minify-css', $cssText );
+ $stylePairs[$media][] =
+ $rl->filter( 'minify-css', $cssText );
}
}
} elseif ( is_string( $style ) ) {
* @return string Hash (should use ResourceLoader::makeHash)
*/
public function getVersionHash( ResourceLoaderContext $context ) {
+ // The startup module produces a manifest with versions representing the entire module.
+ // Typically, the request for the startup module itself has only=scripts. That must apply
+ // only to the startup module content, and not to the module version computed here.
+ $context = new DerivativeResourceLoaderContext( $context );
+ $context->setModules( array() );
+ // Version hash must cover all resources, regardless of startup request itself.
+ $context->setOnly( null );
+ // Compute version hash based on content, not debug urls.
+ $context->setDebug( false );
+
// Cache this somewhat expensive operation. Especially because some classes
// (e.g. startup module) iterate more than once over all modules to get versions.
$contextHash = $context->getHash();
if ( !array_key_exists( $contextHash, $this->versionHash ) ) {
- $summary = $this->getDefinitionSummary( $context );
- if ( !isset( $summary['_cacheEpoch'] ) ) {
- throw new Exception( 'getDefinitionSummary must call parent method' );
- }
- $str = json_encode( $summary );
+ if ( $this->enableModuleContentVersion() ) {
+ // Detect changes directly
+ $str = json_encode( $this->getModuleContent( $context ) );
+ } else {
+ // Infer changes based on definition and other metrics
+ $summary = $this->getDefinitionSummary( $context );
+ if ( !isset( $summary['_cacheEpoch'] ) ) {
+ throw new LogicException( 'getDefinitionSummary must call parent method' );
+ }
+ $str = json_encode( $summary );
- $mtime = $this->getModifiedTime( $context );
- if ( $mtime !== null ) {
- // Support: MediaWiki 1.25 and earlier
- $str .= strval( $mtime );
- }
+ $mtime = $this->getModifiedTime( $context );
+ if ( $mtime !== null ) {
+ // Support: MediaWiki 1.25 and earlier
+ $str .= strval( $mtime );
+ }
- $mhash = $this->getModifiedHash( $context );
- if ( $mhash !== null ) {
- // Support: MediaWiki 1.25 and earlier
- $str .= strval( $mhash );
+ $mhash = $this->getModifiedHash( $context );
+ if ( $mhash !== null ) {
+ // Support: MediaWiki 1.25 and earlier
+ $str .= strval( $mhash );
+ }
}
- $this->versionHash[ $contextHash ] = ResourceLoader::makeHash( $str );
+ $this->versionHash[$contextHash] = ResourceLoader::makeHash( $str );
}
- return $this->versionHash[ $contextHash ];
+ return $this->versionHash[$contextHash];
+ }
+
+ /**
+ * Whether to generate version hash based on module content.
+ *
+ * If a module requires database or file system access to build the module
+ * content, consider disabling this in favour of manually tracking relevant
+ * aspects in getDefinitionSummary(). See getVersionHash() for how this is used.
+ *
+ * @return bool
+ */
+ public function enableModuleContentVersion() {
+ return false;
}
/**
protected function validateScriptFile( $fileName, $contents ) {
if ( $this->getConfig()->get( 'ResourceLoaderValidateJS' ) ) {
// Try for cache hit
- // Use CACHE_ANYTHING since filtering is very slow compared to DB queries
- $key = wfMemcKey( 'resourceloader', 'jsparse', self::$parseCacheVersion, md5( $contents ) );
+ // Use CACHE_ANYTHING since parsing JS is much slower than a DB query
+ $key = wfMemcKey(
+ 'resourceloader',
+ 'jsparse',
+ self::$parseCacheVersion,
+ md5( $contents )
+ );
$cache = wfGetCache( CACHE_ANYTHING );
$cacheEntry = $cache->get( $key );
if ( is_string( $cacheEntry ) ) {
} catch ( Exception $e ) {
// We'll save this to cache to avoid having to validate broken JS over and over...
$err = $e->getMessage();
- $result = "mw.log.error(" . Xml::encodeJsVar( "JavaScript parse error: $err" ) . ");";
+ $result = "mw.log.error(" .
+ Xml::encodeJsVar( "JavaScript parse error: $err" ) . ");";
}
$cache->set( $key, $result );
array_walk( $data['images'], function ( &$value ) use ( $fixPath ) {
if ( is_string( $value['file'] ) ) {
$fixPath( $value['file'] );
- } else if ( is_array( $value['file'] ) ) {
+ } elseif ( is_array( $value['file'] ) ) {
array_walk_recursive( $value['file'], $fixPath );
}
} );
if ( !isset( $definition[$key] ) ) {
$definition[$key] = $data[$key];
} elseif ( $definition[$key] !== $data[$key] ) {
- throw new Exception( "Mismatched OOUI theme definitions are not supported: trying to load $key of $theme theme" );
+ throw new Exception(
+ "Mismatched OOUI theme definitions are not supported: trying to load $key of $theme theme"
+ );
}
break;
}
'(min-resolution: 1.5dppx), ' .
'(min-resolution: 144dpi)'
][] = '.mw-wiki-logo { background-image: ' .
- CSSMin::buildUrlValue( $logoHD['1.5x'] ) .';' .
+ CSSMin::buildUrlValue( $logoHD['1.5x'] ) . ';' .
'background-size: 135px auto; }';
}
if ( isset( $logoHD['2x'] ) ) {
$styles[
'(-webkit-min-device-pixel-ratio: 2), ' .
- '(min--moz-device-pixel-ratio: 2),'.
+ '(min--moz-device-pixel-ratio: 2),' .
'(min-resolution: 2dppx), ' .
'(min-resolution: 192dpi)'
][] = '.mw-wiki-logo { background-image: ' .
}
/**
- * @param ResourceLoaderContext $context
- * @return string Hash
+ * @return bool
*/
- public function getModifiedHash( ResourceLoaderContext $context ) {
- return md5( serialize( $this->getData() ) );
+ public function enableModuleContentVersion() {
+ return true;
}
/**
// Pre-populate versionHash with something because the loop over all modules below includes
// the startup module (this module).
// See ResourceLoaderModule::getVersionHash() for usage of this cache.
- $this->versionHash[ $context->getHash() ] = null;
+ $this->versionHash[$context->getHash()] = null;
return $rl->getCombinedVersion( $context, $rl->getModuleNames() );
}
protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
/**
- * @param ResourceLoaderContext $context
- * @return array|int|mixed
+ * @return bool
*/
- public function getModifiedTime( ResourceLoaderContext $context ) {
- return wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
+ public function enableModuleContentVersion() {
+ return true;
}
/**
*/
class ResourceLoaderUserDefaultsModule extends ResourceLoaderModule {
- /* Protected Members */
-
protected $targets = array( 'desktop', 'mobile' );
- /* Methods */
-
/**
- * @param ResourceLoaderContext $context
- * @return string Hash
+ * @return bool
*/
- public function getModifiedHash( ResourceLoaderContext $context ) {
- return md5( serialize( User::getDefaultOptions() ) );
+ public function enableModuleContentVersion() {
+ return true;
}
/**
}
/**
- * @param ResourceLoaderContext $context
- * @return int
+ * @return bool
*/
- public function getModifiedTime( ResourceLoaderContext $context ) {
- return wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
+ public function enableModuleContentVersion() {
+ return true;
}
/**
return $styles;
}
+ /**
+ * Disable module content versioning.
+ *
+ * This class does not support generating content outside of a module
+ * request due to foreign database support.
+ *
+ * See getDefinitionSummary() for meta-data versioning.
+ *
+ * @return bool
+ */
+ public function enableModuleContentVersion() {
+ return false;
+ }
+
/**
* @param ResourceLoaderContext $context
* @return array
$pages = $this->getPages( $context );
$key = implode( '|', array_keys( $pages ) );
if ( !isset( $this->titleInfo[$key] ) ) {
-
$this->titleInfo[$key] = array();
$batch = new LinkBatch;
foreach ( $pages as $titleText => $options ) {
}
// calc by how much to extend existing snippets
- $targetchars = intval( ( $contextchars * $contextlines ) / count ( $snippets ) );
+ $targetchars = intval( ( $contextchars * $contextlines ) / count( $snippets ) );
}
foreach ( $snippets as $index => $line ) {
}
return $this->msg( 'retrievedfrom' )
- ->rawParams( '<a dir="ltr" href="' . $url. '">' . $url . '</a>' )
+ ->rawParams( '<a dir="ltr" href="' . $url . '">' . $url . '</a>' )
->parse();
}
if ( file_exists( "$IP/skins/$skin/skin.json" ) ) {
return "wfLoadSkin( '$skin' );";
} else {
- return "require_once \"\$IP/skins/$skin/$skin.php\";";
+ return "require_once \"\$IP/skins/$skin/$skin.php\";";
}
}
array( 'DeadendPagesPage', 'Deadendpages' ),
array( 'DoubleRedirectsPage', 'DoubleRedirects' ),
array( 'FileDuplicateSearchPage', 'FileDuplicateSearch' ),
- array( 'ListDuplicatedFilesPage', 'ListDuplicatedFiles'),
+ array( 'ListDuplicatedFilesPage', 'ListDuplicatedFiles' ),
array( 'LinkSearchPage', 'LinkSearch' ),
array( 'ListredirectsPage', 'Listredirects' ),
array( 'LonelyPagesPage', 'Lonelypages' ),
return $this->cachedTimestamp;
}
+ /**
+ * Returns limit and offset, as returned by $this->getRequest()->getLimitOffset().
+ * Subclasses may override this to further restrict or modify limit and offset.
+ *
+ * @since 1.26
+ *
+ * @return int[] list( $limit, $offset )
+ */
+ protected function getLimitOffset() {
+ return $this->getRequest()->getLimitOffset();
+ }
+
/**
* This is the actual workhorse. It does everything needed to make a
* real, honest-to-gosh query page.
$out->setSyndicated( $this->isSyndicated() );
if ( $this->limit == 0 && $this->offset == 0 ) {
- list( $this->limit, $this->offset ) = $this->getRequest()->getLimitOffset();
+ list( $this->limit, $this->offset ) = $this->getLimitOffset();
}
// @todo Use doQuery()
* - limit, offset: Useful for linking to history of one's own user page or
* user talk page. For example, this would be a link to "the last edit to your
* user talk page in the year 2010":
- * http://en.wikipedia.org/wiki/Special:MyPage?offset=20110000000000&limit=1&action=history
+ * https://en.wikipedia.org/wiki/Special:MyPage?offset=20110000000000&limit=1&action=history
*
* - feed: would allow linking to the current user's RSS feed for their user
* talk page:
- * http://en.wikipedia.org/w/index.php?title=Special:MyTalk&action=history&feed=rss
+ * https://en.wikipedia.org/w/index.php?title=Special:MyTalk&action=history&feed=rss
*
* - preloadtitle: Can be used to provide a default section title for a
* preloaded new comment on one's own talk page.
* - redlink: Affects the message the user sees if their talk page/user talk
* page does not currently exist. Avoids confusion for newbies with no user
* pages over why they got a "permission error" following this link:
- * http://en.wikipedia.org/w/index.php?title=Special:MyPage&redlink=1
+ * https://en.wikipedia.org/w/index.php?title=Special:MyPage&redlink=1
*
* - debug: determines whether the debug parameter is passed to load.php,
* which disables reformatting and allows scripts to be debugged. Useful
$context->setTitle( $page->getPageTitle( $par ) );
}
} elseif ( !$page->isIncludable() ) {
-
return false;
}
);
}
- return $title . ' '
- . $this->msg( 'parentheses' )->rawParams( $talk )->escaped()
- . ' '
- . $this->msg( 'parentheses' )->rawParams( $translation )->escaped();
+ return $title . ' ' .
+ $this->msg( 'parentheses' )->rawParams( $talk )->escaped() .
+ ' ' .
+ $this->msg( 'parentheses' )->rawParams( $translation )->escaped();
case 'am_default' :
case 'am_actual' :
$lb->setCaller( __METHOD__ );
foreach ( $result as $row ) {
- # Usernames and titles are in fact related by a simple substitution of space -> underscore
- # The last few lines of Title::secureAndSplit() tell the story.
- $name = str_replace( ' ', '_', $row->ipb_address );
- $lb->add( NS_USER, $name );
- $lb->add( NS_USER_TALK, $name );
+ $lb->add( NS_USER, $row->ipb_address );
+ $lb->add( NS_USER_TALK, $row->ipb_address );
if ( isset( $row->by_user_name ) ) {
- $username = str_replace( ' ', '_', $row->by_user_name );
- $lb->add( NS_USER, $username );
- $lb->add( NS_USER_TALK, $username );
+ $lb->add( NS_USER, $row->by_user_name );
+ $lb->add( NS_USER_TALK, $row->by_user_name );
}
}
$categoryName = '';
}
- $form = Xml::openElement( 'form', array( 'method' => 'post',
- 'action' => $this->getPageTitle()->getLocalURL( 'action=submit' ) ) );
- $form .= Xml::inputLabel(
- $this->msg( 'export-addcattext' )->text(),
- 'catname',
- 'catname',
- 40,
- $categoryName
- ) . ' ';
- $form .= Xml::submitButton(
- $this->msg( 'export-addcat' )->text(),
- array( 'name' => 'addcat' )
- ) . '<br />';
-
+ $formDescriptor = array(
+ 'catname' => array(
+ 'type' => 'textwithbutton',
+ 'name' => 'catname',
+ 'horizontal-label' => true,
+ 'label-message' => 'export-addcattext',
+ 'default' => $categoryName,
+ 'size' => 40,
+ 'buttontype' => 'submit',
+ 'buttonname' => 'addcat',
+ 'buttondefault' => $this->msg( 'export-addcat' )->text(),
+ ),
+ );
if ( $config->get( 'ExportFromNamespaces' ) ) {
- $form .= Html::namespaceSelector(
- array(
- 'selected' => $nsindex,
- 'label' => $this->msg( 'export-addnstext' )->text()
- ), array(
+ $formDescriptor += array(
+ 'nsindex' => array(
+ 'type' => 'namespaceselectwithbutton',
+ 'default' => $nsindex,
+ 'label-message' => 'export-addnstext',
+ 'horizontal-label' => true,
'name' => 'nsindex',
'id' => 'namespace',
- 'class' => 'namespaceselector',
- )
- ) . ' ';
- $form .= Xml::submitButton(
- $this->msg( 'export-addns' )->text(),
- array( 'name' => 'addns' )
- ) . '<br />';
+ 'cssclass' => 'namespaceselector',
+ 'buttontype' => 'submit',
+ 'buttonname' => 'addns',
+ 'buttondefault' => $this->msg( 'export-addns' )->text(),
+ ),
+ );
}
if ( $config->get( 'ExportAllowAll' ) ) {
- $form .= Xml::checkLabel(
- $this->msg( 'exportall' )->text(),
- 'exportall',
- 'exportall',
- $request->wasPosted() ? $request->getCheck( 'exportall' ) : false
- ) . '<br />';
+ $formDescriptor += array(
+ 'exportall' => array(
+ 'type' => 'check',
+ 'label-message' => 'exportall',
+ 'name' => 'exportall',
+ 'id' => 'exportall',
+ 'default' => $request->wasPosted() ? $request->getCheck( 'exportall' ) : false,
+ ),
+ );
}
- $form .= Xml::element(
- 'textarea',
- array( 'name' => 'pages', 'cols' => 40, 'rows' => 10 ),
- $page,
- false
+ $formDescriptor += array(
+ 'textarea' => array(
+ 'class' => 'HTMLTextAreaField',
+ 'name' => 'pages',
+ 'nodata' => true,
+ 'cols' => 40,
+ 'rows' => 10,
+ 'default' => $page,
+ ),
);
- $form .= '<br />';
if ( $config->get( 'ExportAllowHistory' ) ) {
- $form .= Xml::checkLabel(
- $this->msg( 'exportcuronly' )->text(),
- 'curonly',
- 'curonly',
- $request->wasPosted() ? $request->getCheck( 'curonly' ) : true
- ) . '<br />';
+ $formDescriptor += array(
+ 'curonly' => array(
+ 'type' => 'check',
+ 'label-message' => 'exportcuronly',
+ 'name' => 'curonly',
+ 'id' => 'curonly',
+ 'default' => $request->wasPosted() ? $request->getCheck( 'curonly' ) : true,
+ ),
+ );
} else {
$out->addWikiMsg( 'exportnohistory' );
}
- $form .= Xml::checkLabel(
- $this->msg( 'export-templates' )->text(),
- 'templates',
- 'wpExportTemplates',
- $request->wasPosted() ? $request->getCheck( 'templates' ) : false
- ) . '<br />';
+ $formDescriptor += array(
+ 'templates' => array(
+ 'type' => 'check',
+ 'label-message' => 'export-templates',
+ 'name' => 'templates',
+ 'id' => 'wpExportTemplates',
+ 'default' => $request->wasPosted() ? $request->getCheck( 'templates' ) : false,
+ ),
+ );
if ( $config->get( 'ExportMaxLinkDepth' ) || $this->userCanOverrideExportDepth() ) {
- $form .= Xml::inputLabel(
- $this->msg( 'export-pagelinks' )->text(),
- 'pagelink-depth',
- 'pagelink-depth',
- 20,
- 0
- ) . '<br />';
+ $formDescriptor += array(
+ 'pagelink-depth' => array(
+ 'type' => 'text',
+ 'name' => 'pagelink-depth',
+ 'id' => 'pagelink-depth',
+ 'label-message' => 'export-pagelinks',
+ 'default' => '0',
+ 'size' => 20,
+ ),
+ );
}
- /* Enable this when we can do something useful exporting/importing image information.
- $form .= Xml::checkLabel(
- $this->msg( 'export-images' )->text(),
- 'images',
- 'wpExportImages',
- false
- ) . '<br />';
- */
- $form .= Xml::checkLabel(
- $this->msg( 'export-download' )->text(),
- 'wpDownload',
- 'wpDownload',
- $request->wasPosted() ? $request->getCheck( 'wpDownload' ) : true
- ) . '<br />';
+ $formDescriptor += array(
+ /* Enable this when we can do something useful exporting/importing image information.
+ 'images' => array(
+ 'type' => 'check',
+ 'name' => 'images',
+ 'id' => 'wpExportImages',
+ 'default' => false,
+ ),*/
+ 'wpDownload' => array(
+ 'type' => 'check',
+ 'name' =>'wpDownload',
+ 'id' => 'wpDownload',
+ 'default' => $request->wasPosted() ? $request->getCheck( 'wpDownload' ) : true,
+ 'label-message' => 'export-download',
+ ),
+ );
if ( $config->get( 'ExportAllowListContributors' ) ) {
- $form .= Xml::checkLabel(
- $this->msg( 'exportlistauthors' )->text(),
- 'listauthors',
- 'listauthors',
- $request->wasPosted() ? $request->getCheck( 'listauthors' ) : false
- ) . '<br />';
+ $formDescriptor += array(
+ 'listauthors' => array(
+ 'type' => 'check',
+ 'label-message' => 'exportlistauthors',
+ 'default' => $request->wasPosted() ? $request->getCheck( 'listauthors' ) : false,
+ 'name' => 'listauthors',
+ 'id' => 'listauthors',
+ ),
+ );
}
- $form .= Xml::submitButton(
- $this->msg( 'export-submit' )->text(),
- Linker::tooltipAndAccesskeyAttribs( 'export' )
- );
- $form .= Xml::closeElement( 'form' );
-
- $out->addHTML( $form );
+ $htmlForm = HTMLForm::factory( 'div', $formDescriptor, $this->getContext() );
+ $htmlForm->setSubmitTextMsg( 'export-submit' );
+ $htmlForm->prepareForm()->displayForm( false );
$this->addHelpLink( 'Help:Export' );
}
if ( $exportall ) {
$history = WikiExporter::FULL;
} else {
-
$pageSet = array(); // Inverted index of all pages to look up
// Split up and normalize input
// writes a script tag (the one loading mediawiki.js). Script tags are synchronous, block
// each other, and run in order. But they don't nest. The code appended after the startup
// module runs before the added script tag is parsed and executed.
- echo Xml::encodeJsCall( 'document.write', array( Html::inlineScript( $code ) ) );
+ echo Xml::encodeJsCall( 'document.write', array( Html::inlineScript( $code ) ) );
}
private function plainQUnit() {
* Return HTML to put just before the results.
*/
function getPageHeader() {
-
return Xml::openElement(
'form',
array( 'id' => 'specialmimesearch', 'method' => 'get', 'action' => wfScript() )
'mw-mediastats-table-' . strtolower( $mediaType ),
'sortable',
'wikitable'
- ))
+ ) )
)
);
$this->getOutput()->addHTML( $this->getTableHeaderRow() );
array( 'class' => array(
'mw-mediastats-mediatype',
'mw-mediastats-mediatype-' . strtolower( $mediaType )
- )),
+ ) ),
// for grep
// mediastatistics-header-unknown, mediastatistics-header-bitmap,
// mediastatistics-header-drawing, mediastatistics-header-audio,
'name' => 'invert',
'label-message' => 'invert',
'default' => $nsinvert,
- 'tooltip' => $this->msg( 'tooltip-invert' )->text(),
+ 'tooltip' => 'invert',
),
'tagFilter' => array(
'type' => 'tagfilter',
foreach ( $this->mResult as $row ) {
$linkBatch->add( NS_USER, $row->rc_user_text );
$linkBatch->add( NS_USER_TALK, $row->rc_user_text );
- $linkBatch->add( $row->rc_namespace, $row->rc_title );
+ $linkBatch->add( $row->page_namespace, $row->page_title );
}
$linkBatch->execute();
* @return string
*/
function formatRow( $row ) {
-
$title = Title::makeTitleSafe( $row->pt_namespace, $row->pt_title );
if ( !$title ) {
-
return Html::rawElement(
'li',
array(),
* @ingroup SpecialPage
*/
class SpecialTags extends SpecialPage {
+
+ /**
+ * @var array List of explicitly defined tags
+ */
+ protected $explicitlyDefinedTags;
+
/**
- * @var array List of defined tags
+ * @var array List of extension defined tags
*/
- public $definedTags;
+ protected $extensionDefinedTags;
+
/**
- * @var array List of active tags
+ * @var array List of extension activated tags
*/
- public $activeTags;
+ protected $extensionActivatedTags;
function __construct() {
parent::__construct( 'Tags' );
$out->wrapWikiMsg( "<div class='mw-tags-intro'>\n$1\n</div>", 'tags-intro' );
$user = $this->getUser();
+ $userCanManage = $user->isAllowed( 'managechangetags' );
+ $userCanEditInterface = $user->isAllowed( 'editinterface' );
// Show form to create a tag
- if ( $user->isAllowed( 'managechangetags' ) ) {
+ if ( $userCanManage ) {
$fields = array(
'Tag' => array(
'type' => 'text',
}
}
- // Whether to show the "Actions" column in the tag list
- // If any actions added in the future require other user rights, add those
- // rights here
- $showActions = $user->isAllowed( 'managechangetags' );
+ // Used to get hitcounts for #doTagRow()
+ $tagStats = ChangeTags::tagUsageStatistics();
- // Write the headers
- $tagUsageStatistics = ChangeTags::tagUsageStatistics();
+ // Used in #doTagRow()
+ $this->explicitlyDefinedTags = array_fill_keys(
+ ChangeTags::listExplicitlyDefinedTags(), true );
+ $this->extensionDefinedTags = array_fill_keys(
+ ChangeTags::listExtensionDefinedTags(), true );
+
+ // List all defined tags, even if they were never applied
+ $definedTags = array_keys( array_merge(
+ $this->explicitlyDefinedTags, $this->extensionDefinedTags ) );
// Show header only if there exists atleast one tag
- if ( !$tagUsageStatistics ) {
+ if ( !$tagStats && !$definedTags ) {
return;
}
+
+ // Write the headers
$html = Xml::tags( 'tr', null, Xml::tags( 'th', null, $this->msg( 'tags-tag' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-source-header' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() ) .
- ( $showActions ?
+ ( $userCanManage ?
Xml::tags( 'th', array( 'class' => 'unsortable' ),
$this->msg( 'tags-actions-header' )->parse() ) :
'' )
);
// Used in #doTagRow()
- $this->explicitlyDefinedTags = array_fill_keys(
- ChangeTags::listExplicitlyDefinedTags(), true );
- $this->extensionDefinedTags = array_fill_keys(
- ChangeTags::listExtensionDefinedTags(), true );
$this->extensionActivatedTags = array_fill_keys(
ChangeTags::listExtensionActivatedTags(), true );
- foreach ( $tagUsageStatistics as $tag => $hitcount ) {
- $html .= $this->doTagRow( $tag, $hitcount, $showActions );
+ // Insert tags that have been applied at least once
+ foreach ( $tagStats as $tag => $hitcount ) {
+ $html .= $this->doTagRow( $tag, $hitcount, $userCanManage, $userCanEditInterface );
+ }
+ // Insert tags defined somewhere but never applied
+ foreach ( $definedTags as $tag ) {
+ if ( !isset( $tagStats[$tag] ) ) {
+ $html .= $this->doTagRow( $tag, 0, $userCanManage, $userCanEditInterface );
+ }
}
$out->addHTML( Xml::tags(
) );
}
- function doTagRow( $tag, $hitcount, $showActions ) {
- $user = $this->getUser();
+ function doTagRow( $tag, $hitcount, $showActions, $showEditLinks ) {
$newRow = '';
$newRow .= Xml::tags( 'td', null, Xml::element( 'code', null, $tag ) );
$disp = ChangeTags::tagDescription( $tag );
- if ( $user->isAllowed( 'editinterface' ) ) {
+ if ( $showEditLinks ) {
$disp .= ' ';
$editLink = Linker::link(
$this->msg( "tag-$tag" )->inContentLanguage()->getTitle(),
$msg = $this->msg( "tag-$tag-description" );
$desc = !$msg->exists() ? '' : $msg->parse();
- if ( $user->isAllowed( 'editinterface' ) ) {
+ if ( $showEditLinks ) {
$desc .= ' ';
$editDescLink = Linker::link(
$this->msg( "tag-$tag-description" )->inContentLanguage()->getTitle(),
$newRow .= Xml::tags( 'td', array( 'data-sort-value' => $hitcount ), $hitcountLink );
// actions
- $actionLinks = array();
- if ( $showActions ) {
+ if ( $showActions ) { // we've already checked that the user had the requisite userright
+ $actionLinks = array();
+
// delete
- if ( ChangeTags::canDeleteTag( $tag, $user )->isOK() ) {
+ if ( ChangeTags::canDeleteTag( $tag )->isOK() ) {
$actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'delete' ),
$this->msg( 'tags-delete' )->escaped(),
array(),
}
// activate
- if ( ChangeTags::canActivateTag( $tag, $user )->isOK() ) {
+ if ( ChangeTags::canActivateTag( $tag )->isOK() ) {
$actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'activate' ),
$this->msg( 'tags-activate' )->escaped(),
array(),
}
// deactivate
- if ( ChangeTags::canDeactivateTag( $tag, $user )->isOK() ) {
+ if ( ChangeTags::canDeactivateTag( $tag )->isOK() ) {
$actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'deactivate' ),
$this->msg( 'tags-deactivate' )->escaped(),
array(),
*/
private function outputRemoteScaledThumb( $file, $params, $flags ) {
// This option probably looks something like
- // 'http://upload.wikimedia.org/wikipedia/test/thumb/temp'. Do not use
+ // '//upload.wikimedia.org/wikipedia/test/thumb/temp'. Do not use
// trailing slash.
$scalerBaseUrl = $this->getConfig()->get( 'UploadStashScalerBaseUrl' );
* @return Status
*/
public function addNewAccountInternal() {
- global $wgAuth, $wgMemc, $wgAccountCreationThrottle,
- $wgMinimalPasswordLength, $wgEmailConfirmToEdit;
+ global $wgAuth, $wgMemc, $wgAccountCreationThrottle, $wgEmailConfirmToEdit;
// If the user passes an invalid domain, something is fishy
if ( !$wgAuth->validDomain( $this->mDomain ) ) {
if ( $remove ) {
foreach ( $remove as $index => $group ) {
if ( !$user->removeGroup( $group ) ) {
- unset($remove[$index]);
+ unset( $remove[$index] );
}
}
$newGroups = array_diff( $newGroups, $remove );
if ( $add ) {
foreach ( $add as $index => $group ) {
if ( !$user->addGroup( $group ) ) {
- unset($add[$index]);
+ unset( $add[$index] );
}
}
$newGroups = array_merge( $newGroups, $add );
* If there was no filename or a zero size given, give up quick.
*/
if ( $this->isEmptyFile() ) {
-
return array( 'status' => self::EMPTY_FILE );
}
*/
$maxSize = self::getMaxUploadSize( $this->getSourceType() );
if ( $this->mFileSize > $maxSize ) {
-
return array(
'status' => self::FILE_TOO_LARGE,
'max' => $maxSize,
*/
$verification = $this->verifyFile();
if ( $verification !== true ) {
-
return array(
'status' => self::VERIFICATION_ERROR,
'details' => $verification
*/
$result = $this->validateName();
if ( $result !== true ) {
-
return $result;
}
if ( !Hooks::run( 'UploadVerification',
array( $this->mDestName, $this->mTempPath, &$error ) )
) {
-
return array( 'status' => self::HOOK_ABORTED, 'error' => $error );
}
wfDebug( "mime: <$mime> extension: <{$this->mFinalExtension}>\n" );
global $wgMimeTypeBlacklist;
if ( $this->checkFileExtension( $mime, $wgMimeTypeBlacklist ) ) {
-
return array( 'filetype-badmime', $mime );
}
$ieTypes = $magic->getIEMimeTypes( $this->mTempPath, $chunk, $extMime );
foreach ( $ieTypes as $ieType ) {
if ( $this->checkFileExtension( $ieType, $wgMimeTypeBlacklist ) ) {
-
return array( 'filetype-bad-ie-mime', $ieType );
}
}
$status = $this->verifyPartialFile();
if ( $status !== true ) {
-
return $status;
}
if ( $wgVerifyMimeType ) {
# XXX: Missing extension will be caught by validateName() via getTitle()
if ( $this->mFinalExtension != '' && !$this->verifyExtension( $mime, $this->mFinalExtension ) ) {
-
return array( 'filetype-mime-mismatch', $this->mFinalExtension, $mime );
}
}
if ( $this->mFinalExtension == 'svg' || $mime == 'image/svg+xml' ) {
$svgStatus = $this->detectScriptInSvg( $this->mTempPath, false );
if ( $svgStatus !== false ) {
-
return $svgStatus;
}
}
Hooks::run( 'UploadVerifyFile', array( $this, $mime, &$status ) );
if ( $status !== true ) {
-
return $status;
}
$mime = $this->mFileProps['file-mime'];
$status = $this->verifyMimeType( $mime );
if ( $status !== true ) {
-
return $status;
}
# check for htmlish code and javascript
if ( !$wgDisableUploadScriptChecks ) {
if ( self::detectScript( $this->mTempPath, $mime, $this->mFinalExtension ) ) {
-
return array( 'uploadscripted' );
}
if ( $this->mFinalExtension == 'svg' || $mime == 'image/svg+xml' ) {
$svgStatus = $this->detectScriptInSvg( $this->mTempPath, true );
if ( $svgStatus !== false ) {
-
return $svgStatus;
}
}
$errors = $zipStatus->getErrorsArray();
$error = reset( $errors );
if ( $error[0] !== 'zip-wrong-format' ) {
-
return $error;
}
}
if ( $this->mJavaDetected ) {
-
return array( 'uploadjava' );
}
}
# Scan the uploaded file for viruses
$virus = $this->detectVirus( $this->mTempPath );
if ( $virus ) {
-
return array( 'uploadvirus', $virus );
}
$chunk = strtolower( $chunk );
if ( !$chunk ) {
-
return false;
}
# check for HTML doctype
if ( preg_match( "/<!DOCTYPE *X?HTML/i", $chunk ) ) {
-
return true;
}
// PHP/expat will interpret the given encoding in the xml declaration (bug 47304)
if ( $extension == 'svg' || strpos( $mime, 'image/svg' ) === 0 ) {
if ( self::checkXMLEncodingMissmatch( $file ) ) {
-
return true;
}
}
wfDebugLog(
'fileupload',
'Short write ' . $this->nbytes . '/' . strlen( $buffer ) .
- ' bytes, aborting with ' . $this->mFileSize . ' uploaded so far'
+ ' bytes, aborting with ' . $this->mFileSize . ' uploaded so far'
);
fclose( $this->mTmpHandle );
$this->mTmpHandle = false;
case 'xmn':
$usedHijriMonth = true;
if ( !$hijri ) {
- $hijri = self::tsToHijri ( $ts );
+ $hijri = self::tsToHijri( $ts );
}
$num = $hijri[1];
break;
// the string does not have any number part. Eg: .12345
return $sign . $groupedNumber;
}
- $start = $end = ($integerPart) ? strlen( $integerPart[0] ) : 0;
+ $start = $end = ( $integerPart ) ? strlen( $integerPart[0] ) : 0;
while ( $start > 0 ) {
$match = $matches[0][$numMatches - 1];
$matchLen = strlen( $match );
*/
function iconv( $in, $out, $string ) {
if ( strcasecmp( $in, 'x' ) == 0 && strcasecmp( $out, 'utf-8' ) == 0 ) {
- return preg_replace_callback (
+ return preg_replace_callback(
'/([cghjsu]x?)((?:xx)*)(?!x)/i',
array( $this, 'strrtxuCallback' ), $string );
} elseif ( strcasecmp( $in, 'UTF-8' ) == 0 && strcasecmp( $out, 'x' ) == 0 ) {
);
$final = '';
- $tokens = explode ( ' ', $str );
+ $tokens = explode( ' ', $str );
foreach ( $tokens as $item ) {
if ( !is_numeric( $item ) ) {
- if ( count ( explode( '-', $item ) ) == 3 && strlen( $item ) == 10 ) {
+ if ( count( explode( '-', $item ) ) == 3 && strlen( $item ) == 10 ) {
list( $yyyy, $mm, $dd ) = explode( '-', $item );
$final .= ' ' . $this->date( "{$yyyy}{$mm}{$dd}000000" );
continue;
function convertGrammar( $word, $case ) {
$lord = strtolower( $word );
$gender = 'm'; // Nuutnaarel // default
- if ( preg_match ( '/wiki$/', $lord ) ) {
+ if ( preg_match( '/wiki$/', $lord ) ) {
$gender = 'n'; // Dat xyz-wiki
}
if ( isset( self::$familygender[$lord] ) ) {
"no-null-revision": "Nun pudo crease una nueva revisión nula pa la páxina «$1»",
"badtitle": "Títulu incorreutu",
"badtitletext": "El títulu de páxina solicitáu nun ye válidu, ta baleru o tien enllaces interllingua o interwiki incorreutos.\nPue contener un caráuter o más que nun puen usase nos títulos.",
+ "title-invalid-empty": "El títulu de páxina solicitáu ta baleru o sólo contien el nome d'un espaciu de nomes.",
+ "title-invalid-utf8": "El títulu de páxina solicitáu contien una secuencia UTF-8 inválida.",
+ "title-invalid-interwiki": "El títulu de páxina solicitáu contien un enllaz interwiki que nun puede usase nos títulos.",
+ "title-invalid-talk-namespace": "El títulu de páxina solicitáu fai referencia a una páxina d'alderique que nun puede esistir.",
"title-invalid-characters": "El títulu de la páxina solicitada contien calteres non válidos: «$1»",
+ "title-invalid-relative": "El títulu contien un camín relativu. Los títulos de páxina relativos (./, ../) son inválidos porque de vezu nun se puede llegar al pasalos a los restoladores web.",
+ "title-invalid-magic-tilde": "El títulu de páxina solicitáu contien una secuencia máxica de tildes (<nowiki>~~~</nowiki>) inválida.",
+ "title-invalid-too-long": "El títulu de páxina solicitáu ye llargu enforma. Nun tien de pasar de $1 {{PLURAL:$1|byte|bytes}} en codificación UTF-8.",
+ "title-invalid-leading-colon": "El títulu de páxina solicitáu contién un caráuter dos puntos inválidu al principiu.",
"perfcached": "Los datos siguientes tán na caché y seique nun tean anovaos. Hai un máximu {{PLURAL:$1|d'un resultáu disponible|de $1 resultaos disponibles}} na caché.",
"perfcachedts": "Los datos siguientes tán na caché y anovaronse por última vegada'l $1. Hai un máximu {{PLURAL:$4|d'un resultáu disponible|de $4 resultaos disponibles}} na caché.",
"querypage-no-updates": "Anguaño los anovamientos d'esta páxina tán desactivaos.\nEstos datos nun van refrescase nestos momentos.",
"content-model-css": "CSS",
"content-json-empty-object": "Oxetu baleru",
"content-json-empty-array": "Matriz balera",
+ "duplicate-args-warning": "<strong>Avisu:</strong> [[:$1]] llama a [[:$2]] con más d'un valor pal parámetru «$3». Sólo va usase l'últimu valor dau.",
"duplicate-args-category": "Páxines con argumentos duplicaos nes llamaes a plantíes",
"duplicate-args-category-desc": "La páxina contien llamaes a plantíes qu'usen argumentos duplicaos, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "'''Avisu:''' Esta páxina contien demasiaes llamaes costoses a funciones d'análisis sintácticu.\n\nHabría tener menos de $2 {{PLURAL:$2|llamada|llamaes}}, y agora tien $1 {{PLURAL:$1|llamada|llamaes}}.",
"badsig": "Firma cruda non válida; comprueba les etiquetes HTML.",
"badsiglength": "La to robla ye demasiao llarga.\nHa tener menos de $1 {{PLURAL:$1|caráuter|carauteres}}.",
"yourgender": "¿Qué descripción prefieres?",
- "gender-unknown": "Prefiero nun dar detalles",
+ "gender-unknown": "Al mentate, el software usará palabres de xéneru neutru siempre que seya posible",
"gender-male": "Él edita páxines wiki",
"gender-female": "Ella edita páxines wiki",
"prefs-help-gender": "Configurar esta preferencia ye opcional. El software usa esti valor pa dirixise a ti y pa mentate a terceros col xéneru gramatical correchu.\nEsta información sedrá pública.",
"userrights-lookup-user": "Xestión de grupos del usuariu",
"userrights-user-editname": "Escribi un nome d'usuariu:",
"editusergroup": "Modificar grupos d'usuariu",
- "editinguser": "Camudando los permisos del usuariu '''[[User:$1|$1]]''' $2",
+ "editinguser": "Camudando los permisos {{GENDER:$1|del usuariu|de la usuaria}} <strong>[[User:$1|$1]]</strong> $2",
"userrights-editusergroup": "Editar los grupos d'usuariu",
"saveusergroups": "Guardar los grupos d'usuariu",
"userrights-groupsmember": "Miembru de:",
"uploaddisabledtext": "Les xubíes de ficheros tán desactivaes.",
"php-uploaddisabledtext": "Les xubíes de ficheros tan desactivaes en PHP.\nPor favor, comprueba la configuración de file_uploads.",
"uploadscripted": "Esti ficheru contien códigu HTML o scripts que pueden interpretase de mou equivocáu por un navegador.",
+ "upload-scripted-pi-callback": "Nun puede xubise un ficheru que contien instrucciones de procesamientu XML de fueya d'estilu.",
+ "uploaded-script-svg": "Alcontróse l'elementu «$1» que puede recibir scripts nel ficheru SVG xubíu.",
+ "uploaded-hostile-svg": "Alcontróse CSS inseguru nel elementu d'estilu del ficheru SVG xubíu.",
+ "uploaded-event-handler-on-svg": "Nun se permite configurar los atributos de controladores de socesos <code>$1=\"$2\"</code> nos ficheros SVG.",
+ "uploaded-href-attribute-svg": "Nun se permiten los atributos href <code><$1 $2=\"$3\"></code> con destín nun llocal (p. ex. http://, javascript:, etc) nos ficheros SVG.",
+ "uploaded-href-unsafe-target-svg": "Alcontróse un \"href\" a un destín inseguru <code><$1 $2=\"$3\"></code> nel ficheru SVG xubíu.",
+ "uploaded-animate-svg": "Alcontróse la etiqueta \"animate\" que puede cambiar href, usando l'atributu \"from\" <code><$1 $2=\"$3\"></code> nel ficheru SVG xubíu.",
+ "uploaded-setting-event-handler-svg": "Ta torgada la configuración d'atributos del xestor de socesos. Alcontróse <code><$1 $2=\"$3\"></code> nel ficheru SVG xubíu.",
+ "uploaded-setting-href-svg": "Usar la etiqueta «set» p'amestar l'atributu «href» al elementu padre ta torgao.",
+ "uploaded-wrong-setting-svg": "Ta torgao usar la etiqueta «set» p'amestar un destín remote/data/script a cualquier atributu. Se alcontróse <code><set to=\"$1\"></code> nel ficheru SVG cargáu.",
+ "uploaded-setting-handler-svg": "Tán bloquiaos los ficheros SVG que configuren l'atributu «handler» con remote/data/script. Alcontróse <code>$1=\"$2\"</code> nel ficheru SVG xubíu.",
+ "uploaded-remote-url-svg": "Tán bloquiaos los ficheros SVG que configuren atributos d'estilu con URL remotes. Alcontróse <code>$1=\"$2\"</code> nel ficheru SVG xubíu.",
+ "uploaded-image-filter-svg": "Alcontróse un filtru d'imaxe con URL: <code><$1 $2=\"$3\"></code> nel ficheru SVG xubíu.",
"uploadscriptednamespace": "Esti ficheru SVG contien l'espaciu de nomes illegal «$1»",
"uploadinvalidxml": "Nun pudo interpretase'l XML del ficheru cargáu.",
"uploadvirus": "¡El ficheru tien un virus!\nDetalles: $1",
"unusedimages": "Imáxenes non usaes",
"wantedcategories": "Categoríes buscaes",
"wantedpages": "Páxines buscaes",
- "wantedpages-summary": "Llista de páxines inesistentes con más enllaces a elles, escluyendo les páxines que sólo tienen redireiciones qu'enllacen con elles. Pa ver la llista de páxines inesistentes que tienen redireiciones qu'enllacen con elles, ver [[{{#special:BrokenRedirects}}]].",
+ "wantedpages-summary": "Llista de páxines inesistentes con más enllaces a elles, sacante les páxines que sólo tienen redireiciones qu'enllacen con elles. Pa ver la llista de páxines inesistentes que tienen redireiciones qu'enllacen con elles, ver [[{{#special:BrokenRedirects}}|la llista de redireiciones frañaes]].",
"wantedpages-badtitle": "Títulu inválidu nel conxuntu de resultaos: $1",
"wantedfiles": "Archivos buscaos",
"wantedfiletext-cat": "Los ficheros siguientes tan usándose, pero nun esisten. Ye posible qu'apaezan ficheros de repositorios esternos ensin qu'esistan. Cualesquier falsu positivu tará <del>tacháu</del>. Amás, les páxines qu'inxerten ficheros que nun esisten apaecen na llista de [[:$1]].",
"log-name-pagelang": "Rexistru de cambios de llingua",
"log-description-pagelang": "Esti ye un rexistru de los cambios de llingua de les páxines.",
"logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} la llingua de la páxina $3 del $4 al $5.",
- "default-skin-not-found": "¡Vaya! L'aspeutu predetermináu pa la to wiki, definíu en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nLa instalación paez qu'incluye {{PLURAL:$4|el siguiente aspeutu|los siguientes aspeutos}}. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo {{PLURAL:$4|activalu|activalos y escoyer el predetermináu}}.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o direutamente'l códigu fonte usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Descargando paquetes tar d'aspeutu individuales de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar {{PLURAL:$5|la llinia siguiente|les llinies siguientes}} en <code>LocalSettings.php</code> p'activar {{PLURAL:$5|l'aspeutu instaláu|tolos aspeutos instalaos}} actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
- "default-skin-not-found-no-skins": "L'aspeutu predetermináu pa la to wiki, definíu en <code>$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Descargando paquetes tar d'aspeutu individuales de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
+ "default-skin-not-found": "¡Vaya! L'aspeutu predetermináu pa la to wiki, definíu en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nLa instalación paez qu'incluye {{PLURAL:$4|el siguiente aspeutu|los siguientes aspeutos}}. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo {{PLURAL:$4|activalu|activalos y escoyer el predetermináu}}.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o direutamente'l códigu fonte usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Descargando paquetes tar d'aspeutu individuales de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Usando Git pa descargar aspeutos].\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar {{PLURAL:$5|la llinia siguiente|les llinies siguientes}} en <code>LocalSettings.php</code> p'activar {{PLURAL:$5|l'aspeutu instaláu|tolos aspeutos instalaos}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
+ "default-skin-not-found-no-skins": "L'aspeutu predetermináu pa la to wiki, definíu en <code>$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Descargando paquetes tar d'aspeutu individuales de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Usando Git pa descargar aspeutos].\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
"default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activáu)",
"default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactiváu''')",
"mediastatistics": "Estadístiques de multimedia",
"confirm_purge_button": "هوبنت",
"confirm-purge-top": "ذخیره ای صفحه پهک کنت؟",
"confirm-purge-bottom": "خالک کتن میانگیر یک صفحه باعث بیتن که آخرین نسخهٔ آی پیش دارگ بیت.",
- "semicolon-separator": ";",
+ "semicolon-separator": "؛ ",
"colon-separator": ": ",
"imgmultipageprev": "← پیشگین صفحه",
"imgmultipagenext": "صفحه بعدی →",
"badsig": "Няслушны неапрацаваны подпіс; праверце HTML-тэгі.",
"badsiglength": "Ваш подпіс занадта доўгі.\nПодпіс мусіць быць не даўжэй за $1 {{PLURAL:$1|сымбаль|сымбалі|сымбаляў}}.",
"yourgender": "Як пра вас пісаць?",
- "gender-unknown": "Ð\9dе жадаÑ\8e пазнаÑ\87аÑ\86Ñ\8c",
+ "gender-unknown": "Ð\9aалÑ\96 вÑ\8b бÑ\83дзеÑ\86е згадваÑ\86Ñ\86а, пÑ\80агÑ\80амнае забеÑ\81Ñ\8cпÑ\8fÑ\87Ñ\8dнÑ\8cне бÑ\83дзе кожнÑ\8b Ñ\80аз пÑ\80Ñ\8b магÑ\87Ñ\8bмаÑ\81Ñ\8cÑ\86Ñ\96 Ñ\9eжÑ\8bваÑ\86Ñ\8c гендÑ\8dÑ\80на нÑ\8dÑ\9eÑ\82Ñ\80алÑ\8cнÑ\8bÑ\8f Ñ\81ловÑ\8b",
"gender-male": "Ён рэдагуе вікістаронкі",
"gender-female": "Яна рэдагуе вікістаронкі",
"prefs-help-gender": "Вызначаць гэта неабавязкова.\nАпраграмаваньне выкарыстоўвае гэтае значэньне толькі для граматычна карэктнага звароту да вас.\nГэтая інфармацыя будзе агульнадаступнай.",
"uploaded-animate-svg": "У загружаным SVG-файле знойдзены тэг «animate», які можа зьмяняць спасылку з дапамогай атрыбуту «from» <code><$1 $2=\"$3\"></code>.",
"uploaded-setting-event-handler-svg": "Усталёўка атрыбутаў апрацоўкі падзеяў заблякаваная, у загружаным SVG-файле знойдзены код <code><$1 $2=\"$3\"></code>.",
"uploaded-setting-href-svg": "Выкарыстаньне тэгу «set» для дадаваньня атрыбуту «href» у бацькоўскі элемэнт заблякаванае.",
+ "uploaded-wrong-setting-svg": "Ужываньне тэгу «set» для дадаваньня ў якасьці мэты аддаленага адрасу/зьвестак/сцэнару для любога атрыбуту заблякаванае. У загружаным SVG-файле знойдзена <code><set to=\"$1\"></code>.",
+ "uploaded-setting-handler-svg": "SVG, які выстаўляе атрыбут «handler» з дапамогай аддаленага адрасу/зьвестак/скрыпту, блякуецца. У загружаным SVG-файле знойдзена <code>$1=\"$2\"</code>.",
"uploadscriptednamespace": "Гэты SVG-файл утрымлівае няслушную прастору назваў «$1»",
"uploadinvalidxml": "Не атрымалася прааналізаваць XML у загружаным файле.",
"uploadvirus": "Файл утрымлівае вірус! Падрабязнасьці: $1",
"logentry-upload-upload": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
"logentry-upload-overwrite": "$1 {{GENDER:$2|загрузіў|загрузіла}} новую вэрсію $3",
"logentry-upload-revert": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
+ "logentry-tag-update-add-revision": "$1 {{GENDER:$2|дадаў|дадала}} {{PLURAL:$7|1=цэтлік|цэтлікі}} $6 да вэрсіі $4 старонкі $3",
+ "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|дадаў|дадала}} {{PLURAL:$7|1=цэтлік|цэтлікі}} $6 да запісу журналу $5 старонкі $3",
+ "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|выдаліў|выдаліла}} {{PLURAL:$9|1=цэтлік|цэтлікі}} $8 з вэрсіі $4 старонкі $3",
+ "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|выдаліў|выдаліла}} {{PLURAL:$9|1=цэтлік|цэтлікі}} $8 з запісу журналу $5 старонкі $3",
+ "logentry-tag-update-revision": "$1 {{GENDER:$2|абнавіў|абнавіла}} цэтлікі на вэрсіі $4 старонкі $3 ({{PLURAL:$7|дададзена}} $6; {{PLURAL:$9|выдалена}} $8)",
+ "logentry-tag-update-logentry": "$1 {{GENDER:$2|абнавіў|абнавіла}} цэтлікі на запісе журналу $5 старонкі $3 ({{PLURAL:$7|дададзена}} $6; {{PLURAL:$9|выдалена}} $8)",
"rightsnone": "(няма)",
"revdelete-summary": "кароткае апісаньне зьменаў",
"feedback-adding": "Даданьне водгуку на старонку…",
+ "feedback-back": "Назад",
"feedback-bugcheck": "Выдатна! Толькі праверце, магчыма гэтыя памылкі ўжо [$1 вядомыя].",
"feedback-bugnew": "Я праверыў. Гэта новая памылка",
"feedback-bugornote": "Калі Вы гатовы падрабязна апісаць тэхнічную праблему, калі ласка [$1 паведаміце пра памылку]. \nУ адваротным выпадку, Вы можаце выкарыстоўваць простую форму пададзеную ніжэй. Ваш камэнтар будзе дададзены на старонку «[$3 $2]», разам з Вашым іменем удзельніка і выкарыстоўваемым браўзэрам.",
"feedback-cancel": "Скасаваць",
"feedback-close": "Выканана",
+ "feedback-external-bug-report-button": "Аформіць тэхнічную задачу",
+ "feedback-dialog-title": "Адаслаць водгук",
+ "feedback-dialog-intro": "Свой водгук Вы можаце адаслаць праз простую форму зьнізу. Ваш камэнтар будзе дададзены на старонку «$1» разам з Вашым іменем.",
+ "feedback-error-title": "Памылка",
"feedback-error1": "Памылка: невядомы вынік з API",
"feedback-error2": "Памылка рэдагаваньня",
"feedback-error3": "Памылка: няма адказу ад API",
"authors": [
"Baloch Afghanistan",
"Ibrahim khashrowdi",
- "Rachitrali"
+ "Rachitrali",
+ "Mjbmr"
]
},
"tog-underline": "لینکانی جهلگا خط کشیتین",
"confirm-watch-top": "ای دیم بئ شمی دیدارلیست ئا ایزاپه بیئت؟",
"confirm-unwatch-button": "قبول داشتین",
"confirm-unwatch-top": "ای دیم شه شمئ دیدارلیست ئا پاک بیئت؟",
+ "semicolon-separator": "؛ ",
"quotation-marks": "\"$1\"",
"imgmultipageprev": "→ دیمتیری تاکدیم",
"imgmultipagenext": "بئدین تاکدیم ←",
"page-rss-feed": "\"$1\" আরএসএস ফিড",
"page-atom-feed": "\"$1\" অ্যাটম ফিড",
"feed-atom": "অ্যাটম",
- "red-link-title": "$1 (পাতা নেই)",
+ "red-link-title": "$1 (পাতার অস্তিত্ব নেই)",
"sort-descending": "উল্টো বর্ণক্রমে সাজাও",
"sort-ascending": "বর্ণানুক্রমে সাজাও",
"nstab-main": "পাতা",
"아라",
"Milicevic01",
"Macofe",
- "Emir Mujadzic"
+ "Emir Mujadzic",
+ "Srdjan m"
]
},
"tog-underline": "Podvuci veze:",
"tog-editsectiononrightclick": "Uključite uređivanje odjeljka sa pritiskom na desno dugme miša u naslovu odjeljka",
"tog-watchcreations": "Dodaj stranice i datoteke koje napravim na moj spisak praćenih članaka",
"tog-watchdefault": "Dodaj stranice i datoteke koje uređujem na moj spisak praćenih članaka",
- "tog-watchmoves": "Dodaj stranice i datoteke koje pomjerim na moj spisak praćenih članaka",
+ "tog-watchmoves": "Dodaj stranice i datoteke koje premjestim na moj spisak praćenih članaka",
"tog-watchdeletion": "Dodaj stranice i datoteke koje izbrišem na moj spisak praćenih članaka",
"tog-watchrollback": "Sve stranice za koje sam izvršio povrat izmjena stavi na spisak praćenja",
"tog-minordefault": "Označi sve izmjene malim isprva",
"tog-previewonfirst": "Prikaži izgled pri prvoj izmjeni",
"tog-enotifwatchlistpages": "Pošalji mi e-mail kada se promijeni stranica ili datoteka sa mog spiska praćenih članaka",
"tog-enotifusertalkpages": "Pošalji mi e-poštu kad se promijeni moja korisnička stranica za razgovor",
- "tog-enotifminoredits": "Pošalji mi e-poštu također za male izmjene u stranicama i datotekama",
- "tog-enotifrevealaddr": "Otkrij adresu moje e-pošte u porukama obaviještenja",
+ "tog-enotifminoredits": "Također mi pošalji e-poštu za male izmjene na stranicama i datotekama",
+ "tog-enotifrevealaddr": "Otkrij adresu moje e-pošte u porukama obavještenja",
"tog-shownumberswatching": "Prikaži broj korisnika koji prate",
"tog-oldsig": "Postojeći potpis:",
"tog-fancysig": "Smatraj potpis kao wikitekst (bez automatskog linka)",
"tog-watchlisthideliu": "Sakrij promjene prijavljenih korisnika sa liste praćenja",
"tog-watchlisthideanons": "Sakrij promjene anonimnih korisnika sa liste praćenja",
"tog-watchlisthidepatrolled": "Sakrij patrolirane izmjene sa spiska praćenja",
- "tog-ccmeonemails": "Pošalji mi kopije emailova koje pošaljem drugim korisnicima",
+ "tog-ccmeonemails": "Pošalji mi kopije e-pošte koju pošaljem drugim korisnicima",
"tog-diffonly": "Ne prikazuj sadržaj stranice ispod prikaza razlika",
"tog-showhiddencats": "Prikaži skrivene kategorije",
"tog-norollbackdiff": "Nakon vraćanja zanemari prikaz razlika",
"editfont-style": "Stil slova područja uređivanja:",
"editfont-default": "Po postavkama preglednika",
"editfont-monospace": "Slova sa jednostrukim razmakom",
- "editfont-sansserif": "Slova bez serifa",
- "editfont-serif": "Slova serif",
+ "editfont-sansserif": "Beserifni font",
+ "editfont-serif": "Serifni font",
"sunday": "nedjelja",
"monday": "ponedjeljak",
"tuesday": "utorak",
"newwindow": "(otvara se u novom prozoru)",
"cancel": "Poništite",
"moredotdotdot": "Više...",
- "morenotlisted": "Ovaj spisak nije kompletan.",
+ "morenotlisted": "Ovaj spisak nije potpun.",
"mypage": "Korisnička stranica",
"mytalk": "Razgovor",
"anontalk": "Razgovor za ovu IP adresu",
"no-null-revision": "Ne mogu napraviti novu ništavnu reviziju za stranicu \"$1\"",
"badtitle": "Loš naslov",
"badtitletext": "Zahtjevani naslov stranice je bio neispravan, prazan ili neispravno povezan međujezički ili interviki naslov.",
+ "title-invalid-empty": "Zatraženo ime stranice je prazno ili samo sadrži naziv imenskog prostora.",
+ "title-invalid-utf8": "Vaš zatraženi naziv stranice sadrži nevažeći UTF-8 znak.",
"title-invalid-interwiki": "Traženi naslov stranice sadrži interwiki link koji ne može biti korišten u naslovima.",
+ "title-invalid-talk-namespace": "Vaš zatraženi naslov stranice se odnosi na stranicu za razgovor koja ne može postojati.",
+ "title-invalid-characters": "Vaš zatraženi naslov stranice sadrži nevažeće znakove: \"$1\".",
+ "title-invalid-leading-colon": "Zahtjevani naslov stranice sadrži nevažeću dvotačku na početku.",
"perfcached": "Slijedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.",
"perfcachedts": "Sljedeći podaci nalaze se u memoriji i posljednji put ažurirani su $1. Keš sadrži najviše {{PLURAL:$4|jedan rezultat|$4 rezultata}}.",
"querypage-no-updates": "Ažuriranje ove stranice je isključeno.\nPodaci koji se ovdje nalaze ne moraju biti aktuelni.",
"missingcommentheader": "'''Podsjetnik:''' Niste napisali temu/naslov za ovaj komentar.\nAko ponovo kliknete na ''{{int:savearticle}}'', Vaše izmjene će biti spašene bez teme/naslova.",
"summary-preview": "Pregled sažetka:",
"subject-preview": "Pregled tema/naslova:",
+ "previewerrortext": "Dogodila se greška prilikom prikazivanja vaših izmjena.",
"blockedtitle": "Korisnik je blokiran",
"blockedtext": "'''Vaše korisničko ime ili IP adresa je blokirana.'''\n\nBlokada izvršena od strane $1.\nDati razlog je slijedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati $1 ili nekog drugog [[{{MediaWiki:Grouppage-sysop}}|administratora]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''Pošalji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|Vaše postavke]].\nVaša trenutna IP adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.",
"autoblockedtext": "Vaša IP adresa je automatski blokirana jer je korištena od strane drugog korisnika, a blokirao ju je $1.\nNaveden je slijedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati $1 ili nekog drugog iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"pošalji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u Vašim [[Special:Preferences|korisničkim postavkama]] te Vas ne spriječava ga je koristite.\n\nVaša trenutna IP adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.",
"whitelistedittext": "Da bi ste uređivali stranice, morate se $1.",
"confirmedittext": "Morate potvrditi Vašu e-mail adresu prije nego počnete mijenjati stranice.\nMolimo da postavite i verifikujete Vašu e-mail adresu putem Vaših [[Special:Preferences|korisničkih opcija]].",
"nosuchsectiontitle": "Ne mogu pronaći sekciju",
- "nosuchsectiontext": "Pokušali ste uređivati sekciju koja ne postoji.\nMožda je preusmjerena ili obrisana dok ste pregledavali stranicu.",
+ "nosuchsectiontext": "Pokušali ste uređivati sekciju koja ne postoji.\nMožda je premještena ili obrisana dok ste pregledavali stranicu.",
"loginreqtitle": "Potrebno je prijavljivanje",
"loginreqlink": "prijavi se",
"loginreqpagetext": "Morate $1 da bi ste vidjeli druge strane.",
"permissionserrors": "Greške pri odobrenju",
"permissionserrorstext": "Nemate dopuštenje da to uradite, iz {{PLURAL:$1|slijedećeg razloga|slijedećih razloga}}:",
"permissionserrorstext-withaction": "Nemate dopuštenje da $2, iz {{PLURAL:$1|slijedećeg|slijedećih}} razloga:",
- "recreate-moveddeleted-warn": "'''Upozorenje: Postavljate stranicu koja je prethodno brisana.'''\n\nRazmotrite da li je nastavljanje uređivanja ove stranice u skladu s pravilima.\nOvdje je naveden zapisnik brisanja i preusmjeravanja s obrazloženjem:",
+ "recreate-moveddeleted-warn": "'''Upozorenje: Postavljate stranicu koja je prethodno brisana.'''\n\nRazmotrite da li je nastavljanje uređivanja ove stranice u skladu s pravilima.\nOvdje je naveden zapisnik brisanja i premještanja s obrazloženjem:",
"moveddeleted-notice": "Ova stranica je obrisana.\nZapis brisanja i pomjeranja stranice je prikazan ispod kao referenca.",
"log-fulllog": "Vidi potpuni zapisnik",
"edit-hook-aborted": "Izmjena je poništena putem interfejsa.\nNije ponuđeno nikakvo objašnjenje.",
"content-model-css": "CSS",
"content-json-empty-object": "Prazan objekat",
"content-json-empty-array": "Prazan niz",
+ "duplicate-args-warning": "<strong>Upozorenje:</strong> [[:$1]] poziva na [[:$2]] sa više od jedne vrijednosti za paramentar \"$3\". Bit će prikazana samo posljednja vrijednosti.",
"duplicate-args-category": "Stranice sa istim argumentima kod poziva šablona",
"duplicate-args-category-desc": "Stranica sadrži pozive šablona koji koriste argumente dvojnike, kao što su <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ili <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "Upozorenje: Ova stranica sadrži previše poziva opterećujućih parserskih funkcija.\n\nTrebalo bi imati manje od $2 {{PLURAL:$2|poziv|poziva}}, a sad ima {{PLURAL:$1|$1 poziv|$1 poziva}}.",
"history-feed-description": "Historija promjena ove stranice na wikiju",
"history-feed-item-nocomment": "$1 u $2",
"history-feed-empty": "Tražena stranica ne postoji.\nMoguće da je izbrisana sa wikija, ili preimenovana.\nPokušajte [[Special:Search|pretražiti wiki]] za slične stranice.",
+ "history-edit-tags": "Uredi oznake izabranih verzija",
"rev-deleted-comment": "(sažetak izmjene uklonjen)",
"rev-deleted-user": "(korisničko ime uklonjeno)",
"rev-deleted-event": "(stavka zapisa obrisana)",
"prefs-rc": "Podešavanja nedavnih izmjena",
"prefs-watchlist": "Moji praćeni članci",
"prefs-editwatchlist": "Uredi spisak praćenja",
+ "prefs-editwatchlist-label": "Uredi unose na spisku praćenja:",
+ "prefs-editwatchlist-edit": "Pregledaj i ukloni članke sa spiska praćenja",
+ "prefs-editwatchlist-raw": "Napredno uređivanje spiska praćenja",
"prefs-editwatchlist-clear": "Očisti spisak praćenja",
"prefs-watchlist-days": "Broj dana za prikaz u spisku praćenja:",
"prefs-watchlist-days-max": "Maximum $1 {{PLURAL:$1|dan|dana}}",
"recentchangesdays-max": "(najviše $1 {{PLURAL:$1|dan|dana}})",
"recentchangescount": "Broj uređivanja za prikaz po pretpostavkama:",
"prefs-help-recentchangescount": "Ovo uključuje nedavne izmjene, historije stranice i zapise.",
+ "prefs-help-watchlist-token2": "Ovo je tajni ključ sažetka vašeg spiska izmjena. Ko god da ga zna, moći će ga čitati. Ne dijelite ga ni s kim. Ako je potrebno, [[Special:ResetTokens|možete ga ponovo postaviti]].",
"savedprefs": "Vaše postavke su sačuvane.",
"timezonelegend": "Vremenska zona:",
"localtime": "Lokalno vrijeme:",
"prefs-tokenwatchlist": "Žeton",
"prefs-diffs": "Razlike",
"prefs-help-prefershttps": "Ova podešavanja će stupiti na snagu pri sljedećoj prijavi.",
+ "prefswarning-warning": "Napravili ste promjene u vašim postavkama koje još uvijek nisu sačuvane. Ako napustite ovu stranicu bez da pritisnete na \"$1\", postavke neće biti ažurirane.",
"email-address-validity-valid": "Izgleda valjano",
"email-address-validity-invalid": "Neophodna valjana adresa!",
"userrights": "Postavke korisničkih prava",
"right-createtalk": "Pravljenje stranica za razgovor",
"right-createaccount": "Pravljenje korisničkog računa",
"right-minoredit": "Označavanje izmjena kao malih",
- "right-move": "Preusmjeravanje stranica",
+ "right-move": "Premještanje stranica",
"right-move-subpages": "Preusmjeravanje stranica sa svim podstranicama",
"right-move-rootuserpages": "Premještanje stranica osnovnih korisnika",
"right-move-categorypages": "Pomakni stranice kategorije",
"right-browsearchive": "Pretraživanje obrisanih stranica",
"right-undelete": "Vraćanje obrisanih stranica",
"right-suppressrevision": "Pregled, sakrivanje i povratak određenih revizija stranice od svih korisnika",
+ "right-viewsuppressed": "Pregledaj izmjene skrivene od svih korisnika",
"right-suppressionlog": "Gledanje privatnih zapisa",
"right-block": "Blokiranje uređivanja drugih korisnika",
"right-blockemail": "Blokiranje korisnika da šalje e-mail",
"right-editmyusercss": "Uredite svoje vlastite korisničke CSS datoteke",
"right-editmyuserjs": "Uredite vlastite korisničke JavaScript datoteke",
"right-viewmywatchlist": "Pogledaj svoj spisak praćenih stranica",
+ "right-editmywatchlist": "Uredite vlastiti spisak praćenja. Važno je spomenuti da će neke radnje dodati stranice na spisak, čak i bez ovog prava.",
"right-viewmyprivateinfo": "Pogledajte Vaše privatne podatke (npr, adresa e-pošte, pravo ime)",
"right-editmyprivateinfo": "Uredite svoje privatne podatke (npr. adresa e-pošte, pravo ime)",
"right-editmyoptions": "Uredite svoje postavke",
"right-override-export-depth": "Izvoz stranica uključujući povezane stranice do dubine od 5 linkova",
"right-sendemail": "Slanje e-maila drugim korisnicima",
"right-passwordreset": "Pogledaj e-mailove za obnavljanje šifre",
+ "right-managechangetags": "Napravi i briši [[Special:Tags|oznake]] iz baze podataka",
"newuserlogpage": "Zapis novih korisnika",
"newuserlogpagetext": "Ovo je zapis o registraciji novih korisnika.",
"rightslog": "Zapisnik korisničkih prava",
"action-createtalk": "kreirate stranice za razgovor",
"action-createaccount": "napravite ovaj korisnički račun",
"action-minoredit": "da označite ovu izmjenu kao malu",
- "action-move": "pomjerite ovu stranicu",
- "action-move-subpages": "pomjerite ovu stranicu, i njene podstranice",
- "action-move-rootuserpages": "pomjerite stranice osnovnog korisnika",
+ "action-move": "premjestite ovu stranicu",
+ "action-move-subpages": "premjestite ovu stranicu, i njene podstranice",
+ "action-move-rootuserpages": "premjestite stranice osnovnog korisnika",
"action-move-categorypages": "pomakni stranice kategorije",
- "action-movefile": "pomjeri ovu datoteku",
+ "action-movefile": "premjesti ovu datoteku",
"action-upload": "postavljate ovu datoteku",
"action-reupload": "stavite novu verziju postojeće datoteke",
"action-reupload-shared": "postavite ovu datoteku iz zajedničke ostave",
"upload_directory_missing": "Folder za postavljanje ($1) nedostaje i webserver ga ne može napraviti.",
"upload_directory_read_only": "Folder za postavljanje ($1) na webserveru je postavljen samo za čitanje.",
"uploaderror": "Greška pri slanju",
- "upload-recreate-warning": "'''Upozorenje: Datoteka s tim imenom obrisana je ili preusmjerena.'''\nZapisnik brisanja i preusmjeravanja za ovu stranicu dostupan je ovdje:",
+ "upload-recreate-warning": "<strong>Upozorenje: Datoteka s tim imenom je obrisana ili premještena.</strong>\nZapisnik brisanja i premještanja za ovu stranicu dostupan je ovdje:",
"uploadtext": "Koristite formu ispod za postavljanje datoteka.\nDa bi ste vidjeli ili pretražili ranije postavljene datoteke, pogledajte [[Special:FileList|spisak postavljenih datoteka]], ponovna postavljanja su također zapisana u [[Special:Log/upload|zapisnik postavljanja]], a brisanja u [[Special:Log/delete|zapisnik brisanja]].\n\nDa bi ste prikazali datoteku na stranici, koristite link na jedan od slijedećih načina:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' da upotrijebite potpunu veziju datoteke\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|thumb|lijevo|opis slike]]</nowiki></code>''' da upotrijebite smanjeni prikaz širine 200 piksela unutar okvira, s lijevim poravnanjem i ''opisom slike''.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direkno povezivanje datoteke bez njenog prikazivanja",
"upload-permitted": "Podržane vrste datoteka: $1.",
"upload-preferred": "Preferirane vrste datoteka: $1.",
"backend-fail-create": "Ne mogu napraviti datoteku $1.",
"backend-fail-readonly": "Skladišna osnova \"$1\" je trenutno samo za čitanje. Navedeni razlog je: \"$2\"",
"backend-fail-synced": "Datoteka \"$1\" je u nekonzistentnom stanju u internom skladištu",
+ "backend-fail-connect": "Ne mogu se povezati sa pozadinskim spremištem \"$1\".",
"backend-fail-internal": "Došlo je do nepoznate greške u skladišnoj osnovi \"$1\".",
"backend-fail-contenttype": "Ne mogu da utvrdim kakav sadržaj ima datoteka koju treba da smjestim u \"$1\".",
"backend-fail-batchsize": "Skladišna osnova je dobila blokadu od $1 {{PLURAL:$1|datotečne operacije|datotečne operacije|datotečnih operacija}}; ograničenje je $2 {{PLURAL:$2|operacija|operacije|operacija}}.",
"newpages": "Nove stranice",
"newpages-username": "Korisničko ime:",
"ancientpages": "Najstarije stranice",
- "move": "Preusmjeri",
+ "move": "Premjesti",
"movethispage": "Premjesti ovu stranicu",
"unusedimagestext": "Slijedeće datoteke postoje ali nisu uključene ni u jednu stranicu.\nMolimo obratite pažnju da druge web stranice mogu biti povezane s datotekom putem direktnog URLa, tako da i pored toga mogu biti prikazane ovdje pored aktivne upotrebe.",
"unusedcategoriestext": "Sljedeće stranice kategorija postoje iako ih nijedan drugi članak ili kategorija ne koriste.",
"watchnologin": "Niste prijavljeni",
"addwatch": "Dodaj na spisak praćenja",
"addedwatchtext": "Stranica \"[[:$1]]\" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]]. \nBuduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde.",
+ "addedwatchtext-short": "Stranica \"$1\" je dodana na vaš spisak praćenja.",
"removewatch": "Ukloni sa spiska praćenja",
"removedwatchtext": "Stranica \"[[:$1]]\" je uklonjena iz [[Special:Watchlist|vašeg spiska praćenih članaka]].",
+ "removedwatchtext-short": "Stranica \"$1\" je uklonjena sa vašeg spiska praćenja.",
"watch": "Prati članak",
"watchthispage": "Prati ovu stranicu",
"unwatch": "Ukinite praćenje",
"delete-edit-reasonlist": "Uredi razloge brisanja",
"delete-toobig": "Ova stranica ima veliku historiju promjena, preko $1 {{PLURAL:$1|revizije|revizija}}.\nBrisanje takvih stranica nije dopušteno da bi se spriječilo slučajno preopterećenje servera na kojem je {{SITENAME}}.",
"delete-warning-toobig": "Ova stranica ima veliku historiju izmjena, preko $1 {{PLURAL:$1|izmjene|izmjena}}.\nNjeno brisanje može dovesti do opterećenja operacione baze na {{SITENAME}};\nnastavite s oprezom.",
+ "deleteprotected": "Ne možete obrisati ovu stranicu jer je zaštićena.",
+ "deleting-backlinks-warning": "'''Upozorenje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druge stranice]] sadrže link ili vode na stranicu koju brišete.",
"rollback": "Vrati izmjene",
"rollbacklink": "vrati",
"rollbacklinkcount": "vrati $1 {{PLURAL:$1|izmjenu|izmjene|izmjena}}",
"contributions-title": "Doprinosi korisnika $1",
"mycontris": "Doprinos",
"contribsub2": "Za {{GENDER:$3|$1}} ($2)",
+ "contributions-userdoesnotexist": "Korisnički račun \"$1\" nije registrovan.",
"nocontribs": "Nisu nađene promjene koje zadovoljavaju ove uslove.",
"uctop": "(trenutno)",
"month": "Od mjeseca (i ranije):",
"lockfilenotwritable": "Datoteka zaključavanja baze je zaštićena za pisanje.\nAko želite otključati ili zaključati bazu, ova datoteka mora biti omogućena za pisanje od strane web servera.",
"databasenotlocked": "Baza podataka nije zaključana.",
"lockedbyandtime": "(od $1 dana $2 u $3)",
- "move-page": "Preusmjeravanje $1",
+ "move-page": "Premještanje $1",
"move-page-legend": "Premjestite stranicu",
- "movepagetext": "Korištenjem ovog formulara možete preimenovati stranicu, premještajući cijelu historiju na novo ime.\nČlanak pod starim imenom postat će stranica koja preusmjerava na članak pod novim imenom. \nMožete automatski izmijeniti preusmjerenje do izvornog naslova.\nAko se ne odlučite na to, provjerite [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|neispravna preusmjeravanja]].\nDužni ste provjeriti da svi linkovi i dalje nastave voditi na prave stranice.\n\nImajte na umu da članak '''neće''' biti preusmjeren ako već postoji članak pod imenom na koje ga namjeravate preusmjeriti osim u slučaju stranice za preusmjeravanje koja nema nikakvih starih izmjena.\nTo znači da možete vratiti stranicu na prethodno mjesto ako pogriješite, ali ne možete zamijeniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može biti drastična i neočekivana promjena kad su u pitanju popularne stranice.\nMolimo da dobro razmislite prije no što preimenujete stranicu.",
+ "movepagetext": "Korištenjem ovog formulara možete preimenovati stranicu, premještajući cijelu historiju na novo ime.\nČlanak pod starim imenom postat će stranica koja preusmjerava na članak pod novim imenom. \nMožete automatski izmijeniti preusmjerenje do izvornog naslova.\nAko se ne odlučite na to, provjerite [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|neispravna preusmjeravanja]].\nDužni ste provjeriti da svi linkovi i dalje nastave voditi na prave stranice.\n\nImajte na umu da članak '''neće''' biti premješten ako već postoji članak pod imenom na koje ga namjeravate preusmjeriti osim u slučaju stranice za preusmjeravanje koja nema nikakvih starih izmjena.\nTo znači da možete vratiti stranicu na prethodno mjesto ako pogriješite, ali ne možete zamijeniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može biti drastična i neočekivana promjena kad su u pitanju popularne stranice.\nMolimo da dobro razmislite prije no što premjestite stranicu.",
"movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da preusmjeravanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.",
"movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, će automatski biti premještena istovremeno '''osim:'''\n*Ako premještate stranicu preko imenskih prostora,\n*Neprazna stranica za razgovor već postoji pod novim imenom, ili\n*Odčekirajte donju kutiju.\n\nU tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.",
"movearticle": "Premjestite stranicu",
"cant-move-to-user-page": "Nemate dopuštenje da premjestite stranicu na korisničku stranicu (osim na korisničku podstranicu).",
"newtitle": "Novi naslov",
"move-watch": "Prati ovu stranicu",
- "movepagebtn": "pomjerite stranicu",
+ "movepagebtn": "premjestite stranicu",
"pagemovedsub": "Premještanje uspjelo",
"movepage-moved": "'''\"$1\" je premještena na \"$2\"'''",
"movepage-moved-redirect": "Preusmjerenje je napravljeno.",
"selfmove": "Izvorni i ciljani naziv su isti; strana ne može da se premjesti preko same sebe.",
"immobile-source-namespace": "Ne mogu premjestiti stranice u imenski prostor \"$1\"",
"immobile-target-namespace": "Ne mogu se premjestiti stranice u imenski prostor \"$1\"",
- "immobile-target-namespace-iw": "Međuwiki link nije validno odredište premještanja stranice.",
+ "immobile-target-namespace-iw": "Međuwiki link nije ispravno odredište premještanja stranice.",
"immobile-source-page": "Ova stranica se ne može premještati.",
- "immobile-target-page": "Ne može se preusmjeriti na taj odredišni naslov.",
+ "immobile-target-page": "Ne može se premjestiti na taj odredišni naslov.",
"imagenocrossnamespace": "Ne može se premjestiti datoteka u nedatotečni imenski prostor",
"nonfile-cannot-move-to-file": "Ne mogu se premjestiti podaci u datotečni imenski prostor",
"imagetypemismatch": "Ekstenzija nove datoteke ne odgovara njenom tipu",
"tooltip-ca-unprotect": "Promijeni zaštitu za ovu stranicu",
"tooltip-ca-delete": "Izbrišite ovu stranicu",
"tooltip-ca-undelete": "Vratite izmjene koje su načinjene prije brisanja stranice",
- "tooltip-ca-move": "Pomjerite stranicu",
+ "tooltip-ca-move": "Premjesti ovu stranicu",
"tooltip-ca-watch": "Dodajte stranicu u listu praćnih članaka",
"tooltip-ca-unwatch": "Izbrišite stranicu sa liste praćnih članaka",
"tooltip-search": "Pretraži projekat {{SITENAME}}",
"pageinfo-contentpage-yes": "Da",
"pageinfo-protect-cascading-yes": "Da",
"pageinfo-category-info": "Informacije o kategoriji",
+ "pageinfo-category-total": "Ukupan broj članova",
"pageinfo-category-pages": "Broj stranica",
"pageinfo-category-subcats": "Broj podkategorija",
"pageinfo-category-files": "Broj datoteka",
"version-entrypoints": "URL Adrese ulazne tačke",
"version-entrypoints-header-entrypoint": "Ulazna tačka",
"version-entrypoints-header-url": "URL",
+ "version-libraries-version": "Verzija",
"redirect-submit": "Idi",
"redirect-value": "Vrijednost:",
"redirect-user": "Korisnički ID",
"tags-tag": "Naziv oznake",
"tags-display-header": "Vidljivost na spisku izmjena",
"tags-description-header": "Puni opis značenja",
+ "tags-source-header": "Izvor",
"tags-active-header": "Aktivna?",
"tags-hitcount-header": "Označene izmjene",
"tags-active-yes": "Da",
"tags-active-no": "Ne",
+ "tags-source-extension": "Definirano preko proširenja",
+ "tags-source-none": "Više se ne koristi",
"tags-edit": "uređivanje",
"tags-delete": "izbriši",
"tags-activate": "aktiviraj",
"tags-create-no-name": "Morate navesti ime oznake.",
"tags-create-already-exists": "Oznaka \"$1\" već postoji.",
"tags-delete-title": "Izbriši oznaku",
+ "tags-delete-reason": "Razlog:",
+ "tags-delete-not-found": "Oznaka \"$1\" ne postoji.",
"comparepages": "Usporedi stranice",
"compare-page1": "Stranica 1",
"compare-page2": "Stranica 2",
"feedback-bugornote": "Ako ste spremni detaljno opisati tehnički problem, molimo [$1 prijavite \"bug\" (grešku)].\nInače, možete ispuniti jednostavan obrazac ispod. Vaš komentar bit će dodan na stranicu \"[$3 $2]\" zajedno s Vašim korisničkim imenom.",
"feedback-cancel": "Odustani",
"feedback-close": "Završeno",
+ "feedback-dialog-title": "Pošalji povratne informacije",
+ "feedback-error-title": "Greška",
"feedback-error1": "Greška: Neprepoznati rezultat od API",
"feedback-error2": "Greška: Uređivanje nije uspjelo",
"feedback-error3": "Greška: Nema odgovora od API",
"feedback-subject": "Tema:",
"feedback-submit": "Pošalji",
"feedback-thanks": "Hvala! Vaša povratna informacija postavljena je na stranicu \"[$2 $1]\".",
+ "feedback-thanks-title": "Hvala!",
"searchsuggest-search": "Traži",
"searchsuggest-containing": "sadrži...",
"api-error-badaccess-groups": "Nemate ovlasti da postavljate datoteke na ovoj wiki.",
"expand_templates_preview": "Pregled",
"pagelang-name": "Stranica",
"pagelang-language": "Jezik",
+ "pagelang-use-default": "Koristi podrazumijevani jezik",
"pagelang-select-lang": "Izaberi jezik",
"mediastatistics-table-count": "Broj datoteka",
+ "mediastatistics-table-totalbytes": "Kombinirana veličina",
"mediastatistics-header-unknown": "Nepoznato",
"mediastatistics-header-drawing": "Crteži (vektorske slike)",
"mediastatistics-header-audio": "Zvuk",
"redirectedfrom": "(ДӀасахьажийна кху $1)",
"redirectpagesub": "АгӀо-дӀасахьажорг",
"redirectto": "ДӀасахьажор тӀе:",
- "lastmodifiedat": "ХӀокху агӀон тӀаьххьаралера хийцам: $2, $1.",
+ "lastmodifiedat": "ХӀокху агӀон тӀаьххьаралера хийцам: $1, $2.",
"viewcount": "ХӀокху агӀонг хьовсийна $1 {{PLURAL:$1|за}}.",
"protectedpage": "ГӀароллийца йолу агӀо",
"jumpto": "Дехьа гӀо:",
"protectedpagetext": "Ginkandaduhan ang mini nga pahina para indi ma-islan.",
"viewsourcetext": "Pwede mo makita kag makopya ang ginhalinan sang mini nga pahina:",
"protectedinterface": "Nagahatag ang mini nga pahina sang teksto nga pangkatapusan (''interface'') para sa software, kag ikandado para mapunggan ang pag-abuso.",
- "editinginterface": "'''Paandam:''' gin-islan mo ang pahina nga gina-usar nga nagahatag teksto sang interface sa sopwer.\nMakaapekto ang mga gin-islan sa mini nga pahina sa gwaan nga itsura ka interface sang manug-usar sa iban nga mga manug-usar.\nPara sa mga pagtransleyt, palihog konsidera gamit ang [http://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang MediaWiki proyekto sa paglokalisa.",
+ "editinginterface": "'''Paandam:''' gin-islan mo ang pahina nga gina-usar nga nagahatag teksto sang interface sa sopwer.\nMakaapekto ang mga gin-islan sa mini nga pahina sa gwaan nga itsura ka interface sang manug-usar sa iban nga mga manug-usar.",
"cascadeprotected": "Ginprotektahan ang mini nga pahina sa pagpangilis, tungod naupod ini sa mga gasunod nga {{PLURAL:$1|pahina, nga|mga pahina, nga}} protektado upod ang \"cascading\" nga pilili-an nga naga-andar:\n$2",
"namespaceprotected": "Wala ka sang permiso nga magliwat sang mga pahina nga ara sa namespace nga '''$1'''.",
"ns-specialprotected": "Indi pwede bag-uhon ang mga pinasahi nga pahina.",
"badsig": "Chybný podpis, zkontrolujte syntaxi HTML.",
"badsiglength": "Váš podpis je příliš dlouhý. Musí být kratší než $1 {{PLURAL:$1|znak|znaky|znaků}}.",
"yourgender": "Jak chcete být popisován(a)?",
- "gender-unknown": "Nechci sdělit.",
+ "gender-unknown": "Software nebude při zmínkách o vás používat konkrétní rod",
"gender-male": "On upravil článek.",
"gender-female": "Ona upravila článek.",
"prefs-help-gender": "Toto nastavení je nepovinné.\nSoftware ho používá pro volbu gramatického rodu, když vás oslovuje nebo vás zmiňuje.\nTato informace je veřejná.",
"badsig": "Die Syntax der Signatur ist ungültig; bitte HTML überprüfen.",
"badsiglength": "Die Signatur darf maximal $1 {{PLURAL:$1|Zeichen}} lang sein.",
"yourgender": "Welches Geschlecht hast du?",
- "gender-unknown": "Ich möchte hierzu keine Angabe machen",
+ "gender-unknown": "Beim Erwähnen deiner Person verwendet die Software geschlechtsneutrale Wörter, sofern möglich",
"gender-male": "Ich bin männlich",
"gender-female": "Ich bin weiblich",
"prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um dich anzureden sowie als Hinweis für andere durch Verwendung des zutreffenden grammatikalischen Geschlechts.\nDiese Information ist öffentlich.",
"tog-minordefault": "सबै सम्पादनहरूलाई पहिल्लई निर्धारित रुपमी सामान्य चिनो लगाउन्या",
"tog-previewontop": "सम्पादन बाकस अगि पहिलाकोरूप देखाउन्या",
"tog-previewonfirst": "पैल्लीको सम्पादनमी झलक धेकाउन्या",
- "tog-enotifwatchlistpages": "मà¥\87रा धà¥\8dयान सà¥\82à¤\9aà¥\80मà¥\80 रहà¥\87याà¤\95ा पाना à¤\85थवा à¤\9aितà¥\8dर बदलिà¤\8fà¤\95ा मुलाई ई-मेल गरियोस्",
+ "tog-enotifwatchlistpages": "मà¥\87रा धà¥\8dयान सà¥\82à¤\9aà¥\80मà¥\80 रहà¥\8dयाà¤\95ा पाना à¤\85थवा à¤\9aितà¥\8dर परिवरà¥\8dतन à¤à¤¯ा मुलाई ई-मेल गरियोस्",
"tog-enotifusertalkpages": "मेरो कुरडी पानामी परिवर्तन भया मलाई इमेल पठाउन्या",
"tog-enotifminoredits": "पानाहरू र फाइलहरूमी सामान्य सम्पादन भयालै मुइलाई ई-मेल गरियोस्",
"tog-enotifrevealaddr": "जानकारी इ-मेलहरूमी मेरो इ-मेल खुलाउन्या",
"category-subcat-count-limited": "यै श्रेणीमी निम्न {{PLURAL:$1|उपश्रेणी|$1 उपश्रेणीहरू}} छन् ।",
"category-article-count": "{{PLURAL:$2|यै श्रेणीमी एक मात्र पानो रया छ।|कुल $2 मध्ये यै श्रेणीमी {{PLURAL:$1|पानो|$1 पानाहरू}} रहेका छन् । }}",
"category-article-count-limited": "निम्न {{PLURAL:$1|पानो|$1 पानाहरू}} ये श्रेणीमी रया छ ।",
- "category-file-count": "{{PLURAL:$2|यà¥\88 शà¥\8dरà¥\87णà¥\80मà¥\80 à¤\8fà¤\95 मातà¥\8dर पानà¥\8b रया à¤\9b।|à¤\95à¥\81ल $2 मधà¥\8dयà¥\87 यà¥\88 शà¥\8dरà¥\87णà¥\80मà¥\80 {{PLURAL:$1|पानà¥\8b|$1 पानाहरू}} रहेका छन् । }}",
- "category-file-count-limited": "निमà¥\8dन {{PLURAL:$1|पानà¥\8b|$1 पानाहरà¥\82}} यà¥\87 श्रेणीमी रया छ ।",
+ "category-file-count": "{{PLURAL:$2|यà¥\88 शà¥\8dरà¥\87णà¥\80मà¥\80 à¤\8fà¤\95 मातà¥\8dर फाà¤\87ल रया à¤\9b।|à¤\95à¥\81ल $2 मधà¥\8dयà¥\87 यà¥\88 शà¥\8dरà¥\87णà¥\80मà¥\80 {{PLURAL:$1|फाà¤\87ल|$1 फाà¤\87लहरू}} रहेका छन् । }}",
+ "category-file-count-limited": "निमà¥\8dन {{PLURAL:$1|फाà¤\87ल|$1 फाà¤\87लहरà¥\82}} यà¥\88 श्रेणीमी रया छ ।",
"listingcontinuesabbrev": "निरन्तरता...",
"index-category": "क्रमाङ्कित पानाहरू",
"noindex-category": "क्रमाङ्कन नगरीयाका पानाहरू",
"youhavenewmessages": "तमखी लेखा ($2)मी $1 छ।",
"youhavenewmessagesfromusers": "तमखी लेखा {{PLURAL:$3|प्रयोगकर्ता|$3 प्रयोगकर्तान}} ($2)बठे$1",
"youhavenewmessagesmanyusers": "तमलाई धेरै प्रयोगकर्ताहरू($2) बठे $1 छ ।",
- "newmessageslinkplural": "{{PLURAL:$1|à¤\8fà¤\95 नयाà¤\81 रà¥\88बार|999=नयाà¤\81 रैबारहरू}}",
+ "newmessageslinkplural": "{{PLURAL:$1|à¤\8fà¤\95 नà¥\8cलà¥\8b रà¥\88बार|999=नà¥\8cला रैबारहरू}}",
"newmessagesdifflinkplural": "छाड्डीबारको {{PLURAL:$1|परिवर्तन|999=परिवर्तनहरू}}",
"youhavenewmessagesmulti": "तमरा लागि $1 मी नयाँ रैबारहरू छन्",
"editsection": "सम्पादन",
"newarticle": "(नयाँ)",
"newarticletext": "तमले ऐलसम्म नभयाका पानाको लिंङ्क पहिल्याउनु भयाको छ।\nयो पानो बनौनाखी तल्तिरको कोष्ठमा टाइप गरिदिय ।(और जाण्णाखीलेखा [$1 help page] हेरिदिय )।\nताखाइ सुधिसार आइपुग्या हौ भण्या, ब्राउजरको '''back''' बटन थिचिहाल ।",
"anontalkpagetext": "----''यो कुरडी पानो अज्ञात प्रयोगकर्ताको हो जनले अहिलसम्म खाता बनायाकै छैन, अथवा जनले यै पानाको उपयोग गर्दैन।\nयस कारण हामीले उनलाई उनरो आइ पी (IP) ठेगानाले चिन्न सकन्छौ। \nयस्तो आइ पी (IP) ठेगाना धेरै प्रयोगकर्तानको साझा हुनसकन्छ ।\nयदि तमी अज्ञात प्रयोगकर्ता हौ र तमलाई अचाहिँदो टिप्पणी भयाको अनुभव गद्दा छौ भण्या भविष्यमी अन्य अज्ञात प्रयोगकर्तासँगको भ्रमबाट बाँच्न कृपया [[Special:UserLogin/signup|खाता खोल]] अथवा [[Special:UserLogin|प्रवेश गर]] ''",
- "noarticletext": "यà¥\88 लà¥\87à¤\96मि à¤\90ल à¤\95à¥\87à¤\87 पन पाठनाà¤\87थà¥\80 ।\nतमलà¥\87 à¤\94र पà¥\83षà¥\8dठमि\n[[Special:Search/{{PAGENAME}}|यस पà¥\83षà¥\8dठà¤\95à¥\8b शà¥\80रà¥\8dषà¤\95à¤\95ि लà¥\87à¤\96ा à¤\96à¥\8bà¤\9c]] à¤\97दà¥\8dद सà¤\95नà¥\8dà¤\9bà¥\8c ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पाना सà¤\82बà¤\82धित ढडà¥\8dडामा à¤\96à¥\8bà¤\9c],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} यà¥\88 पानालाà¤\88 सà¤\82पादन à¤\97दà¥\8dय्या]</span>.",
+ "noarticletext": "यà¥\88 लà¥\87à¤\96मà¥\80 à¤\85हिल à¤\95à¥\8dयà¥\88 पन पाठनाà¤\87थà¥\80 ।\nतमलà¥\87 à¤\94र पà¥\83षà¥\8dठमà¥\80\n[[Special:Search/{{PAGENAME}}|यस पà¥\83षà¥\8dठà¤\95à¥\8b शà¥\80रà¥\8dषà¤\95à¤\95à¥\80 लà¥\87à¤\96ा à¤\96à¥\8bà¤\9c]] à¤\97दà¥\8dद सà¤\95नà¥\8dà¤\9bà¥\8c ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पाना समà¥\8dबनà¥\8dधित ढडà¥\8dडामà¥\80 à¤\96à¥\8bà¤\9c],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} यà¥\88 पानालाà¤\88 समà¥\8dपादन à¤\97द्या]</span>.",
"noarticletext-nopermission": "यै लेखमी अहिल केइ पन पाठ नाइथी ।\nतमले और पानामी\n[[Special:Search/{{PAGENAME}}|यै पानाको शीर्षककी लेखा खोज]] गद्द सकन्छौ ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पाना सम्बन्धित ढड्डामी खोज्न],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} यै पानालाई सम्पादन गद्द] सकन्छौ</span>.",
"userinvalidcssjstitle": "<strong>चेतावनी:</strong> यहाँ कोइपनि \"$1\" नामको खोल नाइथिन् ।\nप्रचलित .css तथा .js पानाहरूले निम्नपद शीर्षक प्रयोग गद्दान्, जस्तै {{ns:user}}:Foo/Vector.css को सट्टामी {{ns:user}}:Foo/vector.css",
"updated": "नौला",
"searchprofile-everything": "सबै थोक",
"searchprofile-advanced": "उन्नत",
"searchprofile-articles-tooltip": "$1 मी खोज्या",
- "searchprofile-images-tooltip": "फाà¤\87लहरà¥\81 à¤\96à¥\8bज्या",
+ "searchprofile-images-tooltip": "फाà¤\87लहरà¥\82 à¤\96à¥\8bà¤\9cà¥\8dज्या",
"searchprofile-everything-tooltip": "सबै सामग्री खोज्या (वार्तालाप लै )",
"searchprofile-advanced-tooltip": "अनुकुल नेमस्पेसमा खोज्या",
"search-result-size": "$1 ({{PLURAL:$2|1 शब्द|$2 शब्दहरू}})",
"right-move-rootuserpages": "मूल(root) प्रयोगकर्ताको पानाहरू साद्या",
"right-movefile": "फाइलहरूको नाम बदल्न्या",
"right-upload": "फाइलहरू अपलोड गर्न्या",
+ "right-reupload-shared": "साझा मिडिया भण्डारमी स्थानियरुपमी फाइलहरू अधिक्रमण गर्न्या",
"right-writeapi": "लेखन API प्रयोग गद्य्या",
"right-bigdelete": "लामो इतिहास भयाका पानाहरू मेट्ट्या",
"right-deleterevision": "खुलाइयाको पानाहरू मेटाउन्या र मेटायाको रद्द गद्या",
"right-suppressionlog": "व्यक्तिगत लगहरू हेद्या",
"right-block": "अरु प्रयोगकर्तानलाई सम्पादन गद्दाकी ब्लक गर",
"right-editprotected": "\"{{int:protect-level-sysop}}\" को हैसियतले सुरक्षित पानाहरू सम्पादन गद्या",
+ "right-editusercssjs": "अन्य प्रयोगकर्ताको सी.एस.एस. रे जाभास्क्रिप्ट फाइलहरू सम्पादन गद्या",
+ "right-editusercss": "अन्य प्रयोगकर्ताको सी. एस. एस. फाइलहरू सम्पादन गद्या",
"right-edituserjs": "अरु प्रयोकर्ताका जाभास्क्रिप्ट फाइलहरू सम्पादन गर्न्या",
"right-rollback": "पछिल्लो प्रयोगकर्ताको सम्पादनहरूलाई छरितो रुपमी पछाडि पर्काउन्या",
"right-markbotedits": "पछाडि फर्काउन्या सम्पादनहरूलाई बोट सम्पादनकारुपमी चिनो लगाउन्या",
"recentchanges-label-unpatrolled": "यो सम्पादन यैलसम्म गस्ती गरियाको नाइथी",
"recentchanges-label-plusminus": "यति बाइटहरू संख्याले पानाको आकार फेरबदल भयाको छ",
"recentchanges-legend-heading": "'''आदर्श वाक्य:'''",
- "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|list of new pages]] यैलाई लै हेरिदिय)",
+ "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नौला पानाको सूची]] यैलाई लै हेरिदिय)",
"rclistfrom": "$3 $2 देखिका नयाँ परिवर्तनहरू देखाउन्या",
"rcshowhideminor": "$1 सानतिनो सम्पादन",
"rcshowhideminor-show": "धेकाइदिय",
"recentchangeslinked-to": "यैको सट्टा यो पानासित जोडियाका पानानको परिवर्तन धेकाउन्या",
"upload": "चित्र अपलोड गर",
"uploadbtn": "फाइल अपलोड गर्न्या",
+ "upload-recreate-warning": "'''चेतावनी: त्यस नाममी रह्याका फाइलहरू सारियाको या हटायाको छ।'''\n\nयै पानाको सारियाको र हटायाको लग तमरो सहजताको लागि दियाको छ।",
"filedesc": "सारांश:",
+ "large-file": "यो सिफारिस गर्याछकि फाइलहरूको आकार $1 भन्दा ठूला हुनु हुँदैन;\nयै फाइलको आकार $2 छ ।",
+ "uploadstash-nofiles": "तमरा कोइ पनि स्टाश गर्याका फाइलहरू नाइथिन् ।",
+ "uploadstash-refresh": "फाइलहरूको सूची ताजा गर्न्या",
"license-header": "कोइ केइ नाइथिन",
+ "listfiles-summary": "यै खास पानाले अपलोड गर्याका सबै फाइलहरू धेकाउन्छ ।",
"imgfile": "चित्र",
"listfiles_count": "संस्करणहरू",
"file-anchor-link": "फाइल",
"nolinkstoimage": "यो चित्रसित लिंकभयाकि कोइ पाना नाइथी",
"sharedupload-desc-here": "यो फाइल $1 बठे हो र और परियोजनाहरू बठे पन प्रयोग गद्द सकिन्याछ । \nताखाइ यैको [$2 फ़ाइल विवरण पानो]मि रयाका विवरण तल्तिर दियाको छ।",
"upload-disallowed-here": "तमलाई यो फाइल अधिलेखन गद्द नाइसक्का ।",
+ "filedelete-maintenance": "रखरखाव चलिरह्याको हुनाले अस्थायी रुपमी फाइलहरू मेट्ट्या र मेट्याकोलाई पुनर्बहाली गर्न निष्क्रिय गरियाकोछ।",
+ "mimesearch-summary": "MIME-प्रकार अनुसार फाइलहरू खोज्न यै पानाको प्रयोग गद्द सकिन्याछ ।\nइनपुट: फाइलको प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>।",
"randompage": "कोइ एक लेख",
"statistics-header-pages": "पानानको तथ्याङ्क",
"statistics-header-edits": "सम्पादनहरूको तथ्याङ्क",
"undeletepage": "मेट्याका पानाहरू हेद्या र पूर्वरुपमी फर्काउन्या",
"undeletehistory": "यदि कुनै पानालाई पुन: स्थापन गरायौ भण्या सम्पूर्ण संस्करणहरू इतिहासमी पुन:स्थापन हुन्याछन् ।\nयदि यै नामबठे नयाँ पानो निर्माण भैसक्याको छ भण्या पुन: स्थापित संस्करणहरू पूर्व इतिहासको रुपमी स्थापित हुन्याछन् ।",
"undeleterevdel": "यदि यो मल्लो पानो बणन्छ या फाइल संस्करणहरू आंशिक मेटियाका छन् भण्या मेट्न्या काम रद्द गरिन्या छैन।\nत्यै अवस्थामी तमीले छनौटमी अन्तिम मेटियाको नयाँ संस्करण नलुकाउन्यामी चिनो लगाउनु पडन्छ ।",
+ "undeletedrevisions-files": "{{PLURAL:$1|एउटा संशोधन|$1 संशोधनहरू}} र {{PLURAL:$2|एउटा फाइल|$2 फाइलहरू}} पुनर्स्थापित गरियो",
"undeletedfiles": "{{PLURAL:$1|१ फाइल|$1 फाइलहरू }} पूर्वस्थितिमी ल्याइयो",
"undelete-header": "भर्खरै मेटायाका पानाहरू हेद्दाकीलाई [[Special:Log/delete|मेटायाका लग]]मी जाओ।",
"undelete-search-prefix": "सुरुवाती शब्द अनुसार पानाहरू खोज",
"show-big-image-preview": "यै पूर्व रुपको आकार: $1।",
"show-big-image-other": "और {{PLURAL:$2|resolution|रिजोल्युशनहरु}}: $1।",
"show-big-image-size": "$1 × $2 पिक्सल",
+ "newimages": "नौला फाइलहरूको ग्यालरी",
"imagelisttext": " '''$1''' {{PLURAL:$1|फाइल|फाइलहरू}} को निम्न सुची ,क्रमवद्ध $2.",
+ "newimages-summary": "यै खास पानाले अन्तिम अपलोड गर्याका फाइलहरू धेकाउँन्छ ।",
"days": "{{PLURAL:$1|$1 दिन|$1 दिनहरू}}",
"metadata": "मेटाडेटा",
"metadata-help": "यै फाइलमि अतिरिक्त जानकारीहरु छन्, यैलाई बनाउन सम्भवतः डिजिटल क्यामेरा और स्क्यानर प्रयोग गरियाको हुनसकन्छ । यदि यै फाइललाई खास अवस्थाबठे फेरबदल गरियाको हो भण्या यै फाइलले सब्बै विवरण प्रतिबिम्बित गद्द सक्यानाइथी ।",
"logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मि सारियो",
"logentry-newusers-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|खोलियो}}",
"logentry-upload-upload": "$1 ले $3 {{GENDER:$2|अपलोड अरेका छन्}}",
- "searchsuggest-search": "खोज"
+ "searchsuggest-search": "खोज",
+ "api-error-duplicate": "यै साइटमी पहिलीबठे यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल छ]|भयाका [$2 केहि अरु फाइलहरू छन्]}} ।",
+ "api-error-duplicate-archive": "यै साइटमी पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल थियो]|भयाका [$2 केहि अरु फाइलहरू थिए]}} ।\nतर {{PLURAL:$1|यो मेट्याको थियो|यी मेटायाका थिए}} ।",
+ "api-error-duplicate-archive-popup-title": "पैल्ली {{PLURAL:$1|मेट्याको फाइलको|मेट्याका फाइलहरूको}} नकल प्रति बनाउन्या।",
+ "api-error-duplicate-popup-title": "{{PLURAL:$1|फाइल|फाइलहरू}} नकल प्रति बनाउन्या"
}
"badsig": "Invalid raw signature.\nCheck HTML tags.",
"badsiglength": "Your signature is too long.\nIt must not be more than $1 {{PLURAL:$1|character|characters}} long.",
"yourgender": "How do you prefer to be described?",
- "gender-unknown": "I prefer not to say",
+ "gender-unknown": "When mentioning you, the software will use gender neutral words whenever possible",
"gender-male": "He edits wiki pages",
"gender-female": "She edits wiki pages",
"prefs-help-gender": "Setting this preference is optional.\nThe software uses its value to address you and to mention you to others using the appropriate grammatical gender.\nThis information will be public.",
"expansion-depth-exceeded-warning": "La página ha sobrepasado el límite de profundidad de expansión",
"parser-unstrip-loop-warning": "Se ha detectado un bucle en la función \"unstrip\"",
"parser-unstrip-recursion-limit": "Se ha superado el límite de recursividad de la función \"unstrip\" ($1)",
- "converter-manual-rule-error": "Se ha detectado un error en una regla de conversión de lenguaje manual",
+ "converter-manual-rule-error": "Se ha detectado un error en una regla manual de conversión de idioma",
"undo-success": "Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.",
"undo-failure": "No se ha podido deshacer la edición ya que otro usuario ha realizado una edición intermedia.",
"undo-norev": "No se ha podido deshacer la edición porque no existe o ha sido borrada.",
"badsig": "El código de tu firma no es válido; comprueba las etiquetas HTML.",
"badsiglength": "Tu firma es muy larga.\nDebe contener un máximo de {{PLURAL:$1|un carácter|$1 caracteres}}.",
"yourgender": "Sexo:",
- "gender-unknown": "Prefiero no especificarlo",
+ "gender-unknown": "Al mencionarte, el software usará palabras de género neutro siempre que sea posible",
"gender-male": "Masculino",
"gender-female": "Femenino",
"prefs-help-gender": "Este campo es opcional. El software lo utiliza para dirigirse a ti con el género gramatical apropiado. Esta información será pública.",
"email": "Correo electrónico",
- "prefs-help-realname": "El nombre real es opcional. Si lo proporcionas, se usará para dar atribución a tu trabajo.",
+ "prefs-help-realname": "El nombre real es opcional.\nSi lo proporcionas, se usará para dar atribución a tu trabajo.",
"prefs-help-email": "La dirección de correo electrónico es opcional, pero es necesaria para el restablecimiento de tu contraseña, en caso de que la olvides.",
"prefs-help-email-others": "También puedes permitir que otros usuarios te contacten por correo a través de un enlace en tus páginas de usuario y de discusión.\nTu dirección de correo no se revela cuando otros usuarios te contactan.",
"prefs-help-email-required": "Es necesario proporcionar una dirección de correo electrónico.",
"upload-proto-error": "Protocolo incorrecto",
"upload-proto-error-text": "Para subir archivos desde otra página la URL debe comenzar por <code>http://</code> o <code>ftp://</code>.",
"upload-file-error": "Error interno al subir el archivo",
- "upload-file-error-text": "Ha ocurrido un error interno mientras se intentaba crear un fichero temporal en el servidor. Por favor, contacta con un [[Special:ListUsers/sysop|administrador]].",
+ "upload-file-error-text": "Ha ocurrido un error interno mientras se intentaba crear un archivo temporal en el servidor. Contacta con un [[Special:ListUsers/sysop|administrador]].",
"upload-misc-error": "Error desconocido en la subida",
- "upload-misc-error-text": "Ha ocurrido un error durante la subida. Por favor verifica que la URL es válida y accesible e inténtalo de nuevo. Si el problema persiste, contacta con un [[Special:ListUsers/sysop|administrador]].",
+ "upload-misc-error-text": "Ha ocurrido un error durante la subida.\nVerifica que la URL es válida y accesible e inténtalo de nuevo.\nSi el problema persiste, contacta con un [[Special:ListUsers/sysop|administrador]].",
"upload-too-many-redirects": "La URL contenía demasiadas redirecciones",
"upload-http-error": "Ha ocurrido un error HTTP: $1",
"upload-copy-upload-invalid-domain": "No se pueden realizar cargas remotas desde este dominio.",
"uploaddisabledtext": "Faili üleslaadimine on keelatud.",
"php-uploaddisabledtext": "Failide üleslaadmine on PHP seadetes keelatud.\nPalun vaata <code>file_uploads</code> sätet.",
"uploadscripted": "See fail sisaldab HTML- või skriptikoodi, mida veebilehitseja võib valesti kuvada.",
- "upload-scripted-pi-callback": "Üles ei saa laadida faili, mis sisaldab XML-laadilehe protsessikäsku.",
+ "upload-scripted-pi-callback": "Üles ei saa laadida faili, mis sisaldab XML-laadilehe töötluskäsku.",
"uploaded-script-svg": "Üleslaaditud SVG-failist leiti skriptitav element \"$1\".",
"uploaded-hostile-svg": "Üleslaaditud SVG-faili laadielemendist leiti ebaturvaline CSS.",
"uploaded-event-handler-on-svg": "Sündmuse halduse atribuutide <code>$1=\"$2\"</code> seadmine pole SVG-failis lubatud.",
"pager-older-n": "{{PLURAL:$1|zaharragoa den 1|zaharragoak diren $1}}",
"suppress": "Gain-ikuspena",
"querypage-disabled": "Orrialde berezi hau desgaituta dago funtzionamendu arrazoiengatik.",
+ "apihelp": "API laguntza",
"apihelp-no-such-module": "Ez da \"$1\" modulua aurkitu.",
"booksources": "Iturri liburuak",
"booksources-search-legend": "Liburuen bilaketa",
"mediastatistics-table-mimetype": "MIME mota",
"mediastatistics-table-count": "Fitxategi kopurua",
"mediastatistics-header-unknown": "Ezezaguna",
+ "mediastatistics-header-bitmap": "Bit-mapako irudiak",
+ "mediastatistics-header-drawing": "Marrazkiak (irudi bektorialak)",
"mediastatistics-header-video": "Bideoak",
"json-error-syntax": "Sintaxi-errorea",
"special-characters-group-latin": "Latina",
"special-characters-group-persian": "Persiera",
"special-characters-group-hebrew": "Hebreera",
"special-characters-group-bangla": "Bangla",
+ "special-characters-group-tamil": "Tamil",
"special-characters-group-telugu": "Telugu",
"special-characters-group-sinhala": "Sinhala",
"special-characters-group-gujarati": "Guajarati",
"special-characters-group-thai": "Thaiera",
"special-characters-group-lao": "Laosera",
- "special-characters-group-khmer": "Khmerrera"
+ "special-characters-group-khmer": "Khmerrera",
+ "special-characters-title-minus": "minus zeinua"
}
"special-characters-group-telugu": "télougou",
"special-characters-group-sinhala": "cingalais",
"special-characters-group-gujarati": "gujarâtî",
- "special-characters-group-devanagari": "Devanagari",
+ "special-characters-group-devanagari": "dévanagari",
"special-characters-group-thai": "thaï",
"special-characters-group-lao": "laotien",
"special-characters-group-khmer": "khmer",
- "special-characters-title-endash": "tiret anglais",
- "special-characters-title-emdash": "tiret em",
+ "special-characters-title-endash": "tiret demi-cadratin",
+ "special-characters-title-emdash": "tiret cadratin",
"special-characters-title-minus": "signe moins"
}
"ok": "Aceptar",
"retrievedfrom": "Traído desde \"$1\"",
"youhavenewmessages": "{{PLURAL:$3|Ten}} $1 ($2).",
- "youhavenewmessagesfromusers": "{{PLURAL:$4|Ten} $1 {{PLURAL:$3|doutro usuario|de $3 usuarios}} ($2).",
+ "youhavenewmessagesfromusers": "{{PLURAL:$4|Ten}} $1 {{PLURAL:$3|doutro usuario|de $3 usuarios}} ($2).",
"youhavenewmessagesmanyusers": "Ten $1 de moitos usuarios ($2).",
"newmessageslinkplural": "{{PLURAL:$1|unha mensaxe nova|999=mensaxes novas}}",
"newmessagesdifflinkplural": "{{PLURAL:$1|última modificación|999=últimas modificacións}}",
"badsig": "Sinatura non válida; comprobe o código HTML utilizado.",
"badsiglength": "A súa sinatura é demasiado longa.\nHa de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.",
"yourgender": "Cal das seguintes oracións referidas a vostede é a máis axeitada?",
- "gender-unknown": "Prefiro non indicalo",
+ "gender-unknown": "Ao mencionarlle, o software empregará verbas de xénero neutral sempre que sexa posible",
"gender-male": "El edita as páxinas do wiki",
"gender-female": "Ela edita as páxinas do wiki",
"prefs-help-gender": "Definir esta preferencia é opcional.\nO software usa este valor para dirixirse á súa persoa e para facerlle mencións mediante o xénero gramatical axeitado.\nEsta información será pública.",
"recentchangeslinked-page": "Nome da páxina:",
"recentchangeslinked-to": "Mostrar os cambios relacionados das páxinas que ligan coa dada",
"upload": "Subir un ficheiro",
- "uploadbtn": "Subir o ficheiro",
+ "uploadbtn": "Subir un ficheiro",
"reuploaddesc": "Cancelar a carga e volver ao formulario de carga",
"upload-tryagain": "Enviar a descrición do ficheiro modificada",
"uploadnologin": "Non accedeu ao sistema",
"actions": "Karvaio",
"namespaces": "Nanv-thollam",
"variants": "Dusre",
+ "navigation-heading": "Dixa-niontron suchi",
"errorpagetitle": "Chuk",
"returnto": "$1 hanga porot voch.",
"tagline": "{{SITENAME}} savn",
"permalink": "Togpi zodd",
"print": "Chap",
"view": "Poloi",
- "edit": "Sudar",
+ "view-foreign": "$1-hacher polloi",
+ "edit": "Bodol",
"create": "Roch",
+ "create-local": "Thollavem vornon zod",
"editthispage": "Hem pan bodol",
"create-this-page": "Ho pan roch",
"delete": "Vogllai",
"otherlanguages": "Dusrea bhasanim",
"redirectedfrom": "($1 savn porot dixent)",
"redirectpagesub": "Punornirdexan pan",
+ "redirectto": "Hanga ponornirdeshit kor:",
"lastmodifiedat": "Hem pan xevtim $1 disa, $2 vazta bodolelem.",
"jumpto": "Hangachean voch",
"jumptonavigation": "Dixa-niontronn",
"copyrightpage": "{{ns:project}}:Prat-hokk",
"currentevents": "Chalu ghoddnneo",
"currentevents-url": "Project:Chalu ghoddneo",
- "disclaimers": "Chotraio",
- "disclaimerpage": "Project:Sadeo chotraio",
- "edithelp": "Sudarunk palov",
+ "disclaimers": "Nhoikarnio",
+ "disclaimerpage": "Project:Sadeo nhoikarnio",
+ "edithelp": "Bodlunk adar",
"mainpage": "Mukhel Pan",
"mainpage-description": "Mukhel Pan",
"portal": "Somudaik proves-dar",
"ok": "Zait",
"retrievedfrom": "\"$1\" savn prapt kelam",
"youhavenewmessages": "Tumkam $1 ($2) asat.",
- "editsection": "sudar",
- "editold": "sudar",
+ "editsection": "bodol",
+ "editold": "bodol",
"viewsourceold": "mull poloi",
- "editlink": "sudar",
+ "editlink": "bodol",
"viewsourcelink": "mull polloi",
- "editsectionhint": "khondd sudar: $1",
+ "editsectionhint": "Khond bodol: $1",
"toc": "Suchi potr",
"showtoc": "dakhoi",
"hidetoc": "lipoi",
"viewsource": "Mull polloi",
"welcomeuser": "Ievkar, $1!",
"yourname": "Vapuddpeachem nanv:",
+ "userlogin-yourname": "Vangdiachem nanv",
+ "userlogin-yourname-ph": "Tujem 'vangdeachem nanv' boroi",
"yourpassword": "Gupitutor:",
"userlogin-yourpassword": "Gupitutor",
+ "userlogin-yourpassword-ph": "Tujem gupitutor boroi",
+ "createacct-yourpassword-ph": "Gupitutor boroi",
"yourpasswordagain": "Gupit utor porot boroi:",
+ "createacct-yourpasswordagain": "Gupitutrachi khatri kor",
+ "createacct-yourpasswordagain-ph": "Gupitutor porot boroi",
"remembermypassword": "Hea internet browseran mhojem sotrachem ugdas dovor (chodan chod $1 {{PLURAL:$1|disak|disank}})",
- "login": "Sotrromb kor",
- "nav-login-createaccount": "Sotrrombh kor / khato roch",
+ "userlogin-remembermypassword": "Mhojem sotr chalu dovor",
+ "login": "Sotroromb kor",
+ "nav-login-createaccount": "Sotrrombh kor / khatem roch",
"userlogin": "Sotrrombh kor / khatem roch",
"logout": "Bhair podd",
"userlogout": "Sotracho xevott",
+ "userlogin-noaccount": "Tuje kode khatem na?",
+ "userlogin-joinproject": "{{SITENAME}}-hacho vangdi za",
"nologin": "Tuje kodde khatem na? $1.",
"nologinlink": "Novem khatem ughodd",
"createaccount": "Khatem roch",
"gotaccount": "Tuje kodem khatem asa? $1.",
"gotaccountlink": "Sotrorombh kor",
"userlogin-resetlink": "Sotrorombh korpacheo bariksai visorlai?",
+ "userlogin-resetpassword-link": "Gupitutor visorlo?",
+ "userlogin-helplink2": "Sotrorombh korunk adar",
+ "createacct-emailoptional": "Email potto (sokti na)",
+ "createacct-email-ph": "Tuzo email potto boroi",
+ "createacct-captcha": "Suraksha topasni",
+ "createacct-imgcaptcha-ph": "Voir dixta to mozkur boroi",
+ "createacct-submit": "Tujem khatem roch",
+ "createacct-benefit-heading": "{{SITENAME}} tujea bhaxen lokani kel'la",
+ "createacct-benefit-body1": "{{PLURAL:$1|bodlop|bodlopam}}",
+ "createacct-benefit-body2": "{{PLURAL:$1|pan|panam}}",
+ "createacct-benefit-body3": "halincheo {{PLURAL:$1|yogdan diupi}}",
"mailmypassword": "Novem gupitutor",
"loginlanguagelabel": "Bhas: $1",
+ "pt-login": "Sotrorombh kor",
+ "pt-login-button": "Sotrorombh kor",
+ "pt-createaccount": "Khatem roch",
+ "pt-userlogout": "Sotracho xevott",
+ "passwordreset": "Novem gupitutor",
"bold_sample": "Datt mozkur",
"bold_tip": "Datt mozkur",
"italic_sample": "Palso mozkur",
"hr_tip": "Adhvem rang (Komi uzar kor)",
"summary": "Sar:",
"subject": "Vishoy:",
- "minoredit": "Hem ek dhaktem sudarop",
+ "minoredit": "Hem ek dhaktem bodol",
"watchthis": "Hea panar nodor dovor",
"savearticle": "Pan samball",
"preview": "Zholok",
"showpreview": "Zholok dakhoi",
"showdiff": "Bodolpam dakhoi",
- "anoneditwarning": "'''Chotrai:''' Tuven sotrorombh korunk nai.\nTuzo internet potteachi nond panachem itihasan zatelem.",
+ "anoneditwarning": "<strong>Chotrai:</strong> Tuven sotrorombh korunk nai. Tu bodlopam korit zalear tuzo internet potto soglleank polleunk zatelem. Tu <strong>[$1 sotrorombh korit]</strong> vo <strong>[$2 kont rochit]</strong> zalear, tujeo bodlopam tuzo vagddiachem nanvak zoddteleo ani anik-ui faide asat.",
+ "loginreqlink": "sotrorombh kor",
"newarticle": "(Novem)",
"newarticletext": "Tuven ek zoddache patlav kelai, zachem pan azun rochunk na.\nPan rochunk, khallchea chovkottan boroi (anik mahitik [$1 adar pan] polloi).\nTu hangasor chukin pavlai zalear tujea internet browser-achi '''Fatim'' vo '''Back''' butao dab.",
"noarticletext": "Sodheak hem pan rinte asa.\nTujean dusrea panani [[Special:Search/{{PAGENAME}}|hea panache nanv sodunk zata]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sombondhi sotrani sodunk zata], vo [{{fullurl:{{FULLPAGENAME}}|action=edit}} hem pan sudharunk zata]</span>.",
"noarticletext-nopermission": "Sodheak hem pan rinte asa.\nTujean dusrea panani [[Special:Search/{{PAGENAME}}|hea panache nanv sodunk zata]], vo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sombondhi sotrani sodunk zata], pun tuka hem pan rochunk porvangi na.",
"previewnote": "'''Hi fokot ek zholok mhonn ugddas dhor.'''\nTujim bodolpam azun sambhallun dovrunk nant!",
- "editing": "$1 sudarop",
- "editingsection": "(Vibhag) $1 sudar",
+ "editing": "$1 bodolta",
+ "creating": "$1 rochta",
+ "editingsection": "(Khond) $1 sudar",
"templatesused": "Hea panant uzar {{PLURAL:$1|kel'lo sancho|kel'le sanche}}:",
"template-protected": "(rakhlelem)",
"template-semiprotected": "(ordhem rakhun dovorlelem)",
"revdel-restore": "Disnnem bodol",
"revertmerge": "Doxim kor",
"history-title": "\"$1\" hachea uzollnnecho itihas",
+ "difference-title": "\"$1\"-chea avruttint ontor",
"lineno": "Line ank $1:",
"compareselectedversions": "Nivodloleo uzollneo comparar kor",
"editundo": "rod'd kor",
+ "diff-multi-sameuser": "(Heach vangdian {{PLURAL:$1|kel'lo modlo ek bodlop dakhounk na|kel'le modle $1 bodlopam dakhounk nan}})",
"searchresults": "Sodacho nikal",
"searchresults-title": "\"$1\" -khatir sodacho nikal",
"prevn": "adlem {{PLURAL:$1|$1}}",
"search-suggest": "mhonnunk sodi: $1",
"searchrelated": "sombondit",
"searchall": "soglle",
+ "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> modlean <strong>$1</strong> porinam|<strong>$3</strong> modlean porinam <strong>$1 - $2</strong>}}",
"search-nonefound": "Tujea sodak mell khata toslem kai porinam nan.",
"preferences": "Posondeo",
"mypreferences": "Posonti",
"prefs-help-email": "Email potto sokticho na, pun tum gupitutor visroxi zalear gupitutor punorsthapon korunk email pottechi goroz podta.",
"prefs-help-email-others": "Tujean dusreank tujea vapurpeacho panar vo bhasabhasache panar aslele eke email zodde vorvim tuje xim sompork korunk diunk zata.\nDusre tuje xim sompork kortat tednam tuzo email potto tankam kollchenam.",
"group-all": "(soglle)",
+ "right-writeapi": "Borovpeache API-cho upeog",
"newuserlogpage": "Vapurpi rochnnechem sotr",
"action-edit": "hem pan sudar",
"nchanges": "$1 {{PLURAL:$1|bodlop|bodlopam}}",
+ "enhancedrc-history": "itihas",
"recentchanges": "Halincho bodol",
"recentchanges-legend": "Hallinch zalleo bodlopancheo poryay",
+ "recentchanges-summary": "Hea wikicher halinch zal'le bodlopancher nodor dovor.",
"recentchanges-feed-description": "Wiki'k kel'le halinche bodlopancher hea vhawa vorvim nodor dovor.",
- "recentchanges-label-newpage": "Hea sudaran ek novem pan rochlam",
- "recentchanges-label-minor": "Ho ek dhaktto sudar",
+ "recentchanges-label-newpage": "Hea bodlopan ek novem pan rochlam",
+ "recentchanges-label-minor": "Ho ek dhaktto bodlop",
"recentchanges-label-bot": "Hem bodlop eka robotan kel'lem",
"recentchanges-label-unpatrolled": "Hem sudharop azun topasunk nam",
- "rcnotefrom": "Sokoil <strong>$2<strong> savn zalelim bodolpam dileant ( <strong>$1<strong> meren dakhoileant).",
+ "recentchanges-label-plusminus": "Hea panacho akar itlea baitani bodollo",
+ "recentchanges-legend-heading": "\"Kunji:\"",
+ "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|nove pananchi suchi]]-ui polloi)",
+ "rcnotefrom": "Sokoil <strong>$3, $4<strong> savnsavn {{PLURAL:$5|zalelem bodlop dilam|zalelim bodolpam dileant}} (<strong>$1<strong> meren {{PLURAL:$5|dakhoilam|dakhoileant}}).",
"rclistfrom": "$3 $2 savn suru zatelim novim bodolpam dakhoi",
- "rcshowhideminor": "$1 dhaktteo sudarnneo",
+ "rcshowhideminor": "$1 dhaktteo bodlopam",
+ "rcshowhideminor-show": "Dakhoi",
+ "rcshowhideminor-hide": "Lipoi",
"rcshowhidebots": "$1 robot",
+ "rcshowhidebots-show": "Dakhoi",
+ "rcshowhidebots-hide": "Lipoi",
"rcshowhideliu": "$1 nond zalele vapuddpi",
+ "rcshowhideliu-hide": "Lipoi",
"rcshowhideanons": "$1 nanv-naslelim vapurpi",
+ "rcshowhideanons-show": "Dakhoi",
+ "rcshowhideanons-hide": "Lipoi",
"rcshowhidepatr": "$1 topaslele sudharop",
- "rcshowhidemine": "Mhojem sudarop $1",
+ "rcshowhidemine": "Mhojeo bodlopam $1",
+ "rcshowhidemine-show": "Dakhoi",
+ "rcshowhidemine-hide": "Lipoi",
"rclinks": "Xevtiche $2 disanim zal'le $1 bodlopam dakhoi<br />$3",
"diff": "frk",
"hist": "iti",
"minoreditletter": "d",
"newpageletter": "N",
"boteditletter": "r",
+ "rc-change-size-new": "$1 {{PLURAL:$1|byte|byti}} bodol kel'lea uprant",
"rc-enhanced-expand": "Bariksann dakhoi",
"rc-enhanced-hide": "Bariksann lipoi",
"recentchangeslinked": "Sombondit bodolpam",
"watchthisupload": "Hea faylar dixtt dovor",
"license": "Porvangi",
"license-header": "Porvangi",
+ "imgfile": "fail",
"file-anchor-link": "Fail",
"filehist": "Failicho itihas",
- "filehist-help": " Tea vellar aslelea rupan pollonvk tarikh/vellar koll mar",
+ "filehist-help": "Tea vellar aslelea rupan pollonvk tarikh/vellar click kor",
"filehist-revert": "Nimanea avruttik porot vor",
"filehist-current": "chalont",
"filehist-datetime": "Tarikh/Vell",
"linkstoimage": "{{PLURAL:$1|Hem pan|$1 Him panam}} hea failik {{PLURAL:$1|zoddtta|zoddttat}}",
"nolinkstoimage": "Hea failik zoddpi panam nant",
"sharedupload-desc-here": "Hi fail $1, hachi ani dusreo projectanim haka uzar korunk zata.\nHachem [$2 failichem vivron panan] asleli vivron khala dilea:",
+ "upload-disallowed-here": "Tu hea faili voir borounk xokonai",
"filedelete-otherreason": "Dusrem/aniki karon:",
"randompage": "Khoincheim pan",
"statistics": "Ankddevari",
"pager-older-n": "{{PLURAL:$1|adlem 1|adlim $1}}",
"booksources": "Pustokachem mull",
"booksources-search-legend": "Pustokachim mullam sod",
+ "booksources-search": "Sod",
"speciallogtitlelabel": "Vishoi vo vapurpi:",
"log": "Sotram",
"allpages": "Sogllim panam",
"dellogpage": "Vogllaoneche sotr",
"deleteotherreason": "Dusrem/aniki karon:",
"rollbacklink": "kovoll",
+ "rollbacklinkcount": "$1 {{PLURAL:$1|bodlop|bodlopam}} kovoll",
"protectlogpage": "Surokxitechem sotr",
"protectedarticle": "rakhlelem \"[[$1]]\"",
"protect-otherreason": "Dusrem/aniki karon:",
"undeleteviewlink": "polloi",
"namespace": "Nanv-tholl",
"invert": "Nonddni urfattoi",
+ "tooltip-invert": "Vinchlele nanvtholla (ani khunnailam zalear sombondhit nanvtholla) bhitorlea pananim kel'le bodlopam lipounk hem boks khunnai",
+ "namespace_association": "Sombondhit nanvtholl",
+ "tooltip-namespace_association": "Vinchlele nanvthollache sombondhit bhasabhas vo vixoiacho nanvthollakui gheupak hem boks khunnai",
"blanknamespace": "(Mukhel)",
"contributions": "{{GENDER:$1|Vapuddpi}} borovpam",
"contributions-title": "$1 hea vapuddpean kelelim borovpam",
"tooltip-pt-preferences": "Tumcheo avddi",
"tooltip-pt-watchlist": "Bodlachea dekhrekh korpachea panachi volleri",
"tooltip-pt-mycontris": "Tujea borovpanchi suchi",
- "tooltip-pt-login": "Tumkam sotrrombh korunk protsavan asa; em soktichem nhoi",
+ "tooltip-pt-login": "Tumkam sotrormbh korunk protsavan asa; em soktichem nhoi",
"tooltip-pt-logout": "Sotracho xevott",
+ "tooltip-pt-createaccount": "Sotrorombh kelear borem; pun toxi sokti nam",
"tooltip-ca-talk": "Mozkurachea vixoiavoir bhasabhas",
- "tooltip-ca-edit": "Tumchean hem pan sudarunk zata. Upkar korun sambhallche adim zholok butanv vapor",
+ "tooltip-ca-edit": "Tumchean hem pan bodlunk zata. Upkar korun sambhallche adim zholok butanv vapor",
"tooltip-ca-addsection": "Novo vibhag suru kor",
"tooltip-ca-viewsource": "Hem pan rakhun dovorlam.\nTujean tachem mull pollonv ieta",
"tooltip-ca-history": "Hea panacheo adleo uzollnneo",
"tooltip-n-currentevents": "Chalu ghoddneachea fattbhuichi mahiti sod",
"tooltip-n-recentchanges": "Wikint halinch bodol keleleachi volleri",
"tooltip-n-randompage": "Khoincheim ek pan uktem kor",
- "tooltip-n-help": "sodpachem tholl",
+ "tooltip-n-help": "Sodpachem tholl",
"tooltip-t-whatlinkshere": "Hanga zoddlelea sogllea wiki pananchi volleri",
"tooltip-t-recentchangeslinked": "Hea panak zoddlelea panachim halinchim bodolpam",
"tooltip-feed-atom": "Hea panak Atom purovnni",
"tooltip-t-permalink": "Hea panache uzollnnek togpi zodd",
"tooltip-ca-nstab-main": "Suchi pan polloi",
"tooltip-ca-nstab-user": "Vapuddpeachem pan polloi",
- "tooltip-ca-nstab-special": "Hem ek kherit pan, tujeam hem pan sudarunk zaina",
+ "tooltip-ca-nstab-special": "Hem ek kherit pan, tujeam hem pan bodlunk zaina",
"tooltip-ca-nstab-project": "Project-achem pan polloi",
"tooltip-ca-nstab-image": "Failichem pan polloi",
"tooltip-ca-nstab-template": "Saacho polloi",
"tooltip-rollback": "\"Kovllop\" hea panachea xevttachea borovpa kodde kea kollant portota.",
"tooltip-undo": "\"Rodd' kor\" sudharop portita ani sudharopak Zholok ritin ukodta. Tem saran karon zoddunk dita.",
"tooltip-summary": "Mottvo sar ghal",
+ "simpleantispam-label": "Spam-virudh topasni.\nHem bhori <strong>NAKAI</strong>",
"pageinfo-toolboxlink": "Panachi mahiti",
- "previousdiff": "← Adlo sudar",
+ "previousdiff": "← Adlo bodlop",
"nextdiff": "Fuddlem bodlop →",
"file-info-size": "$1 × $2 pixelam, failicho akar: $3, MIME prokar: $4",
"file-nohires": "Odhik bariksai na.",
"svg-long-desc": "SVG fail, nanvak $1 × $2 pixeli, failcho akar: $3",
"show-big-image": "Mull fail",
+ "show-big-image-preview": "Hea dakhovnicho akar: $1",
+ "show-big-image-other": "Her {{PLURAL:$2|bariksai}}: $1.",
+ "show-big-image-size": "$1 × $2 piksel",
"bad_image_list": "Akar oso asa:\n\nFokot suchicheo vostu (*-chean suru zateleo) dheanant ghevcheo\nTech vollir, uprantli zoddnni opvad dhorpant ieta,mhonnche zoim pana failichea ek vollint asunk xoktat.",
"metadata": "Metadata",
"metadata-help": "Hea failin anikui mahiti asa, hi fail korunk uzar kel'le digital camera vo scanner sun tem aila zait.\nZori tor hi failik bodol'lam zalear kai mahiti bodololem failik sarkem mell khaina zait.",
"metadata-fields": "Metadata chovkott konsollttoch, hea sondexant metadata molleantlea murtipanachea dakhovnnent aspav astolo.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+ "exif-orientation": "Obhivinyas",
+ "exif-xresolution": "Advem bariksai",
+ "exif-yresolution": "Ubem bariksai",
+ "exif-datetime": "Failichem bodolpachem tarikh ani vell",
+ "exif-make": "Camera utpadok",
+ "exif-model": "Cameracho modelacho ank",
+ "exif-software": "Vapurlelo software",
+ "exif-exifversion": "Exif-achi avrutti",
+ "exif-colorspace": "Rongacho zago",
+ "exif-datetimeoriginal": "Mahiti-nirmitichi tarikh ani vell",
+ "exif-datetimedigitized": "Fail rochpachem tarikh ani vell",
+ "exif-orientation-1": "Samanya",
"namespacesall": "sogllem",
"monthsall": "sogllem",
"watchlisttools-view": "Sombondhi bodlopam polloi",
"watchlisttools-edit": "Sadurvolleri polloi ani sudar",
"watchlisttools-raw": "Sadurvollerichi mull-an bodol kor",
+ "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|uloi]])",
"duplicate-defaultsort": "'''Chotrai:''' Falta anukraman mukhel ''$2'' rodd korta adhlem falta anukraman mukhel ''$1'', haka.",
"specialpages": "Khaxelim Panam",
"external_image_whitelist": " #Hi voll asa toxich dovor<pre>\n#Khala sodpache sache (''regular expressions'') ghal (fokot // modem voita poi tem bhag)\n#Hanche borobor bhaile zodlele murt comparar kel'le zatele\n#Mell khatat tim murt koxeo distele, na zalear fokot mortek ek zodd distele\n#Jeo voll #-an suru zatele tem vivek mhunn manlele zatele\n#Hanga vhodle and dhakte okxora modem forok podona\n\n#Soglle sodpache sache hea volla voir ghal. Hi voll asa toxich dovor</pre>",
"tag-filter": "[[Special:Tags|Dospi]] challni:",
+ "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Khunoptako|Khunoptake}}]]: $2)",
+ "logentry-delete-delete": "$1-an {{GENDER:$2|kadun udoile}} pan $3",
+ "logentry-move-move": "$1{{GENDER:$2|-an}} $3 panak $4 haloilea",
+ "logentry-newusers-create": "Vapurpeacho kont $1 {{GENDER:$2|rochlam}}",
+ "logentry-upload-upload": "$1-an $3 {{GENDER:$2|upload kela}}",
"searchsuggest-search": "Sod"
}
"badsig": "અવૈધ કાચી સહી\nHTML નાકું ચકાસો",
"badsiglength": "તમારી સહી વધુ પડતી લાંબી છે.\nતે $1 {{PLURAL:$1|અક્ષર|અક્ષરો}} કરતા વધુ લાંબી ન હોવી જોઇએ.",
"yourgender": "તમે કેવી રીતે ઓળખાવવાનું પસંદ કરો છો?",
- "gender-unknown": "હà«\81àª\82 વિàª\97તà«\8b ન àª\86પવાનà«\81àª\82 પસàª\82દ àª\95રà«\81àª\82 àª\9bà«\81àª\82",
+ "gender-unknown": "તમારà«\8b àª\89લà«\8dલà«\87àª\96 àª\95રતà«\80 વàª\96તà«\87, શàª\95à«\8dય હશà«\87 તà«\8dયાàª\82 સà«\89ફà«\8dàª\9fવà«\85ર લિàª\82àª\97 તàª\9fસà«\8dથ શબà«\8dદà«\8bનà«\8b પà«\8dરયà«\8bàª\97 àª\95રશà«\87.",
"gender-male": "તેણે વિકિ પાનાંઓમાં ફેરફાર કર્યા",
"gender-female": "તેણીએ વિકિ પાનાંઓમાં ફેરફાર કર્યા",
"prefs-help-gender": "આ પસંદગી ગોઠવવી વૈકલ્પિક છે. \nસોફ્ટવેર આ વિગત આપને વ્યાકરણની રીતે લિંગ ઓળખ દ્વારા સંબોધવા માટે વાપરશે.\nઆ માહિતી જન સમુદાય માટે જાહેર હશે.",
"userrights-lookup-user": "સભ્ય સમુહો નું પ્રબંધન કરો",
"userrights-user-editname": "સભ્યનામ દાખલ કરો:",
"editusergroup": "સભ્ય સમુહો સંપાદીત કરો",
- "editinguser": "સભ્ય '''[[User:$1|$1]]''' ના વપરાશકર્તા અધિકારો બદલો $2",
+ "editinguser": "{{GENDER:$1|સભ્ય}} <strong>[[User:$1|$1]]</strong> ના વપરાશકર્તા અધિકારો બદલો $2",
"userrights-editusergroup": "સભ્ય સમુહો સંપાદીત કરો",
"saveusergroups": "સભ્ય સમુહો સાચવો",
"userrights-groupsmember": "સભ્યપદ:",
"wantedtemplates": "ઇચ્છિત ઢાંચા",
"mostlinked": "સૌથી વધુ કડીઓ દ્વારા જોડાયેલ પાનું",
"mostlinkedcategories": "સૌથી વધુ શ્રેણીઓ દ્વારા જોડાયેલ પાનું",
- "mostlinkedtemplates": "સૌથી વધુ જોડાયેલ પાનાંઓ",
+ "mostlinkedtemplates": "સૌથી વધુ જોડાયેલાં પાનાંઓ",
"mostcategories": "સૌથી વધુ શ્રેણીઓ ધરાવતાં પાનાં",
"mostimages": "સૌથી વધુ કડીઓ દ્વારા જોડાયેલી ફાઇલ",
"mostinterwikis": "સૌથી વધુ આંતરવિકી કડીઓ ધરાવતાં પાના",
"tooltip-ca-talk": "અનુક્રમણિકાનાં પાના વિષે ચર્ચા",
"tooltip-ca-edit": "આપ આ પાનામાં ફેરફાર કરી શકો છો, કાર્ય સુરક્ષિત કરતાં પહેલાં 'ઝલક' બટન ઉપર ક્લિક કરીને જોઇ લેશો",
"tooltip-ca-addsection": "નવો વિભાગ ઉમેરો",
- "tooltip-ca-viewsource": "àª\86 પાનà«\81 સà«\81રàª\95à«\8dષિત àª\9bà«\87.\nતમà«\87 તà«\87નà«\8b સà«\8dતà«\8dરà«\8bત àª\9cà«\8bàª\87 શàª\95à«\8b àª\9bà«\8b",
+ "tooltip-ca-viewsource": "આ પાનુ સુરક્ષિત છે.\nતમે તેનો સ્રોત જોઇ શકો છો",
"tooltip-ca-history": "આ પાનાનાં અગાઉનાં ફેરફારો",
"tooltip-ca-protect": "આ પાનું સુરક્ષિત કરો",
"tooltip-ca-unprotect": "આ પાનું રક્ષણ બદલો",
"badsig": "חתימה מסוגננת שגויה.\nנא לבדוק את תגיות ה־HTML.",
"badsiglength": "חתימתך ארוכה מדי.\nאורך החתימה המרבי הוא {{PLURAL:$1|תו אחד|$1 תווים}}.",
"yourgender": "איזה תיאור מתאים לך?",
- "gender-unknown": "×\90×\99× ×\99 ר×\95צ×\94 ×\9c×\95×\9eר",
+ "gender-unknown": "×\91×\90×\96×\9b×\95ר×\99×\9d ש×\9c×\9a ×\91×\9e×\9eשק, ×\94×\9eער×\9bת תשת×\9eש ×\91×\9e×\99×\93ת ×\94×\90פשר ×\91×\9cש×\95×\9f ש×\90×\99× ×\94 ת×\9c×\95×\99ת־×\9e×\92×\93ר",
"gender-male": "הוא עורך דפים בוויקי",
"gender-female": "היא עורכת דפים בוויקי",
"prefs-help-gender": "אין חובה למלא העדפה זו.\nהמערכת משתמשת במידע זה כדי לפנות אליך/אלייך ולציין את שם המשתמש שלך במין הדקדוקי הנכון.\nהמידע יהיה ציבורי.",
"badsig": "गलत कच्चा हस्ताक्षर।\nHTML टैग की जाँच करें।",
"badsiglength": "यह हस्ताक्षर बहुत बड़ा है।\nयह $1 {{PLURAL:$1|कैरैक्टर}} से अधिक का नहीं होना चाहिए।",
"yourgender": "आप स्वयं को कैसे वर्णित करना चाहेंगे?",
- "gender-unknown": "मà¥\88à¤\82 वरà¥\8dणन नहà¥\80à¤\82 à¤\95रना à¤\9aाहà¥\82à¤\81गा",
+ "gender-unknown": "à¤\86पà¤\95ा वरà¥\8dणन à¤\95रतà¥\87 समय, à¤\9cहाà¤\81 तà¤\95 समà¥\8dà¤à¤µ हà¥\8bà¤\97ा सà¥\89फ़à¥\8dà¤\9fवà¥\87यर लिà¤\82à¤\97 तà¤\9fसà¥\8dथ शबà¥\8dदà¥\8bà¤\82 à¤\95ा पà¥\8dरयà¥\8bà¤\97 à¤\95रà¥\87गा",
"gender-male": "मैं सम्पादन करता हूँ।",
"gender-female": "मैं सम्पादन करती हूँ।",
"prefs-help-gender": "यह जानकारी देना वैकल्पिक है।\nयह सॉफ़्टवेयर में लिंग के आधार पर आपके लिए सही संबोधन हेतु प्रयुक्त होता है।\nयह जानकारी सार्वजनिक होगी।",
"uploaded-script-svg": "अपलोड की गयी एसवीजी फ़ाइल में स्क्रीप्ट अवयव \"$1\" पाया गया।",
"uploaded-hostile-svg": "अपलोड की गयी एसवीजी फाइल के शैली अवयव में असुरक्षित सीएसएस पायी गयी।",
"uploaded-event-handler-on-svg": "सेटिंग ईवेंट हैंडलर (आयोजन प्रबन्धनकर्ता वरियता) <code>$1=\"$2\"</code> एसवीजी फ़ाइल में अनुमत नहीं है।",
- "uploaded-href-attribute-svg": "गैर-स्थानीय लक्ष्य के साथ एचआरईऍफ श्रेय (Href attributes) <code><$1 $2=\"$3\"></code> (उदाहरण के लिए http://, जावास्क्रीप्ट:, इत्यादि) एसवीजी फाइल में अनुमत नहीं हैं।",
+ "uploaded-href-attribute-svg": "गैर-स्थानीय लक्ष्य के साथ एचआरईऍफ श्रेय (href attributes) <code><$1 $2=\"$3\"></code> (उदाहरण के लिए http://, जावास्क्रीप्ट:, इत्यादि) एसवीजी फाइल में अनुमत नहीं हैं।",
"uploaded-href-unsafe-target-svg": "अपलोड की गयी फ़ाइल में असुरक्षित लक्ष्य <code><$1 $2=\"$3\"></code> पाये गए।",
"uploaded-animate-svg": "चिप्पि \"animate\" पायी गई जिससे href परिवर्तित हो सकता है, अपलोड की गयी फ़ाइल में \"from\" विशेषता <code><$1 $2=\"$3\"></code> काम में ली जा रही है।",
"uploadscriptednamespace": "इस एस॰वी॰जी फ़ाइल में अमान्य नामस्थान \"$1\" है।",
"unusedimages": "अप्रयुक्त फ़ाइलें",
"wantedcategories": "वांछित श्रेणियाँ",
"wantedpages": "जो पृष्ठ चाहिये",
- "wantedpages-summary": "जिसअनुपस्थित पृष्ठों की सूचीमें उनसे जुड़े अधिकांश कड़ियाँ हैं सिवाय उन पृष्ठों के जिनमें केवल अनुप्रेषित कड़ियाँ जुड़ती हों। अनुपस्थित पृष्ठों की सूची के लिए जिनमें केवल अनुप्रेषित कड़ियाँ जुड़ती हों, देखिए [[{{#special:BrokenRedirects}}]]।",
+ "wantedpages-summary": "जिसअनुपस्थित पृष्ठों की सूचीमें उनसे जुड़े अधिकांश कड़ियाँ हैं सिवाय उन पृष्ठों के जिनमें केवल अनुप्रेषित कड़ियाँ जुड़ती हों। अनुपस्थित पृष्ठों की सूची के लिए जिनमें केवल अनुप्रेषित कड़ियाँ जुड़ती हों, [[{{#special:BrokenRedirects}}|टूटे हुये पुनर्निर्देशों की सूची]] देखें।",
"wantedpages-badtitle": "परिणामों में अवैध शीर्षक: $1",
"wantedfiles": "वांछित फ़ाइलें",
"wantedfiletext-cat": "निम्न फ़ाइलें प्रयुक्त हैं पर मौजूद नहीं हैं। बाहरी भंडारों की फ़ाइलें मौजूद होने के बावजूद सूची में हो सकती हैं। ऐसी कोई भी गलत प्रविष्टियाँ <del>काटी हुई</del> होंगी। साथ ही, जो पृष्ठ ऐसी फ़ाइलों का प्रयोग करते हैं जो मौजूद नहीं हैं, उनकी सूची [[:$1]] में है।",
"sunday": "Domingo",
"monday": "Lunes",
"tuesday": "Martes",
- "wednesday": "Miyerkoles",
+ "wednesday": "Miyerkules",
"thursday": "Huebes",
"friday": "Biyernes",
"saturday": "Sabado",
"subcategories": "Mga Subkategorya",
"category-media-header": "Medya sa ika-\"$1\" nga categorya",
"category-empty": "\"Ang ini nga categorya wala sang panid ukon medya karon.\"",
- "hidden-categories": "{{PLURAL:$1|Tago nga kategorya|Tago nga mga kategorya}}",
+ "hidden-categories": "{{PLURAL:$1|Tinago nga kategorya|Tinago nga mga kategorya}}",
"hidden-category-category": "Nakatago nga mga categorya",
- "category-subcat-count": "{{PLURAL:$2|Ini nga kategorya ay may sang amo lang ni nga unod sa mga nagasunod nga subkategorya.|Ini nga kategorya ay may ara nagasunod {{PLURAL:$1|subkategorya|$1 mga subkategorya}}, sa $2 kabilugan.}}",
+ "category-subcat-count": "{{PLURAL:$2|Ang ini nga kategorya may ara sing mga subkategorya nga nagakasunod.|Ang ini nga kategorya may ara sing {{PLURAL:$1|ka subkategorya}}, sa kabilugan nga $2.}}",
"category-subcat-count-limited": "Ang ini nga categorya may yara sang masunod nga mga {{PLURAL:$1|subcategorya|$1 mga subcategorya}}.",
- "category-article-count": "{{PLURAL:$2|Ini nga kategorya ay may sang amo lang ni nga unod sa mga nagasunod nga pahina.|Ang mga nagasunod {{PLURAL:$1|pahina ay|$1 mga pahina ay}} sa sini nga kategroya, sa $2 kabilugan.}}",
+ "category-article-count": "{{PLURAL:$2|Ang ini nga kategorya nagakaunod lamang sing nagakasunod nga panid.|Ang mga nagakasunod nga {{PLURAL:$1|ka panid}} yara sa sini nga kategroya, sa kabilugan nga $2.}}",
"category-article-count-limited": "Ang masunod nga {{PLURAL:$1|panid|$1 mga panid}} yara sa categorya karon.",
"category-file-count": "{{PLURAL:$2|Ang ini nga categorya may yara lamang sang masunod nga hilera.|Ang masunod nga {{PLURAL:$1|hilera|$1 mga hilera}} yari sa sini nga categorya, halin sa kabug-osan nga $2.}}",
"category-file-count-limited": "Ang masunod nga {{PLURAL:$1|hilera|$1 mga hilera}} ara sa categorya karon.",
- "listingcontinuesabbrev": "cont.",
+ "listingcontinuesabbrev": "pdyn",
"index-category": "Naka-index nga mga panid",
"noindex-category": "Wala naka-index nga mga panid",
"broken-file-category": "Mga panid nga may guba nga link sang hilera",
"mypage": "Akon Panid",
"mytalk": "Paghisayranay",
"anontalk": "Paghisayranay sang sining IP address",
- "navigation": "Nabigasyon",
+ "navigation": "Paglayag",
"and": " kag",
"qbfind": "Pangita",
"qbbrowse": "Magbasa-basa",
"faq": "Mga masami pamangkoton",
"faqpage": "Project:MMP",
"actions": "Mga hulag",
- "namespaces": "Hulut-ngalan",
+ "namespaces": "Mga Luang-ngalan",
"variants": "Mga Sahi",
- "navigation-heading": "Pililian pangnabigasyon",
+ "navigation-heading": "Pililian panglayag",
"errorpagetitle": "Sala/Eror",
"returnto": "Balik sa $1.",
"tagline": "Halin sa {{SITENAME}}",
"searchbutton": "Pangita-a",
"go": "Lakat",
"searcharticle": "Kadto",
- "history": "Pahina historya",
- "history_short": "Saysay",
+ "history": "Maragtas sang panid",
+ "history_short": "Maragtas",
"updatedmarker": "ginbag-o halin sang akon pinaka-ulihe nga pagbisita",
"printableversion": "Balalhagon nga bersiyon",
- "permalink": "Permanente nga tabid",
+ "permalink": "Dayon nga tabid",
"print": "I-imprinta",
"view": "Lantawon",
"view-foreign": "Lantawon sa $1",
- "edit": "Ilisan",
+ "edit": "Liwaton",
"create": "Himuon",
"editthispage": "Islan ini nga pahina",
"create-this-page": "Himuon ang ini nga panid",
"categorypage": "Lantawon ang panid sang categorya",
"viewtalkpage": "Lantawon ang gina-istroyahan",
"otherlanguages": "Sa iban nga pamulong",
- "redirectedfrom": "(Gindirek liwat halin $1)",
+ "redirectedfrom": "(Nagpadulong halin sa $1)",
"redirectpagesub": "I-direktahon ang pahina",
- "lastmodifiedat": "Ang ini nga pahina na-islan lang sang nagligad nga $1, sa $2.",
+ "lastmodifiedat": "Ang ini nga panid nailisan sang nagligad nga $1, takna $2.",
"viewcount": "Ang ini nga panid ginsudlan sang {{PLURAL:$1|maka-isa|ika-$1 nga beses}}.",
"protectedpage": "Ginapangapinan nga panid",
"jumpto": "Lumpat sa:",
- "jumptonavigation": "nabigasyon",
+ "jumptonavigation": "paglayag",
"jumptosearch": "pangitaa",
"view-pool-error": "Nagapangayo kami sang pasaylo kay ang mga server tuman ka loaded sa sini nga tion.\nTuman ka damo nga manuggamit ang luyag makakita sang sini nga panid.\nPalihog maghulat sang malip-ot nga tini-on bag-o magsulod sa sini nga pahina liwat.\n\n$1",
"pool-timeout": "Pag-untat nagahulat para sa kandado",
"aboutpage": "Project:Nahanungod",
"copyright": "Ang unod nga abeylabol nga naga paidalum $1.",
"copyrightpage": "{{ns:project}}:Kapirayts",
- "currentevents": "Mga Hitabo Subong",
- "currentevents-url": "Project:Nagakatabo sa karon nga tinion",
+ "currentevents": "Mga hitabo subong",
+ "currentevents-url": "Project:Mga hitabo subong",
"disclaimers": "Mga Pagpahangup",
"disclaimerpage": "Project:Kabilugan nga pagpahangup",
- "edithelp": "Bulig sa pag Ilis",
+ "edithelp": "Bulig sa pagliwat",
"mainpage": "Puno nga Panid",
- "mainpage-description": "Mayor nga Panid",
+ "mainpage-description": "Puno nga panid",
"policy-url": "Project:Patakaran",
- "portal": "Portal sang Banwa",
- "portal-url": "Project:Lulutsan sang banwa",
+ "portal": "Ganghaan sang banwa",
+ "portal-url": "Project:Ganghaan sang banwa",
"privacy": "Pagsulundan sa pangkinaugalingon",
"privacypage": "Project:Pagsulundan sa pangkinaugalingon",
"badaccess": "Permiso sala/eror",
"newmessageslinkplural": "{{PLURAL:$1|isa ka bag-o nga mensahe|bag-o nga mga mensahe}}",
"newmessagesdifflinkplural": "pinaka-ulihi nga {{PLURAL:$1|pagbag-o|mga pagbag-o}}",
"youhavenewmessagesmulti": "May mga bag-ong mensahe ka sa $1",
- "editsection": "ilisan",
- "editold": "ilisan",
+ "editsection": "liwaton",
+ "editold": "liwaton",
"viewsourceold": "lantawon ang ginhalinan",
- "editlink": "islan",
- "viewsourcelink": "tan-awon ang ginhalinan",
- "editsectionhint": "Ilisan ining bahin: $1",
+ "editlink": "liwaton",
+ "viewsourcelink": "lantawon ang ginhalinan",
+ "editsectionhint": "Liwaton ining bahin: $1",
"toc": "Kaundan",
"showtoc": "ipakita",
"hidetoc": "pagatagu-on",
"red-link-title": "$1 (wala pa nahimo ining panid)",
"sort-descending": "Himuson nga nagapanaog",
"sort-ascending": "Himuson nga nagapasaka",
- "nstab-main": "Pahina",
+ "nstab-main": "Panid",
"nstab-user": "Panid sang Manog-gamit",
"nstab-media": "Panid sang medya",
- "nstab-special": "Espesyal nga pahina",
+ "nstab-special": "Pinasahi nga mga panid",
"nstab-project": "Pahina sang proyekto",
- "nstab-image": "File",
+ "nstab-image": "Tangkas",
"nstab-mediawiki": "Mensahe",
"nstab-template": "Templeyt",
"nstab-help": "Panid sang pagbulig",
"cannotdelete": "Ang panid ukon hilera nga \"$1\" indi mahimo nga pagapanason.\nMahimo nga napanas na ini sang iban.",
"cannotdelete-title": "Indi mahimo nga dulaon ang panid nga \"$1\"",
"delete-hook-aborted": "Ang pag-ilis gin-untat sang taga.\nWala ini naghatag sang ano man nga eksplenasyon.",
- "badtitle": "Malain nga titulo",
+ "badtitle": "Malain nga panig-ulo",
"badtitletext": "Ang ginapangayo mo nga titulo ka pahina ay sala, blangko, ukon indi ensakto ang pagtabid sang inter-lengwahe o inter-wiki na titulo.\nSiguro may-ara ini sang isa ukon madamo nga karakter nga indi ginabaton kag ginagamit sa titulo.",
"perfcached": "Ang masunod nga datos nakatago lamang kag mahimo nga indi bag-o. May maksimum nga {{PLURAL:$1|isa ka resulta nga|$1 mga resulta nga}} ara sa nakatago nga datos.",
"perfcachedts": "Ang masunod nga datos nakatago lamang, kag pinaka-ulihe nga ginbag-o sang $1. May maksimum nga {{PLURAL:$4|isa ka resulta nga|$4 mga resulta nga}} ara sa nakatago nga datos.",
"bold_tip": "Dukot nga teksto",
"italic_sample": "Gahilay nga teksto",
"italic_tip": "Gahilay nga teksto",
- "link_sample": "Titulo na Tabid",
+ "link_sample": "Panig-ulo sang tabid",
"link_tip": "Sulodlon nga tabid",
- "extlink_sample": "http://www.example.com titulo tabid",
+ "extlink_sample": "http://www.example.com panig-ulo sang tabid",
"extlink_tip": "Sa guha nga Tabid (tandaan http:// prefiks)",
"headline_sample": "Teksto sang pangunang-dinalang",
"headline_tip": "Lebel 2 pangunang-dinalan",
"hr_tip": "Gapahigda nga linya (gamiton laka lang)",
"summary": "Kabilogan:",
"subject": "Ginatukoy/Pangulong-dinalang:",
- "minoredit": "Ini menor nga pag-ilis",
+ "minoredit": "Diutay lang ini nga pagliwat",
"watchthis": "Bantayan ining panid",
- "savearticle": "Tiponon ining panid",
+ "savearticle": "Pitaka ining panid",
"preview": "Ipakita subong",
"showpreview": "Ipakita nga daan",
- "showdiff": "Ipakita ang inislan",
+ "showdiff": "Ipakita ang gin-ilisan",
"blankarticle": "<strong>Pahibalo:</strong> Ang panid nga imo ginahimo wala sing unod. Kon imo tum-ukon liwat ang \"{{int:savearticle}}\", ang panid pagahimuon nga wala sing unod.",
"anoneditwarning": "<strong>Pahibalo:</strong> Wala ka nakasulod. Kitaon sa publiko ang imo nga IP address kon ikaw maghimo sang pagbaylo. Kon ikaw <strong>[$ magsulod]</strong> ukon <strong>[$ maghimo sing account]</strong>, ang imo mga ginhimo nga pagbaylo ipahanungod sa imo nga username, kaupod sang iban pa nga kapuslanan.",
"anonpreviewwarning": "''Wala ka pa nakasulod. Igasulat ang imo IP adres sa historya sini nga inislan na pahina.''",
"nosuchsectiontitle": "Indi makit-an ang seksyon",
"nosuchsectiontext": "Gintilawan mo nga mag-ilis sang seksyon nga wala naga-eksister.\nMahimo nga ini ginsaylo na ukon ginpanas samtang nagalantaw ka sang panid.",
"loginreqtitle": "Kinahanglan magsulod",
- "loginreqlink": "mag sulod",
+ "loginreqlink": "magsulod",
"loginreqpagetext": "Kinahanglan mo nga mag-$1 agod nga makita ang iban nga mga panid.",
"accmailtitle": "Napadala na ang pasword.",
"accmailtext": "May pasword nga wala ginpilian nga ginhimo para kay [[User talk:$1|$1]] nga ginpadala sa $2.\n\nAng pasword para sa sini nga bag-o nga akawnt mahimo ma-ilisan sa ''[[Special:ChangePassword|ilisan ang pasword]]'' nga panid pagkatapos magsulod.",
"newarticle": "(Bag-o)",
- "newarticletext": "Nagbukas ka sang isa ka tabid pakadto sa isa ka pahina nga wala pa nahimo.\nPara maghimo sang sina na pahina, sugod ka lang sa pagtayp sa sulod sang kahon nga makit an mo sa idalum (tan-awa ang [$1 bulig nga pahina] para sa dugang nga impormasyon).\nPero kung nakasulod nga aksidente lamang, palihog lang i-klik sa imo internet nga may ngalan ukon simbolo nga '''back''' button.",
+ "newarticletext": "Nagbukas ka sang isa ka tabid padulong sa isa ka panid nga wala pa nahimo.\nAgud mahimo ang panid, magsugod ka lang sa pagsulat sa sulod sang kahon nga makit-an mo sa idalum (tan-awa ang [$1 bulig nga pahina] para sa dugang nga ihibalo).\nUgaling kon ikaw nagtalang lamang diri, palihog lang tum-uka ang pityong nga <strong>balik</strong> sa imo nga palalayagan.",
"anontalkpagetext": "----''Ini ang panid para sa pagtalakay sa wala makilala-an nga manuggamit nga wala pa nakatuga sang akawnt, ukon wala nagagamit sang isa.\nAmo nga kinahanglan naton mag-gamit sang IP adres nga de numero agod nga mahibaluan naton siya.\nAng amo sini nga adres sang IP mahimo nga pagasaluhan sang madamo nga manuggamit.\nKon ikaw manuggamit nga wala makilal-i kag nabatyagan mo nga may mga komento nga wala man sing labot nga ginapakadto sa imo, palihog [[Special:UserLogin/signup|maghimo ka sang akawnt]] ukon [[Special:UserLogin|magsulod]] para malikawan ang iban pa nga pagsala sa iban pa nga wala makilal-an nga manuggamit.''",
- "noarticletext": "Wala subong sang teksto ang ini nga pahina.\nPwede ka [[Special:Search/{{PAGENAME}}|mangita para sa titulo sang ini nga pahina]] sa iban man nga pahina,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mangita ka sang kaparehas nga logs],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} islan ini nga pahina]</span>.",
- "noarticletext-nopermission": "Wala subong sang teksto ang sini nga panid.\nPwede ka [[Special:Search/{{PAGENAME}}|mangita para sa titulo sang ini nga panid]] sa iban man nga panid,\nukon <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mangita ka sang kaparehas nga logs]</span>.",
+ "noarticletext": "Wala unod ining panid.\nSarang ka [[Special:Search/{{PAGENAME}}|magpangita sining panig-ulo]] sa iban nga mga panid,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pangitaa sa nagakaangot nga pagkitan],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} ilisan ining panid]</span>.",
+ "noarticletext-nopermission": "Wala unod ining panid.\nSarang ka mag-[[Special:Search/{{PAGENAME}}|pangitaa ang ini nga panig-ulo]] sa iban nga mga panid,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pangitaa sa nagakaangot nga pagkitan],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} ilisan ining panid]</span>, ugaling wala ka ginapahanugutan nga maghimo sining panid.",
"missing-revision": "Ang ini nga pag-ilis nga #$1 sang panid nga ginhinanglan nga \"{{FULLPAGENAME}}\" wala naga-eksister.\n\nIni kalabanan ginabuhat sang nagasunod nga wala na mabag-o nga link sang hisayranay sa isa ka panid nga gindula na.\nAng mga detalye mahimo nga makita sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
"userpage-userdoesnotexist": "Ang akawnt sang manuggamit nga \"<nowiki>$1</nowiki>\" wala pa marehistro.\nPalihog tsek kon luyag mo nga himuon/ilisan ang ini nga panid.",
"userpage-userdoesnotexist-view": "Ang akawnt sang manuggamit nga \"$1\" wala pa marehistro.",
"session_fail_preview_html": "'''Nagapangayo kami sang pasaylo! Indi namon ma-proseso ang imo pag-ilis tungod sang pagkadula sang datos sang sesyon.'''\n\n''Kay ang {{SITENAME}} may ara sang hilaw nga HTML nga ginapasugtan, ang pagtan-aw gintago bilang pagpanghanda batok sa mga pag-atake sang JavaScript.''\n\n'''Kon ini lehitimo nga paghimakas, palihog tilawi liwat.'''\nKon indi man sa gihapon mag-gana, tilawi [[Special:UserLogout|mag-guha]] kag magsulod liwat dayon.",
"token_suffix_mismatch": "'''Ang imo pag-ilis wala ginbaton tungod nga ang imo kleyente nag-guba sang mga letra sa token sang pag-ilis.'''\nAng pag-ilis wala ginbaton agod to nga malikawan ang kalainan sang mga teksto sa panid.\nIni nagakatabo kon kaisa kon nagagamit ka sang nakabase sa web nga serbisyo proxy nga madamo sing lusot.",
"edit_form_incomplete": "'''Ang iban nga bahin sang formas sa pag-ilis wala nakalab-ot sa serber; palihog verificar kon ang imo pag-ilis santo man sa gihapon kag tilawi liwat.'''",
- "editing": "Gina-islan $1",
+ "editing": "Ginaliwat ang $1",
"creating": "Ginabuhat ang $1",
- "editingsection": "Gina-Islan $1 (seksiyon)",
+ "editingsection": "Ginaliwat ang $1 (bahin)",
"editingcomment": "Gina-islan ang $1 (bag-o nga bahin)",
"editconflict": "May pagpamatok sa pag-ilis: $1",
"explainconflict": "May yara sang iban nga nag-ilis sang sini nga panid umpisa nga imo ini gin-ilisan.\nAng lugar sang ibabaw nga teksto may yara sang teksto sang panid kon ano ini karon naga-eksister.\nAng imo mga pagbag-o ginapakita sa may lugar sang idalom nga teksto.\nMahimo nga kinahanglan mo pa nga tabidon ang imo mga pagbag-o sa mga naga-eksiter nga nga teksto.\nAng mga teksto '''lamang''' nga yara sa lugar sang ibabaw nga teksto ang matipon kon imo pagatum-ukon ang \"{{int:savearticle}}\".",
"nohistory": "Wala sang kasaysayan sang pag-ilis sang sini nga panid.",
"currentrev": "Mga Inislan Subong",
"currentrev-asof": "Bag-o nga rebisyon sang $1",
- "revisionasof": "Ang Pagliwat sang $1",
+ "revisionasof": "Ginliwat sang $1",
"revision-info": "Ang pag-ilis ni $1 halin sang $2",
- "previousrevision": "← Daan nga rebisyon",
+ "previousrevision": "← Daan nga pagliwat",
"nextrevision": "Mas bag-o nga rebisyon →",
"currentrevisionlink": "Mga Inislan Subong",
- "cur": "karon",
+ "cur": "sub",
"next": "dason",
"last": "ulihi",
"page_first": "pinaka-una",
"rev-suppressed-unhide-diff": "Ang isa sang mga pagbag-o sang sini nga diff '''ginpahugotan'''.\nMakita ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log sang pagpahugot].\nMakita mo man ini sa gihapon [$1 lantawon ang ini nga diff] kon luyag mo pa magpadayon.",
"rev-deleted-diff-view": "Ang isa sa mga pagbag-o sa sini nga diff '''ginpanas'''.\nMakita mo ini nga diff; makita ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log sang pagpanas].",
"rev-suppressed-diff-view": "Ang isa sa mga pagbag-o sa sini nga diff '''ginpahugotan'''.\nMakita mo ini nga diff; makita ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log sang pagpahugot].",
- "rev-delundel": "pakita/tagu-on",
+ "rev-delundel": "ilisan ang makita",
"rev-showdeleted": "ipakita",
"revisiondelete": "Panason/indi pagpanason ang mga pagbag-o",
"revdelete-nooldid-title": "Sala nga natuyo bag-ohon",
"difference-title": "Kinalain sang mga pagbag-o sa \"$1\"",
"difference-title-multipage": "Kinalain sang mga panid nga \"$1\" kag \"$2\"",
"difference-multipage": "(Kinala-in sang mga panid)",
- "lineno": "Linya $1:",
+ "lineno": "Iras nga ika-$1:",
"compareselectedversions": "I-kompara ang pinilian nga mga rebisyon",
"showhideselectedversions": "Ipakita/taguon ang mga ginpili nga pagbag-o",
- "editundo": "bawi-on ang pag ilis",
+ "editundo": "bawion ang ginbuhat",
"diff-multi-manyusers": "({{PLURAL:$1|Isa ka tunga-tunga nga pagbag-o|$1 ka tunga-tunga nga mga pagbag-o}} sang masobra $2 ka {{PLURAL:$2|manuggamit|mga manuggamit}} nga wala ginpakita)",
"difference-missing-revision": "May {{PLURAL:$2|isa ka pagbag-o|$2 ka mga pagbag-o}} san sini nga kinalain ($1) ang wala makita.\n\nIni kalabanan ginabuhat sang nagasunod nga wala na mabag-o nga link sang isa ka panid nga gindula na.\nAng mga detalye mahimo nga makita sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
- "searchresults": "Resulta sang Pagpangita",
- "searchresults-title": "Resulta sang Pagpangita para \"$1\"",
+ "searchresults": "Bunga sang pagpangita",
+ "searchresults-title": "Bunga sang pagpangita sing \"$1\"",
"titlematches": "Mga pareho nga titulo sang panid",
"textmatches": "Mga pareho nga teksto sang panid",
"notextmatches": "Wala sang pahina nga parehas teksto",
- "prevn": "antes {{PLURAL:$1|$1}}",
- "nextn": "dasun {{PLURAL:$1|$1}}",
+ "prevn": "nagligad nga {{PLURAL:$1|$1}}",
+ "nextn": "dason nga {{PLURAL:$1|$1}}",
"prevn-title": "Nagligad nga $1 {{PLURAL:$1|resulta|mga resulta}}",
"nextn-title": "Madason nga $1 {{PLURAL:$1|resulta|mga resulta}}",
- "shown-title": "Magpakita sing $1 ka {{PLURAL:$1|resulta|mga resulta}} kada panid",
- "viewprevnext": "Tan-awon ($1 {{int:pipe-separator}} $2) ($3)",
+ "shown-title": "Magpakita sing $1 ka {{PLURAL:$1|resulta|mga resulta}} sa tagsa ka panid",
+ "viewprevnext": "Lantawon ($1 {{int:pipe-separator}} $2) ($3)",
"searchmenu-exists": "'''May yara sang panid nga ginhingalanan nga \"[[:$1]]\" sa sini nga wiki.'''",
"searchmenu-new": "<strong>Himua ang panid nga \"[[:$1]]\" sa ini nga wiki!</strong> {{PLURAL:$2|0=|Linglinga man ang panid nga nakit-an sa imo nga pagpanglaghap.|Linglinga man ang mga bunga-panglaghap nga nakit-an.}}",
- "searchprofile-articles": "Mga panid sang unod",
+ "searchprofile-articles": "Mga panid sang kaundan",
"searchprofile-images": "Multimedia",
"searchprofile-everything": "Tanan-tanan",
- "searchprofile-advanced": "Mas mauna",
+ "searchprofile-advanced": "Masanyog",
"searchprofile-articles-tooltip": "Pangitaa sa $1",
- "searchprofile-images-tooltip": "Mangita sang mga hilera",
- "searchprofile-everything-tooltip": "Pangitaon ang tanan nga kaundan (dala na ang mga panid sang pag-estorya)",
- "searchprofile-advanced-tooltip": "Pangitaon sa pahungod nga espasyo sang pangalan",
- "search-result-size": "$1 ({{PLURAL:$2|1 pulong|$2 pulong}})",
+ "searchprofile-images-tooltip": "Magpangita sang mga tangkas",
+ "searchprofile-everything-tooltip": "Pangitaon ang tanan nga kaundan (dala na ang mga panid sang paghisayranay)",
+ "searchprofile-advanced-tooltip": "Pangitaon sa napili nga luang-ngalan",
+ "search-result-size": "$1 ({{PLURAL:$2|1 ka pulong|$2 ka pulong}})",
"search-result-category-size": "{{PLURAL:$1|1 ka miyembro|$1 ka mga miyembro}} ({{PLURAL:$2|1 ka subcategoriya|$2 ka mga subcategoriya}}, {{PLURAL:$3|1 ka hilera|$3 ka mga hilera}})",
- "search-redirect": "(gindirekta liwat $1)",
+ "search-redirect": "(ginpadulong halin sa $1)",
"search-section": "(seksiyon $1)",
"search-suggest": "Ang buot mo silingon: $1",
"search-interwiki-caption": "Mga Utod proyekto",
"right-bot": "Mahimo nga isa ka proseso nga awtomatiko",
"right-nominornewtalk": "Wala nga dyutay nga pagbag-o sa mga panid sang diskusyon para makasugod sang isa ka abiso nagasiling nga may bag-ong mensahe.",
"right-apihighlimits": "Mag-usar sang mas mataas nga limitasyon para sa mga pamangkot sa API.",
- "right-writeapi": "Pag-usar sang ginsulat nga API",
+ "right-writeapi": "Paggamit sang API sang pagsulat",
"right-delete": "Panason ang panid",
"right-bigdelete": "Panason ang mga panid nga may daku nga maragtas",
"right-deletelogentry": "Panason kag indi panason ang mga partikular nga mga log entries",
"right-sendemail": "Magpadala sang email sa iban nga naga-usar",
"right-passwordreset": "Tan-awa ang mga email sang password reset",
"right-managechangetags": "Maghimo kag magdula sing [[Special:Tags|mga tag]] halin sa database.",
- "newuserlogpage": "Naga-usar nga ginhimo log",
+ "newuserlogpage": "Pagkitan sang paghimo sang taggamit",
"newuserlogpagetext": "Ini ang isa ka log sang mga ginhimo sang naga-usar",
"rightslog": "Karapatan sang naga-usar log",
"rightslogtext": "Ini ang lista sang mga ginbag-o nga mga kinamatarong sang naga-usar.",
"nchanges": "$1 {{PLURAL:$1|bag-ohon|mga ginbag-o}}",
"enhancedrc-history": "maragtas",
"recentchanges": "Mga pinakaulihi nga gin-ilisan",
- "recentchanges-legend": "Mga pililian sa bag-o lang na himo",
- "recentchanges-summary": "La-uton ang pina gid ka bag-o nga nahimo sa may wiki sa ini nga feed",
+ "recentchanges-legend": "Pililian sang pinakaulihi nga gin-ilisan",
+ "recentchanges-summary": "Tumbukon ang pinakaulihi nga pag-ilis sa wiki sa sining panid.",
"recentchanges-feed-description": "La-uton ang pina gid ka bag-o nga nahimo sa may wiki sa ini nga feed.",
- "recentchanges-label-newpage": "Ang sini nga pagbag-o nakahimo sang bag-o nga panid",
- "recentchanges-label-minor": "Diotay ilis ini",
- "recentchanges-label-bot": "Ang sini nga pagbag-o ginubra sang isa ka bot",
- "recentchanges-label-unpatrolled": "Ang sini nga pagbag-o indi pa ginbantayan",
+ "recentchanges-label-newpage": "Ang ini nga pagliwat naghimo sang bag-o nga panid",
+ "recentchanges-label-minor": "Diutay lang ini nga pagliwat",
+ "recentchanges-label-bot": "Ang ini nga pagliwat ginbuhat sang isa ka bot",
+ "recentchanges-label-unpatrolled": "Ang ini nga pagliwat wala pa ginabantayan",
"rcnotefrom": "Yara sa idalum ang mga guinbag-o halin '''$2''' (tubtub '''$1''' ang ginpagwa).",
"rclistfrom": "Ipakita ang bag-o lang nahimo halin sa $3 $2",
- "rcshowhideminor": "$1 menor nga mga inislan",
+ "rcshowhideminor": "$1 ang mga diutay nga pagliwat",
"rcshowhideminor-hide": "Itaguon",
- "rcshowhidebots": "$1 bots",
+ "rcshowhidebots": "$1 mga bot",
"rcshowhidebots-show": "Ipakita",
"rcshowhideliu": "$1 mga ga-usar nga naka sulod",
"rcshowhideliu-hide": "Itaguon",
- "rcshowhideanons": "$1 di nagpakilala nga mga ga-usar",
+ "rcshowhideanons": "$1 ang tago nga mga taggamit",
"rcshowhideanons-hide": "Itaguon",
"rcshowhidepatr": "$1 ginabantyan nga pagbag-o",
- "rcshowhidemine": "$1 akon mga inislan",
+ "rcshowhidemine": "$1 ang akon mga pagliwat",
"rcshowhidemine-hide": "Itaguon",
- "rclinks": "Ipakita ang nagligad $1 nga nabag-o lang sang $2 adlaw<br />$3",
- "diff": "diff",
- "hist": "hist",
+ "rclinks": "Ipakita ang ulihi nga $1 ka mga gin-ilisan sa sulod sang $2 ka adlaw<br />$3",
+ "diff": "knln",
+ "hist": "ngkltb",
"hide": "Tago",
"show": "Pakita",
"minoreditletter": "m",
"number_of_watching_users_pageview": "[$1 ginabantayan {{PLURAL:$1|naga-usar|mga naga-usar}}]",
"rc_categories": "Limitahan ang mga kategorya (ibulag lakip sang \"|\")",
"rc_categories_any": "Bisan ano",
- "rc-change-size-new": "$1 {{PLURAL:$1|byte|mga byte}} pagkatapos sang pagbag-o",
+ "rc-change-size-new": "$1 {{PLURAL:$1|byte|mga byte}} pagkatapos sang pag-ilis",
"newsectionsummary": "/* $1 */ bag-o nga seksyon",
"rc-enhanced-expand": "Ipakita ang mga detalye",
"rc-enhanced-hide": "Tagu-on ang mga detalye",
"rc-old-title": "orihinal nga ginhimo bilang \"$1\"",
- "recentchangeslinked": "May labot nga pag-ilis",
+ "recentchangeslinked": "Nagakaangot nga pag-ilis",
"recentchangeslinked-feed": "May labot nga pag-ilis",
- "recentchangeslinked-toolbox": "May labot nga pag-ilis",
- "recentchangeslinked-title": "Mga ginlain nga kapareho kay \"$1\"",
- "recentchangeslinked-summary": "Ini ang mga lista sang mga bag-o lang gid nga nahimo nga mga pahina nga gintabid halin sa gin klaro nga pahina (o mga katapo sa mga kategorya nga gin klaro).\nMga Pahina sa [[Special:Watchlist|imo lista-lantaw]] ay '''dukot'''.",
+ "recentchangeslinked-toolbox": "Nagakaangot nga pagbaylo",
+ "recentchangeslinked-title": "Mga pag-ilis angot sa \"$1\"",
+ "recentchangeslinked-summary": "Ini ang listahan sang mga pagpang-ilis sa mga panid nga nagatabid sa natuhoy nga panid (ukon sa mga katapu sang natuhoy nga kategorya). Makita nga <strong>dukot</strong> ang mga panid sa [[Special:Watchlist|imo balantayan]]",
"recentchangeslinked-page": "Ngalan ka Pahina:",
"recentchangeslinked-to": "Ipakita ang mga naglain na pahina nga gin tabid sa nahatagan nga pahina",
- "upload": "Uplod file",
+ "upload": "Ilulan ang tangkas",
"uploadbtn": "Karga file",
"reuploaddesc": "Kanselahon ang pag-karga kag magbalik sa porma sang pag-karga.",
"upload-tryagain": "Ipasa ang ginlarawan nga ginbag-o nga file",
"upload-file-error-text": "May nahitabo nga kasayupan sa sulod sing nagtinguha nga maghimo sang temporaryo nga file sa server.",
"license": "Pagpanglisensya",
"license-header": "Pagpanglisensya",
- "file-anchor-link": "File",
- "filehist": "Historya file",
- "filehist-help": "I-klik sa may petsa/oras para makita ang file sa ina nga oras.",
+ "file-anchor-link": "Tangkas",
+ "filehist": "Maragtas sang tangkas",
+ "filehist-help": "Tum-uka ang petsa/takna agud makita ang tangkas sang sadto nga tinion.",
"filehist-revert": "Ibalik",
"filehist-current": "subong",
- "filehist-datetime": "Petsa/Oras",
+ "filehist-datetime": "Petsa/Takna",
"filehist-thumb": "Thumbnail",
- "filehist-thumbtext": "Thumbnail para sa bersiyon sang $1",
+ "filehist-thumbtext": "Thumbnail sang bersiyon sadtong $1",
"filehist-user": "Taggamit",
"filehist-dimensions": "Tinaksan",
- "filehist-comment": "Komentar",
- "imagelinks": "Pagusar sang file",
- "linkstoimage": "Ang nagakasunod {{PLURAL:$1|pahina nga mga tabid|$1 mga pahina mga tabid}} sa sini nga file:",
+ "filehist-comment": "Magpanghinun-anon",
+ "imagelinks": "Paggamit sang tangkas",
+ "linkstoimage": "Ang nagakasunod nga {{PLURAL:$1|ka panid nagatabid}} sa sini nga tangkas:",
"nolinkstoimage": "Waay sing panid nga nakasugpon sa sini nga file.",
"sharedupload": "Ini nga file gikan sa $1 kag pwede ma usar sang iban nga mga proyekto.",
- "sharedupload-desc-here": "Ang sini nga file amo halin sa $1 kag pwede ini mausar sa lain nga mga proyekto. Ang ginalarawan sang iya nga [$2 panid sang paglarawan sang file] amo ang ginpagwa sa idalum.",
+ "sharedupload-desc-here": "Ang ini nga tangkas naghalin sa $1 kag basi ginagamit man sang iban nga mga proyekto. Ang paglarawan sa iya nga [$2 panid sang paglarawan sang tangkas] amo ang ginapakita sa idalum.",
"uploadnewversion-linktext": "Uplod sang bag-o nga bersiyon sang sini nga file",
"filedelete-submit": "Panason",
"randompage": "Bisan ano nga panid",
"statistics": "Mga Statistik",
"brokenredirects-edit": "ilisan",
"brokenredirects-delete": "panason",
- "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
+ "nbytes": "$1 {{PLURAL:$1|ka byte}}",
"nmembers": "$1 {{PLURAL:$1|membro|mga membro}}",
"prefixindex": "Tanan nga mga pahina nga may-ara prefiks",
"usercreated": "{{GENDER:$3|Ginhimo}} sa $1 kag $2",
"allpagesfrom": "Ipakita ang mga pahina sugod sa:",
"allpagesto": "Ipakita ang mga pahina nga nagakatapos sa:",
"allarticles": "Tanan nga mga pahina",
- "allpagessubmit": "Sige",
+ "allpagessubmit": "Kadto",
"categories": "Mga kategorya",
"linksearch": "Eksternal na mga tabid",
"linksearch-ok": "Pangita-a",
"undeletelink": "tan-aw/ginbalik",
"undeleteviewlink": "Tan-awa",
"undelete-search-submit": "Pangita-a",
- "namespace": "Ngalan-espasyo:",
- "invert": "Suli-on ang seleksiyon",
+ "namespace": "Luang-ngalan:",
+ "invert": "Sulion ang ginpili",
"blanknamespace": "(Puno)",
"contributions": "Mga kontribusyon sang {{GENDER:$1|naga-usar}}",
"contributions-title": "Mga Kontribusyon sang Naga-Usar para $1",
"blocklist-reason": "Rason:",
"ipblocklist-submit": "Pangita-a",
"emailblock": "Gintapna ang e-mail",
- "blocklink": "harang",
+ "blocklink": "lambaton",
"unblocklink": "di pagpugong",
"change-blocklink": "pagbag-o sang pugong",
"contribslink": "amot",
"allmessages": "Mga mensahe sang sistema",
"allmessagesname": "Ngalan",
"allmessagesdefault": "Ang gindestino nga teksto",
- "thumbnail-more": "Padaku-on",
+ "thumbnail-more": "Padakuon",
"thumbnail_error": "May ara sala sa paghimo sang thumbnail: $1",
"import-options-wrong": "Sala {{PLURAL:$2|pili|mga pagpilian}}: <nowiki>$1</nowiki>",
"import-rootpage-invalid": "Ang ginhatag nga gingikanan nga panid indi mabaton ang iya nga titulo.",
"tooltip-pt-mytalk": "Ang imo pahina sang paghisayranay",
"tooltip-pt-anontalk": "Istorya kapin sa mga pagbag-o nga ginhimo sa ip address nga ini",
"tooltip-pt-preferences": "Akon pagpalabi",
- "tooltip-pt-watchlist": "Ang lista sang mga pahina nga imo ginabantayan para bag-ohon",
+ "tooltip-pt-watchlist": "Listahan sang mga panid nga ginabantayan angot sa mga pag-ilis",
"tooltip-pt-mycontris": "Lista sang imo kontribusyon",
- "tooltip-pt-login": "Ginaabi-abi ikaw nga magsulod; apang, indi ini kinahanglanon",
+ "tooltip-pt-login": "Ginaagda ikaw nga magsulod; apang, indi ini kinahanglanon gid",
"tooltip-pt-logout": "Mag guha",
"tooltip-pt-createaccount": "Ginaagda ka nga maghimo sing akawnt kag magsulod; ugaling, indi ini kinahanglanon gid",
"tooltip-ca-talk": "Paghisayranay nahanungod sini nga panid",
- "tooltip-ca-edit": "Puede nimo islan ang unod sang sini nga panid. Palihog gamit sang preview button antes permanentehon ang gin ilisan.",
- "tooltip-ca-addsection": "Magsugod sang bag-o nga seksiyon",
- "tooltip-ca-viewsource": "Naprotektahan ang ini nga pahina.\nPwede mo matan-aw ang iya ginhalinan",
- "tooltip-ca-history": "Nagligad nga rebisyon sa sini nga pahina",
+ "tooltip-ca-edit": "Sarang mo maliwat ining panid. Palihog gamita ang pityong-tika bag-o pitakon",
+ "tooltip-ca-addsection": "Magsugod sang bag-o nga bahin",
+ "tooltip-ca-viewsource": "Naprotektahan ang ini nga panid.\nSarang mo malantaw ang iya nga ginhalinan",
+ "tooltip-ca-history": "Nagligad nga pag-ilis sining panid",
"tooltip-ca-protect": "Protektahan ini nga pahina",
"tooltip-ca-unprotect": "Ilisan ang pagpangapin sa sini nga panid",
"tooltip-ca-delete": "Panason ini nga pahina",
"tooltip-ca-undelete": "Ibalik ang mga paglain nga ginhimo sa panid nga ini antes nga ini ginpanas.",
"tooltip-ca-move": "Saylohon ining panid",
- "tooltip-ca-watch": "I-dugang ini nga pahina sa imo listahan sang palangitaon",
+ "tooltip-ca-watch": "Idugang ining panid sa imo nga balantayan",
"tooltip-ca-unwatch": "Kuhaon ini nga pahina sa imo lista sang ginabantayan",
"tooltip-search": "Pangitaa sa {{SITENAME}}",
"tooltip-search-go": "Kadto sa panid nga nagahingadlan sini kon nabuhat na",
- "tooltip-search-fulltext": "Pangitaon ang mga panid nga nagaunod sini",
+ "tooltip-search-fulltext": "Pangitaon ang mga panid nga nagaunod sining sulat",
"tooltip-p-logo": "Duawa ang puno nga panid",
- "tooltip-n-mainpage": "Magdu-aw sa Mayor nga Panid",
- "tooltip-n-mainpage-description": "Bisitahon ang Mayor nga Panid",
- "tooltip-n-portal": "Nahanungod sa proyekto, kon ano ang imo mahimo, diin makapangita",
- "tooltip-n-currentevents": "Pangita-on sa likod sang impormasyon sa bag-o lang nga nagkalatabo",
+ "tooltip-n-mainpage": "Duawa ang puno nga panid",
+ "tooltip-n-mainpage-description": "Duawa ang puno nga panid",
+ "tooltip-n-portal": "Nahanungod sa proyekto, kon ano ang imo mahimo, kon diin makapangita",
+ "tooltip-n-currentevents": "Magpangita sing hinun-anon angot sa mga hitabo subong",
"tooltip-n-recentchanges": "Listahan sang mga pinakaulihi nga pag-ilis sa wiki",
- "tooltip-n-randompage": "Mag-load sing bisan ano nga panid",
- "tooltip-n-help": "Ang lugar agud makatukib",
- "tooltip-t-whatlinkshere": "Listahan sang tanan nga panid sang wiki nga naga tabid diri",
- "tooltip-t-recentchangeslinked": "Bag-o lang gid nahimo nga mga pahina nga gin tabid halin sa sini nga pahina",
+ "tooltip-n-randompage": "Magkarga sing bisan ano nga panid",
+ "tooltip-n-help": "Ang lugar agud makahibalo",
+ "tooltip-t-whatlinkshere": "Listahan sang tanan nga panid sang wiki nga nagatabid diri",
+ "tooltip-t-recentchangeslinked": "Mga pinakaulihi nga pag-ilis sa mga panid nga nagatabid sa ining panid",
"tooltip-feed-rss": "RSS feed para sa ini nga pahina",
- "tooltip-feed-atom": "Atom feed para sa ini nga pahina",
+ "tooltip-feed-atom": "Atom feed sining panid",
"tooltip-t-contributions": "Lantawon ang listahan sang mga nakontribyut sa sini nga naga-usar",
"tooltip-t-emailuser": "Ipadala ang e-mail sa sini nga naga-usar",
- "tooltip-t-upload": "Mag karga mga files",
+ "tooltip-t-upload": "Ilulan ang mga tangkas",
"tooltip-t-specialpages": "Lista sang tanan nga pinasahi nga panid",
"tooltip-t-print": "Balalhagon nga sahi sini nga panid",
- "tooltip-t-permalink": "Permanente nga tabid sa sini nga rebisyon sang pahina",
- "tooltip-ca-nstab-main": "Tan-awon ang unod sang pahina",
+ "tooltip-t-permalink": "Dayon nga tabid sa sining pagbaylo sang panid",
+ "tooltip-ca-nstab-main": "Lantawon ang panid sang kaundan",
"tooltip-ca-nstab-user": "Tan-awon ang pahina sang naga-usar",
"tooltip-ca-nstab-media": "Tan-awon ang panid sang midya.",
- "tooltip-ca-nstab-special": "Espesyal ini nga pahina, indi mo ini ma islan sang iya kaugalingon nga pahina",
+ "tooltip-ca-nstab-special": "Pinasahi ining panid, indi mo sarang maliwat ang panid",
"tooltip-ca-nstab-project": "Tan-awon ang pahina ka proyekto",
- "tooltip-ca-nstab-image": "Tan-awon ang pahina sang file",
+ "tooltip-ca-nstab-image": "Lantawon ang panid sang tangkas",
"tooltip-ca-nstab-mediawiki": "Tan-awon ang mensahe sang sistema",
"tooltip-ca-nstab-template": "Tan-awon ang templeyt",
"tooltip-ca-nstab-help": "Tan-awon ang panid sang bulig",
- "tooltip-ca-nstab-category": "Tan-awon ang pahina nga kategorya",
+ "tooltip-ca-nstab-category": "Lantawon ang panid sang mga kategorya",
"tooltip-minoredit": "Markahan ini bilang menor nga pag-ilis",
- "tooltip-save": "Permanentehon ang imo gin islan",
+ "tooltip-save": "Pamitakon ang imo gin-ilisan",
"tooltip-preview": "Prebyu mo anay ang imo ginbag-o, palihog gamiton mo ini antes mo i-save!",
- "tooltip-diff": "Ipakita ang mga bag-o nga nahimo mo sa teksto",
+ "tooltip-diff": "Ipakita ang mga pag-ilis nga imo ginbuhat sa kaundan",
"tooltip-compareselectedversions": "Lantawa ang ginalian sang duwa ka napilian nga rebisyon sa sini nga pahina",
"tooltip-watch": "Idugang ini nga pahina sa imo lista nga ginabantayan",
"tooltip-watchlistedit-normal-submit": "Pagpanason ang mga titulo",
"tooltip-watchlistedit-raw-submit": "Iupdate ang listahan sang mga ginatan-aw.",
"tooltip-recreate": "Liwat nga himuon ang panid bisan ini napanas na",
"tooltip-upload": "Sugdan ang pagkarga",
- "tooltip-rollback": "\"Panumbalik\" ginabalik ang (mga) na-islan sa sini nga pahina sa pinaka ulihi nga kontributor sa isa lang ka klik",
- "tooltip-undo": "\"Indi pag-obrahon\" ginabalik ang gin-islan kag gabukas sa isaln form sa may prebyu mode.\nGapasugot sa pagdugang sang rason sa kabilugan.",
+ "tooltip-rollback": "Ang \"Panumbalik\" nagabawi sing (mga) pagliwat sa sini nga panid sang pinakaulihi nga tag-amot sa isa lang ka tum-ok",
+ "tooltip-undo": "Ang \"Bawion\" nagabawi sang ginliwat kag ginabuksan ang liliwatan nga nagatulutika. Sarang makadugang sing kabangdanan sa bilidlan.",
"tooltip-preferences-save": "kon pagpalabi",
"tooltip-summary": "Maghatag sing diutay nga eksplikasyon",
"anonymous": "Indi kilala {{PLURAL:$1|tagagamit|mga tagagamit}} sang {{SITENAME}}",
"siteuser": "Tiggamit {{SITENAME}} sang $1",
- "pageinfo-toolboxlink": "Tuhoy s sini nga panid",
- "previousdiff": "← Mas daan nga na-islan",
- "nextdiff": "Mas bag-o nga gin-islan →",
- "file-info-size": "$1 × $2 piksel, kadakuon sang file: $3, MIME type: $4",
+ "pageinfo-toolboxlink": "Pagpahantup sang panid",
+ "previousdiff": "← Labing daan nga pagliwat",
+ "nextdiff": "Labing bag-o nga pagliwat →",
+ "file-info-size": "$1 × $2 piksel, kadakuon sang tangkas: $3, sahi sang MIME: $4",
"file-nohires": "Wala sang yara na taas nga resolusyon.",
"svg-long-desc": "SVG file, nominalya $1 × $2 piksels, kadakuon sang file: $3",
"show-big-image": "Kabilogan nga resolusyon",
"ilsubmit": "Pangita-a",
"bad_image_list": "Ang sulundan nga sulundon:\n\nAmo lang gid nga lista sang mga gamit (mga linya nga gasugod sa *)ang ginapasugtan.\nAng una nga tabid sa isa ka linya ay kilanlan naga tabid sa law-ay nga file.\nAno man nga pasunod nga tabid sa parehas nga linya ay ginasugtan bilang eksepsiyon, i.e. mga pahina nga kun diin ang file naga pasunod.",
"metadata": "Metadata",
- "metadata-help": "Ang ini nga file may ara dugang nga impormasyon, posible nga gindugang halin sa kamera nga digital ukon skaner para mahimo siya ukon na digitayz siya.\nKung ang ini nga file ginliwat halin sa orihinal nga porma, basi indi gina pakita ang naliwat nga file sang iban nga mga detalye.",
+ "metadata-help": "Ang ini nga tangkas may ara dugang nga hinun-anon, damlag nga gindugang halin sa kamera nga digital ukon skaner agud mahimo ukon mangin digital ini.\nKon ang ini nga tangkas ginliwat humalin sa iya orihinal kahimtangan, ti basi ang iban nga detalye wala nagapakita sang bilog nga ginliwat nga tangkas.",
"metadata-expand": "Ipakita ang mga dugang nga detalye",
"metadata-collapse": "Tagu-on ang mga dugang nga detalye",
- "metadata-fields": "Ang mga imahen sang EXIF metadata fields nga nalista sa ini nga mensahe ay pagadal-on sa mga laragway nga gina pakita sa pahina kun ang metadata table ay narumpag.\nAng iban ay pagataguon sang default.\n* himo\n* modelo\n* datetimeoriginal\n* tyempo sang exposure\n* fnumber\n* isospeedratings\n* focallength\n* artista\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+ "metadata-fields": "Ang mga metadata field sang mga dagway nga nalista sa ining mensahe igalakip sa dagay-panid sang dagway kon ang latok sang metadata maghabuyo.\nAng iban pagataguon dayon.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
"exif-software": "Gingamit nga software",
"exif-exifversion": "Bersyon sang Exif",
"exif-lightsource": "Ginghalinan sang sanag",
"לערי ריינהארט",
"아라",
"Macofe",
- "Fraxinus"
+ "Fraxinus",
+ "Srdjan m"
]
},
"tog-underline": "Podcrtane poveznice",
"notextmatches": "Nema pronađenih stranica prema tekstu članka",
"prevn": "prethodnih {{PLURAL:$1|$1}}",
"nextn": "sljedećih {{PLURAL:$1|$1}}",
+ "prev-page": "prethodna stranica",
+ "next-page": "sljedeća stranica",
"prevn-title": "$1 {{PLURAL:$1|prethodni rezultat|prethodna rezultata|prethodnih rezultata}}",
"nextn-title": "$1 {{PLURAL:$1|sljedeći rezultat|sljedeća rezultata|sljedećih rezultata}}",
"shown-title": "Prikaži $1 {{PLURAL:$1|rezultat|rezultata|rezultata}} po stranici",
"upload-permitted": "Dopušteni {{PLURAL:$2|tip|tipovi}} datoteka: $1.",
"upload-preferred": "Poželjni {{PLURAL:$2|tip|tipovi}} datoteka: $1.",
"upload-prohibited": "Zabranjeni {{PLURAL:$2|tip|tipovi}} datoteka: $1.",
- "uploadlogpage": "Evidencija_postavljanja",
+ "uploadlogpage": "Evidencija postavljanja",
"uploadlogpagetext": "Dolje je popis nedavno postavljenih slika.",
"filename": "Ime datoteke",
"filedesc": "Sažetak",
"listfiles-delete": "izbriši",
"listfiles-summary": "Ova stranica pokazuje sve postavljene datoteke.\nKad je filtriran po suradniku, popis prikazuje samo one datoteke čije je posljednje inačice postavio taj suradnik.",
"listfiles_search_for": "Traži ime slike:",
+ "listfiles-userdoesnotexist": "Suradnički račun \"$1\" nije registriran.",
"imgfile": "datoteka",
"listfiles": "Popis slika",
"listfiles_thumb": "Smanjeni pregled",
"powersearch-remember": "Lagipen ti napili para kadagiti masakbayan a panagbiruk",
"search-external": "Akinruar a panagbiruk",
"searchdisabled": "Nabaldado ti panagbiruk iti {{SITENAME}}.\nMabalinmo itan ti agbiruk idiay Google.\nLaglagipem laeng a dagiti pagsurotan a linaon ti {{SITENAME}} ket mabalin a baak.",
- "search-error": "Adda maysa a biddut a napasamak bayat nga agbirbiruk:$1",
+ "search-error": "Adda napasamak a biddut bayat nga agbirbiruk: $1",
"preferences": "Kakaykayatan",
"mypreferences": "Kakaykayatan",
"prefs-edits": "Bilang dagiti inurnos:",
"Toadino2",
"Purodha",
"TecnoMaster",
- "Alexmar983"
+ "Alexmar983",
+ "Federico Mugnaini"
]
},
"tog-underline": "Sottolinea i collegamenti:",
"badsig": "Errore nella firma non standard, verificare i tag HTML.",
"badsiglength": "La firma scelta è troppo lunga, non deve superare $1 {{PLURAL:$1|carattere|caratteri}}.",
"yourgender": "Come riferirsi a te?",
- "gender-unknown": "Indifferente",
+ "gender-unknown": "Nel menzionarti, il software utilizzerà parole di genere neutrale ogni volta che sarà possibile",
"gender-male": "È registrato su {{SITENAME}}",
"gender-female": "È registrata su {{SITENAME}}",
"prefs-help-gender": "L'impostazione di questa preferenza è opzionale.\nIl software utilizza questo valore per rivolgersi a te e menzionarti agli altri usando il genere grammaticale appropriato.\nQuesta informazione sarà pubblica.",
"uploadscripted": "Questo file contiene codice HTML o di script, che potrebbe essere interpretato erroneamente da un browser web.",
"uploaded-script-svg": "Trovato elemento di script \"$1\" nel file caricato in formato SVG.",
"uploaded-hostile-svg": "Trovato CSS non sicuro nell'elemento di stile del file in formato SVG caricato.",
+ "uploaded-event-handler-on-svg": "Impostazione gestione eventi ed attributi <code>$1=\"$2\"</code> non è consentito in file SGV",
+ "uploaded-href-attribute-svg": "Attributi href <code><$1 $2=\"$3\"></code> com un bersaglio non locale (e.g. http://, javascript:, etc) non sono permessi file SGV",
+ "uploaded-href-unsafe-target-svg": "Trovati href ad un bersaglio non sicuro <code><$1 $2=\"$3\"></code> caricato nel file SVG",
"uploaded-image-filter-svg": "Trovato filtro immagine con URL: <code><$1 $2=\"$3\"></code> nel file in formato SVG caricato.",
"uploadscriptednamespace": "Questo file SVG contiene un namespace '$1' non consentito",
"uploadinvalidxml": "Il codice XML nel file caricato non può essere elaborato.",
"markedaspatrolledtext": "არჩეული ვერსია [[:$1]] მონიშნულია როგორც პატრულირებული",
"rcpatroldisabled": "ბოლო ცვლილებების პატრულირება აკრძალულია",
"rcpatroldisabledtext": "ბოლო ცვლილებების პატრულირების შესაძლებლობა ამ მომენტისთვის გათიშულია",
- "markedaspatrollederror": "შეუძლებელია ამ სტატიის მოhttp://translatewiki.net/w/i.php?title=MediaWiki:Markedaspatrollederror/ka&action=edit&loadgroup=core&loadtask=untranslatedნიშნვნა პატრულირებულად.",
+ "markedaspatrollederror": "შეუძლებელია ამ სტატიის მონიშვნა პატრულირებულად.",
"markedaspatrollederrortext": "თქვენ უნდა მონიშნოთ ვერსია, რომელიც პატრულირებულად ჩაითვლება.",
"markedaspatrollederror-noautopatrol": "თქვენ ვერ მონიშნავთ თქვენივე შესწორებებს პატრულირებულად.",
"markedaspatrollednotify": "ეს ცვლილება გვერდზე „$1“ პატრულირებულად მოინიშნა.",
"tog-shownumberswatching": "បង្ហាញចំនួនអ្នកប្រើប្រាស់ដែលតាមដានទំព័រនេះ",
"tog-oldsig": "ហត្ថលេខាមានហើយ៖",
"tog-fancysig": "ចុះហត្ថលេខាជាអត្ថបទវិគី (ដោយគ្មានតំណភ្ជាប់ស្វ័យប្រវត្តិ)",
- "tog-uselivepreview": "ប្រើប្រាស់ការមើលមុនរហ័ស (ស្ថិតក្រោមការពិសោធន៍នៅឡើយ)",
+ "tog-uselivepreview": "ប្រើប្រាស់ការមើលមុនរហ័ស",
"tog-forceeditsummary": "សូមរំលឹកខ្ញុំកាលបើខ្ញុំទុកប្រអប់ចំណារពន្យល់ឱ្យនៅទំនេរ",
"tog-watchlisthideown": "លាក់កំណែប្រែរបស់ខ្ញុំពីបញ្ជីតាមដាន",
"tog-watchlisthidebots": "លាក់កំណែប្រែរបស់រូបយន្តពីបញ្ជីតាមដាន",
"disclaimers": "ការបដិសេធ",
"disclaimerpage": "Project:ការបដិសេធទូទៅ",
"edithelp": "ជំនួយក្នុងការកែប្រែ",
+ "helppage-top-gethelp": "ជំនួយ",
"mainpage": "ទំព័រដើម",
"mainpage-description": "ទំព័រដើម",
"policy-url": "Project:គោលការណ៍",
"viewsourcetext": "អ្នកអាចមើលនិងចម្លងកូដរបស់ទំព័រនេះ៖",
"viewyourtext": "អ្នកអាចមើលនិងចម្លងកូដរបស់'''ការកែប្រែរបស់អ្នក'''មកកាន់ទំព័រនេះ៖",
"protectedinterface": "ទំព័រនេះផ្ដល់នូវអត្ថបទអន្តរមុខសម្រាប់សូហ្វវែរនៅក្នុងវិគីនេះ និងត្រូវបានចាក់សោដើម្បីចៀសវាងការបំពាន។\nដើម្បីបន្ថែមឬផ្លាស់ប្ដូរការបកប្រែសំរាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគំរោងបកប្រែរបស់MediaWiki។",
- "editinginterface": "'''ប្រយ័ត្ន៖''' អ្នកកំពុងតែកែប្រែទំព័រដែលបានប្រើប្រាស់ដើម្បីផ្ដល់ជូនអន្តរមុខសម្រាប់សូហ្វវែរ។ បំលាស់ប្ដូរចំពោះទំព័រនេះនឹងប៉ះពាល់ដល់ទ្រង់ទ្រាយរបស់ទំព័រអន្តរមុខសំរាប់អ្នកប្រើប្រាស់ជាច្រើន ដែលប្រើប្រាស់វិគីនេះ។",
+ "editinginterface": "<strong>ប្រយ័ត្ន៖</strong> អ្នកកំពុងតែកែប្រែទំព័រដែលបានប្រើប្រាស់ដើម្បីផ្ដល់ជូនអន្តរមុខសម្រាប់សូហ្វវែរ។ បន្លាស់ប្ដូរចំពោះទំព័រនេះនឹងប៉ះពាល់ដល់ទ្រង់ទ្រាយរបស់ទំព័រអន្តរមុខសំរាប់អ្នកប្រើប្រាស់ជាច្រើននាក់ ដែលប្រើប្រាស់វិគីនេះ។",
"translateinterface": "ដើម្បីបន្ថែមឬកែប្រែការបកប្រែសម្រាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគម្រោងបកប្រែវិគីមេឌា។",
"cascadeprotected": "ទំព័រនេះត្រូវបានការពារពីការការប្រែដោយសារវាមាន{{PLURAL:$1|ទំព័រ, ដែលមាន}} ដែលត្រូវបានការពារជាមួយជំរើស\"ជាបណ្ដាក់\"៖\n$2",
"namespaceprotected": "អ្នកមិនមានសិទ្ធិកែប្រែទំព័រក្នុងប្រភេទ'''$1'''ទេ។",
"wrongpassword": "ពាក្យសម្ងាត់ដែលបានវាយបញ្ចូលមិនត្រឹមត្រូវទេ។\n\nសូមព្យាយាមម្តងទៀត។",
"wrongpasswordempty": "ពាក្យសម្ងាត់មិនបានវាយបញ្ចូលទេ។\n\nសូមព្យាយាមម្តងទៀត។",
"passwordtooshort": "ពាក្យសម្ងាត់ត្រូវមានយ៉ាងតិចណាស់ {{PLURAL:$1|១ តួអក្សរ|$1តួអក្សរ}}។",
+ "passwordtoolong": "ពាក្យសម្ងាត់មិនអាចវែងជាង{{PLURAL:$1|1 តួ|$1 តួ}}ទេ។",
"password-name-match": "ពាក្យសម្ងាត់ត្រូវតែខុសគ្នាពីអត្តនាមរបស់អ្នក។",
"password-login-forbidden": "ហាមប្រាមមិនអោយប្រើអត្តនាមនិងពាក្យសម្ងាត់នេះ។",
"mailmypassword": "កំណត់ពាក្យសម្ងាត់សាឡើងវិញ",
"preview": "មើលជាមុន",
"showpreview": "បង្ហាញការមើលជាមុន",
"showdiff": "បង្ហាញបន្លាស់ប្ដូរ",
+ "blankarticle": "<strong>ប្រយ័ត្ន៖</strong> ទំព័រដែលអ្នកកំពុងបង្កើតជាទំព័រទទេ។\nបើសិនជាអ្នកចុច \"{{int:savearticle}}\" ម្ដងទៀត ទំព័រនេះនឹងត្រូវរក្សាទុកដោយគ្មានខ្លឹមសារខាងក្នុង។",
"anoneditwarning": "'''ប្រយ័ត្ន ៖''' អ្នកមិនបានកត់ឈ្មោះចូលទេ។ អាសយដ្ឋានIPរបស់អ្នកនឹងត្រូវបានកត់ត្រាទុកក្នុងប្រវត្តិកែប្រែនៃទំព័រនេះ។ បើសិនជាអ្នក <strong>[$1 កត់ឈ្មោះចូល]</strong> ឬ <strong>[$2 បង្កើតគណនី]</strong> នោះការកែប្រែរបស់អ្នកនឹងត្រូវភ្ចាប់ជាមួយអត្តនាមរបស់អ្នកផង នឹងមានផលប្រយោជន៍ផ្សេងទៀតផង។",
"anonpreviewwarning": "<em>អ្នកមិនបានកត់ឈ្មោះចូលទេ។ ប្រសិនបើអ្នកធ្វើការរក្សាទុក នោះអាសយដ្ឋានIPរបស់អ្នកនឹងត្រូវបានកត់ត្រាទុកក្នុងប្រវត្តិកែប្រែនៃទំព័រនេះ។</em>",
"missingsummary": "'''រំលឹក៖''' អ្នកមិនទាន់បានផ្ដល់ចំណារពន្យល់អំពីកំណែប្រែនេះទេ។\n\nបើសិនជាអ្នកចុច '''រក្សាទុក''' ម្ដងទៀតនោះកំណែប្រែរបស់អ្នកនឹងត្រូវរក្សាទុកដោយគ្មានចំណារពន្យល់។",
"missingcommentheader": "'''រំលឹក៖''' អ្នកមិនទាន់បានផ្ដល់ឱ្យនូវ ប្រធានបទ/ចំណងជើង របស់មតិយោបល់នេះទេ។\nបើសិនជាអ្នកចុច \"{{int:savearticle}}\" ម្ដងទៀតនោះកំណែប្រែរបស់អ្នកនឹងត្រូវរក្សាទុកដោយគ្មានវា។",
"summary-preview": "ការមើលជាមុនរបស់ចំណារពន្យល់:",
"subject-preview": "ការមើលជាមុនរបស់ប្រធានបទ/ចំណងជើង:",
+ "previewerrortext": "មានបញ្ហាកើតឡើងពេលព្យាយាមើលជាមុនបន្លាស់ប្ដូររបស់អ្នក។",
"blockedtitle": "អ្នកប្រើនេះត្រូវបានហាមឃាត់ហើយ",
"blockedtext": "'''ឈ្មោះគណនីឬអាសយដ្ឋានIPរបស់អ្នកស្ថិតក្រោមការហាមឃាត់ហើយ។'''\n\nការហាមឃាត់ត្រូវបានធ្វើដោយ $1\n\nដោយសំអាងលើហេតុផល ''$2''។\n\n\n* ចាប់ផ្ដើមការហាមឃាត់ ៖ $8\n* ផុតកំណត់ការហាមឃាត់ ៖ $6\n* គណនីហាមឃាត់់ ៖ $7\n\n\nអ្នកអាចទាក់ទងទៅ $1 ឬ [[{{MediaWiki:Grouppage-sysop}}|អ្នកអភិបាល]]ដទៃទៀតដើម្បីពិភាក្សាពីការហាមឃាត់នេះ ។\n\nអ្នកមិនអាចប្រើប្រាស់មុខងារ \"អ៊ីមែលទៅអ្នកប្រើប្រាស់នេះ\" បានទេ លើកលែងតែអាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវមួយត្រូវបានផ្ដល់អោយក្នុង[[Special:Preferences|ចំណង់ចំណូលចិត្ត]]របស់លោកអ្នកហើយលោកអ្នកមិនត្រូវបានគេហាមឃាត់មិនឱ្យប្រើប្រាស់មុខងារនោះ។\n\nអាសយដ្ឋានIPបច្ចុប្បន្នរបស់លោកអ្នកគឺ $3 និងអត្តលេខហាមឃាត់គឺ #$5 ។\n\nសូមបញ្ចូលព័ត៌មានលំអិតទាំងអស់ខាងលើនេះ ក្នុងអ៊ីមែលទាក់ទងនឹងបញ្ហានេះ។",
"autoblockedtext": "អាសយដ្ឋានIPរបស់អ្នកបានត្រូវហាមឃាត់ដោយស្វ័យប្រវត្តិ ព្រោះវាត្រូវបានប្រើប្រាស់ដោយអ្នកប្រើប្រាស់ម្នាក់ទៀត ដែលត្រូវបានហាមឃាត់ដោយ $1 ។\n\nមូលហេតុលើកឡើង៖\n\n:''$2''\n\n* ការចាប់ផ្តើមហាមឃាត់៖ $8\n* ពេលផុតកំណត់ហាមឃាត់៖ $6\n* គណនីហាមឃាត់៖ $7\n\nអ្នកអាចទាក់ទង $1 ឬ[[{{MediaWiki:Grouppage-sysop}}|អ្នកអភិបាល]]ណាម្នាក់ ដើម្បីពិភាក្សាអំពីការហាមឃាត់នេះ។\n\nសូមកត់សម្គាល់ថាអ្នកមិនអាចប្រើប្រាស់មុខងារ \"អ៊ីមែលអ្នកប្រើប្រាស់នេះ\" បានទេ លុះត្រាតែមានអាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវមួយ បានចុះឈ្មោះក្នុង[[Special:Preferences|ចំណង់ចំណូលចិត្ត]]របស់អ្នក ហើយអ្នកមិនត្រូវបានហាមឃាត់មិនឱ្យប្រើប្រាស់មុខងារនោះ ។\n\nអាសយដ្ឋានIPបច្ចុប្បន្នរបស់អ្នកគឺ $3។ អត្តលេខហាមឃាត់គឺ #$5។\nសូមបញ្ចូលព័ត៌មានលំអិតទាំងអស់ខាងលើនេះ ក្នុងអ៊ីមែលទាក់ទងនឹងបញ្ហានេះ។",
"history-feed-empty": "ទំព័រដែលអ្នកបានស្នើមិនមានទេ។\nប្រហែលជាវាត្រូវបានគេលុបចោលពីវីគីឬត្រូវបានគេដាក់ឈ្មោះថ្មី។\nសូមសាក [[Special:Search|ស្វែងរកនៅក្នុងវិគី]] ដើម្បីរកទំព័រថ្មីដែលមានការទាក់ទិន។",
"rev-deleted-comment": "(ចំណារពន្យល់ត្រូវបានដកចេញ)",
"rev-deleted-user": "(អត្តនាមត្រូវបានលុបចេញ)",
- "rev-deleted-event": "(á\9e\80á\9f\86á\9e\8eá\9e\8fá\9f\8bá\9e á\9f\81á\9e\8fá\9e»á\9e\9fá\9e\80á\9e\98á\9f\92á\9e\98á\9e\97á\9e¶á\9e\96ត្រូវបានដកចេញ)",
+ "rev-deleted-event": "(á\9e\9fá\9f\81á\9e\85á\9e\80á\9f\92á\9e\8aá\9e¸á\9e\9bá\9e\98á\9f\92á\9e¢á\9e·á\9e\8fá\9e¢á\9f\86á\9e\96á\9e¸á\9e\80á\9f\86á\9e\8eá\9e\8fá\9f\8bá\9e á\9f\81á\9e\8fá\9e»ត្រូវបានដកចេញ)",
"rev-deleted-user-contribs": "[បានលុបចេញអត្តនាមឬអាសដ្ឋានIP នេះហើយ - ការកែប្រែលាក់មិនអោយអ្នករួមចំណែកដទៃមើលឃើញ]",
"rev-deleted-text-permission": "កំណែប្រែនៃទំព័រនេះត្រូវបាន'''លុបចោល'''។\nប្រហែលជាមានព័ត៌មានលម្អិតនៅក្នុង[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} កំណត់ហេតុនៃការលុបចោល]។",
"rev-deleted-text-unhide": "កំណែប្រែនៃទំព័រនេះត្រូវបាន'''លុបចោល'''។\nប្រហែលជាមានព័ត៌មានលម្អិតនៅក្នុង[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} កំណត់ហេតុនៃការលុបចោល]។\nអ្នកនៅតែអាច[$1 មើលកំណែនេះ]ប្រសិនបើអ្នកចង់។",
"revdelete-legend": "ដាក់កំហិតគំហើញ",
"revdelete-hide-text": "បិទបាំងអត្ថបទកំណែប្រែ",
"revdelete-hide-image": "បិទបាំងខ្លឹមសារនៃឯកសារ",
- "revdelete-hide-name": "á\9e\94á\9e·á\9e\91á\9e\94á\9e¶á\9f\86á\9e\84á\9e\9fá\9e\80á\9e\98á\9f\92á\9e\98á\9e\97á\9e¶á\9e\96á\9e\93á\9e·á\9e\84á\9e\82á\9f\84á\9e\9bá\9e\8aá\9f\85",
+ "revdelete-hide-name": "á\9e\9bá\9e¶á\9e\80á\9f\8bá\9e\82á\9f\84á\9e\9bá\9e\8aá\9f\85á\9e\93á\9e·á\9e\84á\9e\94á\9f\89á\9e¶á\9e\9aá\9f\89á\9e¶á\9e\98á\9f\89á\9f\82á\9e\8f",
"revdelete-hide-comment": "កែប្រែចំណារពន្យល់",
"revdelete-hide-user": "អត្តនាមឬអាសយដ្ឋានIPរបស់អ្នកកែប្រែ",
"revdelete-hide-restricted": "ដាក់កំហិតទិន្នន័យពីអ្នកអភិបាល ក៏ដូចជាអ្នកដទៃទៀត",
"notextmatches": "គ្មានអត្ថបទទំព័រណាមួយដែលមានខ្លឹមសារផ្គូផ្គងនឹងឃ្លាឬពាក្យនេះទេ",
"prevn": "មុន {{PLURAL:$1|$1}}",
"nextn": "បន្ទាប់ {{PLURAL:$1|$1}}",
+ "prev-page": "ទំព័រមុន",
+ "next-page": "ទំព័របន្ទាប់",
"prevn-title": "$1 {{PLURAL:$1|លទ្ធផល|លទ្ធផល}}មុន",
"nextn-title": "$1 {{PLURAL:$1|លទ្ឋផល|លទ្ឋផល}}បន្ទាប់",
"shown-title": "បង្ហាញ $1 {{PLURAL:$1|លទ្ធផល|លទ្ធផល}}ក្នុងមួយទំព័រ",
"powersearch-togglelabel": "គូសធីក៖",
"powersearch-toggleall": "ទាំងអស់",
"powersearch-togglenone": "ទទេ",
+ "powersearch-remember": "ចងចាំការជ្រើសរើសសម្រាប់ការស្វែងរកលើកក្រោយ",
"search-external": "ស្វែងរកនៅខាងក្រៅ",
"searchdisabled": "ឧបករណ៍ស្វែងរករបស់{{SITENAME}} មិនបានអនុញ្ញាត។\nក្នុងពេលឥឡូវនេះ អ្នកអាចស្វែងរកតាមរយៈ Google បាន។\nសូមចងចាំថា លិបិក្រមនៃមាតិការរបស់{{SITENAME}} អាចហួសសម័យ។",
"search-error": "មានបញ្ហាពេលកំពុងស្វែងរក៖ $1",
"prefs-personal": "ប្រវត្តិរូប",
"prefs-rc": "បន្លាស់ប្ដូរថ្មីៗ",
"prefs-watchlist": "បញ្ជីតាមដាន",
+ "prefs-editwatchlist": "កែប្រែបញ្ជីតាមដាន",
+ "prefs-editwatchlist-label": "កែប្រែវត្ថុនៅក្នុងទំព័រតាមដានរបស់អ្នក",
+ "prefs-editwatchlist-edit": "មើលនិងដកចេញចំណងជើងនានានៅក្នុងបញ្ជីតាមដានរបស់អ្នក",
+ "prefs-editwatchlist-raw": "កែប្រែបញ្ជីតាមដានឆៅ",
+ "prefs-editwatchlist-clear": "ជម្រះបញ្ចីតាមដានរបស់អ្នក",
"prefs-watchlist-days": "ចំនួនថ្ងៃត្រូវបង្ហាញក្នុងបញ្ជីតាមដាន៖",
"prefs-watchlist-days-max": "អតិបរមា $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}}",
"prefs-watchlist-edits": "ចំនួនអតិបរមានៃបំលាស់ប្តូរត្រូវបង្ហាញក្នុងបញ្ជីតាមដានដែលបានពង្រីក៖",
"guesstimezone": "បំពេញពីកម្មវិធីរាវរក",
"timezoneregion-africa": "អាហ្វ្រិក",
"timezoneregion-america": "អាមេរិក",
- "timezoneregion-antarctica": "á\9e¢á\9e\84á\9f\8bá\9e\8fá\9e¶á\9e\80á\9e\8fិក",
- "timezoneregion-arctic": "á\9e¢á\9e¶á\9e\80á\9e\8fិក",
+ "timezoneregion-antarctica": "á\9e¢á\9e\84á\9f\8bá\9e\8fá\9e¶á\9e\80á\9e\91ិក",
+ "timezoneregion-arctic": "á\9e¢á\9e¶á\9e\80á\9e\91ិក",
"timezoneregion-asia": "អាស៊ី",
"timezoneregion-atlantic": "មហាសមុទ្រអាត្លង់ទិក",
"timezoneregion-australia": "អូស្ត្រាលី",
"prefs-info": "ព័ត៌មានផ្ទាល់ខ្លួន",
"prefs-i18n": "ភាសា",
"prefs-signature": "ហត្ថលេខា",
- "prefs-dateformat": "á\9e\91á\9f\86រង់កាលបរិច្ឆេទ",
- "prefs-timeoffset": "á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82ម៉ោង",
+ "prefs-dateformat": "á\9e\91á\9e\98á\9f\92រង់កាលបរិច្ឆេទ",
+ "prefs-timeoffset": "á\9e\82á\9e\98á\9f\92á\9e\9bá\9e¶á\9e\8fម៉ោង",
"prefs-advancedediting": "ជម្រើសទូទៅ",
"prefs-editor": "អ្នកកែប្រែ",
"prefs-preview": "មើលជាមុន",
- "prefs-advancedrc": "á\9e\87á\9f\86រើសថ្នាក់ខ្ពស់",
- "prefs-advancedrendering": "á\9e\87á\9f\86រើសថ្នាក់ខ្ពស់",
- "prefs-advancedsearchoptions": "á\9e\87á\9f\86រើសថ្នាក់ខ្ពស់",
- "prefs-advancedwatchlist": "á\9e\87á\9f\86រើសថ្នាក់ខ្ពស់",
- "prefs-displayrc": "á\9e\87á\9f\86រើសការបង្ហាញ",
- "prefs-displaywatchlist": "á\9e\87á\9f\86រើសការបង្ហាញ",
+ "prefs-advancedrc": "á\9e\87á\9e\98á\9f\92រើសថ្នាក់ខ្ពស់",
+ "prefs-advancedrendering": "á\9e\87á\9e\98á\9f\92រើសថ្នាក់ខ្ពស់",
+ "prefs-advancedsearchoptions": "á\9e\87á\9e\98á\9f\92រើសថ្នាក់ខ្ពស់",
+ "prefs-advancedwatchlist": "á\9e\87á\9e\98á\9f\92រើសថ្នាក់ខ្ពស់",
+ "prefs-displayrc": "á\9e\87á\9e\98á\9f\92រើសការបង្ហាញ",
+ "prefs-displaywatchlist": "á\9e\87á\9e\98á\9f\92រើសការបង្ហាញ",
"prefs-tokenwatchlist": "កូនសោរ",
"prefs-diffs": "ភាពខុសគ្នា",
"prefs-help-prefershttps": "ចំណង់ចំណូលចិត្តនេះនឹងមានប្រសិទ្ធិភាពពេលអ្នកកត់ឈ្មោះចូលលើកក្រោយ។",
"userrights-lookup-user": "គ្រប់គ្រងក្រុមអ្នកប្រើប្រាស់",
"userrights-user-editname": "បញ្ចូលអត្តនាម៖",
"editusergroup": "កែប្រែក្រុមអ្នកប្រើប្រាស់",
- "editinguser": "á\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\9fá\9e·á\9e\91á\9f\92á\9e\92á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b '''[[User:$1|$1]]''' $2",
+ "editinguser": "á\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\9fá\9e·á\9e\91á\9f\92á\9e\92á\9e·á\9e\9aá\9e\94á\9e\9fá\9f\8b{{GENDER:$1|á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b}} <strong>[[User:$1|$1]]</strong> $2",
"userrights-editusergroup": "កែប្រែក្រុមអ្នកប្រើប្រាស់",
"saveusergroups": "រក្សាក្រុមអ្នកប្រើប្រាស់ទុក",
"userrights-groupsmember": "ក្រុមសមាជិកភាព៖",
"right-protect": "ប្ដូរកម្រិតការពាររួចកែប្រែទំព័រដែលបានការពារជាថ្នាក់",
"right-editprotected": "កែប្រែទំព័រដែលបានការពារដោយ \"{{int:protect-level-sysop}}\"",
"right-editsemiprotected": "កែប្រែទំព័រដែលបានការពារដោយ \"{{int:protect-level-autoconfirmed}}\"",
+ "right-editcontentmodel": "កែប្រែខ្លឹមសារគំរូរបស់ទំព័រមួយ",
"right-editinterface": "កែប្រែអន្តរមុខអ្នកប្រើប្រាស់",
"right-editusercssjs": "កែប្រែឯកសារ CSS និង JS របស់អ្នកប្រើប្រាស់ផ្សេងទៀត",
"right-editusercss": "កែប្រែឯកសារ CSS របស់អ្នកប្រើប្រាស់ផ្សេងទៀត",
"action-createpage": "បង្កើតទំព័រនានា",
"action-createtalk": "បង្កើតទំព័រពិភាក្សានានា",
"action-createaccount": "បង្កើតគណនីអ្នកប្រើប្រាស់នេះ",
+ "action-history": "មើលប្រវត្តិទំព័រនេះ",
"action-minoredit": "ចំណាំកំណែប្រែនេះថាជាកំណែប្រែតិចតួច",
"action-move": "ប្ដូរទីតាំងទំព័រនេះ",
"action-move-subpages": "ប្ដូរទីតាំងទំព័រនេះព្រមទាំងអនុទំព័ររបស់វា",
"action-viewmywatchlist": "មើលបញ្ជីតាមដានរបស់អ្នក",
"action-viewmyprivateinfo": "មើលព័ត៌មានឯកជនរបស់អ្នក",
"action-editmyprivateinfo": "កែប្រែព័ត៌មានឯកជនរបស់អ្នក",
+ "action-editcontentmodel": "កែប្រែខ្លឹមសារគំរូរបស់ទំព័រមួយ",
"nchanges": "$1 {{PLURAL:$1|បន្លាស់ប្ដូរ|បន្លាស់ប្ដូរ}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|គិតតាំងពីការបើកមើលចុងក្រោយ}}",
"enhancedrc-history": "ប្រវត្តិ",
- "recentchanges": "á\9e\94á\9f\86លាស់ប្ដូរថ្មីៗ",
+ "recentchanges": "á\9e\94á\9e\93á\9f\92លាស់ប្ដូរថ្មីៗ",
"recentchanges-legend": "ជម្រើសនានា សម្រាប់ការបង្ហាញបន្លាស់ប្ដូរថ្មីៗ",
"recentchanges-summary": "តាមដានរាល់បំលាស់ប្ដូរថ្មីៗបំផុតចំពោះវិគីនៅលើទំព័រនេះ។",
+ "recentchanges-noresult": "គ្មានកំណែប្រែក្នុងរយៈពេលដែលបានផ្ដល់អោយដែលត្រូវនឹងលក្ខខណ្ឌទាំងនេះទេ។",
"recentchanges-feed-description": "តាមដានបន្លាស់ប្ដូរថ្មីៗបំផុតនៃវិគីនេះក្នុងមតិព័ត៌មាននេះ។",
"recentchanges-label-newpage": "ការកែប្រែនេះបានបង្កើតទំព័រថ្មីមួយ",
"recentchanges-label-minor": "នេះជាការកែប្រែតិចតួចមួយប៉ុណ្ណោះ",
"recentchanges-label-plusminus": "ទំហំទំព័រត្រូវបានផ្លាស់ប្ដូរគិតជាចំនួនបៃ",
"recentchanges-legend-heading": "''កំណត់សម្គាល់៖'''",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (មើលផងដែរនូវ [[Special:NewPages|បញ្ជីទំព័រថ្មី]])",
- "rcnotefrom": "ខាងក្រោមនេះជាបន្លាស់ប្ដូរនានាគិតចាប់តាំងពី '''$2''' (បង្ហាញអតិបរមាចំនួន '''$1''')។",
+ "rcnotefrom": "ខាងក្រោមនេះជាបន្លាស់ប្ដូរនានាគិតចាប់តាំងពី <strong>$4 $3</strong> (បង្ហាញអតិបរមាចំនួន <strong>$1</strong>)។",
"rclistfrom": "បង្ហាញបន្លាស់ប្ដូរថ្មីៗចាប់តាំងពី $3 $2",
"rcshowhideminor": "$1កំណែប្រែតិចតួច",
"rcshowhideminor-show": "បង្ហាញ",
"show": "បង្ហាញ",
"minoreditletter": "តិច",
"newpageletter": "ថ្មី",
- "boteditletter": "á\9e\9aá\9e¼á\9e\94á\9e\99á\9e\93á\9f\92á\9e\8f",
+ "boteditletter": "យន្ត",
"number_of_watching_users_pageview": "[មាន{{PLURAL:$1|អ្នកប្រើប្រាស់|អ្នកប្រើប្រាស់}}$1នាក់កំពុងមើល]",
"rc_categories": "កម្រិតទីតាំងចំណាត់ថ្នាក់ក្រុម(ខណ្ឌដោយសញ្ញា \"|\")",
"rc_categories_any": "មួយណាក៏បាន",
"license": "អាជ្ញាបណ្ណ",
"license-header": "ការដាក់អាជ្ញាប័ណ្ណ",
"nolicense": "គ្មាន",
+ "licenses-edit": "កែប្រែជម្រើសអាជ្ញាប័ណ្ឌ",
"license-nopreview": "(មិនទាន់មានការបង្ហាញការមើលជាមុនទេ)",
- "upload_source_url": "(URL ត្រឹមត្រូវនិងបើកចំហជាសាធារណៈ)",
- "upload_source_file": "(ឯកសារក្នុងកុំព្យូទ័ររបស់អ្នក)",
+ "upload_source_url": "(ឯកសារដែលអ្នកជ្រើសរើសពីURLត្រឹមត្រូវនិងបើកចំហជាសាធារណៈ)",
+ "upload_source_file": "(á\9e¯á\9e\80á\9e\9fá\9e¶á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\87á\9f\92á\9e\9aá\9e¾á\9e\9aá\9e¾á\9e\9fá\9e\96á\9e¸á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\80á\9e»á\9f\86á\9e\96á\9f\92á\9e\99á\9e¼á\9e\91á\9f\90á\9e\9aá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80)",
"listfiles-delete": "លុបចោល",
"listfiles-summary": "ទំព័រពិសេសនេះបង្ហាញគ្រប់ឯកសារដែលបានផ្ទុកឡើង។",
"listfiles_search_for": "ស្វែងរកឈ្មោះមេឌា៖",
+ "listfiles-userdoesnotexist": "គណនីអ្នកប្រើប្រាស់ដែលមានឈ្មោះ \"$1\"មិនទាន់បានចុះឈ្មោះទេ។",
"imgfile": "ឯកសារ",
"listfiles": "បញ្ជីរូបភាព",
"listfiles_thumb": "កូនរូបភាព",
"download": "ទាញយក",
"unwatchedpages": "ទំព័រមិនត្រូវបានតាមដាន",
"listredirects": "បញ្ជីនៃការបញ្ជូនបន្ត",
+ "listduplicatedfiles": "បញ្ជីឯកសារជាន់គ្នា",
"unusedtemplates": "ទំព័រគំរូដែលលែងត្រូវបានប្រើ",
"unusedtemplatestext": "ទំព័រនេះមានរាយនាមទំព័រទាំងអស់នៅក្នុងប្រភេទ{{ns:template}} ដែលមិនបានរាប់បញ្ជូលក្នុងទំព័រដទៃទៀត។\nសូមចងចាំក្នុងការត្រួតពិនិត្យតំណភ្ជាប់ផ្សេងៗទៀតដែលភ្ជាប់មកទំព័រគំរូមុននឹងលុបវាចោល។",
"unusedtemplateswlh": "តំណភ្ជាប់ផ្សេងៗទៀត",
"randomincategory": "ទំព័រចៃដន្យក្នុងចំណាត់ថ្នាក់ក្រុម",
"randomincategory-invalidcategory": "\"$1\" មិនមែនជាឈ្មោះចំណាតក្រុមត្រឹមត្រូវ។",
"randomincategory-nopages": "គ្មានទំព័រណាមួយក្នុងចំណាត់ថ្នាក់ក្រុម [[:Category:$1|$1]] ទេ។",
+ "randomincategory-category": "ចំណាត់ថ្នាក់ក្រុម៖",
+ "randomincategory-legend": "ទំព័រចៃដន្យក្នុងចំណាត់ថ្នាក់ក្រុម",
"randomredirect": "ទំព័របញ្ជូនបន្តចៃដន្យ",
"randomredirect-nopages": "គ្មានទំព័របញ្ជូនបន្តណាមួយនៅក្នុងប្រភេទ \"$1\" ទេ។",
"statistics": "ស្ថិតិ",
"ninterwikis": "$1 {{PLURAL:$1|អន្តរវិគី|អន្តរវិគី}}",
"nlinks": "$1 {{PLURAL:$1|តំណភ្ជាប់|តំណភ្ជាប់}}",
"nmembers": "$1{{PLURAL:$1|សមាជិក|សមាជិក}}",
+ "nmemberschanged": "$1 → $2 {{PLURAL:$2|សមាជិក|សមាជិក}}",
"nrevisions": "$1 {{PLURAL:$1|កំណែប្រែ}}",
"nviews": "$1 {{PLURAL:$1|ការចូលមើល}}",
"nimagelinks": "ត្រូវបានប្រើនៅលើទំព័រចំនួន $1។",
"ntransclusions": "ត្រូវបានប្រើនៅលើទំព័រចំនួន $1",
"specialpage-empty": "គ្មានលទ្ធផលសម្រាប់របាយណ៍នេះទេ។",
"lonelypages": "ទំព័រកំព្រា",
- "lonelypagestext": "ទំព័រដូចតទៅនេះមិនត្រូវបានភ្ជាប់ពីទំព័រដទៃនៅក្នុង {{SITENAME}}ទេ។",
+ "lonelypagestext": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9e¼á\9e\85á\9e\8fá\9e\91á\9f\85á\9e\93á\9f\81á\9f\87á\9e\98á\9e·á\9e\93á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\97á\9f\92á\9e\87á\9e¶á\9e\94á\9f\8bá\9e¬á\9e\99á\9f\84á\9e\84á\9e\98á\9e\80á\9e\96á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9e\91á\9f\83á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84 {{SITENAME}}á\9e\91á\9f\81á\9f\94",
"uncategorizedpages": "ទំព័រគ្មានចំណាត់ថ្នាក់ក្រុម",
"uncategorizedcategories": "ចំណាត់ថ្នាក់ក្រុមដែលមិនត្រូវបានចាត់ជាថ្នាក់",
"uncategorizedimages": "រូបភាពគ្មានចំណាត់ថ្នាក់ក្រុម",
"uncategorizedtemplates": "ទំព័រគំរូគ្មានចំណាត់ថ្នាក់ក្រុម",
- "unusedcategories": "á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\8aá\9f\82á\9e\9bá\9e\98á\9e·á\9e\93á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b",
- "unusedimages": "ឯកសារ(មេឌា រូបភាព)ដែលមិនត្រូវបានប្រើប្រាស់",
- "wantedcategories": "á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\8aá\9f\82á\9e\9bá\9e\82á\9f\92á\9e\9aá\9e\94á\9f\8bá\9e\82á\9f\92á\9e\93á\9e¶á\9e\85á\9e\84á\9f\8bá\9e\94á\9e¶á\9e\93",
- "wantedpages": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aâ\80\8bá\9e\8aá\9f\82á\9e\9bâ\80\8bá\9e\82á\9f\92á\9e\9aá\9e\94á\9f\8bá\9e\82á\9f\92á\9e\93á\9e¶â\80\8bá\9e\85á\9e\84á\9f\8bá\9e\94á\9e¶á\9e\93",
+ "unusedcategories": "á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\98á\9e·á\9e\93á\9e\94á\9f\92á\9e\9aá\9e¾",
+ "unusedimages": "ឯកសារមិនប្រើ",
+ "wantedcategories": "á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\80á\9e¶á\9e\9a",
+ "wantedpages": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aâ\80\8bá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\80á\9e¶á\9e\9a",
"wantedpages-badtitle": "ចំណងជើងមិនត្រឹមត្រូវនៅក្នុងសំនុំលទ្ធផល៖ $1",
- "wantedfiles": "á\9e¯á\9e\80á\9e\9fá\9e¶á\9e\9aá\9e\85á\9e\84á\9f\8bá\9e\94á\9e¶á\9e\93",
- "wantedtemplates": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\82á\9f\86á\9e\9aá\9e¼á\9e\85á\9e\84á\9f\8bá\9e\94á\9e¶á\9e\93",
+ "wantedfiles": "á\9e¯á\9e\80á\9e\9fá\9e¶á\9e\9aá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\80á\9e¶á\9e\9a",
+ "wantedtemplates": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\82á\9f\86á\9e\9aá\9e¼á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\80á\9e¶á\9e\9a",
"mostlinked": "ទំព័រដែលត្រូវបានតភ្ជាប់មកច្រើនបំផុត",
"mostlinkedcategories": "ចំណាត់ថ្នាក់ក្រុមដែលត្រូវបានតភ្ជាប់មកច្រើនបំផុត",
"mostlinkedtemplates": "ទំព័រគំរូដែលត្រូវបានប្រើប្រាស់ច្រើនបំផុត",
"deadendpages": "ទំព័រទាល់",
"deadendpagestext": "ទំព័រដូចតទៅនេះមិនតភ្ជាប់ទៅទំព័រដទៃទៀតក្នុង {{SITENAME}} ទេ។",
"protectedpages": "ទំព័រដែលត្រូវបានការពារ",
- "protectedpages-indef": "á\9e\9fá\9f\86រាប់តែការការពារដែលមិនកំណត់ប៉ុណ្ណោះ",
- "protectedpages-summary": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\9aá\9e¶á\9e\99á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\80á\9f\86á\9e\96á\9e»á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e\96á\9e¶á\9e\9aá\9f\94 á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\85á\9f\86á\9e\8eá\9e\84á\9e\87á\9e¾á\9e\84á\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99á\9e\8aá\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\90á\9e·á\9e\93នៅក្រោមការការពារមិនអោយបង្កើត សូមមើលនៅ [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]។",
- "protectedpages-cascade": "á\9e\9fá\9f\86រាប់ការការពារជាថ្នាក់ប៉ុណ្ណោះ",
+ "protectedpages-indef": "á\9e\9fá\9e\98á\9f\92រាប់តែការការពារដែលមិនកំណត់ប៉ុណ្ណោះ",
+ "protectedpages-summary": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\9aá\9e¶á\9e\99á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\80á\9f\86á\9e\96á\9e»á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e\96á\9e¶á\9e\9aá\9f\94 á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\85á\9f\86á\9e\8eá\9e\84á\9e\87á\9e¾á\9e\84á\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99á\9e\8aá\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\90á\9e·á\9e\8fនៅក្រោមការការពារមិនអោយបង្កើត សូមមើលនៅ [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]។",
+ "protectedpages-cascade": "á\9e\9fá\9e\98á\9f\92រាប់ការការពារជាថ្នាក់ប៉ុណ្ណោះ",
"protectedpages-noredirect": "លាក់ការបញ្ជូនបន្ត",
"protectedpagesempty": "មិនមានទំព័រណាដែលត្រូវបានការពារ ជាមួយប៉ារ៉ាម៉ែតទាំងនេះទេ។",
"protectedpages-timestamp": "ត្រាពេលវេលា",
"protectedpages-unknown-timestamp": "មិនស្គាល់",
"protectedpages-unknown-performer": "អ្នកប្រើប្រាស់មិនស្គាល់",
"protectedtitles": "ចំណងជើងត្រូវបានការពារ",
- "protectedtitles-summary": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\9aá\9e¶á\9e\99á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\85á\9f\86á\9e\8eá\9e\84á\9e\87á\9e¾á\9e\84á\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99á\9e\8aá\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\90á\9e·á\9e\93នៅក្រោមការការពារមិនអោយបង្កើត។ សម្រាប់បញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ សូមមើលនៅ [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]។",
+ "protectedtitles-summary": "á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\9aá\9e¶á\9e\99á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\85á\9f\86á\9e\8eá\9e\84á\9e\87á\9e¾á\9e\84á\9e\91á\9e¶á\9f\86á\9e\84á\9e¡á\9e¶á\9e\99á\9e\8aá\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\90á\9e·á\9e\8fនៅក្រោមការការពារមិនអោយបង្កើត។ សម្រាប់បញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ សូមមើលនៅ [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]។",
"protectedtitlesempty": "មិនមានចំណងជើងណាដែលត្រូវបានការពារជាមួយនឹងប៉ារ៉ាម៉ែតទាំងនេះទេនាពេលថ្មីៗនេះ។",
"listusers": "បញ្ជីអ្នកប្រើប្រាស់",
"listusers-editsonly": "បង្ហាញតែអ្នកប្រើប្រាស់ដែលបានកែប្រែអត្ថបទប៉ុណ្ណោះ",
"emailccsubject": "ច្បាប់ចម្លងនៃសារដែលអ្នកផ្ញើទៅកាន់ $1 ៖ $2",
"emailsent": "អ៊ីមែលត្រូវបានផ្ញើទៅហើយ",
"emailsenttext": "សារអ៊ីមែលរបស់អ្នកត្រូវបានផ្ញើរួចហើយ។",
- "emailuserfooter": "អ៊ីមែលនេះត្រូវបានផ្ញើដោយ$1ទៅកាន់$2ដោយប្រើមុខងារ\"អ៊ីមែលអ្នកប្រើប្រាស់\"របស់{{SITENAME}}។",
- "usermessage-summary": "á\9e\91á\9e»á\9e\80á\9e\9fá\9e¶á\9e\9a",
+ "emailuserfooter": "អ៊ីមែលនេះត្រូវបានផ្ញើដោយ$1ទៅកាន់$2ដោយប្រើមុខងារ\"{{int:emailpage}}\"របស់{{SITENAME}}។",
+ "usermessage-summary": "á\9e\91á\9e\98á\9f\92á\9e\9bá\9e¶á\9e\80á\9f\8bá\9e\9fá\9e¶á\9e\9aá\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\94á\9f\92á\9e\9aá\9e\96á\9f\90á\9e\93á\9f\92á\9e\92",
"usermessage-editor": "ប្រព័ន្ធផ្ញើសារ",
"watchlist": "បញ្ជីតាមដាន",
"mywatchlist": "បញ្ជីតាមដាន",
"unwatchthispage": "ឈប់តាមដាន",
"notanarticle": "មិនមែនជាទំព័រមាតិកា",
"notvisiblerev": "ការកែតម្រូវត្រូវបានលុបចោល",
- "watchlist-details": "{{PLURAL:$1|$1 page|ទំព័រ $1}}នៅក្នុងបញ្ជីតាមដានរបស់អ្នក ដោយមិនរាប់បញ្ចូលទំព័រពិភាក្សា។",
+ "watchlist-details": "{{PLURAL:$1|$1 ទំព័រ១|ទំព័រចំនួន $1}}នៅក្នុងបញ្ជីតាមដានរបស់អ្នក ដោយមិនរាប់បញ្ចូលទំព័រពិភាក្សា។",
"wlheader-enotif": "បើកប្រើការផ្ដល់ដំណឹងតាមរយៈអ៊ីមែល។",
"wlheader-showupdated": "ទំព័រដែលត្រូវបានផ្លាស់ប្តូរតាំងពីពេលចូលមើលចុងក្រោយរបស់អ្នក ត្រូវបានបង្ហាញជា '''អក្សរដិត'''។",
- "wlnote": "ខាងក្រោមនេះជា {{PLURAL:$1|បំលាស់ប្តូរចុងក្រោយ|'''$1'''បំលាស់ប្តូរចុងក្រោយ}}ក្នុងរយះពេល{{PLURAL:$2|'''$2'''ម៉ោង}}ចុងក្រោយ គិតចាប់ពី $3, $4។",
+ "wlnote": "ខាងក្រោមនេះ {{PLURAL:$1|ជាបន្លាស់ប្ដូរចុងក្រោយ|ជាបន្លាស់ប្ដូរចុងក្រោយចំនួន <strong>$1</strong>}} នៅក្នុងរយៈពេល{{PLURAL:$2|១ម៉ោង|<strong>$2</strong> ម៉ោង}} គិតចាប់ពីម៉ោង $4 ថ្ងៃ $3។",
"wlshowlast": "បង្ហាញ $1ម៉ោងចុងក្រោយ $2ថ្ងៃចុងក្រោយ",
"watchlist-options": "ជម្រើសនានាក្នុងបញ្ជីតាមដាន",
"watching": "កំពុងតាមដាន...",
"confirmdeletetext": "អ្នកប្រុងនឹងលុបចោលទាំងស្រុង នូវទំព័រមួយដោយរួមបញ្ចូលទាំងប្រវត្តិកែប្រែរបស់វាផង។\nសូមអ្នកអះអាងថា អ្នកពិតជាមានចេតនាធ្វើបែបហ្នឹង និងថាអ្នកបានយល់ច្បាស់ពីផលវិបាកទាំងឡាយដែលអាចកើតមាន និងសូមអះអាងថា អ្នកធ្វើស្របតាម [[{{MediaWiki:Policy-url}}|គោលការណ៍]]។",
"actioncomplete": "សកម្មភាពបានសម្រេច",
"actionfailed": "សកម្មភាពមិនបានសម្រេច",
- "deletedtext": "\"$1\"á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\9bá\9e»á\9e\94á\9e\85á\9f\84á\9e\9bá\9e\9aá\9e½á\9e\85á\9e á\9e¾á\9e\99á\9f\94\n\ná\9e\9fá\9e¼á\9e\98á\9e\98á\9e¾á\9e\9b$2á\9e\9fá\9f\86រាប់បញ្ជីនៃការលុបចោលនាពេលថ្មីៗ។",
+ "deletedtext": "\"$1\"á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\9bá\9e»á\9e\94á\9e\85á\9f\84á\9e\9bá\9e\9aá\9e½á\9e\85á\9e á\9e¾á\9e\99á\9f\94\n\ná\9e\9fá\9e¼á\9e\98á\9e\98á\9e¾á\9e\9b$2á\9e\9fá\9e\98á\9f\92រាប់បញ្ជីនៃការលុបចោលនាពេលថ្មីៗ។",
"dellogpage": "កំណត់ហេតុនៃការលុបចោល",
"dellogpagetext": "ខាងក្រោមជាបញ្ជីនៃការលុបចោលថ្មីៗបំផុត។",
"deletionlog": "កំណត់ហេតុនៃការលុបចោល",
"revertpage": "បានត្រឡប់កំណែប្រែដោយ[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ទៅកំណែប្រែចុងក្រោយដោយ [[User:$1|$1]]",
"rollback-success": "កំណែដែលត្រូវបានត្រឡប់ដោយ $1។\nបានផ្លាស់ប្ដូរទៅកំណែចុងក្រោយវិញដោយ $2។",
"protectlogpage": "កំណត់ហេតុនៃការការពារ",
- "protectlogtext": "á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\93á\9f\81á\9f\87á\9e\87á\9e¶á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\83á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\93á\9e·á\9e\84á\9e\8aá\9f\84á\9f\87á\9e\9fá\9f\84á\9f\94\n\ná\9e\9fá\9e¼á\9e\98á\9e\98á\9e¾á\9e\9b [[Special:ProtectedPages|á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e\96á\9e¶á\9e\9a]] á\9e\9fá\9f\86រាប់បញ្ជីការការពារទំព័រដែលកំពុងនៅមានសុពលភាពនៅពេលនេះ។",
+ "protectlogtext": "á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\93á\9f\81á\9f\87á\9e\87á\9e¶á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\83á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\93á\9e·á\9e\84á\9e\8aá\9f\84á\9f\87á\9e\9fá\9f\84á\9f\94\n\ná\9e\9fá\9e¼á\9e\98á\9e\98á\9e¾á\9e\9b [[Special:ProtectedPages|á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e\96á\9e¶á\9e\9a]] á\9e\9fá\9e\98á\9f\92រាប់បញ្ជីការការពារទំព័រដែលកំពុងនៅមានសុពលភាពនៅពេលនេះ។",
"protectedarticle": "បានការពារ\"[[$1]]\"",
"modifiedarticleprotection": "បានផ្លាស់ប្តូរកម្រិតការពារនៃ\"[[$1]]\"",
"unprotectedarticle": "ដកការការពារពី \"[[$1]]\"",
"protect-locked-access": "គណនីរបស់អ្នកគ្មានការអនុញ្ញាតក្នុងការផ្លាស់ប្ដូរ កម្រិតកាពារទំព័រ ។\nនេះជាការកំណត់បច្ចុប្បន្ន ចំពោះទំព័រ '''$1''' ៖",
"protect-cascadeon": "បច្ចុប្បន្នទំព័រនេះត្រូវបានការពារ ព្រោះវាបានស្ថិតក្នុង {{PLURAL:$1|ទំព័រដែលមាន}} ការការពារជាថ្នាក់។\n\nអ្នកអាចផ្លាស់ប្តូរកម្រិតការពារនៃ ទំព័រ ប៉ុន្តែវានឹងមិនប៉ះពាល់ដល់ការការពារជាថ្នាក់ទេ។",
"protect-default": "អនុញ្ញាតអ្នកប្រើប្រាស់ទាំងអស់",
- "protect-fallback": "á\9e\9fá\9f\86រាប់តែអ្នកដែលមានការអនុញ្ញាត \"$1\"",
- "protect-level-autoconfirmed": "á\9e\9fá\9f\86រាប់តែអ្នកប្រើប្រាស់ដែលបានបញ្ជាក់ទទួលស្គាល់ដោយស្វ័យប្រវត្តិ",
+ "protect-fallback": "á\9e\9fá\9e\98á\9f\92រាប់តែអ្នកដែលមានការអនុញ្ញាត \"$1\"",
+ "protect-level-autoconfirmed": "á\9e\9fá\9e\98á\9f\92រាប់តែអ្នកប្រើប្រាស់ដែលបានបញ្ជាក់ទទួលស្គាល់ដោយស្វ័យប្រវត្តិ",
"protect-level-sysop": "សម្រាប់តែអភិបាល",
"protect-summary-cascade": "ការពារជាថ្នាក់",
"protect-expiring": "ផុតកំណត់ $1 (UTC)",
"sp-contributions-search": "ស្វែងរកការរួមចំណែក",
"sp-contributions-username": "អាសយដ្ឋានIP ឬអត្តនាម៖",
"sp-contributions-toponly": "បង្ហាញតែការកែប្រែណាដែលជាកំណែថ្មីៗជាងគេប៉ុណ្ណោះ",
+ "sp-contributions-newonly": "បង្ហាញតែកំណែប្រែដែលជាការបង្កើតទំព័រ",
"sp-contributions-submit": "ស្វែងរក",
"whatlinkshere": "អ្វីដែលភ្ជាប់មកទីនេះ",
"whatlinkshere-title": "ទំព័រនានាដែលតភ្ជាប់ទៅ \"$1\"",
"tooltip-pt-mycontris": "បញ្ជីនៃការរួមចំណែករបស់អ្នក",
"tooltip-pt-login": "អ្នកត្រូវបានលើកទឹកចិត្តឱ្យកត់ឈ្មោះចូល។ ប៉ុន្តែនេះមិនមែនជាការបង្ខំទេ។",
"tooltip-pt-logout": "កត់ឈ្មោះចេញ",
+ "tooltip-pt-createaccount": "អ្នកត្រូវបានលើកទឹកចិត្តបង្កើតគណនីនិងកត់ឈ្មោះចូល។ ប៉ុន្តែនេះមិនមែនជាការបង្ខំទេ។",
"tooltip-ca-talk": "ការពិភាក្សាអំពីទំព័រខ្លឹមសារនេះ",
"tooltip-ca-edit": "អ្នកអាចកែប្រែទំព័រនេះ ។ សូមប្រើប្រាស់ប៊ូតុង 'បង្ហាញការមើលមុន' មុននឹងរក្សាទុកវា ។",
"tooltip-ca-addsection": "ចាប់ផ្ដើមផ្នែកថ្មីមួយក្នុងទំព័រពិភាក្សានេះ",
"size-megabytes": "$1មេកាបៃ",
"size-gigabytes": "$1ជីកាបៃ",
"lag-warn-normal": "បំលាស់ប្តូរថ្មីជាង {{PLURAL:$1|second|វិនាទី}}អាចមិនត្រូវបានបង្ហាញក្នុងបញ្ជីនេះ។",
- "lag-warn-high": "á\9e\8aá\9f\84á\9e\99á\9e\9fá\9e¶á\9e\9aá\9e\94á\9f\92á\9e\9aá\9e\96á\9f\90á\9e\93á\9f\92á\9e\92á\9e\94á\9f\86á\9e\9aá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\98á\9e¼á\9e\9bá\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e\91á\9e·á\9e\93á\9f\92á\9e\93á\9e\93á\9f\90á\9e\99á\9e\98á\9e¶á\9e\93á\9e\97á\9e¶á\9e\96á\9e\99á\9eºá\9e\8fá\9e\99á\9f\89á\9e¶á\9e\9cá\9e\81á\9f\92á\9e\9bá\9e¶á\9f\86á\9e\84 á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\90á\9f\92á\9e\98á\9e¸á\9e\87á\9e¶á\9e\84 $1 á\9e\9cá\9e·á\9e\93á\9e¶á\9e\91á\9e¸á\9e\98á\9e·á\9e\93á\9e¢á\9e¶á\9e\85á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\94á\9e¶á\9e\93á\9e\91á\9f\81á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\81á\9f\87។",
+ "lag-warn-high": "á\9e\8aá\9f\84á\9e\99á\9e\9fá\9e¶á\9e\9aá\9e\94á\9f\92á\9e\9aá\9e\96á\9f\90á\9e\93á\9f\92á\9e\92á\9e\94á\9f\86á\9e\9aá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\98á\9e¼á\9e\9bá\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e\91á\9e·á\9e\93á\9f\92á\9e\93á\9e\93á\9f\90á\9e\99á\9e\98á\9e¶á\9e\93á\9e\97á\9e¶á\9e\96á\9e\99á\9eºá\9e\8fá\9e\99á\9f\89á\9e¶á\9e\9cá\9e\81á\9f\92á\9e\9bá\9e¶á\9f\86á\9e\84 á\9e\94á\9e\93á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\90á\9f\92á\9e\98á\9e¸á\9e\87á\9e¶á\9e\84 $1 á\9e\9cá\9e·á\9e\93á\9e¶á\9e\91á\9e¸á\9e\98á\9e·á\9e\93á\9e¢á\9e¶á\9e\85á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\94á\9e\89á\9f\92á\9e\87á\9e¸á\9e\93á\9f\81á\9f\87á\9e\94á\9e¶á\9e\93á\9e\91á\9f\81។",
"watchlistedit-normal-title": "កែប្រែបញ្ជីតាមដាន",
"watchlistedit-normal-legend": "ដកចំណងជើងចេញពីបញ្ជីតាមដាន",
"watchlistedit-normal-explain": "ចំណងជើងក្នុងបញ្ជីតាមដានរបស់អ្នកត្រូវបានបង្ហាញខាងក្រោម។\n\nដើម្បីដកចេញនូវចំណងជើងណាមួយ សូមចុច\"{{int:Watchlistedit-normal-submit}}\"។\n\nអ្នកអាច[[Special:EditWatchlist/raw|កែប្រែបញ្ជីឆៅ]]ផងដែរ។",
"tags-tag": "ឈ្មោះស្លាក",
"tags-display-header": "Appearance លើបញ្ជីបំលាស់ប្ដូរ",
"tags-description-header": "បរិយាយពេញលេញនៃអត្ថន័យ",
+ "tags-source-header": "ប្រភព",
"tags-active-header": "សកម្ម?",
"tags-hitcount-header": "បំលាស់ប្ដូរដែលមានស្លាក",
+ "tags-actions-header": "សកម្មភាព",
"tags-active-yes": "បាទ/ចាស",
"tags-active-no": "ទេ",
+ "tags-source-none": "គ្មានគេប្រើទៀតទេ",
"tags-edit": "កែប្រែ",
- "tags-hitcount": "$1 {{PLURAL:$1|បំលាស់ប្ដូរ|បំលាស់ប្ដូរ}}",
+ "tags-delete": "លុបចោល",
+ "tags-activate": "បើកប្រើ",
+ "tags-deactivate": "បិទមិនប្រើ",
+ "tags-hitcount": "$1 {{PLURAL:$1|បន្លាស់ប្ដូរ|បន្លាស់ប្ដូរ}}",
"comparepages": "ប្រៀបធៀបទំព័រ",
"compare-page1": "ទំព័រ ១",
"compare-page2": "ទំព័រ ២",
"logentry-rights-rights": "$1 {{GENDER:$2|បានផ្លាស់ប្ដូរ}}សមាជិកភាពរបស់ $3 ពី $4 ទៅជា $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|បានផ្លាស់ប្ដូរ}}សមាជិកភាពរបស់ $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|ត្រូវបានតំឡើង}}សមាជិកភាពពី $4 ជា $5 ដោយស្វ័យប្រវត្តិ",
+ "logentry-upload-upload": "$1 {{GENDER:$2|បានផ្ទុកឡើង}} $3",
"rightsnone": "(ទទេ)",
"revdelete-summary": "កែប្រែចំណារពន្យល់",
"feedback-adding": "កំពុងបន្ថែមមតិយោបល់ទៅលើទំព័រ...",
"special-characters-group-persian": "អក្សរពែក្ស",
"special-characters-group-hebrew": "អក្សរហេប៊្រូ",
"special-characters-group-bangla": "អក្សរបេងក្លា",
+ "special-characters-group-tamil": "អក្សរតាមិល",
"special-characters-group-telugu": "អក្សរតិលគ្គ",
"special-characters-group-sinhala": "អក្សរស៊ិនហាឡា",
"special-characters-group-gujarati": "អក្សរគុចរទី",
"special-characters-group-thai": "អក្សរថៃ",
"special-characters-group-lao": "អក្សរឡាវ",
- "special-characters-group-khmer": "អក្សរខ្មែរ"
+ "special-characters-group-khmer": "អក្សរខ្មែរ",
+ "special-characters-title-minus": "សញ្ញាដក"
}
"SeoJeongHo",
"Banwol",
"Ysjbserver",
- "LiteHell"
+ "LiteHell",
+ "Lefion"
]
},
"tog-underline": "링크에 밑줄:",
"unusedimages": "사용하지 않는 파일 목록",
"wantedcategories": "필요한 분류 목록",
"wantedpages": "필요한 문서 목록",
+ "wantedpages-summary": "다른 문서들에 링크는 걸려 있지만 존재하지 않는 문서들 중, 넘겨주기 문서를 제외한 목록입니다.\n존재하지 않는 문서로 넘겨주는 문서 목록을 보려면 [[{{#special:BrokenRedirects}}|the list of broken redirects]]를 참고하세요.",
"wantedpages-badtitle": "문서 제목이 잘못되었습니다: $1",
"wantedfiles": "필요한 파일 목록",
"wantedfiletext-cat": "다음 파일은 쓰이고는 있지만 없는 파일입니다. 바깥 저장소에 있는 파일은 실제로는 있지만 여기 올라 있을 수 있습니다. 그런 오류는 <del>삭제선</del>이 그어질 것입니다. 또한 없는 파일을 포함하고 있는 문서는 [[:$1]]에 올라 있습니다.",
"nonunicodebrowser": "<strong>Opjepaß:</strong>\nDinge Brauser kann nit öhntlesch met däm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"a standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems\">UNICODE</i> un singe Bochstahbe ömjonn.\nBes esu johd un nemm ene andere Brauser för heh di Sigg!",
"editingold": "'''Opjepaß:<br />\nDo bes en ahle, övverhollte, Väsjohn vun dä Sigg heh aam ändere.\nWann De di avschpeischere deihs,\nwi se es,\ndann jonn all di Ännderonge fleute,\ndi zikdämm aan dä Sigg jemaht wohde sin.\nAlsu:\nBes De verhaftesch secher, wat_De mähs?\n'''",
"yourdiff": "Ungerscheide",
- "copyrightwarning": "Ding Beidräch stonn unger de [[$2]], süch $1. Wann De nit han wells, dat Dinge Tex ömjemodelt weed, un söns wohin verdeilt, dun en hee nit speichere. Mem Avspeichere sähs De och zo, dat et vun Dir selvs es, un/oder Do dat Rääch häs, en hee zo verbreide. Wann et nit stemmp, oder Do kanns et nit nohwiese, kann Dich dat en dr Bau bränge!",
- "copyrightwarning2": "De Beidräch {{GRAMMAR:en|{{SITENAME}}}} künne vun andere Metmaacher ömjemodelt\noder fottjeschmesse wääde. Wann Der dat nit rääch es, schriev nix. Et es och nüdich, dat et vun Dir selvs es, oder dat Do dat Rääch häs, et hee öffentlich wigger ze jevve. Süch $1. Wann et nit stemmp, oder Do kanns et nit nohwiese, künnt Dich dat en dr Bau bränge!",
+ "copyrightwarning": "Ding Beidrähsch schtonn unger de $2, süch $1. Wann De nit han wells, dat Dinge Tex ömjemodelt weed, un söns wohin verdeilt, dun en hee nit speichere. Mem Avspeichere sähs De och zo, dat et vun Dir selvs es, un/oder Do dat Rääch häs, en hee zo verbreide. Wann et nit stemmp, oder Do kanns et nit nohwiese, kann Dich dat en dr Bau bränge!",
+ "copyrightwarning2": "De Beidrähsch {{GRAMMAR:en|{{SITENAME}}}} künne vun andere Metmaacher ömjemodelt\noder fottjeschmesse wääde. Wann Der dat nit rääch es, schriev nix. Et es och nüdich, dat et vun Dir selvs es, oder dat Do dat Rääch häs, et hee öffentlich wigger ze jevve. Süch $1. Wann et nit stemmp, oder Do kanns et nit nohwihse, künnt Dich dat en dr Bau bränge!",
"longpageerror": "'''Janz schlemme Fähler:'''\nDä Tex, dä De heh jescheck häs, dä es {{PLURAL:$1|ein|$1|kei}} Kilobyte jruuß.\nDat {{PLURAL:$2|es mieh wie ei|sin mieh wie $2|es kei}} Kilobyte. Dat künne mer nit speichere!",
"readonlywarning": "'''Opjepass:'''\nDe Daatebank es jesperrt woode, wo Do ald am Ändere wohs.\nDä.\nJetz kanns De Ding Änderunge nit mieh faßhallde lohße.\nDun se bei Dir om Rechner faßhalde un versöhg et schpäder noch ens.\n\nNävvebei, dä Datenbank-Köbes hät för et Sperre och ene Jrund aanjejovve: $1",
"protectedpagewarning": "<strong>Opjepass: Di Sigg heh es jähje Veränderonge jeschöz. Blohß de Wikki-Köbeße künne se änndere.</strong>\nHeh kütt der neuste Enndraach em Logbohch för di Sigg:",
"badsig": "Di Ungeschreff jëijd_esu nit — luer noh dem HTML do_dren un maach et rėshtėsh.",
"badsiglength": "Ding „Ungerschref“ es zoo lang. Et dörve nit nieh wi {{PLURAL:$1|eij|$1|keij}} Zeische do dren sin.",
"yourgender": "Wi wells De, dat et Wiki övver Desch kalle deiht:",
- "gender-unknown": "Dä Metmaacher Su-wi-De-heiß schriiv em Wiki met.",
+ "gender-unknown": "Wann övver Desch jeschwadt weed, dann der ohne dorschbleck ze lohße, ov Kääl udder Weesch bes, esu wi: „dä Metmaacher Su-wi-De-heiß schriiv em Wiki met.“",
"gender-male": "Dä Su-wi-De-heiß schriiv och em Wiki met.",
"gender-female": "Dat Su-wi-De-heiß schriiv heh em Wiki met.",
"prefs-help-gender": "* Moß mer nit aanjävve, un dat kritt de janne Welt ze sinn, nit nur Do allein.",
"namespace_association": "mem zohjehühreje Appachtemang",
"tooltip-namespace_association": "Maach e Höhksche, öm dat Appachtemang, wat zom ußjewählte Appachtemang doh zohjehööt — entweeder de Klaafsigge udder de nomaale Sigge — zohsäzlesch ußzewähle.",
"blanknamespace": "(Atikkele)",
- "contributions": "{{GENDER:$1|Däm Metmaacher|Däm|Däm Metmaacher|Dä Metmaacherėn|Däm}} $1 {{GENDER:$1|singe|singe|singe|iere|singe}} Beidräch",
- "contributions-title": "Beidräsch fum $1",
+ "contributions": "{{GENDER:$1|Däm Metmaacher|Däm|Däm Metmaacher|Dä Metmaacherėn|Däm}} $1 {{GENDER:$1|singe|singe|singe|iere|singe}} Beidrähsch",
+ "contributions-title": "Beidrähsch fum $1",
"mycontris": "Beidrähch",
"contribsub2": "För {{GENDER:$3|dä|et|dä Metmaacher|de|dat}} $1: $1 ($2)",
"contributions-userdoesnotexist": "Ene Metmaacher mem Nahme „$1“ ham_mer nit.",
"year": "Beß Johr:",
"sp-contributions-newbies": "Nor neu Metmaacher ier Beidräg zeije",
"sp-contributions-newbies-sub": "För neu Metmaacher",
- "sp-contributions-newbies-title": "Neu Metmaacher ier Beidräsch",
+ "sp-contributions-newbies-title": "Neu Metmaacher ier Beidrähsch",
"sp-contributions-blocklog": "Logbohch met de Metmaacher ier Schpärre",
"sp-contributions-suppresslog": "verschtoche Beidrääch",
"sp-contributions-deleted": "Fottjeschmesse Beidrääsch",
"blocklink": "schpärre",
"unblocklink": "widder freijevve",
"change-blocklink": "Sperr ändere",
- "contribslink": "Beidräch",
+ "contribslink": "Beidrähsch",
"emaillink": "Scheck en <span lang=\"en\">e-mail</span>",
"autoblocker": "Bes automattisch jesperrt. Ding <i lang=\"en\" xml:lang=\"en\">IP</i>_Adress wood vör kootem noch vun däm Metmaacher „[[User:$1|$1]]“ jebruch. Dä es jesperrt woode wäje: „$2“",
"blocklogpage": "Logbohch met Metmaacher-Schpärre",
"others": "ander",
"siteusers": "{{PLURAL:$2|däm|de|keine}} {{PLURAL:$2|Metmaacher|Metmaachere|Metmaacher}} $1 aan {{GRAMMAR:Dat|{{SITENAME}}}}",
"anonusers": "{{PLURAL:$2|dä|de|keine}} nameloose Metmaacher $1 vun de translatewiki.net",
- "creditspage": "Övver de Metmaacher un dänne ehr Beidräsch för heh di Sigg",
+ "creditspage": "Övver de Metmaacher un dänne ehr Beidrähsch för heh di Sigg",
"nocredits": "För di Sigg ham_mer nix en de Leß.",
"spamprotectiontitle": "SPAM_Schotz",
"spamprotectiontext": "De Sigg, di de avschpeicchere wells, di weed vun onsem Projramm zom Schoz jähje der <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„för jewöhnlesch angmaß övverdrahre Nohreeschte udder Meddeijlonge, di wä se kritt jaa nit han well,“\">SPAM</i> nit durchjelooße. Dat kütt mihts vun enem Link op en främde Sigg, di op de \n„Schwazze Leß“ schteiht.",
"watchlisttools-view": "Mutationes paginarum observatarum inspicere",
"watchlisttools-edit": "Indicem paginarum observatarum inspicere vel recensere",
"watchlisttools-raw": "Indicem paginarum observatarum quasi textum recensere",
+ "hebrew-calendar-m4": "Tebeth",
+ "hebrew-calendar-m8": "Iar",
"hebrew-calendar-m11": "Ab",
+ "hebrew-calendar-m4-gen": "Tebeth",
+ "hebrew-calendar-m8-gen": "Iar",
+ "hebrew-calendar-m11-gen": "Ab",
"signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|disputatio]])",
"version": "Versio",
"version-specialpages": "Paginae speciales",
"badsig": "D'Syntax vun Ärer Ënnerschrëft ass net korrekt; iwwerpréift w.e.g. den HTML Code.",
"badsiglength": "Är Ënnerschrëft ass ze laang.\nSi muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.",
"yourgender": "Wéi wëllt Dir beschriwwe ginn?",
- "gender-unknown": "Ech wëll dat net preziséieren",
+ "gender-unknown": "Wann Dir ernimmt gëtt da benotzt D'Software do wou et méiglech ass geschlechtsneutral Wierder",
"gender-male": "Hien ännert Wikisäiten",
"gender-female": "Si ännert Wikisäiten",
"prefs-help-gender": "Fakultativ:\nD'Software benotzt seng Wäerter fir Iech unzeschwätzen a fir vun Iech vis-a-vis vun Aneren grammatesch ''Gender-korrekt'' ze schwätzen. \n\nDës Informatioun ass ëffentlech.",
"thu": "پن شمه",
"fri": "جمه",
"sat": "شمه",
- "january": "جانويه",
- "february": "فوریه",
+ "january": "جانڤیە",
+ "february": "فئڤریە",
"march": "مارش",
"april": "آبريل",
"may_long": "ما",
"november-gen": "نوامر",
"december-gen": "دسامر",
"jan": "جانویه",
- "feb": "فوریه",
+ "feb": "فئڤریە",
"mar": "مارش",
"apr": "آبريل",
"may": "ما",
"returnto": "ورگشت وه $1.",
"tagline": "د {{SITENAME}}",
"help": "هومياری",
- "search": "پی چوری",
+ "search": "پئی جوٙری",
"searchbutton": "پی جوری",
"go": "رو",
"searcharticle": "رو",
"history": "ويرگار بلگه",
"history_short": "ويرگار",
"updatedmarker": "د آخرین دیئن مه وه هنگوم سازی کو",
- "printableversion": "نسقه پلا بيئنی",
+ "printableversion": "نوسقە پئلا بیئنی",
"permalink": "هوم پیوند هميشئی",
"print": "پلا كردن",
"view": "ديئن",
"unprotectthispage": "پر و پیم کردن د ای بلگه نه آلشت بكيد",
"newpage": "بلگه نو",
"talkpage": "دباره ای بلگه قصه بكيد",
- "talkpagelinktext": "چک چنه",
+ "talkpagelinktext": "چأک چئنە",
"specialpage": "بلگه ويجه",
"personaltools": "اوزاريا شصقی",
"articlepage": "ديئن مینونه بلگه",
"pool-errorunknown": "خطا نادیار",
"pool-servererror": "پول سنتر خذمتگه د دسرس نئ($1).",
"poolcounter-usage-error": "خطار وه کار گرتن:$1",
- "aboutsite": "دبارÙ\87 {{SITENAME}}",
- "aboutpage": "پروجه:دباره",
+ "aboutsite": "دئبارÛ\95 {{SITENAME}}",
+ "aboutpage": "پوروجە:دئبارە",
"copyright": "مینونه د دسرس هئ سی $1 مر وه شلک هنی نوشته بوئه",
"copyrightpage": "{{ان اس:پروجه}}:کپی رایت",
"currentevents": "پيشومدل تازه باو",
"currentevents-url": "پروجه:پيشومدل تازه باو",
- "disclaimers": "تیه پوشکاریا",
+ "disclaimers": "تیە پوٙشکاریا",
"disclaimerpage": "پروجه:منكر بيئن کلی",
"edithelp": "هومياری سی ويرايشت",
"helppage-top-gethelp": "هومياری",
- "mainpage": "سرآسÙ\88Ù\86Ù\87",
+ "mainpage": "سأرآسÙ\88Ù\99Ù\86Û\95",
"mainpage-description": "سرآسونه",
"policy-url": "پروجه:خط و مش",
"portal": "درآسونه کومله یکی",
"portal-url": "پروجه:سرآسونه کومله یکی",
- "privacy": "Ù¾Ù\88Ù\84تÛ\8cÚ© رازÛ\8cÙ\86Ù\87 داری",
+ "privacy": "Ù¾Ù\88Ù\99Ù\84تÛ\8cÚ© رازÛ\8cÙ\86Û\95 داری",
"privacypage": "پروجه: خط مشی رازینه کاری کردن",
"badaccess": "خطا :صلاداری کو",
"badaccess-group0": "شما صلا انجوم کاری که حاستیت نارین",
"newmessageslinkplural": "{{PLURAL:$1|یه گل پیغوم تازه|999=پیغومیا تازه}}",
"newmessagesdifflinkplural": "آخر {{PLURAL:$1|آلشت|آلشتیا}}",
"youhavenewmessagesmulti": "شما یه گل پیغوم تازه د $1 داریتو",
- "editsection": "ويرايشت",
+ "editsection": "ڤیرایئشت",
"editold": "ويرايشت",
"viewsourceold": "سرچشمه نه بوينيت",
"editlink": "ويرايشت",
"viewsourcelink": "سرچشمه نه بوينيت",
- "editsectionhint": "ويرايشت يه گل بهرجا:$1",
+ "editsectionhint": "ڤیرایئشت یئ گئل بأرجا:$1",
"toc": "مینونه یا",
"showtoc": "نشو دئن",
"hidetoc": "قام كردن",
"page-atom-feed": "هوال حون Atom سی $1",
"feed-atom": "اتم",
"feed-rss": "آر اس اس",
- "red-link-title": "$1(بلگه وجود ناره)",
+ "red-link-title": "$1(بألگە ڤوجوٙد نارە)",
"sort-descending": "كم بيئن سرجاخود",
"sort-ascending": "زياد بيئن سرجاخود",
"nstab-main": "بلگه",
"nosuchaction": "چنی کنشتگری وجود ناره",
"nosuchactiontext": "کاری که وا یو آر ال مشقص بیه معتور نئ.\nشایت شما یو آر ال نه دروس ننشتیته، یا یه گل هوم پیوند نادرست وارد بیه.\nوه شاید وه یه گل سیسریک د نرم افزار وه کار گرته بیه وا {{نوم مالگه}} هشاره داشتوه.",
"nosuchspecialpage": "چنی بلگه خاصی وجود ناره",
- "nospecialpagetext": "<strong>شما سی یه گل بلگه نامعتور درحاست داشتیته.</strong>\nیه گل نوم گه سی اعتوار بلگه یا بوئه د [[ویجه:بلگه یا ویجه|{{رقم:بلگه یا ویجه}}]] پیدا با.",
+ "nospecialpagetext": "<strong>شما سی یه گل بلگه نامعتور درحاست داشتیته.</strong>\nیه گل نوم گه سی اعتوار بلگه یا بوئه د [[Special:SpecialPages|{{int:specialpages}}]] پیدا با.",
"error": "خطا",
"databaseerror": "خطا د جاگه دونسمنيا",
"databaseerror-text": "یه خطا جست کردن د رسینه جا پیش اوما.یه ممکنه یه در کار ونن د نرم اوزار پیش بیاره",
"undo-failure": "سی ری به ری بیئن ای ویرایشت وا ویرایشتیا مینجایی، نبوئه ای ویرایشت نه خومثی بکیت.",
"undo-norev": "نبوئه ای ویرایشت نه خومثی بکیت سی یه که یا وجود ناره یا پاکسا بیه.",
"undo-nochange": "وه نظر میا که ای ویرایشت د ایسنیا خومثی بیه.",
- "undo-summary": "خومثی بیئن وانئری وا $1[[ویجه:هومیاریا/$2|$2]] ([[چک چنه کاریار:$2|چک چنه]])",
+ "undo-summary": "خومثی بیئن وانئری وا $1 [[Special:Contributions/$2|$2]] ([[User talk:$2|چک چنه]])",
"undo-summary-username-hidden": "خومثی بیئن وانئری $1 وا یه گل کاریار قام بیه",
"cantcreateaccounttitle": "نبوئه حساو راس بکید",
"cantcreateaccount-text": "حساو دروس بیه و ا ای تیرنشون آی پی(<strong>$1</strong>) وه دس ای [[کاریار:$3|$3]] قلف بیه.\n\n\nدلیل دئه بیه وا $3 ها د<em>$2</em>",
"rc_categories": "دسه یا نه محدود کو(وا \"|\" جگا بوئن",
"rc_categories_any": "هرکوم",
"rc-change-size": "$1",
- "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتیا}} نها آلشتکاری",
+ "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتیا}} نئها آلئشتکاری",
"newsectionsummary": "/* $1 */ بهرجا تازه",
"rc-enhanced-expand": "جزيات نشون بيئه",
"rc-enhanced-hide": "جزياته قام كو",
"confirm-watch-top": "ای بلگه نه د سیل برگتو اضاف می کید؟",
"confirm-unwatch-button": "خوئه",
"confirm-unwatch-top": "ای بلگه نه د سیل برگتو ؤرمیداریت؟",
- "semicolon-separator": "; ",
+ "semicolon-separator": "؛ ",
"comma-separator": ", ",
"colon-separator": ": ",
"pipe-separator": " | ",
"table_pager_empty": "هیچ نتیجه ای نئ",
"autosumm-blank": "بلگه حالی",
"autosumm-replace": "مینونه وا \"َ$1\" جاگزین بی",
- "autoredircomment": "بلگه واگردونی بیه سی[[$1]]",
+ "autoredircomment": "بلگه واگردونی بیه سی [[$1]]",
"autosumm-new": "راست کردن بلگه وه دس \"$1\"",
"autosumm-newblank": "بلگه حالی دروس بیه",
"lag-warn-normal": "شایت آلشتیا تازه تر د $1 {{PLURAL:$1|ثانیه|ثانیه یا}} د ای نومگه دیاری نکن.",
--- /dev/null
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri",
+ "علی ساکی لرستانی",
+ "Mjbmr"
+ ]
+ },
+ "tog-underline": "لینکیا خط وه دومن",
+ "tog-hideminor": "قائم کردن ویرایشه یل کیچک مئن تغییره یل نو",
+ "tog-hidepatrolled": "قائم کردن ویرایشه یل کیچک مئن تغییره یل نو",
+ "tog-newpageshidepatrolled": "قائم کردن بلگه یل گشت مئنه لیست بلگه یل نو",
+ "tog-extendwatchlist": "گپ کردن بلگه یل پیگیری یل سی نشو دائن تموم تغییره یل ، نه فقط هونو که جدید وابون",
+ "tog-usenewrc": "تغییره یل جمی توسط بلگه مئنه تغییره یل نو و نوم بلگه پیگیری",
+ "tog-numberheadings": "شماره وندن خودکار سی سرخط یل",
+ "tog-showtoolbar": "نشو دائن تولبار ویرایش",
+ "tog-editondblclick": "ویرایس بلگه یل با دو کلیژ",
+ "tog-editsectiononrightclick": "فعال کردن ویرایس قسمتل با یه کلیژ ری نوم او قسمت",
+ "tog-watchcreations": "وندن بلگه یلی ک مو ساختمه و فایلل ک مو بار کردمه مئنه نوم بلگه پیگیری",
+ "tog-watchdefault": "وندن بلگه یل و فایلل ک مو هونونه ساختمه مئنه نوم بلگه پیگیری",
+ "tog-watchmoves": "وندن بلگه یل و فایلل ک مو هونونه انتقال دامه مئنه نوم بلگه پیگیری",
+ "tog-watchdeletion": "وندن بلگه یل و فایلل ک مو هونونه حذف کردمه مئنه نوم بلگه پیگیری",
+ "tog-minordefault": "علامت دائن وه تغییره یل تموم نبیه",
+ "tog-previewontop": "نشو دائن پیش نمایش قبل یوکه جعبه یا کادر اصلاح وابوه",
+ "tog-previewonfirst": "نشو دائن پیش نمایش مئن اصلاح اول",
+ "tog-enotifwatchlistpages": "ایمیل و مو به یوکه یه بلگه یا فایل مئن نوم بلگه پیگیری مه تغییر کرد",
+ "tog-enotifusertalkpages": "ایمیل و مو به یوکه بلگه بحث مو تغییر کرد",
+ "tog-enotifminoredits": "ایمیل و مو به حتی سی اطلاحات تموم نبیه فایلل و بلگه یل",
+ "tog-enotifrevealaddr": "نشو دائن ایمیل مو مئن ایمیلل دونسمنی _ خه وری",
+ "tog-shownumberswatching": "نشو دائن شماره کاروران در حال تماشا",
+ "tog-oldsig": "هی دیسه امضا",
+ "tog-fancysig": " وا امضا چی ویکی متن برخورد کو ( بدون لینک اتوماتیک )",
+ "tog-uselivepreview": "زه پیش نمویش زه نَ استفاده کُ",
+ "tog-forceeditsummary": "و مو یادآوری سریع کُ هنگام اصلاح خالی و کوتاه",
+ "tog-watchlisthideown": "قائم کردن اصلاحات مو زه نوم بلگه پیگیری یل",
+ "tog-watchlisthidebots": "قائم کردن اصلاحات بوت زه نوم بلگه پیگیری یل",
+ "tog-watchlisthideminor": "قائم کردن اصلاحات کیچیک زه نوم بلگه پیگیری یل",
+ "tog-watchlisthideliu": "قائم کردن اصلاحاتی ک توسط کاوری یل داخل سیستم وابیده انجام وابیه زه نوم بلگه پیگیری یل",
+ "tog-watchlisthideanons": "قائم کردن اصلاحات انجام وابیه توسط کاروری یل داخل سیستم نوابیه زه نوم بلگه پیگیری",
+ "tog-watchlisthidepatrolled": "قائم کردن اصلاحات گشت زه نوم بلگه پیگیری",
+ "tog-ccmeonemails": "ارسال کوپی ایمیللی ک مو سی کاروری یل دیه ارسال کردم سی مو",
+ "tog-diffonly": "نشو نده بلگه ای که چیا متفاوت و زبر داره",
+ "tog-showhiddencats": "نشو دائن دسه بنی یل قائم وابیده",
+ "tog-norollbackdiff": "حذف تفاوت بدیکه عقبگرد انجام وابی",
+ "tog-useeditwarning": "منه هشدار بی وقتی که مو بلگه ای ک درحال ویرایش وابینه بدون ذخیره تغییرل ترک کردم",
+ "tog-prefershttps": "همیشه زه یه اتصال امن وقتی وارد وابی منه سیستم استفاده کو",
+ "underline-always": "همیشه",
+ "underline-never": "هیچ وقت",
+ "underline-default": "پوسته و یا مرورگر وطور پیش فرض",
+ "editfont-style": "ویرایس فونت استایل ولات",
+ "editfont-default": "مرورگر وطور پیش فرض",
+ "editfont-monospace": "فونت هم عرض",
+ "editfont-sansserif": "فونت بدون سریف",
+ "editfont-serif": "فونت سریف",
+ "sunday": "یه شمه",
+ "monday": "دوشمه",
+ "tuesday": "سهشمه",
+ "wednesday": "چار شمه",
+ "thursday": "پشمه",
+ "friday": "جومَ",
+ "saturday": "شَمه",
+ "sun": "یه شمه",
+ "mon": "دوشمه",
+ "tue": "سهشمه",
+ "wed": "چارشمه",
+ "thu": "پشمه",
+ "fri": "جومَ",
+ "sat": "شمه",
+ "january": "اول قهاره",
+ "february": "لرشگون",
+ "march": "ئنهزنون",
+ "april": "نوروزماه",
+ "may_long": "گلبارماه",
+ "june": "جورش",
+ "july": "میوه رسون",
+ "august": "مه گرمه",
+ "september": "شنیارون",
+ "october": "مالبارکنون",
+ "november": "آو سردکنون",
+ "december": "آو رجکنون",
+ "january-gen": "اول قهاره",
+ "february-gen": "لرشگون",
+ "march-gen": "ئنهزنون",
+ "april-gen": "نوروزماه",
+ "may-gen": "گلبارماه",
+ "june-gen": "جورش",
+ "july-gen": "میوه رسون",
+ "august-gen": "مه گرمه",
+ "september-gen": "شنیارون",
+ "october-gen": "مالبارکنون",
+ "november-gen": "آو سردکنون",
+ "december-gen": "آو رجکنون",
+ "jan": "ژانویه",
+ "feb": "فوریه",
+ "mar": "مارس",
+ "apr": "آوریل",
+ "may": "گلبار ماه",
+ "jun": "جورش",
+ "jul": "میوه رسون",
+ "aug": "اوت",
+ "sep": "سپتامبر",
+ "oct": "اکتبر",
+ "nov": "نوامبر",
+ "dec": "دسامبر",
+ "january-date": "ژانویه $1",
+ "february-date": "فوریه $1",
+ "march-date": "مارس $1",
+ "april-date": "آوریل $1",
+ "may-date": "می $1",
+ "june-date": "جون $1",
+ "july-date": "جولای $1",
+ "august-date": "اوت $1",
+ "september-date": "سپتامبر $1",
+ "october-date": "اکتبر $1",
+ "november-date": "نوامبر $1",
+ "december-date": "دسامبر $1",
+ "pagecategories": "{{PLURAL:$1|دسه|دسه یل}}",
+ "category_header": "بلگه یل مئن دسه \"$1\"",
+ "subcategories": "دسه یل فرعی",
+ "category-media-header": "مدیا مئن دسه \"$1\"",
+ "category-empty": "ای دسه الآن هیچ بلگه یا مدیا ناره",
+ "hidden-categories": "{{PLURAL:$1|دسه قائم|دسه یل قائم}}",
+ "hidden-category-category": "دسه بنی یل قائم",
+ "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دومنه داره.|ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زه $2 کل.}}",
+ "category-subcat-count-limited": "ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}.",
+ "category-article-count": "{{PLURAL:$2|ای دسه فقط بلگه یل دومنه داره .|دومن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زه$2 کل.}}",
+ "category-article-count-limited": "دومن الذکر {{PLURAL:$1|بلگه هس|$1 بلگه هسن}} د او دسه جریانی.",
+ "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دومنه داره.|دومن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} دای دسه, بیشترزه$2 کل.}}",
+ "category-file-count-limited": "دومن الذکر {{PLURAL:$1|فایل هس|$1 فایلل هسن}} د او دسه جریانی.",
+ "listingcontinuesabbrev": "دنباله",
+ "index-category": "بلگه یل ایندکس وابیده",
+ "noindex-category": "بلگه یل ایندکس نوابیده",
+ "broken-file-category": "بلگه یل وا فایلل لینک اشکسه",
+ "about": "درباره",
+ "article": "بلگه محتوا",
+ "newwindow": "(د یه پنجره دیه وا کو )",
+ "cancel": "لغو",
+ "moredotdotdot": "بیشتر...",
+ "morenotlisted": "ای نوم بلگه کامل نی",
+ "mypage": "بلگه",
+ "mytalk": "گپ",
+ "anontalk": "سی ای آدرس آی پی گپ بزه",
+ "navigation": "هدایت کردن",
+ "and": " و",
+ "qbfind": "سیل کردن",
+ "qbbrowse": "نوم بلگه",
+ "qbedit": "اصلاح",
+ "qbpageoptions": "ای بلگه",
+ "qbmyoptions": "بلگه مو",
+ "faq": "اف آی کیو \" سوالل متداول \"",
+ "faqpage": "Project:اف آی کیو \" سوالل متداول \"",
+ "actions": "عملیه یل",
+ "namespaces": "همدرنگل",
+ "variants": "انواع",
+ "navigation-heading": "منو ناو وری",
+ "errorpagetitle": "خطا",
+ "returnto": "بازگشت وه $1.",
+ "tagline": "از {{نوم جا}}",
+ "help": "هومیاری",
+ "search": "جستن",
+ "searchbutton": "جستن",
+ "go": "رو",
+ "searcharticle": "رو",
+ "history": "ویرگارل بلگه",
+ "history_short": "تاریخچه یل",
+ "updatedmarker": "بروز وابی تا موقع آخرین سیل کردن مو",
+ "printableversion": "ورژن سی چاپ بیئنی",
+ "permalink": "لینکل تا ابد",
+ "print": "چاپ",
+ "view": "نما",
+ "view-foreign": "نما مئن $1",
+ "edit": "ویرایش",
+ "edit-local": "اصلاح توضیحتل محلی",
+ "create": "درست کردن",
+ "create-local": "وندن توضیحتل محلی",
+ "editthispage": "اصلاح ای بلگه",
+ "create-this-page": "درست کو ای بلگه نه",
+ "delete": "حذف",
+ "deletethispage": "حذف کو ای بلگه نه",
+ "undeletethispage": "حذف نکو ای بلگه نه",
+ "undelete_short": "ورگردونی {{PLURAL:$1|یه اصلاح|$1 اصلاحل}}",
+ "viewdeleted_short": "نما {{PLURAL:$1|یه اصلاح حذف وابیه|$1 اصلاحل حذف وابیه}}",
+ "protect": "حفاظت کردن",
+ "protect_change": "تغییر بی",
+ "protectthispage": "ای بلگنه حفاظت کو",
+ "unprotect": "تغییر دائن حالت حفاظت",
+ "unprotectthispage": "تغییر دائن حالت حفاظت ای بلگه",
+ "newpage": "بلگه نو",
+ "talkpage": "گپ زئن ای بلگه",
+ "talkpagelinktext": "گپ",
+ "specialpage": "بلگه مخصوص",
+ "personaltools": "اوزارگل سی خوت",
+ "articlepage": "سل کردن محتوا ای بلگه",
+ "talk": "قسه",
+ "views": "سلابل",
+ "toolbox": "اوزارگه",
+ "userpage": "دیئن بلگه کارور",
+ "projectpage": "دیئن بلگه پروجه",
+ "imagepage": "دیئن بلگه فایل",
+ "mediawikipage": "دیئن بلگه پیوم",
+ "templatepage": "دیئن بلگه قالب",
+ "viewhelppage": "دیئن بلگه هومیاری",
+ "categorypage": "دیئن بلگه دسه بنی",
+ "viewtalkpage": "دیئن گپل",
+ "otherlanguages": "مئن زوونه یل دیه",
+ "redirectedfrom": "(تصحیح مجدد زه $1)",
+ "redirectpagesub": "بلگه تصحیح و هدایت زه مجدد",
+ "redirectto": "تغییر دائن مسیر وه:",
+ "lastmodifiedat": "ای بلگه اخیرا تغییر واصلاح وابیه مئنه $1, مئنه $2.",
+ "viewcount": "ای بلگه قابل دسترسی وابیه {{PLURAL:$1|یه بار|$1 مدتل}}.",
+ "protectedpage": "بلگه حفاظت وابیه",
+ "jumpto": "پریدن وه:",
+ "jumptonavigation": "هدایت کردن",
+ "jumptosearch": "جستن",
+ "view-pool-error": "وبشید ، سرور بیش زه حد بارگیری وابیه .\nکارورل زیادی ایخن ای بلگنه سل کنن.\nلطفا یه لحظه واسیت قبلیکه به خیت ای بلگنه مجددا سل کیت.\n$1",
+ "generic-pool-error": "وبشید ، سرور بیش زه حد بارگیری وابیه .\nکارورل زیادی ایخن ای منوبنه سل کنن.\nلطفا یه لحظه واسیت قبلیکه به خیت ای منوبنه مجددا سل کیت.",
+ "pool-timeout": "پایان زمون اتنظار سی قفل",
+ "pool-queuefull": "صف استخر پر هسی",
+ "pool-errorunknown": "خطا ناشناخته",
+ "pool-servererror": "شمارنده سرویس استخر ور تیه نی ($1).",
+ "aboutsite": "پروجه : درباره",
+ "aboutpage": "Project:درباره",
+ "copyright": "مطلب دومن $ 1 هس نکه خلاف هونو ذکر وابی.",
+ "copyrightpage": "{{ns:project}}:کپی رایت",
+ "currentevents": "اتفاقل جاری",
+ "currentevents-url": "Project:اتفاقات جاری",
+ "disclaimers": "انکار کننده یل",
+ "disclaimerpage": "Project:انکار کاروران",
+ "edithelp": "هومیاری سی اصلاح",
+ "mainpage": "بلگه اصلی",
+ "mainpage-description": "پیج اصلی",
+ "policy-url": "Project:خط مشی",
+ "portal": "درگاه کاروران",
+ "portal-url": "Project:درگاه کاروران",
+ "privacy": "خط مشی رازداری",
+ "privacypage": "Project:خط مشی رازداری",
+ "badaccess": "خطا دسترسی",
+ "badaccess-group0": "ایسا اجازه انجام کاری که ایخستیده ندارین",
+ "badaccess-groups": "او کاری که ایسا درخواست کردین فقط سی کارورانیه که مئنه ای گروهن {{PLURAL:$2|آن گروه|یکی زه گروه یل}}: $1.",
+ "versionrequired": "یه نسخه زه نیازمندی یل ویکی مدیا\n$1",
+ "versionrequiredtext": "یه نسخه زه ویکی مدیا($1) نیازمند ه وه استفاده زه ای بلگه\nبویین :[[مخصوص:نسخه|نسخه مخصوص]].",
+ "ok": "خووه",
+ "retrievedfrom": "بازیافت از\"$1\"",
+ "youhavenewmessages": "پیوم نو داری $1 ($2).",
+ "youhavenewmessagesfromusers": "{{PLURAL:$4|ایشا داریت}} $1 زه {{PLURAL:$3|یه کارور دیه|$3 کارورل}} ($2).",
+ "youhavenewmessagesmanyusers": "ایشا $1 زه کارورل دیه داریت ($2).",
+ "newmessageslinkplural": "{{PLURAL:$1|یه پیوم نو|999=پیومل نو}}",
+ "newmessagesdifflinkplural": "آخر {{PLURAL:$1|تغییر|999=تغییرل}}",
+ "youhavenewmessagesmulti": "ایشا پیوم نو داریت مئنه\n$1",
+ "editsection": "اصلاح",
+ "editold": "اصلاح",
+ "viewsourceold": "دیئن منبع",
+ "editlink": "اصلاح",
+ "viewsourcelink": "دیئن منبع",
+ "editsectionhint": "اصلاح یه قسمت: $1",
+ "toc": "محتوا یل",
+ "showtoc": "نمایش",
+ "hidetoc": "قائم",
+ "collapsible-collapse": "سقوط",
+ "collapsible-expand": "ببن",
+ "thisisdeleted": "دیئن یا ورگردوندن $1؟",
+ "viewdeleted": "دیئن$1؟",
+ "restorelink": " {{PLURAL:$1|یه اصلاح حذف وابیه|$1 اصلاحل حذف وابیه}}",
+ "feedlinks": "تغذیه:",
+ "feed-invalid": "اشتراک زه راه تایپ باطله",
+ "feed-unavailable": "فید پیوند ور تیه نی",
+ "site-rss-feed": "خبرخو RSS سی $1",
+ "site-atom-feed": "خبرخو Atom سی $1",
+ "page-rss-feed": "خبرخو RSS سی «$1»",
+ "page-atom-feed": "خبرخو Atom سی «$1»",
+ "red-link-title": "(بلگه وجود ناره) $1",
+ "sort-descending": "مرتب سازی وا صعودی",
+ "sort-ascending": "مرتب سازی وا صعودی",
+ "nstab-main": "پیج",
+ "nstab-user": "بلگه کارور",
+ "nstab-media": "بلگه مدیا",
+ "nstab-special": "پیجئل مخصوص",
+ "nstab-project": "بلگه پروجه",
+ "nstab-image": "فایل",
+ "nstab-mediawiki": "پیوم",
+ "nstab-template": "الگو",
+ "nstab-help": "بلگه هومیاری",
+ "nstab-category": "دسه",
+ "nosuchaction": "چنی دستوری موجود نی",
+ "nosuchspecialpage": "چنو بلگه مخصوصی نی",
+ "error": "خطا",
+ "databaseerror": "خطا دیتابیس",
+ "databaseerror-textcl": "خطا مئنه پرس و جو پایگاه داده رخ دابی.",
+ "databaseerror-query": "سل کردن:$1",
+ "databaseerror-function": "عملکرد:$1",
+ "databaseerror-error": "خطا:$1",
+ "readonly": "پایگاه داده بسته وابی",
+ "enterlockreason": "یه دلیل سی قفل کردن وارد کو ، از جمله برآورد زمونی که قفل منتشر خواهد وابی",
+ "missingarticle-rev": "(تجدید نظر#:$1)",
+ "missingarticle-diff": "(تفاوت:$1،$2)",
+ "internalerror": "خطا داخلی",
+ "internalerror_info": "خطا داخلی:$1",
+ "filecopyerror": "نیوا قایلنه کپی کی \"$1\" تا \"$2\"",
+ "filerenameerror": "نیوا نوم قایلنه تغییر بی \"$1\" به \"$2\"",
+ "filedeleteerror": "نیوا فایلنه حذف کی \"$1\"",
+ "directorycreateerror": "نیوا پوشه بسازی \"$1\"",
+ "filenotfound": "نیوا فایلنه پیداس کی \"$1\"",
+ "unexpected": "ارزش ناگهونی: \"$1\"=\"$2\"",
+ "formerror": "خطا:نیوا فرمنه ارسال کیت.",
+ "badarticleerror": "ای عمل نیوا ری ای بلگه اجرا وابی.",
+ "cannotdelete-title": "نیوا بلگنه حذف کی \"$1\"",
+ "badtitle": "عنوان بد",
+ "badtitletext": "عنوان درخواستی نامعتبر، خالی، یا عنوانی بین زوونی یا بینویکیای با پیوند نادرسته\nو ممکنه یه یا چند کاراکتر داشته بوه که مئن عنوان مربوط نوا زش استفاده کنین",
+ "viewsource": "دیئن منبع",
+ "viewsource-title": "دیئن منبع سی $1",
+ "actionthrottled": "عمل متوقف وابی",
+ "protectedpagetext": "ای بلگه سیکه اصلاح یا دیهر عملل ریش انجام نبی محافظت وابیه",
+ "viewsourcetext": "ایشا ترین بوینین وکپی کنین منبع ای بلگنه:",
+ "mycustomcssprotected": "ایشا اجازه ناریت سی اصلاح کردن ای بلگه سی اس اس",
+ "mycustomjsprotected": "ایشا اجازه ناریت سی اصلاح کردن ای بلگه جاوا اسکریپت",
+ "myprivateinfoprotected": "ایشا اجازه ناریت سی اصلاح کردن اطلاعات شصخی خوتون",
+ "mypreferencesprotected": "ایشا اجازه ناریت سی اصلاح کردن تنظیمات خوتون",
+ "ns-specialprotected": "بلگه یل مخصوص نیوا اصلاح بوان",
+ "exception-nologin": "نوایته",
+ "exception-nologin-text-manual": "لطفا $1 تا بترید به ای بلگه یا عمل دسترسی پیدا کنیت",
+ "virus-scanfailed": "اسکن انجام نبی (کد $1)",
+ "virus-unknownscanner": "آنتی ویروس ناشناخته",
+ "welcomeuser": "خش اومیت، $1!",
+ "yourname": "نوم کارور:",
+ "userlogin-yourname": "نوم کارور",
+ "userlogin-yourname-ph": "نوم خوتونه وارد بکیت",
+ "createacct-another-username-ph": "نوم کارورنه وار بکیت",
+ "yourpassword": "رمز:",
+ "userlogin-yourpassword": "رمز",
+ "userlogin-yourpassword-ph": "رمز خوتونه وارد بکیت",
+ "createacct-yourpassword-ph": "رمزنه وارد بکیت",
+ "yourpasswordagain": "مجددا رمزنه تایپ بکیت",
+ "createacct-yourpasswordagain": "تایید رمز",
+ "createacct-yourpasswordagain-ph": "رمزنه مجددا وارد بکیت",
+ "userlogin-remembermypassword": "منه تو نگه دار",
+ "userlogin-signwithsecure": "د اتصال ایمن استفاده کو",
+ "yourdomainname": "دومین کارو:",
+ "password-change-forbidden": "ایشا نیتریت مئنه ای ویکی رمزه یلنه اصلاح بکیت",
+ "login": "اویدن وه سیستم",
+ "nav-login-createaccount": "اوییدن وه سیستم / درست کردن اکانت",
+ "userlogin": "اوییدن وه سیستم / درست کردن اکانت",
+ "userloginnocreate": "اویدن وه سیستم",
+ "logout": "رهدن زه سیستم",
+ "userlogout": "رهدن زه سیستم",
+ "notloggedin": "نوایته",
+ "userlogin-noaccount": "اکانت ناریت؟",
+ "userlogin-joinproject": "ملحق شو وه {{SITENAME}}",
+ "nologin": "اکانت ناریت؟ $1.",
+ "nologinlink": "راست کردن یه حساو کاروری",
+ "createaccount": "درست کردن اکانت",
+ "gotaccount": "اکانت داریت؟ $1.",
+ "gotaccountlink": "اویدن وه سیستم",
+ "userlogin-resetlink": "مشخصه یل ورود خوتونه نونیت؟",
+ "userlogin-resetpassword-link": "رمزتونه نونیت؟",
+ "userlogin-helplink2": "هومیاری وا اوییدن وه سیستم",
+ "userlogin-createanother": "یه اکانت دیه بساز",
+ "createacct-emailrequired": "آدرس ایمیل",
+ "createacct-emailoptional": "آدرس ایمیل (واخوتونی)",
+ "createacct-email-ph": "آدرس ایمیل خوتونه وارد بکیت",
+ "createacct-another-email-ph": "آدرس ایمیلنه وارد بکیت",
+ "createacct-realname": "نوم راسکی (واخوتونی)",
+ "createaccountreason": "دلیل:",
+ "createacct-reason": "دلیل",
+ "createacct-reason-ph": "سیچه داریت یه اکانت دیه ایسازیت",
+ "createacct-captcha": "چک کردن امنیتی",
+ "createacct-imgcaptcha-ph": "ای نشتنه ک دومن سیل کی وارد کو",
+ "createacct-submit": "اکانت خوتونه بسازیت",
+ "createacct-another-submit": "یه اکانت دیه بساز",
+ "createacct-benefit-heading": "{{SITENAME}} وا کسایی مث خوتون ساخته بیه",
+ "createacct-benefit-body1": "{{PLURAL:$1|اصلاح|اصلاحل}}",
+ "createacct-benefit-body2": "{{PLURAL:$1|بلگه|بلگه یل}}",
+ "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هومیارنده|هومیارنده یل}}",
+ "badretype": "رمزنه ک وارد کیت وایک جور نیوان",
+ "userexists": "نوم کاروری ک وارد کیت الان در حال استفاده هسس\nلطفا یه نوم دیه انتخاب کیت",
+ "loginerror": "خطا ورود",
+ "createacct-error": "خطا حین ساختن اکانت",
+ "createaccounterror": "نیوا اکانتنه بسازیت: $1",
+ "noname": "ایشا یه نوم کارور معتبر مشخص نکردیته",
+ "loginsuccesstitle": "اویدن وا بخت وتوفیق وه سیستم",
+ "loginsuccess": "''' ایشا اویدن وه مئنه سایت {{SITENAME}} و عنوان \"$1\".'''",
+ "nosuchusershort": "کاروری وا ای نوم نی\"$1\".\nحروف نومنه چک کنین.",
+ "nouserspecified": "ایشا واسی یه نوم کارور مشخص کیت",
+ "login-userblocked": "ای کارور بسته وابید.اجازه ورود ناریت.",
+ "wrongpassword": "رمز وارد وابیده درست نی.\nلطفا دوباره سعی کنین.",
+ "wrongpasswordempty": "رمز وارد وابیده عقیم یامبهم بی.\nلطفا دوباره سعی کنین.",
+ "password-name-match": "ایشا واسی وا نوم کاروریت متفاوت وابی.",
+ "password-login-forbidden": "استفاده زه ای نوم کارور و رمز ممنوع وابی.",
+ "mailmypassword": "تعویض رمز",
+ "passwordremindertitle": "رمز موقتی تازه سی {{SITENAME}}",
+ "noemail": "آدرس ایمیلی ظبط نوابی سی کارور \"$1\".",
+ "noemailcreate": "ایشا واسی یه آدرس ایمیل معتبر آماده کیت.",
+ "passwordsent": "یه رمز تازه ارسال وابید وه نشانی ایمیل ثبت وابده سی \"$1\".\nلطفا بعد از دریافت آن داخل سیستم بوین.",
+ "mailerror": "خطا ارسال ایمیل: $1",
+ "emailauthenticated": "آدرس ایمی ایشا تایید وابی ری $2 مئنه $3",
+ "emailconfirmlink": "آدرس ایمیل خوتونه تایید بکیت",
+ "cannotchangeemail": "اکانت آدرسل ایمیلل نیوا تغییر وابی مئنه ای ویکی.",
+ "emaildisabled": "ای سایت نیتره ایمیل ارسا کنه.",
+ "accountcreated": "اکانت ساخته بی",
+ "createaccount-title": "اکانت سازی سی {{SITENAME}}",
+ "login-abort-generic": "ورود ایشا ناموفق وابی - سقط وابی",
+ "loginlanguagelabel": "زوون:$1",
+ "pt-login": "اویدن وه سیستم",
+ "pt-login-button": "اویدن وه سیستم",
+ "pt-createaccount": "درست کردن اکانت",
+ "pt-userlogout": "رهدن زه سیستم",
+ "changepassword": "تغییر رمز",
+ "resetpass_announce": "سی پایان ورود ، ایشا واسی یه رمز جدید سیخوت به ونی.",
+ "resetpass_header": "تغییر رمز اکانت",
+ "oldpassword": "رمز قبلی:",
+ "newpassword": "رمز نو:",
+ "retypenew": "تایپ دوباره رمز:",
+ "resetpass_submit": "وندن رمز و اوییدن وه سیستم",
+ "changepassword-success": "رمز ایشا وا موفقیت تغییر وابی",
+ "resetpass_forbidden": "رمزل نیوا تغییر کنن",
+ "resetpass-no-info": "ایشا واسی وارد بویت تا وه بلگه ای پوشه دسترسی داشته بوین.",
+ "resetpass-submit-loggedin": "تغییر رمز",
+ "resetpass-submit-cancel": "لغو",
+ "resetpass-recycled": "خواهشا رمز خوتونه مجددا وه چیکه زه ای رمز الانی تونه بنیت",
+ "resetpass-temp-password": "رمز جایگزین",
+ "resetpass-expired": "رمز ایشانه اعتبار ناره.لطفا یه رمز نو سیخوتون بونیت.",
+ "passwordreset": "تعویض رمز",
+ "bold_sample": "متن گپ نما",
+ "bold_tip": "متن گپ نما",
+ "italic_sample": "متن شکسته",
+ "italic_tip": "متن شکسته",
+ "link_sample": "عنوان لینک",
+ "link_tip": "لینک داخلی",
+ "extlink_sample": "http://www.example.com عنوان لینک",
+ "extlink_tip": "(به خاطر بسپار http:// prefix)\nلینک خارجی",
+ "headline_sample": "سرخط متن",
+ "headline_tip": "2سرخط یکسان",
+ "nowiki_sample": "متن شکل نداده یافرمت نوابیده را ایچو بنین",
+ "nowiki_tip": "زه فرمت کردن یا شکل دادن ویکی چشم پوشی کن",
+ "image_tip": "فایل محاط وابید",
+ "media_tip": "لینک فایل",
+ "sig_tip": "امضای ایسا و برچسب زمان",
+ "hr_tip": "خط افقی (کم استفاده کنین)",
+ "summary": "خلاصه:",
+ "minoredit": "ای یه اصلاح کچک وابی",
+ "watchthis": "پیگیری ای بلگه",
+ "savearticle": "بلگه ضبط بوه",
+ "showpreview": "پیشنمایش",
+ "showdiff": "نشودائن تغییرات",
+ "anoneditwarning": "<strong>هشدار:</strong> ایشا نوایته مئنه سیستم. آی پی ایشا سی عومو قابل رویت هی ار اصلاحی بکنیت. ار ایشا <strong>[$1 ورود]</strong> یا <strong>[$2 درست کردن یه حسآو]</strong>, اصلاحل ایشا به حسآو کاروری ایشا گذاشته ایوان وا منفعل حسآول دیه..",
+ "loginreqlink": "اویدن وه سیستم",
+ "newarticletext": "ایشا یه لینک وه یه بلگنه که هنی وجود نارنه دنبال کردیته.\nسی درست کردن ای بلگه،نوشتنه مئنه جعبه زیر شروع کنیت(بینیتو [$1 help page] سی اصلاعات اضافی).\nار ایشا وا خطا ایچه هیسیت، ری <strong>back</strong> button مرورگر ایشا کلیژ کیت.",
+ "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n<کلاس دهانه=\"لینکل ساده\">[{{آدرس کامل سایت:{{#مخصوص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{آدرس کامل سایت:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کو ای بلگنه]</دهانه>.",
+ "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>، ولی ایشا نیترید ای بلگنه درس بکنیت.",
+ "editing": "درحال اصلاح $1",
+ "creating": "درست کردن $1",
+ "editingsection": "درحال اصلاح $1 (قسمت)",
+ "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفاده بیه مئنه ای بلگه:",
+ "template-protected": "(تحت حمایت)",
+ "template-semiprotected": "(نیمه حمایت وابیده)",
+ "hiddencategories": "ای بلگه عضو {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :",
+ "permissionserrorstext-withaction": "ایشا اجازه ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:",
+ "moveddeleted-notice": "ای بلگه حذف وابیده.\nحذف و انتقال سیاهه ای بلگه فراهم وابیده دومن سرچشمه.",
+ "viewpagelogs": "نشودائن نمایه ها سی ای بلگه",
+ "currentrev-asof": "آخرین نسخه تا $1",
+ "revisionasof": "اصلاح $1",
+ "revision-info": "نسخه $1 توسط {{GENDER:$6|$2}}$7",
+ "previousrevision": "← اصلاح قبلی",
+ "nextrevision": "نسخه جدیدتر →",
+ "currentrevisionlink": "آخرین نسخه",
+ "cur": "فعلی",
+ "last": "قبلی",
+ "rev-delundel": "قابلیت تغییر دائن",
+ "history-title": "تاریخچه اصلاحل $1",
+ "difference-title": "تفاوت میان تجدید نطرل \"$1\"",
+ "lineno": "سطر $1:",
+ "editundo": "لغو",
+ "diff-multi-sameuser": "({{PLURAL:$1|یه نسخه متوسط|$1 نسخه یل متوسط}} توسط کارور مشابه نشو نوابیه)",
+ "searchresults": "نتیجه یل جستن",
+ "searchresults-title": "نتایج جستن سی \"$1\"",
+ "prevn": "قبلی {{PLURAL:$1|$1}}",
+ "nextn": "بعدی {{PLURAL:$1|$1}}",
+ "nextn-title": "بعدی $1 {{PLURAL:$1|نتیجه|نتیجه یل}}",
+ "shown-title": "نشو دائن $1 {{PLURAL:$1|نتیجه|نتیجه یل}} د هر بلگه",
+ "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
+ "searchmenu-new": "<strong>درست کو ای بلگنه \"[[:$1]]\" مئنه ای ویکی!</strong> {{PLURAL:$2|0=|همچنین سل کو بلگه ای که وا جستن پیداش کردیه.|همچنین سل کو نتایج جستنه.}}",
+ "searchprofile-articles": "بلگه محتوا",
+ "searchprofile-images": "چندرسانه ای",
+ "searchprofile-everything": "همه چیا",
+ "searchprofile-advanced": "پیشرفته",
+ "searchprofile-articles-tooltip": "جستن مئنه $1",
+ "searchprofile-images-tooltip": "جستن سی فایلل",
+ "searchprofile-everything-tooltip": "جستن سی محتوا(شامل بلگل گپ)",
+ "searchprofile-advanced-tooltip": "جستن مئنه همدرنگل سفارشی",
+ "search-result-size": "$1 ({{PLURAL:$2|1 کلمه|$2 کلمه یل}})",
+ "search-redirect": "(تغییر مسیر $1)",
+ "search-section": "(قسمت $1)",
+ "search-suggest": "آیا منطور ایشا ای بی:$1",
+ "searchall": "همه",
+ "search-showingresults": "{{PLURAL:$4|نتیجه <strong>$1</strong> ز <strong>$3</strong>|نتیجه یل <strong>$1 - $2</strong> ز <strong>$3</strong>}}",
+ "search-nonefound": "نتیجه ای مرتبط وا هونی که در خواست دیته نی.",
+ "mypreferences": "تنظیمات",
+ "right-writeapi": "استفاده د نوشتن به صورت API",
+ "newuserlogpage": "سیاهه درست کردن حسآو",
+ "enhancedrc-history": "سرچشمه یل",
+ "recentchanges": "تغییرل جدید",
+ "recentchanges-legend": "گزینه یل تغییرات اخیر",
+ "recentchanges-summary": "شیار تغییرات اخیر مئنه ای بلگه به ویکی .",
+ "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازه",
+ "recentchanges-label-minor": "ای یه اصلاح کچک وابی",
+ "recentchanges-label-bot": "ای اصلاح توسط یه روبات انجام وابیه",
+ "recentchanges-label-unpatrolled": "ای اصلاح هنو گشت نوابیده",
+ "recentchanges-label-plusminus": "اندازه بلگه وا ای تعداد بایت تغییر داده بیه",
+ "recentchanges-legend-heading": "'''آلشتیا ایسنی :'''",
+ "recentchanges-legend-newpage": "{{عضول انجومن:تغییرل اخیر-برچسب-بلگه نو}} (هنی سل کو [[Special:NewPages|لیست بلگل نو]])",
+ "rclistfrom": "نشودادن تغییرات نو وا شروع زه $3 $2",
+ "rcshowhideminor": "اصلاحات کوچیک $1",
+ "rcshowhideminor-show": "نشو دائن",
+ "rcshowhideminor-hide": "قائم کردن",
+ "rcshowhidebots": "$1 رباتل یا بوتل",
+ "rcshowhidebots-show": "نشو دائن",
+ "rcshowhidebots-hide": "قائم کردن",
+ "rcshowhideliu": "$1 حسآول وارد وابیده",
+ "rcshowhideliu-hide": "قائم کردن",
+ "rcshowhideanons": "$1 کاروران داخل نوابیده",
+ "rcshowhideanons-show": "نشو دائن",
+ "rcshowhideanons-hide": "قائم کردن",
+ "rcshowhidemine": "$1 اصلاحات مو",
+ "rcshowhidemine-show": "نشو دائن",
+ "rcshowhidemine-hide": "قائم کردن",
+ "rclinks": "نشودادن آخرین $1 تغییر در $2 روز اخیر؛ $3",
+ "diff": "تفاوت",
+ "hist": "گزارشت",
+ "hide": "قائم کردن",
+ "show": "نشو دائن",
+ "minoreditletter": "رز",
+ "newpageletter": "تا",
+ "boteditletter": "ر",
+ "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتل}} بعد تغییر",
+ "recentchangeslinked": "تغییرل مربوط",
+ "recentchangeslinked-toolbox": "تغییرل مربوط",
+ "recentchangeslinked-title": "تغییرهای مرتبط با $1",
+ "recentchangeslinked-summary": " ای بلگه خاص تغییرات اخیر مئنه بلگل لینک وابیده وه ای بلگنه نشو اده.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاه''' نشو داده ابون.",
+ "recentchangeslinked-page": "نوم بلگه:",
+ "recentchangeslinked-to": "نشو دائن تغییرات بلگلی که و بلگه داده بیه لینک داده شدنه به جای",
+ "upload": "بلم گیر کردن فایلل",
+ "filedesc": "خلاصه",
+ "license-header": "صدور مجوز",
+ "imgfile": "فایل",
+ "file-anchor-link": "فایل",
+ "filehist": "تاریخچه فایل",
+ "filehist-help": "رو تاریخها کلیک کنیت تا نسخه مرتبط را بینیت.",
+ "filehist-current": "جاری",
+ "filehist-datetime": "تاریخ/زمان",
+ "filehist-thumb": "کچک",
+ "filehist-thumbtext": "کچک سی نسخه از تا $1",
+ "filehist-user": "کارور",
+ "filehist-dimensions": "ابعاد",
+ "filehist-comment": "توضیح",
+ "imagelinks": "استفاده د فایل",
+ "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکل بلگه|$1 لینک بلگل}} به ای فایل:",
+ "nolinkstoimage": "بلگه یلی که وه ای فایل لینک دائنه نی.",
+ "sharedupload-desc-here": "ای فایل از $1 اومائه و شاید د پروجه یل دیه مورد استفاده وابین.\nتوضیحتل ری [$2 بلگه توضیح فایل] دومن نشو وابیه .",
+ "upload-disallowed-here": "ایشا نیترید ای فایلنه بنویسید",
+ "randompage": "پیج اتفاقی",
+ "nbytes": "$1 {{PLURAL:$1|بایت|بایتل}}",
+ "nmembers": "$1 {{PLURAL:$1|عضو|اعضول}}",
+ "newpages": "پیجئل جدید",
+ "pager-older-n": "{{PLURAL:$1|قدیمی تر 1|قدیمی تر $1}}",
+ "booksources": "منوبع کتآو",
+ "booksources-search-legend": "جستن سی منوبع کتآو",
+ "booksources-search": "جستن",
+ "log": "نمایه ها",
+ "allarticles": "همه بلگل",
+ "allpagessubmit": "رو",
+ "categories": "دسه یل",
+ "mywatchlist": "فهرست پیگیری یل",
+ "watch": "پیگیری",
+ "dellogpage": "نمایه حذف",
+ "rollbacklink": "عقب گرد",
+ "rollbacklinkcount": "ورگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}",
+ "protectlogpage": "نمایه حفاظت وحمایت",
+ "namespace": "همدرنگل:",
+ "invert": "انتخاب برعکس بوه",
+ "tooltip-invert": "انتخاب کو ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشو انتخاب وابین(و همدرنگل مرتبط ار انتخاب وابین)",
+ "namespace_association": "همدرنگل مرتبط",
+ "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا موضوع همدرنگ مرتبط وا همدرنگل انتخاب وابینه قرار بنی.",
+ "blanknamespace": "(اصلی)",
+ "contributions": "{{GENDER:$1|کارور}} سهمل",
+ "mycontris": "مشارکتل",
+ "month": "در این ماه (و قبل زه آن):",
+ "year": "در ای سال (وقبل زه آن):",
+ "whatlinkshere": "لینک یل ای بلگه",
+ "whatlinkshere-title": "بلگل که لینک دائنه به \"$1\"",
+ "whatlinkshere-page": "بلگه",
+ "linkshere": "لینک بلگل ذیل الذکر به '''[[:$1]]''':",
+ "isredirect": "بلگه تغییر مسیر",
+ "istemplate": "استفاده وابیده داخل بلگه",
+ "isimage": "لینک فایل",
+ "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مورد قبلی$1}}",
+ "whatlinkshere-next": "{{PLURAL:$1|بعدی |مورد بعدی $1}}",
+ "whatlinkshere-links": "← لینکل",
+ "whatlinkshere-hideredirs": "$1 تغییرل مسیر",
+ "whatlinkshere-hidetrans": "$1 تراگنجایش",
+ "whatlinkshere-hidelinks": "$1 لینکل",
+ "whatlinkshere-filters": "فیلترل",
+ "blocklink": "بسه وابو",
+ "contribslink": "شراکتل",
+ "movelogpage": "نمایه جابجایی",
+ "export": "بلگل صادره یل",
+ "thumbnail-more": "گپ کردن",
+ "tooltip-pt-userpage": "حسآو کاروری ایشا",
+ "tooltip-pt-mytalk": "بلگه گپ ایشا",
+ "tooltip-pt-preferences": "اولویتل مو",
+ "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرات هونونه دنبال اکنین",
+ "tooltip-pt-mycontris": "لیست مشارکتل ایشا",
+ "tooltip-pt-login": "توصیه وابوه که وه سیستم داخل بوین. اما اجباری نیسس",
+ "tooltip-pt-logout": "رهدن زه سیستم",
+ "tooltip-pt-createaccount": "توصیه وابوه که حساب کاروری درست بکنیت یا وارد بوین. اما اجباری نیسس",
+ "tooltip-ca-talk": "صحبت د بلگه محتوا",
+ "tooltip-ca-edit": "ایسا ترین ای پیجنه ویرایش کنین.لطفا قبل ویرایش ای پیج از دکمه پیش نمایش استفاده کنین",
+ "tooltip-ca-addsection": "آغاز کردن یه قسمت نو",
+ "tooltip-ca-viewsource": "ای بلگه تحت حمایته ایساترین منبعسه بوینین",
+ "tooltip-ca-history": "ویرگار",
+ "tooltip-ca-move": "جابجاکردن ای بلگه",
+ "tooltip-ca-watch": "اضاف کردن ای بلگه به لیست پیگیری یلت",
+ "tooltip-search": "جستن {{نوم جا}}",
+ "tooltip-search-go": "رو مئنه بلگه ای وا ای نوم ار هیسس",
+ "tooltip-search-fulltext": "جستن پیجئل هنه سی ای نشته",
+ "tooltip-p-logo": "رهدن د پیج اصلی",
+ "tooltip-n-mainpage": "رو د پیج اصلی",
+ "tooltip-n-mainpage-description": "رهدن د پیج اصلی",
+ "tooltip-n-portal": "درباره پروجه ، کارینه ک تری کنی ، ینه جا سی جستن چیزل",
+ "tooltip-n-currentevents": "پیداکردن اطلاعات زمینه یاسابقه اطلاعات در اتفاقات جاری",
+ "tooltip-n-recentchanges": "سیائل تغییرل آخری مئن ای ویکی",
+ "tooltip-n-randompage": "سوار کردن یه پیج اتفاقی",
+ "tooltip-n-help": "ینه جا سی فهمیدن",
+ "tooltip-t-whatlinkshere": "فهرست همه بلگه یل ویکی که ایچو لینک دارن",
+ "tooltip-t-recentchangeslinked": "تغییرل آخر مئن پیجئل ک لینک دانه و ای پیج",
+ "tooltip-feed-atom": "تغذیه کوچیک ترین جزء ای بلگه",
+ "tooltip-t-contributions": "یه لیس ز مشارکت کننده یل و مقاله دهنده یل ای بلگه",
+ "tooltip-t-upload": "بلم گیر کردن فایلل",
+ "tooltip-t-specialpages": "ورقل ویجه",
+ "tooltip-t-print": "ورژن چاپ بینل ای پیج",
+ "tooltip-t-permalink": "لینکل تا ابد وه ای ورژن ای پیج",
+ "tooltip-ca-nstab-main": "سل کردن محتوا پیج",
+ "tooltip-ca-nstab-user": "دیئن بلگه کارور",
+ "tooltip-ca-nstab-special": "ای بلگه مخصوصه وایسا نترین خود ای بلگنه اصلاح کنین",
+ "tooltip-ca-nstab-project": "دیئن بلگه پروجه",
+ "tooltip-ca-nstab-image": "دیئن بلگه فایل",
+ "tooltip-ca-nstab-template": "دیئن قالب",
+ "tooltip-ca-nstab-category": "دیئن بلگه دسه بنی",
+ "tooltip-save": "ضبط کردن تغییراتت",
+ "tooltip-preview": " دیئن تغییرات ، لطفا قبل ضبط کردن د ای خدمت استفاده کنیت!",
+ "tooltip-diff": "دیدن تغییراتی که ایسا من ای متن انجام دادینه",
+ "tooltip-rollback": "\"اعاده\" برگرداندن به وضع اولیه سی ای بلگه که سی مشارکت آخر اصلاح وابیده وا یک کلیک",
+ "tooltip-undo": "\"لغو\"ورگشت ای اصلاح و وا ویدن فرم اصلاح مئنه پیش نمایش.اجازه ایده که یه دلیل وه خلاصه اضافه بکنی.",
+ "tooltip-summary": "یه خلاصه کوچکی بنویس",
+ "simpleantispam-label": "انتخاب آنتی-اسپم\nپر <strong>نکنید</strong> اینه مئن!",
+ "pageinfo-toolboxlink": "اطلاعات بلگه",
+ "previousdiff": "← اصلاح قدیمی",
+ "nextdiff": "اصلاح جدیدتر→",
+ "file-info-size": "$1 × $2 پیکسل, اندازه فایل: $3, MIME نوع: $4",
+ "file-nohires": "قابلیت تفکیک بالاتری در دسترس نی.",
+ "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازه فایل: $3",
+ "show-big-image": "اندازه اصلی",
+ "show-big-image-preview": "اندازه ای پیش نمایش:$1.",
+ "show-big-image-other": "دیه {{PLURAL:$2|تفکیک پذیری|تفکیک پذیری یل}}: $1.",
+ "show-big-image-size": "$1 × $2 پیکسلل",
+ "metadata": "فراداده",
+ "metadata-help": " ای فایل دارای اطلاعات اضافهای هی که احتمالاً با دوربین دیجیتالی یا پویشگری که سی ایجاد یا دیجیتالیکردن هو به کار رهده اضاف وابیده . ایر فایل زه وضعیت اولیه اس تغییر داده وابیده بوه ممکنه همه توضیحات موجود اطلاعات عکس را منعکس نکنه",
+ "metadata-fields": "زمینه یل عسک فراداده که مئنه ای پیوم لیس وابینه ، قرار وابی گرتن ری بلگه نومایش عسک وقتی که جدول فراداده فروریخت.\nبقیه قائم میشن به صورت پیش فرض.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+ "exif-orientation": "گرایش",
+ "exif-xresolution": "تفکیک پذیری افقی",
+ "exif-yresolution": "تفکیک پذیری عمودی",
+ "exif-datetime": "تغییرات تاریخ و زمان فایل",
+ "exif-make": "کمپانی سازنده دوربین",
+ "exif-model": "مدل دوربین",
+ "exif-software": "نرم افزار مورد استفاده",
+ "exif-exifversion": "نسخه Exif",
+ "exif-colorspace": "فضای رنگ",
+ "exif-datetimeoriginal": "تاریخ و زمان تولید داده یل",
+ "exif-datetimedigitized": "تاریخ و زمان دیجیتالی وابیدن",
+ "exif-orientation-1": "عادی",
+ "namespacesall": "همه",
+ "monthsall": "همه",
+ "semicolon-separator": "؛ ",
+ "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|گپ]])",
+ "specialpages": "پیجئل مخصوص",
+ "tag-filter": "[[Special:Tags|برچسب]] فیلتر:",
+ "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|برچسب|برچسبل}}]]: $2)",
+ "logentry-delete-delete": "$1 {{GENDER:$2|حذف وابیده}} بلگه $3",
+ "logentry-move-move": "$1 {{GENDER:$2|انتقال داده بیه}} بلگه $3 به $4",
+ "logentry-newusers-create": "حسآو کارور $1 وابیه {{GENDER:$2|درست }}",
+ "logentry-upload-upload": "$1 {{GENDER:$2|بارگذاری وابیده}} $3",
+ "searchsuggest-search": "جستن"
+}
"Wisdom",
"Zorigt",
"לערי ריינהארט",
- "아라"
+ "아라",
+ "Sembuk"
]
},
"tog-underline": "Линкүүдийн доогуур зураас зур:",
"tooltip-pt-mycontris": "Таны оруулсан хувь нэмрийн жагсаалт",
"tooltip-pt-login": "Заавал хийх ёстой зүйл биш боловч таныг нэвтрэхийг зөвлөж байна.",
"tooltip-pt-logout": "Гарах",
+ "tooltip-pt-createaccount": "Заавал шаарлагатай биш боловч та бүртгүүлж, нэвтэрч орно уу.",
"tooltip-ca-talk": "Хуудсыг зөвшин хэлэлцэх",
"tooltip-ca-edit": "Та энэ хуудсыг засч янзалж болно. Хадгалахаасаа өмнө урьдчилан харах товчийг дардаг юм шүү.",
"tooltip-ca-addsection": "Шинэ сэдвээр ярьж эхлэх",
"tog-watchdefault": "Legg til sider og filer jeg endrer på i min overvåkingsliste",
"tog-watchmoves": "Legg til sider og filer jeg flytter til min overvåkingsliste",
"tog-watchdeletion": "Legg til sider og filer jeg sletter i min overvåkingsliste",
- "tog-watchrollback": "Legg til sider jeg har utført tilbakestilling på i min overvåkningsliste",
+ "tog-watchrollback": "Legg til sider hvor jeg har utført tilbakestilling i min overvåkningsliste",
"tog-minordefault": "Merk i utgangspunktet alle redigeringer som mindre",
"tog-previewontop": "Vis forhåndsvisningen over redigeringsboksen",
"tog-previewonfirst": "Vis forhåndsvisning når du begynner å redigere",
"tog-minordefault": "सबै सम्पादनहरूलाई पूर्वनिर्धारित रुपमा सामान्य चिनो लगाउने",
"tog-previewontop": "सम्पादन सन्दुक अघि पूर्वरुप देखाउने",
"tog-previewonfirst": "पहिलो सम्पादनमा पूर्वरुप देखाउने",
- "tog-enotifwatchlistpages": "मà¥\87रà¥\8b निà¤\97रानà¥\80 सà¥\82à¤\9aà¥\80मा रहà¥\87à¤\95ा पà¥\83षà¥\8dठà¤\85थवा फाà¤\87लहरà¥\81 परिवर्तन भएपछी मलाई ई-मेल गरियोस्",
+ "tog-enotifwatchlistpages": "मà¥\87रà¥\8b निà¤\97रानà¥\80 सà¥\82à¤\9aà¥\80मा रहà¥\87à¤\95ा पà¥\83षà¥\8dठà¤\85थवा फाà¤\87लहरà¥\82 परिवर्तन भएपछी मलाई ई-मेल गरियोस्",
"tog-enotifusertalkpages": "मेरो प्रयोगकर्ता वार्ता पृष्ठ परिवर्तन भएपछी मलाई ई-मेल गर्ने",
"tog-enotifminoredits": "पृष्ठहरू र फाइलहरूमा सामान्य सम्पादन भएमा पनि मलाई ई-मेल गर्ने",
"tog-enotifrevealaddr": "जानकारी इ-मेलहरूमा मेरो इ-मेल खुलाउने",
"category-subcat-count-limited": "यो श्रेणीमा निम्न {{PLURAL:$1|उपश्रेणी|$1 उपश्रेणीहरू}} छन् ।",
"category-article-count": "{{PLURAL:$2|यो श्रेणीमा एक मात्र पृष्ठरहेको छ।|कुल $2 मध्ये यो श्रेणीमा {{PLURAL:$1|पृष्ठ|$1 पृष्ठहरू}} रहेका छन् । }}",
"category-article-count-limited": "निम्न {{PLURAL:$1|पृष्ठ|$1 पृष्ठहरू}} यस श्रेणीमा रहेको ।",
- "category-file-count": "{{PLURAL:$2|यà¥\8b शà¥\8dरà¥\87णà¥\80मा निमà¥\8dन फाà¤\87ल मातà¥\8dर à¤\9b ।|निमà¥\8dन शà¥\8dरà¥\87णà¥\80मा {{PLURAL:$1|फाà¤\87ल|$1 फाà¤\87लहरà¥\81}} , कुल $2 मध्ये रहेको ।}}",
- "category-file-count-limited": "निमà¥\8dन {{PLURAL:$1|फाà¤\87ल|$1 फाà¤\87लहरà¥\81}} यस श्रेणीमा रहेको ।",
+ "category-file-count": "{{PLURAL:$2|यà¥\8b शà¥\8dरà¥\87णà¥\80मा निमà¥\8dन फाà¤\87ल मातà¥\8dर à¤\9b ।|निमà¥\8dन शà¥\8dरà¥\87णà¥\80मा {{PLURAL:$1|फाà¤\87ल|$1 फाà¤\87लहरà¥\82}} , कुल $2 मध्ये रहेको ।}}",
+ "category-file-count-limited": "निमà¥\8dन {{PLURAL:$1|फाà¤\87ल|$1 फाà¤\87लहरà¥\82}} यस श्रेणीमा रहेको ।",
"listingcontinuesabbrev": "निरन्तरता...",
"index-category": "क्रमाङ्कित पृष्ठहरू",
"noindex-category": "क्रमाङ्कन नगरिएका पृष्ठहरू",
"newarticle": "(नयाँ)",
"newarticletext": "तपाईँले अहिले सम्म नभएको पृष्ठको लिंङ्क पहिल्याउनु भएको छ।\nयो पृष्ठ निर्माण गर्न तलको कोष्ठमा टाइप गर्नुहोस् ।(थप जानकारीको लागि [$1 help page] हेर्नुहोस् )।\nयहाँ त्यत्तिकै आइपुग्नु भएको हो भने , ब्राउजरको '''back''' बटन थिच्नुहोस ।",
"anontalkpagetext": "----''यो वार्तालाप पृष्ठ अज्ञात प्रयोगकर्ताको हो जसले अहिलेसम्म खाता बनाएकै छैन, अथवा जसले यस पृष्ठको उपयोग गर्दैन।\nयस कारण हामीले उसलाई उसको आइ पी (IP) ठेगानाले चिन्न सक्छौं। \nयस्तो आइ पी (IP) ठेगाना धेरै प्रयोगकर्ताहरूको साझा हुनसक्छ।\nयदि तपाईं अज्ञात प्रयोगकर्ता हुनुहुन्छ र तपाईंमाथि अचाहिँदो टिप्पणी भएको अनुभव गर्नुहुन्छ भने भविष्यमा अन्य अज्ञात प्रयोगकर्तासितको भ्रमबाट बाँच्न कृपया [[Special:UserLogin/signup|खाता खोल्नुहोस्]] अथवा [[Special:UserLogin|प्रवेश गर्नुहोस्]] ''",
- "noarticletext": "यस लà¥\87à¤\96मा à¤\85हिलà¥\87 à¤\95à¥\87हि पनि पाठà¤\9bà¥\88न ।\nतपाà¤\88लà¥\87 à¤\85नà¥\8dय पà¥\83षà¥\8dठमा [[Special:Search/{{PAGENAME}}|यस पà¥\83षà¥\8dठà¤\95à¥\8b शà¥\80रà¥\8dषà¤\95à¤\95à¥\8b लाà¤\97ि à¤\96à¥\8bà¤\9c]] à¤\97रà¥\8dन सà¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पà¥\83षà¥\8dठसà¤\82बà¤\82धित ढडà¥\8dडामा à¤\96à¥\8bà¤\9c],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} यसà¥\88 पà¥\83षà¥\8dठलाà¤\88 सà¤\82पादन गर्ने]</span>.",
+ "noarticletext": "यस लà¥\87à¤\96मा à¤\85हिलà¥\87 à¤\95à¥\87हि पनि पाठà¤\9bà¥\88न ।\nतपाà¤\88à¤\82लà¥\87 à¤\85नà¥\8dय पà¥\83षà¥\8dठमा [[Special:Search/{{PAGENAME}}|यस पà¥\83षà¥\8dठà¤\95à¥\8b शà¥\80रà¥\8dषà¤\95à¤\95à¥\8b लाà¤\97ि à¤\96à¥\8bà¤\9c]] à¤\97रà¥\8dन सà¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पà¥\83षà¥\8dठसमà¥\8dबनà¥\8dधित ढडà¥\8dडामा à¤\96à¥\8bà¤\9c],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} यसà¥\88 पà¥\83षà¥\8dठलाà¤\88 समà¥\8dपादन गर्ने]</span>.",
"noarticletext-nopermission": "यस लेखमा अहिले कुनै पनि पाठ छैन ।\nतपाईंले अन्य पृष्ठमा [[Special:Search/{{PAGENAME}}|यस पृष्ठको शीर्षकको लागि खोज]] गर्न सक्नुहुन्छ,\nअथवा <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|पृष्ठ={{FULLPAGENAMEE}}}} सम्बन्धित लगहरू खोज्न सक्नुहुनेछ ]</span> तर तपाईंलाई नयाँ पृष्ठ बनाउने अधिकार छैन।",
"missing-revision": "\"{{FULLPAGENAME}}\" पृष्ठको अवतरण #$1 रहेको छैन।\n\nसामान्य रूपमा यसो एउटा हटाइएको पृष्ठको पुरानो लिङ्कमा क्लिक गर्दा हुन्छ।\nअधिक जानकारीको लागि तपाईं [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाएको लग] हेर्न सक्नुहुन्छ।",
"userpage-userdoesnotexist": "प्रयोगकर्ताको खाता \"<nowiki>$1</nowiki>\" दर्ता गरिएको छैन ।\nतपाईँले पृष्ठ निर्माण/सम्पादन गर्न चाहनु भएको भए जाँच गर्नुहोस् ।",
"searchprofile-everything": "सब थोक",
"searchprofile-advanced": "उन्नत",
"searchprofile-articles-tooltip": "$1 मा खोज्ने",
- "searchprofile-images-tooltip": "फाà¤\87लहरà¥\81 खोज्ने",
+ "searchprofile-images-tooltip": "फाà¤\87लहरà¥\82 खोज्ने",
"searchprofile-everything-tooltip": "सबै सामग्री खोज्ने (वार्तालाप समेत )",
"searchprofile-advanced-tooltip": "अनुकुल नेमस्पेसमा खोज्ने",
"search-result-size": "$1 ({{PLURAL:$2|1 शब्द|$2 शब्दहरू}})",
"right-upload": "फाइलहरू उर्ध्वभरण गर्ने",
"right-reupload": "रहेका फाइललाई अधिलेखन गर्ने",
"right-reupload-own": "आफैले अपलोड गर्नुभएको रहिआएको फाइल अधिलेखन गर्ने",
- "right-reupload-shared": "साà¤\9dा मिडिया à¤à¤£à¥\8dडारमा सà¥\8dथानियरà¥\81पमा फाà¤\87लहरà¥\81 अधिक्रमण गर्ने",
+ "right-reupload-shared": "साà¤\9dा मिडिया à¤à¤£à¥\8dडारमा सà¥\8dथानियरà¥\81पमा फाà¤\87लहरà¥\82 अधिक्रमण गर्ने",
"right-upload_by_url": "URL बाट फाइल उर्ध्वभरण गर्ने",
"right-purge": "साइटको क्याश( cache) निश्चित नगरिकनै पर्ज(Purge) गर्ने",
"right-autoconfirmed": "आइपी दर सीमाले असर नपार्ने",
"right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" अनुरूप सुरक्षित गरिएको पृष्ठहरूलाई सम्पादन गर्नुहोस्",
"right-editcontentmodel": "पृष्ठको सामग्री नमुना सम्पादन",
"right-editinterface": "प्रयोगकर्ता अन्तरमोहडा सम्पादन गर्ने",
- "right-editusercssjs": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\95à¥\8b CSS र JS फाà¤\87लहरà¥\81 सम्पादन गर्ने",
- "right-editusercss": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\95à¥\8b CSS फाà¤\87लहरà¥\81 सम्पादन गर्ने",
+ "right-editusercssjs": "à¤\85रà¥\81 पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\95à¥\8b CSS र JS फाà¤\87लहरà¥\82 सम्पादन गर्ने",
+ "right-editusercss": "à¤\85रà¥\81 पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\95à¥\8b CSS फाà¤\87लहरà¥\82 सम्पादन गर्ने",
"right-edituserjs": "अरु प्रयोकर्ताको जाभास्क्रिप्ट फाइलहरू सम्पादन गर्ने",
"right-editmyusercss": "तपाईँको आफ्नो CSS फाइलहरू सम्पादन गर्नुहोस्",
"right-editmyuserjs": "तपाईँको आफ्नो जाभा स्क्रिप्ट फाइलहरू सम्पादन गर्ने",
"recentchanges-label-unpatrolled": "यो सम्पादन अहिले सम्म गस्ती गरिएको छैन",
"recentchanges-label-plusminus": "यति बाइटहरू संख्याले पृष्ठको आकार परिवर्तन भएको छ",
"recentchanges-legend-heading": "'''आदर्श वाक्य:'''",
- "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|list of new pages]] यो पनि हेर्नुहोस्)",
+ "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नयाँ पृष्ठहरूको सूची]] यो पनि हेर्नुहोस्)",
"recentchanges-legend-plusminus": "(''±१२३'')",
"rcnotefrom": "तल <strong>$2</strong> देखि (<strong>$1</strong> सम्म) {{PLURAL:$5|भएका परिवर्तनहरू देखाइएको छ|भएका परिवर्तनहरू देखाइन्छ}}।",
"rclistfrom": "$3 $2 देखिका नयाँ परिवर्तनहरू देखाउनु",
"upload_directory_missing": "उर्ध्वभरण डाइरेक्टरी ($1) हराइरहेको छ र वेवसर्भरले नयाँ डाइरेक्टरी निर्माणगर्न असमर्थ भयो ।",
"upload_directory_read_only": "उर्ध्व भरण डाइरेक्टरी ($1) वेवसर्भर द्वारा लेख्य छैन ।",
"uploaderror": "उर्ध्वभरण त्रुटि",
- "upload-recreate-warning": "'''à¤\9aà¥\87तावनà¥\80: तà¥\8dयस नाममा रहà¥\87à¤\95ा फाà¤\87लहरà¥\81 सारिà¤\8fà¤\95à¥\8b या हà¤\9fाà¤\87à¤\8fà¤\95à¥\8b à¤\9b।'''\n\nयस पà¥\83षà¥\8dठà¤\95à¥\8b सारिà¤\8fà¤\95à¥\8b र हà¤\9fाà¤\87à¤\8fà¤\95à¥\8b लà¤\97 तपाà¤\88को सहजताको लागि दिइएको छ।",
+ "upload-recreate-warning": "'''à¤\9aà¥\87तावनà¥\80: तà¥\8dयस नाममा रहà¥\87à¤\95ा फाà¤\87लहरà¥\82 सारिà¤\8fà¤\95à¥\8b या हà¤\9fाà¤\87à¤\8fà¤\95à¥\8b à¤\9b।'''\n\nयस पà¥\83षà¥\8dठà¤\95à¥\8b सारिà¤\8fà¤\95à¥\8b र हà¤\9fाà¤\87à¤\8fà¤\95à¥\8b लà¤\97 तपाà¤\88à¤\82को सहजताको लागि दिइएको छ।",
"uploadtext": "फाइल अपलोड गर्न निम्न फारम प्रयोग गर्नुहोस्।\nहेर्नुहोस्- पहिला अपलोड गरिएका [[Special:FileList|फाइलहरूको सूची]] , पुनः अपलोड गरिएका [[Special:Log/upload|अपलोड लग]]मा, मेटिएका फाइलहरू [[Special:Log/delete|मेटिएको लग]]मा।\n\nपृष्ठमा फाइल संलग्न गर्न तल दिएका फारमहरूमध्ये एउटामा लिङ्क गराउनुहोस्:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''पूर्ण आकारको फाइल प्रयोग गर्न\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 पिक्सलको देब्रेपट्टि मार्जिन गरेर फाइलको बर्णनसहित प्रयोग गर्न\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' फाइल नदेखाई सिंधै फाइलसित लिङ्क गरी प्रयोग गर्न",
"upload-permitted": "अनुमति पाएका फाइल {{PLURAL:$2|प्रकार|प्रकारहरू}}:$1।",
"upload-preferred": "चाहिएका पाएका फाइल {{PLURAL:$2|प्रकार|प्रकारहरू}}:$1।",
"unknown-error": "एउटा अज्ञात त्रुटि भयो।",
"tmp-create-error": "अस्थायी फाइल सृजना गर्न सकिएन।",
"tmp-write-error": "अस्थायी फाइल लेख्दै गर्दा त्रुटि।",
- "large-file": "यà¥\8b सिफारिस à¤\97रिनà¥\8dà¤\9b à¤\95ि फाà¤\87लहरà¥\81 $1 भन्दा ठूला हुनु हुँदैन;\nयो फाइल $2 छ।",
+ "large-file": "यà¥\8b सिफारिस à¤\97रिनà¥\8dà¤\9b à¤\95ि फाà¤\87लहरà¥\82 $1 भन्दा ठूला हुनु हुँदैन;\nयो फाइल $2 छ।",
"largefileserver": "उर्ध्वभरण गरिएको फाइल सर्भरमा निर्धारित सीमा भन्दा ठूलो छ।",
"emptyfile": "तपाईले उर्ध्वभरण गर्नुभएको फाइल रित्तो छ।\nयो फाइलनाम गलत राखिएको कारणले भएको हुनसक्छ\nयो फाइल साच्चै उर्ध्वभरण गर्नेकुरामा निश्चित हुनुहोस् ।",
"windows-nonascii-filename": "विशेष वर्ण सहितका फाइलनामहरु यस विकिद्वारा समर्थित छैनन् ।",
"uploadstash": "उर्ध्वभरण स्टाश",
"uploadstash-summary": "यो पृष्ठ ती फाइलहरूलाई पहुँच प्रदान गर्छ जुन अपलोड गरिएको छ (वा अपलोड प्रक्रियामा रहेको छ) तर विकिमा अहिले पनि प्रकासित गरिएको छैन। यो फाइलहरू अपलोड गरेको प्रयोगकर्ता वाहेक कसैको लागि पनि उपलब्ध छैन।",
"uploadstash-clear": "स्टाश गरिएका फाइल हटाउने",
- "uploadstash-nofiles": "तपाà¤\88à¤\95ा à¤\95à¥\81नà¥\88 पनि सà¥\8dà¤\9fाश à¤\97रिà¤\8fà¤\95ा फाà¤\87लहरà¥\81 छैनन् ।",
+ "uploadstash-nofiles": "तपाà¤\88à¤\82à¤\95ा à¤\95à¥\81नà¥\88 पनि सà¥\8dà¤\9fाश à¤\97रिà¤\8fà¤\95ा फाà¤\87लहरà¥\82 छैनन् ।",
"uploadstash-badtoken": "दिइएको कार्य असफलभयो , तपाईको सम्पादन अधिकार समाप्त भयो । पुन: प्रयास गर्नुहोस् ।",
"uploadstash-errclear": "फाइल हटाउने कार्य असफल भयो ।",
- "uploadstash-refresh": "फाà¤\87लहरà¥\81à¤\95à¥\8b सà¥\81à¤\9aà¥\80 ताà¤\9cा पर्ने",
+ "uploadstash-refresh": "फाà¤\87लहरà¥\82à¤\95à¥\8b सà¥\82à¤\9aà¥\80 ताà¤\9cा à¤\97र्ने",
"invalid-chunk-offset": "अमान्य चंक अफसेट",
"img-auth-accessdenied": "पहुँच अस्वीकार",
"img-auth-nopathinfo": "PATH_INFO छैन। तपाईंको सर्भरले यो जानकारी पठाउन सेट गरिएको छैन। यो सिजिआइ-आधारित हुन् सक्छ र img_auth लाई स्वीकार गर्दैन। https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization हेर्नुहोस।",
"upload_source_url": "(तपाईंद्वारा छानिएको फाइल एक मान्य, सार्वजनिक रूपले उपलब्ध युआरयलबाट)",
"upload_source_file": "(तपाईँले आफ्नो कम्प्युटरबाट छानेको फाइल)",
"listfiles-delete": "मेट्ने",
- "listfiles-summary": "यस विशà¥\87ष पà¥\83षà¥\8dठलà¥\87 à¤\89रà¥\8dधà¥\8dवà¤à¤°à¤£ à¤\97रिà¤\95ा सबà¥\88 फाà¤\87लहरà¥\81 दà¥\87à¤\96ाà¤\89à¤\81à¤\9b।",
+ "listfiles-summary": "यस विशà¥\87ष पà¥\83षà¥\8dठलà¥\87 à¤\89रà¥\8dधà¥\8dवà¤à¤°à¤£ à¤\97रिà¤\95ा सबà¥\88 फाà¤\87लहरà¥\82 दà¥\87à¤\96ाà¤\89à¤\81à¤\9b ।",
"listfiles_search_for": "मिडिया नामको लागि खोज्नुहोस:",
"listfiles-userdoesnotexist": "प्रयोगकर्ता खाता \"$1\" दर्ता गरिएको छैन।",
"imgfile": "फाइल",
"filedelete-reason-otherlist": "अरु कारण",
"filedelete-reason-dropdown": "*मेट्नुका सामान्य कारणहरु\n** कपी राइट उल्लघन\n** सारिएको फाइल",
"filedelete-edit-reasonlist": "मेट्नका कारण संपादन गर्नुहोस्।",
- "filedelete-maintenance": "रà¤\96रà¤\96ाव à¤\9aलिरहà¥\87à¤\95à¥\8b हà¥\81à¤\81दा à¤\85सà¥\8dथायà¥\80 रà¥\81पमा फाà¤\87लहरà¥\81 मेटाउने र मेटाइएकोलाई पुनर्बहाली गर्न निष्क्रिय गरिएकोछ।",
+ "filedelete-maintenance": "रà¤\96रà¤\96ाव à¤\9aलिरहà¥\87à¤\95à¥\8b हà¥\81à¤\81दा à¤\85सà¥\8dथायà¥\80 रà¥\81पमा फाà¤\87लहरà¥\82 मेटाउने र मेटाइएकोलाई पुनर्बहाली गर्न निष्क्रिय गरिएकोछ।",
"filedelete-maintenance-title": "फाइल मेट्न सकिएन",
"mimesearch": "MIME खोज",
- "mimesearch-summary": "MIME-पà¥\8dरà¤\95ार à¤\85नà¥\81सार फाà¤\87लहरà¥\81 खोज्न यस पृष्ठको प्रयोग गर्न सकिन्छ।\nइनपुट: फाइलको प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>।",
+ "mimesearch-summary": "MIME-पà¥\8dरà¤\95ार à¤\85नà¥\81सार फाà¤\87लहरà¥\82 खोज्न यस पृष्ठको प्रयोग गर्न सकिन्छ।\nइनपुट: फाइलको प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>।",
"mimetype": "MIME प्रकार:",
"download": "डाउनलोड",
"unwatchedpages": "ध्यान नदिइएका पृष्ठहरू",
"undeleteinvert": " चयन उल्ट्याउने",
"undeletecomment": "कारण :",
"undeletedrevisions": "{{PLURAL:$1|एउटा संशोधन|$1 संशोधनहरु}} पुनर्स्थापित गरियो",
- "undeletedrevisions-files": "{{PLURAL:$1|à¤\8fà¤\89à¤\9fा सà¤\82शà¥\8bधन|$1 सà¤\82शà¥\8bधनहरà¥\81}} र {{PLURAL:$2|à¤\8fà¤\89à¤\9fा फाà¤\87ल|$2 फाà¤\87लहरà¥\81}} पुनर्स्थापित गरियो",
+ "undeletedrevisions-files": "{{PLURAL:$1|à¤\8fà¤\89à¤\9fा सà¤\82शà¥\8bधन|$1 सà¤\82शà¥\8bधनहरà¥\82}} र {{PLURAL:$2|à¤\8fà¤\89à¤\9fा फाà¤\87ल|$2 फाà¤\87लहरà¥\82}} पुनर्स्थापित गरियो",
"undeletedfiles": "{{PLURAL:$1|१ फाइल|$1 फाइलहरू }} पूर्वस्थितिमा ल्याइयो",
"cannotundelete": "मेटाएको रद्द गर्ने काम असफल भयो:\n$1",
"undeletedpage": "'''$1लाई पूर्वावस्थामा ल्याइयो'''\nभर्खरै मेटाइएको रिकर्डहरु र पुनर्स्थापनाहरु हेर्न [[Special:Log/delete|मेटाइएको लग]]मा जानुहोस्।",
"file-info-png-frames": "$1 {{PLURAL:$1|फ्रेम|फ्रेमहरु}}",
"file-no-thumb-animation": "<strong>टिप्पणी: प्राविधिक सीमाको कारण, यस फाइलको थम्बनेल एनिमेटेड गर्न सकिदैन।</strong>",
"file-no-thumb-animation-gif": "<strong>सूचना:प्राविधिक समस्याहरूको कारण यस फाइल जस्तै अधिक रिजोल्युसन जीआइयफ चित्रहरूको थम्बनेल ऐनिमेटेड हुँदैन।</strong>",
- "newimages": "नयाà¤\81 फाà¤\87लहरà¥\81को ग्यालरी",
+ "newimages": "नयाà¤\81 फाà¤\87लहरà¥\82को ग्यालरी",
"imagelisttext": " '''$1''' {{PLURAL:$1|फाइल|फाइलहरू}} को निम्न सूची ,क्रमवद्ध $2.",
- "newimages-summary": "यस विशà¥\87ष पà¥\83षà¥\8dठलà¥\87 à¤\85नà¥\8dतिम à¤\89रà¥\8dधà¥\8dवà¤à¤°à¤£ à¤\97रिà¤\95ा फाà¤\87लहरà¥\81 देखाउँछ ।",
+ "newimages-summary": "यस विशà¥\87ष पà¥\83षà¥\8dठलà¥\87 à¤\85नà¥\8dतिम à¤\89रà¥\8dधà¥\8dवà¤à¤°à¤£ à¤\97रिà¤\8fà¤\95ा फाà¤\87लहरà¥\82 देखाउँछ ।",
"newimages-legend": "फिल्टर",
"newimages-label": "फाइल अथवा (यसको एउटा अंश)को नाम:",
"newimages-showbots": "बोटहरूद्वारा गरिएको अपलोड देखाउने",
"api-error-badaccess-groups": "यस विकिमा तपाईंलाई फाइल अपलोड गर्ने अनुमति छैन।",
"api-error-badtoken": "आन्तरिक समस्याः खराब टोकन ।",
"api-error-copyuploaddisabled": "यस सर्वरमा URL द्वारा अपलोड गर्ने व्यवस्था निस्क्रिय गरिएकोछ।",
- "api-error-duplicate": "यस साà¤\87à¤\9fमा पहिलà¥\87बाà¤\9f यसà¥\8dतà¥\88 सामà¤\97à¥\8dरà¥\80 {{PLURAL:$1|à¤à¤\8fà¤\95à¥\8b [$2 à¤\85रà¥\8dà¤\95à¥\8b फाà¤\87ल à¤\9b]|à¤à¤\8fà¤\95ा [$2 à¤\95à¥\87हि à¤\85रà¥\81 फाà¤\87लहरà¥\81 छन्]}} ।",
- "api-error-duplicate-archive": "यस साà¤\87à¤\9fमा पहिलà¥\87बाà¤\9f यसà¥\8dतà¥\88 सामà¤\97à¥\8dरà¥\80 {{PLURAL:$1|à¤à¤\8fà¤\95à¥\8b [$2 à¤\85रà¥\8dà¤\95à¥\8b फाà¤\87ल थियà¥\8b]|à¤à¤\8fà¤\95ा [$2 à¤\95à¥\87हि à¤\85रà¥\81 फाà¤\87लहरà¥\81 थिए]}} ।\nतर {{PLURAL:$1|यो मेटाइएको थियो|यी मेटाइएका थिए}} ।",
- "api-error-duplicate-archive-popup-title": "पहिलà¥\87 {{PLURAL:$1|मà¥\87à¤\9fाà¤\87à¤\8fà¤\95à¥\8b फाà¤\87लà¤\95à¥\8b|मà¥\87à¤\9fाà¤\87à¤\8fà¤\95ा फाà¤\87लहरà¥\81को}} नकल प्रति बनाउने।",
- "api-error-duplicate-popup-title": "{{PLURAL:$1|फाà¤\87ल|फाà¤\87लहरà¥\81}} नकल प्रति बनाउने",
+ "api-error-duplicate": "यस साà¤\87à¤\9fमा पहिलà¥\87बाà¤\9f यसà¥\8dतà¥\88 सामà¤\97à¥\8dरà¥\80 {{PLURAL:$1|à¤à¤\8fà¤\95à¥\8b [$2 à¤\85रà¥\8dà¤\95à¥\8b फाà¤\87ल à¤\9b]|à¤à¤\8fà¤\95ा [$2 à¤\95à¥\87हि à¤\85रà¥\81 फाà¤\87लहरà¥\82 छन्]}} ।",
+ "api-error-duplicate-archive": "यस साà¤\87à¤\9fमा पहिलà¥\87बाà¤\9f यसà¥\8dतà¥\88 सामà¤\97à¥\8dरà¥\80 {{PLURAL:$1|à¤à¤\8fà¤\95à¥\8b [$2 à¤\85रà¥\8dà¤\95à¥\8b फाà¤\87ल थियà¥\8b]|à¤à¤\8fà¤\95ा [$2 à¤\95à¥\87हि à¤\85रà¥\81 फाà¤\87लहरà¥\82 थिए]}} ।\nतर {{PLURAL:$1|यो मेटाइएको थियो|यी मेटाइएका थिए}} ।",
+ "api-error-duplicate-archive-popup-title": "पहिलà¥\87 {{PLURAL:$1|मà¥\87à¤\9fाà¤\87à¤\8fà¤\95à¥\8b फाà¤\87लà¤\95à¥\8b|मà¥\87à¤\9fाà¤\87à¤\8fà¤\95ा फाà¤\87लहरà¥\82को}} नकल प्रति बनाउने।",
+ "api-error-duplicate-popup-title": "{{PLURAL:$1|फाà¤\87ल|फाà¤\87लहरà¥\82}} नकल प्रति बनाउने",
"api-error-empty-file": "तपाईंले बुझाएको फाइल खालि छ।",
"api-error-emptypage": "नयाँ तयार गर्दै, खाली पृष्ठ तयार गर्न अनुमति छैन ।",
"api-error-fetchfileerror": "आन्तरिक समस्याः फाइल तान्दा केही कुरा गलत भएछ ।",
"Shirayuki",
"Xqt",
"לערי ריינהארט",
- "아라"
+ "아라",
+ "Purodha"
]
},
"tog-underline": "Gleecher unnerleine:",
"directorynotreadableerror": "Ścieżka \"$1\" nie jest odczytywalna.",
"filenotfound": "Nie można znaleźć pliku „$1”.",
"unexpected": "Nieoczekiwana wartość „$1”=„$2”.",
- "formerror": "Błąd: nie można wysłać formularza",
+ "formerror": "Błąd: nie można wysłać formularza.",
"badarticleerror": "Dla tej strony ta operacja nie może być wykonana.",
"cannotdelete": "Nie można usunąć strony lub pliku „$1”.\nMożliwe, że zostało to już zrobione przez kogoś innego.",
"cannotdelete-title": "Strona „$1” nie może być usunięta.",
"missingsummary": "'''Uwaga:''' Nie wprowadz{{GENDER:|iłeś|iłaś|ono}} opisu zmian.\nJeżeli nie chcesz go wprowadzać, naciśnij przycisk „Zapisz” jeszcze raz.",
"selfredirect": "<strong>Ostrzeżenie:</strong> Przekierowujesz tę stronę do niej samej.\nByć może został przez Ciebie wybrany zły cel przekierowania lub edytujesz niewłaściwą stronę.\nJeżeli ponownie klikniesz „{{int:savearticle}}”, przekierowanie zostanie utworzone.",
"missingcommenttext": "Wprowadź komentarz poniżej.",
- "missingcommentheader": "'''Uwaga''' â\80\93 treÅ\9bÄ\87 tytuÅ\82u lub nagÅ\82ówka komentarza jest pusta.\nJeÅ\9bli ponownie klikniesz â\80\9e{{int:savearticle}}â\80\9c, zmiany zostaną zapisane bez niego.",
+ "missingcommentheader": "'''Uwaga''' â\80\93 treÅ\9bÄ\87 tytuÅ\82u lub nagÅ\82ówka komentarza jest pusta.\nJeÅ\9bli ponownie klikniesz â\80\9e{{int:savearticle}}â\80\9d, zmiany zostaną zapisane bez niego.",
"summary-preview": "Podgląd opisu:",
"subject-preview": "Podgląd nagłówka:",
"previewerrortext": "Wystąpił błąd podczas próby podglądu Twoich zmian.",
"img-auth-public": "Funkcja img_auth.php służy do pobierania plików z prywatnej wiki.\nPonieważ ta wiki została skonfigurowana jako publiczna dla zapewnienia optymalnego bezpieczeństwa img_auth.php została wyłączona.",
"img-auth-noread": "Użytkownik nie ma dostępu do odczytu „$1”.",
"http-invalid-url": "Niepoprawny adres URL: $1",
- "http-invalid-scheme": "Adresy â\80\9e$1â\80\9c nie są obsługiwane.",
+ "http-invalid-scheme": "Adresy â\80\9e$1â\80\9d nie są obsługiwane.",
"http-request-error": "Nieudane żądanie HTTP ze względu na nieznany błąd.",
"http-read-error": "Błąd odczytu HTTP.",
"http-timed-out": "Przekroczony czas żądania HTTP.",
"emailuser-title-notarget": "Wyślij wiadomość e‐mail",
"emailpage": "Wyślij e‐mail do użytkownika",
"emailpagetext": "Możesz użyć poniższego formularza, aby wysłać wiadomość e‐mail do {{GENDER:$1|tego użytkownika|tej użytkowniczki}}.\nAdres e‐mailowy, który został przez Ciebie wprowadzony w [[Special:Preferences|Twoich preferencjach]], zostanie umieszczony w polu „Od”, dzięki czemu odbiorca będzie mógł Ci odpowiedzieć.",
- "defemailsubject": "{{SITENAME}} â\80\93 eâ\80\90mail od użytkownika â\80\9e$1â\80\9c",
+ "defemailsubject": "{{SITENAME}} â\80\93 eâ\80\90mail od użytkownika â\80\9e$1â\80\9d",
"usermaildisabled": "E‐mail użytkownika jest wyłączony",
"usermaildisabledtext": "Nie możesz wysyłać e‐maili do innych użytkowników tej wiki",
"noemailtitle": "Brak adresu e‐mail",
"immobile-target-page": "Nie można przenieść pod wskazany tytuł.",
"bad-target-model": "Strona docelowa używa innego modelu zawartości. Konwersja $1 → $2 nie jest możliwa.",
"imagenocrossnamespace": "Nie można przenieść grafiki do przestrzeni nazw nie przeznaczonej dla grafik",
- "nonfile-cannot-move-to-file": "Nie można przenieÅ\9bÄ\87 obiektu nie bÄ\99dÄ\85cego plikiem do przestrzeni nazw â\80\9e{{ns:file}}â\80\9c",
+ "nonfile-cannot-move-to-file": "Nie można przenieÅ\9bÄ\87 obiektu nie bÄ\99dÄ\85cego plikiem do przestrzeni nazw â\80\9e{{ns:file}}â\80\9d",
"imagetypemismatch": "Nowe rozszerzenie nazwy pliku jest innego typu niż zawartość",
"imageinvalidfilename": "Nazwa pliku docelowego jest nieprawidłowa",
"fix-double-redirects": "Zaktualizuj wszystkie przekierowania wskazujące na stary tytuł",
"import-upload": "Prześlij dane w formacie XML",
"import-token-mismatch": "Utracono dane sesji. Proszę spróbować ponownie.",
"import-invalid-interwiki": "Nie można importować z podanej wiki.",
- "import-error-edit": "Strona â\80\9e$1â\80\9c nie została zaimportowana ponieważ nie jesteś uprawniony do jej edytowania.",
- "import-error-create": "Strona â\80\9e$1â\80\9c nie została zaimportowana ponieważ nie jesteś uprawniony do jej utworzenia.",
+ "import-error-edit": "Strona â\80\9e$1â\80\9d nie została zaimportowana ponieważ nie jesteś uprawniony do jej edytowania.",
+ "import-error-create": "Strona â\80\9e$1â\80\9d nie została zaimportowana ponieważ nie jesteś uprawniony do jej utworzenia.",
"import-error-interwiki": "Strona „$1” nie została zaimportowana, ponieważ jej nazwa jest zarezerwowana do linków zewnętrznych (interwiki).",
"import-error-special": "Strona „$1” nie została zaimportowana, ponieważ należy do specjalnej przestrzeni nazw, która nie zezwala na strony.",
"import-error-invalid": "Strona „$1” nie została zaimportowana, ponieważ jej nazwa jest nieprawidłowa na tej wiki.",
"badsig": "Assinatura inválida; verifique o código HTML utilizado.",
"badsiglength": "A sua assinatura é demasiado longa.\nNão deverá conter mais de $1 {{PLURAL:$1|carácter|caracteres}}.",
"yourgender": "Como prefere ser descrito?",
- "gender-unknown": "Prefiro não dizer",
+ "gender-unknown": "Ao mencioná-lo, o software irá utilizar palavras de género neutro sempre que possível",
"gender-male": "Ele edita páginas wiki",
"gender-female": "Ela edita páginas wiki",
"prefs-help-gender": "Esta preferência é opcional.\nO software usa o seu valor para o endereçar e para o mencionar a outros usando o género gramatical apropriado.\nEsta informação será pública.",
"passwordreset-email": "{{Identical|E-mail address}}",
"passwordreset-emailtitle": "Used as subject (title) of email.",
"passwordreset-emailtext-ip": "Be consistent with {{msg-mw|Passwordreset-emailtext-user}}.\n\nParameters:\n* $1 - an IP address\n* $2 - message {{msg-mw|Passwordreset-emailelement}} repeated $3 times\n* $3 - the number of repetitions in $2\n* $4 - base URL of the wiki\n* $5 - number of days",
- "passwordreset-emailtext-user": "Be consistent with {{msg-mw|Passwordreset-emailtext-ip}}.\n\nParameters:\n* $1 - a user name\n* $2 - message {{msg-mw|Passwordreset-emailelement|notext=1}} repeated $3 times\n* $3 - the number of repetitions in $2\n* $4 - base URL of the wiki\n* $5 - number of days",
+ "passwordreset-emailtext-user": "Be consistent with {{msg-mw|Passwordreset-emailtext-ip}}.\n\nParameters:\n* $1 - a user name, no GENDER suport.\n* $2 - message {{msg-mw|Passwordreset-emailelement|notext=1}} repeated $3 times\n* $3 - the number of repetitions in $2\n* $4 - base URL of the wiki\n* $5 - number of days",
"passwordreset-emailelement": "This is a body of a password reset email to allow them into the system with a new password. Parameters:\n* $1 - the user's login name. This parameter can be used for GENDER.\n* $2 - the temporary password given by the system",
"passwordreset-emailsent": "Used in [[Special:PasswordReset]].\n\nSee also:\n* {{msg-mw|Passwordreset-emailsent-capture}}\n* {{msg-mw|Passwordreset-emailerror-capture}}",
"passwordreset-emailsent-capture": "Used in [[Special:PasswordReset]].\n\nSee also:\n* {{msg-mw|Passwordreset-emailsent}}\n* {{msg-mw|Passwordreset-emailerror-capture}}",
"badsig": "Error message displayed when entering invalid signature in user preferences",
"badsiglength": "Warning message that is displayed on [[Special:Preferences]] when trying to save a signature that is too long.\n\nParameters\n* $1 - the maximum number of characters that is allowed in a signature (multi-byte characters are counted as one character)",
"yourgender": "Used in [[Special:Preferences]], first tab, in the Internationalisation section.\nThis may be customized for other languages. This should sound like a question, the answer to which can be selected in one of these:\n* {{msg-mw|gender-unknown}}\n* {{msg-mw|gender-male}}\n* {{msg-mw|gender-female}}\nThe idea is that this preference is used for speaking to the user and about the user, and the label and the preference are supposed to demonstrate it.",
- "gender-unknown": "Used in [[Special:Preferences]], first tab, as one of the selectable options of the {{msg-mw|Yourgender}} prompt. Choosing it indicates that the grammatical gender of the user name is not to be made public, cannot be determined, or matches none of the other choices preset in the select.\n\nThis may appropriately customized for your language. It should sound like a reply to {{msg-mw|yourgender}}.",
+ "gender-unknown": "Used in [[Special:Preferences]], first tab, as one of the selectable options of the {{msg-mw|Yourgender}} prompt. Choosing it indicates that the grammatical gender of the user name is gender neutral or unknown.\n\nThis may be appropriately customized for your language. It should sound like a reply to {{msg-mw|yourgender}}.",
"gender-male": "Used in [[Special:Preferences]], first tab, as one of the selectable options of the {{msg-mw|Yourgender}} prompt.\nChoosing it indicates that the grammatical gender of the user name should be \"male\" for those languages having a \"normal\" male grammatical gender.\n\nYou have to customize this example for your language if needed to have a sentence which varies depending on the grammatical gender.\nThe wording must demonstrate the actual usage of the option. It should sound like a reply to {{msg-mw|Yourgender}}.\n\nFor example, if the verb \"I edit\" in your language is different in masculine and feminine, translate \"I edit\" in masculine here.\nIf your language does not make a distinction at all, use sentences like \"he is male/a man\".",
"gender-female": "Used in [[Special:Preferences]], first tab, as one of the selectable options of the {{msg-mw|Yourgender}} prompt.\nChoosing it indicates that the grammatical gender of the user name should be \"female\" for those languages having a \"normal\" female grammatical gender.\n\nYou have to customize this example for your language if needed to have a sentence which varies depending on the grammatical gender.\nThe wording must demonstrate the actual usage of the option. It should sound like a reply to {{msg-mw|Yourgender}}.\n\nFor example, if the verb \"I edit\" in your language is different in masculine and feminine, translate \"I edit\" in feminine here.\nIf your language does not make a distinction at all, use sentences like \"she is female/woman\".",
"prefs-help-gender": "Used as additional description for {{msg-mw|yourgender}} field in [[Special:Preferences]], section {{msg-mw|prefs-i18n}}.",
"deletedarticle": "This is a ''logentry'' message. Parameters:\n* $1 - deleted page name\n{{Identical|Deleted}}",
"suppressedarticle": "Part of a [[mw:Manual:RevisionDelete|RevisionDelete]] log entry. Parameters:\n* $1 - suppressed page name\n{{Identical|Suppressed}}",
"undeletedarticle": "This is a ''logentry'' message. Parameters:\n* $1 - restored (undeleted) page name",
- "patrol-log-line": "Text of notes on entries in the [http://translatewiki.net/w/i.php?title=Special%3ALog&type=patrol&user=&page=&year=&month=-1 patrol log].\nParameters:\n* $1 - the link whose text is {{msg-mw|patrol-log-diff}}\n* $2 - the name of the page\n* $3 - appears to be {{msg-mw|Patrol-log-auto}} (at least sometimes)\n\nThe message appears after the name of the patroller.",
+ "patrol-log-line": "Text of notes on entries in the [{{FULLURL:Special:Log|type=patrol}} patrol log].\nParameters:\n* $1 - the link whose text is {{msg-mw|patrol-log-diff}}\n* $2 - the name of the page\n* $3 - appears to be {{msg-mw|Patrol-log-auto}} (at least sometimes)\n\nThe message appears after the name of the patroller.",
"patrol-log-auto": "Automated edit summary when patrolling.\n\n{{Identical|Automatic}}",
"patrol-log-diff": "The text of the diff link in {{msg-mw|Patrol-log-line}} (inside <code>$1</code> there).\n\nParameters:\n* $1 - revision ID\n{{Identical|Revision}}",
"1movedto2": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - the original page name\n* $2 - the destination page name\nSee also:\n* {{msg-mw|1movedto2 redir}}",
"badsig": "Semnătură brută incorectă; verificați tagurile HTML.",
"badsiglength": "Semnătura este prea lungă.\nLungimea trebuie să fie mai mică de $1 {{PLURAL:$1|caracter|caractere}}.",
"yourgender": "Cum preferați să se facă referire la dumneavoastră?",
- "gender-unknown": "Prefer să nu menționez",
+ "gender-unknown": "Când face referire la dumnevoastră, software-ul va utiliza cuvinte la genul neutru oricând va fi posibil",
"gender-male": "El modifică pagini wiki",
"gender-female": "Ea modifică pagini wiki",
"prefs-help-gender": "Stabilirea acestei preferințe este opțională.\nAcest software folosește datele pentru a vi se adresa și pentru a face referire la dumneavoastră utilizând genul gramatical corespunzător.\nAceastă informație va fi publică.",
"uploaddisabledtext": "Încărcările de fișiere sunt dezactivate.",
"php-uploaddisabledtext": "Încărcarea de fișiere este dezactivată în PHP.\nVă rugăm să verificați setările din file_uploads.",
"uploadscripted": "Fișierul conține HTML sau cod script care poate fi interpretat în mod eronat de un browser.",
- "upload-scripted-pi-callback": "Nu se poate încărca un fișier care conține instrucțiuni de procesare a foii de stil xml.",
+ "upload-scripted-pi-callback": "Nu se poate încărca un fișier care conține instrucțiuni de procesare a foii de stil XML.",
"uploaded-script-svg": "S-a găsit elementul „$1” scriptabil în fișierul SVG încărcat.",
"uploaded-hostile-svg": "S-a descoperit CSS vulnerabil în elementul de stil al fișierului SVG încărcat.",
"uploaded-event-handler-on-svg": "Setarea atributelor <code>$1=„$2”</code> de gestionare a evenimentului nu este permisă pentru fișierele SVG.",
"badsig": "'A firme grezze jè sbagliete.\nCondrolle le tag HTML.",
"badsiglength": "'A firme jè troppe longhe.\nAddà essere assaje assaje sotte a $1 {{PLURAL:$1|carattere|carattere}}.",
"yourgender": "Sesse:",
- "gender-unknown": "Non apirte",
+ "gender-unknown": "Quanne parlane de te, 'u software ause 'u genere neutrale cumme parole ce jè possibbile",
"gender-male": "Maschele",
"gender-female": "Femmene",
"prefs-help-gender": "Opzionale: ausate pe l'indirizzamende corrette d'u sesse jndr'à 'u softwer. Sta 'mbormazione jè pubbleche.",
"uploaddisabledtext": "Le carecaminde de le file sonde disabbilitete.",
"php-uploaddisabledtext": "Le carecaminde de file sonde disabilitate in PHP.<br />\nPe piacere verifiche le 'mbostaziune d'u ''file_uploads''.",
"uploadscripted": "Stu file condene HTML o codece de script ca ponne essere inderpretete jndr'à 'nu mode sbagliete da le browser.",
- "upload-scripted-pi-callback": "Non ge pozze carecà 'nu file ca téne istruziune de processe de xml-stylesheet.",
+ "upload-scripted-pi-callback": "Non ge pozze carecà 'nu file ca téne istruziune de processe de XML-stylesheet.",
"uploaded-script-svg": "Acchiate elemende pe script \"$1\" jndr'à 'u file SVG carecate.",
"uploaded-hostile-svg": "Acchiate 'nu CSS insecure ndr'à l'elemende de stile d'u file SVG carecate.",
+ "uploaded-event-handler-on-svg": "'A 'mbostazione de le attribute de gestione de l'evende <code>$1=\"$2\"</code> non ge se pò ffà cu le file SVG.",
"uploadscriptednamespace": "Stu file SVG tène 'nu namespace illegale '$1'",
"uploadinvalidxml": "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
"uploadvirus": "Alanga toje, 'u file condiene 'nu virus! Dettaglie: $1",
"cachedspecial-viewing-cached-ts": "Вы просматриваете кэшированную версию этой страницы, которая может серьёзно отличаться от текущей версии.",
"cachedspecial-refresh-now": "Просмотреть последнюю версию.",
"categories": "Категории",
- "categoriespagetext": "{{PLURAL:$1|1=Следующая категория содержит|Следующие категории содержат}} страницы или медиа-файлы.\nЗдесь не показаны [[Special:UnusedCategories|неиспользуемые категории]].\nСм. также [[Special:WantedCategories|список требуемых категорий]].",
+ "categoriespagetext": "{{PLURAL:$1|1=Следующая категория содержит|Следующие категории содержат}} страницы или медиафайлы.\nЗдесь не показаны [[Special:UnusedCategories|неиспользуемые категории]].\nСм. также [[Special:WantedCategories|список требуемых категорий]].",
"categoriesfrom": "Показать категории, начинающиеся с:",
"special-categories-sort-count": "упорядочить по количеству",
"special-categories-sort-abc": "упорядочить по алфавиту",
"tooltip-t-permalink": "Постоянная ссылка на эту версию страницы",
"tooltip-ca-nstab-main": "Просмотр основной страницы",
"tooltip-ca-nstab-user": "Персональная страница участника",
- "tooltip-ca-nstab-media": "Медиа-файл",
+ "tooltip-ca-nstab-media": "Медиафайл",
"tooltip-ca-nstab-special": "Это служебная страница, она недоступна для редактирования",
"tooltip-ca-nstab-project": "Страница проекта",
"tooltip-ca-nstab-image": "Страница файла",
"exif-ycbcrpositioning-1": "Центрированный",
"exif-ycbcrpositioning-2": "CO-sited",
"exif-dc-contributor": "Соавторы",
- "exif-dc-coverage": "Пространственные или временные рамки медиа",
+ "exif-dc-coverage": "Пространственные или временные рамки медиафайлов",
"exif-dc-date": "Дата(ы)",
"exif-dc-publisher": "Издатель",
"exif-dc-relation": "Связанные медиа",
"exif-dc-rights": "Права",
- "exif-dc-source": "Исходное медиа",
- "exif-dc-type": "Тип медиа",
+ "exif-dc-source": "Исходный медиафайл",
+ "exif-dc-type": "Тип медиафайла",
"exif-rating-rejected": "Отклонено",
"exif-isospeedratings-overflow": "Более 65535",
"exif-iimcategory-ace": "Искусство, культура и развлечения",
"uploaddisabledtext": "Билэлэри суруттарар көҥүллэммэт.",
"php-uploaddisabledtext": "PHP туруорууларыгар билэни киллэрии араарыллыбыт. Бука диэн, file_uploads туруоруутун көр.",
"uploadscripted": "Бу билэ HTML эбэтэр скрипт куодтаах эбит. Интэриниэт көрдөрөр бырагыраамма ону сыыһа ааҕыан сөп.",
+ "upload-scripted-pi-callback": "XML истиилин табылыыссатын таҥастыыр туһунан ыйыылаах-кэрдиилээх билэни хачайдыыр табыллыбата.",
+ "uploaded-script-svg": "Хачайдаммыт SVG-билэҕэ сценарийы өйүүр куттааллаах «$1» элэмиэн көһүннэ.",
+ "uploaded-image-filter-svg": "Хачайдаммыт SVG-билэҕэ маннык URL-аадырыстаах ойуу сиидэтэ көстүбүт <code><$1 $2=\"$3\"></code>.",
"uploadscriptednamespace": "Бу SVG-билэ алҕастаах аат даллаах эбит: '$1'",
"uploadinvalidxml": "Хачайдаммит билэҕэ XML анаалыстанар кыаҕа суох.",
"uploadvirus": "Бу билэ вирустаах! Көр: $1",
"listfiles-delete": "сотуу",
"listfiles-summary": "Бу анал сирэй киллэриллибит билэлэри барытын көрдөрөр.",
"listfiles_search_for": "Миэдьийэни (ойууну) аатынан көрдөтүү:",
+ "listfiles-userdoesnotexist": "\"$1\" кыттааччы аата бэлиэтэниллибэтэх.",
"imgfile": "билэ",
"listfiles": "Билэлэр",
"listfiles_thumb": "Ойуучаан",
"randomredirect": "Түбэспиччэ утаарыы",
"randomredirect-nopages": "Бу аат далыгар($1) көһөрөр ыйынньыктар суохтар.",
"statistics": "Статистика",
- "statistics-header-pages": "СиÑ\80Ñ\8dй Ñ\81Ñ\82аÑ\82ииÑ\81Ñ\82иката",
- "statistics-header-edits": "Ð\9aөннөÑ\80Ò¯Ò¯ Ñ\81Ñ\82аÑ\82ииÑ\81Ñ\82иката",
- "statistics-header-users": "Ð\9aÑ\8bÑ\82Ñ\82ааÑ\87Ñ\87Ñ\8bлаÑ\80 Ñ\81Ñ\82аÑ\82ииÑ\81Ñ\82икалара",
+ "statistics-header-pages": "СиÑ\80Ñ\8dй Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bÑ\8bÑ\81Ñ\82Ñ\8bката",
+ "statistics-header-edits": "Ð\9aөннөÑ\80Ò¯Ò¯ Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bÑ\8bÑ\81Ñ\82Ñ\8bката",
+ "statistics-header-users": "Ð\9aÑ\8bÑ\82Ñ\82ааÑ\87Ñ\87Ñ\8bлаÑ\80 Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bÑ\8bÑ\81Ñ\82Ñ\8bкалара",
"statistics-header-hooks": "Атын статистика",
"statistics-articles": "Ыстатыйалар ахсааннара",
"statistics-pages": "Сирэйдэр",
"unusedimages": "Туттулубатах билэлэр",
"wantedcategories": "Көрдөнүллэр категориялар",
"wantedpages": "Көрдөнүллэр сирэйдэр",
+ "wantedpages-summary": "Элбэх ыстатыйа сигэнэр гынан баран, суох сирэйдэр испииһэктэрэ (кинилэргэ утаарар сирэйдэр ааҕыллыбатылар). Утаарар сирэйдээх гынан баран, сурулла илик сирэйдэр испииһэктэрин манна көр [[{{#special:BrokenRedirects}}|үлэлээбэт утаарылар]].",
"wantedpages-badtitle": "Көрдөбүл түмүгэр сыыһалаах аат баар: $1",
"wantedfiles": "Көрдөммүт билэлэр",
"wantedfiletext-cat": "Манна көстөр билэлэри суохтарын үрдүнэн тутта сатыыллар. Бу тиһиликкэ таска сытар билэлэр алҕас киириэхтэрин сөп. Оннук алҕастык киирбиттэр <del>сотуунан</del> бэлиэтэниэхтэрэ. Маны таһынан суох билэлэргэ сигэнэр сирэйдэр манна көстөллөр: [[:$1]].",
+ "wantedfiletext-cat-noforeign": "Манна ааттаммыт билэлэргэ сигэнэллэр, ол эрээри кинилэр суохтар (сурулла иликтэр биитэр сотуллубуттар). Ону тэҥэ бу испииһэги көр [[:$1]].",
"wantedfiletext-nocat": "Манна көстөр билэлэри суохтарын үрдүнэн тутта сатыыллар. Бу тиһиликкэ таска сытар билэлэр алҕас киириэхтэрин сөп. Оннук алҕастык киирбиттэр <del>сотуунан</del> бэлиэтэниэхтэрэ.",
+ "wantedfiletext-nocat-noforeign": "Бу билэлэргэ сигэнэллэр, ол эрэн кинилэр суохтар.",
"wantedtemplates": "Көрдөнөр халыыптар",
"mostlinked": "Саамай элбэх сирэй сигэнэр сирэйдэрэ",
"mostlinkedcategories": "Саамай элбэх сирэй сигэнэр категориялара",
- "mostlinkedtemplates": "Саамай Ñ\8dлбÑ\8dÑ\85Ñ\82ик Ñ\82Ñ\83Ñ\82Ñ\82Ñ\83ллаÑ\80 Ñ\85алÑ\8bÑ\8bпÑ\82ар",
+ "mostlinkedtemplates": "Саамай Ñ\8dлбÑ\8dÑ\85Ñ\82ик Ñ\82Ñ\83Ñ\82Ñ\82Ñ\83ллаÑ\80 Ñ\81иÑ\80Ñ\8dйдÑ\8dр",
"mostcategories": "Элбэх категорияҕа киирэр ыстатыйалар",
"mostimages": "Саамай элбэхтик сигэниллэр билэлэр",
"mostinterwikis": "Ордук элбэх интервики-сигэлээх сирэйдэр",
"Ата",
"Macofe",
"TomášPolonec",
- "Mikulas1"
+ "Mikulas1",
+ "Hromoslav"
]
},
"tog-underline": "Podčiarkovať odkazy:",
"tog-watchdefault": "Pridávať stránky a súbory, ktoré upravím medzi sledované",
"tog-watchmoves": "Pridávať stránky a súbory, ktoré presuniem medzi sledované",
"tog-watchdeletion": "Pridávať stránky a súbory, ktoré zmažem medzi sledované",
+ "tog-watchrollback": "Pridať stránky na ktorých som použil rollback do môjho zoznamu sledovaných stránok",
"tog-minordefault": "Označovať všetky zmeny štandardne ako drobné",
"tog-previewontop": "Zobrazovať náhľad pred textovým poľom úprav, nie až za ním",
"tog-previewonfirst": "Zobraziť náhľad pred prvou úpravou",
- "tog-enotifwatchlistpages": "Upozorniť ma emailom, keď sa zmení stránka alebo súbor z môjho zoznamu sledovaných",
- "tog-enotifusertalkpages": "Upozorniť ma emailom po zmene mojej používateľskej diskusnej stránky",
- "tog-enotifminoredits": "Upozorniť ma emailom aj na drobné úpravy stránok a súborov",
+ "tog-enotifwatchlistpages": "Upozorniť ma e-mailom, keď sa zmení stránka alebo súbor z môjho zoznamu sledovaných",
+ "tog-enotifusertalkpages": "Upozorniť ma e-mailom po zmene mojej používateľskej diskusnej stránky",
+ "tog-enotifminoredits": "Upozorniť ma e-mailom aj na drobné úpravy stránok a súborov",
"tog-enotifrevealaddr": "Zobraziť moju emailovú adresu v emailoch s upozorneniami",
"tog-shownumberswatching": "Zobraziť počet používateľov sledujúcich stránku",
"tog-oldsig": "Súčasný podpis:",
"tog-watchlisthideliu": "Skryť úpravy prihlásených používateľov zo zoznamu sledovaných stránok",
"tog-watchlisthideanons": "Skryť úpravy anonymných používateľov zo zoznamu sledovaných stránok",
"tog-watchlisthidepatrolled": "Skryť strážené úpravy Zozname sledovaných stránok",
- "tog-ccmeonemails": "Posielať mi kópie mojich emailov, ktoré pošlem ostatným používateľom",
+ "tog-ccmeonemails": "Posielať mi kópie e-mailov, ktoré pošlem ostatným používateľom",
"tog-diffonly": "Nezobrazovať obsah stránky pod rozdielmi",
"tog-showhiddencats": "Zobraziť skryté kategórie",
"tog-norollbackdiff": "Vynechať rozdiel po vykonaní rollbacku",
"october-date": "$1. októbra",
"november-date": "$1. novembra",
"december-date": "$1. decembra",
- "pagecategories": "{{PLURAL:$1|Kategória|Kategórie|Kategórií}}",
+ "pagecategories": "{{PLURAL:$1|Kategória|Kategórie}}",
"category_header": "Stránky v kategórii „$1“",
"subcategories": "Podkategórie",
"category-media-header": "Multimediálne súbory v kategórii „$1“",
"wrongpassword": "Zadané heslo je nesprávne. Prosím, skúste to znova.",
"wrongpasswordempty": "Zadané heslo bolo prázdne. Prosím, skúste to znova.",
"passwordtooshort": "Heslo musí mať dĺžku aspoň $1 {{PLURAL:$1|znak|znaky|znakov}}.",
+ "passwordtoolong": "Heslá nemôžu byť dlhšie než {{PLURAL:$1|1 znak|$1 znaky|$1 znakov}}.",
"password-name-match": "Vaše heslo musí byť iné ako vaše používateľské meno.",
"password-login-forbidden": "Použitie tohto používateľského mena a hesla bolo zakázané.",
"mailmypassword": "Obnoviť heslo",
"anoneditwarning": "<strong>Upozornenie:</strong> Nie ste prihlásený.\nAk uložíte akúkoľvek úpravu vaša IP adresa bude zverejnená v histórii tejto stránky. Ak sa <strong>[$1 prihlásite]</strong> alebo si <strong>[$2 vytvoríte účet]</strong>, budú vaše úpravy priradené k vášmu používateľskému menu a získate i ďalšie výhody.",
"anonpreviewwarning": "''Nie ste prihlásený. Uložením zaznamenáte svoju IP adresu do histórie úprav tejto stránky.''",
"missingsummary": "'''Pripomienka:''' Neposkytli ste zhrnutie úprav. Ak kliknete znova na Uložiť, vaše úpravy sa uložia bez zhrnutia úprav.",
+ "selfredirect": "<strong>Upozornenie:</strong> Snažíte sa túto stránku presmerovať samú na seba.\nMožno ste zadali chybný cieľ presmerovania, alebo editujete nesprávnu stránku.\nAk znova kliknete na „{{int:savearticle}}“, bude presmerovanie aj napriek tomu vytvorené.",
"missingcommenttext": "Prosím, dolu napíšte komentár.",
"missingcommentheader": "'''Pripomienka:''' Neposkytli ste predmet/hlavičku tohto komentára.\nAk znova kliknete na tlačidlo „{{int:savearticle}}“, vaša úprava sa uloží bez nej.",
"summary-preview": "Náhľad zhrnutia:",
"subject-preview": "Náhľad predmetu/hlavičky:",
+ "previewerrortext": "Pri pokuse o zobrazenie náhľadu došlo k chybe.",
"blockedtitle": "Používateľ je zablokovaný",
"blockedtext": "'''Vaše používateľské meno alebo IP adresa bola zablokovaná.'''\n\nZablokoval vás správca $1. Udáva tento dôvod:<br />''$2''\n\n* Blokovanie začalo: $8\n* Blokovanie vyprší: $6\n* Kto mal byť zablokovaný: $7\n\nMôžete kontaktovať $1 alebo s jedného z ďalších [[{{MediaWiki:Grouppage-sysop}}|správcov]] a prediskutovať blokovanie.\nUvedomte si, že nemôžete použiť funkciu „{{int:Emailuser}}“, pokiaľ nemáte registrovanú platnú e-mailovú adresu vo svojich [[Special:Preferences|nastaveniach]].\nVaša IP adresa je $3 a ID blokovania je #$5.\nProsím, uveďte oba tieto údaje do každej správy, ktorú posielate.",
"autoblockedtext": "Vaša IP adresa bola automaticky zablokovaná, pretože ju používa iný používateľ, ktorého zablokoval $1.\nUdaný dôvod zablokovania:\n\n:''$2''\n\n* Blokovanie začalo: $8\n* Blokovanie vyprší: $6\n* Blokovanie sa týka: $7\n\nAk potrebujete informácie o blokovaní, môžete kontaktovať $1 alebo niektorého iného\n[[{{MediaWiki:Grouppage-sysop}}|správcu]].\n\nPozn.: Nemôžete použiť funkciu „{{int:emailuser}}“, ak ste si vo svojich\n[[Special:Preferences|používateľských nastaveniach]] nezaregistrovali platnú emailovú adresu.\n\nVaša aktuálna IP adresa je $3. ID vášho blokovania je $5.\nProsím, uveďte tieto podrobnosti v akýchkoľvek otázkach, ktoré sa opýtate.",
"invalid-content-data": "Neplatné dáta obsahu",
"content-not-allowed-here": "Obsah „$1“ nie je povolený na stránke [[$2]]",
"editwarning-warning": "Ak opustíte túto stránku, môžete tým stratiť všetky vykonané zmeny.\nAk ste prihlásený, toto upozornenie môžete vypnúť v sekcii „{{int:prefs-editing}}“ svojich nastavení.",
+ "editpage-notsupportedcontentformat-title": "Obsahový formát nieje podporovaný",
"content-model-wikitext": "wikitext",
"content-model-text": "čistý text",
"content-model-javascript": "JavaScript",
"content-model-css": "CSS",
+ "content-json-empty-object": "Prázdny objekt",
+ "content-json-empty-array": "Prázdne pole",
"duplicate-args-category": "Stránky s duplicitnými parametrami pri volaniach šablón",
"duplicate-args-category-desc": "Stránka obsahuje volania šablóny používajúce duplicitné parametere, ako napríklad <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> alebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "Upozornenie: Táto stránka obsahuje príliš mnoho volaní funkcií syntaktického analyzátora, ktoré nadmerne zaťažujú server.\n\nObsahuje $1 {{PLURAL:$1|volanie|volania|volaní}}. Mala by obsahovať menej ako $2 {{PLURAL:$1|volanie|volania|volaní}}.",
"history-feed-description": "História úprav pre túto stránku na wiki",
"history-feed-item-nocomment": "$1 na $2",
"history-feed-empty": "Požadovaná stránka neexistuje.\nMožno bola zmazaná z wiki alebo premenovaná.\nSkúste [[Special:Search|vyhľadávať na wiki]] relevantné nové stránky.",
+ "history-edit-tags": "Upraviť značky vybraných revízií",
"rev-deleted-comment": "(zhrnutie úprav odstránené)",
"rev-deleted-user": "(používateľské meno odstránené)",
"rev-deleted-event": "(činnosť odstránená zo záznamu)",
"editundo": "vrátiť",
"diff-empty": "(Žiaden rozdiel)",
"diff-multi-sameuser": "({{PLURAL:$1|Jedna medziľahlá úprava|$1 medziľahlé úpravy|$1 medziľahlých úprav}} od rovnakého používateľa.)",
+ "diff-multi-otherusers": "({{PLURAL:$1|Jedna medziľahlá úprava|$1 medziľahlé úpravy|$1 medziľahlých úprav}} od {{PLURAL:$2|jedného ďalšieho používateľa|$2 ďalších používateľov}} {{PLURAL:$1|nie je zobrazená|nie sú zobrazené|nie je zobrazených}})",
"diff-multi-manyusers": "({{PLURAL:$1|$1 medziľahlá revízia|$1 medziľahlé revízie|$1 medziľahlých revízií}} od viac ako {{PLURAL:$2|$2 používateľa|$2 používateľov}} {{PLURAL:$1|nie je zobrazená|nie sú zobrazené|nie je zobrazených}})",
"difference-missing-revision": "{{PLURAL:$2|$2 revízia|$2 revízie|$2 revízií}} pre požadovaný rozdiel ($1) {{PLURAL:$2|neexistuje|neexistujú|neexistuje}}.\n\nPravdepodobne ste nasledovali zastaraný odkaz na rozdiel revízií, z ktorých niektorá bola medzičasom odstránená.\nPodrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zázname zmazaní].",
"searchresults": "Výsledky vyhľadávania",
"notextmatches": "V textoch stránok nebola nájdená zhoda",
"prevn": "{{PLURAL:$1|predošlá|predošlé|predošlých}} $1",
"nextn": "{{PLURAL:$1|ďalšia|ďalšie|ďalších}} $1",
+ "prev-page": "predošlá stránka",
+ "next-page": "ďalšia stránka",
"prevn-title": "{{PLURAL:$1|Predošlý $1 výsledok|Predošlé $1 výsledky|Predošlých $1 výsledkov}}",
"nextn-title": "{{PLURAL:$1|Ďalší $1 výsledok|Ďalšie $1 výsledky|Ďalších $1 výsledkov}}",
"shown-title": "Zobraziť $1 {{PLURAL:$1|výsledok|výsledky|výsledkov}} na stránku",
"search-result-category-size": "{{PLURAL:$1|1 člen|$1 členovia|$1 členov}} ({{PLURAL:$2|1 podkategória|$2 podkategórie|$2 podkategórií}}, {{PLURAL:$3|1 súbor|$3 súbory|$3 súborov}})",
"search-redirect": "(presmerovanie $1)",
"search-section": "(sekcia $1)",
+ "search-category": "($1 kategória)",
"search-suggest": "Mali ste na mysli „$1“?",
"search-interwiki-caption": "Sesterské projekty",
"search-interwiki-default": "$1 výsledkov:",
"searchrelated": "súvisiace",
"searchall": "všetko",
"showingresults": "Nižšie {{PLURAL:$1|je zobrazený jeden výsledok|sú zobrazené '''1''' výsledky|je zobrazených '''$1''' výsledkov}}, počnúc od #<b>$2</b>.",
- "search-showingresults": "{{PLURAL:$4|Výsledok <strong>$1</strong> z <strong>$3</strong>|Výsledky <strong>$1 - $2</strong> z <strong>$3</strong>}}",
+ "showingresultsinrange": "Nižšie {{PLURAL:$1|je zobrazený|sú zobrazené|je zobrazených}} max strong>$1</strong> {{PLURAL:$1|výsledok|výsledky|výsledkov}} v rozsahu #<strong>$2</strong> – #<strong>$3</strong>.",
+ "search-showingresults": "{{PLURAL:$4|Výsledok <strong>$1</strong> z <strong>$3</strong>|Výsledky <strong>$1 – $2</strong> z <strong>$3</strong>}}",
"search-nonefound": "Vyhľadávanie nenašlo žiadne výsledky.",
"powersearch-legend": "Pokročilé hľadanie",
"powersearch-ns": "Hľadať v menných priestoroch:",
"powersearch-togglelabel": "Skontrolovať:",
"powersearch-toggleall": "Všetky",
"powersearch-togglenone": "Žiadne",
+ "powersearch-remember": "Zapamätať si výber pre budúce vyhľadávania",
"search-external": "Externé vyhľadávanie",
"searchdisabled": "Prepáčte! Fulltextové vyhľadávanie bolo dočasne vypnuté z dôvodu preťaženia. Zatiaľ môžete použiť hľadanie pomocou Google, ktoré však nemusí byť aktuálne.",
"search-error": "Pri hľadaní sa vyskytla chyba:$1",
"preferences": "Nastavenia",
"mypreferences": "Nastavenia",
"prefs-edits": "Počet úprav:",
+ "prefsnologintext2": "Ak chcete zmeniť prílohy, prosím prihláste sa",
"prefs-skin": "Vzhľad",
"skin-preview": "Náhľad",
"datedefault": "štandardný",
"prefs-personal": "Profil",
"prefs-rc": "Posledné úpravy",
"prefs-watchlist": "Sledované stránky",
+ "prefs-editwatchlist": "Upraviť zoznam sledovaných stránok",
+ "prefs-editwatchlist-label": "Upraviť položky vášho zoznamu sledovaných:",
+ "prefs-editwatchlist-edit": "Zobraziť a odstrániť položky",
+ "prefs-editwatchlist-raw": "Upraviť textovú verziu zoznamu",
+ "prefs-editwatchlist-clear": "Vyprázdniť zoznam sledovaných stránok",
"prefs-watchlist-days": "Koľko dní zobrazovať v sledovaných stránkach:",
"prefs-watchlist-days-max": "Najviac $1 {{PLURAL:$1|deň|dni|dní}}",
"prefs-watchlist-edits": "Počet úprav, ktorý sa zobrazí v rozšírenom zozname sledovaných:",
"prefs-resetpass": "Zmeniť heslo",
"prefs-changeemail": "Zmeniť email",
"prefs-setemail": "Nastaviť emailovú adresu",
- "prefs-email": "Možnosti emailu",
+ "prefs-email": "Možnosti e-mailu",
"prefs-rendering": "Vzhľad",
"saveprefs": "Uložiť nastavenia",
"restoreprefs": "Obnoviť všetky predvolené nastavenia (vo všetkých sekciách)",
"prefs-custom-js": "Vlastný JS",
"prefs-common-css-js": "Spoločné CSS/JS pre všetky témy vzhľadu:",
"prefs-reset-intro": "Túto stránku môžete použiť na vrátenie predvolených hodnôt vašich nastavení.\nTúto operáciu nemožno vrátiť.",
- "prefs-emailconfirm-label": "Potvrdenie emailu:",
+ "prefs-emailconfirm-label": "Overenie e-emailu:",
"youremail": "Váš e-mail²",
"username": "{{GENDER:$1|Používateľské meno}}:",
"prefs-memberingroups": "{{GENDER:$2|Člen|Členovia}} {{PLURAL:$1|skupiny|skupín}}:",
"prefs-help-gender": "Nastavenie tejto voľby nie je povinné.\nSoftvér používa toto nastavenie na správne oslovenie a označenie vás ostatným v závislosti od gramatického rodu. Táto informácia bude verejná.",
"email": "E-mail",
"prefs-help-realname": "¹ Skutočné meno (nepovinné): ak sa rozhodnete ho poskytnúť, bude použité na označenie vašej práce.",
- "prefs-help-email": "Emailová adresa je nepovinný údaj, ale je potrebná v prípade, že ak zabudnete heslo, môžete si na email vyžiadať nové.",
- "prefs-help-email-others": "Môžete tiež umožniť ostatným kontaktovať vás prostredníctvom vašej používateľskej alebo diskusnej stránky bez nutnosti odhaliť vašu identitu.",
+ "prefs-help-email": "E-mailová adresa je nepovinný údaj, umožní ale zaslanie nového hesla v prípade, že svoje heslo zabudnete.",
+ "prefs-help-email-others": "Môžete tiež umožniť ostatným kontaktovať vás e-mailom pomocou odkazu z vašej používateľskej alebo diskusnej stránky, bez nutnosti odhaliť vašu identitu.",
"prefs-help-email-required": "Vyžaduje sa e-mailová adresa.",
"prefs-info": "Základné informácie",
"prefs-i18n": "Internacionalizácia",
"prefs-advancedwatchlist": "Rozšírené možnosti",
"prefs-displayrc": "Možnosti zobrazenia",
"prefs-displaywatchlist": "Možnosti zobrazenia",
+ "prefs-tokenwatchlist": "Token",
"prefs-diffs": "Rozdiely",
"prefs-help-prefershttps": "Táto voľba sa prejaví pri vašom ďalšom prihlásení.",
"email-address-validity-valid": "Formát e-mailovej adresa vyzerá byť správny",
"action-viewmywatchlist": "zobraziť zoznam sledovaných stránok",
"action-viewmyprivateinfo": "zobraziť vaše súkromné údaje",
"action-editmyprivateinfo": "upraviť vaše súkromné údaje",
+ "action-managechangetags": "vytvorte a odstráňte značky z databázy",
"nchanges": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od poslednej návštevy}}",
"enhancedrc-history": "história",
"rcshowhidebots": "$1 botov",
"rcshowhidebots-show": "Zobraziť",
"rcshowhidebots-hide": "Skryť",
- "rcshowhideliu": "$1 registrovanà užÃvatelia",
+ "rcshowhideliu": "$1 registrovaných použÃvateľov",
"rcshowhideliu-show": "Zobraziť",
"rcshowhideliu-hide": "Skryť",
"rcshowhideanons": "$1 anonymných používateľov",
"listfiles-delete": "zmazať",
"listfiles-summary": "Táto špeciálna stránka zobrazuje všetky nahrané súbory.",
"listfiles_search_for": "Hľadať názov súboru:",
+ "listfiles-userdoesnotexist": "Používateľské konto „$1“ nie je zaregistrované.",
"imgfile": "súbor",
"listfiles": "Zoznam obrázkov",
"listfiles_thumb": "Náhľad",
"logempty": "V zázname neboli nájdené zodpovedajúce položky.",
"log-title-wildcard": "Hľadať názvy začínajúce týmto textom",
"showhideselectedlogentries": "Zobraziť/skryť vybraté položky záznamu",
+ "log-edit-tags": "Editovať značky zvolených položiek záznamu",
"allpages": "Všetky stránky",
"nextpage": "Ďalšia stránka ($1)",
"prevpage": "Predchádzajúca stránka ($1)",
"trackingcategories-msg": "Sledovacia kategória",
"trackingcategories-name": "Názov správy",
"trackingcategories-desc": "Kritériá pre zaradenie do kategórie",
- "noindex-category-desc": "Stránka nieje indexovaná robotmi, pretože obsahuje magické slovo <code><nowiki>__NOINDEX__</nowiki></code> a je v mennom priestore, v ktorom je tento príznak povolený.",
+ "noindex-category-desc": "Stránka nie je indexovaná robotmi, pretože obsahuje magické slovo <code><nowiki>__NOINDEX__</nowiki></code> a je v mennom priestore, v ktorom je tento príznak povolený.",
+ "index-category-desc": "Stránka obsahuje magické slovo <code><nowiki>__INDEX__</nowiki></code> (a je v mennom prostore, v ktorom je tento príznak povolený), takže je indexovaná robotmi, hoci by normálne nebola.",
+ "post-expand-template-inclusion-category-desc": "Stránka je po rozbalení všetkých šablón väčšia než <code>$wgMaxArticleSize</code>, takže niektoré šablóny nemohli byť rozbalené.",
+ "post-expand-template-argument-category-desc": "Stránka je po rozbalení parametrov šablón (niečo v trojitých zátvorkách, napr. <code>{{{Foo}}}</code>) väčšia než <code>$wgMaxArticleSize</code>.",
+ "expensive-parserfunction-category-desc": "Stránka používa priveľa náročných funkcií syntaktického analyzátoru (ako <code>#ifexist</code>). Pozri [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+ "broken-file-category-desc": "Stránka obsahuje nefunkčný odkaz na súbor (odkaz na neexistujúci súbor).",
+ "hidden-category-category-desc": "Kategória vo svojom zdrojovom kóde obsahuje <code><nowiki>__HIDDENCAT__</nowiki></code>, čo má za následok, že sa na stránkach medzi odkazmi na kategórie implicitne nezobrazuje.",
"trackingcategories-nodesc": "Popis nie je k dispozícii.",
"trackingcategories-disabled": "Kategória je vypnutá",
"mailnologin": "Žiadna adresa na zaslanie",
"emailccsubject": "Kópia správy pre $1: $2",
"emailsent": "E-mail bol odoslaný",
"emailsenttext": "Vaša e-mailová správa bola odoslaná.",
- "emailuserfooter": "Tento email poslal $1 používateľovi $2 pomocou funkcie „Email používateľovi” na {{GRAMMAR:lokál|{{SITENAME}}}}.",
+ "emailuserfooter": "Tento e-mail poslal/-a/ $1 používateľovi $2 pomocou funkcie „E-mail používateľovi” na {{GRAMMAR:lokál|{{SITENAME}}}}.",
"usermessage-summary": "Zanechanie správy systému.",
"usermessage-editor": "Správy systému",
"watchlist": "Sledované stránky",
"watchnologin": "Nie ste prihlásený/á",
"addwatch": "Pridať do zoznamu sledovaných stránok",
"addedwatchtext": "Stránka „[[:$1]]“ bola pridaná do vášho zoznamu [[Special:Watchlist|sledovaných stránok]].\nBudú tam uvedené aj budúce úpravy tejto stránky a jej diskusie.",
+ "addedwatchtext-short": "Stránka „$1“ bola pridaná do vášho zoznamu sledovaných.",
"removewatch": "Odstrániť zo zoznamu sledovaných",
"removedwatchtext": "Stránka „[[:$1]]“ bola odstránená z vášho [[Special:Watchlist|zoznamu sledovaných stránok]].",
+ "removedwatchtext-short": "Stránka „$1“ bola odstránená z vášho zoznamu sledovaných.",
"watch": "Sledovať",
"watchthispage": "Sledovať túto stránku",
"unwatch": "Nesledovať",
"protect-locked-blocked": "Nemôžete meniť úroveň ochrany, kým ste zablokovaný.\nTu sú aktuálne nastavenia stránky '''$1''':",
"protect-locked-dblock": "Nie je možné zmeniť úroveň ochrany z dôvodu aktívneho zámku databázy.\nTu sú aktuálne nastavenia stránky '''$1''':",
"protect-locked-access": "Váš účet nemá oprávnenie meniť úroveň ochrany stránky.\nTu sú aktuálne nastavenia stránky '''$1''':",
- "protect-cascadeon": "Táto stránka je momentálne zamknutá, lebo je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá má|nasledovných stránkach, ktoré majú}} zapnutú kaskádovú ochranu. Môžete zmeniť úroveň ochrany tejto stránky, ale neovplyvní to kaskádovú ochranu.",
+ "protect-cascadeon": "Táto stránka je momentálne zamknutá, lebo je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá má|nasledovných stránkach, ktoré majú}} zapnutú kaskádovú ochranu. Zmeny úrovne ochrany tejto stránky neovplyvnia kaskádovú ochranu.",
"protect-default": "Povoliť všetkých používateľov",
"protect-fallback": "Povoliť iba používateľov s oprávnením „$1“",
"protect-level-autoconfirmed": "Povoliť iba používateľov s potvrdeným emailom",
"protect-othertime": "Iný čas:",
"protect-othertime-op": "iný čas",
"protect-existing-expiry": "Súčasný čas ukončenia: $2, $3",
+ "protect-existing-expiry-infinity": "Súčasný čas ukončenia: do odvolania",
"protect-otherreason": "Iný/ďalší dôvod:",
"protect-otherreason-op": "Iný/ďalší dôvod",
"protect-dropdown": "* Bežné dôvody zamknutia\n** Nadmerný vandalizmus\n** Nadmerný spam\n** Neproduktívne upravovacie vojny\n** Veľmi často naštevovaná stránka",
"namespace": "Menný priestor:",
"invert": "Invertovať výber",
"tooltip-invert": "Zaškrtnite, ak chcete skryť zmeny na stránkach vo vybranom mennom priestore (a súvisiaci menný priestor ak je zaškrtnuté)",
+ "tooltip-whatlinkshere-invert": "Zaškrtnutím tohoto políčka skryjete odkazy zo stránok vo zvolenom mennom priestore.",
"namespace_association": "Asociovaný menný priestor",
"tooltip-namespace_association": "Zaškrtnite, ak chcete zahrnúť aj diskusné stránky alebo predmetový menný priestor spojený s vybraným menným priestorom",
"blanknamespace": "(Hlavný)",
"contributions-title": "Príspevky používateľa pre $1",
"mycontris": "Príspevky",
"contribsub2": "Príspevky {{GENDER:$3|$1}} ($2)",
+ "contributions-userdoesnotexist": "Používateľské konto „$1“ nie je zaregistrované.",
"nocontribs": "Neboli nájdené úpravy, ktoré by zodpovedali týmto kritériám.",
"uctop": "(aktuálne)",
"month": "Mesiac:",
"sp-contributions-blocked-notice-anon": "Táto IP adresa je momentálne zablokovaná.\nNižšie si môžete pozrieť najnovšiu položku záznamu blokovaní:",
"sp-contributions-search": "Hľadať príspevky",
"sp-contributions-username": "IP adresa alebo meno používateľa:",
- "sp-contributions-toponly": "Zobraziť iba posledné revízie",
+ "sp-contributions-toponly": "Zobraziť len posledné revízie",
+ "sp-contributions-newonly": "Zobraziť len založenia stránok",
"sp-contributions-submit": "Hľadať",
"whatlinkshere": "Odkazy na túto stránku",
"whatlinkshere-title": "Stránky odkazujúce na „$1“",
"blockipsuccesstext": "[[Special:Contributions/$1|$1]] bol zablokovaný.<br />\n[[Special:BlockList|IP block list]] obsahuje zoznam blokovaní.",
"ipb-blockingself": "Chystáte sa zablokovať sám seba! Ste si istí, že to chcete urobiť?",
"ipb-confirmhideuser": "Chystáte sa zablokovať používateľa so zapnutou funkciou „skryť používateľa“. Tým sa potlačí meno používateľa vo všetkých zoznamoch a záznamoch. Ste si istí, že chcete urobiť?",
+ "ipb-confirmaction": "Ak ste si {{GENDER:|istý|istá|istí}}, že to chcete urobiť, zaškrtnite prepínač „{{int:ipb-confirm}}“ nižšie.",
"ipb-edit-dropdown": "Upraviť dôvody pre blokovanie",
"ipb-unblock-addr": "Odblokovať $1",
"ipb-unblock": "Odblokovať používateľa alebo IP adresu",
"unblocked": "[[User:$1|$1]] bol odblokovaný",
"unblocked-range": "$1 bol odblokovaný",
"unblocked-id": "Blokovanie $1 bolo odstránené",
+ "unblocked-ip": "Adresa [[Special:Contributions/$1|$1]] bola odblokovaná.",
"blocklist": "Zablokovaní používatelia",
"ipblocklist": "Zablokovaní používatelia",
"ipblocklist-legend": "Nájsť zablokovaného používateľa",
"movepagetalktext": "Príslušná diskusná stránka (ak existuje) bude premiestnená spolu so samotnou stránkou; '''nestane sa tak, iba ak:'''\n*už existuje Diskusná stránka pod týmto novým menom, alebo\n*nezaškrtnete nižšie sa nachádzajúci textový rámček.\n\nV takých prípadoch budete musieť, ak si to želáte, premiestniť alebo zlúčiť stránku ručne.",
"movearticle": "Presunúť stránku",
"moveuserpage-warning": "'''Upozornenie:''' Chystáte sa presunúť používateľskú stránku. Pamätajte, že týmto presuniete iba stránku a používateľ ''nebude'' premenovaný.",
+ "movecategorypage-warning": "<strong>Upozornenie:</strong> Chystáte sa presunúť stránku kategórie. Uvedomte si, že presunutá bude iba táto stránka a že žiadne stránky v pôvodnej kategórii <em>nebudú</em> do novej kategórie automaticky preradené.",
"movenologintext": "Musíte byť registrovaný používateľ a [[Special:UserLogin|prihlásený]], aby ste mohli presunúť stránku.",
- "movenotallowed": "Nemáte povolenie presúvať stránky.",
+ "movenotallowed": "Nemáte oprávnenie presúvať stránky.",
"movenotallowedfile": "Nemáte oprávnenie presúvať súbory.",
- "cant-move-user-page": "Nemáte povolenie presúvať koreňové stránky používateľov.",
+ "cant-move-user-page": "Nemáte oprávnenie presúvať koreňové stránky používateľov.",
"cant-move-to-user-page": "Nemáte oprávnenie presunúť stránku na stránku používateľa (iba na podstránku používateľa).",
+ "cant-move-category-page": "Nemáte oprávnenie presúvať stránky kategórií.",
+ "cant-move-to-category-page": "Nemáte oprávnenie presunúť stránku na stránku kategórie.",
"newtitle": "Na nový názov:",
"move-watch": "Sledovať túto stránku",
"movepagebtn": "Presunúť stránku",
"javascripttest": "Testovanie JavaScriptu",
"javascripttest-pagetext-noframework": "Táto stránka je vyhradená pre testy JavaScriptu.",
"javascripttest-pagetext-unknownframework": "Neznáma testovacia platfoma „$1“.",
+ "javascripttest-pagetext-unknownaction": "Neznáma akcia: „$1“.",
"javascripttest-pagetext-frameworks": "Prosím vyberte jednu z nasledovných testovacích platforiem: $1",
"javascripttest-pagetext-skins": "Vyberte tému vzhľadu, na ktorej chcete spustiť testy:",
"javascripttest-qunit-intro": "Pozri [$1 dokumentácia testovania] na mediawiki.org.",
"tooltip-n-mainpage-description": "Navštíviť hlavnú stránku",
"tooltip-n-portal": "O projekte, ako môžete prispieť, kde čo nájsť",
"tooltip-n-currentevents": "Aktuálne udalosti a ich pozadie",
- "tooltip-n-recentchanges": "Zoznam posledných úprav na wiki",
+ "tooltip-n-recentchanges": "Zoznam posledných úprav na tejto wiki",
"tooltip-n-randompage": "Zobraziť náhodnú stránku",
- "tooltip-n-help": "Miesto, kde sa môžete dozvedieť",
+ "tooltip-n-help": "Miesto, kde nájdete pomoc",
"tooltip-t-whatlinkshere": "Zoznam všetkých wiki stránok, ktoré sem odkazujú",
"tooltip-t-recentchangeslinked": "Posledné úpravy v stránkach, na ktoré odkazuje táto stránka",
"tooltip-feed-rss": "RSS feed pre túto stránku",
"tooltip-feed-atom": "Kanál Atom pre túto stránku",
"tooltip-t-contributions": "Pozrieť si zoznam príspevkov od tohto používateľa",
"tooltip-t-emailuser": "Poslať e-mail tomuto používateľovi",
+ "tooltip-t-info": "Viac informácií o tejto stránke",
"tooltip-t-upload": "Nahranie súborov",
"tooltip-t-specialpages": "Zoznam všetkých špeciálnych stránok",
"tooltip-t-print": "Verzia tejto stránky pre tlač",
"pageinfo-protect-cascading-yes": "Áno",
"pageinfo-protect-cascading-from": "Zámky pochádzajú z kaskádových zamknutí",
"pageinfo-category-info": "Informácie o kategórii",
+ "pageinfo-category-total": "Celkový počet členov",
"pageinfo-category-pages": "Počet stránok",
"pageinfo-category-subcats": "Počet podkategórií",
"pageinfo-category-files": "Počet súborov",
"patrol-log-page": "Záznam strážení",
"patrol-log-header": "Toto je záznam strážených revízií.",
"log-show-hide-patrol": "záznam stráženia $1",
+ "log-show-hide-tag": "záznam značiek $1",
"deletedrevision": "Zmazať staré verzie $1",
"filedeleteerror-short": "Chyba pri mazaní súboru: $1",
"filedeleteerror-long": "Vyskytli sa chyby pri mazaní súboru:\n\n$1",
"confirmemail_loggedin": "Vaša e-mailová adresa bola potvrdená.",
"confirmemail_subject": "{{SITENAME}} - potvrdenie e-mailovej adresy",
"confirmemail_body": "Niekto, pravdepodobne vy z IP adresy $1, zaregistroval účet\n„$2“ s touto e-mailovou adresou na {{GRAMMAR:lokál|{{SITENAME}}}}.\n\nPre potvrdenie, že tento účet skutočne patrí vám a pre aktivovanie\ne-mailových funkcií na {{GRAMMAR:lokál|{{SITENAME}}}}, otvorte tento odkaz vo vašom prehliadači:\n\n$3\n\nAk ste to *neboli* vy, otvorte tento odkaz,\nčím zrušíte potvrdenie emailovej adresy:\n\n$5\n\nTento potvrdzovací kód vyprší $4.",
- "confirmemail_body_changed": "Niekto, pravdepodobne vy, z IP adresy $1,\nzmenil emailovú adresu účtu „$2“ na túto adresu na {{GRAMMAR:lokál|{{SITENAME}}}}.\n\nAby ste potvrdili, že tento účet skutočne patrí vám a znova\naktivovali funkcie emailu na{{GRAMMAR:lokál|{{SITENAME}}}},\notvorte nasledovný odkaz v prehliadači:\n\n$3\n\nAk vám účet *nepatrí*, otvorte namiesto toho tento odkaz,\nktorý zruší potvrdenie emailovej adresy:\n\n$5\n\nPlatnosť tohto potvrdzovacieho kódu vyprší $4.",
+ "confirmemail_body_changed": "Niekto, pravdepodobne vy, z IP adresy $1,\nzmenil e-mailovú adresu účtu „$2“ na túto adresu na {{GRAMMAR:lokál|{{SITENAME}}}}.\n\nAby ste potvrdili, že tento účet skutočne patrí vám a znova\naktivovali funkcie emailu na{{GRAMMAR:lokál|{{SITENAME}}}},\notvorte nasledovný odkaz v prehliadači:\n\n$3\n\nAk vám účet *nepatrí*, otvorte namiesto toho tento odkaz,\nktorý zruší potvrdenie emailovej adresy:\n\n$5\n\nPlatnosť tohoto potvrdzovacieho kódu vyprší $4.",
"confirmemail_body_set": "Niekto, pravdepodobne vy, z IP adresy $1\nnastavil e-mailovú adresu účtu „$2“ na túto adresu na {{GRAMMAR:genitív|{{SITENAME}}}}.\n\nAk chcete potvrdiť, že tento účet skutočne patrí vám a aktivovať\ne-mailové funkcie na {{GRAMMAR:genitív|{{SITENAME}}}}, otvorte tento odkaz vo vašom prehliadači:\n\n$3\n\nAk účet nie je *nepatrí* patrí k vám, nasledujte tento odkaz,\nktorý zruší potvrdenie e-mailovej adresy:\n\n$5\n\nPlatnosť tohto potvrdzovacieho kódu vyprší $4.",
"confirmemail_invalidated": "Potvrdenie emailovej adresy bolo zrušené",
"invalidateemail": "Zrušiť potvrdenie emailovej adresy",
"lag-warn-high": "Kvôli dlhšej odozve databázového servera nemusia byť úpravy za {{PLURAL:$1|poslednú sekundu|posledné $1 sekundy|posledných $1 sekúnd}} v tomto zozname zobrazené.",
"watchlistedit-normal-title": "Upraviť zoznam sledovaných stránok",
"watchlistedit-normal-legend": "Odstrániť všetky stránky zo zoznamu sledovaných stránok",
- "watchlistedit-normal-explain": "Nižšie sú zobrazené stránky z vášho zoznamu sledovaných stránok.\nAk chcete odstrániť položku, začiarknite políčko vedľa nej a kliknite na „{{int:Watchlistedit-normal-submit}}“. Tiež môžete [[Special:EditWatchlist/raw|upravovať nespracovaný zoznam]].",
+ "watchlistedit-normal-explain": "Nižšie sú zobrazené stránky z vášho zoznamu sledovaných stránok.\nAk chcete odstrániť položku, zaškrtnite políčko vedľa nej a kliknite na „{{int:Watchlistedit-normal-submit}}“. Môžete tiež [[Special:EditWatchlist/raw|upraviť textovú verziu zoznamu]].",
"watchlistedit-normal-submit": "Odstrániť položky",
"watchlistedit-normal-done": "{{PLURAL:$1|jedna položka bola odstránená|$1 položky boli odstránené|$1 položiek bolo odstránených}} z vášho zoznamu sledovaných stránok:",
- "watchlistedit-raw-title": "Upravovať nespracovaný zoznam sledovaných stránok",
- "watchlistedit-raw-legend": "Upravovať nespracovaný zoznam sledovaných stránok",
- "watchlistedit-raw-explain": "Nižšie sú zobrazené stránky z vášho zoznamu sledovaných stránok.\nAk chcete upravovať položky, pridajte alebo odstráňte ich zo zoznamu tak, aby na každom riadku bola práve jedna.\nPo skončení kliknite na „{{int:Watchlistedit-raw-submit}}“.\nTiež môžete [[Special:EditWatchlist|použiť štandardný editor]].",
+ "watchlistedit-raw-title": "Upraviť textovú verziu zoznamu sledovaných",
+ "watchlistedit-raw-legend": "Upraviť textovú verziu zoznamu sledovaných",
+ "watchlistedit-raw-explain": "Nižšie sú zobrazené stránky z vášho zoznamu sledovaných stránok.\nAk chcete upravovať položky, pridajte alebo odstráňte ich zo zoznamu tak, aby na každom riadku bola práve jedna.\nPo skončení kliknite na „{{int:Watchlistedit-raw-submit}}“.\nMôžete tiež [[Special:EditWatchlist|použiť štandardný editor]].",
"watchlistedit-raw-titles": "Stránky:",
"watchlistedit-raw-submit": "Aktualizovať zoznam sledovaných stránok",
"watchlistedit-raw-done": "Váš zoznam sledovaných stránok bol aktualizovaný.",
"watchlistedit-clear-submit": "Vyprázdniť zoznam sledovaných stránok (natrvalo!)",
"watchlistedit-clear-done": "Váš zoznam sledovaných stránok bol vyprázdnený.",
"watchlistedit-clear-removed": "{{PLURAL:$1|Bol odstránený jeden názov|Boli odstránené $1 názvy|Bolo odstránených $1 názvov}}:",
+ "watchlistedit-too-many": "Zoznam obsahuje priveľa stránok na zobrazenie.",
"watchlisttools-clear": "Vyprázdniť zoznam sledovaných stránok",
"watchlisttools-view": "Zobraziť súvisiace zmeny",
"watchlisttools-edit": "Zobraziť a upraviť zoznam sledovaných stránok",
- "watchlisttools-raw": "Upraviť nespracovaný zoznam sledovaných stránok",
+ "watchlisttools-raw": "Upraviť textovú verziu zoznamu sledovaných stránok",
"iranian-calendar-m1": "Farvardín",
"signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskusia]])",
"duplicate-defaultsort": "Upozornenie: Štandardný kláves na zoraďovanie „$2“ nahrádza starý kláves „$1“.",
"tags-active-no": "Nie",
"tags-edit": "upraviť",
"tags-hitcount": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
+ "tags-deactivate-reason": "Dôvod:",
+ "tags-edit-title": "Upraviť značky",
+ "tags-edit-new-tags": "Nové značky:",
+ "tags-edit-remove": "Odstrániť tieto značky:",
+ "tags-edit-chosen-placeholder": "Vyberte niektoré značky",
+ "tags-edit-reason": "Dôvod",
"comparepages": "Porovnať stránky",
"compare-page1": "Stránka 1",
"compare-page2": "Stránka 2",
"htmlform-chosen-placeholder": "Vyberte možnosť",
"htmlform-cloner-create": "Pridať ďalšie",
"htmlform-cloner-delete": "Odstrániť",
+ "htmlform-cloner-required": "Je povinná najmenej jedna hodnota.",
"sqlite-has-fts": "$1 s podporou vyhľadávania v plnom texte",
"sqlite-no-fts": "$1 bez podpory vyhľadávania v plnom texte",
"logentry-delete-delete": "$1 zmazal stránku $3",
"revdelete-uname-unhid": "používateľské meno odkryté",
"revdelete-restricted": "obmedzenia správcov použité",
"revdelete-unrestricted": "obmedzenia správcov odstránené",
+ "logentry-block-block": "$1 {{GENDER:$2|zablokoval|zablokovala}} {{GENDER:$4|používateľa|používateľku}} $3 s časom ukončenia $5 $6",
+ "logentry-block-unblock": "$1 {{GENDER:$2|odblokoval|odblokovala}} {{GENDER:$4|používateľa|používateľku}} $3",
+ "logentry-block-reblock": "$1 {{GENDER:$2|zmenil|zmenila}} nastavenia bloku {{GENDER:$4|používateľa|používateľky}} $3 s časom ukončenia $5 $6",
+ "logentry-suppress-block": "$1 {{GENDER:$2|zablokoval|zablokovala}} {{GENDER:$4|používateľa|používateľku}} $3 s časom ukončenia $5 $6",
+ "logentry-suppress-reblock": "$1 {{GENDER:$2|zmenil|zmenila}} nastavenia bloku {{GENDER:$4|používateľa|používateľky}} $3 s časom ukončenia $5 $6",
"logentry-move-move": "$1 premiestnil stránku $3 na $4",
"logentry-move-move-noredirect": "$1 premiestnil stránku $3 na $4, ale neponechal presmerovanie",
"logentry-move-move_redir": "$1 premiestnil stránku $3 na $4 prostredníctvom presmerovania",
"feedback-bugornote": "Ak ste pripravený podrobne popísať technický problém, prosím pošlite [$1 hlásenie o chybe]. \nV opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš komentár sa pridá na stránku „[$3 $2]“ spolu s vašim používateľským meno a prehliadačom, ktorý používate.",
"feedback-cancel": "Zrušiť",
"feedback-close": "Hotovo",
+ "feedback-error-title": "Chyba",
"feedback-error1": "Chyba: Nerozpoznaný výsledok z API",
"feedback-error2": "Chyba: Úprava sa nepodarila",
"feedback-error3": "Chyba: Žiadna odpoveď z API",
"feedback-subject": "Predmet:",
"feedback-submit": "Odoslať",
"feedback-thanks": "Ďakujeme. Váš komentár bol odoslaný na stránku „[$2 $1]“.",
+ "feedback-thanks-title": "Ďakujeme",
+ "feedback-useragent": "Prehliadač:",
"searchsuggest-search": "Hľadať",
"searchsuggest-containing": "obsahuje...",
"api-error-badaccess-groups": "Nemáte oprávnenie nahrávať súbory na tejto wiki.",
"expand_templates_input": "Vstupný text:",
"expand_templates_output": "Výsledok",
"expand_templates_xml_output": "XML výstup",
+ "expand_templates_html_output": "Surový HTML výstup",
"expand_templates_ok": "OK",
"expand_templates_remove_comments": "Odstrániť komentáre",
"expand_templates_remove_nowiki": "Potlačiť značky <nowiki> vo výsledku",
"expand_templates_generate_xml": "Zobraziť strom XML",
+ "expand_templates_generate_rawhtml": "Zobraziť surové HTML",
"expand_templates_preview": "Náhľad",
"pagelang-name": "Stránka",
"pagelang-language": "Jazyk",
"mediastatistics-header-text": "Text",
"mediastatistics-header-executable": "Spustiteľné súbory",
"mediastatistics-header-archive": "Komprimované formáty",
+ "json-error-state-mismatch": "Nesprávny alebo poškodený JSON",
+ "json-error-syntax": "Syntaktická chyba",
"headline-anchor-title": "Odkaz na túto sekciu",
"special-characters-group-latin": "Latinka",
"special-characters-group-latinextended": "Latina rozšírené",
"special-characters-group-persian": "Perzský",
"special-characters-group-hebrew": "Hebrejské",
"special-characters-group-bangla": "Bengálčina",
+ "special-characters-group-tamil": "Tamilčina",
"special-characters-group-telugu": "Telugčina",
- "special-characters-group-sinhala": "sinhalčina",
- "special-characters-group-gujarati": "gudžarátčina",
+ "special-characters-group-sinhala": "Sinhalčina",
+ "special-characters-group-gujarati": "Gudžarátčina",
+ "special-characters-group-devanagari": "Dévanágarí",
"special-characters-group-thai": "Thajské",
"special-characters-group-lao": "Laoské",
- "special-characters-group-khmer": "Khmer"
+ "special-characters-group-khmer": "Khmer",
+ "special-characters-title-endash": "pomlčka",
+ "special-characters-title-emdash": "dlhá pomlčka",
+ "special-characters-title-minus": "mínus"
}
"content-model-css": "CSS",
"content-json-empty-object": "Prazen objekt",
"content-json-empty-array": "Prazno polje",
+ "duplicate-args-warning": "<strong>Opozorilo:</strong> [[:$1]] kliče [[:$2]] z več kot eno vrednostjo za parameter »$3«. Uporabili bomo samo zadnjo navedeno vrednost.",
"duplicate-args-category": "Strani s podvojenimi argumenti v klicih predlog",
"duplicate-args-category-desc": "Stran vsebuje klice predlog, ki vsebujejo dvojnike argumentov, kot sta <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ali <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "'''Opozorilo:''' Ta stran vsebuje preveč klicev funkcije razčlenjevalnika kode.\n\nStran naj bi vsebovala manj kot $2 {{PLURAL:$2|klic|klica|klice|klicev}}, trenutno {{PLURAL:$1|je v uporabi $1 klic|sta v uporabi $1 klica|so v uporabi $1 klici|je v uporabi $1 klicev}}.",
"showhideselectedversions": "Prikaži/skrij izbrane redakcije",
"editundo": "razveljavi",
"diff-empty": "(Ni razlike)",
- "diff-multi-sameuser": "({{PLURAL:$1|1=Vmesna redakcija|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} istega uporabnika ni prikazana)",
- "diff-multi-otherusers": "({{PLURAL:$1|1=Vmesna redakcija|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} {{PLURAL:$2|1=drugega uporabnika|$2 uporabnikov}} ni prikazana)",
+ "diff-multi-sameuser": "({{PLURAL:$1|1=Vmesna redakcija|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} istega uporabnika {{PLURAL:$1|ni prikazana|nista prikazani|niso prikazane|ni prikazanih}})",
+ "diff-multi-otherusers": "({{PLURAL:$1|1=Vmesna redakcija|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} {{PLURAL:$2|1=drugega uporabnika|$2 uporabnikov}} {{PLURAL:$1|ni prikazana|nista prikazani|niso prikazane|ni prikazanih}})",
"diff-multi-manyusers": "({{PLURAL:$1|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} več kot $2 {{PLURAL:$2|uporabnika|uporabnikov}} {{PLURAL:$1|ni prikazana|nista prikazani|niso prikazane|ni prikazanih}})",
"difference-missing-revision": "{{PLURAL:$2|Ene redakcije|$2 redakcij}} razlike ($1) {{PLURAL:$2|nisem}} našel.\n\nPo navadi se to zgodi, ko sledite zastareli povezavi na razliko redakcij strani, ki jo je nekdo izbrisal.\nPodrobnosti lahko najdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dnevniku brisanja].",
"searchresults": "Izid iskanja",
"badsig": "Neveljaven surovi podpis; preverite oznake HTML.",
"badsiglength": "Vaš podpis je preobsežen.\nNe sme biti daljši od $1 {{PLURAL:$1|znaka|znakov}}.",
"yourgender": "Kako vam je ljubše, da vas opišemo?",
- "gender-unknown": "ne želim navesti",
+ "gender-unknown": "Ko boste omenjeni, bo programje uporabilo nevtralen spol, kjer je to mogoče",
"gender-male": "On ureja wikistrani.",
"gender-female": "Ona ureja wikistrani.",
"prefs-help-gender": "Nastavitev ni obvezna.\nProgramje uporablja njeno vrednost za vaše naslavljanje in omenjanje v ustreznem slovničnem spolu.\nPodatek bo javno prikazan.",
"uploaddisabledtext": "Nalaganje datotek je onemogočeno.",
"php-uploaddisabledtext": "Nalaganje datotek je onemogočeno v PHP.\nProsimo preverite file_uploads nastavitev.",
"uploadscripted": "Datoteka vsebuje HTML- ali skriptno kodo, ki bi jo lahko brskalnik razlagal napačno.",
+ "upload-scripted-pi-callback": "Ne moremo naložiti datoteke, ki vsebuje navodila za slogovno obdelavo XML.",
+ "uploaded-script-svg": "V naloženi datoteki SVG smo našli skriptni element »$1«.",
+ "uploaded-hostile-svg": "V slogovnem elementu naložene datoteke SVG smo našli nevaren CSS.",
+ "uploaded-event-handler-on-svg": "Določevanje atributov za dogodke <code>$1=\"$2\"</code> v datotekah SVG ni dovoljeno.",
+ "uploaded-href-attribute-svg": "Atributi href <code><$1 $2=\"$3\"></code> z nelokalnimi cilji (npr. http://, javascript: idr.) v datotekah SVG niso dovoljeni.",
+ "uploaded-href-unsafe-target-svg": "V naloženi datoteki SVG smo našli href z nevarnim ciljem <code><$1 $2=\"$3\"></code>.",
+ "uploaded-animate-svg": "V naloženi datoteki SVG smo našli oznako »animate«, ki lahko spreminja href z uporabo atributa »from« <code><$1 $2=\"$3\"></code>.",
+ "uploaded-setting-event-handler-svg": "Določevanje atributov za dogodke je blokirano; v naloženi datoteki SVG smo našli <code><$1 $2=\"$3\"></code>.",
+ "uploaded-setting-href-svg": "Uporaba oznake »set« za določevanje atributa »href« starševskega elementa je blokirano.",
+ "uploaded-wrong-setting-svg": "Uporaba oznake »set« za dodajanje oddaljenega/podatkovnega/skriptnega cilja kateremu koli atributu je blokirano. V naloženi datoteki SVG smo našli <code><set to=\"$1\"></code>.",
+ "uploaded-setting-handler-svg": "SVG, ki nastavi atribut »handler« z oddaljenim/podatkovnim/skriptom ciljem, je blokiran. V naloženi datoteki SVG smo našli <code>$1=\"$2\"</code>.",
+ "uploaded-remote-url-svg": "SVG, ki določi kateri koli slogovni atribut z oddaljenim URL-jem, je blokiran. V naloženi datoteki SVG smo našli <code>$1=\"$2\"</code>.",
+ "uploaded-image-filter-svg": "V naloženi datoteki SVG smo našli slikovni filter z URL-jem: <code><$1 $2=\"$3\"></code>.",
"uploadscriptednamespace": "Datoteka SVG vsebuje nedovoljen imenski prostor »$1«",
"uploadinvalidxml": "XML v naloženi datoteki ne moremo razčleniti.",
"uploadvirus": "Datoteka vsebuje virus!\nPodrobnosti: $1",
"currentrev": "Текућа измена",
"currentrev-asof": "Текућа измена од $2 у $3",
"revisionasof": "Измена од $2 у $3",
- "revision-info": "Измена од $1; {{GENDER:$6|$2}}$7",
+ "revision-info": "Измена од $1 коју је {{GENDER:$6|уредио $2|уредила $2}}$7",
"previousrevision": "← Старија измена",
"nextrevision": "Новија измена →",
"currentrevisionlink": "Текућа измена",
"currentrev": "Tekuća izmena",
"currentrev-asof": "Tekuća izmena od $2 u $3",
"revisionasof": "Izmena od $2 u $3",
- "revision-info": "Izmena od $1; {{GENDER:$6|$2}}$7",
+ "revision-info": "Izmena od $1 koju je {{GENDER:$6|uredio $2|uredila $2}}$7",
"previousrevision": "← Starija izmena",
"nextrevision": "Novija izmena →",
"currentrevisionlink": "Tekuća izmena",
"Sociologist",
"Xexdof",
"Arystanbek",
- "6ahodir"
+ "6ahodir",
+ "Таржимон"
]
},
"tog-underline": "Havolalarning tagiga chizish:",
"badsig": "错误的原始签名。请检查HTML标签。",
"badsiglength": "签名过长。请不超过$1个字符。",
"yourgender": "您希望使用什么性别称呼?",
- "gender-unknown": "我不愿意指明",
+ "gender-unknown": "当提及您时,软件将使用性别中性的词汇(只要可能)",
"gender-male": "他",
"gender-female": "她",
"prefs-help-gender": "该设置为可选项。软件根据该值在称呼您及对他人提及您时使用适当的语法性别。该信息会被公开。",
"uploaddisabledtext": "已停用檔案上傳。",
"php-uploaddisabledtext": "PHP 已停用檔案上傳。\n請檢查 file_uploads 設定。",
"uploadscripted": "此檔案包含可能會被網頁瀏覽器錯誤執行的 HTML 或 Script。",
- "upload-scripted-pi-callback": "無法上傳包含 xml-stylesheet 處理命令的檔案。",
+ "upload-scripted-pi-callback": "無法上傳包含 XML-stylesheet 處理命令的檔案。",
"uploaded-script-svg": "於已上傳的 SVG 檔案中找到可程式的腳本標籤 \"$1\"。",
"uploaded-hostile-svg": "於已上傳的 SVG 檔案的樣式標籤中找到不安全的 CSS。",
"uploaded-event-handler-on-svg": "不允許在 SVG 檔案設定 event-handler 屬性 <code>$1=\"$2\"</code>。",
- "uploaded-href-attribute-svg": "不允許在 SVG 檔案中的 Href 屬性 <code><$1 $2=\"$3\"></code> 使用非本地的目標 (例如 http://, javascript:, 等)。",
+ "uploaded-href-attribute-svg": "不允許在 SVG 檔案中的 href 屬性 <code><$1 $2=\"$3\"></code> 使用非本地的目標 (例如 http://, javascript:, 等)。",
"uploaded-href-unsafe-target-svg": "於已上傳的 SVG 檔案中找到 href 連結至不安全的目標 <code><$1 $2=\"$3\"></code>。",
"uploaded-animate-svg": "於已上傳的 SVG 檔案中找到 \"animate\" 標籤可能會使用 \"from\" 屬性 <code><$1 $2=\"$3\"></code> 更改 href。",
"uploaded-setting-event-handler-svg": "於已上傳的 SVG 檔案中找到 <code><$1 $2=\"$3\"></code>,已禁止設定 event-handler 屬性。",
*
*/
-$fallback = 'aeb-arab';
\ No newline at end of file
+$fallback = 'aeb-arab';
$fallback = 'ar';
-$rtl = true;
\ No newline at end of file
+$rtl = true;
*
*/
-$fallback = 'gom-deva';
\ No newline at end of file
+$fallback = 'gom-deva';
NS_HELP_TALK => 'मजत_चर्चा',
NS_CATEGORY => 'श्रेणी',
NS_CATEGORY_TALK => 'श्रेणी_चर्चा',
-);
\ No newline at end of file
+);
$defaultDateFormat = 'pnt';
-
-
$dateFormats = array(
'pnt time' => 'H:i',
'pnt date' => 'j xg Y',
}
$maintClass = 'CheckComposerLockUpToDate';
-require_once RUN_MAINTENANCE_IF_MAIN;
\ No newline at end of file
+require_once RUN_MAINTENANCE_IF_MAIN;
public function __construct() {
parent::__construct();
$this->mDescription = 'Converts extension entry points to the new JSON registration format';
- $this->addArg( 'path', 'Location to the PHP entry point you wish to convert', /* $required = */ true );
+ $this->addArg( 'path', 'Location to the PHP entry point you wish to convert',
+ /* $required = */ true );
$this->addOption( 'skin', 'Whether to write to skin.json', false, false );
}
}
if ( isset( $this->custom[$realName] ) ) {
- call_user_func_array( array( $this, $this->custom[$realName] ), array( $realName, $value, $vars ) );
+ call_user_func_array( array( $this, $this->custom[$realName] ),
+ array( $realName, $value, $vars ) );
} elseif ( in_array( $realName, $globalSettings ) ) {
$this->json[$realName] = $value;
} elseif ( array_key_exists( $realName, $this->noLongerSupportedGlobals ) ) {
protected function handleExtensionFunctions( $realName, $value ) {
foreach ( $value as $func ) {
if ( $func instanceof Closure ) {
- $this->error( "Error: Closures cannot be converted to JSON. Please move your extension function somewhere else.", 1 );
+ $this->error( "Error: Closures cannot be converted to JSON. " .
+ "Please move your extension function somewhere else.", 1
+ );
}
}
$this->json[$realName] = $out;
}
- protected function handleCredits( $realName, $value) {
+ protected function handleCredits( $realName, $value ) {
$keys = array_keys( $value );
$this->json['type'] = $keys[0];
$values = array_values( $value );
foreach ( $value as $hookName => $handlers ) {
foreach ( $handlers as $func ) {
if ( $func instanceof Closure ) {
- $this->error( "Error: Closures cannot be converted to JSON. Please move the handler for $hookName somewhere else.", 1 );
+ $this->error( "Error: Closures cannot be converted to JSON. " .
+ "Please move the handler for $hookName somewhere else.", 1
+ );
}
}
}
}
}
-
$this->json[$realName][$name] = $data;
}
if ( $defaults ) {
public function __construct() {
$this->mDescription = 'Exports site definitions the sites table to XML file';
- $this->addArg( 'file', 'A file to write the XML to (see docs/sitelist.txt). Use "php://stdout" to write to stdout.', true );
+ $this->addArg( 'file', 'A file to write the XML to (see docs/sitelist.txt). ' .
+ 'Use "php://stdout" to write to stdout.', true
+ );
parent::__construct();
}
$handle = fopen( $file, 'w' );
- if ( !$handle ) {
+ if ( !$handle ) {
$this->error( "Failed to open $file for writing.\n", 1 );
}
}
$maintClass = 'ExportSites';
-require_once( RUN_MAINTENANCE_IF_MAIN );
+require_once RUN_MAINTENANCE_IF_MAIN;
public function __construct() {
$this->mDescription = 'Imports site definitions from XML into the sites table.';
- $this->addArg( 'file', 'An XML file containing site definitions (see docs/sitelist.txt). Use "php://stdin" to read from stdin.', true );
+ $this->addArg( 'file', 'An XML file containing site definitions (see docs/sitelist.txt). ' .
+ 'Use "php://stdin" to read from stdin.', true
+ );
parent::__construct();
}
}
$maintClass = 'ImportSites';
-require_once( RUN_MAINTENANCE_IF_MAIN );
+require_once RUN_MAINTENANCE_IF_MAIN;
"classes": [
"mw.Title",
"mw.Uri",
+ "mw.RegExp",
"mw.messagePoster.*",
"mw.notification",
"mw.Notification_",
$this->error( "$path is not a valid JSON file.", 1 );
}
if ( !isset( $data->manifest_version ) ) {
- $this->output("Warning: No manifest_version set, assuming 1.\n" );
+ $this->output( "Warning: No manifest_version set, assuming 1.\n" );
// For backwards-compatability assume 1
$data->manifest_version = 1;
}
. ExtensionRegistry::MANIFEST_VERSION . "\n" );
}
$retriever = new JsonSchema\Uri\UriRetriever();
- $schema = $retriever->retrieve('file://' . $schemaPath );
+ $schema = $retriever->retrieve( 'file://' . $schemaPath );
$validator = new JsonSchema\Validator();
$validator->check( $data, $schema );
'scripts' => 'resources/src/jquery/jquery.accessKeyLabel.js',
'dependencies' => array(
'jquery.client',
- 'jquery.mwExtension',
+ 'mediawiki.RegExp',
),
'messages' => array( 'brackets', 'word-separator' ),
'targets' => array( 'mobile', 'desktop' ),
),
'jquery.highlightText' => array(
'scripts' => 'resources/src/jquery/jquery.highlightText.js',
- 'dependencies' => 'jquery.mwExtension',
+ 'dependencies' => 'mediawiki.RegExp',
'targets' => array( 'desktop', 'mobile' ),
),
'jquery.hoverIntent' => array(
'styles' => 'resources/src/jquery/jquery.tablesorter.css',
'messages' => array( 'sort-descending', 'sort-ascending' ),
'dependencies' => array(
- 'jquery.mwExtension',
+ 'mediawiki.RegExp',
'mediawiki.language.months',
),
),
),
'mediawiki.api' => array(
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.js',
- 'dependencies' => 'mediawiki.util',
+ 'dependencies' => array(
+ 'mediawiki.util',
+ 'user.tokens',
+ ),
'targets' => array( 'desktop', 'mobile' ),
),
'mediawiki.api.category' => array(
'dependencies' => array(
'mediawiki.api',
'mediawiki.Title',
- 'user.tokens',
),
'targets' => array( 'desktop', 'mobile' ),
),
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.watch.js',
'dependencies' => array(
'mediawiki.api',
- 'user.tokens',
),
),
'mediawiki.content.json' => array(
'mediawiki.htmlform' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
'dependencies' => array(
- 'jquery.mwExtension',
+ 'mediawiki.RegExp',
'jquery.byteLimit',
),
'messages' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.inspect.js',
'dependencies' => array(
'jquery.byteLength',
+ 'mediawiki.RegExp',
'json',
),
'targets' => array( 'desktop', 'mobile' ),
'scripts' => 'resources/src/mediawiki/mediawiki.notify.js',
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.RegExp' => array(
+ 'scripts' => 'resources/src/mediawiki/mediawiki.RegExp.js',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
'mediawiki.pager.tablePager' => array(
'styles' => 'resources/src/mediawiki/mediawiki.pager.tablePager.less',
'position' => 'top',
'scripts' => 'resources/src/mediawiki/mediawiki.util.js',
'dependencies' => array(
'jquery.accessKeyLabel',
- 'jquery.mwExtension',
+ 'mediawiki.RegExp',
'mediawiki.notify',
),
'position' => 'top', // For $wgPreloadJavaScriptMwUtil
'mediawiki.page.startup',
'mediawiki.util',
'jquery.accessKeyLabel',
- 'jquery.mwExtension',
+ 'mediawiki.RegExp',
),
'messages' => array(
'watch',
if ( substr( $name, 0, 5 ) === 'icons' ) {
$module['selectorWithoutVariant'] = '.oo-ui-icon-{name}, .mw-ui-icon-{name}:before';
- $module['selectorWithVariant'] = '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:before, .mw-ui-hovericon:hover .mw-ui-icon-{name}-{variant}-hover:before, .mw-ui-hovericon.mw-ui-icon-{name}-{variant}-hover:hover:before';
+ $module['selectorWithVariant'] = '.oo-ui-image-{variant} .oo-ui-icon-{name},
+ .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:before,
+ .mw-ui-hovericon:hover .mw-ui-icon-{name}-{variant}-hover:before,
+ .mw-ui-hovericon.mw-ui-icon-{name}-{variant}-hover:hover:before';
}
- $modules[ "oojs-ui.styles.$name" ] = $module;
+ $modules["oojs-ui.styles.$name"] = $module;
}
return $modules;
"زكريا",
"مشعل الحربي",
"ترجمان05",
- "Abanima"
+ "Abanima",
+ "محمد أحمد عبد الفتاح"
]
},
"ooui-outline-control-move-down": "انقل العنصر للأسفل",
"ooui-dialog-process-error": "حدث خطأ",
"ooui-dialog-process-dismiss": "أغلق",
"ooui-dialog-process-retry": "حاول مرة أخرى",
- "ooui-dialog-process-continue": "استمر"
+ "ooui-dialog-process-continue": "استمر",
+ "ooui-selectfile-not-supported": "تحديد الملفات غير مدعوم",
+ "ooui-selectfile-placeholder": "لم يختر أي ملف"
}
"ooui-dialog-message-reject": "Mégse",
"ooui-dialog-process-dismiss": "Elrejt",
"ooui-dialog-process-retry": "Próbáld újra",
- "ooui-dialog-process-continue": "Folytatás"
+ "ooui-dialog-process-continue": "Folytatás",
+ "ooui-selectfile-placeholder": "Nincs fájl kiválasztva"
}
"Minerva Titani",
"Raoli",
"Una giornata uggiosa '94",
- "Ontsed"
+ "Ontsed",
+ "Alexmar983"
]
},
"ooui-outline-control-move-down": "Sposta in basso",
"ooui-dialog-process-error": "Qualcosa è andato storto",
"ooui-dialog-process-dismiss": "Nascondi",
"ooui-dialog-process-retry": "Riprova",
- "ooui-dialog-process-continue": "Continua"
+ "ooui-dialog-process-continue": "Continua",
+ "ooui-selectfile-not-supported": "La selezione del file non è supportata",
+ "ooui-selectfile-placeholder": "Nessun file è selezionato"
}
"ooui-dialog-process-error": "Не эсе да табсыз кетди",
"ooui-dialog-process-dismiss": "Джаб",
"ooui-dialog-process-retry": "Энтда сынаб кёр",
- "ooui-dialog-process-continue": "Бардыр"
+ "ooui-dialog-process-continue": "Бардыр",
+ "ooui-selectfile-not-supported": "Файл сайлау тутулмайды",
+ "ooui-selectfile-placeholder": "Бир файл да сайланмагъанды",
+ "ooui-semicolon-separator": ";"
}
"ooui-dialog-process-error": "Er is iets misgegaan",
"ooui-dialog-process-dismiss": "Sluiten",
"ooui-dialog-process-retry": "Opnieuw proberen",
- "ooui-dialog-process-continue": "Doorgaan"
+ "ooui-dialog-process-continue": "Doorgaan",
+ "ooui-selectfile-placeholder": "Er is geen bestand geselecteerd"
}
"Spring Roll Conan",
"Waihorace",
"Cwlin0416",
- "LNDDYL"
+ "LNDDYL",
+ "Shangkuanlc"
]
},
"ooui-outline-control-move-down": "項目下移",
"ooui-dialog-process-error": "發生不明錯誤",
"ooui-dialog-process-dismiss": "關閉",
"ooui-dialog-process-retry": "再試一次",
- "ooui-dialog-process-continue": "繼續"
+ "ooui-dialog-process-continue": "繼續",
+ "ooui-selectfile-not-supported": "無法支援所選擇的檔案",
+ "ooui-selectfile-placeholder": "沒有選擇檔案"
}
/*!
- * OOjs UI v0.11.4
+ * OOjs UI v0.11.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-06-09T22:03:21Z
+ * Date: 2015-06-17T00:59:03Z
*/
@-webkit-keyframes oo-ui-progressBarWidget-slide {
from {
.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
margin-left: 0.25em;
}
+.oo-ui-buttonElement-frameless > input.oo-ui-buttonElement-button {
+ padding-left: 0.25em;
+ color: #333333;
+}
+.oo-ui-buttonElement-frameless > input.oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless > input.oo-ui-buttonElement-button:focus {
+ color: #000000;
+}
.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
color: #087ecc;
}
.oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child {
margin-right: 0;
}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
+.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
color: #cccccc;
}
.oo-ui-actionFieldLayout-input,
display: inline-block;
vertical-align: middle;
}
+.oo-ui-buttonInputWidget > button,
+.oo-ui-buttonInputWidget > input {
+ border: 0;
+ padding: 0;
+ background-color: transparent;
+}
.oo-ui-dropdownInputWidget {
position: relative;
vertical-align: middle;
/*!
- * OOjs UI v0.11.4
+ * OOjs UI v0.11.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-06-09T22:03:14Z
+ * Date: 2015-06-17T00:58:56Z
*/
/**
* @class
/*!
- * OOjs UI v0.11.4
+ * OOjs UI v0.11.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-06-09T22:03:21Z
+ * Date: 2015-06-17T00:59:03Z
*/
@-webkit-keyframes oo-ui-progressBarWidget-slide {
from {
margin-left: 0.25em;
margin-right: 0.25em;
}
+.oo-ui-buttonElement-frameless > input.oo-ui-buttonElement-button {
+ padding-left: 0.25em;
+ padding-right: 0.25em;
+ color: #333333;
+}
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > input.oo-ui-buttonElement-button,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
color: #555555;
}
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > input.oo-ui-buttonElement-button,
.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
color: #444444;
}
.oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child {
margin-right: 0;
}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
+.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
color: #cccccc;
}
.oo-ui-actionFieldLayout-input,
display: inline-block;
vertical-align: middle;
}
+.oo-ui-buttonInputWidget > button,
+.oo-ui-buttonInputWidget > input {
+ border: 0;
+ padding: 0;
+ background-color: transparent;
+}
.oo-ui-checkboxInputWidget {
position: relative;
line-height: 1.6em;
/*!
- * OOjs UI v0.11.4
+ * OOjs UI v0.11.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-06-09T22:03:14Z
+ * Date: 2015-06-17T00:58:56Z
*/
/**
* @class
/*!
- * OOjs UI v0.11.4
+ * OOjs UI v0.11.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-06-09T22:03:14Z
+ * Date: 2015-06-17T00:58:56Z
*/
( function ( OO ) {
this.setOptions( config.options || [] );
this.$element
.addClass( 'oo-ui-radioSelectInputWidget' )
- .empty()
.append( this.radioSelectWidget.$element );
};
return this.menu;
};
+/**
+ * Get the combobox's text input widget.
+ * @return {OO.ui.TextInputWidget} Text input widget
+ */
+OO.ui.ComboBoxWidget.prototype.getInput = function () {
+ return this.input;
+};
+
/**
* Handle input change events.
*
* @cfg {OO.ui.TextInputWidget} [input] Text input used to implement option highlighting for menu items that match
* the text the user types. This config is used by {@link OO.ui.ComboBoxWidget ComboBoxWidget}
* and {@link OO.ui.mixin.LookupElement LookupElement}
- * @cfg {OO.ui.Widget} [widget] Widget associated with the menu’s active state. If the user clicks the mouse
- * anywhere on the page outside of this widget, the menu is hidden.
+ * @cfg {OO.ui.Widget} [widget] Widget associated with the menu's active state. If the user clicks the mouse
+ * anywhere on the page outside of this widget, the menu is hidden. For example, if there is a button
+ * that toggles the menu's visibility on click, the menu will be hidden then re-shown when the user clicks
+ * that button, unless the button (or its parent widget) is passed in here.
* @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu.
*/
OO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {
"ltr": "images/icons/lock-ltr.svg",
"rtl": "images/icons/lock-rtl.svg"
}, "variants": [ "destructive" ] },
+ "ongoingConversation": { "file": {
+ "ltr": "images/icons/ongoingConversation-ltr.svg",
+ "rtl": "images/icons/ongoingConversation-rtl.svg"
+ } },
"star": { "file": "images/icons/star.svg" },
"trash": { "file": "images/icons/trash.svg" },
"trashUndo": { "file": {
"advanced": { "file": "images/icons/advanced.svg" },
"alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] },
"cancel": { "file": "images/icons/cancel.svg" },
- "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive" ] },
+ "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive", "destructive" ] },
"circle": { "file": "images/icons/circle.svg", "variants": [ "constructive" ] },
"close": { "file": {
"ltr": "images/icons/close-ltr.svg",
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #D11D13 }</style>
+ <g id="check">
+ <path d="M17 7.5L9.5 15 6 11.5 4.5 13l5 5L20 7.5c-.706-.706-2.294-.706-3 0z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>* { fill: #FFFFFF }</style>
+ <g id="ongoing-conversation" fill-rule="evenodd">
+ <path d="M17.8 18.6H2.5l2.7-2.7V6h15.3v9.9c0 1.53-1.17 2.7-2.7 2.7zm-7.542-4.95c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945zm4.05 0c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945zm4.05 0c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+ <g id="ongoing-conversation" fill-rule="evenodd">
+ <path d="M17.8 18.6H2.5l2.7-2.7V6h15.3v9.9c0 1.53-1.17 2.7-2.7 2.7zm-7.542-4.95c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945zm4.05 0c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945zm4.05 0c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>* { fill: #FFFFFF }</style>
+ <g id="ongoing-conversation" fill-rule="evenodd">
+ <path d="M5.2 18.6h15.3l-2.7-2.7V6H2.5v9.9c0 1.53 1.17 2.7 2.7 2.7zm7.542-4.95c0 .405.135.675.405.945.27.27.607.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.608-.405-.945-.405-.338 0-.675.135-.945.405-.27.27-.405.607-.405.945zm-4.05 0c0 .405.135.675.405.945.27.27.608.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.608-.405-.945-.405-.338 0-.675.135-.945.405-.27.27-.405.608-.405.945zm-4.05 0c0 .405.135.675.405.945.27.27.608.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.607-.405-.945-.405-.337 0-.675.135-.945.405-.27.27-.405.608-.405.945z"/>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+ <g id="ongoing-conversation" fill-rule="evenodd">
+ <path d="M5.2 18.6h15.3l-2.7-2.7V6H2.5v9.9c0 1.53 1.17 2.7 2.7 2.7zm7.542-4.95c0 .405.135.675.405.945.27.27.607.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.608-.405-.945-.405-.338 0-.675.135-.945.405-.27.27-.405.607-.405.945zm-4.05 0c0 .405.135.675.405.945.27.27.608.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.608-.405-.945-.405-.338 0-.675.135-.945.405-.27.27-.405.608-.405.945zm-4.05 0c0 .405.135.675.405.945.27.27.608.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.607-.405-.945-.405-.337 0-.675.135-.945.405-.27.27-.405.608-.405.945z"/>
+ </g>
+</svg>
*/
function updateTooltipOnElement( element, titleElement ) {
var array = ( mw.msg( 'word-separator' ) + mw.msg( 'brackets' ) ).split( '$1' ),
- regexp = new RegExp( $.map( array, $.escapeRE ).join( '.*?' ) + '$' ),
+ regexp = new RegExp( $.map( array, mw.RegExp.escape ).join( '.*?' ) + '$' ),
oldTitle = titleElement.title,
rawTitle = oldTitle.replace( regexp, '' ),
newTitle = rawTitle,
* TODO: Add a function for restoring the previous text.
* TODO: Accept mappings for converting shortcuts like WP: to Wikipedia:.
*/
-( function ( $ ) {
+( function ( $, mw ) {
$.highlightText = {
// non latin characters can make regex think a new word has begun: do not use \b
// http://stackoverflow.com/questions/3787072/regex-wordwrap-with-utf8-characters-in-js
// look for an occurrence of our pattern and store the starting position
- match = node.data.match( new RegExp( '(^|\\s)' + $.escapeRE( pat ), 'i' ) );
+ match = node.data.match( new RegExp( '(^|\\s)' + mw.RegExp.escape( pat ), 'i' ) );
if ( match ) {
pos = match.index + match[1].length; // include length of any matched spaces
// create the span wrapper for the matched text
} );
};
-}( jQuery ) );
+}( jQuery, mediaWiki ) );
/*
* JavaScript backwards-compatibility alternatives and other convenience functions
+ *
+ * @deprecated since 1.26 Dated collection of miscellaneous utilities. Methods are
+ * either trivially inline, obsolete, or have a better place elsewhere.
*/
-( function ( $ ) {
-
- $.extend( {
+( function ( $, mw ) {
+ $.each( {
trimLeft: function ( str ) {
return str === null ? '' : str.toString().replace( /^\s+/, '' );
},
ucFirst: function ( str ) {
return str.charAt( 0 ).toUpperCase() + str.slice( 1 );
},
- escapeRE: function ( str ) {
- return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
- },
isDomElement: function ( el ) {
return !!el && !!el.nodeType;
},
return true;
}
// the for-loop could potentially contain prototypes
- // to avoid that we check it's length first
+ // to avoid that we check its length first
if ( v.length === 0 ) {
return true;
}
}
return true;
}
+ }, function ( key, value ) {
+ mw.log.deprecate( $, key, value );
} );
-}( jQuery ) );
+ mw.log.deprecate( $, 'escapeRE', function ( str ) {
+ return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
+ }, 'Use mediawiki.RegExp instead.' );
+
+} )( jQuery, mediaWiki );
// Construct regex for number identification
for ( i = 0; i < ascii.length; i++ ) {
ts.transformTable[localised[i]] = ascii[i];
- digits.push( $.escapeRE( localised[i] ) );
+ digits.push( mw.RegExp.escape( localised[i] ) );
}
}
digitClass = '[' + digits.join( '', digits ) + ']';
for ( i = 0; i < 12; i++ ) {
name = mw.language.months.names[i].toLowerCase();
ts.monthNames[name] = i + 1;
- regex.push( $.escapeRE( name ) );
+ regex.push( mw.RegExp.escape( name ) );
name = mw.language.months.genitive[i].toLowerCase();
ts.monthNames[name] = i + 1;
- regex.push( $.escapeRE( name ) );
+ regex.push( mw.RegExp.escape( name ) );
name = mw.language.months.abbrev[i].toLowerCase().replace( '.', '' );
ts.monthNames[name] = i + 1;
- regex.push( $.escapeRE( name ) );
+ regex.push( mw.RegExp.escape( name ) );
}
// Build piped string
data = {},
timer = null;
+ function stashEdit( token ) {
+ data = $form.serializeObject();
+
+ pending = api.post( {
+ action: 'stashedit',
+ token: token,
+ title: mw.config.get( 'wgPageName' ),
+ section: data.wpSection,
+ sectiontitle: '',
+ text: data.wpTextbox1,
+ contentmodel: data.model,
+ contentformat: data.format,
+ baserevid: data.parentRevId
+ } );
+ }
+
/* Has the edit body text changed since the last stashEdit() call? */
function isChanged() {
// Normalize line endings to CRLF, like $.fn.serializeObject does.
pending.abort();
}
- data = $form.serializeObject();
- pending = api.postWithToken( 'edit', {
- action: 'stashedit',
- title: mw.config.get( 'wgPageName' ),
- section: data.wpSection,
- sectiontitle: '',
- text: data.wpTextbox1,
- contentmodel: data.model,
- contentformat: data.format,
- baserevid: data.parentRevId
- } );
+ api.getToken( 'edit' ).then( stashEdit );
}
function onKeyPress( e ) {
if ( actionPaths.hasOwnProperty( key ) ) {
parts = actionPaths[key].split( '$1' );
for ( i = 0; i < parts.length; i++ ) {
- parts[i] = $.escapeRE( parts[i] );
+ parts[i] = mw.RegExp.escape( parts[i] );
}
m = new RegExp( parts.join( '(.+)' ) ).exec( url );
if ( m && m[1] ) {
--- /dev/null
+( function ( mw ) {
+ /**
+ * @class mw.RegExp
+ */
+ mw.RegExp = {
+ /**
+ * Escape string for safe inclusion in regular expression
+ *
+ * The following characters are escaped:
+ *
+ * \ { } ( ) | . ? * + - ^ $ [ ]
+ *
+ * @since 1.26
+ * @static
+ * @param {string} str String to escape
+ * @return {string} Escaped string
+ */
+ escape: function ( str ) {
+ return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
+ }
+ };
+}( mediaWiki ) );
$ul = $( this ).prev( 'ul.mw-htmlform-cloner-ul' );
html = $ul.data( 'template' ).replace(
- new RegExp( $.escapeRE( $ul.data( 'uniqueId' ) ), 'g' ),
+ new RegExp( mw.RegExp.escape( $ul.data( 'uniqueId' ) ), 'g' ),
'clone' + ( ++cloneCounter )
);
*/
grep: function ( pattern ) {
if ( typeof pattern.test !== 'function' ) {
- // Based on Y.Escape.regex from YUI v3.15.0
- pattern = new RegExp( pattern.replace( /[\-$\^*()+\[\]{}|\\,.?\s]/g, '\\$&' ), 'g' );
+ pattern = new RegExp( mw.RegExp.escape( pattern ), 'g' );
}
return $.grep( inspect.getLoadedModules(), function ( moduleName ) {
url = location.href;
}
// Get last match, stop at hash
- var re = new RegExp( '^[^#]*[&?]' + $.escapeRE( param ) + '=([^&#]*)' ),
+ var re = new RegExp( '^[^#]*[&?]' + mw.RegExp.escape( param ) + '=([^&#]*)' ),
m = re.exec( url );
if ( m ) {
// Beware that decodeURIComponent is not required to understand '+'
$globals = array();
foreach ( self::getSettings() as $key => $value ) {
- $globals[ 'wg' . $key ] = $value;
+ $globals['wg' . $key] = $value;
}
$this->setMwGlobals( $globals );
}
public function isRaw() {
return $this->isRaw;
}
+
+ public function enableModuleContentVersion() {
+ return true;
+ }
}
class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule {
$oldBlock->delete();
}
- $this->block = new Block( 'UTBlockee', $user->getID(), 0,
- 'Parce que', 0, false, time() + 100500
+ $blockOptions = array(
+ 'address' => 'UTBlockee',
+ 'user' => $user->getID(),
+ 'reason' => 'Parce que',
+ 'expiry' => time() + 100500,
);
+ $this->block = new Block( $blockOptions );
$this->madeAt = wfTimestamp( TS_MW );
$this->block->insert();
);
// Foreign perspective (blockee not on current wiki)...
- $block = new Block(
- /* $address */ $username,
- /* $user */ 14146,
- /* $by */ 0,
- /* $reason */ 'crosswiki block...',
- /* $timestamp */ wfTimestampNow(),
- /* $auto */ false,
- /* $expiry */ $this->db->getInfinity(),
- /* anonOnly */ false,
- /* $createAccount */ true,
- /* $enableAutoblock */ true,
- /* $hideName (ipb_deleted) */ true,
- /* $blockEmail */ true,
- /* $allowUsertalk */ false,
- /* $byName */ 'MetaWikiUser'
+ $blockOptions = array(
+ 'address' => $username,
+ 'user' => 14146,
+ 'reason' => 'crosswiki block...',
+ 'timestamp' => wfTimestampNow(),
+ 'expiry' => $this->db->getInfinity(),
+ 'createAccount' => true,
+ 'enableAutoblock' => true,
+ 'hideName' => true,
+ 'blockEmail' => true,
+ 'byText' => 'MetaWikiUser',
);
+ $block = new Block( $blockOptions );
$block->insert();
// Reload block from DB
$this->db->update( 'user', array( 'user_id' => 14146 ), array( 'user_id' => $user->getId() ) );
// Foreign perspective (blockee not on current wiki)...
- $block = new Block(
- /* $address */ 'UserOnForeignWiki',
- /* $user */ 14146,
- /* $by */ 0,
- /* $reason */ 'crosswiki block...',
- /* $timestamp */ wfTimestampNow(),
- /* $auto */ false,
- /* $expiry */ $this->db->getInfinity(),
- /* anonOnly */ false,
- /* $createAccount */ true,
- /* $enableAutoblock */ true,
- /* $hideName (ipb_deleted) */ true,
- /* $blockEmail */ true,
- /* $allowUsertalk */ false,
- /* $byName */ 'MetaWikiUser'
+ $blockOptions = array(
+ 'address' => 'UserOnForeignWiki',
+ 'user' => 14146,
+ 'reason' => 'crosswiki block...',
+ 'timestamp' => wfTimestampNow(),
+ 'expiry' => $this->db->getInfinity(),
+ 'createAccount' => true,
+ 'enableAutoblock' => true,
+ 'hideName' => true,
+ 'blockEmail' => true,
+ 'byText' => 'MetaWikiUser',
);
+ $block = new Block( $blockOptions );
$res = $block->insert( $this->db );
$this->assertTrue( (bool)$res['id'], 'Block succeeded' );
$block = Block::chooseBlock( $xffblocks, $list );
$this->assertEquals( $exResult, $block->mReason, 'Correct block type for XFF header ' . $xff );
}
+
+ public function testDeprecatedConstructor() {
+ $this->hideDeprecated( 'Block::__construct with multiple arguments' );
+ $username = 'UnthinkablySecretRandomUsername';
+ $reason = 'being irrational';
+
+ # Set up the target
+ $u = User::newFromName( $username );
+ if ( $u->getID() == 0 ) {
+ $u->setPassword( 'TotallyObvious' );
+ $u->addToDatabase();
+ }
+ unset( $u );
+
+ # Make sure the user isn't blocked
+ $this->assertNull(
+ Block::newFromTarget( $username ),
+ "$username should not be blocked"
+ );
+
+ # Perform the block
+ $block = new Block(
+ /* address */ $username,
+ /* user */ 0,
+ /* by */ 0,
+ /* reason */ $reason,
+ /* timestamp */ 0,
+ /* auto */ false,
+ /* expiry */ 0
+ );
+ $block->insert();
+
+ # Check target
+ $this->assertEquals(
+ $block->getTarget()->getName(),
+ $username,
+ "Target should be set properly"
+ );
+
+ # Check supplied parameter
+ $this->assertEquals(
+ $block->mReason,
+ $reason,
+ "Reason should be non-default"
+ );
+
+ # Check default parameter
+ $this->assertFalse(
+ (bool)$block->prevents( 'createaccount' ),
+ "Account creation should not be blocked by default"
+ );
+ }
}
array( 'https://', '*.com', 'https://name:pass@secure.com/index.html' ),
array( 'http://', 'name:pass@test.com', 'http://test.com' ),
array( 'http://', 'test.com', 'http://name:pass@test.com' ),
- array( 'http://', '*.test.com', 'http://a.b.c.test.com/dir/dir/file?a=6'),
+ array( 'http://', '*.test.com', 'http://a.b.c.test.com/dir/dir/file?a=6' ),
array( null, 'http://*.test.com', 'http://www.test.com' ),
array( 'mailto:', 'name@mail.test123.com', 'mailto:name@mail.test123.com' ),
array( '',
array( '', 'git://github.com/prwef/abc-def.git', 'git://github.com/prwef/abc-def.git' ),
array( 'git://', 'github.com/', 'git://github.com/prwef/abc-def.git' ),
array( 'git://', '*.github.com/', 'git://a.b.c.d.e.f.github.com/prwef/abc-def.git' ),
- array( '', 'gopher://*.test.com/', 'gopher://gopher.test.com/0/v2/vstat'),
- array( 'telnet://', '*.test.com', 'telnet://shell.test.com/~home/'),
+ array( '', 'gopher://*.test.com/', 'gopher://gopher.test.com/0/v2/vstat' ),
+ array( 'telnet://', '*.test.com', 'telnet://shell.test.com/~home/' ),
//
// The following only work in PHP >= 5.3.7, due to a bug in parse_url which eats
array( 'http://*.test.*' ),
array( 'http://*test.com' ),
array( 'https://*' ),
- array( '*://test.com'),
+ array( '*://test.com' ),
array( 'mailto:name:pass@t*est.com' ),
- array( 'http://*:888/'),
- array( '*http://'),
+ array( 'http://*:888/' ),
+ array( '*http://' ),
array( 'test.com/*/index' ),
array( 'test.com/dir/index?arg=*' ),
);
WikiPage::factory( $oldTitle )->getRevision()
);
$this->assertNotNull(
- WikiPage::factory( $newTitle)->getRevision()
+ WikiPage::factory( $newTitle )->getRevision()
);
}
}
'test.foo' => new ResourceLoaderTestModule( array(
'script' => 'mw.test.foo( { a: true } );',
'styles' => '.mw-test-foo { content: "style"; }',
- )),
+ ) ),
'test.bar' => new ResourceLoaderTestModule( array(
'script' => 'mw.test.bar( { a: true } );',
'styles' => '.mw-test-bar { content: "style"; }',
- )),
+ ) ),
'test.baz' => new ResourceLoaderTestModule( array(
'script' => 'mw.test.baz( { a: true } );',
'styles' => '.mw-test-baz { content: "style"; }',
- )),
+ ) ),
'test.quux' => new ResourceLoaderTestModule( array(
'script' => 'mw.test.baz( { token: 123 } );',
'styles' => '/* pref-animate=off */ .mw-icon { transition: none; }',
'group' => 'private',
- )),
+ ) ),
'test.raw' => new ResourceLoaderTestModule( array(
'script' => 'mw.test.baz( { token: 123 } );',
'isRaw' => true,
- )),
+ ) ),
'test.noscript' => new ResourceLoaderTestModule( array(
'styles' => '.mw-test-noscript { content: "style"; }',
'group' => 'noscript',
- )),
+ ) ),
'test.group.bar' => new ResourceLoaderTestModule( array(
'styles' => '.mw-group-bar { content: "style"; }',
'group' => 'bar',
- )),
+ ) ),
'test.group.foo' => new ResourceLoaderTestModule( array(
'styles' => '.mw-group-foo { content: "style"; }',
'group' => 'foo',
- )),
+ ) ),
) );
$links = $method->invokeArgs( $out, $args );
// Strip comments to avoid variation due to wgDBname in WikiID and cache key
* MessageBlobStore that doesn't do anything
*/
class NullMessageBlobStore extends MessageBlobStore {
- public function get ( ResourceLoader $resourceLoader, $modules, $lang ) {
+ public function get( ResourceLoader $resourceLoader, $modules, $lang ) {
return array();
}
- public function insertMessageBlob ( $name, ResourceLoaderModule $module, $lang ) {
+ public function insertMessageBlob( $name, ResourceLoaderModule $module, $lang ) {
return false;
}
- public function updateModule ( $name, ResourceLoaderModule $module, $lang ) {
+ public function updateModule( $name, ResourceLoaderModule $module, $lang ) {
return;
}
- public function updateMessage ( $key ) {
+ public function updateMessage( $key ) {
}
public function clear() {
}
);
$status = new Status();
- $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
+ $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
$testCases['1MessageWarning'] = array(
$status,
"<fooBar!>",
// );
$status = new Status();
- $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
+ $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
$testCases['1MessageWarning'] = array(
$status,
array( 'foo', 'bar' ),
$prev = time();
$now = time() + 120;
$this->user->mBlockedby = $this->user->getId();
- $this->user->mBlock = new Block( '127.0.8.1', 0, $this->user->getId(),
- 'no reason given', $prev + 3600, 1, 0 );
+ $this->user->mBlock = new Block( array(
+ 'address' => '127.0.8.1',
+ 'by' => $this->user->getId(),
+ 'reason' => 'no reason given',
+ 'timestamp' => $prev + 3600,
+ 'auto' => true,
+ 'expiry' => 0
+ ) );
$this->user->mBlock->mTimestamp = 0;
$this->assertEquals( array( array( 'autoblockedtext',
'[[User:Useruser|Useruser]]', 'no reason given', '127.0.0.1',
global $wgLocalTZoffset;
$wgLocalTZoffset = -60;
$this->user->mBlockedby = $this->user->getName();
- $this->user->mBlock = new Block( '127.0.8.1', 0, $this->user->getId(),
- 'no reason given', $now, 0, 10 );
+ $this->user->mBlock = new Block( array(
+ 'address' => '127.0.8.1',
+ 'by' => $this->user->getId(),
+ 'reason' => 'no reason given',
+ 'timestamp' => $now,
+ 'auto' => false,
+ 'expiry' => 10,
+ ) );
$this->assertEquals( array( array( 'blockedtext',
'[[User:Useruser|Useruser]]', 'no reason given', '127.0.0.1',
'Useruser', null, '23:00, 31 December 1969', '127.0.8.1',
* @expectedException UsageException
* @expectedExceptionMessage The token parameter must be set
*/
- public function testBlockingActionWithNoToken( ) {
+ public function testBlockingActionWithNoToken() {
$this->doApiRequest(
array(
'action' => 'block',
'section' => 'new',
'text' => 'test',
'summary' => 'header',
- ));
+ ) );
$this->assertEquals( 'Success', $re['edit']['result'] );
// Check the page text is correct
'section' => 'new',
'text' => 'test',
'summary' => 'header',
- ));
+ ) );
$this->assertEquals( 'Success', $re2['edit']['result'] );
$text = WikiPage::factory( Title::newFromText( $name ) )
new FauxRequest( array( 'action' => 'query', 'meta' => 'siteinfo' ) )
);
$modules = $api->getModuleManager()->getNamesWithClasses();
- foreach( $modules as $name => $class ) {
+ foreach ( $modules as $name => $class ) {
$this->assertArrayHasKey(
$class,
$classes,
array( 'Types' => array( 'AssocAsObject' => true ) ),
(object)array(
'defaultArray' => array( 'b', 'c', 'a', ApiResult::META_TYPE => 'array' ),
- 'defaultAssoc' => (object)array( 'x' => 'a', 1 => 'b', 0 => 'c', ApiResult::META_TYPE => 'assoc' ),
- 'defaultAssoc2' => (object)array( 2 => 'a', 3 => 'b', 0 => 'c', ApiResult::META_TYPE => 'assoc' ),
+ 'defaultAssoc' => (object)array( 'x' => 'a',
+ 1 => 'b', 0 => 'c', ApiResult::META_TYPE => 'assoc'
+ ),
+ 'defaultAssoc2' => (object)array( 2 => 'a', 3 => 'b',
+ 0 => 'c', ApiResult::META_TYPE => 'assoc'
+ ),
'array' => array( 'a', 'c', 'b', ApiResult::META_TYPE => 'array' ),
'BCarray' => array( 'a', 'c', 'b', ApiResult::META_TYPE => 'array' ),
'BCassoc' => (object)array( 'a', 'b', 'c', ApiResult::META_TYPE => 'assoc' ),
array( 'Types' => array( 'ArmorKVP' => 'name', 'AssocAsObject' => true ) ),
(object)array(
'defaultArray' => array( 'b', 'c', 'a', ApiResult::META_TYPE => 'array' ),
- 'defaultAssoc' => (object)array( 'x' => 'a', 1 => 'b', 0 => 'c', ApiResult::META_TYPE => 'assoc' ),
- 'defaultAssoc2' => (object)array( 2 => 'a', 3 => 'b', 0 => 'c', ApiResult::META_TYPE => 'assoc' ),
+ 'defaultAssoc' => (object)array( 'x' => 'a', 1 => 'b',
+ 0 => 'c', ApiResult::META_TYPE => 'assoc'
+ ),
+ 'defaultAssoc2' => (object)array( 2 => 'a', 3 => 'b',
+ 0 => 'c', ApiResult::META_TYPE => 'assoc'
+ ),
'array' => array( 'a', 'c', 'b', ApiResult::META_TYPE => 'array' ),
'BCarray' => array( 'a', 'c', 'b', ApiResult::META_TYPE => 'array' ),
'BCassoc' => (object)array( 'a', 'b', 'c', ApiResult::META_TYPE => 'assoc' ),
if ( preg_match( '/Use of ApiResult::\S+ was deprecated in MediaWiki \d+.\d+\./', $errstr ) ) {
return true;
}
- if ( preg_match( '/Use of ApiMain to ApiResult::__construct was deprecated in MediaWiki \d+.\d+\./', $errstr ) ) {
+ if ( preg_match( '/Use of ApiMain to ApiResult::__construct ' .
+ 'was deprecated in MediaWiki \d+.\d+\./', $errstr ) ) {
return true;
}
return false;
$result = new ApiResult( 8388608 );
$result->setMainForContinuation( $main );
- $result->beginContinuation( '||mock2', array_slice( $allModules, 0, 2 ), array( 'mock1', 'mock2' ) );
+ $result->beginContinuation( '||mock2', array_slice( $allModules, 0, 2 ),
+ array( 'mock1', 'mock2' ) );
try {
$result->setContinueParam( $allModules[1], 'm2continue', 1 );
$this->fail( 'Expected exception not thrown' );
$this->fail( 'Expected exception not thrown' );
} catch ( UnexpectedValueException $ex ) {
$this->assertSame(
- 'Module \'mocklist\' called ApiContinuationManager::addContinueParam but was not passed to ApiContinuationManager::__construct',
+ 'Module \'mocklist\' called ApiContinuationManager::addContinueParam ' .
+ 'but was not passed to ApiContinuationManager::__construct',
$ex->getMessage(),
'Expected exception'
);
try {
$arr = array();
- ApiResult::setValue( $arr, 'foo', new ApiResultTestSerializableObject(
+ ApiResult::setValue( $arr, 'foo', new ApiResultTestSerializableObject(
new ApiResultTestStringifiableObject()
) );
$this->fail( 'Expected exception not thrown' );
} catch ( UnexpectedValueException $ex ) {
$this->assertSame(
- 'ApiResultTestSerializableObject::serializeForApiResult() returned an object of class ApiResultTestStringifiableObject',
+ 'ApiResultTestSerializableObject::serializeForApiResult() ' .
+ 'returned an object of class ApiResultTestStringifiableObject',
$ex->getMessage(),
'Expected exception'
);
try {
$arr = array();
- ApiResult::setValue( $arr, 'foo', new ApiResultTestSerializableObject( NAN ) );
+ ApiResult::setValue( $arr, 'foo', new ApiResultTestSerializableObject( NAN ) );
$this->fail( 'Expected exception not thrown' );
} catch ( UnexpectedValueException $ex ) {
$this->assertSame(
- 'ApiResultTestSerializableObject::serializeForApiResult() returned an invalid value: Cannot add non-finite floats to ApiResult',
+ 'ApiResultTestSerializableObject::serializeForApiResult() ' .
+ 'returned an invalid value: Cannot add non-finite floats to ApiResult',
$ex->getMessage(),
'Expected exception'
);
}
$arr = array();
- ApiResult::setValue( $arr, 'foo', new ApiResultTestSerializableObject(
+ ApiResult::setValue( $arr, 'foo', new ApiResultTestSerializableObject(
array(
'one' => new ApiResultTestStringifiableObject( '1' ),
'two' => new ApiResultTestSerializableObject( 2 ),
/**
* @expectedException UsageException
*/
- public function testWithNoToken( ) {
+ public function testWithNoToken() {
$this->doApiRequest(
array(
'action' => 'unblock',
);
$queryApi = new ApiQuery( $api, 'query' );
$modules = $queryApi->getModuleManager()->getNamesWithClasses();
- foreach( $modules as $name => $class ) {
+ foreach ( $modules as $name => $class ) {
$this->assertArrayHasKey(
$class,
$classes,
public function testGet() {
$conf = new HashConfig( array(
'one' => '1',
- ));
+ ) );
$this->assertEquals( '1', $conf->get( 'one' ) );
$this->setExpectedException( 'ConfigException', 'HashConfig::get: undefined option' );
$conf->get( 'two' );
'<tr><th>0</th><td class="value">"bar"</td></tr></tbody></table>'
),
array(
- (object)array( '<script>alert("evil!")</script>'),
+ (object)array( '<script>alert("evil!")</script>' ),
'<table class="mw-json"><tbody><tr><th>0</th><td class="value">"' .
'<script>alert("evil!")</script>"' .
'</td></tr></tbody></table>',
array( 'Tables_in_' => 'view2' ),
array( 'Tables_in_' => 'myview' ),
false # no more rows
- ));
+ ) );
return $db;
}
/**
$otherTestCases = array();
$otherTestCases[] = array(
- $this->getMockDiff( array( $this->getMockDiffOp( 'add', array( ), array( 'a1' ) ) ) ),
+ $this->getMockDiff( array( $this->getMockDiffOp( 'add', array(), array( 'a1' ) ) ) ),
array( array( 'action' => 'add', 'new' => 'a1', 'newline' => 1 ) ),
);
$otherTestCases[] = array(
- $this->getMockDiff( array( $this->getMockDiffOp( 'add', array( ), array( 'a1', 'a2' ) ) ) ),
+ $this->getMockDiff( array( $this->getMockDiffOp( 'add', array(), array( 'a1', 'a2' ) ) ) ),
array(
array( 'action' => 'add', 'new' => 'a1', 'newline' => 1 ),
array( 'action' => 'add', 'new' => 'a2', 'newline' => 2 ),
$this->setMwGlobals( array( 'wgLogExceptionBacktrace' => true ) );
$json = json_decode(
- MWExceptionHandler::jsonSerializeException( new $exClass())
+ MWExceptionHandler::jsonSerializeException( new $exClass() )
);
$this->assertObjectHasAttribute( $key, $json,
"JSON serialized exception is missing key '$key'"
*/
class HtmlAutoCompleteSelectFieldTest extends MediaWikiTestCase {
- var $options = array(
+ public $options = array(
'Bulgaria' => 'BGR',
'Burkina Faso' => 'BFA',
'Burundi' => 'BDI',
array(),
array( 1 => 1 ),
array( 1 ),
- array( 1 => 1),
+ array( 1 => 1 ),
),
array(
array(),
public function testClosureExpansionDisabled() {
$obj = ObjectFactory::getObjectFromSpec( array(
'class' => 'ObjectFactoryTest_Fixture',
- 'args' => array( function (){ return 'unwrapped'; }, ),
+ 'args' => array( function() {
+ return 'unwrapped';
+ }, ),
'closure_expansion' => false,
) );
$this->assertInstanceOf( 'Closure', $obj->args[0] );
public function testClosureExpansionEnabled() {
$obj = ObjectFactory::getObjectFromSpec( array(
'class' => 'ObjectFactoryTest_Fixture',
- 'args' => array( function (){ return 'unwrapped'; }, ),
+ 'args' => array( function() {
+ return 'unwrapped';
+ }, ),
'closure_expansion' => true,
) );
$this->assertInternalType( 'string', $obj->args[0] );
$obj = ObjectFactory::getObjectFromSpec( array(
'class' => 'ObjectFactoryTest_Fixture',
- 'args' => array( function (){ return 'unwrapped'; }, ),
+ 'args' => array( function() {
+ return 'unwrapped';
+ }, ),
) );
$this->assertInternalType( 'string', $obj->args[0] );
$this->assertSame( 'unwrapped', $obj->args[0] );
class ObjectFactoryTest_Fixture {
public $args;
- public function __construct( /*...*/ ) { $this->args = func_get_args(); }
+ public function __construct( /*...*/ ) {
+ $this->args = func_get_args();
+ }
}
*/
protected function getXhprofFixture( array $opts = array() ) {
$xhprof = new Xhprof( $opts );
- $xhprof->loadRawData( array (
- 'foo==>bar' => array (
+ $xhprof->loadRawData( array(
+ 'foo==>bar' => array(
'ct' => 2,
'wt' => 57,
'cpu' => 92,
'mu' => 1896,
'pmu' => 0,
),
- 'foo==>strlen' => array (
+ 'foo==>strlen' => array(
'ct' => 2,
'wt' => 21,
'cpu' => 141,
'mu' => 752,
'pmu' => 0,
),
- 'bar==>bar@1' => array (
+ 'bar==>bar@1' => array(
'ct' => 1,
'wt' => 18,
'cpu' => 19,
'mu' => 752,
'pmu' => 0,
),
- 'main()==>foo' => array (
+ 'main()==>foo' => array(
'ct' => 1,
'wt' => 304,
'cpu' => 307,
'mu' => 4008,
'pmu' => 0,
),
- 'main()==>xhprof_disable' => array (
+ 'main()==>xhprof_disable' => array(
'ct' => 1,
'wt' => 8,
'cpu' => 10,
'mu' => 768,
'pmu' => 392,
),
- 'main()' => array (
+ 'main()' => array(
'ct' => 1,
'wt' => 353,
'cpu' => 351,
*/
protected function assertArrayStructure( $struct, $actual, $label = null ) {
$this->assertInternalType( 'array', $actual, $label );
- $this->assertCount( count($struct), $actual, $label );
+ $this->assertCount( count( $struct ), $actual, $label );
foreach ( $struct as $key => $type ) {
$this->assertArrayHasKey( $key, $actual );
$this->assertInternalType( $type, $actual[$key] );
public function testSetOver() {
$key = wfRandomString();
- for ( $i=0; $i<3; ++$i ) {
+ for ( $i = 0; $i < 3; ++$i ) {
$value = wfRandomString();
- $this->cache->set($key, $value, 3);
+ $this->cache->set( $key, $value, 3 );
$this->assertEquals( $this->cache->get( $key ), $value );
}
$t4 = $this->cache->getCheckKeyTime( $key );
$this->assertEquals( $t3, $t4, 'Check key time did not change' );
}
-}
\ No newline at end of file
+}
*
* @var array
*/
- static $default = array(
+ public static $default = array(
'name' => 'FooBar',
);
--- /dev/null
+<?php
+
+/**
+ * @group ResourceLoader
+ */
+class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
+
+ protected static function getResourceLoaderContext() {
+ $resourceLoader = new ResourceLoader();
+ $request = new FauxRequest( array(
+ 'lang' => 'zh',
+ 'modules' => 'test.context',
+ 'only' => 'scripts',
+ 'skin' => 'fallback',
+ 'target' => 'test',
+ ) );
+ return new ResourceLoaderContext( $resourceLoader, $request );
+ }
+
+ public function testGet() {
+ $context = self::getResourceLoaderContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $this->assertEquals( $derived->getLanguage(), 'zh' );
+ $this->assertEquals( $derived->getModules(), array( 'test.context' ) );
+ $this->assertEquals( $derived->getOnly(), 'scripts' );
+ $this->assertEquals( $derived->getSkin(), 'fallback' );
+ $this->assertEquals( $derived->getHash(), 'zh|ltr|fallback||||||scripts|' );
+ }
+
+ public function testSetLanguage() {
+ $context = self::getResourceLoaderContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $derived->setLanguage( 'nl' );
+ $this->assertEquals( $derived->getLanguage(), 'nl' );
+
+ $derived->setLanguage( 'he' );
+ $this->assertEquals( $derived->getDirection(), 'rtl' );
+ }
+
+ public function testSetModules() {
+ $context = self::getResourceLoaderContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $derived->setModules( array( 'test.override' ) );
+ $this->assertEquals( $derived->getModules(), array( 'test.override' ) );
+ }
+
+ public function testSetOnly() {
+ $context = self::getResourceLoaderContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $derived->setOnly( 'styles' );
+ $this->assertEquals( $derived->getOnly(), 'styles' );
+
+ $derived->setOnly( null );
+ $this->assertEquals( $derived->getOnly(), null );
+ }
+
+ public function testSetSkin() {
+ $context = self::getResourceLoaderContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $derived->setSkin( 'override' );
+ $this->assertEquals( $derived->getSkin(), 'override' );
+ }
+
+ public function testGetHash() {
+ $context = self::getResourceLoaderContext();
+ $derived = new DerivativeResourceLoaderContext( $context );
+
+ $derived->setLanguage( 'nl' );
+ // Assert that subclass is able to clear parent class "hash" member
+ $this->assertEquals( $derived->getHash(), 'nl|ltr|fallback||||||scripts|' );
+ }
+
+}
* @covers ResourceLoaderFileModule::getStyles
* @covers ResourceLoaderFileModule::getStyleFiles
*/
- public function testMixedCssAnnotations( ) {
+ public function testMixedCssAnnotations() {
$basePath = __DIR__ . '/../../data/css';
$testModule = new ResourceLoaderFileModule( array(
'localBasePath' => $basePath,
} );mw.loader.register( [
[
"test.blank",
- "XyCC+PSK"
+ "wvTifjse"
]
] );',
) ),
} );mw.loader.register( [
[
"test.blank",
- "XyCC+PSK"
+ "wvTifjse"
],
[
"test.group.foo",
- "XyCC+PSK",
+ "wvTifjse",
[],
"x-foo"
],
[
"test.group.bar",
- "XyCC+PSK",
+ "wvTifjse",
[],
"x-bar"
]
} );mw.loader.register( [
[
"test.blank",
- "XyCC+PSK"
+ "wvTifjse"
]
] );'
) ),
} );mw.loader.register( [
[
"test.blank",
- "XyCC+PSK",
+ "wvTifjse",
[],
null,
"example"
} );mw.loader.register( [
[
"test.x.core",
- "XyCC+PSK"
+ "wvTifjse"
],
[
"test.x.polyfill",
- "XyCC+PSK",
+ "wvTifjse",
[],
null,
null,
],
[
"test.y.polyfill",
- "XyCC+PSK",
+ "wvTifjse",
[],
null,
null,
],
[
"test.z.foo",
- "XyCC+PSK",
+ "wvTifjse",
[
0,
1,
} );mw.loader.register( [
[
"test.blank",
- "XyCC+PSK"
+ "wvTifjse"
],
[
"test.x.core",
- "XyCC+PSK"
+ "wvTifjse"
],
[
"test.x.util",
- "XyCC+PSK",
+ "wvTifjse",
[
1
]
],
[
"test.x.foo",
- "XyCC+PSK",
+ "wvTifjse",
[
1
]
],
[
"test.x.bar",
- "XyCC+PSK",
+ "wvTifjse",
[
2
]
],
[
"test.x.quux",
- "XyCC+PSK",
+ "wvTifjse",
[
3,
4,
],
[
"test.group.foo.1",
- "XyCC+PSK",
+ "wvTifjse",
[],
"x-foo"
],
[
"test.group.foo.2",
- "XyCC+PSK",
+ "wvTifjse",
[],
"x-foo"
],
[
"test.group.bar.1",
- "XyCC+PSK",
+ "wvTifjse",
[],
"x-bar"
],
[
"test.group.bar.2",
- "XyCC+PSK",
+ "wvTifjse",
[],
"x-bar",
"example"
$this->assertEquals(
'mw.loader.addSource({"local":"/w/load.php"});'
. 'mw.loader.register(['
-. '["test.blank","XyCC+PSK"],'
-. '["test.min","XyCC+PSK",[0],null,null,'
+. '["test.blank","wvTifjse"],'
+. '["test.min","wvTifjse",[0],null,null,'
. '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
. ']]);',
$module->getModuleRegistrations( $context ),
} );mw.loader.register( [
[
"test.blank",
- "XyCC+PSK"
+ "wvTifjse"
],
[
"test.min",
- "XyCC+PSK",
+ "wvTifjse",
[
0
],
},
),
'wgResourceLoaderLESSImportPaths' => array(
- dirname( dirname( __DIR__ ) ) . '/data/less/common',
+ dirname( dirname( __DIR__ ) ) . '/data/less/common',
),
'wgResourceLoaderLESSVars' => array(
'foo' => '2px',
public function testGetSites() {
$expectedSites = array();
- foreach( TestSites::getSites() as $testSite ) {
+ foreach ( TestSites::getSites() as $testSite ) {
$siteId = $testSite->getGlobalId();
$expectedSites[$siteId] = $testSite;
}
$exporter->exportSites( array( $foo, $acme ) );
fseek( $tmp, 0 );
- $xml = fread( $tmp, 16*1024 );
+ $xml = fread( $tmp, 16 * 1024 );
$this->assertContains( '<sites ', $xml );
$this->assertContains( '<site>', $xml );
$exporter->exportSites( $sites );
fseek( $tmp, 0 );
- $xml = fread( $tmp, 16*1024 );
+ $xml = fread( $tmp, 16 * 1024 );
$actualSites = new SiteList();
$store = $this->newSiteStore( $actualSites );
/**
* @dataProvider provideImportFromXML
*/
- public function testImportFromXML( $xml, array $expectedSites, $errorCount = 0 ) {
+ public function testImportFromXML( $xml, array $expectedSites, $errorCount = 0 ) {
$importer = $this->newSiteImporter( $expectedSites, $errorCount );
$importer->importFromXML( $xml );
}
- public function testImportFromXML_malformed() {
+ public function testImportFromXML_malformed() {
$this->setExpectedException( 'Exception' );
$store = $this->getMock( 'SiteStore' );
$importer->importFromXML( 'THIS IS NOT XML' );
}
- public function testImportFromFile() {
+ public function testImportFromFile() {
$foo = Site::newForType( Site::TYPE_UNKNOWN );
$foo->setGlobalId( 'Foo' );
$this->assertEquals( $expectedText, $title->getText() );
}
- public function testUnknownNamespaceCheck( ) {
+ public function testUnknownNamespaceCheck() {
$title = new ForeignTitle( null, 'this', 'that' );
$this->assertEquals( false, $title->isNamespaceIdKnown() );
$this->assertEquals( 'that', $title->getText() );
}
- public function testUnknownNamespaceError( ) {
+ public function testUnknownNamespaceError() {
$this->setExpectedException( 'MWException' );
$title = new ForeignTitle( null, 'this', 'that' );
$title->getNamespaceId();
function ( TitleValue $title ) {
return str_replace( '_', ' ', "$title" );
}
- ));
+ ) );
$renderer = new MediaWikiPageLinkRenderer( $formatter, '/' );
$actual = $renderer->renderWikitextLink( $title, $text );
public static function provideIsPublic() {
return array(
array( false, 'fc00::3' ), # RFC 4193 (local)
- array( false, 'fc00::ff'), # RFC 4193 (local)
- array( false, '127.1.2.3'), # loopback
- array( false, '::1'), # loopback
- array( false, 'fe80::1'), # link-local
- array( false, '169.254.1.1'), # link-local
- array( false, '10.0.0.1'), # RFC 1918 (private)
- array( false, '172.16.0.1'), # RFC 1918 (private)
- array( false, '192.168.0.1'), # RFC 1918 (private)
- array( true, '2001:5c0:1000:a::133'), # public
- array( true, 'fc::3'), # public
- array( true, '00FC::') # public
+ array( false, 'fc00::ff' ), # RFC 4193 (local)
+ array( false, '127.1.2.3' ), # loopback
+ array( false, '::1' ), # loopback
+ array( false, 'fe80::1' ), # link-local
+ array( false, '169.254.1.1' ), # link-local
+ array( false, '10.0.0.1' ), # RFC 1918 (private)
+ array( false, '172.16.0.1' ), # RFC 1918 (private)
+ array( false, '192.168.0.1' ), # RFC 1918 (private)
+ array( true, '2001:5c0:1000:a::133' ), # public
+ array( true, 'fc::3' ), # public
+ array( true, '00FC::' ) # public
);
}
public static function provideNumber() {
return array(
- array( '1.234.567', '1234567'),
+ array( '1.234.567', '1234567' ),
array( '-12,89', -12.89 ),
);
}
*/
function testBufferSizeSetting( $expected, $size, $msg ) {
$dumper = new TextPassDumperAccessor( array( "--buffersize=" . $size ) );
- $this->assertEquals( $expected, $dumper->getBufferSize(), $msg);
+ $this->assertEquals( $expected, $dumper->getBufferSize(), $msg );
}
/**
'PHPUnit/Runner/Version.php',
'PHPUnit/Autoload.php'
) as $includePath ) {
+ // @codingStandardsIgnoreStart
@include_once $includePath;
+ // @codingStandardsIgnoreEnd
if ( class_exists( 'PHPUnit_TextUI_Command' ) ) {
$ok = true;
break;
$rights = User::getAllRights();
- foreach( $wgGroupPermissions as $permissions ) {
+ foreach ( $wgGroupPermissions as $permissions ) {
$rights = array_merge( $rights, array_keys( $permissions ) );
}
- foreach( $wgRevokePermissions as $permissions ) {
+ foreach ( $wgRevokePermissions as $permissions ) {
$rights = array_merge( $rights, array_keys( $permissions ) );
}
'tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js',
'tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js',
'tests/qunit/suites/resources/mediawiki/mediawiki.messagePoster.factory.test.js',
+ 'tests/qunit/suites/resources/mediawiki/mediawiki.RegExp.test.js',
'tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js',
'tests/qunit/suites/resources/mediawiki/mediawiki.test.js',
'tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js',
'mediawiki.api.watch',
'mediawiki.jqueryMsg',
'mediawiki.messagePoster',
+ 'mediawiki.RegExp',
'mediawiki.Title',
'mediawiki.toc',
'mediawiki.Uri',
--- /dev/null
+( function ( mw, $ ) {
+ QUnit.module( 'mediawiki.RegExp' );
+
+ QUnit.test( 'escape', 16, function ( assert ) {
+ var specials, normal;
+
+ specials = [
+ '\\',
+ '{',
+ '}',
+ '(',
+ ')',
+ '[',
+ ']',
+ '|',
+ '.',
+ '?',
+ '*',
+ '+',
+ '-',
+ '^',
+ '$'
+ ];
+
+ normal = [
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+ 'abcdefghijklmnopqrstuvwxyz',
+ '0123456789'
+ ].join( '' );
+
+ $.each( specials, function ( i, str ) {
+ assert.propEqual( str.match( new RegExp( mw.RegExp.escape( str ) ) ), [ str ], 'Match ' + str );
+ } );
+
+ assert.equal( mw.RegExp.escape( normal ), normal, 'Alphanumerals are left alone' );
+ } );
+
+}( mediaWiki, jQuery ) );
* @throws MWException
*/
public function unleash( &$parserTest ) {
- if ( !( $parserTest instanceof ParserTest || $parserTest instanceof NewParserTest ) ) {
+ if ( !( $parserTest instanceof ParserTest || $parserTest instanceof NewParserTest ) ) {
throw new MWException( __METHOD__ . " must be passed an instance of ParserTest or "
. "NewParserTest classes\n" );
}
function wfStreamThumb( array $params ) {
global $wgVaryOnXFP;
-
$headers = array(); // HTTP headers to send
$fileName = isset( $params['f'] ) ? $params['f'] : '';
$imsUnix = strtotime( $imsString );
MediaWiki\restoreWarnings();
if ( wfTimestamp( TS_UNIX, $img->getTimestamp() ) <= $imsUnix ) {
- HttpStatus::header( 304 );
+ HttpStatus::header( 304 );
return;
}
}