replacement, and so on.
* (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
internalParse method just before the parser removes unwanted/dangerous HTML tags.
+* Added new hook AfterFinalPageOutput to allow modifications to buffered page output before sent
+ to the client.
* (bug 36783) Implement jQuery Promise interface in mediawiki.api module.
* Make dates in sortable tables sort according to the page content language
instead of the site content language
PCRE is compiled without support for unicode properties.
* (bug 30390) Suggested file name on Special:Upload should not contain
illegal characters.
-* (bug 27111) Cascading foreign file repos now fetch shared descriptions properly.
* EXIF below sea level GPS altitude data is now shown correctly.
* (bug 39284) jquery.tablesorter should not consider "."" or "?"" to be a currency.
* (bug 39273) "Show changes" should not be incorrectly displayed in the Live Preview state.
* Made body-content lang attribute honor the variant language when it is set.
+* (bug 36761) "Mark pages as visited" now submits previously established filter options.
+* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
+* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
+* (bug 32552) Drop unused database field cat_hidden from table category.
=== API changes in 1.20 ===
* (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
* (bug 34927) Output media_type for list=filearchive.
* (bug 28814) add properties to output of action=parse.
* (bug 33224) add variants of content language to meta=siteinfo.
-* (bug 36761) "Mark pages as visited" now submits previously established filter options.
* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached.
* The paraminfo module now also contains result properties for most modules.
* (bug 32348) Allow descending order for list=alllinks.
* (bug 38904) prop=revisions&rvstart=... no longer blows up when continuing.
* (bug 39032) ApiQuery generates help in constructor.
* (bug 11142) Improve file extension blacklist error reporting in API upload.
-* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
-* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
+* (bug 39665) Cache AllowedGenerator array so it doesn't autoload all query classes
+ on every request.
=== Languages updated in 1.20 ===
$sRevCount: Number of sucessfully imported revisions
$pageInfo: associative array of page information
+'AfterFinalPageOutput': Nearly at the end of OutputPage::output() but
+before OutputPage::sendCacheControl() and final ob_end_flush() which
+will send the buffered output to the client. This allows for last-minute
+modification of the output within the buffer by using ob_get_clean().
+$output: The OutputPage object where output() was called
+
'AjaxAddScript': Called in output page just before the initialisation
of the javascript ajax engine. The hook is only called when ajax
is enabled ( $wgUseAjax = true; ).
Use this to extend core API modules.
&$module: Module object
+'APICheckCanExecute': Called during ApiMain::checkCanExecute. Use to
+further authenticate and authorize API clients before executing the
+module. Return false and set a message to cancel the request.
+$module: Module object
+$user: Current user
+&$message: API usage message to die with
+
'APIEditBeforeSave': before saving a page with api.php?action=edit,
after processing request parameters. Return false to let the request
fail, returning an error message or an <edit result="Failure"> tag
/**
* Get a timestamp string in one of various formats
*
- * @deprecated
* @param $outputtype Mixed: A timestamp in one of the supported formats, the
* function will autodetect which format is supplied and act
* accordingly.
* @return String: valid dotted quad IPv4 address or null
*/
public static function canonicalize( $addr ) {
+ $addr = preg_replace( '/\%.*/','', $addr ); // remove zone info (bug 35738)
if ( self::isValid( $addr ) ) {
return $addr;
}
/**
* Handler for action=render
* Include body text only; none of the image extras
- * However, also include the shared description text
- * so that cascading ForeignAPIRepo's work.
- *
- * @note This uses a div with the class "mw-shared-image-desc"
- * as opposed to the id "mw-shared-image-desc" since the text
- * from here may be cascadingly transcluded to other shared
- * repos, and we want all ids to be unique. On normal
- * view, the outermost shared description will still have
- * the id.
- *
- * This also differs from normal view in that "shareddescriptionfollows"
- * message is not shown. I was not sure if it was appropriate to
- * add that message here.
*/
public function render() {
- $out = $this->getContext()->getOutput();
- $this->loadFile();
-
- $descText = $this->mPage->getFile()->getDescriptionText();
-
- $out->setArticleBodyOnly( true );
-
- if ( !$descText ) {
- // If no description text, just do standard action=render
- parent::view();
- } else {
- if ( $this->mPage->getID() !== 0 ) {
- // Local description exists. We need to output both
- parent::view();
- $out->addHTML( '<div class="mw-shared-image-desc">' . $descText . "</div>\n" );
- } else {
- // We don't want to output both a "noarticletext" message and the shared
- // description, so don't call parent::view().
- $out->addHTML( '<div class="mw-shared-image-desc">' . $descText . "</div>\n" );
- // Since we did not call parent::view(), have to call some methods it
- // normally takes care of. (Not that it matters much since skin not displayed)
- $out->setArticleFlag( true );
- $out->setPageTitle( $this->getTitle()->getPrefixedText() );
- $this->mPage->doViewUpdates( $this->getContext()->getUser() );
- }
- }
+ $this->getContext()->getOutput()->setArticleBodyOnly( true );
+ parent::view();
}
public function view() {
if ( !$fol->isDisabled() ) {
$out->addWikiText( $fol->plain() );
}
- $out->addHTML( '<div id="shared-image-desc" class="mw-shared-image-desc">' . $this->mExtraDescription . "</div>\n" );
+ $out->addHTML( '<div id="shared-image-desc">' . $this->mExtraDescription . "</div>\n" );
}
$this->closeShowImage();
wfProfileOut( 'Output-skin' );
}
+ // This hook allows last minute changes to final overall output by modifying output buffer
+ wfRunHooks( 'AfterFinalPageOutput', array( $this ) );
+
$this->sendCacheControl();
ob_end_flush();
wfProfileOut( __METHOD__ );
'href' => self::makeSpecialUrlSubpage( 'Contributions', $rootUser )
);
- $logPage = SpecialPage::getTitleFor( 'Log' );
$nav_urls['log'] = array(
- 'href' => $logPage->getLocalUrl( array( 'user' => $rootUser ) )
+ 'href' => self::makeSpecialUrlSubpage( 'Log', $rootUser )
);
if ( $this->getUser()->isAllowed( 'block' ) ) {
* The actual timestamp being wrapped. Either a DateTime
* object or a string with a Unix timestamp depending on
* PHP.
+ * @var string|DateTime
*/
private $timestamp;
* Make a new timestamp and set it to the specified time,
* or the current time if unspecified.
*
- * @param $timestamp Timestamp to set, or false for current time
+ * @param $timestamp bool|string Timestamp to set, or false for current time
*/
public function __construct( $timestamp = false ) {
$this->setTimestamp( $timestamp );
/**
* Set the timestamp to the specified time, or the current time if unspecified.
*
- * Parse the given timestamp into either a DateTime object or a Unix teimstamp,
+ * Parse the given timestamp into either a DateTime object or a Unix timestamp,
* and then store it.
*
- * @param $ts Timestamp to store, or false for now
+ * @param $ts string|bool Timestamp to store, or false for now
+ * @throws TimestampException
*/
public function setTimestamp( $ts = false ) {
- $uts = 0;
$da = array();
$strtime = '';
- if ( !$ts ) { // We want to catch 0, '', null... but not date strings starting with a letter.
+ if ( !$ts || $ts === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0" ) { // We want to catch 0, '', null... but not date strings starting with a letter.
$uts = time();
$strtime = "@$uts";
} elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
# TS_MW
} elseif ( preg_match( '/^-?\d{1,13}$/D', $ts ) ) {
# TS_UNIX
- $uts = $ts;
$strtime = "@$ts"; // http://php.net/manual/en/datetime.formats.compound.php
} elseif ( preg_match( '/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}.\d{6}$/', $ts ) ) {
# TS_ORACLE // session altered to DD-MM-YYYY HH24:MI:SS.FF6
try {
$final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
} catch(Exception $e) {
- throw new TimestampException( __METHOD__ . 'Invalid timestamp format.' );
+ throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
}
} else {
$final = strtotime( $strtime );
}
if( $final === false ) {
- throw new TimestampException( __METHOD__ . 'Invalid timestamp format.' );
+ throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
}
$this->timestamp = $final;
}
* Convert the internal timestamp to the specified format and then
* return it.
*
- * @param $style Output format for timestamp
+ * @param $style int Constant Output format for timestamp
+ * @throws TimestampException
* @return string The formatted timestamp
*/
public function getTimestamp( $style = TS_UNIX ) {
throw new TimestampException( __METHOD__ . ' : Illegal timestamp output type.' );
}
- if( is_object( $this->timestamp ) ) {
+ if( is_object( $this->timestamp ) ) {
// DateTime object was used, call DateTime::format.
$output = $this->timestamp->format( self::$formats[$style] );
} elseif( TS_UNIX == $style ) {
}
}
+ /**
+ * @return string
+ */
public function __toString() {
return $this->getTimestamp();
}
*/
protected function addRow( $table, $name, $value ) {
return $table . Html::rawElement( 'tr', array(),
- Html::rawElement( 'td', array(), $name ) .
+ Html::rawElement( 'td', array( 'valign' => 'top' ), $name ) .
Html::rawElement( 'td', array(), $value )
);
}
$this->dieReadOnly();
}
}
+
+ // Allow extensions to stop execution for arbitrary reasons.
+ $message = false;
+ if( !wfRunHooks( 'ApiCheckCanExecute', array( $module, $user, &$message ) ) ) {
+ $this->dieUsageMsg( $message );
+ }
}
/**
}
// Move the page
+ $toTitleExists = $toTitle->exists();
$retval = $fromTitle->moveTo( $toTitle, true, $params['reason'], !$params['noredirect'] );
if ( $retval !== true ) {
$this->dieUsageMsg( reset( $retval ) );
if ( !$params['noredirect'] || !$user->isAllowed( 'suppressredirect' ) ) {
$r['redirectcreated'] = '';
}
+ if( $toTitleExists ) {
+ $r['moveoverredirect'] = '';
+ }
// Move the talk page
if ( $params['movetalk'] && $fromTalk->exists() && !$fromTitle->isTalkPage() ) {
+ $toTalkExists = $toTalk->exists();
$retval = $fromTalk->moveTo( $toTalk, true, $params['reason'], !$params['noredirect'] );
if ( $retval === true ) {
$r['talkfrom'] = $fromTalk->getPrefixedText();
$r['talkto'] = $toTalk->getPrefixedText();
+ if( $toTalkExists ) {
+ $r['talkmoveoverredirect'] = '';
+ }
} else {
// We're not gonna dieUsage() on failure, since we already changed something
$parsed = $this->parseMsg( reset( $retval ) );
'to' => 'string',
'reason' => 'string',
'redirectcreated' => 'boolean',
+ 'moveoverredirect' => 'boolean',
'talkfrom' => array(
ApiBase::PROP_TYPE => 'string',
ApiBase::PROP_NULLABLE => true
ApiBase::PROP_TYPE => 'string',
ApiBase::PROP_NULLABLE => true
),
+ 'talkmoveoverredirect' => 'boolean',
'talkmove-error-code' => array(
ApiBase::PROP_TYPE => 'string',
ApiBase::PROP_NULLABLE => true
private $params, $redirects, $convertTitles, $iwUrl;
private $mQueryPropModules = array(
+ 'categories' => 'ApiQueryCategories',
+ 'categoryinfo' => 'ApiQueryCategoryInfo',
+ 'duplicatefiles' => 'ApiQueryDuplicateFiles',
+ 'extlinks' => 'ApiQueryExternalLinks',
+ 'images' => 'ApiQueryImages',
+ 'imageinfo' => 'ApiQueryImageInfo',
'info' => 'ApiQueryInfo',
- 'revisions' => 'ApiQueryRevisions',
'links' => 'ApiQueryLinks',
'iwlinks' => 'ApiQueryIWLinks',
'langlinks' => 'ApiQueryLangLinks',
- 'images' => 'ApiQueryImages',
- 'imageinfo' => 'ApiQueryImageInfo',
+ 'pageprops' => 'ApiQueryPageProps',
+ 'revisions' => 'ApiQueryRevisions',
'stashimageinfo' => 'ApiQueryStashImageInfo',
'templates' => 'ApiQueryLinks',
- 'categories' => 'ApiQueryCategories',
- 'extlinks' => 'ApiQueryExternalLinks',
- 'categoryinfo' => 'ApiQueryCategoryInfo',
- 'duplicatefiles' => 'ApiQueryDuplicateFiles',
- 'pageprops' => 'ApiQueryPageProps',
);
private $mQueryListModules = array(
+ 'allcategories' => 'ApiQueryAllCategories',
'allimages' => 'ApiQueryAllImages',
- 'allpages' => 'ApiQueryAllPages',
'alllinks' => 'ApiQueryAllLinks',
- 'allcategories' => 'ApiQueryAllCategories',
+ 'allpages' => 'ApiQueryAllPages',
'allusers' => 'ApiQueryAllUsers',
'backlinks' => 'ApiQueryBacklinks',
'blocks' => 'ApiQueryBlocks',
'categorymembers' => 'ApiQueryCategoryMembers',
'deletedrevs' => 'ApiQueryDeletedrevs',
'embeddedin' => 'ApiQueryBacklinks',
+ 'exturlusage' => 'ApiQueryExtLinksUsage',
'filearchive' => 'ApiQueryFilearchive',
'imageusage' => 'ApiQueryBacklinks',
'iwbacklinks' => 'ApiQueryIWBacklinks',
'langbacklinks' => 'ApiQueryLangBacklinks',
'logevents' => 'ApiQueryLogEvents',
+ 'protectedtitles' => 'ApiQueryProtectedTitles',
+ 'querypage' => 'ApiQueryQueryPage',
+ 'random' => 'ApiQueryRandom',
'recentchanges' => 'ApiQueryRecentChanges',
'search' => 'ApiQuerySearch',
'tags' => 'ApiQueryTags',
'usercontribs' => 'ApiQueryContributions',
+ 'users' => 'ApiQueryUsers',
'watchlist' => 'ApiQueryWatchlist',
'watchlistraw' => 'ApiQueryWatchlistRaw',
- 'exturlusage' => 'ApiQueryExtLinksUsage',
- 'users' => 'ApiQueryUsers',
- 'random' => 'ApiQueryRandom',
- 'protectedtitles' => 'ApiQueryProtectedTitles',
- 'querypage' => 'ApiQueryQueryPage',
);
private $mQueryMetaModules = array(
+ 'allmessages' => 'ApiQueryAllMessages',
'siteinfo' => 'ApiQuerySiteinfo',
'userinfo' => 'ApiQueryUserInfo',
- 'allmessages' => 'ApiQueryAllMessages',
);
private $mSlaveDB = null;
parent::__construct( $main, $action );
// Allow custom modules to be added in LocalSettings.php
- global $wgAPIPropModules, $wgAPIListModules, $wgAPIMetaModules;
+ global $wgAPIPropModules, $wgAPIListModules, $wgAPIMetaModules,
+ $wgMemc, $wgAPICacheHelpTimeout;
self::appendUserModules( $this->mQueryPropModules, $wgAPIPropModules );
self::appendUserModules( $this->mQueryListModules, $wgAPIListModules );
self::appendUserModules( $this->mQueryMetaModules, $wgAPIMetaModules );
$this->mListModuleNames = array_keys( $this->mQueryListModules );
$this->mMetaModuleNames = array_keys( $this->mQueryMetaModules );
+ // Get array of query generators from cache if present
+ $key = wfMemcKey( 'apiquerygenerators', SpecialVersion::getVersion( 'nodb' ) );
+
+ if ( $wgAPICacheHelpTimeout > 0 ) {
+ $cached = $wgMemc->get( $key );
+ if ( $cached ) {
+ $this->mAllowedGenerators = $cached;
+ return;
+ }
+ }
$this->makeGeneratorList( $this->mQueryPropModules );
$this->makeGeneratorList( $this->mQueryListModules );
+
+ if ( $wgAPICacheHelpTimeout > 0 ) {
+ $wgMemc->set( $key, $this->mAllowedGenerators, $wgAPICacheHelpTimeout );
+ }
}
/**
}
/**
- * Build a Content-Disposition header value per RFC 6266
+ * Build a Content-Disposition header value per RFC 6266.
*
* @param $type string One of (attachment, inline)
* @param $filename string Suggested file name (should not contain slashes)
* @return string
* @since 1.20
*/
- final public static function makeContentDisposition( $type, $filename ) {
+ final public static function makeContentDisposition( $type, $filename = '' ) {
+ $parts = array();
+
$type = strtolower( $type );
- $type = in_array( $type, array( 'inline', 'attachment' ) ) ? $type : 'inline';
- return "$type; filename*=UTF-8''" . rawurlencode( basename( $filename ) );
+ if ( !in_array( $type, array( 'inline', 'attachment' ) ) ) {
+ throw new MWException( "Invalid Content-Disposition type '$type'." );
+ }
+ $parts[] = $type;
+
+ if ( strlen( $filename ) ) {
+ $parts[] = "filename*=UTF-8''" . rawurlencode( basename( $filename ) );
+ }
+
+ return implode( ';', $parts );
}
/**
return false;
}
+ /**
+ * @param $disposition string Content-Disposition header value
+ * @return string Truncated Content-Disposition header value to meet Swift limits
+ */
+ protected function truncDisp( $disposition ) {
+ $res = '';
+ foreach ( explode( ';', $disposition ) as $part ) {
+ $part = trim( $part );
+ $new = ( $res === '' ) ? $part : "{$res};{$part}";
+ if ( strlen( $new ) <= 255 ) {
+ $res = $new;
+ } else {
+ break; // too long; sigh
+ }
+ }
+ return $res;
+ }
+
/**
* @see FileBackendStore::doCreateInternal()
* @return Status
}
// Set the Content-Disposition header if requested
if ( isset( $params['disposition'] ) ) {
- $obj->headers['Content-Disposition'] = $params['disposition'];
+ $obj->headers['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
}
if ( !empty( $params['async'] ) ) { // deferred
$op = $obj->write_async( $params['content'] );
}
// Set the Content-Disposition header if requested
if ( isset( $params['disposition'] ) ) {
- $obj->headers['Content-Disposition'] = $params['disposition'];
+ $obj->headers['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
}
if ( !empty( $params['async'] ) ) { // deferred
wfSuppressWarnings();
$dstObj = new CF_Object( $dContObj, $dstRel, false, false ); // skip HEAD
$hdrs = array(); // source file headers to override with new values
if ( isset( $params['disposition'] ) ) {
- $hdrs['Content-Disposition'] = $params['disposition'];
+ $hdrs['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
}
if ( !empty( $params['async'] ) ) { // deferred
$op = $sContObj->copy_object_to_async( $srcRel, $dContObj, $dstRel, null, $hdrs );
$dstObj = new CF_Object( $dContObj, $dstRel, false, false ); // skip HEAD
$hdrs = array(); // source file headers to override with new values
if ( isset( $params['disposition'] ) ) {
- $hdrs['Content-Disposition'] = $params['disposition'];
+ $hdrs['Content-Disposition'] = $this->truncDisp( $params['disposition'] );
}
if ( !empty( $params['async'] ) ) { // deferred
$op = $sContObj->move_object_to_async( $srcRel, $dContObj, $dstRel, null, $hdrs );
return $this->conn;
}
+ /**
+ * Close the connection to the Swift proxy
+ *
+ * @return void
+ */
+ protected function closeConnection() {
+ if ( $this->conn ) {
+ $this->conn->close(); // close active cURL handles in CF_Http object
+ $this->sessionStarted = 0;
+ $this->connContainerCache->clear();
+ }
+ }
+
/**
* Get the cache key for a container
*
}
if ( $e instanceof InvalidResponseException ) { // possibly a stale token
$this->srvCache->delete( $this->getCredsCacheKey( $this->auth->username ) );
+ $this->closeConnection(); // force a re-connect and re-auth next time
}
wfDebugLog( 'SwiftBackend',
get_class( $e ) . " in '{$func}' (given '" . FormatJson::encode( $params ) . "')" .
array( 'addIndex', 'revision', 'page_user_timestamp', 'patch-revision-user-page-index.sql' ),
array( 'addField', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id.sql' ),
array( 'addIndex', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id-index.sql' ),
+ array( 'dropField', 'category', 'cat_hidden', 'patch-cat_hidden.sql' ),
);
}
array( 'addIndex', 'revision', 'page_user_timestamp', 'patch-revision-user-page-index.sql' ),
array( 'addField', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id.sql' ),
array( 'addIndex', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id-index.sql' ),
+ array( 'dropField', 'category', 'cat_hidden', 'patch-cat_hidden.sql' ),
);
}
) {
continue;
}
- $tags[$tag] = intval( $h[0] / $h[1] )
+ $tags[$tag] = str_pad( intval( $h[0] / $h[1] ), 2, '0', STR_PAD_LEFT )
. ':' . str_pad( intval( $m[0] / $m[1] ), 2, '0', STR_PAD_LEFT )
. ':' . str_pad( intval( $s[0] / $s[1] ), 2, '0', STR_PAD_LEFT );
- $time = wfTimestamp( TS_MW, '1971:01:01 ' . $tags[$tag] );
- // the 1971:01:01 is just a placeholder, and not shown to user.
- if ( $time && intval( $time ) > 0 ) {
- $tags[$tag] = $wgLang->time( $time );
+ try {
+ $time = wfTimestamp( TS_MW, '1971:01:01 ' . $tags[$tag] );
+ // the 1971:01:01 is just a placeholder, and not shown to user.
+ if ( $time && intval( $time ) > 0 ) {
+ $tags[$tag] = $wgLang->time( $time );
+ }
+ } catch ( TimestampException $e ) {
+ // This shouldn't happen, but we've seen bad formats
+ // such as 4-digit seconds in the wild.
+ // leave $tags[$tag] as-is
}
continue;
}
/**
* List log type for which the target is a user
* Thus if the given target is in NS_MAIN we can alter it to be an NS_USER
- * Title user instead.
+ * Title user instead.
*/
private $typeOnUser = array(
'block',
public function execute( $par ) {
global $wgLogRestrictions;
-
+
$this->setHeaders();
$this->outputHeader();
// Set values
$opts->fetchValuesFromRequest( $this->getRequest() );
- if ( $par ) {
+ if ( $par !== null ) {
$this->parseParams( $opts, (string)$par );
}
}
$newRow = '';
- $newRow .= Xml::tags( 'td', null, Xml::element( 'tt', null, $tag ) );
+ $newRow .= Xml::tags( 'td', null, Xml::element( 'code', null, $tag ) );
$disp = ChangeTags::tagDescription( $tag );
$disp .= ' ';
'protect-title' => 'ضبط مستوى الحماية ل"$1"',
'protect-title-notallowed' => 'عرض مستوى الحماية ل "$1"',
'prot_1movedto2' => 'نُقلت [[$1]] إلى [[$2]]',
-'protect-badnamespace-title' => 'Ù\85ساØØ© إسÙ\85 غÙ\8aر Ù\85ØÙ\85Ù\8aØ©',
-'protect-badnamespace-text' => 'لا يمكن حماية الصفحات الموجودة في مساحة الإسم',
+'protect-badnamespace-title' => 'Ù\86طاÙ\82 Ù\84ا Ù\8aØÙ\85Ù\89',
+'protect-badnamespace-text' => 'صفحات هذا النطاق لا يمكن حمايتها',
'protect-legend' => 'تأكيد الحماية',
'protectcomment' => 'السبب:',
'protectexpiry' => 'تنتهي في:',
'import-error-edit' => 'الصفحة "$1" لم يتم استيرادها لأنه لا يمكن لك تحريرها.',
'import-error-create' => 'الصفحة "$1" لم يتم استيرادها لأنه لا يمكن لك استحداثها أصلا.',
'import-error-interwiki' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها محجوز للربط الخارجي (interwiki).',
-'import-error-special' => 'تعذر أستÙ\8aراد اÙ\84صÙ\81ØØ© "$1" Ù\84Ø£Ù\86Ù\87ا تÙ\86تÙ\85Ù\8a Ø¥Ù\84Ù\89 Ù\85ساØØ© إسÙ\85 خاصة تمنع الصفحات.',
+'import-error-special' => 'صÙ\81ØØ© "$1" Ù\84Ù\85 تستÙ\88رد Ù\84Ø£Ù\86Ù\87ا تÙ\86تÙ\85Ù\8a Ø¥Ù\84Ù\89 Ù\86طاÙ\82 خاص Ù\8aمنع الصفحات.',
'import-error-invalid' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها غير صحيح.',
'import-options-wrong' => 'خطأ {{PLURAL:$2|خيار|خيارات}}: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'إن عنوان الصفحة الجذر المعطاة هي ذات عنوان غير صالح.',
'pageinfo-authors' => 'عدد المؤلفين المختلفين',
'pageinfo-recent-edits' => 'عدد التعديلات الأخيرة (خلال $1 يوم/أيام)',
'pageinfo-recent-authors' => 'عدد المؤلفين المختلفين الأخيرين',
-'pageinfo-restriction' => 'حماية الصفحة (<code>$1</code>)',
+'pageinfo-restriction' => 'حماية الصفحة ($1)',
'pageinfo-magic-words' => 'السحرية {{PLURAL:$1|الكلمة|الكلمات}} ($1)',
'pageinfo-hidden-categories' => 'مخفية {{PLURAL:$1|فئة|فئات}} ($1)',
'pageinfo-templates' => 'متضمنة {{PLURAL:$1|قالب|قوالب}} ($1)',
'pageinfo-authors' => "Númberu total d'autores distintos",
'pageinfo-recent-edits' => "Númberu d'ediciones recientes (nos caberos $1)",
'pageinfo-recent-authors' => "Númberu d'autores distintos recientes",
-'pageinfo-restriction' => 'Proteición de la páxina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Proteición de la páxina ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Pallabra máxica|Pallabres máxiques}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría anubrida|Categoríes anubríes}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Plantía incluída|Plantíes incluíes}} ($1)',
'lineno' => 'Zeiln $1:',
'compareselectedversions' => 'Gwöde Versionen vagleichen',
'editundo' => 'ryckgängig',
-'diff-multi' => '({{PLURAL:$1|A dazwischenliegerte Versión|$1 dazwischenliegende Versiónen}} vohram {{PLURAL:$2|Benutzer|$2 Benutzern}} {{PLURAL:$1|werd|wern}} néd åzoagt)',
+'diff-multi' => '({{PLURAL:$1|A dazwischenliegerte Versión|$1 dazwischenliegende Versiónen}} {{PLURAL:$2|vohram Benutzer|vo $2 Benutzern}} {{PLURAL:$1|werd|wern}} néd åzoagt)',
# Search results
'searchresults' => 'Suachergebniss',
'pageinfo-authors' => 'Колькасьць аўтараў',
'pageinfo-recent-edits' => 'Колькасьць апошніх рэдагаваньняў (за $1)',
'pageinfo-recent-authors' => 'Колькасьць апошніх аўтараў',
-'pageinfo-restriction' => 'Стан аховы (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Стан аховы ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Магічнае слова|Магічныя словы}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Схаваная катэгорыя|Схаваныя катэгорыі}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Шаблён|Шаблёны}} ($1)',
'pageinfo-authors' => 'Niver a aozerien disheñvel',
'pageinfo-recent-edits' => 'Niver a gemmoù nevez (er $1 diwezhañ)',
'pageinfo-recent-authors' => "Niver a aozerien nevez a-ziforc'h",
-'pageinfo-restriction' => 'Gwareziñ ar bajenn (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Gwareziñ ar bajenn ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Ger hud |Gerioù hud}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Rumm kuzh|Rummoù kuzh}} ($1)',
'pageinfo-templates' => "{{PLURAL:$1|Patrom endalc'het|Patromoù endalc'het}} ($1)",
* @author Abastillas
* @author Dosmiin Barsbold
* @author Jordz
+ * @author Mirzali
* @author Palang hernan
* @author Reedy
* @author לערי ריינהארט
'loginprompt' => 'Kinahanglang naka-enable ang mga koki aron ikaw maka-log-in sa {{SITENAME}}.',
'userlogin' => 'Rehistro / Dayon',
'logout' => 'Biya',
-'userlogout' => 'Biya',
+'userlogout' => 'Bıveciye',
'notloggedin' => 'Wala ka pa masulod',
'nologin' => "Wala pay akawnt? '''$1'''.",
'nologinlink' => 'Paghimo og akawnt',
'prefs-emailconfirm-label' => 'پشتڕاست کردنەوەی ئیمەیل:',
'prefs-textboxsize' => 'قەبارەی پەنجەرەی دەستکاریکردن',
'youremail' => 'ئیمەیل:',
-'username' => 'ناوی بهكارهێنهر:',
+'username' => 'ناوی بهکارھێنەر:',
'uid' => 'ژمارەی بەکارھێنەر:',
'prefs-memberingroups' => 'ئەندامی {{PLURAL:$1|گرووپی|گرووپەکانی}}:',
'prefs-registration' => 'کاتی خۆتۆمارکردن:',
# User rights
'userrights' => 'بەڕێوەبردنی مافەکانی بەکارھێنەر',
-'userrights-lookup-user' => 'بەڕێوەبردنی گرووپەکانی بەکارهێنەران',
+'userrights-lookup-user' => 'بەڕێوەبردنی گرووپەکانی بەکارھێنەر',
'userrights-user-editname' => 'ناوی بەکارهێنەرێک بنووسە:',
-'editusergroup' => 'گرووپەکانی بەکارهێنەر بگۆڕە',
+'editusergroup' => 'گرووپەکانی بەکارھێنەر دەستکاری بکە',
'editinguser' => "گۆڕینی مافەکانی بەکارهێنەر '''[[User:$1|$1]]''' $2",
-'userrights-editusergroup' => 'دەستکاری کردنی گرووپەکانی بەکارهێنەران',
-'saveusergroups' => 'گرÙ\88Ù\88Ù¾Û\8c بÛ\95کارÙ\87Û\8eÙ\86Û\95راÙ\86 پاشەکەوت بکە',
+'userrights-editusergroup' => 'دەستکاریی گرووپەکانی بەکارهێنەر',
+'saveusergroups' => 'گرÙ\88Ù\88Ù¾Û\95کاÙ\86Û\8c بÛ\95کارھÛ\8eÙ\86Û\95ر پاشەکەوت بکە',
'userrights-groupsmember' => 'ئەندامە لە:',
'userrights-groups-help' => 'دەتوانی ئەو گرووپانەی ئەم بەکارهێنەرە تێیدایە بگۆڕیت:
* چوارچێوەی نیشانکراو مانای ئەوەیە لەو گرووپەدا هەیە.
# Groups
'group' => 'گرووپ:',
'group-user' => 'بەکارهێنەران',
-'group-autoconfirmed' => 'بەکارھێنەرە خۆکار پەسندکراوەکان',
+'group-autoconfirmed' => 'بەکارھێنەرانی پەسندکراوی خۆگەڕ',
'group-bot' => 'بۆتەکان',
'group-sysop' => 'بەڕێوبەران',
'group-bureaucrat' => 'بورووکراتەکان',
'group-all' => '(هەموو)',
'group-user-member' => '{{GENDER:$1|بەکارھێنەر}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|بەکارھێنەری خۆکار پەسەندکراو}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|بەکارھێنەرانی پەسندکراوی خۆگەڕ}}',
'group-bot-member' => 'بۆت',
'group-sysop-member' => '{{GENDER:$1|بەڕێوبەر}}',
'group-bureaucrat-member' => '{{GENDER:$1|بورووکرات}}',
'group-suppress-member' => '{{GENDER:$1|چاودێر}}',
'grouppage-user' => '{{ns:project}}:بەکارھێنەران',
-'grouppage-autoconfirmed' => '{{ns:project}}:بەکارهێنەرانی خۆکار-بڕواکراو',
+'grouppage-autoconfirmed' => '{{ns:project}}:بەکارھێنەرانی پەسندکراوی خۆگەڕ',
'grouppage-bot' => '{{ns:project}}:بۆتەکان',
'grouppage-sysop' => '{{ns:project}}:بەڕێوبەران',
'grouppage-bureaucrat' => '{{ns:project}}:بورووکراتەکان',
'newuserlogpagetext' => 'ئەمە لۆگێکی دروستکردنی بەکارھێنەرە.',
# Special:ListGroupRights
-'listgrouprights' => 'Ù\85اÙ\81Û\95کاÙ\86Û\8c گرÙ\88Ù\88Ù¾Û\95 بÛ\95کارھÛ\8eÙ\86Û\95رÛ\8cÛ\8cÛ\95کاÙ\86',
+'listgrouprights' => 'Ù\85اÙ\81Û\95کاÙ\86Û\8c گرÙ\88Ù\88Ù¾Û\8c بÛ\95کارھÛ\8eÙ\86Û\95ر',
'listgrouprights-summary' => 'ئەمە لیستێکە لە گرووپەکانی بەکارهێنەر لەسەر ئەم ویکییە، دەگەڵ مافەکانی دەستپێگەیشتنی هاوپەیوەندیان.
لێرەدا لەوانەیە [[{{MediaWiki:Listgrouprights-helppage}}|زانیاری زیاترت]] دەستکەوێت سەبارەت بە مافە تاکەکەسیەکان.',
'listgrouprights-key' => '* <span class="listgrouprights-granted">مافی دراوە</span>
'pageinfo-authors' => 'Celkový počet různých autorů',
'pageinfo-recent-edits' => 'Počet nedávných ($1) editací',
'pageinfo-recent-authors' => 'Nedávný počet různých autorů',
-'pageinfo-restriction' => 'Zámek stránky (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Zámek stránky ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Kouzelné slovo|Kouzelná slova}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Skrytá|Skryté}} kategorie ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Použitá šablona|Použité šablony}} ($1)',
'pageinfo-lasttime' => 'Dato for seneste redigering',
'pageinfo-edits' => 'Samlet antal redigeringer',
'pageinfo-authors' => 'Det samlede antal forskellige forfattere',
-'pageinfo-restriction' => 'Sidebeskyttelse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Sidebeskyttelse ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magisk|Magiske}} ord ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Skjult kategori|Skjulte kategorier}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Transkluderet skabelon|Transkluderede skabeloner}} ($1)',
# User rights log
'rightslog' => 'Rechte-Logbuch',
'rightslogtext' => 'Dies ist das Logbuch der Änderungen der Benutzerrechte.',
-'rightslogentry' => 'änderte die Benutzerrechte für „$1“ von „$2“ auf „$3“',
-'rightslogentry-autopromote' => 'wurde automatisch von „$2“ nach „$3“ zugeordnet',
+'rightslogentry' => 'änderte die Benutzerrechte für „$1“ von „$2“ zu „$3“',
+'rightslogentry-autopromote' => 'wurde automatisch von „$2“ zu „$3“ zugeordnet',
'rightsnone' => '(–)',
# Associated actions - in the sentence "You do not have permission to X"
'pageinfo-authors' => 'Gesamtzahl unterschiedlicher Autoren',
'pageinfo-recent-edits' => 'Anzahl der kürzlich erfolgten Bearbeitungen (innerhalb von $1)',
'pageinfo-recent-authors' => 'Anzahl der unterschiedlichen Autoren',
-'pageinfo-restriction' => 'Seitenschutz (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Seitenschutz ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magisches Wort|Magische Wörter}} ($1)',
'pageinfo-hidden-categories' => 'Versteckte {{PLURAL:$1|Kategorie|Kategorien}} ($1)',
'pageinfo-templates' => 'Eingebundene {{PLURAL:$1|Vorlage|Vorlagen}} ($1)',
'cancel' => 'Bıterkne',
'moredotdotdot' => 'Vêşêri...',
'mypage' => 'Pela mı',
-'mytalk' => 'Werênayışi',
+'mytalk' => 'Werênayışê mı',
'anontalk' => 'Pela werênayışê nê IPy',
'navigation' => 'Pusula',
'and' => ' u',
'vector-view-create' => 'Vıraze',
'vector-view-edit' => 'Bıvurne',
'vector-view-history' => 'Tarixi bımocne',
-'vector-view-view' => 'Bıwanên',
+'vector-view-view' => 'Bıwanê',
'vector-view-viewsource' => 'Çımey bıvêne',
'actions' => 'Kerdeni',
'namespaces' => 'Cayê namey',
'sort-ascending' => 'Ratnayışê Zeydnayışi',
# Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Pele',
+'nstab-main' => 'Per',
'nstab-user' => 'Pela Karberi',
'nstab-media' => 'Pela Medya',
'nstab-special' => 'Pela xısusiye',
'userlogin' => 'Cı kewe / hesab vıraze',
'userloginnocreate' => 'Cı kewe',
'logout' => 'Veciyayış',
-'userlogout' => 'Bıveciyên',
+'userlogout' => 'Bıveciye',
'notloggedin' => 'Hesab akerde niyo',
'nologin' => "Hesabê şıma çıniyo? '''$1'''.",
'nologinlink' => 'Yew hesab ake',
'subject' => 'Mewzu/serrêze:',
'minoredit' => 'Vurnayışo werdı',
'watchthis' => 'Ena pele seyr ke',
-'savearticle' => 'Peler qeyd ke',
+'savearticle' => 'Pele qeyd ke',
'preview' => 'Verqayt',
'showpreview' => 'Verqayti bıvin',
'showlivepreview' => 'Verqayto cıwın',
# Preferences page
'preferences' => 'Tercihi',
-'mypreferences' => 'Tercihi',
+'mypreferences' => 'Tercihê mı',
'prefs-edits' => 'Amarê vurnayışan:',
'prefsnologin' => 'Şıma cıkewtış nêvıraşto',
'prefsnologintext' => 'Şıma gani be <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} cikewte]</span> ke tercihanê karberi xo eyar bıkerê.',
'right-delete' => 'Pele bestere',
'right-bigdelete' => 'Pelanê be tarixanê dergan bestere',
'right-deletelogentry' => 'besternayış u mebesternayışa re qeyde definayışê xısusi',
-'right-deleterevision' => 'Vurnayışê xısusiyê ke ê pelanê, inan bestere ya peyser bia',
+'right-deleterevision' => 'Vurnayışê xısusiyê ke ê pelanê, inan bestere ya zi peyser bia',
'right-deletedhistory' => 'Qeydanê tarixanê esterıteyan de qayt ke, bê nuştey inan',
'right-deletedtext' => 'Mabênê newede vurnayışanê esterıtiyan de qaytê nuştey esterıtey u vurnayışan ke',
'right-browsearchive' => 'Bıgeyre pelanê eserıtiyan',
'statistics-header-users' => 'Îstatistiksê karberî',
'statistics-header-hooks' => 'Îstatistiksê binî',
'statistics-articles' => 'Pelanê tedesteyî',
-'statistics-pages' => 'Peley',
+'statistics-pages' => 'Peri',
'statistics-pages-desc' => 'Pelanê hemî ke wîkî de estê, pelanê mineqeşeyî, redireksiyon ucb... dehil o.',
'statistics-files' => 'Dosyayê bar biye',
'statistics-edits' => 'Amarê vurnayîşî ke wextê {{SITENAME}} ronayîşî ra',
# Watchlist
'watchlist' => 'lista mına seyr-kerdışi',
-'mywatchlist' => 'Listey seyrkerdışi',
+'mywatchlist' => 'Lista mına seyrkerdışi',
'watchlistfor2' => 'Qandê $1 ($2)',
'nowatchlist' => 'listeya temaşa kerdıişê şıma de yew madde zi çina.',
'watchlistanontext' => 'qey vurnayişê maddeya listeya temaşakerdişi $1.',
# Contributions
'contributions' => 'İştiraqê karberi',
'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'Pêşteni',
+'mycontris' => 'İştıraqê mı',
'contribsub2' => 'Qandê $1 ($2)',
'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
'uctop' => '(ser)',
# What links here
'whatlinkshere' => 'Çı tiyay rê gırê beno',
'whatlinkshere-title' => 'Peleye ke "$1" re gre biyê',
-'whatlinkshere-page' => 'Pele:',
+'whatlinkshere-page' => 'Per:',
'linkshere' => "Ena peleyan grey biya '''[[:$1]]''':",
'nolinkshere' => "Yew pel zi '''[[:$1]]''' rê link nibeno.",
'nolinkshere-ns' => "Ena cayê nameyî de yew pel zi '''[[:$1]]''' rê link nibeno.",
'pageinfo-authors' => 'Amarina nuştekaran pêro',
'pageinfo-recent-edits' => 'Amariya vurnayışan ($1 ra nata)',
'pageinfo-recent-authors' => 'Amarina nuştekaran pêro',
-'pageinfo-restriction' => 'Xısusiyetê pela (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Xısusiyetê pela ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Çekuya|Çekuyê}} ($1) sihırini',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategoriye|Kategoriyan}} ($1) bınımne',
'pageinfo-templates' => '{{PLURAL:$1|Şablon|Şabloni}} ($1) açarneyayê',
'pageinfo-authors' => 'Cełkowna licba wšakich awtorow',
'pageinfo-recent-edits' => 'Licba nejnowšych změnow (za zachadnych $1)',
'pageinfo-recent-authors' => 'Nejnowša licba rozdźělnych awtorow',
-'pageinfo-restriction' => 'Šćit boka (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Šćit boka ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magiske słowo|Magiskej słowje|Magiske słowa|Magiske słowa}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Zapśěgnjona pśedłoga|Zapśěgnjonej pśedłoze|Zapśěgnjone pśedłogi|Zapśěgnjone pśedłogi}} ($1)',
'revdelete-only-restricted' => 'Error hiding the item dated $2, $1: You cannot suppress items from view by administrators without also selecting one of the other visibility options.',
'revdelete-reason-dropdown' => '*Common delete reasons
** Copyright violation
-** Inappropriate personal information
+** Inappropriate comment or personal information
+** Inappropriate username
** Potentially libelous information',
'revdelete-otherreason' => 'Other/additional reason:',
'revdelete-reasonotherlist' => 'Other reason',
'pageinfo-authors' => 'Total number of distinct authors',
'pageinfo-recent-edits' => 'Recent number of edits (within past $1)',
'pageinfo-recent-authors' => 'Recent number of distinct authors',
-'pageinfo-restriction' => 'Page protection (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Page protection ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'Magic {{PLURAL:$1|word|words}} ($1)',
'pageinfo-hidden-categories' => 'Hidden {{PLURAL:$1|category|categories}} ($1)',
'pageinfo-templates' => 'Transcluded {{PLURAL:$1|template|templates}} ($1)',
'pageinfo-title' => 'Informoj por "$1"',
'pageinfo-header-basic' => 'Baza informo',
'pageinfo-header-edits' => 'Historio de redaktoj',
+'pageinfo-article-id' => 'Paĝa identigo',
'pageinfo-robot-index' => 'Indeksebla',
'pageinfo-robot-noindex' => 'Ne indeksebla',
'pageinfo-views' => 'Nombro de rigardoj',
'pageinfo-authors' => 'Número total de autores distintos',
'pageinfo-recent-edits' => 'Número de ediciones recientes (en los últimos $1)',
'pageinfo-recent-authors' => 'Número de autores distintos recientes',
-'pageinfo-restriction' => 'Protección de la página (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protección de la página ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Palabra mágica|Palabras mágicas}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría oculta|Categorías ocultas}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|plantilla incluida|plantillas incluidas}} ($1)',
'pageinfo-authors' => 'Erinevate autorite koguarv',
'pageinfo-recent-edits' => 'Viimaste redigeerimiste arv (viimase $1 jooksul)',
'pageinfo-recent-authors' => 'Erinevate viimaste toimetajate arv',
-'pageinfo-restriction' => 'Lehekülje kaitse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Lehekülje kaitse ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Võlusõna|Võlusõnad}} ($1)',
'pageinfo-hidden-categories' => 'Peidetud {{PLURAL:$1|kategooria|kategooriad}} ($1)',
'pageinfo-templates' => 'Kasutatud {{PLURAL:$1|mall|mallid}} ($1)',
'pageinfo-authors' => 'تعداد کلی نویسندگان یکتا',
'pageinfo-recent-edits' => 'شماره ویرایشهای اخیر (در $1 گذشته)',
'pageinfo-recent-authors' => 'تعداد نویسندگان یکتای اخیر',
-'pageinfo-restriction' => 'محافظت صفحه ( <code>{{lcfirst:$1}}</code> )',
+'pageinfo-restriction' => 'محافظت صفحه ( {{lcfirst:$1}} )',
'pageinfo-magic-words' => '{{PLURAL:$1|حرف|حروف}} جادویی ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1| ردهٔ|ردهٔ}} پنهان ( $1 )',
'pageinfo-templates' => '{{PLURAL:$1|الگو|الگو}} استفادهشده ($1)',
# Miscellaneous special pages
'nbytes' => '$1 {{PLURAL:$1|tavu|tavua}}',
'ncategories' => '$1 {{PLURAL:$1|luokka|luokkaa}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki-linkki|interwiki-linkkiä}}',
'nlinks' => '$1 {{PLURAL:$1|linkki|linkkiä}}',
'nmembers' => '$1 {{PLURAL:$1|jäsen|jäsentä}}',
'nrevisions' => '$1 {{PLURAL:$1|muutos|muutosta}}',
'mostlinkedtemplates' => 'Viitatuimmat mallineet',
'mostcategories' => 'Luokitelluimmat sivut',
'mostimages' => 'Viitatuimmat tiedostot',
+'mostinterwikis' => 'Sivut joilla on eniten kielilinkkejä',
'mostrevisions' => 'Muokatuimmat sivut',
'prefixindex' => 'Kaikki sivut katkaisuhaulla',
'prefixindex-namespace' => 'Kaikki sivut etuliitteellä (nimiavaruus $1)',
'mailnologin' => 'Lähettäjän osoite puuttuu',
'mailnologintext' => 'Sinun pitää olla [[Special:UserLogin|kirjautuneena sisään]] ja [[Special:Preferences|asetuksissasi]] pitää olla toimiva ja <strong>varmennettu</strong> sähköpostiosoite, jotta voit lähettää sähköpostia muille käyttäjille.',
'emailuser' => 'Lähetä sähköpostia tälle käyttäjälle',
+'emailuser-title-target' => 'Lähetä sähköpostia tälle {{GENDER:$1|käyttäjälle}}',
+'emailuser-title-notarget' => 'Lähetä sähköpostia käyttäjälle',
'emailpage' => 'Lähetä sähköpostia käyttäjälle',
'emailpagetext' => 'Jos tämä käyttäjä on antanut asetuksissaan kelvollisen sähköpostiosoitteen, alla olevalla lomakkeella voit lähettää hänelle viestin. [[Special:Preferences|Omissa asetuksissasi]] annettu sähköpostiosoite näkyy sähköpostin lähettäjän osoitteena, jotta vastaanottaja voi suoraan vastata viestiin.',
'usermailererror' => 'Postitus palautti virheen:',
# Info page
'pageinfo-title' => 'Tietoja sivusta $1',
-'pageinfo-header-edits' => 'Muokkaukset',
+'pageinfo-header-basic' => 'Perustiedot',
+'pageinfo-header-edits' => 'Muokkaushistoria',
+'pageinfo-header-restrictions' => 'Sivun suojaus',
+'pageinfo-header-properties' => 'Sivun ominaisuudet',
'pageinfo-views' => 'Katselukertojen määrä',
-'pageinfo-watchers' => 'Tarkkailijoiden lukumäärä',
-'pageinfo-edits' => 'Muokkausten lukumäärä',
-'pageinfo-authors' => 'Eri tekijöiden lukumäärä',
+'pageinfo-watchers' => 'Sivun tarkkailijoiden lukumäärä',
+'pageinfo-redirects-name' => 'Sivulle johtavat ohjaukset',
+'pageinfo-subpages-name' => 'Sivun alasivut',
+'pageinfo-firstuser' => 'Sivun luoja',
+'pageinfo-lastuser' => 'Viimeisin muokkaaja',
+'pageinfo-edits' => 'Muokkausten kokonaismäärä',
+'pageinfo-authors' => 'Sivun eri muokkaajien kokonaismäärä',
# Skin names
'skinname-standard' => 'Perus',
'pageinfo-authors' => "Nombre total d'auteurs distincts",
'pageinfo-recent-edits' => 'Nombre de modifications récentes (dans les derniers $1)',
'pageinfo-recent-authors' => "Nombre d'auteurs distincts récents",
-'pageinfo-restriction' => 'Protection de la page (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protection de la page ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Mot magique|Mots magiques}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Catégorie cachée|Catégories cachées}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Modèle inclu|Modèles inclus}} ($1)',
'logentry-move-move-noredirect' => '$1 a déplacé la page $3 vers $4 sans laisser de redirection',
'logentry-move-move_redir' => '$1 a déplacé la page $3 vers $4 par-dessus une redirection',
'logentry-move-move_redir-noredirect' => '$1 a déplacé la page $3 vers $4 par-dessus une redirection sans laisser de redirection',
-'logentry-patrol-patrol' => '$1 a marqué la révision $4 de la page $3 comme contrôlée',
-'logentry-patrol-patrol-auto' => '$1 a automatiquement marqué la révision $4 de la page $3 comme contrôlée',
+'logentry-patrol-patrol' => '$1 a marqué la révision $4 de la page $3 comme relue',
+'logentry-patrol-patrol-auto' => '$1 a automatiquement marqué la révision $4 de la page $3 comme relue',
'logentry-newusers-newusers' => '$1 a créé un compte utilisateur',
'logentry-newusers-create' => '$1 a créé son compte utilisateur',
'logentry-newusers-create2' => '$1 a créé un compte utilisateur $3',
'pageinfo-authors' => 'Número total de autores distintos',
'pageinfo-recent-edits' => 'Número de edicións recentes (durante os últimos $1)',
'pageinfo-recent-authors' => 'Número de autores distintos recentes',
-'pageinfo-restriction' => 'Protección da páxina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protección da páxina ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Palabra máxica|Palabras máxicas}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría agochada|Categorías agochadas}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Modelo incluído|Modelos incluídos}} ($1)',
'tog-hidepatrolled' => 'Vum Fäldhieter aagluegti Änderige in dr „Letschte Änderige“ usblände',
'tog-newpageshidepatrolled' => 'Aagluegti Syten uf dr Lischt „Neiji Syte“ verstecke',
'tog-extendwatchlist' => 'Beobachtungslischte erwytere go alli Änderige aazeige, nit numme di letschte',
-'tog-usenewrc' => 'Erwytereti «letschti Änderige» (brucht JavaScript)',
+'tog-usenewrc' => 'Sytebezogeni Gruppierig bi dr «letschte Änderige» un uf dr Beobachtigslischte (brucht JavaScript)',
'tog-numberheadings' => 'Überschrifte outomatisch numeriere',
'tog-showtoolbar' => 'Editier-Wärchzüüg aazeige',
'tog-editondblclick' => 'Syte ändere mit Doppelklick i d Syte (JavaScript)',
'tog-editsectiononrightclick' => 'Einzelni Absätz ändere mit Rächtsclick (Javascript)',
'tog-showtoc' => 'Inhaltsverzeichnis aazeige bi Artikle mit meh als drei Überschrifte',
'tog-rememberpassword' => 'Mit däm Browser duurhaft aamälde (Maximal fir $1 {{PLURAL:$1|Tag|Täg}})',
-'tog-watchcreations' => 'Sälber gmachti Sytene beobachte',
-'tog-watchdefault' => 'Vo dir nöi gmachti oder verändereti Syte beobachte',
-'tog-watchmoves' => 'Sälber verschobeni Sytene beobachte',
-'tog-watchdeletion' => 'Sälber glöschti Sytene beobachte',
+'tog-watchcreations' => 'Sälber gmachti Sytene un uffegladeni Dateie automatisch beobachte',
+'tog-watchdefault' => 'Sälber gändereti Syte un Dateie automatisch beobachte',
+'tog-watchmoves' => 'Sälber verschobeni Sytene un Dateie automatisch beobachte',
+'tog-watchdeletion' => 'Sälber gleschti Sytene un Dateie automatisch beobachte',
'tog-minordefault' => 'Alli dyni Änderigen als «chlyni Änderige» markiere',
'tog-previewontop' => 'Vorschou vor em Editierfänschter aazeige',
'tog-previewonfirst' => 'Vorschou aazeige bim erschten Editiere',
'tog-nocache' => 'Syte-Cache vum Browser deaktiviere',
-'tog-enotifwatchlistpages' => 'Benachrichtigungsmails by Änderigen a Wiki-Syte',
+'tog-enotifwatchlistpages' => 'Schick mer e Mail, wänn e Syte oder e Datei gänderet wird, wun i beobachte due',
'tog-enotifusertalkpages' => 'Benachrichtigungsmails bi Änderigen a dyne Benutzersyte',
-'tog-enotifminoredits' => 'Benachrichtigungsmail ou bi chlyne Sytenänderige',
+'tog-enotifminoredits' => 'Au bi chlaine Änderige an Syte oder Dateie ne Mail schicke',
'tog-enotifrevealaddr' => 'Dyni E-Mail-Adrässe wird i Benachrichtigungsmails zeigt',
'tog-shownumberswatching' => 'Aazahl Benutzer aazeige, wo ne Syten am Aaluege sy (i den Artikelsyte, i de «letschten Änderigen» und i der Beobachtigslischte)',
'tog-oldsig' => 'Vorschau vu dr Unterschrift:',
'dberrortext' => 'S isch e Datebankfähler ufträtte.
Dr Grund cha ne e Programmierfähler syy.
Di letscht Datebankabfrog isch
-<blockquote><tt>$1</tt></blockquote>
-us dr Funktion „<tt>$2</tt>“ gsi.
-D Datebank het dr Fähler „<tt>$3: $4</tt>“ gmäldet.',
+<blockquote><code>$1</code></blockquote>
+us dr Funktion „<code>$2</code>“ gsi.
+D Datebank het dr Fähler „<samp>$3: $4</samp>“ gmäldet.',
'dberrortextcl' => 'S het e Syntaxfähler gee in dr Abfrog vu dr Datebank.
Di letscht Datebankabfrog isch
„$1“
'yourdomainname' => 'Dyyni Domäne',
'externaldberror' => 'Entwäder s lit e Fähler bi dr externe Authentifizierung vor, oder Du derfsch Dyy extern Benutzerkonto nid aktualisiere.',
'login' => 'Aamälde',
-'nav-login-createaccount' => 'Aamälde / Konto aaleege',
+'nav-login-createaccount' => 'Aamälde / Konto aalege',
'loginprompt' => '<small>Für di bir {{SITENAME}} aazmälde, muesch Cookies erloube!</small>',
'userlogin' => 'Aamälde/Konto aalege',
'userloginnocreate' => 'Aamälde',
'userpage-userdoesnotexist-view' => 'S Benutzerkonto „$1“ isch nit registriert.',
'blocked-notice-logextract' => 'Dää Benutzer isch zur Zyt gsperrt.
As Information chunnt do ne aktuälle Uuszug us em Benutzersperr-Logbuech:',
-'clearyourcache' => "'''Hinweis:''' Noch em Spycheremuesch no dr Browser-Zwischespycher lääre go d Änderige sää.
+'clearyourcache' => "'''Hiiwys:''' Noch em Spycheremuesch no dr Browser-Zwischespycher lääre go d Änderige sää.
* '''Firefox/ Safari:''' ''Umschaltig'' drucken un glychzytig ''Aktualisiere'' aaklicken oder entwäder ''Strg+F5'' oder ''Strg+R'' (''Befehlstaste-R'' uf em Mac) drucke
* '''Google Chrome:''' ''Umschaltig+Strg+R'' (''Befählstaschte-R'' uf em Mac) drucke
* '''Internet Explorer:''' ''Strg+F5'' drucken oder ''Strg'' drucken un glychzytig ''Aktualisiere'' aaklicke
-* '''Opera:''' ''Extra → Internetspure lesche … → Individuäll Uuswahl → Dr komplett Cache lesche''
-* '''Konqueror:''' ''Aktualisiere'' aaklicken oder ''F5'' drucke",
+* '''Opera:''' ''Extra → Internetspure lesche … → Individuäll Uuswahl → Dr komplett Cache lesche''",
'usercssyoucanpreview' => "'''Tipp:''' Nimm dr „{{int:showpreview}}”-Chnopf, zum Dyy nej CSS vor em Spichere z teschte.",
'userjsyoucanpreview' => "'''Tipp:''' „Nimm dr {{int:showpreview}}”-Chnopf, zum Dyy nej JS vor em Spichere z teschte.",
'usercsspreview' => "== Vorschau vu Dyynem Benutzer-CSS. ==
'right-ipblock-exempt' => 'Uusnahm vu IP-Sperrine, Autoblock und Rangesperre',
'right-proxyunbannable' => 'Uusnahm vu automatische Proxysperrine',
'right-unblockself' => 'Sich sälber entsperre',
-'right-protect' => 'Syteschutzstatus ändere',
+'right-protect' => 'Syteschutzstatus änderen un gschitzti Syte bearbeite',
'right-editprotected' => 'Gschitzti Syte bearbeite (ohni Kaskadeschutz)',
'right-editinterface' => 'Benutzerinterface bearbeite',
'right-editusercssjs' => 'Bearbeite vu CSS- und JS-Dateie vu andere Benutzer',
'disambiguations' => 'Syte, wu uf Begriffsklärigssyte verlinke',
'disambiguationspage' => 'Template:Begriffsklärig',
-'disambiguations-text' => 'Die Syte verwyyse uf e Begriffsklärigs-Syte. Sie sotte aber besser uf d Syte verwyyse, wu eigetli gmeint sin.<br />E Syte wird as Begriffsklärigs-Syte behandlet, wänn [[MediaWiki:Disambiguationspage]] uf si verwyyst.<br />Link us Namensryym wäre do nit ufglischtet.',
+'disambiguations-text' => 'Die Syte verwyyse uf e Begriffsklärigs-Syte. Sie sotte aber besser uf d Syte verwyyse, wu eigetli gmeint sin.
+
+E Syte wird as Begriffsklärigs-Syte behandlet, wänn [[MediaWiki:Disambiguationspage]] uf si verwyyst.',
'doubleredirects' => 'Doppleti Wyterleitige (Redirects)',
'doubleredirectstext' => 'Die Lischt zeigt Wyterleitige, wu uf anderi Wyterleitige verwyyse.
# Info page
'pageinfo-title' => 'Informatione zue „$1“',
-'pageinfo-header-edits' => 'Bearbeitunge',
+'pageinfo-header-edits' => 'Bearbeitige',
'pageinfo-views' => 'Aazahl Sytenufruef',
'pageinfo-watchers' => 'Aazahl vu Beobachter',
'pageinfo-edits' => 'Aazahl Bearbeitige',
* <span class="mw-specialpagecached">Gecachti Spezialsyte (dr Inhalt ist villicht veraltet.)</span>',
'specialpages-group-maintenance' => 'Wartigslischte',
'specialpages-group-other' => 'Andri Spezialsyte',
-'specialpages-group-login' => 'Aamälde',
+'specialpages-group-login' => 'Aamälde/Konto aalege',
'specialpages-group-changes' => 'D letschte Änderige un Logbüecher',
'specialpages-group-media' => 'Medie',
'specialpages-group-users' => 'Benutzer un Rächt',
'pageinfo-authors' => 'המספר הכולל של כותבים שונים',
'pageinfo-recent-edits' => 'מספר העריכות לאחרונה ($1)',
'pageinfo-recent-authors' => 'מספר הכותבים הייחודיים לאחרונה',
-'pageinfo-restriction' => 'הגנה על הדף (<code>$1</code>)',
+'pageinfo-restriction' => 'הגנה על הדף ($1)',
'pageinfo-magic-words' => '{{PLURAL:$1|מילת קסם|מילות קסם}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|קטגוריה מוסתרת|קטגוריות מוסתרות}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|תבנית מוכללת|תבניות מוכללות}} ($1)',
'pageinfo-authors' => 'Cyłkowna ličba rozdźělnych awtorow',
'pageinfo-recent-edits' => 'Ličba najnowšich změnow (za zańdźenych $1)',
'pageinfo-recent-authors' => 'Najnowša ličba rozdźělnych awtorow',
-'pageinfo-restriction' => 'Škit strony (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Škit strony ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magiske słowo|Magiskej słowje|Magiske słowa|Magiske słowa}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Zapřijata předłoha|Zapřijatej předłoze|Zapřijate předłohi|Zapřijate předłohi}} ($1)',
'ok' => 'OK',
'retrievedfrom' => 'A lap eredeti címe: „$1”',
-'youhavenewmessages' => 'Új üzenet vár $1! (Az üzenetet $2.)',
-'newmessageslink' => 'a vitalapodon',
-'newmessagesdifflink' => 'külön is megtekintheted',
+'youhavenewmessages' => '$1 a vitalapodon! ($2. külön is megtekintheted)',
+'newmessageslink' => 'új üzenet vár',
+'newmessagesdifflink' => 'az utolsó üzenetet',
'youhavenewmessagesmanyusers' => '$1ed van több szerkesztőtől ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1|egy|$1}} új üzenet',
-'newmessagesdifflinkplural' => 'utolsó {{PLURAL:$1|egy|$1}} változtatás',
+'newmessageslinkplural' => '{{PLURAL:$1|Új üzenet vár|Új üzenetek várnak}}',
+'newmessagesdifflinkplural' => 'Az utolsó {{PLURAL:$1|változtatást|változtatásokat}}',
'youhavenewmessagesmulti' => 'Új üzenetet vár a(z) $1 wikin',
'editsection' => 'szerkesztés',
'editold' => 'szerkesztés',
'pageinfo-authors' => 'Numero total de autores distincte',
'pageinfo-recent-edits' => 'Numero de modificationes recente (intra le ultime $1)',
'pageinfo-recent-authors' => 'Numero de autores distincte recente',
-'pageinfo-restriction' => 'Protection del pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protection del pagina ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Parola|Parolas}} magic ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria|Categorias}} celate ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Patrono|Patronos}} transcludite ($1)',
# MIME search
'mimesearch' => 'Pencarian MIME',
-'mimesearch-summary' => 'Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME nya. Masukkan: contenttype/subtype, misalnya <code>image/jpeg</code>.',
+'mimesearch-summary' => 'Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME-nya. Masukkan: contenttype/subtype, misalnya <code>image/jpeg</code>.',
'mimetype' => 'Tipe MIME:',
'download' => 'unduh',
'pageinfo-authors' => 'Dagup a bilang dagiti naisangsangayn a mannurat',
'pageinfo-recent-edits' => 'Itay nabiit a bilang dagiti inurnos (ti uneg ti napalabas ti $1)',
'pageinfo-recent-authors' => 'Itay nabiit a bilang dagiti naisangsangayan a mannurat',
-'pageinfo-restriction' => 'Panagsalaknib ti panid (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Panagsalaknib ti panid ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'Salamangka {{PLURAL:$1|a balikas|a balbalikas}} ($1)',
'pageinfo-hidden-categories' => 'Nailemmeng {{PLURAL:$1|a kategoria|a katkategoria}} ($1)',
'pageinfo-templates' => 'Nailak-am {{PLURAL:$1|a plantilia|a planplantilia}} ($1)',
'pageinfo-authors' => 'Numero totale di autori diversi',
'pageinfo-recent-edits' => 'Numero di modifiche recenti (negli ultimi $1)',
'pageinfo-recent-authors' => 'Numero di autori diversi recenti',
-'pageinfo-restriction' => 'Protezione della pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protezione della pagina ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Parola magica|Parole magiche}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria nascosta|Categorie nascoste}} ($1)',
'pageinfo-templates' => 'Template {{PLURAL:$1|incluso|inclusi}} ($1)',
'pageinfo-edits' => '総編集回数',
'pageinfo-authors' => '総投稿者数',
'pageinfo-recent-edits' => '最近の編集回数 (過去 $1)',
-'pageinfo-restriction' => 'ページ保護 (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'ページ保護 ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'マジック {{PLURAL:$1|ワード}} ($1)',
'pageinfo-hidden-categories' => '隠し{{PLURAL:$1|カテゴリ}} ($1)',
'pageinfo-templates' => '参照読み込みされた{{PLURAL:$1|テンプレート}} ($1)',
'index-category' => 'გვერდების ინდექსაცია',
'noindex-category' => 'არ არსებობს ინდექსირებული გვერდები',
'broken-file-category' => 'გვერდები ფაილების არასწორი ბმულებით',
+'categoryviewer-pagedlinks' => '($1) ($2)',
'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
'mergehistory-comment' => 'გადატანა[[:$1]]-ის [[:$2]]-ში: $3',
'mergehistory-same-destination' => 'თავდაპირველი და სამიზნე გვერდები უნდა განსხვავდებოდეს.',
'mergehistory-reason' => 'მიზეზი:',
+'mergehistory-revisionrow' => '$1 ($2) $3 . . $4 $5 $6',
# Merge log
'mergelog' => 'გაერთიანებათა ჟურნალი',
# Special:ActiveUsers
'activeusers' => 'აქტიურ მომხმარებელთა სია',
'activeusers-intro' => 'ეს არის მომხმარებელთა სია, რომელთაც აქვს წვლილი უკანასკნელი $1 {{PLURAL:$1|დღის|დღის}} განმავლობაში.',
-'activeusers-count' => '$1 {{PLURAL:$1|á\83ªá\83\95á\83\98á\83\9aá\83\94á\83\91á\83\90|á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90}} {{PLURAL:$2|$3 á\83\93á\83¦á\83\94|$3 á\83\93á\83¦á\83\98á\83¡|$3 á\83\93á\83¦á\83\94á\83\94á\83\91ის}} განმავლობაში.',
+'activeusers-count' => '$1 {{PLURAL:$1|á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90|á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90}} {{PLURAL:$2|$3 á\83\93á\83¦á\83\94|$3 á\83\93á\83¦ის}} განმავლობაში.',
'activeusers-from' => 'მომხმარებელთა ჩვენება, დაწყებული:',
'activeusers-hidebots' => 'რობოტების დამალვა',
'activeusers-hidesysops' => 'ადმინისტრატორების დამალვა',
# User Messenger
'usermessage-summary' => 'სისტემური შეტყობინების დატოვება.',
'usermessage-editor' => 'სისტემური მესენჯერი',
+'usermessage-template' => 'MediaWiki:მომხმარებლის შეტყობინება',
# Watchlist
'watchlist' => 'ჩემი კონტროლის სია',
$1',
'undelete-show-file-confirm' => 'დარწმუნებული ხართ, რომ გსურთ ფაილ <nowiki>$1</nowiki>-ის წაშლილი ვერსიის ხილვა $2 $3-დან?',
'undelete-show-file-submit' => 'ჰო',
+'undelete-revisionrow' => '$1 $2 ($3) $4 . . $5 $6 $7',
# Namespace form on various pages
'namespace' => 'სახელთა სივრცე:',
'import-error-invalid' => 'გვერდი "$1" იმპორტირება არ მოხდა მიუღებელი სახელის გამო.',
'import-options-wrong' => 'არასწორი {{PLURAL:$2|პარამეტრი|პარამეტრი}}: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'ძირეული გვერდის მითითებული სახელი არასწორია.',
+'import-rootpage-nosubpage' => 'სახელტა სივრცეში მითითებულ ძირეულ გვერდში „$1“ ქვეგვერდები დაუშვებელია.',
# Import log
'importlogpage' => 'იმპორტის ჟურნალი',
'pageinfo-header-edits' => 'რედაქტირების ისტორია',
'pageinfo-header-restrictions' => 'გვერდის დაცვა',
'pageinfo-header-properties' => 'გვერდის თვისებები',
+'pageinfo-display-title' => 'ნაჩვენები სათაური',
+'pageinfo-default-sort' => 'სტანდარტული სორტირების გასაღები',
+'pageinfo-length' => 'გვერდის სიგრძე (ბაიტებში)',
'pageinfo-article-id' => 'გვერდის ID',
'pageinfo-robot-policy' => 'საძიებო სისტემის სტატუსი',
'pageinfo-views' => 'ხილვების რაოდენობა',
'pageinfo-watchers' => 'გვერდის დამკვირვებელთა რაოდენობა',
+'pageinfo-redirects-name' => 'გადამისამართება ამ გვერდზე',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'ამ გვერდის ქვეგვერდები',
'pageinfo-firstuser' => 'გვერდის შემქნელი',
'pageinfo-firsttime' => 'გვერდის შექმნის თარიღი',
'pageinfo-lastuser' => 'ბოლო რედაქტორი',
'pageinfo-lasttime' => 'ბოლო რედაქტირების თარიღი',
'pageinfo-edits' => 'რედაქტირებების ჯამური რაოდენობა',
'pageinfo-authors' => 'განსხვავებულ ავტორთა ჯამური რაოდენობა',
-'pageinfo-restriction' => 'გვერდის დაცვა (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'გვერდის დაცვა ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'ჯადოსნური {{PLURAL:$1|სიტყვა|სიტყვა}} ($1)',
'pageinfo-hidden-categories' => 'დამალული {{PLURAL:$1|კატეგორია|კატეგორია}} ($1)',
'pageinfo-templates' => 'ინტეგრირებულია {{PLURAL:$1|თარგი|თარგი}} ($1)',
'file-info-png-looped' => 'დარგოლილი',
'file-info-png-repeat' => 'დაკრულია $1 {{PLURAL:$1|ჯერ}}',
'file-info-png-frames' => '$1 კადრი',
+'file-no-thumb-animation' => "'''შენიშვნა: ტექნიკური მიზეზების გამო, ამ ფაილის მინიატიურები არ იქნება ანიმირებული.'''",
+'file-no-thumb-animation-gif' => "'''შენიშვნა: ტექნიკური მიზეზების გამო, მაღალი გარჩევადობის GIF ფორმატის სურათების მსგავსი მინიატიურები არ იქნება ანიმირებული.'''",
# Special:NewFiles
'newimages' => 'ახალი ფაილების გალერეა',
'ellipsis' => '...',
'percent' => '$1%',
'parentheses' => '($1)',
+'brackets' => '[$1]',
# Multipage image navigation
'imgmultipageprev' => '← წინა გვერდი',
'size-kilobytes' => '$1 კბ',
'size-megabytes' => '$1 მბ',
'size-gigabytes' => '$1 გბ',
+'size-terabytes' => '$1 ტბ',
+'size-petabytes' => '$1 პბ',
+'size-exabytes' => '$1 ებ',
+'size-zetabytes' => '$1 ზბ',
+'size-yottabytes' => '$1 იბ',
# Bitrate units
'bitrate-bits' => '$1 ბ/წმ',
'upload_directory_missing' => 'Қотарып бермек қалтасы ($1) жетіспейді және веб-сервер жарата алмайды.',
'upload_directory_read_only' => 'Қотарып бермек қалтасына ($1) веб-сервер жаза алмайды.',
'uploaderror' => 'Жүктеу қатесі',
-'uploadtext' => "Төмендегі пішінді файлдарды қотарып беру үшін қолданыңыз.
-Алдында қотарылып берілген файлдарды қарау не іздеу үшін [[{{#special:FileList}}|қотарып берілген файлдар тізіміне]] барыңыз, тағы да қотарып беруі мен жоюы [[{{#special:Log}}/upload|қотарып беру журналына]] жазылып алынады.
+'uploadtext' => "Төмендегі пішінді файлдарды жүктеу үшін қолданыңыз.
+Алдында жүктелген файлдарды қарау не іздеу үшін [[Special:FileList|жүктелген файлдар тізіміне]] барыңыз. Сондай-ақ файлдардың жүктелуі [[Special:Log/upload|жүктелі журналына]], ал жойылған файлдар [[Special:Log/delete|жойылу журналына]] жазылады.
-СÑ\83Ñ\80еÑ\82Ñ\82Ñ\96 беÑ\82ке кÑ\96Ñ\80Ñ\96Ñ\81Ñ\82Ñ\96Ñ\80Ñ\83ге, Ñ\84айлÒ\93а Ñ\82Ñ\83Ñ\80а Ñ\81Ñ\96лÑ\82еÑ\83 Ò¯Ñ\88Ñ\96н мÑ\8bна пÑ\96Ñ\88Ñ\96ндегÑ\96 Ñ\81Ñ\96лÑ\82емені қолданыңыз:
-'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki>''',
-'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|балама мәтін]]</nowiki>''' не
-'''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki>'''.",
+СÑ\83Ñ\80еÑ\82Ñ\82Ñ\96 маÒ\9bалаÒ\93а Ò\9bоÑ\81Ñ\83 Ò¯Ñ\88Ñ\96н келеÑ\81Ñ\96 Ñ\82Ó\99Ñ\81Ñ\96лдеÑ\80ді қолданыңыз:
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' файлдың толық нұсқасын орнату үшін;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|сурет тақырыбы]]</nowiki></code>''' 200px кішірейтілген файлды тақырыбын қосып сол жаққа орналастыру;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' тек файлға сілтеме жасау үшін.",
'upload-permitted' => 'Рұқсат етілген файл түрлері: $1.',
'upload-preferred' => 'Ұнамды файл түрлері $1.',
'upload-prohibited' => 'Рұқсат етілмеген файл түрлері: $1.',
'filesource' => 'Қайнар көзі:',
'uploadedfiles' => 'Жүктелген файлдар',
'ignorewarning' => 'Құлақтандыруға елеме де файлды қалайда сақта.',
-'ignorewarnings' => 'Ð\9aез келген Ò\9bұлаÒ\9bÑ\82андÑ\8bÑ\80Ñ\83лаÑ\80Ò\93а елеме',
+'ignorewarnings' => 'Ð\95Ñ\81кеÑ\80Ñ\82Ñ\83леÑ\80дÑ\96 елемеÑ\83',
'minlength1' => 'Файл атауында ең кемінде бір әріп болуы жөн.',
'illegalfilename' => '«$1» файл атауында бет тақырыбы атында рұқсат берілмеген таңбалар бар.
Файлды қайта атаңыз да бұны қотарып беруді қайта байқап көріңіз.',
'upload-source' => 'Қайнар файл',
'sourcefilename' => 'Қайнар файл атауы:',
'sourceurl' => 'Қайнардың URL-мекенжайы:',
-'destfilename' => 'Ð\9dÑ\8bÑ\81ана Ñ\84айл атауы:',
+'destfilename' => 'Файл атауы:',
'upload-maxfilesize' => 'Файлдың ең көп мүмкін мөлшері: $1',
'upload-description' => 'Файл сипаттамасы',
'upload-options' => 'Жүктеу баптаулары',
бет өзінің үстіне жылжытылмайды.',
'imagenocrossnamespace' => 'Файл емес есім аясына файл жылжытылмайды',
'imagetypemismatch' => 'Файлдың жаңа кеңейтімі бұның түріне сәйкес емес',
-'imageinvalidfilename' => 'Ð\9dÑ\8bÑ\81ана Ñ\84айл атауы жарамсыз',
+'imageinvalidfilename' => 'Файл атауы жарамсыз',
'move-leave-redirect' => 'Ескі бетте айдату сілтемесін қалдыру',
# Export
'pageinfo-authors' => 'ចំនួនអ្នកនិពន្ធសរុប',
'pageinfo-recent-edits' => 'ចំនួនការកែប្រែថ្មីៗ (ក្នុងរយៈពេល $1 កន្លងទៅនេះ)',
'pageinfo-recent-authors' => 'ចំនួនអ្នកនិពន្ធថ្មីៗនេះ',
-'pageinfo-restriction' => 'ការការពារទំព័រ (<code>{{$1}}</code>)',
+'pageinfo-restriction' => 'ការការពារទំព័រ ({{$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|ពាក្យ|ពាក្យ}} វេទមន្ត ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|ចំណាត់ថ្នាក់ក្រុម|ចំណាត់ថ្នាក់ក្រុម}}ដែលបានលាក់ ($1)',
'pageinfo-authors' => '총 서로 다른 편집자 수',
'pageinfo-recent-edits' => '최근 편집 수 (지난 $1일 이내)',
'pageinfo-recent-authors' => '최근 기여자 수',
-'pageinfo-restriction' => '문서 보호 (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => '문서 보호 ({{lcfirst:$1}})',
'pageinfo-magic-words' => '매직 {{PLURAL:$1|워드}} ($1개)',
'pageinfo-hidden-categories' => '숨은 {{PLURAL:$1|분류}} ($1개)',
'pageinfo-templates' => '포함한 {{PLURAL:$1|틀}} ($1개)',
'pageinfo-title' => 'Informatioun iwwer "$1"',
'pageinfo-header-basic' => 'Basisinformatiounen',
'pageinfo-header-edits' => 'Historique vun den Ännerungen',
+'pageinfo-header-restrictions' => 'Spär vun der Säit',
'pageinfo-display-title' => 'Titel dee gewise gëtt',
'pageinfo-views' => 'Zuel vun de Kéieren déi dës Säit gekuckt gouf',
'pageinfo-watchers' => "Zuel vun de Benotzer déi d'Säit iwwerwaachen",
'pageinfo-edits' => 'Gesamtzuel vun den Ännerungen',
'pageinfo-authors' => 'Gesamtzuel vun de verschiddenen Auteuren',
'pageinfo-recent-edits' => 'Zuel vun de rezenten Ännerungen (an de leschten $1)',
-'pageinfo-restriction' => 'Protectioun vun der Säit (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protectioun vun der Säit ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magescht Wuert|Magesch Wierder}} ($1)',
'pageinfo-hidden-categories' => 'Verstoppte {{PLURAL:$1|Kategorie|Kategorien}} ($1)',
+'pageinfo-templates' => 'Agebonne {{PLURAL:$2|Schabloun|Schabloune}} ($1)',
# Skin names
'skinname-standard' => 'Klassesch',
'file-info-png-looped' => 'endlos Schleef',
'file-info-png-repeat' => 'gouf $1 {{PLURAL:$1|mol|mol}} gespillt',
'file-info-png-frames' => '$1 {{PLURAL:$1|Frame|Framen}}',
+'file-no-thumb-animation' => "''''Informatioun: Wéinst technesche Limitatioune sinn d'Miniatur-Biller vun dësem Fichier net animéiert.'''",
# Special:NewFiles
'newimages' => 'Gallerie vun den neie Biller',
* @author Kumariprity
* @author Manojberma77
* @author Meno25
+ * @author Nemo bis
* @author Priyanka.rachna.jha
* @author Rajesh
* @author Reedy
'logentry-move-move-noredirect' => '$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआकेँ बिना छोड़ने',
'logentry-move-move_redir' => '$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआक अतिरिक्त',
'logentry-move-move_redir-noredirect' => '$1 {{लिंग:$2|हटाएल}} पन्ना $3 सँ $4 घुमौआक अतितिक्त घुमौआकेँ बिना छोड़ने',
-'logentry-patrol-patrol' => '$1 {{लिंग:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
-'logentry-patrol-patrol-auto' => '$1 स्वतः {{लिंग:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
+'logentry-patrol-patrol-auto' => '$1 स्वतः {{GENDER:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित',
'logentry-newusers-newusers' => '$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता',
'logentry-newusers-create' => '$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता',
'logentry-newusers-create2' => '$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3',
'pageinfo-authors' => 'Број на засебни автори',
'pageinfo-recent-edits' => 'Број на скорешни уредувања (во последните $1)',
'pageinfo-recent-authors' => 'Број на скорешни засебни автори',
-'pageinfo-restriction' => 'Заштита на страницата (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Заштита на страницата ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Волшебен збор|Волшебни зборови}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Скриена категорија|Скриени категории}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Превметнат шаблон|Превметнати шаблони}} ($1)',
'pageinfo-authors' => 'ആകെ വ്യത്യസ്തരചയിതാക്കളുടെ എണ്ണം',
'pageinfo-recent-edits' => 'സമീപകാലത്തെ തിരുത്തുകൾ (കഴിഞ്ഞ $1 കാലയളവിനുള്ളിൽ)',
'pageinfo-recent-authors' => 'സമീപകാലത്തെ വ്യത്യസ്തരചയിതാക്കളുടെ എണ്ണം',
-'pageinfo-restriction' => 'താൾ സംരക്ഷണം (<code>$1</code>)',
+'pageinfo-restriction' => 'താൾ സംരക്ഷണം ($1)',
'pageinfo-magic-words' => 'മാന്ത്രിക{{PLURAL:$1|വാക്ക്|വാക്കുകൾ}} ($1)',
'pageinfo-hidden-categories' => 'മറഞ്ഞിരിക്കുന്ന {{PLURAL:$1|വർഗ്ഗം|വർഗ്ഗങ്ങൾ}} ($1)',
'pageinfo-templates' => 'ഉൾപ്പെടുത്തിയിട്ടുള്ള {{PLURAL:$1|ഫലകം|ഫലകങ്ങൾ}} ($1)',
'pageinfo-authors' => 'Jumlah pengarang yang berlainan',
'pageinfo-recent-edits' => 'Bilangan suntingan terkini (dalam $1 yang lalu)',
'pageinfo-recent-authors' => 'Bilangan pengarang berbeza yang terkini',
-'pageinfo-restriction' => 'Perlindungan halaman (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Perlindungan halaman ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'Kata sakti ($1)',
'pageinfo-hidden-categories' => 'Kategori tersembunyi ($1)',
'pageinfo-templates' => 'Templat tertransklusi ($1)',
'pageinfo-authors' => 'Totalt antall forskjellige forfattere',
'pageinfo-recent-edits' => 'Antall nylige redigeringer (innen siste $1)',
'pageinfo-recent-authors' => 'Antall nylige forfattere',
-'pageinfo-restriction' => 'Sidebeskyttelse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Sidebeskyttelse ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magisk|Magiske}} ord ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Skjult kategori|Skjulte kategorier}} ($1)',
'pageinfo-templates' => 'Transkludert {{PLURAL:$1|mal|maler}} ($1)',
'tog-numberheadings' => 'Koppen vanzelf nummeren',
'tog-showtoolbar' => 'Laot de warkbalke zien',
'tog-editondblclick' => 'Mit dubbelklik bewarken (JavaScript)',
-'tog-editsection' => 'Mit bewarkgedeeltes',
+'tog-editsection' => 'Mit bewarkgedeelten',
'tog-editsectiononrightclick' => 'Bewarkgedeelte mit rechtermuusknoppe bewarken (JavaScript)',
'tog-showtoc' => 'Samenvatting laoten zien van de zaken die an bod koemen (mit meer as dree onderwarpen)',
'tog-rememberpassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
'youhavenewmessages' => 'Je hebben $1 ($2).',
'newmessageslink' => 'nieje berichten',
'newmessagesdifflink' => 'verschil mit de veurige versie',
+'youhavenewmessagesfromusers' => 'Je hebben $1 van {{PLURAL:$3|n aandere gebruker|$3 gebrukers}} ($2).',
+'youhavenewmessagesmanyusers' => 'Je hebben $1 van n bulte gebrukers ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|n niej bericht|nieje berichten}}',
+'newmessagesdifflinkplural' => 'leste {{PLURAL:$1|wieziging|wiezigingen}}',
'youhavenewmessagesmulti' => 'Je hebben nieje berichten op $1',
'editsection' => 'bewark',
'editold' => 'bewark',
Der is n syntaxisfout in t databankeverzeuk op-etrejen.
t Kan ween dat der n fout in de programmatuur zit.
De leste zeukpoging in de databanke was:
-<blockquote><tt>$1</tt></blockquote>
-vanuut de funksie "<tt>$2</tt>".
-De databanke gaf de volgende foutmelding "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+vanuut de funksie "<code>$2</code>".
+De databanke gaf de volgende foutmelding "<samp>$3: $4</samp>".',
'dberrortextcl' => 'Der is n syntaxisfout in t databankeverzeuk op-etrejen.
t Leste veurzeuk an de databanke was:
"$1"
'remembermypassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
'securelogin-stick-https' => "Verbunnen blieven via HTTPS naoda'j an-emeld bin",
'yourdomainname' => 'Joew domein',
+'password-change-forbidden' => 'Je kunnen joew wachtwoord niet wiezigen op disse wiki.',
'externaldberror' => 'Der gung iets fout bie de externe authentisering, of je maggen je gebrukersprofiel niet bewarken.',
'login' => 'Anmelden',
'nav-login-createaccount' => 'Anmelden',
'noarticletext-nopermission' => 'Op disse zied steet gien tekste.
Je kunnen [[Special:Search/{{PAGENAME}}|zeuken naor disse term]] in aandere ziejen of
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken deurzeuken]</span>.',
+'missing-revision' => 'De versie #$1 van de zied "{{PAGENAME}} besteet niet.
+
+Dit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.
+Waorschienlik ku\'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].',
'userpage-userdoesnotexist' => 'Je bewarken n gebrukerszied van n gebruker die niet besteet (gebruker "<nowiki>$1</nowiki>"). Kiek effen nao o\'j disse zied wel anmaken/bewarken willen.',
'userpage-userdoesnotexist-view' => 'Gebruker "$1" steet hier niet in-eschreven',
'blocked-notice-logextract' => 'Disse gebruker is op t moment eblokkeerd.
*'''Firefox / Safari:''' drok op ''Shift'' terwiel je op ''verniejen'' klikken, of gebruuk ''Ctrl-F5'' of ''Ctrl-R'' (''⌘-R'' op n knipperkiste van Mac)
* '''Google Chrome:''' drok op ''Ctrl-Shift-R'' (''⌘-Shift-R'' op n knipperkiste van Mac)
*'''Internet Explorer:''' drok op ''Ctrl'' terwiel je op ''verniejen'' klikken of drok op ''Ctrl-F5''
-*'''Konqueror: '''klik op ''verniejen'' of drok op ''F5''
*'''Opera:''' leeg t tussengeheugen in ''Extra → Voorkeuren\"",
'usercssyoucanpreview' => "'''Tip:''' gebruuk de knoppe \"{{int:showpreview}}\" um joew nieje css/js nao te kieken veurda'j t opslaon.",
'userjsyoucanpreview' => "'''Tip:''' gebruuk de knoppe \"{{int:showpreview}}\" um joew nieje css/js nao te kieken veurda'j t opslaon.",
'expansion-depth-exceeded-warning' => 'Op disse zied staon te veule mallen',
'parser-unstrip-loop-warning' => 'Der is n "unstrip"-lusse evunnen',
'parser-unstrip-recursion-limit' => 'De rekursielimiet ($1) veur "unstrip" is overschrejen',
+'converter-manual-rule-error' => 'Der is n fout evunnen in n haandmaotig in-evoegden taalkonversieregel.',
# "Undo" feature
'undo-success' => 'De bewarking kan weerummedreid wörden. Kiek de vergelieking hieronder nao um der wisse van de ween dat alles goed is, en slao de de zied op um de bewarking weerumme te dreien.',
'editundo' => 'weerummedreien',
'diff-multi' => '(Hier {{PLURAL:$1|zit nog 1 versie|zitten nog $1 versies}} van {{PLURAL:$2|1 gebruker|$2 gebrukers}} tussen die der niet bie staon.)',
'diff-multi-manyusers' => '($1 tussenliggende {{PLURAL:$1|versie|versies}} deur meer as $2 {{PLURAL:$2|gebruker|gebrukers}} niet weeregeven)',
+'difference-missing-revision' => "{{PLURAL:$2|Eén versie|$2 versies}} van disse verschillen ($1) {{PLURAL:$2|is|bin}} niet evunnen.
+
+Dit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.
+Waorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
# Search results
'searchresults' => 'Zeukresultaoten',
'recentchanges-label-minor' => 'Dit is n kleine wieziging',
'recentchanges-label-bot' => 'Disse bewarking is uutevoerd deur n bot',
'recentchanges-label-unpatrolled' => 'Disse bewarking is nog niet nao-ekeken',
-'rcnote' => "Hieronder {{PLURAL:$1|steet de leste bewarking|staon de leste '''$1''' bewarkingen}} van de aofeleupen {{PLURAL:$2|dag|'''$2''' dagen}} (stand: $5, $4).",
+'rcnote' => "Hieronder {{PLURAL:$1|steet de leste bewarking|staon de leste '''$1''' bewarkingen}} van de aofgeleupen {{PLURAL:$2|dag|'''$2''' dagen}} (per: $5, $4).",
'rcnotefrom' => 'Dit bin de wiezigingen sinds <b>$2</b> (maximum van <b>$1</b> wiezigingen).',
'rclistfrom' => 'Bekiek wiezigingen vanaof $1',
'rcshowhideminor' => '$1 kleine wiezigingen',
'rcshowhideanons' => '$1 anonieme gebrukers',
'rcshowhidepatr' => '$1 nao-ekeken bewarkingen',
'rcshowhidemine' => '$1 mien bewarkingen',
-'rclinks' => 'Bekiek de leste $1 wiezigingen van de aofeleupen $2 dagen<br />$3',
+'rclinks' => 'Bekiek de leste $1 wiezigingen van de aofgeleupen $2 dagen<br />$3',
'diff' => 'wiezig',
'hist' => 'gesch',
'hide' => 'verbarg',
'uploadnewversion-linktext' => 'n Niejere versie van dit bestaand opsturen.',
'shared-repo-from' => 'uut $1',
'shared-repo' => 'n edeelden mediadatabanke',
+'upload-disallowed-here' => 'Je kunnen disse aofbeelding niet overschrieven.',
# File reversion
'filerevert' => '$1 weerummedreien',
'disambiguations' => 'Ziejen die verwiezen naor deurverwiesziejen',
'disambiguationspage' => 'Template:Dv',
-'disambiguations-text' => "De onderstaonde ziejen verwiezen naor n '''deurverwieszied'''. Disse verwiezingen mutten eigenliks rechtstreeks verwiezen naor t juuste onderwarp.
-
-Ziejen wörden ezien as n deurverwieszied, as de mal gebruukt wörden die vermeld steet op [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "Hieronder staon ziejen mit tenminsten één verwiezing naor n '''deurverwieszied'''.
+Feitelik mutten ze rechtstreeks verwiezen naor t juuste onderwarp.<br />
+Ziejen wörden ezien as n deurverwieszied, as de mal gebruukt wörden die vermeld steet op [[MediaWiki:Disambiguationspage]].",
'doubleredirects' => 'Dubbele deurverwiezingen',
'doubleredirectstext' => 'Op disse lieste staon alle ziejen die deurverwiezen naor aandere deurverwiezingen.
# Miscellaneous special pages
'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
'ncategories' => '$1 {{PLURAL:$1|kategorie|kategorieën}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwikiverwiezing|interwikiverwiezingen}}',
'nlinks' => '$1 {{PLURAL:$1|verwiezing|verwiezingen}}',
'nmembers' => '$1 {{PLURAL:$1|onderwarp|onderwarpen}}',
'nrevisions' => '$1 {{PLURAL:$1|versie|versies}}',
'mostlinkedtemplates' => 'Meestgebruukten mallen',
'mostcategories' => 'Artikels mit de meeste kategorieën',
'mostimages' => 'Meestgebruukten bestaanden',
+'mostinterwikis' => "Pagina's mit de meeste interwikiverwiezingen",
'mostrevisions' => 'Artikels mit de meeste bewarkingen',
'prefixindex' => 'Alle ziejen op veurvoegsel',
'prefixindex-namespace' => 'Alle ziejen mit t veurvoegsel (naamruumte $1)',
# Special:ActiveUsers
'activeusers' => 'Aktieve gebrukers',
-'activeusers-intro' => 'Dit is n lieste van gebrukers die de aofeleupen $1 {{PLURAL:$1|dag|dagen}} enigszins aktief ewes bin.',
-'activeusers-count' => '$1 leste {{PLURAL:$1|bewarking|bewarkingen}} in de aofeleupen {{PLURAL:$3|dag|$3 dagen}}',
+'activeusers-intro' => 'Dit is n lieste van gebrukers die de aofgeleupen $1 {{PLURAL:$1|dag|dagen}} enigszins aktief ewest hebben.',
+'activeusers-count' => '$1 leste {{PLURAL:$1|bewarking|bewarkingen}} in de aofgeleupen {{PLURAL:$3|dag|$3 dagen}}',
'activeusers-from' => 'Laot gebrukers zien vanaof:',
'activeusers-hidebots' => 'Bots verbargen',
'activeusers-hidesysops' => 'Beheerders verbargen',
'mailnologin' => 'Niet an-emeld.',
'mailnologintext' => 'Je mutten [[Special:UserLogin|an-emeld]] ween en n geldig e-mailadres in "[[Special:Preferences|mien veurkeuren]]" invoeren um disse funksie te kunnen gebruken.',
'emailuser' => 'n Bericht sturen',
+'emailuser-title-target' => 'Disse {{GENDER:$1|gebruker}} n bericht sturen',
+'emailuser-title-notarget' => 'Gebruker n bericht sturen',
'emailpage' => 'Gebruker n bericht sturen',
'emailpagetext' => "Deur middel van dit formulier ku'j n bericht sturen naor disse gebruker.
t Adres da'j op-egeven hebben bie [[Special:Preferences|joew veurkeuren]] zal as aofzender gebruukt wörden.
'watchmethod-list' => 'Kik joew nao volglieste veur de leste wiezigingen',
'watchlistcontains' => 'Der {{PLURAL:$1|steet 1 zied|staon $1 ziejen}} op joew volglieste.',
'iteminvalidname' => "Verkeerde naam '$1'",
-'wlnote' => 'Hieronder {{PLURAL:$1|steet de leste wieziging|staon de leste $1 wiezigingen}} in {{PLURAL:$2|t aofeleupen ure|de leste $2 uren}} vanaof $3 um $4.',
+'wlnote' => 'Hieronder {{PLURAL:$1|steet de leste wieziging|staon de leste $1 wiezigingen}} in {{PLURAL:$2|t aofgeleupen ure|de leste $2 uren}} vanaof $3 um $4.',
'wlshowlast' => 'Laot de veurbieje $1 uur $2 dagen $3 zien',
'watchlist-options' => 'Opsies veur de volglieste',
'rollback' => 'Wiezigingen herstellen',
'rollback_short' => 'Weerummedreien',
'rollbacklink' => 'Weerummedreien',
+'rollbacklinkcount' => '{{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien',
+'rollbacklinkcount-morethan' => 'Meer as {{PLURAL:$1|één bewarking|$1 bewarkingen}} weerummedreien',
'rollbackfailed' => 'Wieziging herstellen is mislokt',
'cantrollback' => 'De wiezigingen konnen niet hersteld wörden; der is mer 1 auteur.',
'alreadyrolled' => 'Kan de leste wieziging van de zied [[:$1]] deur [[User:$2|$2]] ([[User talk:$2|Overleg]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); niet weerummedreien.
'import-interwiki-templates' => 'Alle mallen opnemen',
'import-interwiki-submit' => 'Invoeren',
'import-interwiki-namespace' => 'Doelnaamruumte:',
+'import-interwiki-rootpage' => 'Baosiszied veur doel (opsioneel):',
'import-upload-filename' => 'Bestaandsnaam:',
'import-comment' => 'Opmarkingen:',
'importtext' => 'Gebruuk de [[Special:Export|uutvoerfunksie]] in de wiki waor de informasie vandaon kömp.
'import-error-interwiki' => 'De zied "$1" is niet in-evoerd umdat disse naam ereserveerd is veur externe verwiezingen (interwiki).',
'import-error-special' => 'Zied "$1" is niet in-evoerd umdat t eplaotst is in n spesiale naamruumte waor gien ziejen in eplaotst kunnen wörden.',
'import-error-invalid' => 'De zied" "$1" is niet in-evoerd umdat de naam ongeldig is.',
+'import-options-wrong' => 'Verkeerde {{PLURAL:$2|opsie|opsies}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'De op-egeven baosiszied is ongeldig.',
+'import-rootpage-nosubpage' => 'In de naamruumte "$1" van de baosiszied is t anmaken van onderziejen niet meugelik.',
# Import log
'importlogpage' => 'Invoerlogboek',
# Info page
'pageinfo-title' => 'Informasie over "$1"',
-'pageinfo-header-edits' => 'Bewarkingen',
+'pageinfo-header-basic' => 'Baosisinformasie',
+'pageinfo-header-edits' => 'Bewarkingsgeschiedenisse',
+'pageinfo-header-restrictions' => 'Ziedbeveiliging',
+'pageinfo-header-properties' => 'Ziedeigenschappen',
+'pageinfo-display-title' => 'Weeregeven ziednaam',
+'pageinfo-default-sort' => 'Standard sorteerwieze',
+'pageinfo-length' => 'Ziedlengte (in bytes)',
+'pageinfo-article-id' => 'Zied-ID',
+'pageinfo-robot-policy' => 'Staotus veur de zeukmasine',
+'pageinfo-robot-index' => 'Indexeerbaor',
+'pageinfo-robot-noindex' => 'Niet indexeerbaor',
'pageinfo-views' => 'Antal keer bekeken',
-'pageinfo-watchers' => 'Antal volgers',
-'pageinfo-edits' => 'Antal bewarkingen',
-'pageinfo-authors' => 'Antal verschillende auteurs',
+'pageinfo-watchers' => 'Antal ziedvolgers',
+'pageinfo-redirects-name' => 'Deurverwiezingen naor disse zied',
+'pageinfo-subpages-name' => 'Onderziejen van disse zied',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|deurverwiezing|deurverwiezingen}}; $3 {{PLURAL:$3|niet-deurverwiezing|niet-deurverwiezingen}})',
+'pageinfo-firstuser' => 'Gebruker die de zied an-emaakt hef',
+'pageinfo-firsttime' => 'Daotum waorop de zied an-emaakt is',
+'pageinfo-lastuser' => 'Leste bewarker',
+'pageinfo-lasttime' => 'Daotum van leste bewarking',
+'pageinfo-edits' => 'Totaal antal bewarkingen',
+'pageinfo-authors' => 'Totaal antal verschillende auteurs',
+'pageinfo-recent-edits' => 'Antal nieje bewarkingen (in de veurbieje $1).',
+'pageinfo-recent-authors' => 'Leste antal van verschillende auteurs',
+'pageinfo-restriction' => 'Ziedbeveiliging ({{lcfirst:$1}})',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magies woord|Magiese woorden}} ($1)',
+'pageinfo-hidden-categories' => 'Verbörgen {{PLURAL:$1|kategorie|kategorieën}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Gebruukten mal|Gebruukten mallen}} ($1)',
# Skin names
'skinname-standard' => 'Klassiek',
'file-info-size-pages' => '$1 × $2 beeldpunten, bestaandsgrootte: $3, MIME-type: $4, $5 {{PLURAL:$5|zied|ziejen}}',
'file-nohires' => 'Gien hogere resolusie beschikbaor.',
'svg-long-desc' => 'SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3',
+'svg-long-desc-animated' => 'Bewegend SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3',
'show-big-image' => 'Volle resolusie',
'show-big-image-preview' => 'Grootte van disse weergave: $1.',
'show-big-image-other' => 'Aandere {{PLURAL:$2|resolusie|resolusies}}: $1.',
'file-info-png-looped' => 'herhaolend',
'file-info-png-repeat' => '$1 {{PLURAL:$1|keer|keer}} aofespeuld',
'file-info-png-frames' => '$1 {{PLURAL:$1|beeld|beelden}}',
+'file-no-thumb-animation' => "'''Opmarking: vanwegen techniese beparkingen, zie'j bie miniaturen de boel niet bewegen.''",
+'file-no-thumb-animation-gif' => "'''Opmarking: vanwegen techniese beparkingen, zie'j bie miniaturen van GIF-aofbeeldingen mit n hoge resolusie de boel niet bewegen.''",
# Special:NewFiles
'newimages' => 'Nieje bestaanden',
'api-error-file-too-large' => "t Bestaand da'j op-estuurd hebben is te groot.",
'api-error-filename-tooshort' => 'De bestaandsnaam is te kort.',
'api-error-filetype-banned' => 'Dit bestaandstype is niet toe-estaon.',
-'api-error-filetype-banned-type' => '{{PLURAL:$4|t Bestaandstype $1 wordt|De bestandstypes $1 worden}} niet toegelaten. {{PLURAL:$3|t Toe-estaone bestaandstype is|De toe-estaone bestaandstypen bin}} $2.',
+'api-error-filetype-banned-type' => '{{PLURAL:$4|t Bestaandstype $1|De bestaandstypes $1}} wörden niet toe-eleuten. {{PLURAL:$3|t Toe-estaone bestaandstype is|De toe-estaone bestaandstypen bin}} $2.',
'api-error-filetype-missing' => 't Bestaand hef gien extensie.',
'api-error-hookaborted' => "De wieziging die'j proberen deur te voeren is aofebreuken deur n extra uutbreiding.",
'api-error-http' => 'Interne fout: der kon gien verbiending emaakt wörden mit de server.',
'pageinfo-authors' => 'Totaal aantal verschillende auteurs',
'pageinfo-recent-edits' => 'Recent aantal bewerkingen (binnen de afgelopen $1).',
'pageinfo-recent-authors' => 'Recent aantal verschillende auteurs',
-'pageinfo-restriction' => 'Paginabeveiliging (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Paginabeveiliging ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magisch woord|Magische woorden}} ($1)',
'pageinfo-hidden-categories' => 'Verborgen {{PLURAL:$1|categorie|categorieën}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Gebruikt sjabloon|Gebruikte sjablonen}} ($1)',
* @author Sukh
* @author Surinder.wadhawan
* @author TariButtar
+ * @author Xqt
* @author Ævar Arnfjörð Bjarmason
* @author לערי ריינהארט
*/
'tog-watchlisthidepatrolled' => 'ਵੇਖੀਆਂ ਜਾ ਚੁੱਕੀਆਂ ਸੋਧਾਂ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚੋਂ ਲੁਕਾਓ',
'tog-ccmeonemails' => 'ਜੋ ਈ-ਮੇਲਾਂ ਮੈਂ ਦੂਜੇ ਮੈਂਬਰਾਂ ਨੂੰ ਭੇਜਦਾ ਹਾਂ ਓਹਨਾਂ ਦੀਆਂ ਨਕਲਾਂ ਮੈਨੂੰ ਭੇਜੋ',
'tog-diffonly' => 'ਫ਼ਰਕਾਂ ਤੋਂ ਹੇਠ ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਨਾ ਵਖਾਓ',
-'tog-showhiddencats' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80à¨\86à¨\82 ਵਖਾਓ',
+'tog-showhiddencats' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 ਸ਼à©\8dਰà©\87ਣà©\80à¨\86à¨\82 ਵਿਖਾਓ',
'tog-norollbackdiff' => '"ਵਾਪਸ ਮੋੜੌ"ਅਮਲ ਵਿਚ ਲਿਆਣ ਬਾਦ ਫ਼ਰਕ ਨਾ ਦਿਖਾਓ',
'underline-always' => 'ਹਮੇਸ਼ਾਂ',
'pagecategories' => '{{PLURAL:$1|ਕੈਟਾਗਰੀ|ਕੈਟਾਗਰੀਆਂ}}',
'category_header' => 'ਕੈਟਾਗਰੀ "$1" ਵਿੱਚ ਲੇਖ',
'subcategories' => 'ਸਬ-ਕੈਟਾਗਰੀਆਂ',
-'category-media-header' => 'à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ "$1" ਵਿੱਚ ਮੀਡੀਆ',
-'category-empty' => "''à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ ਵਿੱਚ ਇਸ ਵੇਲ਼ੇ ਕੋਈ ਵੀ ਸਫ਼ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
+'category-media-header' => 'ਸ਼à©\8dਰà©\87ਣੀ "$1" ਵਿੱਚ ਮੀਡੀਆ',
+'category-empty' => "''à¨\87ਸ ਸ਼à©\8dਰà©\87ਣੀ ਵਿੱਚ ਇਸ ਵੇਲ਼ੇ ਕੋਈ ਵੀ ਸਫ਼ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
'hidden-categories' => '{{PLURAL:$1|ਲੁਕੀਵੀਂ ਸ਼੍ਰੇਣੀ|ਲੁਕਵੀਂਆਂ ਸ਼੍ਰੇਣੀਆਂ}}',
-'hidden-category-category' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ',
+'hidden-category-category' => 'ਲà©\81à¨\95à©\80à¨\86à¨\82 ਸ਼à©\8dਰà©\87ਣੀਆਂ',
'category-subcat-count' => '{{ਕੁੱਲ $2 ਸ਼੍ਰੇਣੀਆਂ ਵਿਚੋਂ, PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਹੇਠ ਲਿਖੀ ਸ਼੍ਰੇਣੀ ਹੈ| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ {{PLURAL:$1|ਉਪ ਸ਼੍ਰੇਣੀ ਹੈ|$1 ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}',
'category-subcat-count-limited' => 'ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ {{PLURAL:$1|ਉਪ-ਸ਼੍ਰੇਣੀ ਹੈ।|$1 ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਹਨ।}}',
'category-article-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਇਹ ਸਫ਼ਾ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ, ਕੁੱਲ $2 ਵਿਚੋਂ, ਇਹ {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ}} ਹਨ}}',
'nologin' => 'ਖਾਤਾ ਨਹੀਂ ਹੈ? $1।',
'nologinlink' => 'ਖਾਤਾ ਬਣਾਓ',
'createaccount' => 'ਖਾਤਾ ਬਣਾਓ',
-'gotaccount' => 'à¨\96ਾਤਾ ਹà©\88? $1।',
+'gotaccount' => 'à¨\95à©\80 ਪਹਿਲਾà¨\82 ਤà©\8cà¨\82 à¨\96ਾਤਾ ਹà©\88? $1',
'gotaccountlink' => 'ਲਾਗ ਇਨ',
'userlogin-resetlink' => 'ਆਪਣੀ ਲਾਗਇਨ ਜਾਣਕਾਰੀ ਭੁੱਲ ਗਏ ਹੋ?',
'createaccountmail' => 'ਈਮੇਲ ਨਾਲ',
'templatesusedsection' => 'ਇਹ ਸ਼ੈਕਸ਼ਨ ਵਿੱਚ ਟੈਪਲੇਟ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
'template-protected' => '(ਸੁਰੱਖਿਅਤ)',
'template-semiprotected' => '(ਨੀਮ-ਸੁਰੱਖਿਅਤ)',
-'hiddencategories' => 'à¨\87ਹ ਸਫ਼ਾ {{PLURAL:$1|੧ ਲà©\81à¨\95ਵà©\80à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀ|
-$1 ਲà©\81à¨\95ਵà©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ}} ਦਾ ਮੈਂਬਰ ਹੈ:',
+'hiddencategories' => 'à¨\87ਹ ਸਫ਼ਾ {{PLURAL:$1|੧ ਲà©\81à¨\95ਵà©\80à¨\82 ਸ਼à©\8dਰà©\87ਣੀ|
+$1 ਲà©\81à¨\95ਵà©\80à¨\86à¨\82 ਸ਼à©\8dਰà©\87ਣੀਆਂ}} ਦਾ ਮੈਂਬਰ ਹੈ:',
'nocreatetitle' => 'ਸਫ਼ਾ ਬਣਾਉਣ ਦੀ ਹੱਦ ਹੈ',
'nocreatetext' => '{{SITENAME}} ਨੇ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਤੇ ਰੋਕ ਲਾਈ ਹੋਈ ਹੈ।
ਤੁਸੀਂ ਵਾਪਸ ਜਾ ਕੇ ਮੌਜੂਦਾ ਸਫ਼ੇ ਸੋਧ ਸਕਦੇ ਹੋ ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਜਾਂ ਖਾਤਾ ਬਣਾ]] ਸਕਦੇ ਹੋ।',
'mergelogpagetext' => 'ਹੇਠਾਂ ਇੱਕ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਦੂਜੇ ਦੇ ਅਤੀਤ ਵਿਚ ਰਲ਼ਾਉਣ ਦੀ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਲਿਸਟ ਹੈ।',
# Diffs
-'history-title' => '"$1" ਦੇ ਅਤੀਤ ਰੀਵਿਜ਼ਨ',
+'history-title' => '"$1" ਦੇ ਸੁਧਾਰਾਂ ਦਾ ਅਤੀਤ',
'difference-title' => '"$1" ਦੇ ਰੀਵਿਜ਼ਨਾਂ ਵਿਚ ਫ਼ਰਕ',
'difference-title-multipage' => 'ਸਫ਼ਿਆਂ "$1" ਅਤੇ "$2" ਵਿਚ ਫ਼ਰਕ',
'difference-multipage' => '(ਦੋ ਸਫ਼ਿਆਂ ਵਿਚਕਾਰ ਫ਼ਰਕ)',
'searchprofile-everything-tooltip' => 'ਸਭ ਚੀਜ਼ਾਂ ਖੋਜੋ (ਗੱਲਬਾਤ ਸਫ਼ਿਆਂ ਸਮੇਤ)',
'searchprofile-advanced-tooltip' => 'ਆਪਣੇ ਬਣਾਏ ਨਾਮ-ਥਾਂਵਾਂ ਵਿਚ ਖੋਜੋ',
'search-result-size' => '$1 ({{PLURAL:$2|੧ ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})',
-'search-result-category-size' => '{{PLURAL:$1|੧ ਮà©\88à¨\82ਬਰ|$1 ਮà©\88à¨\82ਬਰ}} ({{PLURAL:$2|੧ ਸਬ-à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80|$2 ਸਬ-à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ}}, {{PLURAL:$3|੧ ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
+'search-result-category-size' => '{{PLURAL:$1|੧ ਮà©\88à¨\82ਬਰ|$1 ਮà©\88à¨\82ਬਰ}} ({{PLURAL:$2|੧ à¨\89ਪ-ਸ਼à©\8dਰà©\87ਣà©\80|$2 à¨\89ਪ-ਸ਼à©\8dਰà©\87ਣੀਆਂ}}, {{PLURAL:$3|੧ ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
'search-redirect' => '($1 ਰੀ-ਡਿਰੈਕਟ)',
'search-section' => '(ਭਾਗ $1)',
'search-suggest' => 'ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਸੀ: $1',
'filename-tooshort' => 'ਫ਼ਾਈਲ ਬਹੁਤ ਛੋਟੀ ਹੈ।',
'filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫ਼ਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
'illegal-filename' => 'ਇਸ ਫ਼ਾਈਲ-ਨਾਮ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
-'fileexists' => 'à¨\87ਹ ਫਾà¨\87ਲ ਨਾà¨\82 ਪਹਿਲਾà¨\82 ਹà©\80 ਮà©\8cà¨\9cà©\82ਦ ਹà©\88। à¨\9cà©\87 ਤà©\81ਸà©\80à¨\82 à¨\87ਹ ਬਦਲਣ ਬਾਰà©\87 à¨\9cਾਣਦà©\87 ਨਹੀਂ ਹੋ ਤਾਂ <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
+'fileexists' => 'à¨\87ਹ ਫਾà¨\87ਲ ਨਾà¨\82 ਪਹਿਲਾà¨\82 ਹà©\80 ਮà©\8cà¨\9cà©\82ਦ ਹà©\88। à¨\9cà©\87 ਤà©\81ਸà©\80à¨\82 à¨\87ਹ ਬਦਲਣ ਬਾਰà©\87 ਦà©\8dਰਿà©\9c ਨਹੀਂ ਹੋ ਤਾਂ <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
'fileexists-extension' => 'ਇਸ ਨਾਂ ਨਾਲ ਰਲਦੀ ਫਾਇਲ ਮੌਜੂਦ ਹੈ: [[$2|thumb]]
-* ਅੱਪਲੋਡ ਕੀਤੀ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$1]]</strong>
+* à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80 à¨\9cਾà¨\82ਦà©\80 ਫਾà¨\87ਲ ਦਾ ਨਾà¨\82: <strong>[[:$1]]</strong>
* ਮੌਜੂਦ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$2]]</strong>
ਇੱਕ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ',
'file-exists-duplicate' => 'ਇਹ ਫ਼ਾਈਲ {{PLURAL:$1|ਇਸ ਫ਼ਾਈਲ|ਇਹਨਾਂ ਫ਼ਾਈਲਾਂ}} ਦੀ ਨਕਲ ਹੈ:',
'statistics-users-active-desc' => 'ਮੈਂਬਰ, ਜਿੰਨ੍ਹਾ ਨੇ ਆਖ਼ਰੀ {{PLURAL:$1|ਦਿਨ|$1 ਦਿਨਾਂ}} ਵਿਚ ਕੋਈ ਕੰਮ ਕੀਤਾ ਹੈ।',
'statistics-mostpopular' => 'ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੇ ਪੇਜ',
-'disambiguationspage' => 'ਗੁੰਝਲ ਖੋਲ੍ਹ',
+'disambiguationspage' => 'Template:disambig',
'doubleredirects' => 'ਦੋਹਰੇ ਰੀਡਿਰੈਕਟ',
'actionfailed' => 'ਕਾਰਵਾਈ ਨਾਕਾਮ',
'deletedtext' => '"$1" ਮਿਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।
ਤਾਜ਼ੀਆਂ ਮਿਟਾਉਣਾਂ ਦੇ ਰਿਕਾਰਡ ਲਈ $2 ਵੇਖੋ।',
-'dellogpage' => 'ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ',
+'dellogpage' => 'ਮਿਟਾਉਣ ਦਾ ਚਿੱਠਾ',
'dellogpagetext' => 'ਹੇਠਾਂ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਮਿਟਾਉਣਾਂ ਦੀ ਲਿਸਟ ਹੈ।',
'deletionlog' => 'ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ',
'deletecomment' => 'ਕਾਰਨ:',
'sp-contributions-blocked-notice-anon' => 'ਇਹ IP ਪਤਾ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਤਾਜ਼ਾ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
-'sp-contributions-username' => 'IP ਪਤਾ à¨\9cਾà¨\82 ਯà©\82à¨\9c਼ਰ ਨਾਮ:',
+'sp-contributions-username' => 'IP ਪਤਾ à¨\9cਾà¨\82 ਵਰਤà©\8cà¨\82à¨\95ਾਰ ਨਾਮ:',
'sp-contributions-toponly' => 'ਸਿਰਫ਼ ਉਹੀ ਸੋਧਾਂ ਵਖਾਓ ਜੋ ਸਭ ਤੋਂ ਨਵੀਂਆਂ ਹਨ',
'sp-contributions-submit' => 'ਖੋਜੋ',
'whatlinkshere-page' => 'ਸਫਾ:',
'linkshere' => "ਇਹ ਸਫ਼ੇ '''[[:$1]]''' ਨਾਲ਼ ਜੋੜਦੇ ਹਨ:",
'nolinkshere' => "ਕੋਈ ਵੀ ਸਫ਼ਾ '''[[:$1]]''' ਨਾਲ਼ ਨਹੀਂ ਜੋੜਦਾ।",
-'isredirect' => 'ਰà©\80ਡਿਰà©\88à¨\95à¨\9f ਸਫ਼ਾ',
+'isredirect' => 'ਮà©\8bà©\9cਵਾà¨\82 ਸਫ਼ਾ',
'istemplate' => 'ਟਾਕਰਾ ਕਰੋ',
'isimage' => 'ਫ਼ਾਈਲ ਦਾ ਲਿੰਕ',
'whatlinkshere-prev' => '{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}',
# Info page
'pageinfo-header-edits' => 'ਸੋਧਾਂ ਦਾ ਅਤੀਤ',
-'pageinfo-watchers' => 'ਸਫ਼à©\87 â\80\99ਤà©\87 ਨà¨\9c਼ਰ ਰੱà¨\96ਣ ਵਾਲ਼à©\87',
+'pageinfo-watchers' => 'ਸਫ਼à©\87 â\80\99ਤà©\87 ਨà¨\9c਼ਰ ਰੱà¨\96ਣ ਵਾਲਿà¨\86à¨\82 ਦà©\80 à¨\97ਿਣਤà©\80',
'pageinfo-edits' => 'ਕੁੱਲ ਸੋਧਾਂ',
# Skin names
'pageinfo-authors' => 'Całkowita liczba autorów',
'pageinfo-recent-edits' => 'Liczba ostatnich edycji (w przeciągu $1)',
'pageinfo-recent-authors' => 'Liczba ostatnich autorów',
-'pageinfo-restriction' => 'Zabezpieczenie strony (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Zabezpieczenie strony ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'Magiczne {{PLURAL:$1|słowo|słowa|słowa}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Ukryta kategoria|Ukryte kategorie|Ukryte kategorie}} ($1)',
'pageinfo-templates' => 'Transkludowan{{PLURAL:$1|y szablon|e szablony}} ($1)',
# Spam protection
'spamprotectiontitle' => 'Filtror dla rumenta',
-'spamprotectiontext' => "La pàgina che a vorìa salvé a l'é staita blocà dal filtror dla rumenta.
+'spamprotectiontext' => "Ël test che a vorìa salvé a l'é stàit blocà dal filtror dla rumenta.
Sòn a l'é motobin belfé che a sia rivà përchè a-i era n'anliura a un sit estern ëd coj blocà.",
'spamprotectionmatch' => "Cost-sì a l'é ël test che a l'é restà ciapà andrinta al filtror dla rumenta: $1",
'spambot_username' => 'MediaWiki - trigomiro che a-j dà deuit a la rumenta',
-'spam_reverting' => "Buta andaré a l'ùltima version che a l'avèissa pa andrinta dj'anliure a $1",
-'spam_blanking' => "Pàgina dësveujdà, che tute le version a l'avìo andrinta dj'anliure a $1",
-'spam_deleting' => 'Tute le revision a contnisìo dle liure a $1, scancelament',
+'spam_reverting' => "Butà andaré a l'ùltima version che a l'avèissa pa andrinta dj'anliure a $1",
+'spam_blanking' => "Pàgina dësvujdà, che tute le version a l'avìo andrinta dj'anliure a $1",
+'spam_deleting' => 'Scancelà, dagià che tute le revision a contnisìo dle liure a $1',
# Info page
'pageinfo-title' => 'Anformassion për "$1"',
'pageinfo-authors' => "Nùmer d'autor diferent",
'pageinfo-recent-edits' => "Nùmer ëd modìfiche recente (ant j'ùltim $1)",
'pageinfo-recent-authors' => "Nùmer d'autor diferent recent",
-'pageinfo-restriction' => 'Protession ëd la pàgina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protession ëd la pàgina ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Paròla màgica|Paròle màgiche}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorìa|Categorìe}} stërmà ($1)',
'pageinfo-templates' => '{{PLURAL:$1|stamp contnù|stamp contnù}} ($1)',
'youhavenewmessages' => 'تاسې $1 لری ($2).',
'newmessageslink' => 'نوي پيغامونه',
'newmessagesdifflink' => 'وروستی بدلون',
+'newmessageslinkplural' => '{{PLURAL:$1|يو نوی پيغام|نوي پيغامونه}}',
+'newmessagesdifflinkplural' => 'وروستي {{PLURAL:$1|بدلون|بدلونونه}}',
'youhavenewmessagesmulti' => 'تاسې په $1 کې نوي پېغامونه لرۍ',
'editsection' => 'سمول',
'editold' => 'سمول',
'userpage-userdoesnotexist-view' => 'د "$1" ګڼون نه دی ثبت شوی.',
'blocked-notice-logextract' => 'دم مهال په دې کارن بنديز لګېدلی.
دلته لاندې د بنديز تازه يادښت د سرچينې په توګه ورکړ شوی:',
-'clearyourcache' => "'''يادونه:''' د غوره توبونو د خوندي کولو وروسته، ددې لپاره چې تاسو خپل سر ته رسولي ونجونه وګورۍ نو پکار ده چې د خپل بروزر ساتل شوې حافظه تازه کړی.
-* '''Ù\85Ù\88زÛ\90Ù\84ا/ Ù\81اÙ\8aرÙ\81اکس/ سÙ\81رÙ\8a:''' Ù¾Ù\87 دÛ\90 کتÙ\86Ù\85Ù\84 Ú©Û\90 د ''Reload'' د Ù¼Ú©Ù\88Ù\87Ù\84Ù\88 Ù¾Ù\87 Ù\88خت د ''Shift'' تڼÛ\8d Ù\86Ù\8aÙ\88Ù\84Û\90 Ù\88ساتÛ\8cØ\8c اÙ\88 Ù\8aا Ù\87Ù\85 ''Ctrl-F5'' Ù\8aا ''Ctrl-R'' تڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ''⌘-R'' کېښکاږۍ)
+'clearyourcache' => "'''يادښت:''' د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.
+* '''Ù\81اÙ\8aرÙ\81اکس/ سÙ\81رÙ\8a:''' Ù¾Ù\87 دÛ\90 کتÙ\86Ù\85Ù\84 Ú©Û\90 د ''Reload'' د Ù¼Ú©Ù\88Ù\87Ù\84Ù\88 Ù¾Ù\87 Ù\88خت د ''Shift'' تڼÛ\8d Ù\86Ù\8aÙ\88Ù\84Û\90 Ù\88ساتÛ\8cØ\8c اÙ\88 Ù\8aا Ù\87Ù\85 ''Ctrl-F5'' Ù\8aا ''Ctrl-R''تڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ''⌘-R'' کېښکاږۍ)
* '''ګووګل کروم:''' په دې کتنمل کې د ''Ctrl-Shift-R'' تڼۍ کېښکاږۍ (د مک لپاره ''⌘-Shift-R'')
* '''انټرنټ اېکسپلورر:''' په دې کتنمل کې د ''Refresh'' د ټکوهلو په وخت کې د ''Ctrl'' تڼۍ کېښکاږلې ونيسۍ، او يا هم د ''Ctrl-F5'' تڼۍ کېښکاږۍ
-* '''کانکوېرور:''' په دې کتنمل کې د يواځې د ''Reload'' تڼۍ ټکوهۍ، او يا ''F5'' کېښکاږۍ
* '''اوپرا''': په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توګه سپينولی شی ''Tools→Preferences''",
'usercsspreview' => "'''هېر مو نشي چې دا يوازې ستاسې د کارن CSS مخليدنه ده.'''
'''تر اوسه پورې لا ستاسې بدلونونه نه دي خوندي شوي!'''",
'resultsperpage' => 'په هر مخ کې د پايلو شمېر:',
'stub-threshold-disabled' => 'ناچارن',
'recentchangesdays' => 'د هغو ورځو شمېر وټاکی چې په وروستي بدلونو کې يې ليدل غواړی:',
+'recentchangesdays-max' => 'حد اکثر $1 {{PLURAL:$1|ورځ|ورځې}}',
'recentchangescount' => 'د هغو سمونو شمېر چې په تلواليزه بڼه ښکاره بايد شي:',
'prefs-help-recentchangescount' => 'پدې کې د وروستني بدلونونو، د مخونو د پېښليکونو او يادښتونه شامل دي.',
'savedprefs' => 'ستاسو غوره توبونه خوندي شوه.',
که تاسې بيا هم د خپلې دوتنې پورته کول غواړۍ، نو لطفاً بېرته وګرځۍ او همدغه دوتنه بيا په يوه نوي نوم پورته کړی.
[[File:$1|thumb|center|$1]]',
'file-exists-duplicate' => 'همدا دوتنه د {{PLURAL:$1|لاندينۍ دوتنې|لاندينيو دوتنو}} غبرګه لمېسه ده:',
+'uploadwarning' => 'د پورته کولو ګواښ',
'savefile' => 'دوتنه خوندي کړه',
'uploadedimage' => '"[[$1]]" پورته شوه',
'uploaddisabled' => 'پورته کول ناچارن شوي',
'watchthisupload' => 'همدا دوتنه کتل',
'upload-success-subj' => 'دوتنه پورته کېدل په برياليتوب سره ترسره شو',
'upload-failure-subj' => 'د پورته کېدو ستونزه',
+'upload-warning-subj' => 'د پورته کولو ګواښ',
'upload-file-error' => 'کورنۍ ستونزه',
'upload-unknown-size' => 'ناڅرګنده کچه',
'allpagesprefix' => 'هغه مخونه ښکاره کړه چې مختاړی يې وي:',
'allpagesbadtitle' => 'ورکړ شوی سرليک سم نه دی او يا هم د ژبو او يا د بېلابېلو ويکي ګانو مختاړی لري. ستاسو په سرليک کې يو يا څو داسې ابېڅې دي کوم چې په سرليک کې نه شي کارېدلی.',
'allpages-bad-ns' => '{{SITENAME}} د "$1" په نامه هېڅ کوم نوم-تشيال نه لري.',
+'allpages-hide-redirects' => 'مخ ګرځونې پټول',
# Special:Categories
'categories' => 'وېشنيزې',
'activeusers' => 'د فعالو کارنانو لړليک',
'activeusers-count' => 'په {{PLURAL:$2|تېرې|تېرو}} {{PLURAL:$3|ورځ|$3 ورځو}} کې $1 {{PLURAL:$1|سمون|سمونونه}}',
'activeusers-from' => 'هغه کارنان کتل چې نومونه يې پېلېږي په:',
+'activeusers-hidebots' => 'روباټونه پټول',
'activeusers-hidesysops' => 'پازوالان پټول',
'activeusers-noresult' => 'کارن و نه موندل شو.',
# E-mail user
'mailnologin' => 'هېڅ کومه لېږل شوې پته نشته',
'emailuser' => 'کارن ته برېښليک لېږل',
+'emailuser-title-target' => 'دې {{GENDER:$1|کارن}} ته برېښليک لېږل',
+'emailuser-title-notarget' => 'کارن ته برېښليک لېږل',
'emailpage' => 'کارن ته برېښليک لېږل',
'defemailsubject' => 'د "$1" کارن لخوا د {{SITENAME}} برېښليک',
'usermaildisabled' => 'د کارن برېښليک ناچارند دی',
# Info page
'pageinfo-title' => 'د "$1" مالومات',
-'pageinfo-header-edits' => 'سÙ\85Ù\88Ù\86Ù\88Ù\86Ù\87',
+'pageinfo-header-edits' => 'د سÙ\85Ù\88Ù\86 Ù¾Û\90Ú\9aÙ\84Ù\8aÚ©',
'pageinfo-views' => 'د کتنو شمېر',
-'pageinfo-watchers' => 'د کتونکو شمېر',
-'pageinfo-edits' => 'د سمونونو شمېر',
+'pageinfo-watchers' => 'د مخ د کتونکو شمېر',
+'pageinfo-edits' => 'د ټولو سمونونو شمېر',
# Skin names
'skinname-standard' => 'کلاسيک',
'skinname-chick' => 'شيک',
'skinname-simple' => 'ساده',
'skinname-modern' => 'نوی',
+'skinname-vector' => 'وېکټور',
# Patrolling
'markaspatrolledtext' => 'دا مخ څارل شوی په نخښه کول',
'confirm-watch-button' => 'ښه',
'confirm-unwatch-button' => 'ښه',
+# Separators for various lists, etc.
+'percent' => '$1%',
+'parentheses' => '($1)',
+'brackets' => '[$1]',
+
# Multipage image navigation
'imgmultipageprev' => '← پخوانی مخ',
'imgmultipagenext' => 'راتلونکی مخ →',
'autoredircomment' => '[[$1]] ته وګرځولی شو',
'autosumm-new' => 'د "$1" تورو مخ جوړ شو',
+# Size units
+'size-bytes' => '$1 بايټ',
+'size-kilobytes' => '$1 کيلوبايټ',
+'size-megabytes' => '$1 مېګابايټ',
+'size-gigabytes' => '$1 ګېګابايټ',
+'size-terabytes' => '$1 ټېرابايټ',
+'size-petabytes' => '$1 پېبي بايټ',
+'size-exabytes' => '$1 اېکسبي بايټ',
+'size-zetabytes' => '$1 زېبي بايټ',
+'size-yottabytes' => '$1 يوبي بايټ',
+
# Live preview
'livepreview-loading' => 'برسېرېدنې کې دی...',
'livepreview-ready' => 'برسېرېدنه ... چمتو ده!',
'iranian-calendar-m11' => 'سلواغه',
'iranian-calendar-m12' => 'کب',
+# Hijri month names
+'hijri-calendar-m1' => 'محرم',
+'hijri-calendar-m2' => 'صفر',
+'hijri-calendar-m3' => 'ربيع الاول',
+'hijri-calendar-m4' => 'ربيع الثاني',
+'hijri-calendar-m5' => 'جمادى الاولى',
+'hijri-calendar-m6' => 'جمادى الثانية',
+'hijri-calendar-m7' => 'رجب',
+'hijri-calendar-m8' => 'شعبان',
+'hijri-calendar-m9' => 'رمضان',
+'hijri-calendar-m10' => 'شوال',
+'hijri-calendar-m11' => 'ذو القعدة',
+'hijri-calendar-m12' => 'ذو الحجة',
+
+# Hebrew month names
+'hebrew-calendar-m1' => 'تيشري',
+'hebrew-calendar-m2' => 'حشوان',
+'hebrew-calendar-m3' => 'كيسليف',
+'hebrew-calendar-m4' => 'تيفيت',
+'hebrew-calendar-m5' => 'شيفات',
+'hebrew-calendar-m6' => 'آدار',
+
# Signatures
'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|خبرې اترې]])',
* @author Brest
* @author BrokenArrow
* @author Byrial
+ * @author BáthoryPéter
* @author Claudia Hattitten
* @author Codex Sinaiticus
* @author Crt
Appears in subtitle
* $1 is a link to the page (HTML)',
'retrievedfrom' => 'Message which appears in the source of every page, but it is hidden. It is shown when printing. $1 is a link back to the current page: {{FULLURL:{{FULLPAGENAME}}}}.',
-'youhavenewmessages' => 'The blue message appearing when someone edited your user talk page.
+'youhavenewmessages' => 'The yellow message appearing when someone edited your user talk page.
The format is: "{{int:youhavenewmessages| [[MediaWiki:Newmessageslink/{{SUBPAGENAME}}|{{int:newmessageslink}}]] |[[MediaWiki:Newmessagesdifflink/{{SUBPAGENAME}}|{{int:newmessagesdifflink}}]]}}"',
'newmessageslink' => 'This is the first link displayed in an orange rectangle when a user gets a message on his talk page. Used in message {{msg-mw|youhavenewmessages}} (as parameter $1).
'pageinfo-recent-edits' => 'The number of times the page has been edited recently. $1 is a localised duration (e.g. 9 days).',
'pageinfo-recent-authors' => 'The number of users who have edited the page recently.',
'pageinfo-restriction' => 'Parameters:
-* $1 is the type of page protection (message restriction-$type, preferably in lowercase). If your language doesn\'t have small and capital letters, you can simply write <nowiki><code>$1</code></nowiki>.',
+* $1 is the type of page protection (message restriction-$type, preferably in lowercase). If your language doesn\'t have small and capital letters, you can simply write <nowiki>$1</nowiki>.',
'pageinfo-magic-words' => 'The list of magic words on the page. Parameters:
* $1 is the number of magic words on the page.',
'pageinfo-hidden-categories' => 'The list of hidden categories on the page. Parameters:
'pageinfo-authors' => 'Număr total de autori distincți',
'pageinfo-recent-edits' => 'Număr de modificări recente (în ultima perioadă de $1)',
'pageinfo-recent-authors' => 'Număr de autori distincți recenți',
-'pageinfo-restriction' => 'Protecție pagină (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Protecție pagină ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Cuvânt magic|Cuvinte magice}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorie ascunsă|Categorii ascunse}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Format inclus|Formate incluse}} ($1)',
'pageinfo-authors' => 'Общее число различных авторов',
'pageinfo-recent-edits' => 'Правок за последнее время (в течение $1)',
'pageinfo-recent-authors' => 'Уникальных авторов за последнее время',
-'pageinfo-restriction' => 'Защита страницы (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Защита страницы ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Магическое слово|Магические слова}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрытая категория|Скрытых категорий}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Шаблон|Шаблонов}} ($1)',
'pageinfo-authors' => 'प्रत्येककर्तॄणां समग्रा सङ्ख्या ।',
'pageinfo-recent-edits' => 'सद्योजातसम्पादनानां सङ्ख्या (गतेषु $1 दिनेषु)',
'pageinfo-recent-authors' => 'प्रत्येककर्तॄणां सद्यःकालीना सङ्ख्या ।',
-'pageinfo-restriction' => 'पृष्ठसंरक्षणम् (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'पृष्ठसंरक्षणम् ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'मान्त्रिक{{PLURAL:$1|शब्दः|शब्दाः}} ($1)',
'pageinfo-hidden-categories' => 'गोपित{{PLURAL:$1|वर्गः|वर्गाः}} ($1)',
'pageinfo-templates' => 'समायोजित{{PLURAL:$1|फलकम्|फलकानि}} ($1)',
'newmessageslink' => 'nova sporočila',
'newmessagesdifflink' => 'zadnja sprememba',
'newmessageslinkplural' => '{{PLURAL:$1|novo sporočilo|nova sporočila}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|zadnja sprememba|zadnji spremembi|zadnje spremembe}}',
'youhavenewmessagesmulti' => 'Na $1 imate novo sporočilo',
'editsection' => 'uredi',
'editold' => 'spremeni',
'error' => 'Napaka',
'databaseerror' => 'Napaka zbirke podatkov',
'dberrortext' => 'Prišlo je do napake podatkovne zbirke.
-Vzrok bi lahko bil nesprejemljiv iskalni niz ali programski hrošč.
-Zadnje poskušano iskanje:
-<blockquote><tt>$1</tt></blockquote>
-znotraj funkcije »<tt>$2</tt>«.
-Podatkovna zbirka je vrnila napako »<tt>$3: $4</tt>«.',
+Vzrok je lahko programski hrošč v programju.
+Zadnja poskušana poizvedba po zbirki podatkov:
+<blockquote><code>$1</code></blockquote>
+znotraj funkcije »<code>$2</code>«.
+Zbirka podatkov je vrnila napako »<samp>$3: $4</samp>«.',
'dberrortextcl' => 'Pri iskanju v podatkoovni zbirki je prišlo do skladenjske napake.
Zadnje iskanje v zbirki podatkov:
»$1«
* '''Firefox/Safari:''' Držite ''Shift'' in kliknite ''Ponovno naloži'' (''Reload'') ali pritisnite ''Ctrl-Shift-R'' ali ''Ctrl-R'' (''⌘-R'' na sistemu Mac)
* '''Internet Explorer:''' Držite ''Ctrl-F5'' in kliknite ''Osveži'' (''Refresh'') ali pritisnite ''Ctrl-F5''
* '''Google Chrome:''' Pritisnite ''Ctrl-Shift-R'' (''⌘-Shift-R'' na sistemu Mac)
-* '''Konqueror:''' Kliknite ''Ponovno naloži'' (''Reload'') ali pritisnite ''F5''.
* '''Opera:''' Počistite predpomnilnik v ''Tools → Preferences''",
'usercssyoucanpreview' => "'''Nasvet:''' Za preizkušanje svojega novega CSS pred shranjevanjem uporabite gumb »{{int:showpreview}}«.",
'userjsyoucanpreview' => "'''Nasvet:''' Za preizkušanje svojega novega JavaScripta pred shranjevanjem uporabite gumb »{{int:showpreview}}«.",
'shared-repo-from' => 'iz $1',
'shared-repo' => 'skupno skladišče',
'shared-repo-name-wikimediacommons' => 'Wikimedijina Zbirka',
+'upload-disallowed-here' => 'Slike žal ne morete prepisati.',
# File reversion
'filerevert' => 'Vrni $1',
# Info page
'pageinfo-title' => 'Informacije o »$1«',
-'pageinfo-header-edits' => 'Urejanja',
+'pageinfo-header-basic' => 'Osnovni podatki',
+'pageinfo-header-edits' => 'Zgodovina urejanja',
+'pageinfo-header-restrictions' => 'Zaščita strani',
+'pageinfo-header-properties' => 'Lastnosti strani',
'pageinfo-views' => 'Število ogledov',
-'pageinfo-watchers' => 'Število spremljevalcev',
-'pageinfo-edits' => 'Število urejanj',
-'pageinfo-authors' => 'Število različnih avtorjev',
+'pageinfo-watchers' => 'Število spremljevalcev strani',
+'pageinfo-redirects-name' => 'Preusmeritve na stran',
+'pageinfo-subpages-name' => 'Podstrani strani',
+'pageinfo-firstuser' => 'Ustvarjalec strani',
+'pageinfo-firsttime' => 'Datum ustvarjanja strani',
+'pageinfo-lastuser' => 'Zadnji urejevalec',
+'pageinfo-lasttime' => 'Datum zadnjega urejanja',
+'pageinfo-edits' => 'Skupno število urejanj',
+'pageinfo-authors' => 'Skupno število različnih avtorjev',
# Patrolling
'markaspatrolleddiff' => 'Označite kot nadzorovano',
'file-info-size-pages' => '$1 × $2 točk, velikost datoteke: $3, vrsta MIME: $4, $5 {{PLURAL:$5|stran|strani}}',
'file-nohires' => 'Slika višje ločljivosti ni na voljo.',
'svg-long-desc' => 'datoteka SVG, v izvirniku $1 × $2 slikovnih točk, velikost datoteke: $3',
+'svg-long-desc-animated' => 'animirana datoteka SVG, v izvirniku $1 × $2 slikovnih točk, velikost datoteke: $3',
'show-big-image' => 'Slika v višji ločljivosti',
'show-big-image-preview' => 'Velikost predogleda: $1.',
'show-big-image-other' => '{{PLURAL:$2|Druga resolucija|Drugi resoluciji|Druge resolucije}}: $1.',
'pageinfo-authors' => 'Број засебних аутора',
'pageinfo-recent-edits' => 'Број скорашњих измена (у последњих $1)',
'pageinfo-recent-authors' => 'Број скорашњих засебних аутора',
-'pageinfo-restriction' => 'Заштита странице (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Заштита странице ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Магична реч|Магичне речи}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Сакривена категорија|Сакривене категорије}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Укључени шаблон|Укључени шаблони}} ($1)',
'pageinfo-authors' => 'Broj zasebnih autora',
'pageinfo-recent-edits' => 'Broj skorašnjih izmena (u poslednjih $1)',
'pageinfo-recent-authors' => 'Broj skorašnjih zasebnih autora',
-'pageinfo-restriction' => 'Zaštita stranice (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Zaštita stranice ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magična reč|Magične reči}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)',
'pageinfo-authors' => 'Totalt antal olika författare',
'pageinfo-recent-edits' => 'Antal nyliga redigeringar (inom de senaste $1)',
'pageinfo-recent-authors' => 'Antal nyliga olika författare',
-'pageinfo-restriction' => 'Sidskydd (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Sidskydd ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Magiskt|Magiska}} ord ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Dold kategori|Dolda kategorier}} ($1)',
'group-autoconfirmed-member' => '{{GENDER:$1|தானாக உறுதிசெய்யப்பட்ட பயனர்}}',
'group-bot-member' => '{{GENDER:$1|தானியங்கி}}',
'group-sysop-member' => '{{GENDER:$1|நிர்வாகி}}',
-'group-bureaucrat-member' => '{{GENDER:$1|பà®\9fிபà¯\8dபாளரà¯\8dகள்}}',
+'group-bureaucrat-member' => '{{GENDER:$1|à®\85திà®\95ாரிகள்}}',
'group-suppress-member' => '{{GENDER:$1|மேற்பார்வை}}',
'grouppage-user' => '{{ns:project}}:பயனர்கள்',
'pageinfo-authors' => 'Kabuuang bilang ng magkakabukod na mga may-akda',
'pageinfo-recent-edits' => 'Kamakailang bilang ng mga pamamatnugot (sa loob ng huling $1)',
'pageinfo-recent-authors' => 'Kamakailang bilang ng magkakabukod na mga may-akda',
-'pageinfo-restriction' => 'Pruteksiyon ng pahina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Pruteksiyon ng pahina ({{lcfirst:$1}})',
'pageinfo-magic-words' => '{{PLURAL:$1|Salita|Mga salita}}ng mahiwaga ($1)',
'pageinfo-hidden-categories' => 'Nakatagong {{PLURAL:$1|kategorya|mga kategorya}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Suleras|Mga suleras}} ($1) na nasa transklusyon (kasama sa maraming mga lugar)',
'listingcontinuesabbrev' => '(дәвом)',
'index-category' => 'Индекс быә сәһифон.',
'noindex-category' => 'Индекс нибыә саһифон',
+'broken-file-category' => 'Сәһифон де ко ныкардә фајлинә сәбонон',
'about' => 'Тәсвир',
'article' => 'Мәғолә',
'privacy' => 'Мәхфијәти сијосәт',
'privacypage' => 'Project:Мәхфијәти сијосәт',
-'badaccess' => 'Ð\98ҹазÓ\99 Ñ\85Ó\99Ñ\82а.',
+'badaccess' => 'Ð\94аÑ\81Ñ\82Ñ\80Ó\99Ñ\81и Ò\93Ó\99лÓ\99Ñ\82',
'badaccess-group0' => 'Ын фәалијјәти ичра карде әзынишон.',
'ok' => 'OK',
Хаһиш кардәмон че сәһифә URL-и бә [[Special:ListUsers/sysop|администратори]] бывғандәнән.',
'missingarticle-rev' => '(рәвојәт#: $1)',
'missingarticle-diff' => '(Фәрг: $1, $2)',
-'internalerror' => 'Дахили хәта',
-'internalerror_info' => 'Дахили хәта: $1',
-'fileappenderrorread' => 'Ó\98лавон гејд карде быәдә"$1" һанде ныбе.',
-'formerror' => 'Ð¥Ó\99Ñ\82а: Че Ñ\84оÑ\80мÓ\99 мÓ\99лÑ\83моÑ\82он Ó\99кÑ\81 каÑ\80де Ò\93еÑ\80Ñ\80и мÑ\83мкуне.',
+'internalerror' => 'Дыләтонә ғәләт',
+'internalerror_info' => 'Дыләтонә ғәләт: $1',
+'fileappenderrorread' => 'Ó\98ловон Ò\93ејд карде быәдә"$1" һанде ныбе.',
+'formerror' => 'СÓ\99һв: Че Ñ\84оÑ\80мÓ\99 мÓ\99лÑ\83моÑ\82он Ó\99кÑ\81 каÑ\80де Ò\93еÑ\80Ñ\80и мÑ\8bмкуне.',
'cannotdelete-title' => 'Сәһифә әбыни рәдд кардеј "$1"',
'badtitle' => 'Роныдоә ном',
'badtitletext' => 'Ахтар кардә быә сәһифә ном сәһве, тәјлије, јаанки сәрост доә быәнин мијонзывонон ја мијонвики номон.
'powersearch-toggleall' => 'Һәммәј',
# Preferences page
-'preferences' => 'ЧиÑ\87Ñ\81Ó\99 пеÑ\87Ñ\8bниÑ\98е',
+'preferences' => 'Ð\9aÑ\83кон',
'mypreferences' => 'Кукон',
'prefsnologin' => 'Ыштәни едаштәнијоне',
'prefsnologintext' => 'Шымә бәбе <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ыштәни едәштән]</span> бо иштирокәкә пеғәндон дәгиш кардеј.',
'prefs-user-pages' => 'Иштирокәкә сәһифон',
'prefs-rc' => 'Ән нујә дәгишон',
'prefs-changeemail' => 'Е-номә дәгиш кардеј',
+'prefs-email' => 'Е-номә кукон',
'saveprefs' => 'Огәтеј',
+'rows' => 'Сәтырон:',
'searchresultshead' => 'Нәве',
'timezoneregion-america' => 'Америка',
'timezoneregion-europe' => 'Авропа',
'sharedupload-desc-here' => 'Ым фајл чыјо пегәтә быә $1 ијән бәзыне истифодә бе бә ҹо нәхшонәдә.
Мәлумот чн әчәј [$2 тәсвири сәһифәку] бә жиј доә быә.',
+# File deletion
+'filedelete-comment' => 'Сәбәб:',
+'filedelete-submit' => 'Рәдд кардеј',
+
# Random page
'randompage' => 'Рајрастә мәғолә',
'tooltip-summary' => 'Кыртә тәсвир бынывыштән',
# Info page
-'pageinfo-header-edits' => 'СÓ\99Ñ\80оÑ\81Ñ\82 каÑ\80деÑ\98',
+'pageinfo-header-edits' => 'Ð\94Ó\99гиÑ\88 каÑ\80дÓ\99 бÑ\8bÓ\99 Ñ\87иÑ\98он Ñ\82аÑ\80Ñ\8bÑ\85',
# Browsing diffs
'previousdiff' => '← Навынәни дәгиши',
'pageinfo-authors' => 'Tổng số tác giả riêng',
'pageinfo-recent-edits' => 'Số lần sửa đổi gần đây (trong $1 qua)',
'pageinfo-recent-authors' => 'Số người dùng sửa đổi gần đây',
-'pageinfo-restriction' => 'Mức khóa trang (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-restriction' => 'Mức khóa trang ({{lcfirst:$1}})',
'pageinfo-magic-words' => 'Từ thần chú ($1)',
'pageinfo-hidden-categories' => 'Thể loại ẩn ($1)',
'pageinfo-templates' => 'Bản mẫu được nhúng ($1)',
'pageinfo-authors' => 'סה"כ צאָל באַזונדערע שרײַבער',
'pageinfo-recent-edits' => 'לעצטיקע צאל רעדאקטירונגען (במשך די לעצטע $1)',
'pageinfo-recent-authors' => 'לעצטיקע צאָל באַזונדערע שרײַבער',
-'pageinfo-restriction' => 'בלאט שוץ (<code>$1</code>)',
+'pageinfo-restriction' => 'בלאט שוץ ($1)',
'pageinfo-magic-words' => '{{PLURAL:$1|מאגיש ווארט|מאגישע ווערטער}} ($1)',
'pageinfo-hidden-categories' => 'באהאלטענע {{PLURAL:$1|קאטעגאריע|קאטעגאריעס}} ($1)',
'pageinfo-templates' => ' {{PLURAL:$1|אריבערגעשלאסענער מוסטער|אריבערגשלאסענע מוסטערן}} ($1)',
'pageinfo-authors' => '作者總數',
'pageinfo-recent-edits' => '最近編輯次數 (過去 $1 內)',
'pageinfo-recent-authors' => '最近作者數目',
-'pageinfo-restriction' => '保護頁面 ( <code>{{lcfirst:$1}}</code> )',
+'pageinfo-restriction' => '保護頁面 ( {{lcfirst:$1}} )',
'pageinfo-magic-words' => '魔術{{PLURAL:$1|字|字}} ( $1 )',
'pageinfo-hidden-categories' => '隱藏{{PLURAL:$1|分類|分類}} ( $1 )',
'pageinfo-templates' => '被引用的{{PLURAL:$1|模版|模版}} ( $1 )',
--- /dev/null
+-- cat_hidden is no longer used, delete it
+
+ALTER TABLE /*$wgDBprefix*/category DROP COLUMN cat_hidden;
}
$bench_number++;
- $start = wfTime();
+ $start = microtime( true );
for( $i=0; $i<$count; $i++ ) {
call_user_func_array( $bench['function'], $bench['args'] );
}
- $delta = wfTime() - $start;
+ $delta = microtime( true ) - $start;
// function passed as a callback
if( is_array( $bench['function'] ) ) {
$this->insertData( $dbw );
- $start = wfTime();
+ $start = microtime( true );
$this->delete( $dbw );
- $end = wfTime();
+ $end = microtime( true );
echo "Delete: " . $end - $start;
echo "\r\n";
$this->insertData( $dbw );
- $start = wfTime();
+ $start = microtime( true );
$this->truncate( $dbw );
- $end = wfTime();
+ $end = microtime( true );
echo "Truncate: " . $end - $start;
echo "\r\n";
* @return string
*/
private function benchHooks( $trials = 10 ) {
- $start = wfTime();
+ $start = microtime( true );
for ( $i = 0; $i < $trials; $i++ ) {
wfRunHooks( 'Test' );
}
- $delta = wfTime() - $start;
+ $delta = microtime( true ) - $start;
$pertrial = $delta / $trials;
return sprintf( "Took %6.2fs",
$pertrial );
* @return string
*/
private function benchSquid( $urls, $trials = 1 ) {
- $start = wfTime();
+ $start = microtime( true );
for ( $i = 0; $i < $trials; $i++ ) {
SquidUpdate::purge( $urls );
}
- $delta = wfTime() - $start;
+ $delta = microtime( true ) - $start;
$pertrial = $delta / $trials;
$pertitle = $pertrial / count( $urls );
return sprintf( "%4d titles in %6.2fms (%6.2fms each)",
<?php
-
-# Router for the php cli-server built-in webserver
-# http://ca2.php.net/manual/en/features.commandline.webserver.php
+/**
+ * Router for the php cli-server built-in webserver.
+ * http://www.php.net/manual/en/features.commandline.webserver.php
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
if ( php_sapi_name() != 'cli-server' ) {
die( "This script can only be run by php's cli-server sapi." );
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
+ * @file
* @ingroup MaintenanceLanguage
*/
require_once( __DIR__ . '/../Maintenance.php' );
+/**
+ * Maintenance script that gets all messages as defined by the
+ * English language file.
+ *
+ * @ingroup MaintenanceLanguage
+ */
class AllTrans extends Maintenance {
public function __construct() {
parent::__construct();
<?php
/**
- * Script to print out duplicates in message array
+ * Print out duplicates in message array
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
+ * @file
* @ingroup MaintenanceLanguage
*/
require_once( __DIR__ . '/../Maintenance.php' );
+/**
+ * Maintenance script that counts how many messages we have defined
+ * for each language.
+ *
+ * @ingroup MaintenanceLanguage
+ */
class CountMessages extends Maintenance {
public function __construct() {
parent::__construct();
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
+ * @file
* @ingroup MaintenanceLanguage
*/
require_once( __DIR__ . '/../Maintenance.php' );
+/**
+ * Maintenance script that tests various language time and date functions.
+ *
+ * @ingroup MaintenanceLanguage
+ */
class DateFormats extends Maintenance {
private $ts = '20010115123456';
<?php
/**
+ * Check digit transformation
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
+ * @file
* @ingroup MaintenanceLanguage
*/
require_once( __DIR__ . '/../Maintenance.php' );
+/**
+ * Maintenance script that check digit transformation.
+ *
+ * @ingroup MaintenanceLanguage
+ */
class Digit2Html extends Maintenance {
# A list of unicode numerals is available at:
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
+ * @file
* @ingroup MaintenanceLanguage
- * @todo Make this more useful, right now just dumps $wgContentLang
+ * @todo Make this more useful, right now just dumps $wgContLang
*/
require_once( __DIR__ . '/../Maintenance.php' );
+/**
+ * Maintenance script that dumps an entire language, using the keys from English.
+ *
+ * @ingroup MaintenanceLanguage
+ */
class DumpMessages extends Maintenance {
public function __construct() {
parent::__construct();
$this->mDescription = "Dump an entire language, using the keys from English";
}
-
+
public function execute() {
global $wgVersion;
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
- * @ingroup Maintenance
* @file
+ * @ingroup MaintenanceLanguage
*/
require_once( __DIR__ .'/../Maintenance.php' );
/**
* Generate first letter data files for Collation.php
+ *
+ * @ingroup MaintenanceLanguage
*/
class GenerateCollationData extends Maintenance {
/** The directory with source data files in it */
/**
* Generates normalizer data files for Arabic and Malayalam.
* For NFC see includes/normal.
+ *
+ * @ingroup MaintenanceLanguage
*/
class GenerateNormalizerData extends Maintenance {
var $dataFile;
+++ /dev/null
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Maintenance Memcached
- */
-
-require_once( __DIR__ . '/commandLine.inc' );
-
-function purgeStaleMemcachedText() {
- global $wgMemc, $wgDBname;
- $db = wfGetDB( DB_MASTER );
- $maxTextId = $db->selectField( 'text', 'max(old_id)' );
- $latestReplicatedTextId = $db->selectField( array( 'recentchanges', 'revision' ), 'rev_text_id',
- array( 'rev_id = rc_this_oldid', "rc_timestamp < '20101225183000'"), 'purgeStaleMemcachedText',
- array( 'ORDER BY' => 'rc_timestamp DESC' ) );
- $latestReplicatedTextId -= 100; # A bit of paranoia
-
- echo "Going to purge text entries from $latestReplicatedTextId to $maxTextId in $wgDBname\n";
-
- for ( $i = $latestReplicatedTextId; $i < $maxTextId; $i++ ) {
- $key = wfMemcKey( 'revisiontext', 'textid', $i );
-
- while (1) {
- if (! $wgMemc->delete( $key ) ) {
- echo "Memcache delete for $key returned false\n";
- }
- if ( $wgMemc->get( $key ) ) {
- echo "There's still content in $key!\n";
- } else {
- break;
- }
- }
-
- }
-}
-
-purgeStaleMemcachedText();
-
+++ /dev/null
-<?php
-/**
- * Quickie hack; patch-ss_images.sql uses variables which don't
- * replicate properly.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @ingroup Maintenance
- */
-
-require_once( __DIR__ . '/Maintenance.php' );
-
-class RefreshImageCount extends Maintenance {
- public function __construct() {
- parent::__construct();
- $this->mDescription = "Resets ss_image count, forcing slaves to pick it up.";
- }
-
- public function execute() {
- $dbw = wfGetDB( DB_MASTER );
-
- // Load the current value from the master
- $count = $dbw->selectField( 'site_stats', 'ss_images' );
-
- $this->output( wfWikiID() . ": forcing ss_images to $count\n" );
-
- // First set to NULL so that it changes on the master
- $dbw->update( 'site_stats',
- array( 'ss_images' => null ),
- array( 'ss_row_id' => 1 ) );
-
- // Now this update will be forced to go out
- $dbw->update( 'site_stats',
- array( 'ss_images' => $count ),
- array( 'ss_row_id' => 1 ) );
- }
-}
-
-$maintClass = "RefreshImageCount";
-require_once( RUN_MAINTENANCE_IF_MAIN );
-
--- /dev/null
+-- cat_hidden is no longer used, delete it
+
+CREATE TABLE /*_*/category_tmp (
+ cat_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ cat_title varchar(255) binary NOT NULL,
+ cat_pages int signed NOT NULL default 0,
+ cat_subcats int signed NOT NULL default 0,
+ cat_files int signed NOT NULL default 0
+) /*$wgDBTableOptions*/;
+
+INSERT INTO /*_*/category_tmp
+ SELECT cat_id, cat_title, cat_pages, cat_subcats, cat_files
+ FROM /*_*/category;
+
+DROP TABLE /*_*/category;
+
+ALTER TABLE /*_*/category_tmp RENAME TO /*_*/category;
+
+CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category (cat_title);
+CREATE INDEX /*i*/cat_pages ON /*_*/category (cat_pages);
-- ing is not.
cat_pages int signed NOT NULL default 0,
cat_subcats int signed NOT NULL default 0,
- cat_files int signed NOT NULL default 0,
-
- -- Reserved for future use
- cat_hidden tinyint unsigned NOT NULL default 0
+ cat_files int signed NOT NULL default 0
) /*$wgDBTableOptions*/;
CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category (cat_title);
/**
* Live preview script for MediaWiki
*/
-(function( $ ) {
- window.doLivePreview = function( e ) {
- var previewShowing = false;
-
+( function( mw, $ ) {
+ var doLivePreview = function( e ) {
e.preventDefault();
$( mw ).trigger( 'LivePreviewPrepare' );
var $wikiPreview = $( '#wikiPreview' );
- $( '#mw-content-text' ).css( 'position', 'relative' );
-
- if ( $wikiPreview.is( ':visible' ) ) {
- previewShowing = true;
+ // this needs to be checked before we unconditionally show the preview
+ var overlaySpinner = false;
+ if ( $wikiPreview.is( ':visible' ) || $( '.mw-newarticletext:visible' ).length > 0 ) {
+ overlaySpinner = true;
}
- // show #wikiPreview if it's hidden (if it is hidden, it's also empty, so nothing changes in the rendering)
- // to be able to scroll to it
+ // show #wikiPreview if it's hidden to be able to scroll to it
+ // (if it is hidden, it's also empty, so nothing changes in the rendering)
$wikiPreview.show();
-
- // Jump to where the preview will appear
+ // jump to where the preview will appear
$wikiPreview[0].scrollIntoView();
- var postData = $('#editform').formToArray(); // formToArray: from jquery.form
- postData.push( { 'name' : e.target.name, 'value' : '1' } );
-
- // Hide active diff, used templates, old preview if shown
- var copyElements = ['#wikiPreview', '#wikiDiff', '.templatesUsed', '.hiddencats',
- '#catlinks', '#p-lang', '.mw-summary-preview'];
- var copySelector = copyElements.join(',');
+ // list of elements that will be loaded from the preview page
+ // elements absent in the preview page (such as .mw-newarticletext) will be cleared using .empty()
+ var copySelectors = [
+ '#wikiPreview', '#wikiDiff', '#catlinks', '.hiddencats', '#p-lang', // the meat
+ '.templatesUsed', '.mw-summary-preview', // editing-related
+ '.mw-newarticletext' // it is not shown during normal preview, and looks weird with throbber overlaid
+ ];
+ var $copyElements = $( copySelectors.join( ',' ) );
- $.each( copyElements, function( k, v ) {
- $( v ).fadeTo( 'fast', 0.4 );
- } );
+ var $loadSpinner = $( '<div>' ).addClass( 'mw-ajax-loader' );
+ $loadSpinner.css( 'top', '0' ); // move away from header (default is -16px)
- // Display a loading graphic
- var loadSpinner = $('<div class="mw-ajax-loader"/>');
- // Move away from header (default is -16px)
- loadSpinner.css( 'top', '0' );
+ // If the preview is already visible, overlay the spinner on top of it.
+ if ( overlaySpinner ) {
+ $( '#mw-content-text' ).css( 'position', 'relative' ); // FIXME this seems like a bad idea
- // If the preview is already showing, overlay the spinner on top of it.
- if ( previewShowing ) {
- loadSpinner.css( {
+ $loadSpinner.css( {
'position': 'absolute',
'z-index': '3',
'left': '50%',
'margin-left': '-16px'
} );
}
- $wikiPreview.before( loadSpinner );
- var page = $('<div/>');
- var target = $('#editform').attr('action');
+ // fade out the elements and display the throbber
+ $( '#mw-content-text' ).prepend( $loadSpinner );
+ // we can't use fadeTo because it calls show(), and we might want to keep some elements hidden
+ // (e.g. empty #catlinks)
+ $copyElements.animate( { 'opacity': 0.4 }, 'fast' );
- if ( !target ) {
- target = window.location.href;
- }
+ var $previewDataHolder = $( '<div>' );
+ var target = $( '#editform' ).attr( 'action' ) || window.location.href;
- page.load( target + ' ' + copySelector, postData,
- function() {
-
- for( var i=0; i<copyElements.length; ++i) {
- // For all the specified elements, find the elements in the loaded page
- // and the real page, empty the element in the real page, and fill it
- // with the content of the loaded page
- var copyContent = page.find( copyElements[i] ).contents();
- $(copyElements[i]).empty().append( copyContent );
- var newClasses = page.find( copyElements[i] ).prop('class');
- $(copyElements[i]).prop( 'class', newClasses );
- }
-
- $.each( copyElements, function( k, v ) {
- // Don't belligerently show elements that are supposed to be hidden
- $( v ).fadeTo( 'fast', 1, function() {
- $( this ).css( 'display', '' );
- } );
- } );
-
- loadSpinner.remove();
-
- $( mw ).trigger( 'LivePreviewDone', [copyElements] );
- } );
+ // gather all the data from the form
+ var postData = $( '#editform' ).formToArray(); // formToArray: from jquery.form
+ postData.push( { 'name' : e.target.name, 'value' : '1' } );
+
+ // load new preview data
+ // FIXME this should use the action=parse API instead of loading the entire page
+ $previewDataHolder.load( target + ' ' + copySelectors.join( ',' ), postData, function() {
+ // Copy the contents of the specified elements from the loaded page to the real page.
+ // Also copy their class attributes.
+ for ( var i = 0; i < copySelectors.length; i++ ) {
+ var $from = $previewDataHolder.find( copySelectors[i] );
+ var $to = $( copySelectors[i] );
+
+ $to.empty().append( $from.contents() );
+ $to.attr( 'class', $from.attr( 'class' ) );
+ }
+
+ $loadSpinner.remove();
+ $copyElements.animate( { 'opacity': 1 }, 'fast' );
+
+ $( mw ).trigger( 'LivePreviewDone', [copySelectors] );
+ } );
};
- $(document).ready( function() {
- // construct space for interwiki links if missing
- // (it is usually not shown when action=edit, but shown if action=submit)
+ $( document ).ready( function() {
+ // construct the elements we need if they are missing (usually when action=edit)
+ // we don't need to hide them, because they are empty when created
+
+ // interwiki links
if ( !document.getElementById( 'p-lang' ) && document.getElementById( 'p-tb' ) ) {
- // we need not hide this, because it's empty anyway
$( '#p-tb' ).after( $( '<div>' ).attr( 'id', 'p-lang' ) );
}
- // construct space for summary preview if missing
+ // summary preview
if ( $( '.mw-summary-preview' ).length === 0 ) {
$( '.editCheckboxes' ).before( $( '<div>' ).addClass( 'mw-summary-preview' ) );
}
- // construct space for diff if missing. also load diff styles.
+ // diff
if ( !document.getElementById( 'wikiDiff' ) && document.getElementById( 'wikiPreview' ) ) {
$( '#wikiPreview' ).after( $( '<div>' ).attr( 'id', 'wikiDiff' ) );
- // diff styles are by default only loaded when needed
- // if there was no diff container, we can expect the styles not to be there either
- mw.loader.load( 'mediawiki.action.history.diff' );
}
+ // diff styles are usually only loaded during, well, diff, and we might need them
+ // (mw.loader takes care of stuff if they happen to be loaded already)
+ mw.loader.load( 'mediawiki.action.history.diff' );
+
$( '#wpPreview, #wpDiff' ).click( doLivePreview );
} );
-}) ( jQuery );
+} )( mediaWiki, jQuery );
$dumper->stderr = $stderr;
// The actual dump and taking time
- $ts_before = wfTime();
+ $ts_before = microtime( true );
$dumper->dump( WikiExporter::FULL, WikiExporter::TEXT );
- $ts_after = wfTime();
+ $ts_after = microtime( true );
$lastDuration = $ts_after - $ts_before;
// Handling increasing the iteration count for the stubs