uses are in active use.
&$tags: list of all active tags. Append to this array.
+'ChangeTagsAfterUpdateTags': Called after tags have been updated with the
+ChangeTags::updateTags function. Params:
+$addedTags: tags effectively added in the update
+$removedTags: tags effectively removed in the update
+$prevTags: tags that were present prior to the update
+$rc_id: recentchanges table id
+$rev_id: revision table id
+$log_id: logging table id
+$params: tag params
+$rc: RecentChange being tagged when the tagging accompanies the action or null
+$user: User who performed the tagging when the tagging is subsequent to the action or null
+
'Collation::factory': Called if $wgCategoryCollation is an unknown collation.
$collationName: Name of the collation in question
&$collationObject: Null. Replace with a subclass of the Collation class that
array_merge(
LinkCache::getSelectFields(),
[
+ 'page_namespace',
+ 'page_title',
'cl_sortkey',
'cat_id',
'cat_title',
'JobRunner' => [
'readQueryTime' => 30,
'writeQueryTime' => 5,
- 'maxAffected' => 1000
+ 'maxAffected' => 500 // ballpark of $wgUpdateRowsPerQuery
],
// Command-line scripts
'Maintenance' => [
* When writing code that should be compatible with older MediaWiki
* versions, either stick to the old names or define the new constants
* yourself, if they're not defined already.
+ *
+ * @deprecated since 1.14
*/
define( 'NS_IMAGE', NS_FILE );
+/**
+ * @deprecated since 1.14
+ */
define( 'NS_IMAGE_TALK', NS_FILE_TALK );
/**@}*/
/**
* @param int $dbIndex DB_MASTER or DB_REPLICA
*
- * @return DatabaseBase
+ * @return IDatabase
* @throws MWException
*/
- private function getConnection( $dbIndex ) {
- return $this->loadBalancer->getConnection( $dbIndex, [ 'watchlist' ] );
- }
-
- /**
- * @param Database $connection
- *
- * @throws MWException
- */
- private function reuseConnection( $connection ) {
- $this->loadBalancer->reuseConnection( $connection );
+ private function getConnectionRef( $dbIndex ) {
+ return $this->loadBalancer->getConnectionRef( $dbIndex, [ 'watchlist' ] );
}
/**
* @return int
*/
public function countWatchedItems( User $user ) {
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$return = (int)$dbr->selectField(
'watchlist',
'COUNT(*)',
],
__METHOD__
);
- $this->reuseConnection( $dbr );
return $return;
}
* @return int
*/
public function countWatchers( LinkTarget $target ) {
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$return = (int)$dbr->selectField(
'watchlist',
'COUNT(*)',
],
__METHOD__
);
- $this->reuseConnection( $dbr );
return $return;
}
* @throws MWException
*/
public function countVisitingWatchers( LinkTarget $target, $threshold ) {
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$visitingWatchers = (int)$dbr->selectField(
'watchlist',
'COUNT(*)',
],
__METHOD__
);
- $this->reuseConnection( $dbr );
return $visitingWatchers;
}
public function countWatchersMultiple( array $targets, array $options = [] ) {
$dbOptions = [ 'GROUP BY' => [ 'wl_namespace', 'wl_title' ] ];
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
if ( array_key_exists( 'minimumWatchers', $options ) ) {
$dbOptions['HAVING'] = 'COUNT(*) >= ' . (int)$options['minimumWatchers'];
$dbOptions
);
- $this->reuseConnection( $dbr );
-
$watchCounts = [];
foreach ( $targets as $linkTarget ) {
$watchCounts[$linkTarget->getNamespace()][$linkTarget->getDBkey()] = 0;
array $targetsWithVisitThresholds,
$minimumWatchers = null
) {
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$conds = $this->getVisitingWatchersCondition( $dbr, $targetsWithVisitThresholds );
$dbOptions
);
- $this->reuseConnection( $dbr );
-
$watcherCounts = [];
foreach ( $targetsWithVisitThresholds as list( $target ) ) {
/* @var LinkTarget $target */
return false;
}
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$row = $dbr->selectRow(
'watchlist',
'wl_notificationtimestamp',
$this->dbCond( $user, $target ),
__METHOD__
);
- $this->reuseConnection( $dbr );
if ( !$row ) {
return false;
"wl_title {$options['sort']}"
];
}
- $db = $this->getConnection( $options['forWrite'] ? DB_MASTER : DB_REPLICA );
+ $db = $this->getConnectionRef( $options['forWrite'] ? DB_MASTER : DB_REPLICA );
$res = $db->select(
'watchlist',
__METHOD__,
$dbOptions
);
- $this->reuseConnection( $db );
$watchedItems = [];
foreach ( $res as $row ) {
return $timestamps;
}
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$lb = new LinkBatch( $targetsToLoad );
$res = $dbr->select(
],
__METHOD__
);
- $this->reuseConnection( $dbr );
foreach ( $res as $row ) {
$timestamps[$row->wl_namespace][$row->wl_title] = $row->wl_notificationtimestamp;
$this->uncache( $user, $target );
}
- $dbw = $this->getConnection( DB_MASTER );
+ $dbw = $this->getConnectionRef( DB_MASTER );
foreach ( array_chunk( $rows, 100 ) as $toInsert ) {
// Use INSERT IGNORE to avoid overwriting the notification timestamp
// if there's already an entry for this page
$dbw->insert( 'watchlist', $toInsert, __METHOD__, 'IGNORE' );
}
- $this->reuseConnection( $dbw );
return true;
}
$this->uncache( $user, $target );
- $dbw = $this->getConnection( DB_MASTER );
+ $dbw = $this->getConnectionRef( DB_MASTER );
$dbw->delete( 'watchlist',
[
'wl_user' => $user->getId(),
], __METHOD__
);
$success = (bool)$dbw->affectedRows();
- $this->reuseConnection( $dbw );
return $success;
}
return false;
}
- $dbw = $this->getConnection( DB_MASTER );
+ $dbw = $this->getConnectionRef( DB_MASTER );
$conds = [ 'wl_user' => $user->getId() ];
if ( $targets ) {
__METHOD__
);
- $this->reuseConnection( $dbw );
-
$this->uncacheUser( $user );
return $success;
* @return int[] Array of user IDs the timestamp has been updated for
*/
public function updateNotificationTimestamp( User $editor, LinkTarget $target, $timestamp ) {
- $dbw = $this->getConnection( DB_MASTER );
+ $dbw = $this->getConnectionRef( DB_MASTER );
$uids = $dbw->selectFieldValues(
'watchlist',
'wl_user',
],
__METHOD__
);
- $this->reuseConnection( $dbw );
$watchers = array_map( 'intval', $uids );
if ( $watchers ) {
function () use ( $timestamp, $watchers, $target, $fname ) {
global $wgUpdateRowsPerQuery;
- $dbw = $this->getConnection( DB_MASTER );
+ $dbw = $this->getConnectionRef( DB_MASTER );
$factory = wfGetLBFactory();
$ticket = $factory->getEmptyTransactionTicket( __METHOD__ );
}
}
$this->uncacheLinkTarget( $target );
-
- $this->reuseConnection( $dbw );
},
DeferredUpdates::POSTSEND,
$dbw
$queryOptions['LIMIT'] = $unreadLimit;
}
- $dbr = $this->getConnection( DB_REPLICA );
+ $dbr = $this->getConnectionRef( DB_REPLICA );
$rowCount = $dbr->selectRowCount(
'watchlist',
'1',
__METHOD__,
$queryOptions
);
- $this->reuseConnection( $dbr );
if ( !isset( $unreadLimit ) ) {
return $rowCount;
* @param LinkTarget $newTarget
*/
public function duplicateEntry( LinkTarget $oldTarget, LinkTarget $newTarget ) {
- $dbw = $this->getConnection( DB_MASTER );
+ $dbw = $this->getConnectionRef( DB_MASTER );
$result = $dbw->select(
'watchlist',
__METHOD__
);
}
-
- $this->reuseConnection( $dbw );
}
}
class ApiClearHasMsg extends ApiBase {
public function execute() {
$user = $this->getUser();
- $user->setNewtalk( false );
+ if ( $this->getRequest()->wasPosted() ) {
+ $user->setNewtalk( false );
+ } else {
+ DeferredUpdates::addCallableUpdate( function () use ( $user ) {
+ $user->setNewtalk( false );
+ } );
+ }
$this->getResult()->addValue( null, $this->getModuleName(), 'success' );
}
"@metadata": {
"authors": [
"Aftabuzzaman",
- "Bodhisattwa"
+ "Bodhisattwa",
+ "আজিজ"
]
},
+ "apihelp-main-param-format": "আউটপুটের বিন্যাস",
"apihelp-block-description": "ব্যবহারকারীকে বাধা দিন।",
"apihelp-createaccount-param-name": "ব্যবহারকারী নাম।",
"apihelp-delete-description": "একটি পাতা মুছে ফেলুন।",
if ( count( $this->tags ) ) {
ChangeTags::addTags( $this->tags, $this->mAttribs['rc_id'],
- $this->mAttribs['rc_this_oldid'], $this->mAttribs['rc_logid'], null );
+ $this->mAttribs['rc_this_oldid'], $this->mAttribs['rc_logid'], null, $this );
}
# Notify external application via UDP
*
* @since 1.28
*
- * @param array $tags
+ * @param string|array $tags
*/
public function addTags( $tags ) {
- $this->tags = array_merge( $tags, $this->tags );
+ if ( is_string( $tags ) ) {
+ $this->tags[] = $tags;
+ } else {
+ $this->tags = array_merge( $tags, $this->tags );
+ }
}
}
* @param int|null $rev_id The rev_id of the change to add the tags to
* @param int|null $log_id The log_id of the change to add the tags to
* @param string $params Params to put in the ct_params field of table 'change_tag'
+ * @param RecentChange|null $rc Recent change, in case the tagging accompanies the action
+ * (this should normally be the case)
*
* @throws MWException
* @return bool False if no changes are made, otherwise true
*/
public static function addTags( $tags, $rc_id = null, $rev_id = null,
- $log_id = null, $params = null
+ $log_id = null, $params = null, RecentChange $rc = null
) {
- $result = self::updateTags( $tags, null, $rc_id, $rev_id, $log_id, $params );
+ $result = self::updateTags( $tags, null, $rc_id, $rev_id, $log_id, $params, $rc );
return (bool)$result[0];
}
* Pass a variable whose value is null if the log_id is not relevant or unknown.
* @param string $params Params to put in the ct_params field of table
* 'change_tag' when adding tags
+ * @param RecentChange|null $rc Recent change being tagged, in case the tagging accompanies
+ * the action
+ * @param User|null $user Tagging user, in case the tagging is subsequent to the tagged action
*
* @throws MWException When $rc_id, $rev_id and $log_id are all null
* @return array Index 0 is an array of tags actually added, index 1 is an
*
* @since 1.25
*/
- public static function updateTags(
- $tagsToAdd, $tagsToRemove,
- &$rc_id = null, &$rev_id = null, &$log_id = null, $params = null
+ public static function updateTags( $tagsToAdd, $tagsToRemove, &$rc_id = null,
+ &$rev_id = null, &$log_id = null, $params = null, RecentChange $rc = null,
+ User $user = null
) {
$tagsToAdd = array_filter( (array)$tagsToAdd ); // Make sure we're submitting all tags...
}
self::purgeTagUsageCache();
+
+ Hooks::run( 'ChangeTagsAfterUpdateTags', [ $tagsToAdd, $tagsToRemove, $prevTags,
+ $rc_id, $rev_id, $log_id, $params, $rc, $user ] );
+
return [ $tagsToAdd, $tagsToRemove, $prevTags ];
}
// do it!
list( $tagsAdded, $tagsRemoved, $initialTags ) = self::updateTags( $tagsToAdd,
- $tagsToRemove, $rc_id, $rev_id, $log_id, $params );
+ $tagsToRemove, $rc_id, $rev_id, $log_id, $params, null, $user );
if ( !$tagsAdded && !$tagsRemoved ) {
// no-op, don't log it
return Status::newGood( (object)[
* Build a text box to select a change tag
*
* @param string $selected Tag to select by default
- * @param bool $fullForm Affects return value, see below
- * @param Title $title Title object to send the form to. Used only if $fullForm is true.
* @param bool $ooui Use an OOUI TextInputWidget as selector instead of a non-OOUI input field
* You need to call OutputPage::enableOOUI() yourself.
- * @return string|array
- * - if $fullForm is false: an array of (label, selector).
- * - if $fullForm is true: HTML of entire form built around the selector.
+ * @return array an array of (label, selector)
*/
- public static function buildTagFilterSelector( $selected = '',
- $fullForm = false, Title $title = null, $ooui = false
- ) {
+ public static function buildTagFilterSelector( $selected = '', $ooui = false ) {
global $wgUseTagFilter;
if ( !$wgUseTagFilter || !count( self::listDefinedTags() ) ) {
- return $fullForm ? '' : [];
+ return [];
}
$data = [
);
}
- if ( !$fullForm ) {
- return $data;
- }
-
- $html = implode( ' ', $data );
- $html .= "\n" .
- Xml::element(
- 'input',
- [ 'type' => 'submit', 'value' => wfMessage( 'tag-filter-submit' )->text() ]
- );
- $html .= "\n" . Html::hidden( 'title', $title->getPrefixedText() );
- $html = Xml::tags(
- 'form',
- [ 'action' => $title->getLocalURL(), 'class' => 'mw-tagfilter-form', 'method' => 'get' ],
- $html
- );
-
- return $html;
+ return $data;
}
/**
"config-page-complete": "Temamyayo",
"config-page-restart": "Barkerdışi fına ser kı",
"config-page-readme": "Mı bıwane",
+ "config-page-releasenotes": "Notë versiyoni",
"config-page-copying": "Kopyayeno",
"config-page-upgradedoc": "Berzkerdış",
+ "config-page-existingwiki": "Mewcud wiki",
"config-restart": "E, fına dest pekê",
"config-sidebar": "* [https://www.mediawiki.org MediaWiki keye]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Şınasiya Karberi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Şınasiya İdarekaran]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Peşti]\n----\n* <doclink href=Readme>Mı buwanê</doclink>\n* <doclink href=ReleaseNotes>Notê elaqeyıni</doclink>\n* <doclink href=Copying>Kopyakerdış</doclink>\n* <doclink href=UpgradeDoc>Zêdekerdış</doclink>",
"config-env-php": "PHP $1 i biyo saz.",
"config-db-type": "Database tipe:",
"config-db-host": "Database host:",
"config-db-host-oracle": "Database TNS:",
+ "config-db-wiki-settings": "Ena wikiyer akernë",
"config-db-name": "Database name:",
+ "config-db-name-oracle": "Şemaya hardata:",
"config-db-username": "Database nameykarberi:",
"config-db-password": "Database parola :",
"config-db-port": "Portê database:",
+ "config-oracle-def-ts": "Hesıbyaye caytabloy:",
+ "config-oracle-temp-ts": "İdareten caytabloy:",
+ "config-type-mysql": "MySQL (yana hewlın)",
"config-type-mssql": "Microsoft SQL Server",
"config-header-mysql": "Eyarê MySQL",
+ "config-header-sqlite": "SQLite sazi",
+ "config-header-oracle": "Orqcle sazi",
+ "config-header-mssql": "Sazë Microsoft SQL Serveri",
+ "config-missing-db-name": "\"{{int:config-db-name}}\"nrë jew erc dekerdış gerek keno.",
+ "config-missing-db-host": "\"{{int:config-db-host}}\" rë jew erc gerek keno",
+ "config-missing-db-server-oracle": "\"{{int:config-db-host-oracle}}\" rë jew erc gerek keno",
+ "config-mysql-engine": "Motorë depok kerdışi",
"config-mysql-innodb": "InnoDB",
"config-mysql-myisam": "MyISAM",
"config-mysql-binary": "Dılet",
"config-mysql-utf8": "UTF-8",
+ "config-mssql-sqlauth": "SQL Server araştnayış",
+ "config-mssql-windowsauth": "Windows kamiye araştnayış",
"config-site-name": "Namey wiki:",
"config-site-name-blank": "Yew nameyê sita cıkewe.",
"config-project-namespace": "Wareyê nameyê proceyi:",
* Class for ensuring a consistent ordering of events as seen by the user, despite replication.
* Kind of like Hawking's [[Chronology Protection Agency]].
*/
-class ChronologyProtector implements LoggerAwareInterface{
+class ChronologyProtector implements LoggerAwareInterface {
/** @var BagOStuff */
protected $store;
/** @var LoggerInterface */
public function flushReplicaSnapshots( $fname = __METHOD__ );
/**
- * Commit on all connections. Done for two reasons:
- * 1. To commit changes to the masters.
- * 2. To release the snapshot on all connections, master and replica DB.
+ * Commit open transactions on all connections. This is useful for two main cases:
+ * - a) To commit changes to the masters.
+ * - b) To release the snapshot on all connections, master and replica DBs.
* @param string $fname Caller name
* @param array $options Options map:
* - maxWriteDuration: abort if more than this much time was spent in write queries
"$fname: transaction round '{$this->trxRoundId}' still running."
);
}
+ /** @noinspection PhpUnusedLocalVariableInspection */
+ $scope = $this->getScopedPHPBehaviorForCommit(); // try to ignore client aborts
// Run pre-commit callbacks and suppress post-commit callbacks, aborting on failure
$this->forEachLBCallMethod( 'finalizeMasterChanges' );
$this->trxRoundId = false;
$this->requestInfo = $info + $this->requestInfo;
}
+ /**
+ * Make PHP ignore user aborts/disconnects until the returned
+ * value leaves scope. This returns null and does nothing in CLI mode.
+ *
+ * @return ScopedCallback|null
+ */
+ final protected function getScopedPHPBehaviorForCommit() {
+ if ( PHP_SAPI != 'cli' ) { // http://bugs.php.net/bug.php?id=47540
+ $old = ignore_user_abort( true ); // avoid half-finished operations
+ return new ScopedCallback( function () use ( $old ) {
+ ignore_user_abort( $old );
+ } );
+ }
+
+ return null;
+ }
+
function __destruct() {
$this->destroy();
}
public function commitMasterChanges( $fname = __METHOD__ ) {
$failures = [];
+ /** @noinspection PhpUnusedLocalVariableInspection */
+ $scope = $this->getScopedPHPBehaviorForCommit(); // try to ignore client aborts
+
$restore = ( $this->trxRoundId !== false );
$this->trxRoundId = false;
$this->forEachOpenMasterConnection(
} );
}
+ /**
+ * Make PHP ignore user aborts/disconnects until the returned
+ * value leaves scope. This returns null and does nothing in CLI mode.
+ *
+ * @return ScopedCallback|null
+ */
+ final protected function getScopedPHPBehaviorForCommit() {
+ if ( PHP_SAPI != 'cli' ) { // http://bugs.php.net/bug.php?id=47540
+ $old = ignore_user_abort( true ); // avoid half-finished operations
+ return new ScopedCallback( function () use ( $old ) {
+ ignore_user_abort( $old );
+ } );
+ }
+
+ return null;
+ }
+
function __destruct() {
// Avoid connection leaks for sanity
$this->closeAll();
$titleInfo = [];
$batch = new LinkBatch;
foreach ( $pages as $titleText ) {
- $batch->addObj( Title::newFromText( $titleText ) );
+ $title = Title::newFromText( $titleText );
+ if ( $title ) {
+ // Page name may be invalid if user-provided (e.g. gadgets)
+ $batch->addObj( $title );
+ }
}
if ( !$batch->isEmpty() ) {
$res = $db->select( 'page',
// Before we intersect, map the names to canonical form (T145673).
$intersect = [];
foreach ( $pages as $page => $unused ) {
- $title = Title::newFromText( $page )->getPrefixedText();
- $intersect[$title] = 1;
+ $title = Title::newFromText( $page );
+ if ( $title ) {
+ $intersect[ $title->getPrefixedText() ] = 1;
+ } else {
+ // Page name may be invalid if user-provided (e.g. gadgets)
+ $rl->getLogger()->info(
+ 'Invalid wiki page title "{title}" in ' . __METHOD__,
+ [ 'title' => $page ]
+ );
+ }
}
$info = array_intersect_key( $allInfo, $intersect );
*/
private function initServices() {
if ( !$this->titleParser ) {
- $lang = $this->getContext()->getLanguage();
- $this->titleParser = new MediaWikiTitleCodec( $lang, GenderCache::singleton() );
+ $this->titleParser = MediaWikiServices::getInstance()->getTitleParser();
}
}
}
}
- GenderCache::singleton()->doTitlesArray( $titles );
+ MediaWikiServices::getInstance()->getGenderCache()->doTitlesArray( $titles );
$list = [];
/** @var Title $title */
}
}
- GenderCache::singleton()->doTitlesArray( $titles );
+ MediaWikiServices::getInstance()->getGenderCache()->doTitlesArray( $titles );
foreach ( $titles as $title ) {
$list[] = $title->getPrefixedText();
}
$user = $this->getUser();
- $store = MediaWikiServices::getInstance()->getWatchedItemStore();
-
- foreach ( $this->badItems as $row ) {
- list( $title, $namespace, $dbKey ) = $row;
- $action = $title ? 'cleaning up' : 'deleting';
- wfDebug( "User {$user->getName()} has broken watchlist item ns($namespace):$dbKey, $action.\n" );
-
- $store->removeWatch( $user, new TitleValue( (int)$namespace, $dbKey ) );
-
- // Can't just do an UPDATE instead of DELETE/INSERT due to unique index
- if ( $title ) {
- $user->addWatch( $title );
+ $badItems = $this->badItems;
+ DeferredUpdates::addCallableUpdate( function () use ( $user, $badItems ) {
+ $store = MediaWikiServices::getInstance()->getWatchedItemStore();
+ foreach ( $badItems as $row ) {
+ list( $title, $namespace, $dbKey ) = $row;
+ $action = $title ? 'cleaning up' : 'deleting';
+ wfDebug( "User {$user->getName()} has broken watchlist item " .
+ "ns($namespace):$dbKey, $action.\n" );
+
+ $store->removeWatch( $user, new TitleValue( (int)$namespace, $dbKey ) );
+ // Can't just do an UPDATE instead of DELETE/INSERT due to unique index
+ if ( $title ) {
+ $user->addWatch( $title );
+ }
}
- }
+ } );
}
/**
"upload-dialog-disabled": "Загрузка файлаў з дапамогай гэтага дыялёгу адключаная ў гэтай вікі.",
"upload-dialog-title": "Загрузка файла",
"upload-dialog-button-cancel": "Адмяніць",
+ "upload-dialog-button-back": "Назад",
"upload-dialog-button-done": "Зроблена",
"upload-dialog-button-save": "Захаваць",
"upload-dialog-button-upload": "Загрузіць",
"htmlform-cloner-create": "Дадаць больш",
"htmlform-cloner-delete": "Выдаліць",
"htmlform-cloner-required": "Патрабуецца як мінімум яшчэ адно значэньне.",
+ "htmlform-date-placeholder": "ГГГГ-ММ-ДД",
"htmlform-title-badnamespace": "[[:$1]] знаходзіцца не ў прасторы назваў «{{ns:$2}}».",
"htmlform-title-not-creatable": "«$1» — немагчымы загаловак для старонкі",
"htmlform-title-not-exists": "$1 не існуе.",
"grant-group-other": "বিবিধ কার্যকলাপ",
"grant-createaccount": "অ্যাকাউন্ট তৈরি করুন",
"grant-createeditmovepage": "পাতা তৈরি, সম্পাদনা এবং স্থানান্তর করুন",
+ "grant-editinterface": "মিডিয়াউইকি নামস্থান এবং ব্যবহারকারীর সিএসএস/জাভাস্ক্রিপ্ট সম্পাদনা করে",
"grant-editmycssjs": "আপনার সিএসএস/জাভাস্ক্রিপ্ট সম্পাদনা করুন",
"grant-editmyoptions": "আপনার ব্যবহারকারী পছন্দসমূহ সম্পাদনা করুন",
"grant-editmywatchlist": "আপনার নজরতালিকা সম্পাদনা করুন",
"upload-dialog-disabled": "এই ডায়ালগ ব্যবহার করে ফাইল আপলোড করা এই উইকিতে নিষ্ক্রিয় করা হয়েছে।",
"upload-dialog-title": "ফাইল আপলোড করুন",
"upload-dialog-button-cancel": "বাতিল",
+ "upload-dialog-button-back": "পিছনে",
"upload-dialog-button-done": "সম্পন্ন",
"upload-dialog-button-save": "সংরক্ষণ",
"upload-dialog-button-upload": "আপলোড",
"htmlform-cloner-create": "আরও যোগ করুন",
"htmlform-cloner-delete": "অপসারণ",
"htmlform-cloner-required": "অন্তত একটি মূল্য আবশ্যক।",
+ "htmlform-date-placeholder": "বববব-মম-দদ",
+ "htmlform-time-placeholder": "ঘঘ:মম:সস",
+ "htmlform-datetime-placeholder": "বববব-মম-দদ ঘঘ:মম:সস",
"htmlform-title-badnamespace": "[[:$1]] \"{{ns:$2}}\" নামস্থানে খুঁজে পাওয়া যায়নি।",
"htmlform-title-not-creatable": "\"$1\" সৃষ্টিযোগ্য পাতার শিরোনাম নয়",
"htmlform-title-not-exists": "$1-এর অস্তিত্ব নেই।",
"log-action-filter-upload-upload": "নতুন আপলোড",
"log-action-filter-upload-overwrite": "পুনঃআপলোড",
"authmanager-authn-no-primary": "সরবরাহকৃত পরিচয়পত্রের অনুমোদন যাচাই করা যায়নি।",
+ "authmanager-authn-autocreate-failed": "একটি স্থানীয় অ্যাকাউন্টের স্বয়ংক্রিয়-সৃষ্টি ব্যর্থ হয়েছে: $1",
"authmanager-create-disabled": "অ্যাকাউন্ট সৃষ্টিকরণ নিষ্ক্রিয় করা হয়েছে।",
"authmanager-create-from-login": "আপনার একাউন্ট তৈরি করতে, নীচের ক্ষেত্রগুলি পূরণ করুন।",
"authmanager-authplugin-setpass-failed-title": "পাসওয়ার্ড পরিবর্তন ব্যর্থ হয়েছে",
"authmanager-authplugin-setpass-bad-domain": "অবৈধ ডোমেইন।",
"authmanager-autocreate-noperm": "স্বয়ংক্রিয় অ্যাকাউন্ট সৃষ্টি মঞ্জুরিপ্রাপ্ত নয়।",
"authmanager-userdoesnotexist": "ব্যবহারকারী অ্যাকাউন্ট \"$1\" অনিবন্ধিত।",
+ "authmanager-username-help": "প্রমাণীকরণের জন্য ব্যবহারকারী নাম।",
+ "authmanager-password-help": "প্রমাণীকরণের জন্য পাসওয়ার্ড।",
+ "authmanager-domain-help": "বহিঃস্থ প্রমাণীকরণের জন্য ডোমেইন।",
+ "authmanager-retype-help": "নিশ্চিত করার জন্য আবার পাসওয়ার্ড লিখুন।",
"authmanager-email-label": "ইমেইল",
"authmanager-email-help": "ইমেইল ঠিকানা",
"authmanager-realname-label": "প্রকৃত নাম",
"authmanager-realname-help": "ব্যবহারকারীর প্রকৃত নাম",
+ "authmanager-provider-password": "পাসওয়ার্ড-ভিত্তিক প্রমাণীকরণ।",
+ "authmanager-provider-password-domain": "পাসওয়ার্ড ও ডোমেইন-ভিত্তিক প্রমাণীকরণ।",
"authmanager-provider-temporarypassword": "অস্থায়ী পাসওয়ার্ড",
"authprovider-confirmlink-success-line": "$1: সংযোগ করা সফল হয়েছে।",
"authprovider-resetpass-skip-label": "উপেক্ষা করো",
"credentialsform-provider": "পরিচয়পত্রের ধরন:",
"credentialsform-account": "অ্যাকাউন্টের নাম:",
"linkaccounts": "অ্যাকাউন্ট সংযোগ করুন",
+ "linkaccounts-success-text": "অ্যাকাউন্টটি সংযোগ করা হয়েছে।",
"linkaccounts-submit": "অ্যাকাউন্ট সংযুক্ত করুন",
"unlinkaccounts": "অ্যাকাউন্ট সংযোগ বিচ্ছিন্ন করুন",
"unlinkaccounts-success": "অ্যাকাউন্টের সংযোগ বিচ্ছিন্ন করা হয়েছে।",
+ "authenticationdatachange-ignored": "প্রমাণীকরণ উপাত্তের পরিবর্তন পরিচালনা করা হয়নি। হয়তো কোন প্রদানকারী কনফিগার করা হয়নি?",
"userjsispublic": "অনুগ্রহ করে লক্ষ্য করুন: জাভাস্ক্রিপ্টের উপপাতাগুলিতে গোপনীয় তথ্য থাকা উচিত নয় যেহেতু অন্যান্য ব্যবহারকারীও এগুলি দেখতে পান।",
- "usercssispublic": "অনুগ্রহ করে লক্ষ্য করুন: সিএসএসের উপপাতাগুলিতে গোপনীয় তথ্য থাকা উচিত নয় যেহেতু অন্যান্য ব্যবহারকারীও এগুলি দেখতে পান।"
+ "usercssispublic": "অনুগ্রহ করে লক্ষ্য করুন: সিএসএসের উপপাতাগুলিতে গোপনীয় তথ্য থাকা উচিত নয় যেহেতু অন্যান্য ব্যবহারকারীও এগুলি দেখতে পান।",
+ "restrictionsfield-badip": "আইপি ঠিকানা অথবা পরিসীমা অবৈধ: $1",
+ "restrictionsfield-label": "অনুমোদিত আইপি পরিসীমা:",
+ "restrictionsfield-help": "লাইন প্রতি একটি আইপি ঠিকানা বা CIDR পরিসীমা। সবকিছু সক্রিয় করতে<br><code>0.0.0.0/0</code><br><code>::/0</code><br>ব্যবহার করুন"
}
"upload-http-error": "Даьлла гӀалат HTTP: $1",
"upload-dialog-title": "Файл чуяккхар",
"upload-dialog-button-cancel": "Цаоьшу",
+ "upload-dialog-button-back": "Юха",
"upload-dialog-button-done": "Кийчча ю",
"upload-dialog-button-save": "Ӏалашъян",
"upload-dialog-button-upload": "Чуяккха",
"htmlform-chosen-placeholder": "Харжа кеп",
"htmlform-cloner-create": "ТӀетоха кхин",
"htmlform-cloner-delete": "ДӀаяккха",
+ "htmlform-datetime-placeholder": "ШШШШ-ББ-ДД СС:ММ:СС",
"htmlform-title-not-exists": "«$1» яц.",
"htmlform-user-not-exists": "<strong>$1</strong> яц.",
"htmlform-user-not-valid": "<strong>$1</strong> — декъашхочун магийна йоцу цӀе.",
"special-characters-group-ipa": "ДАЭ (IPA)",
"special-characters-group-symbols": "Символаш",
"special-characters-group-greek": "Грекийн",
- "special-characters-group-greekextended": "Грекийн шординарш",
+ "special-characters-group-greekextended": "Грекийн алсам",
"special-characters-group-cyrillic": "Кирилан",
"special-characters-group-arabic": "Ӏарбийн",
- "special-characters-group-arabicextended": "Iаьрбийн шординарш",
+ "special-characters-group-arabicextended": "Ӏаьрбийн алсам",
"special-characters-group-persian": "Пхьарсхойн",
"special-characters-group-hebrew": "Жуьгтийн",
"special-characters-group-bangla": "Бангалойн",
"special-characters-group-tamil": "Тамилхойн",
"special-characters-group-telugu": "Телугойн",
"special-characters-group-sinhala": "Синхалойн",
- "special-characters-group-gujarati": "Ð\93Ñ\83жаÑ\80аÑ\82ойн",
+ "special-characters-group-gujarati": "Ð\93Ñ\83джаÑ\80аÑ\82и",
"special-characters-group-devanagari": "Деванагари",
"special-characters-group-thai": "Тайхойн",
"special-characters-group-lao": "Лаохойн",
"upload-dialog-disabled": "Načítání souborů pomocí tohoto dialogu je na této wiki vypnuto.",
"upload-dialog-title": "Načtení souboru",
"upload-dialog-button-cancel": "Storno",
+ "upload-dialog-button-back": "Zpět",
"upload-dialog-button-done": "Hotovo",
"upload-dialog-button-save": "Uložit",
"upload-dialog-button-upload": "Načíst",
"unlinkaccounts-success": "Propojení účtu bylo zrušeno.",
"authenticationdatachange-ignored": "Změna autentizačních údajů nebyla zpracována. Možná není nakonfigurován žádný poskytovatel?",
"userjsispublic": "Uvědomte si prosím, že podstránky s JavaScriptem by neměly obsahovat tajné údaje, protože jsou viditelné ostatním uživatelům.",
- "usercssispublic": "Uvědomte si prosím, že podstránky s CSS by neměly obsahovat tajné údaje, protože jsou viditelné ostatním uživatelům."
+ "usercssispublic": "Uvědomte si prosím, že podstránky s CSS by neměly obsahovat tajné údaje, protože jsou viditelné ostatním uživatelům.",
+ "restrictionsfield-badip": "Neplatná IP adresa nebo rozsah: $1",
+ "restrictionsfield-label": "Povolené rozsahy IP adres:",
+ "restrictionsfield-help": "Jedna IP adresa nebo CIDR rozsah na řádek. Všechno povolíte pomocí<br><code>0.0.0.0/0</code><br><code>::/0</code>"
}
"upload-dialog-disabled": "Dateiuploads mit diesem Dialog sind auf diesem Wiki deaktiviert.",
"upload-dialog-title": "Datei hochladen",
"upload-dialog-button-cancel": "Abbrechen",
+ "upload-dialog-button-back": "Zurück",
"upload-dialog-button-done": "Schließen",
"upload-dialog-button-save": "Speichern",
"upload-dialog-button-upload": "Hochladen",
"htmlform-cloner-create": "Weitere hinzufügen",
"htmlform-cloner-delete": "Entfernen",
"htmlform-cloner-required": "Es ist mindestens ein Wert erforderlich.",
- "htmlform-date-toolow": "Der angegebene Wert liegt vor dem frühesten erlaubten Datum $1.",
+ "htmlform-date-placeholder": "JJJJ-MM-TT",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "JJJJ-MM-TT HH:MM:SS",
+ "htmlform-date-invalid": "Der eingegebene Wert ist kein erkanntes Datum. Versuche die Verwendung des Formats JJJJ-MM-TT.",
+ "htmlform-time-invalid": "Der eingegebene Wert ist keine erkannte Zeit. Versuche die Verwendung des Formats HH:MM:SS.",
+ "htmlform-datetime-invalid": "Der eingegebene Wert ist kein erkanntes Datum und keine Zeit. Versuche die Verwendung des Formats JJJJ-MM-TT HH:MM:SS.",
+ "htmlform-date-toolow": "Der eingegebene Wert liegt vor dem frühesten erlaubten Datum $1.",
+ "htmlform-date-toohigh": "Der eingegebene Wert liegt nach dem spätesten erlaubten Datum $1.",
+ "htmlform-time-toolow": "Der eingegebene Wert liegt vor der frühesten erlaubten Zeit $1.",
+ "htmlform-time-toohigh": "Der eingegebene Wert liegt nach der spätesten erlaubten Zeit $1.",
+ "htmlform-datetime-toolow": "Der eingegebene Wert liegt vor dem frühesten erlaubten Datum und der Zeit $1.",
+ "htmlform-datetime-toohigh": "Der eingegebene Wert liegt nach dem spätesten erlaubten Datum und der Zeit $1.",
"htmlform-title-badnamespace": "[[:$1]] ist nicht im Namensraum „{{ns:$2}}“.",
"htmlform-title-not-creatable": "„$1“ ist kein erstellbarer Seitentitel",
"htmlform-title-not-exists": "$1 ist nicht vorhanden.",
"about": "Heqa cı de",
"article": "Pela zerreki",
"newwindow": "(pençereyê newey de beno a)",
- "cancel": "Bıterkın",
+ "cancel": "İbtal",
"moredotdotdot": "Vêşi...",
"morenotlisted": "Na lista qay kemi ya.",
"mypage": "Pele",
"prefs-labs": "Xacetê labs",
"prefs-user-pages": "Pelê karberi",
"prefs-personal": "Pela karberi",
- "prefs-rc": "Vıryayışë newey",
+ "prefs-rc": "Vuriyayışë peyëni",
"prefs-watchlist": "Lista seyrkerdışi",
"prefs-editwatchlist": "Lista seyrkerdışi bıvurne",
"prefs-editwatchlist-label": "Listey serkerdışanê cıkewtışi timar kerê",
"nchanges": "$1 {{PLURAL:$1|vurnayış|vurnayışi}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ziyaretê peyêni ra nata}}",
"enhancedrc-history": "tarix",
- "recentchanges": "Vurriyayışê peyêni",
+ "recentchanges": "Vuriyayışë peyëni",
"recentchanges-legend": "Tercihê vurnayışanê peyênan",
"recentchanges-summary": "Wiki sero vurriyayışê peyêni asenê.",
"recentchanges-noresult": "Goreyê kriteranê kıfşkerdeyan ra qet yew vurnayış nêvêniya.",
"watchlist-hide": "Kaŝi",
"watchlist-submit": "Montri",
"wlshowtime": "Vidigenda tempodaŭro:",
- "wlshowhideminor": "Etaj redaktoj",
- "wlshowhidebots": "robotoj",
- "wlshowhideliu": "registritaj uzantoj",
- "wlshowhideanons": "anonimaj uzantoj",
+ "wlshowhideminor": "etajn redaktojn",
+ "wlshowhidebots": "robotojn",
+ "wlshowhideliu": "registritajn uzantojn",
+ "wlshowhideanons": "anonimajn uzantojn",
"wlshowhidepatr": "patrolitaj redaktoj",
- "wlshowhidemine": "miaj redaktoj",
- "wlshowhidecategorization": "paĝa enkategoriigo.",
+ "wlshowhidemine": "miajn redaktojn",
+ "wlshowhidecategorization": "kategoriigon de paĝoj",
"watchlist-options": "Opcioj por atentaro",
"watching": "Aldonata al la atentaro...",
"unwatching": "Malatentante...",
"upload-dialog-disabled": "En este wiki están desactivadas las subidas de archivos mediante este cuadro de diálogo.",
"upload-dialog-title": "Subir archivo",
"upload-dialog-button-cancel": "Cancelar",
+ "upload-dialog-button-back": "Volver",
"upload-dialog-button-done": "Hecho",
"upload-dialog-button-save": "Guardar",
"upload-dialog-button-upload": "Subir",
"htmlform-cloner-create": "Añadir más",
"htmlform-cloner-delete": "Eliminar",
"htmlform-cloner-required": "Se requiere al menos un valor.",
+ "htmlform-date-placeholder": "AAAA-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "AAAA-MM-DD HH:MM:SS",
+ "htmlform-date-invalid": "No se reconoció la fecha en el formato proporcionado. Prueba a usar el formato AAAA-MM-DD.",
+ "htmlform-time-invalid": "No se reconoció la hora en el formato proporcionado. Prueba a usar el formato HH:MM:SS.",
+ "htmlform-datetime-invalid": "No se reconoció la fecha y la hora en el formato proporcionado. Prueba a usar el formato AAAA-MM-DD HH:MM:SS.",
+ "htmlform-date-toolow": "El valor especificado es anterior a la fecha más antigua permitida, $1.",
+ "htmlform-date-toohigh": "El valor especificado es posterior a la fecha límite permitida, $1.",
+ "htmlform-time-toolow": "El valor especificado es anterior a la hora más antigua permitida, $1.",
+ "htmlform-time-toohigh": "El valor especificado es posterior a la hora límite permitida, $1.",
+ "htmlform-datetime-toolow": "El valor especificado es anterior a la fecha y hora más antigua permitidas, $1.",
+ "htmlform-datetime-toohigh": "El valor especificado es posterior a la fecha y hora límite permitidas, $1.",
"htmlform-title-badnamespace": "[[:$1]] no está en el espacio de nombres \"{{ns:$2}}\".",
"htmlform-title-not-creatable": "\"$1\" no es un título de página que se pueda crear",
"htmlform-title-not-exists": "$1 no existe.",
"upload-copy-upload-invalid-domain": "Domeinu honetan ezin dira igoerak kopiatu.",
"upload-dialog-title": "Igo fitxategia",
"upload-dialog-button-cancel": "Utzi",
+ "upload-dialog-button-back": "Atzera",
"upload-dialog-button-done": "Egina",
"upload-dialog-button-save": "Gorde",
"upload-dialog-button-upload": "Igo",
"htmlform-chosen-placeholder": "Aukeratu",
"htmlform-cloner-create": "Gehitu gehiago",
"htmlform-cloner-delete": "Kendu",
+ "htmlform-date-placeholder": "UUUU-HH-EE",
+ "htmlform-time-placeholder": "OO:MM:SS",
+ "htmlform-datetime-placeholder": "UUUU-HH-EE OO:MM:SS",
+ "htmlform-date-invalid": "Jarri duzun balioak ez du data ezagunik adierazten. Saiatu UUUU-HH-EE formatua erabiltzen.",
+ "htmlform-time-invalid": "Jarri duzun balioak ez du denbora ezagunik adierazten. Saiatu OO:MM:SS formatua erabiltzen.",
+ "htmlform-datetime-invalid": "Jarri duzun balioak ez da data eta denbora bezala ezagutzen. Saitu UUUU-HH-EE OO:MM:SS formatua erabiltzen.",
"htmlform-title-not-creatable": "\"$1\" ez da sor daitekeen orrialde baten izenburua",
"htmlform-title-not-exists": "$1 ez da existitzen.",
"htmlform-user-not-exists": "<strong>$1</strong> ez da existitzen.",
"htmlform-cloner-create": "Lisää enemmän",
"htmlform-cloner-delete": "Poista",
"htmlform-cloner-required": "Vähintään yksi arvo on pakollinen.",
+ "htmlform-date-placeholder": "VVVV-KK-PP",
+ "htmlform-time-placeholder": "TT:MM:SS",
+ "htmlform-datetime-placeholder": "VVVV-KK-PP TT:MM:SS",
"htmlform-title-badnamespace": "Sivu [[:$1]] ei ole nimiavaruudessa ”{{ns:$2}}”.",
"htmlform-title-not-creatable": "”$1” ei kelpaa sivun nimeksi.",
"htmlform-title-not-exists": "Sivua $1 ei ole olemassa.",
"upload-dialog-disabled": "Les téléversements de fichier utilisant cette boîte de dialogue sont désactivés sur ce wiki.",
"upload-dialog-title": "Téléverser un fichier",
"upload-dialog-button-cancel": "Annuler",
+ "upload-dialog-button-back": "Retour",
"upload-dialog-button-done": "Terminé",
"upload-dialog-button-save": "Enregistrer",
"upload-dialog-button-upload": "Téléverser",
"htmlform-cloner-create": "Ajouter encore",
"htmlform-cloner-delete": "Supprimer",
"htmlform-cloner-required": "Une valeur au moins est obligatoire.",
+ "htmlform-date-placeholder": "AAAA-MM-JJ",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "AAAA-MM-JJ HH:MM:SS",
+ "htmlform-date-invalid": "La valeur que vous avez spécifiée n’est pas une date reconnue. Essayez en utilisant le format AAAA-MM-JJ.",
+ "htmlform-time-invalid": "La valeur que vous avez spécifiée n’est pas une heure reconnue. Essayez en utilisant le format HH:MM:SS.",
+ "htmlform-datetime-invalid": "La valeur que vous avez spécifiée n’est pas un horodatage reconnu. Essayez en utilisant le format AAAA-MM-JJ HH:MM:SS.",
+ "htmlform-date-toolow": "La valeur que vous avez spécifiée est antérieure à la date autorisée la plus ancienne, qui est $1.",
+ "htmlform-date-toohigh": "La valeur que vous avez spécifiée est postérieure à la date autorisée la plus lointaine, qui est $1.",
+ "htmlform-time-toolow": "La valeur que vous avez spécifiée est antérieure à la plus petite heure autorisée, qui est $1.",
+ "htmlform-time-toohigh": "La valeur que vous avez spécifiée est postérieure à la plus grande heure autorisée, qui est $1.",
+ "htmlform-datetime-toolow": "La valeur que vous avez spécifiée est antérieure à l’horodatage autorisé le plus ancien, qui est $1.",
+ "htmlform-datetime-toohigh": "La valeur que vous avez spécifiée est postérieure à l’horodatage autorisé le plus lointain, qui est $1.",
"htmlform-title-badnamespace": "[[:$1]] n'est pas dans l’espace de noms « {{ns:$2}} ».",
"htmlform-title-not-creatable": "« $1 » n’est pas un titre de page pouvant être créée",
"htmlform-title-not-exists": "$1 n’existe pas",
"recentchanges-page-removed-from-category-bundled": "[[:$1]] eliminada da categoría [[Special:WhatLinksHere/$1||esta páxina está incluída noutras páxinas]]",
"autochange-username": "Cambio automático de MediaWiki",
"upload": "Subir un ficheiro",
- "uploadbtn": "Subir un ficheiro",
+ "uploadbtn": "Subir o ficheiro",
"reuploaddesc": "Cancelar a carga e volver ao formulario de carga",
"upload-tryagain": "Enviar a descrición do ficheiro modificada",
"uploadnologin": "Non accedeu ao sistema",
"upload-dialog-disabled": "As cargas de ficheiros usando esta pantalla están desactivadas neste wiki.",
"upload-dialog-title": "Subir un ficheiro",
"upload-dialog-button-cancel": "Cancelar",
+ "upload-dialog-button-back": "Volver",
"upload-dialog-button-done": "Feito",
"upload-dialog-button-save": "Gardar",
"upload-dialog-button-upload": "Subir",
"htmlform-cloner-create": "Engadir máis",
"htmlform-cloner-delete": "Eliminar",
"htmlform-cloner-required": "Necesítase, polo menos, un valor.",
+ "htmlform-date-placeholder": "AAAA-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "AAAA-MM-DD HH:MM:SS",
+ "htmlform-date-invalid": "O valor especificado non é unha data recoñedica. Probe usando o formato AAAA-MM-DD.",
+ "htmlform-time-invalid": "O valor especificado non é unha hora recoñedica. Probe usando o formato HH:MM:SS.",
+ "htmlform-datetime-invalid": "O valor especificado non é unha data e hora recoñedica. Probe usando o formato AAAA-MM-DD HH:MM:SS.",
+ "htmlform-date-toolow": "O valor especificado é anterior á data máis antiga permitida: $1",
+ "htmlform-date-toohigh": "O valor especificado é posterior á data máis nova permitida: $1",
+ "htmlform-time-toolow": "O valor especificado é anterior ó tempo máis antigo permitido: $1",
+ "htmlform-time-toohigh": "O valor especificado é posterior ó tempo máis novo permitido: $1",
+ "htmlform-datetime-toolow": "O valor especificado é anterior á data e tampo máis antigo permitido: $1",
+ "htmlform-datetime-toohigh": "O valor especificado é posterior á data e tempo máis novo permitido: $1",
"htmlform-title-badnamespace": "\"[[:$1]]\" non está no espazo de nomes \"{{ns:$2}}\".",
"htmlform-title-not-creatable": "\"$1\" non é un título de páxina que se poida crear",
"htmlform-title-not-exists": "\"$1\" non existe.",
"upload-copy-upload-invalid-domain": "Kopije postavljenih datoteka nisu dostupne s ove domene.",
"upload-dialog-title": "Postavi datoteku",
"upload-dialog-button-cancel": "Odustani",
+ "upload-dialog-button-back": "Natrag",
"upload-dialog-button-done": "Gotovo",
"upload-dialog-button-save": "Spremi",
"upload-dialog-button-upload": "Postavi",
"emailuserfooter": "Ovu je e-poruku {{GENDER:$1|poslao suradnik|poslala suradnica}} $1 {{GENDER:$2|suradniku $2|suradnici $2}} uporabom mogućnosti \"{{int:emailuser}}\" s projekta {{SITENAME}}.",
"usermessage-summary": "Ostavljanje poruke sustava.",
"usermessage-editor": "Uređivač sistemskih poruka",
- "watchlist": "Moj popis praćenja",
+ "watchlist": "Popis praćenja",
"mywatchlist": "Popis praćenja",
"watchlistfor2": "Za $1 $2",
"nowatchlist": "Na Vašem popisu praćenja nema nijednog članka.",
"htmlform-cloner-create": "Dodaj još",
"htmlform-cloner-delete": "Ukloni",
"htmlform-cloner-required": "Potrebna je barem jedna vrijednost.",
+ "htmlform-date-placeholder": "GGGG-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "GGGG-MM-DD HH:MM:SS",
+ "htmlform-time-invalid": "Unesena vrijednost nije prepoznati format vremena. Pokušajte koristiti format HH:MM:SS.",
+ "htmlform-datetime-toohigh": "Uneseni datum i vrijeme su veći od $1",
"logentry-delete-delete": "$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3",
"logentry-delete-restore": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3",
"logentry-delete-event": "$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|zapisa u evidenciji|$5 zapisa u evidenciji}} na $3: $4",
"upload-dialog-disabled": "Il caricamento di file tramite questa finestra di dialogo è disabilitato in questo wiki.",
"upload-dialog-title": "Carica file",
"upload-dialog-button-cancel": "Annulla",
+ "upload-dialog-button-back": "Indietro",
"upload-dialog-button-done": "Fatto",
"upload-dialog-button-save": "Salva",
"upload-dialog-button-upload": "Carica",
"htmlform-cloner-create": "Aggiungi altro",
"htmlform-cloner-delete": "Rimuovi",
"htmlform-cloner-required": "È obbligatorio almeno un valore.",
+ "htmlform-date-placeholder": "AAAA-MM-GG",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "AAAA-MM-GG HH:MM:SS",
+ "htmlform-date-invalid": "Il valore specificato non è riconosciuto come data. Prova a utilizzare il formato AAAA-MM-GG.",
+ "htmlform-time-invalid": "Il valore specificato non è riconosciuto come orario. Prova a utilizzare il formato HH:MM:SS.",
+ "htmlform-datetime-invalid": "Il valore specificato non è riconosciuto come data e ora. Prova a utilizzare il formato AAAA-MM-GG HH:MM:SS.",
+ "htmlform-date-toolow": "Il valore specificato è precedente alla prima data consentita del $1.",
+ "htmlform-date-toohigh": "Il valore specificato è successivo all'ultima data consentita del $1.",
+ "htmlform-time-toolow": "Il valore specificato è precedente al primo orario consentito del $1.",
+ "htmlform-time-toohigh": "Il valore specificato è successivo all'ultimo orario consentito di $1.",
+ "htmlform-datetime-toolow": "Il valore specificato è precedente alla prima data e ora consentita del $1.",
+ "htmlform-datetime-toohigh": "Il valore specificato è successivo all'ultima data e ora consentita del $1.",
"htmlform-title-badnamespace": "[[:$1]] non si trova nel namespace \"{{ns:$2}}\".",
"htmlform-title-not-creatable": "\"$1\" è il titolo di una pagina non creabile",
"htmlform-title-not-exists": "$1 non esiste.",
"upload-dialog-disabled": "이 대화창을 이용한 파일 올리기는 이 위키에서 비활성화되어 있습니다.",
"upload-dialog-title": "파일 올리기",
"upload-dialog-button-cancel": "취소",
+ "upload-dialog-button-back": "뒤로",
"upload-dialog-button-done": "완료",
"upload-dialog-button-save": "저장",
"upload-dialog-button-upload": "올리기",
"htmlform-cloner-create": "더 추가",
"htmlform-cloner-delete": "제거",
"htmlform-cloner-required": "적어도 하나의 값이 필요합니다.",
+ "htmlform-date-placeholder": "YYYY-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
"htmlform-title-badnamespace": "[[:$1]] 문서는 \"{{ns:$2}}\" 이름공간에 없습니다.",
"htmlform-title-not-creatable": "\"$1\"은 만들 수 없는 문서 제목입니다.",
"htmlform-title-not-exists": "$1 문서는 존재하지 않습니다.",
"upload-dialog-disabled": "D'Eropluede vu Fichieren mat dësem Dialog ass op dëser Wiki desaktivéiert.",
"upload-dialog-title": "Fichier eroplueden",
"upload-dialog-button-cancel": "Ofbriechen",
+ "upload-dialog-button-back": "Zréck",
"upload-dialog-button-done": "Fäerdeg",
"upload-dialog-button-save": "Späicheren",
"upload-dialog-button-upload": "Eroplueden",
"htmlform-cloner-create": "Méi derbäisetzen",
"htmlform-cloner-delete": "Ewechhuelen",
"htmlform-cloner-required": "Mindestens ee Wäert ass obligatoresch.",
+ "htmlform-date-placeholder": "JJJJ-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "JJJJ-MM-DD HH:MM:SS",
+ "htmlform-date-invalid": "De Wäert deen Dir aginn hutt gouf net als Datum erkannt. Probéiert de Format JJJJ-MM-DD ze benotzen.",
+ "htmlform-time-invalid": "De Wäert deen Dir aginn hutt gouf net als Zäit erkannt. Probéiert de Format HH:MM:SS ze benotzen.",
+ "htmlform-datetime-invalid": "De Wäert deen Dir aginn hutt gouf net als Datum an Zäit erkannt. Probéiert de Format JJJJ-MM-DD HH:MM:SS ze benotzen.",
"htmlform-title-badnamespace": "[[:$1]] ass net am Nummraum \"{{ns:$2}}\".",
"htmlform-title-not-creatable": "\"$1\" ass kee Säitentitel deen ugeluecht ka ginn",
"htmlform-title-not-exists": "$1 gëtt et net.",
"upload-dialog-disabled": "Подигањето на податотеки со помош на овој дијалог е оневозможено на ова вики.",
"upload-dialog-title": "Подигни податотека",
"upload-dialog-button-cancel": "Откажи",
+ "upload-dialog-button-back": "Назад",
"upload-dialog-button-done": "Готово",
"upload-dialog-button-save": "Зачувај",
"upload-dialog-button-upload": "Подигни",
"htmlform-cloner-create": "Додај уште",
"htmlform-cloner-delete": "Отстрани",
"htmlform-cloner-required": "Се бара барем една вредност.",
+ "htmlform-date-placeholder": "ГГГГ-ММ-ДД",
+ "htmlform-time-placeholder": "ЧЧ:ММ:СС",
+ "htmlform-datetime-placeholder": "ГГГГ-ММ-ДД ЧЧ:ММ:СС",
+ "htmlform-date-invalid": "Не можам да ја препознаам внесената вредност. Користете го форматот ГГГГ-ММ-ДД.",
+ "htmlform-time-invalid": "Не можам да ја препознаам внесената вредност за време. Користете го форматот ЧЧ:ММ:СС.",
+ "htmlform-datetime-invalid": "Не можам да ја препознаам внесената вредност за датум и време. Користете го форматот ГГГГ-ММ-ДД ММ:СС.",
+ "htmlform-date-toolow": "Укажаната вредност е пред најраниот допуштен датум — $1.",
+ "htmlform-date-toohigh": "Укажаната вредност е по најдоцниот допуштен датум — $1.",
+ "htmlform-time-toolow": "Укажаната вредност е пред најраното допуштено време — $1.",
+ "htmlform-time-toohigh": "Укажаната вредност е по најдоцното допуштено време — $1.",
+ "htmlform-datetime-toolow": "Укажаната вредност е пред најраниот допуштен датум и време — $1.",
+ "htmlform-datetime-toohigh": "Укажаната вредност е по најдоцниот допуштен датум и време — $1.",
"htmlform-title-badnamespace": "[[:$1]] не се наоѓа во именскиот простор „{{ns:$2}}“.",
"htmlform-title-not-creatable": "Насловот „$1“ не може да се создава",
"htmlform-title-not-exists": "$1 не постои.",
"tog-enotifminoredits": "मला पानांच्या आणि संचिकांच्या छोट्या बदलांकरीता सुद्धा विरोप पाठवा",
"tog-enotifrevealaddr": "सूचना विरोपात माझा विरोपाचा (ई-मेल ) पत्ता दाखवा",
"tog-shownumberswatching": "पहारा देणाऱ्या सदस्यांचा आकडा दाखवा",
- "tog-oldsig": "सध्याची सही:",
+ "tog-oldsig": "à¤\86पलà¥\80 सधà¥\8dयाà¤\9aà¥\80 सहà¥\80:",
"tog-fancysig": "सही विकिसंज्ञा म्हणून वापरा (आपोआप दुव्याशिवाय)",
"tog-uselivepreview": "सजीव झलक दाखवा",
"tog-forceeditsummary": "जर ’बदलांचा आढावा’ दिला नसेल तर मला सूचित करा",
"tog-showhiddencats": "लपविलेले वर्ग दाखवा",
"tog-norollbackdiff": "द्रुतमाघार घेतल्यास बदल वगळा",
"tog-useeditwarning": "जर मी संपादित करीत असलेल्या पानावरील माझे संपादिलेले बदल जतन न केल्यास मला इशारा द्या",
- "tog-prefershttps": "सनोंद प्रवेशतांना प्रत्येक वेळी सुरक्षित अनुबंध वापरा",
+ "tog-prefershttps": "सनà¥\8bà¤\82द पà¥\8dरवà¥\87शित à¤\85सताà¤\82ना पà¥\8dरतà¥\8dयà¥\87à¤\95 वà¥\87ळà¥\80 सà¥\81रà¤\95à¥\8dषित à¤\85नà¥\81बà¤\82ध वापरा",
"underline-always": "नेहमी",
"underline-never": "कधीच नाही",
"underline-default": "त्वचा अथवा न्याहाळक अविचल (स्कीन अथवा ब्राऊजर डिफॉल्ट)",
"category-file-count-limited": "खालील {{PLURAL:$1|संचिका|$1 संचिका}} या वर्गात आहेत.",
"listingcontinuesabbrev": "पुढे चला",
"index-category": "अनुक्रमित पाने",
- "noindex-category": "à¤\85नà¥\81à¤\95à¥\8dरम नसलà¥\87लà¥\80 पाने",
+ "noindex-category": "विना-à¤\85नà¥\81à¤\95à¥\8dरमित पाने",
"broken-file-category": "तुटलेल्या संचिका दुव्यांसह असलेली पाने",
"about": "च्या विषयी",
"article": "आशयाचे पान",
"newwindow": "(नवीन खिडकीत उघडते.)",
"cancel": "रद्द करा",
"moredotdotdot": "अजून...",
- "morenotlisted": "हà¥\80 यादà¥\80 पà¥\82रà¥\8dण नाहà¥\80.",
+ "morenotlisted": "हà¥\80 यादà¥\80 à¤\85पà¥\82रà¥\8dण à¤\85सà¥\82 शà¤\95तà¥\87.",
"mypage": "पान",
"mytalk": "चर्चा",
"anontalk": "चर्चा पान",
"talk": "चर्चा",
"views": "दृष्ये",
"toolbox": "साधने",
+ "tool-link-emailuser": "{{GENDER:$1|सदस्याला}} विपत्र पाठवा",
"userpage": "सदस्य पृष्ठ",
"projectpage": "प्रकल्प पान पहा",
"imagepage": "संचिका पृष्ठ पहा",
"createacct-yourpasswordagain-ph": "पुन्हा परवलीचा शब्द टाका",
"userlogin-remembermypassword": "मला नोंदीकृतच(लॉग्ड-ईन) ठेवा",
"userlogin-signwithsecure": "सुरक्षित अनुबंध(सेक्युअर कनेक्शन) वापरा",
+ "cannotlogin-title": "सनोंद प्रवेश करु शकत नाही",
"cannotloginnow-title": "आता सनोंद प्रवेश घेऊ शकत नाही",
"cannotloginnow-text": "$1 वापरत असतांना सनोंद प्रवेश करणे शक्य नाही.",
"yourdomainname": "तुमचे क्षेत्र (डोमेन) :",
"eauthentsent": "नमूद केलेल्या ई-मेल पत्त्यावर एक निश्चितता स्वीकारक ई-मेल पाठविला गेला आहे.\nखात्यावर कोणताही इतर ई-मेल पाठविण्यापूर्वी - तो ई-मेल पत्ता तुमचाच आहे, हे सुनिश्चित करण्यासाठी - तुम्हाला त्या ई-मेल मधील सूचनांचे पालन करावे लागेल.",
"throttled-mailpassword": "मागील {{PLURAL:$1|तासात|$1 तासांत}} परवलीचा शब्द बदलण्यासाठीची सूचना विपत्राद्वारे पाठविलेली आहे. दुरुपयोग टाळण्यासाठी, {{PLURAL:$1|एका तासामध्ये|$1 तासांमध्ये}} फक्त एकदाच सूचना दिली जाईल.",
"mailerror": "विपत्र पाठवण्यात त्रुटी: $1",
- "acct_creation_throttle_hit": "à¤\86पला à¤\85à¤\82à¤\95पतà¥\8dता वापरà¥\81न या विà¤\95िस à¤à¥\87à¤\9f दà¥\87णाऱà¥\8dयाà¤\82नà¥\80 à¤\95ाल {{PLURAL:$1|१ à¤\96ातà¥\87|$1 à¤\96ातà¥\80}} à¤\89à¤\98डलà¥\80 à¤\86हà¥\87त तà¥\80 या à¤\95ालावधà¥\80तà¥\80ल महतà¥\8dतम à¤\86हà¥\87त.\n\nतà¥\8dयाà¤\9aा परिपाà¤\95 मà¥\8dहणà¥\82न सधà¥\8dया हा à¤\85à¤\82à¤\95पतà¥\8dता वापरà¥\81न à¤à¥\87à¤\9f दà¥\87णाऱà¥\8dयास अधिक खाते उघडता येणार नाहीत.",
+ "acct_creation_throttle_hit": "à¤\86पला à¤\85à¤\82à¤\95पतà¥\8dता वापरà¥\81न या विà¤\95िस à¤à¥\87à¤\9f दà¥\87णाऱà¥\8dयाà¤\82नà¥\80 माà¤\97à¥\80ल $2 मधà¥\8dयà¥\87 {{PLURAL:$1|१ à¤\96ातà¥\87|$1 à¤\96ातà¥\80}} à¤\89à¤\98डलà¥\80 à¤\86हà¥\87त तà¥\80 या à¤\95ालावधà¥\80तà¥\80ल महतà¥\8dतम à¤\86हà¥\87त.\n\nतà¥\8dयाà¤\9aा परिपाà¤\95 मà¥\8dहणà¥\82न सधà¥\8dया हा à¤\85à¤\82à¤\95पतà¥\8dता वापरà¥\81न à¤à¥\87à¤\9f दà¥\87णाऱà¥\8dयाला अधिक खाते उघडता येणार नाहीत.",
"emailauthenticated": "तुमचा विपत्रपत्ता $2 ला $3 यावेळी तपासण्यात आला आहे.",
"emailnotauthenticated": "तुमच्या ई-मेल पत्त्याची अद्याप निश्चिती झालेली नाही. खालील कोणत्याही फिचर्ससाठी ई-मेल पाठविला जाणार नाही.",
"noemailprefs": "खालील सुविधा कार्यान्वित करण्यासाठी,पसंतीक्रमात ई-मेल पत्ता नमूद करा.",
"botpasswords-label-resetpassword": "परवलीच्या शब्दाची पुनर्स्थापना करा",
"botpasswords-label-grants": "लागू अनुदाने:",
"botpasswords-help-grants": "प्रत्येक अनुदान हे सदस्य खात्यास आधीच असलेल्या यादीकृत सदस्य अधिकारास पोहोच देते.अधिक माहितीसाठी [[Special:ListGrants|अनुदानांचा तक्ता]] हे बघा.",
- "botpasswords-label-restrictions": "वापराचे प्रतिबंध:",
"botpasswords-label-grants-column": "मंजूर",
"botpasswords-bad-appid": "\"$1\" हे सांगकाम्याचे नाव वैध नाही.",
"botpasswords-insert-failed": "\"$1\" हे सांगकाम्याचे नाव जोडण्यात अयशस्वी. ते पूर्वीच जोडले होते काय?",
"upload-dialog-disabled": "हा डायलॉग वापरून या विकिवर संचिका अपभारण अक्षम केले आहे.",
"upload-dialog-title": "संचिकेचे अपभारण करा",
"upload-dialog-button-cancel": "रद्द करा",
+ "upload-dialog-button-back": "परत जा",
"upload-dialog-button-done": "झाले",
"upload-dialog-button-save": "जतन करा",
"upload-dialog-button-upload": "अपभारण करा",
"pageinfo-article-id": "पृष्ठ-परिचय",
"pageinfo-language": "पानाच्या मजकूराची भाषा",
"pageinfo-content-model": "पान आशय नमूना",
+ "pageinfo-content-model-change": "बदला",
"pageinfo-robot-policy": "यंत्रमानवाद्वारे अनुक्रमन",
"pageinfo-robot-index": "अनुमती दिली",
"pageinfo-robot-noindex": "अनुमती दिल्या जात नाही",
"htmlform-cloner-create": "अधिक जोडा",
"htmlform-cloner-delete": "हटवा",
"htmlform-cloner-required": "किमान एक किंमत हवी",
+ "htmlform-date-placeholder": "वववव-मम-दिदि",
+ "htmlform-time-placeholder": "ताता:मिमि:सेसे",
+ "htmlform-datetime-placeholder": "वववव-मम-दिदि ताता:मिमि:सेसे",
+ "htmlform-date-invalid": "आपण नमूद केलेली किंमत ही अनोळखी दिनांक आहे. वववव-मम-दिदि प्रारुपणाचा वापर करण्याबाबत विचार करा.",
+ "htmlform-time-invalid": "आपण नमूद केलेली किंमत ही अनोळखी आहे. ताता:मिमि:सेसे प्रारुपणाचा वापर करण्याबाबत विचार करा.",
+ "htmlform-datetime-invalid": "आपण नमूद केलेली किंमत ही अनोळखी दिनांक व वेळ आहे. वववव-मम-दिदि ताता:मिमि:सेसे प्रारुपणाचा वापर करण्याबाबत विचार करा.",
+ "htmlform-time-toohigh": "आपण नमूद केलेली किंमत ही $1च्या परवानगी असलेल्या वेळ मर्यादेबाहेर आहे.",
+ "htmlform-datetime-toohigh": "आपण नमूद केलेली किंमत ही $1च्या परवानगी असलेल्या दिनांक व वेळ मर्यादेबाहेर आहे.",
"htmlform-title-badnamespace": "[[:$1]] हे \"{{ns:$2}}\" नामविश्वात नाही.",
"htmlform-title-not-creatable": "\"$1\" हे पान तयार करण्यासाठीचे शीर्षक नाही",
"htmlform-title-not-exists": "$1 अस्तीत्वात नाही.",
"htmlform-user-not-exists": "<strong>$1</strong> अस्तीत्वात नाही.",
"htmlform-user-not-valid": "<strong>$1</strong> हे वैध सदस्यनाम नाही.",
- "sqlite-has-fts": "पूर्ण-मजकूर शोध समर्थनासहित $1",
- "sqlite-no-fts": "पूर्ण-मजकूर शोध समर्थनाविरहित $1",
"logentry-delete-delete": "$1 {{GENDER:$2|वगळलेले पान}} $3",
"logentry-delete-restore": "$1 {{GENDER:$2|पुनर्स्थापित पृष्ठ}} $3",
"logentry-delete-event": "$1 ने $3 वर{{PLURAL:$5|नोंद-प्रसंग|$5 नोंद प्रसंगांची}} दृष्यता{{GENDER:$2|बदलली}}:$4",
"아라",
"Fitoschido",
"Taresi",
- "Macofe"
+ "Macofe",
+ "Akapochtli"
]
},
"tog-underline": "Mokìnxòîkuilòtzàswis tzòwilistìn:",
"returnto": "Ximocuepa īhuīc $1.",
"tagline": "Īhuīcpa {{SITENAME}}",
"help": "Tēpalēhuiliztli",
- "search": "Mà motèmo",
+ "search": "Nican tictemoz",
"searchbutton": "Tictēmōz",
"go": "Xiyauh",
"searcharticle": "Xiyauh",
"unprotectthispage": "Xicpatla inīn tlaīxtli ītlapiyaliz",
"newpage": "Yancuic tlaīxtli",
"talkpage": "Xictlahto inīn tlaīxtli ītechcopa",
- "talkpagelinktext": "Nenônòtzalistli",
+ "talkpagelinktext": "Nenonotzaliztli",
"specialpage": "Nònkuâkìskàtlaìxtlapalli",
"personaltools": "In tlein nitēquitiltilia",
"articlepage": "Xiquitta in tlamantlaīxtli",
"userlogin-yourname": "Tequihuihcātōcāitl",
"yourpassword": "Motlahtōlichtacāyo",
"yourpasswordagain": "Motlahtōlichtacāyo occeppa",
- "remembermypassword": "Ticpiyāz motlacalaquiliz inīn chīuhpōhualhuazco (īxquich {{PLURAL:$1|tōnalli}})",
"yourdomainname": "Moāxcāyō",
"login": "Xicalaqui",
"nav-login-createaccount": "Ximocalaqui / ximomachiyōmaca",
"listusers": "Brukerliste",
"listusers-editsonly": "Vis bare brukere med redigeringer",
"listusers-creationsort": "Sorter etter opprettelsesdato",
- "listusers-desc": "Sorter i avtakende rekkefølge",
+ "listusers-desc": "Sorter i synkende rekkefølge",
"usereditcount": "{{PLURAL:$1|én redigering|$1 redigeringer}}",
"usercreated": "{{GENDER:$3|Opprettet}} $2 $1",
"newpages": "Nye sider",
"content-model-text": "perustekstu",
"content-model-javascript": "JavaScript",
"content-json-empty-object": "Tyhjy objektu",
- "cantcreateaccounttitle": "Ei voi luadie tunnustu",
"cantcreateaccount-text": "Tunnuksien luadimine täs IP-adressaspäi ('''$1''') on estetty. Estäjänny on [[User:$3|$3]].\n\nKäyttäjän $3 annettu syy on ''$2''",
"cantcreateaccount-range-text": "Tunnuksien luadimine IP-adressilois adressualovehel <strong>$1</strong>, kuduah kuuluu sinungi käytetty IP-adressu(<strong>$4</strong>), on estetty. Eston on azetannuh [[User:$3|$3]].\n\nKäyttäjän $3 annettu syy estole on \"$2\".",
"viewpagelogs": "Ozuta tämän sivun lougat",
"upload-dialog-disabled": "Przesyłanie plików przy pomocy tego okna jest wyłączone na tej wiki.",
"upload-dialog-title": "Prześlij plik",
"upload-dialog-button-cancel": "Anuluj",
+ "upload-dialog-button-back": "Wstecz",
"upload-dialog-button-done": "Gotowe",
"upload-dialog-button-save": "Zapisz",
"upload-dialog-button-upload": "Prześlij",
"htmlform-cloner-create": "Dodaj więcej",
"htmlform-cloner-delete": "Usuń",
"htmlform-cloner-required": "Wymagana jest co najmniej jedna wartość.",
+ "htmlform-date-placeholder": "RRRR-MM-DD",
"htmlform-title-badnamespace": "[[:$1]] nie znajduje się w przestrzeni nazw „{{ns:$2}}”.",
"htmlform-title-not-creatable": "Nie można użyć „$1” do utworzenia tytułu strony",
"htmlform-title-not-exists": "$1 nie istnieje.",
"expensive-parserfunction-warning": "Atenție: Această pagină conține prea multe apelări costisitoare ale funcțiilor parser.\n\nAr trebui să existe mai puțin de $2 {{PLURAL:$2|apelare|apelări}}, acolo există {{PLURAL:$1|$1 apelare|$1 apelări}}.",
"expensive-parserfunction-category": "Pagini cu prea multe apelări costisitoare de funcții parser",
"post-expand-template-inclusion-warning": "Atenție: Formatele incluse sunt prea mari.\nUnele formate nu vor fi incluse.",
- "post-expand-template-inclusion-category": "Paginile în care este inclus formatul are o dimensiune prea mare",
+ "post-expand-template-inclusion-category": "Pagini în care formatele incluse au o dimensiune prea mare",
"post-expand-template-argument-warning": "Atenție: Această pagină conține cel puțin un argument al unui format care are o mărime prea mare atunci când este expandat.\nAcsete argumente au fost omise.",
"post-expand-template-argument-category": "Pagini care conțin formate cu argumente omise",
"parser-template-loop-warning": "Buclă de formate detectată: [[$1]]",
"upload-dialog-disabled": "На этом вики-сайте отключена возможность загрузки файлов с помощью этого диалогового окна.",
"upload-dialog-title": "Загрузить файл",
"upload-dialog-button-cancel": "Отменить",
+ "upload-dialog-button-back": "Назад",
"upload-dialog-button-done": "Готово",
"upload-dialog-button-save": "Сохранить",
"upload-dialog-button-upload": "Загрузить",
"htmlform-cloner-create": "Добавить ещё",
"htmlform-cloner-delete": "Удалить",
"htmlform-cloner-required": "Требуется по крайней мере одно значение.",
+ "htmlform-date-placeholder": "ГГГГ-ММ-ДД",
+ "htmlform-time-placeholder": "ЧЧ:ММ:СС",
+ "htmlform-datetime-placeholder": "ГГГГ-ММ-ДД ЧЧ:ММ:СС",
+ "htmlform-date-invalid": "Указанное вами значение не похоже на дату. Попробуйте использовать формат ГГГГ-ММ-ДД.",
+ "htmlform-time-invalid": "Указанное вами значение не похоже на время. Попробуйте использовать формат ЧЧ-ММ-СС.",
+ "htmlform-datetime-invalid": "Указанное вами значение не похоже на дату и время. Попробуйте использовать формат ГГГГ-ММ-ДД ЧЧ-ММ-СС.",
+ "htmlform-date-toolow": "Указанное вами значение меньше самой ранней разрешённой даты — $1.",
+ "htmlform-date-toohigh": "Указанное вами значение больше самой поздней разрешённой даты — $1.",
+ "htmlform-time-toolow": "Указанное вами значение меньше самого раннего разрешённого времени — $1.",
+ "htmlform-time-toohigh": "Указанное вами значение больше самого позднего разрешённого времени — $1.",
+ "htmlform-datetime-toolow": "Указанное вами значение меньше самым ранних разрешённых даты и времени — $1.",
+ "htmlform-datetime-toohigh": "Указанное вами значение больше самых поздних разрешённых даты и времени — $1.",
"htmlform-title-badnamespace": "[[:$1]] находится не в пространстве имён «{{ns:$2}}».",
"htmlform-title-not-creatable": "«$1» — заголовок страницы, которая не может быть создана",
"htmlform-title-not-exists": "$1 не существует.",
"tog-enotifminoredits": "صفحن ۾ معمولي ترميمن جي صورت ۾ بہ مون کي برق ٽپال ڪريو",
"tog-enotifrevealaddr": "پڌراين ۾ منهنجو برق ٽپال پتو ظاهر ڪريو.",
"tog-shownumberswatching": "ڏسندڙ يوزرس جو انگ ڏيکاريو",
- "tog-oldsig": "موجوده دستخط",
+ "tog-oldsig": "توھان جو موجوده دستخط:",
"tog-uselivepreview": "سڌي سنئين پيش نگاھہ استعمال ڪريو",
"tog-watchlisthideown": "زير نظر فهرست مان منهنجون ڪيل ترميمون لڪايو",
"tog-watchlisthidebots": "ٽيٽ فهرست تان بوٽ جون ترميمون لڪايو",
"tog-diffonly": "تفاوت هيٺان صفحي جو مواد نہ ڏيکاريو",
"tog-showhiddencats": "لڪل زمرا ڏيکاريو",
"tog-useeditwarning": "مونکي خبردار ڪريو جڏهن مان هڪ ترميم وارو صفحو بغير تبديلين سانڍڻ جي ڇڏيان",
- "tog-prefershttps": "هميشه محفوظ ڪنيڪشن استعمال ڪريو جڏهن لاگ اِن ٿيل هجو",
+ "tog-prefershttps": "هميشہ محفوظ ڪنيڪشن استعمال ڪريو جڏهن داخل ٿيل هجو",
"underline-always": "هميشہ",
"underline-never": "ڪڏهن بہ نہ",
"editfont-style": "ايراضي جو فونٽ اسٽائيل سنواريو:",
"newwindow": "(نئين دريءَ ۾ کلندو)",
"cancel": "رد",
"moredotdotdot": "اڃا...",
- "morenotlisted": "فهرست مڪمل ڪانهي.",
+ "morenotlisted": "ھي فھرست نامڪمل بہ ٿي سگھي ٿي.",
"mypage": "منهنجو صفحو",
"mytalk": "ڳالهہ ٻول",
"anontalk": "ڳالھ ٻولھ",
"yourpasswordagain": "يُوزرنان ٻيهر ٽائيپ ڪريو:",
"createacct-yourpasswordagain": "ڳجھي لفظ جي خاطري ڪريو",
"createacct-yourpasswordagain-ph": "ٻيهر ڳجھو لفظ داخل ڪريو",
- "remembermypassword": "هن برائوزر تي منهنجي لاگ ان کي (وڌ ۾ وڌ $1 {{PLURAL:$1|ڏينهن}} لاءِ) ياد رکو",
"userlogin-remembermypassword": "مون کي لاگ اِن رکو",
"userlogin-signwithsecure": "محفوظ ڳانڍاپو استعمال ڪريو",
"cannotloginnow-title": "ھاڻي لاگ ان نٿو ڪري سگھجي",
"passwordreset-emailtitle": "{{SITENAME}} واري کاتي جا تفصيل",
"passwordreset-emailelement": "يُوزر نانءُ: \n$1\n\nعارضي ڳجھو لفظ:\n$2",
"changeemail": "برق ٽپال پتو مِٽايو يا بدلايو",
- "changeemail-passwordrequired": "توهانکي هن تبديلي جي تصديق ڪرڻ جي لاءِ پنهنجو ڳجھو لفظ داخل ڪرڻ جي ضرورت پوندي.",
"changeemail-oldemail": "هاڻوڪو برق ٽپال پتو:",
"changeemail-newemail": "نئون برق ٽپال پتو:",
"changeemail-none": "(ڪو بہ نہ)",
"content-json-empty-array": "خالي اري",
"duplicate-args-warning": "چتاءُ: [[:$2]] کي [[:$1]] ڪال ڪري رهيو آهي، جنهن منجھہ ’$3‘ نيمپيما لاءِ هڪ کان وڌيڪ قدر ڄاڻايل آهن. فقط آخري ڄاڻايل قدر استعمال ڪيو ويندو.",
"parser-template-loop-warning": "سانچو چڪر لڌو ويو: [[$1]]",
- "cantcreateaccounttitle": "کاتو کولي نہ ٿو سگھجي",
"cantcreateaccount-text": "هن آءِ پي پتي تان کاتي جي تخليق تي يُوز (<strong>$1</strong>) [[User:$3|$3]] روڪ لڳائي آهي.\n\n$3 جو ڄاڻايل سبب آهي <em>$2</em> آهي.",
"cantcreateaccount-range-text": "آءِپي پتن جي حد <strong>$1</strong> ۾ [[User:$3|$3]] کاتو کولڻ تي روڪ لڳائي وئي آهي،$4 جنهن ۾ توهان جو آءِپي پتو بہ (<strong>$4</strong>)، پڻ شامل آهي. \n\n$3 ان روڪَ جو سبب \"$2\" ڄاڻايو آهي.",
"viewpagelogs": "هن صفحي جا لاگس ڏسو",
"talk": "Diskusia",
"views": "Zobrazenia",
"toolbox": "Nástroje",
+ "tool-link-userrights": "Zmeniť používateľské skupiny {{GENDER:$1|tohoto použivateľa|tejto používateľky}}",
+ "tool-link-emailuser": "Poslať e-mail {{GENDER:$1|tomuto používateľovi|tejto používateľke}}",
"userpage": "Zobraziť stránku používateľa",
"projectpage": "Zobraziť projektovú stránku",
"imagepage": "Zobraziť stránku súboru",
"content-model-css": "CSS",
"content-json-empty-object": "Prázdny objekt",
"content-json-empty-array": "Prázdne pole",
+ "deprecated-self-close-category": "Stránky s neplatnými samouzavrenými HTML značkami",
+ "deprecated-self-close-category-desc": "Stránka obsahuje neplatné samouzatvárajúce HTML značky, napr. <code><b/></code> alebo <code><span/></code>. Ich správanie sa v záujme konzistencie so špecifikáciou HTML5 čoskoro zmení a použitie je preto vo wikitexte zastarané.",
"duplicate-args-warning": "<strong>Upozornenie:</strong> Stránka [[:$1]] volá [[:$2]] s viacerými hodnotami parametra „$3“. Použitá bude len posledná odovzdaná hodnota.",
"duplicate-args-category": "Stránky s duplicitnými parametrami pri volaniach šablón",
"duplicate-args-category-desc": "Stránka obsahuje volania šablóny používajúce duplicitné parametere, ako napríklad <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> alebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"search-redirect": "(presmerovanie $1)",
"search-section": "(sekcia $1)",
"search-category": "($1 kategória)",
+ "search-file-match": "(výskyt v obsahu súboru)",
"search-suggest": "Mali ste na mysli „$1“?",
"search-rewritten": "Zobrazujú sa výsledky pre $1. Vyhľadať namiesto toho $2.",
"search-interwiki-caption": "Sesterské projekty",
"prefs-files": "Súbory",
"prefs-custom-css": "Vlastný CSS",
"prefs-custom-js": "Vlastný JS",
- "prefs-common-css-js": "Spoločné CSS/JS pre všetky témy vzhľadu:",
+ "prefs-common-css-js": "Spoločné CSS/JS pre všetky témy:",
"prefs-reset-intro": "Túto stránku môžete použiť na vrátenie predvolených hodnôt vašich nastavení.\nTúto operáciu nemožno vrátiť.",
"prefs-emailconfirm-label": "Overenie e-emailu:",
"youremail": "Váš e-mail²",
"right-edit": "Upravovať stránky (ktoré nie sú diskusné stránky)",
"right-createpage": "Vytvárať stránky (ktoré nie sú diskusné stránky)",
"right-createtalk": "Vytvárať diskusné stránky",
- "right-createaccount": "Vytvárať nové používateľské účty",
+ "right-createaccount": "Vytvárať nové používateľské kontá",
+ "right-autocreateaccount": "Automatické prihlásenie s externým používateľským kontom",
"right-minoredit": "Označovať úpravy ako drobné",
"right-move": "Presúvať stránky",
"right-move-subpages": "Presunúť stránky aj s podstránkami",
"rcshowhidebots": "$1 botov",
"rcshowhidebots-show": "Zobraziť",
"rcshowhidebots-hide": "Skryť",
- "rcshowhideliu": "$1 registrovaných používateľov",
+ "rcshowhideliu": "$1 registrovaných",
"rcshowhideliu-show": "Zobraziť",
"rcshowhideliu-hide": "Skryť",
- "rcshowhideanons": "$1 anonymných používateľov",
+ "rcshowhideanons": "$1 anonymov",
"rcshowhideanons-show": "Zobraziť",
"rcshowhideanons-hide": "Skryť",
"rcshowhidepatr": "$1 úpravy strážených stránok",
"rcshowhidemine": "$1 moje úpravy",
"rcshowhidemine-show": "Zobraziť",
"rcshowhidemine-hide": "Skryť",
- "rcshowhidecategorization": "$1 kategorizáciu stránok",
+ "rcshowhidecategorization": "$1 kategorizáciu",
"rcshowhidecategorization-show": "Zobraziť",
"rcshowhidecategorization-hide": "Skryť",
"rclinks": "Zobraziť posledných $1 úprav za posledných $2 dní<br />$3",
"upload-copy-upload-invalid-domain": "Kopírovanie nahraných súborov nie je dostupné z tejto domény.",
"upload-dialog-title": "Nahrať súbor",
"upload-dialog-button-cancel": "Zrušiť",
+ "upload-dialog-button-back": "Späť",
"upload-dialog-button-done": "Hotovo",
"upload-dialog-button-save": "Uložiť",
"upload-dialog-button-upload": "Nahrať",
"watchnologin": "Nie ste prihlásený/á",
"addwatch": "Pridať do zoznamu sledovaných stránok",
"addedwatchtext": "Stránka „[[:$1]]“ a jej diskusná stránka boli pridané do vášho zoznamu [[Special:Watchlist|sledovaných stránok]].",
+ "addedwatchtext-talk": "„[[:$1]]“ a súvisiaca stránka boli pridané do vášho zoznamu [[Special:Watchlist|sledovaných stránok]].",
"addedwatchtext-short": "Stránka „$1“ bola pridaná do vášho zoznamu sledovaných.",
"removewatch": "Odstrániť zo zoznamu sledovaných",
"removedwatchtext": "Stránka „[[:$1]]“ a jej diskusná stránka boli odstránené z vášho [[Special:Watchlist|zoznamu sledovaných stránok]].",
+ "removedwatchtext-talk": "„[[:$1]]“ a súvisiaca stránka boli odstránené z vášho [[Special:Watchlist|zoznamu sledovaných stránok]].",
"removedwatchtext-short": "Stránka „$1“ bola odstránená z vášho zoznamu sledovaných.",
"watch": "Sledovať",
"watchthispage": "Sledovať túto stránku",
"revertpage": "Posledné úpravy používateľa [[Special:Contributions/$2|$2]] ([[User talk:$2|diskusia]]) vrátené; bola obnovená posledná úprava $1",
"revertpage-nouser": "Vrátené úpravy od skrytého používateľa na poslednú revíziu od {{GENDER:$1|[[User:$1|$1]]}}",
"rollback-success": "Úpravy $1 vrátené; obnovená posledná verzia od $2.",
+ "rollback-success-notify": "Úpravy používateľa $1 boli vrátené;\nobnovená posledná revízia od používateľa $2. [$3 Zobraziť zmeny]",
"sessionfailure-title": "Chyba relácie",
"sessionfailure": "Zdá sa, že je problém s vašou prihlasovacou reláciou;\ntáto akcia bola zrušená ako prevencia proti zneužitiu relácie (session).\nProsím, stlačte \"naspäť\", obnovte stránku, z ktorej ste sa sem dostali, a skúste to znova.",
"changecontentmodel": "Zmeniť model obsahu stránky",
"tags-active-yes": "Áno",
"tags-active-no": "Nie",
"tags-source-extension": "Definované softvérom",
+ "tags-source-manual": "Pridané manuálne používateľmi a botmi",
"tags-source-none": "Už sa nepoužíva",
"tags-edit": "upraviť",
"tags-delete": "zmazať",
"feedback-bugornote": "Ak ste pripravený podrobne popísať technický problém, prosím pošlite [$1 hlásenie o chybe]. \nV opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš komentár sa pridá na stránku „[$3 $2]“ spolu s vašim používateľským meno a prehliadačom, ktorý používate.",
"feedback-cancel": "Zrušiť",
"feedback-close": "Hotovo",
+ "feedback-external-bug-report-button": "Založiť technickú úlohu",
"feedback-dialog-title": "Odoslať názor",
+ "feedback-dialog-intro": "Pomocou formulára nižšie môžete odoslať svoj názor. Váš komentár sa spolu s vašim použivateľským menom pridá na stránku „$1“.",
"feedback-error-title": "Chyba",
"feedback-error1": "Chyba: Nerozpoznaný výsledok z API",
"feedback-error2": "Chyba: Úprava sa nepodarila",
"feedback-message": "Správa:",
"feedback-subject": "Predmet:",
"feedback-submit": "Odoslať",
+ "feedback-terms": "Beriem na vedomie, že informácie o mojom prehliadači zahŕňajú jeho presnú verziu spolu s verziou operačného systému a budú zverejnené pri mojom komentári.",
+ "feedback-termsofuse": "Súhlasím s tým, že budem poskytovať spätnú väzbu v súlade s Podmienkami použitia.",
"feedback-thanks": "Ďakujeme. Váš komentár bol odoslaný na stránku „[$2 $1]“.",
"feedback-thanks-title": "Ďakujeme",
"feedback-useragent": "Prehliadač:",
"searchsuggest-search": "Hľadať",
"searchsuggest-containing": "obsahuje...",
+ "api-error-autoblocked": "Vaše IP adresa bola automaticky zablokovaná, pretože ju používal zablokovaný používateľ.",
"api-error-badaccess-groups": "Nemáte oprávnenie nahrávať súbory na tejto wiki.",
"api-error-badtoken": "Vnútorná chyba: Zlý token.",
+ "api-error-blocked": "Možnosť editovať vám bola zablokovaná.",
"api-error-copyuploaddisabled": "Nahrávanie z URL je na tomto serveri zakázané.",
"api-error-duplicate": "{{PLURAL:$1|ďalší súbor|ďalšie súbory}} s rovnakým obsahom už na tejto wiki existujú",
"api-error-duplicate-archive": "{{PLURAL:$1|ďalší súbor|ďalšie súbory}} s rovnakým obsahom už na tejto wiki existoval, ale {{PLURAL:$1|bol zmazaný|boli zmazané}}.",
"pagelang-language": "Jazyk",
"pagelang-use-default": "Použiť predvolený jazyk",
"pagelang-select-lang": "Vybrať jazyk",
+ "pagelang-submit": "Odoslať",
"right-pagelang": "Zmeniť jazyk stránky",
"action-pagelang": "meniť jazyk stránky",
"default-skin-not-found": "Uups! Základná tapeta pre Vašu wiki, popísanú v <code dir=\"ltr\">$wgDefaultSkin</code> ako <code>$1</code>, nie je dostupná. \n\nVaša inštalácia pravdepodobne obsahuje nasledovné tapety. Pozri [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pre viac informácii o ich aktivácii a zvoľte základnú.\n\n$2\n\n; Ak ste MediaWiki len teraz nainštalovali\n; Zrejme ste to nainštalovali z gitu alebo priamo zo zdrojového kódu inou metódou. Je to očakávané. Skúste nainštalovať nejaké tapety z [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory];\n:*Stiahnutím [https://www.mediawiki.org/wiki/Download tarball installer], ktorý ponúka viacero tapiet a rozšírení. Skopírovať a nalepiť možno priamo z <code>skins/</code>.\n:*Klonovanie jednej zo <code>mediawiki/skins/*</code> schránok cez git do <code dir=\"ltr\">skins/</code> priečinku Vašej Media Wiki inštalácie.\n: S existujúcou git schránkou, ak ste vývojár MediaWiki, by nemal byť konflikt.\n\n: Ak ste upgradeovali MediaWiki\n: MediaWiki 1.24 a novšie už tapety automaticky neaktivujú. (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Nasledovný kód môžete skopírovať do <code>LocalSettings.php</code> pre aktivovanie všetkých dostupných tapiet.\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ak ste upravili <code>LocalSettings.php</code>:\n: Skontrolujte chyby.",
"mediastatistics-header-text": "Text",
"mediastatistics-header-executable": "Spustiteľné súbory",
"mediastatistics-header-archive": "Komprimované formáty",
+ "mediastatistics-header-total": "Všetky súbory",
"json-warn-trailing-comma": "Z JSONu {{PLURAL:$1|bola odstránená 1 koncová čiarka|boli odstránené $1 koncové čiarky|bolo odstránených $1 koncových čiarok}}",
"json-error-unknown": "Došlo k problému s JSONom. Chyba: $1",
"json-error-depth": "Maximálna hĺbka zásobníka bola prekročená",
"special-characters-group-ipa": "IPA",
"special-characters-group-symbols": "Symboly",
"special-characters-group-greek": "Grécke",
+ "special-characters-group-greekextended": "Grécke rozšírené",
"special-characters-group-cyrillic": "Azbuka",
"special-characters-group-arabic": "Arabské",
"special-characters-group-arabicextended": "Arabské rozšírené",
"mw-widgets-dateinput-placeholder-month": "RRRR-MM",
"mw-widgets-titleinput-description-new-page": "stránka zatiaľ neexistuje",
"mw-widgets-titleinput-description-redirect": "presmerovanie na $1",
- "randomrootpage": "Náhodná koreňová stránka"
+ "randomrootpage": "Náhodná koreňová stránka",
+ "changecredentials": "Zmena prihlasovacích údajov",
+ "removecredentials": "Odstránenie prihlasovacích údajov"
}
"upload-dialog-disabled": "Nalaganj datotek z uporabo tega obrazca je na wikiju onemogočeno.",
"upload-dialog-title": "Naloži datoteko",
"upload-dialog-button-cancel": "Prekliči",
+ "upload-dialog-button-back": "Nazaj",
"upload-dialog-button-done": "Končano",
"upload-dialog-button-save": "Shrani",
"upload-dialog-button-upload": "Naloži",
"htmlform-cloner-create": "Dodaj več",
"htmlform-cloner-delete": "Odstrani",
"htmlform-cloner-required": "Zahtevana je vsaj ena vrednost.",
+ "htmlform-date-placeholder": "LLLL-MM-DD",
+ "htmlform-time-placeholder": "UU:MM:SS",
+ "htmlform-datetime-placeholder": "LLLL-MM-DD UU:MM:SS",
+ "htmlform-date-invalid": "Navedena vrednost ni prepoznan datum. Poskusite uporabiti obliko LLLL-MM-DD.",
+ "htmlform-time-invalid": "Navedena vrednost ni prepoznan čas. Poskusite uporabiti obliko UU:MM:SS.",
+ "htmlform-datetime-invalid": "Navedena vrednost ni prepoznan datum in čas. Poskusite uporabiti obliko LLLL-MM-DD UU:MM:SS.",
+ "htmlform-date-toolow": "Navedena vrednost je časovno pred najzgodnejšim dovoljenim datumom $1.",
+ "htmlform-date-toohigh": "Navedena vrednost je časovno po najpoznejšim dovoljenim datumom $1.",
+ "htmlform-time-toolow": "Navedena vrednost je časovno pred najzgodnejšim dovoljenim časom $1.",
+ "htmlform-time-toohigh": "Navedena vrednost je časovno po najpoznejšim dovoljenim časom $1.",
+ "htmlform-datetime-toolow": "Navedena vrednost je časovno pred najzgodnejšim dovoljenim datumom in časom $1.",
+ "htmlform-datetime-toohigh": "Navedena vrednost je časovno po najpoznejšim dovoljenim datumom in časom $1.",
"htmlform-title-badnamespace": "[[:$1]] ni v imenskem prostoru »{{ns:$2}}«.",
"htmlform-title-not-creatable": "»$1« je naslov strani, ki ga ni mogoče ustvariti",
"htmlform-title-not-exists": "$1 ne obstaja.",
"viewtalkpage": "تبادلۂ خیال دیکھیں",
"otherlanguages": "دیگر زبانوں میں",
"redirectedfrom": "($1 سے رجوع مکرر)",
- "redirectpagesub": "لوٹایا گیا صفحہ",
+ "redirectpagesub": "رجوع مکرر",
"redirectto": "رجوعِ مکرر از:",
"lastmodifiedat": "اس صفحہ میں آخری بار مورخہ $1ء کو $2 بجے ترمیم کی گئی۔",
"viewcount": "اِس صفحہ تک {{PLURAL:$1|ایکبار|$1 مرتبہ}} رسائی کی گئی",
"summary": "خلاصہ:",
"subject": "عنوان:",
"minoredit": "معمولی ترمیم",
- "watchthis": "اس صفحہ کو زیر نظر کیحیے",
+ "watchthis": "اس صفحہ کو زیر نظر کریں",
"savearticle": "محفوظ",
"savechanges": "تبدیلیاں محفوظ کریں",
"publishpage": "شائع کریں",
"upload-dialog-disabled": "اس ویکی پر اس ڈائیلاگ سے فائل اپ لوڈز غیر فعال ہیںَ",
"upload-dialog-title": "فائل اپلوڈ کریں",
"upload-dialog-button-cancel": "منسوخ",
+ "upload-dialog-button-back": "پیچھے جائیں",
"upload-dialog-button-done": "مکمل",
"upload-dialog-button-save": "محفوظ",
"upload-dialog-button-upload": "اپلوڈ",
"sp-contributions-hideminor": "معمولی ترامیم چھپائیں",
"sp-contributions-submit": "تلاش",
"whatlinkshere": "مربوط صفحات",
- "whatlinkshere-title": "\"$1\" سے مربوط صفحات",
+ "whatlinkshere-title": "«$1» سے مربوط صفحات",
"whatlinkshere-page": "صفحہ:",
"linkshere": "<strong>[[:$1]]</strong> سے درج ذیل صفحات مربوط ہیں:",
"nolinkshere": "<strong>[[:$1]]</strong> سے کوئی صفحہ مربوط نہیں ہے۔",
"whatlinkshere-next": "{{PLURAL:$1|اگلا|اگلے $1}}",
"whatlinkshere-links": "→ روابط",
"whatlinkshere-hideredirs": "رجوع مکررات $1",
- "whatlinkshere-hidetrans": "$1 استعمالات",
+ "whatlinkshere-hidetrans": "استعمالات $1",
"whatlinkshere-hidelinks": "روابط $1",
"whatlinkshere-hideimages": "تصویر کے روابط $1",
"whatlinkshere-filters": "مقطارات",
"autosumm-blank": "تمام مندرجات حذف",
"autosumm-replace": "\"$1\" سے مواد کی تبدیلی",
"autoredircomment": "[[$1]] سے رجوع مکرر",
- "autosumm-new": "نے «$1» مواد پر مشتمل نیا صفحہ بنایا",
+ "autosumm-new": "«$1» مواد پر مشتمل نیا صفحہ بنایا",
"autosumm-newblank": "خالی صفحہ بنایا",
"size-bytes": "$1 بائٹ",
"size-kilobytes": "$1 کلوبائٹ",
"htmlform-cloner-create": "مزید اضافہ کریں",
"htmlform-cloner-delete": "حذف",
"htmlform-cloner-required": "کم ازکم ایک قدر درکار ہے۔",
+ "htmlform-date-placeholder": "YYYY-MM-DD",
+ "htmlform-time-placeholder": "HH:MM:SS",
+ "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
+ "htmlform-date-invalid": "آپ کی درج کردہ قدر تسلیم شدہ تاریخ نہیں ہے۔ براہ کرم YYYY-MM-DD فارمیٹ استعمال کرنے کی کوشش کریں۔",
+ "htmlform-time-invalid": "آپ کی درج کردہ قدر تسلیم شدہ وقت نہیں ہے۔ براہ کرم HH:MM:SS فارمیٹ استعمال کرنے کی کوشش کریں۔",
+ "htmlform-datetime-invalid": "آپ کی درج کردہ قدر تسلیم شدہ تاریخ اور وقت نہیں ہے۔ براہ کرم YYYY-MM-DD HH:MM:SS فارمیٹ استعمال کرنے کی کوشش کریں۔",
"htmlform-title-badnamespace": "[[:$1]] صفحہ \"{{ns:$2}}\" نام فضا میں موجود نہیں۔",
"htmlform-title-not-creatable": "«$1» عنوان قابل تخلیق نہیں",
"htmlform-title-not-exists": "$1 موجود نہیں ہے۔",
@colorGray2: #222;
@colorGray3: #333;
@colorGray4: #444;
-@colorGray5: #555;
+@colorGray5: #54595d;
@colorGray6: #666;
@colorGray7: #72777d;
@colorGray8: #888;
@colorGray9: #999;
-@colorGray10: #aaa;
+@colorGray10: #a2a9b1;
@colorGray11: #bbb;
-@colorGray12: #ccc;
+@colorGray12: #c8ccd1;
@colorGray13: #ddd;
-@colorGray14: #eee;
+@colorGray14: #eaecf0;
@colorGray15: #f8f9fa; // lightest
// Semantic background colors
}
// The RepoGroup cache is invalidated by the creation of file redirects
- if ( $title->getNamespace() === NS_IMAGE ) {
+ if ( $title->inNamespace( NS_FILE ) ) {
RepoGroup::singleton()->clearCache( $title );
}
}
->getMock();
if ( $expectedConnectionType !== null ) {
$mock->expects( $this->any() )
- ->method( 'getConnection' )
+ ->method( 'getConnectionRef' )
->with( $expectedConnectionType )
->will( $this->returnValue( $mockDb ) );
} else {
$mock->expects( $this->any() )
- ->method( 'getConnection' )
+ ->method( 'getConnectionRef' )
->will( $this->returnValue( $mockDb ) );
}
$mock->expects( $this->any() )
new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
] );
+ ObjectCache::getMainWANInstance()->clearProcessCache();
$result = $this->doListWatchlistRawRequest( [
'wrowner' => $otherUser->getName(),
'wrtoken' => '1234567890',
}
public function testTestUserCanAuthenticate() {
+ $user = self::getMutableTestUser()->getUser();
+
$dbw = wfGetDB( DB_MASTER );
$passwordFactory = new \PasswordFactory();
'user_newpassword' => \PasswordFactory::newInvalidPassword()->toString(),
'user_newpass_time' => null,
],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
- $this->assertFalse( $provider->testUserCanAuthenticate( 'UTSysop' ) );
+ $this->assertFalse( $provider->testUserCanAuthenticate( $user->getName() ) );
$dbw->update(
'user',
'user_newpassword' => $pwhash,
'user_newpass_time' => null,
],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
- $this->assertTrue( $provider->testUserCanAuthenticate( 'UTSysop' ) );
- $this->assertTrue( $provider->testUserCanAuthenticate( 'uTSysop' ) );
+ $this->assertTrue( $provider->testUserCanAuthenticate( $user->getName() ) );
+ $this->assertTrue( $provider->testUserCanAuthenticate( lcfirst( $user->getName() ) ) );
$dbw->update(
'user',
'user_newpassword' => $pwhash,
'user_newpass_time' => $dbw->timestamp( time() - 10 ),
],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
$providerPriv->newPasswordExpiry = 100;
- $this->assertTrue( $provider->testUserCanAuthenticate( 'UTSysop' ) );
+ $this->assertTrue( $provider->testUserCanAuthenticate( $user->getName() ) );
$providerPriv->newPasswordExpiry = 1;
- $this->assertFalse( $provider->testUserCanAuthenticate( 'UTSysop' ) );
+ $this->assertFalse( $provider->testUserCanAuthenticate( $user->getName() ) );
$dbw->update(
'user',
'user_newpassword' => \PasswordFactory::newInvalidPassword()->toString(),
'user_newpass_time' => null,
],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
}
}
public function testAuthentication() {
+ $user = self::getMutableTestUser()->getUser();
+
$password = 'TemporaryPassword';
$hash = ':A:' . md5( $password );
$dbw = wfGetDB( DB_MASTER );
$dbw->update(
'user',
[ 'user_newpassword' => $hash, 'user_newpass_time' => $dbw->timestamp( time() - 10 ) ],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
$req = new PasswordAuthenticationRequest();
);
// Validation failure
- $req->username = 'UTSysop';
+ $req->username = $user->getName();
$req->password = $password;
$this->validity = \Status::newFatal( 'arbitrary-failure' );
$ret = $provider->beginPrimaryAuthentication( $reqs );
$this->manager->removeAuthenticationSessionData( null );
$this->validity = \Status::newGood();
$this->assertEquals(
- AuthenticationResponse::newPass( 'UTSysop' ),
+ AuthenticationResponse::newPass( $user->getName() ),
$provider->beginPrimaryAuthentication( $reqs )
);
$this->assertNotNull( $this->manager->getAuthenticationSessionData( 'reset-pass' ) );
$this->manager->removeAuthenticationSessionData( null );
$this->validity = \Status::newGood();
- $req->username = 'uTSysop';
+ $req->username = lcfirst( $user->getName() );
$this->assertEquals(
- AuthenticationResponse::newPass( 'UTSysop' ),
+ AuthenticationResponse::newPass( $user->getName() ),
$provider->beginPrimaryAuthentication( $reqs )
);
$this->assertNotNull( $this->manager->getAuthenticationSessionData( 'reset-pass' ) );
- $req->username = 'UTSysop';
+ $req->username = $user->getName();
// Expired password
$providerPriv->newPasswordExpiry = 1;
$oldpass = 'OldTempPassword';
$newpass = 'NewTempPassword';
- $hash = ':A:' . md5( $oldpass );
- $dbw = wfGetDB( DB_MASTER );
- $dbw->update(
- 'user',
- [ 'user_newpassword' => $hash, 'user_newpass_time' => $dbw->timestamp( time() + 10 ) ],
- [ 'user_name' => 'UTSysop' ]
- );
-
$dbw = wfGetDB( DB_MASTER );
$oldHash = $dbw->selectField( 'user', 'user_newpassword', [ 'user_name' => $cuser ] );
$cb = new \ScopedCallback( function () use ( $dbw, $cuser, $oldHash ) {
$dbw->update( 'user', [ 'user_newpassword' => $oldHash ], [ 'user_name' => $cuser ] );
} );
+ $hash = ':A:' . md5( $oldpass );
+ $dbw->update(
+ 'user',
+ [ 'user_newpassword' => $hash, 'user_newpass_time' => $dbw->timestamp( time() + 10 ) ],
+ [ 'user_name' => $cuser ]
+ );
+
$provider = $this->getProvider();
// Sanity check
}
public function testProviderChangeAuthenticationDataEmail() {
+ $user = self::getMutableTestUser()->getUser();
+
$dbw = wfGetDB( DB_MASTER );
$dbw->update(
'user',
[ 'user_newpass_time' => $dbw->timestamp( time() - 5 * 3600 ) ],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
- $user = \User::newFromName( 'UTSysop' );
- $reset = new \ScopedCallback( function ( $email ) use ( $user ) {
- $user->setEmail( $email );
- $user->saveSettings();
- }, [ $user->getEmail() ] );
-
- $user->setEmail( 'test@localhost.localdomain' );
- $user->saveSettings();
-
$req = TemporaryPasswordAuthenticationRequest::newRandom();
$req->username = $user->getName();
$req->mailpassword = true;
$dbw->update(
'user',
[ 'user_newpass_time' => $dbw->timestamp( time() + 5 * 3600 ) ],
- [ 'user_name' => 'UTSysop' ]
+ [ 'user_id' => $user->getId() ]
);
$provider = $this->getProvider( [ 'passwordReminderResendTime' => 0 ] );
$status = $provider->providerAllowsAuthenticationDataChange( $req, true );
$status = $provider->providerAllowsAuthenticationDataChange( $req, true );
$this->assertEquals( \StatusValue::newGood(), $status );
- $req->caller = 'UTSysop';
+ $req->caller = $user->getName();
$status = $provider->providerAllowsAuthenticationDataChange( $req, true );
$this->assertEquals( \StatusValue::newGood(), $status );
$mailed = false;
$resetMailer = $this->hookMailer( function ( $headers, $to, $from, $subject, $body )
- use ( &$mailed, $req )
+ use ( &$mailed, $req, $user )
{
$mailed = true;
- $this->assertSame( 'test@localhost.localdomain', $to[0]->address );
+ $this->assertSame( $user->getEmail(), $to[0]->address );
$this->assertContains( $req->password, $body );
return false;
} );
$this->assertEquals( $expect, $provider->beginPrimaryAccountCreation( $user, $user, $reqs ) );
$this->assertNull( $this->manager->getAuthenticationSessionData( 'no-email' ) );
- // We have to cheat a bit to avoid having to add a new user to
- // the database to test the actual setting of the password works right
- $user = \User::newFromName( 'UTSysop' );
+ $user = self::getMutableTestUser()->getUser();
$req->username = $authreq->username = $user->getName();
$req->password = $authreq->password = 'NewPassword';
- $expect = AuthenticationResponse::newPass( 'UTSysop' );
+ $expect = AuthenticationResponse::newPass( $user->getName() );
$expect->createRequest = $req;
$res2 = $provider->beginPrimaryAccountCreation( $user, $user, $reqs );
public function testAccountCreationEmail() {
$creator = \User::newFromName( 'Foo' );
- $user = \User::newFromName( 'UTSysop' );
- $reset = new \ScopedCallback( function ( $email ) use ( $user ) {
- $user->setEmail( $email );
- $user->saveSettings();
- }, [ $user->getEmail() ] );
+ $user = self::getMutableTestUser()->getUser();
$user->setEmail( null );
$req = TemporaryPasswordAuthenticationRequest::newRandom();
return false;
} );
- $expect = AuthenticationResponse::newPass( 'UTSysop' );
+ $expect = AuthenticationResponse::newPass( $user->getName() );
$expect->createRequest = clone( $req );
- $expect->createRequest->username = 'UTSysop';
+ $expect->createRequest->username = $user->getName();
$res = $provider->beginPrimaryAccountCreation( $user, $creator, [ $req ] );
$this->assertEquals( $expect, $res );
$this->assertTrue( $this->manager->getAuthenticationSessionData( 'no-email' ) );