setting in the relevant section of $wgLBFactoryConf.
* User::newSystemUser() may be used to simplify the creation of passwordless
"system" users for logged actions from scripts and extensions.
+* Extensions can now return detailed error information via the API when
+ preventing user actions using 'getUserPermissionsErrors' and similar hooks
+ by using ApiMessage instances instead of strings for the $result value.
==== External libraries ====
* Removed "loaderScripts" option from ResourceLoaderFileModule class.
* Removed ORM-like wrapper added in 1.20.
* LinkCache::getGoodLinks and LinkCache::getBadLinks were removed (deprecated in 1.26).
+* WikiPage::doQuickEdit() was removed (deprecated since 1.21).
+* Removed SiteObject and SiteArray classes (deprecated in 1.21).
== Compatibility ==
'ShowJobs' => __DIR__ . '/maintenance/showJobs.php',
'ShowSiteStats' => __DIR__ . '/maintenance/showSiteStats.php',
'Site' => __DIR__ . '/includes/site/Site.php',
- 'SiteArray' => __DIR__ . '/includes/site/SiteList.php',
'SiteConfiguration' => __DIR__ . '/includes/SiteConfiguration.php',
'SiteExporter' => __DIR__ . '/includes/site/SiteExporter.php',
'SiteImporter' => __DIR__ . '/includes/site/SiteImporter.php',
'SiteList' => __DIR__ . '/includes/site/SiteList.php',
'SiteLookup' => __DIR__ . '/includes/site/SiteLookup.php',
- 'SiteObject' => __DIR__ . '/includes/site/Site.php',
'SiteSQLStore' => __DIR__ . '/includes/site/SiteSQLStore.php',
'SiteStats' => __DIR__ . '/includes/SiteStats.php',
'SiteStatsInit' => __DIR__ . '/includes/SiteStats.php',
'TidyUpBug37714' => __DIR__ . '/maintenance/tidyUpBug37714.php',
'TiffHandler' => __DIR__ . '/includes/media/Tiff.php',
'TimestampException' => __DIR__ . '/includes/exception/TimestampException.php',
+ 'Timing' => __DIR__ . '/includes/libs/Timing.php',
'Title' => __DIR__ . '/includes/Title.php',
'TitleArray' => __DIR__ . '/includes/TitleArray.php',
'TitleArrayFromResult' => __DIR__ . '/includes/TitleArrayFromResult.php',
"ext-iconv": "*",
"liuggio/statsd-php-client": "1.0.16",
"mediawiki/at-ease": "1.1.0",
- "oojs/oojs-ui": "0.13.0",
+ "oojs/oojs-ui": "0.13.1",
"oyejorge/less.php": "1.7.0.9",
"php": ">=5.3.3",
"psr/log": "1.0.0",
page is saved. A wiki page is deleted. Often there are two events
associated with a single action: one before the code is run to make the
event happen, and one after. Each event has a name, preferably in
- CamelCase. For example, 'UserLogin', 'ArticleSave', 'ArticleSaveComplete',
- 'ArticleDelete'.
+ CamelCase. For example, 'UserLogin', 'PageContentSave',
+ 'PageContentSaveComplete', 'ArticleDelete'.
hook
A clump of code and data that should be run when an event happens. This can
The extra data is useful if we want to use the same function or object for
different purposes. For example:
- $wgHooks['ArticleSaveComplete'][] = array( 'ircNotify', 'TimStarling' );
- $wgHooks['ArticleSaveComplete'][] = array( 'ircNotify', 'brion' );
+ $wgHooks['PageContentSaveComplete'][] = array( 'ircNotify', 'TimStarling' );
+ $wgHooks['PageContentSaveComplete'][] = array( 'ircNotify', 'brion' );
This code would result in ircNotify being run twice when an article is saved:
once for 'TimStarling', and once for 'brion'.
'getUserPermissionsErrors': Add a permissions error when permissions errors are
checked for. Use instead of userCan for most cases. Return false if the user
can't do it, and populate $result with the reason in the form of
-array( messagename, param1, param2, ... ). For consistency, error messages
+array( messagename, param1, param2, ... ) or a MessageSpecifier instance (you
+might want to use ApiMessage to provide machine-readable details for the API).
+For consistency, error messages
should be plain text with no special coloring, bolding, etc. to show that
they're errors; presenting them properly to the user as errors is done by the
caller.
called only if expensive checks are enabled. Add a permissions error when
permissions errors are checked for. Return false if the user can't do it, and
populate $result with the reason in the form of array( messagename, param1,
-param2, ... ). For consistency, error messages should be plain text with no
+param2, ... ) or a MessageSpecifier instance (you might want to use ApiMessage
+to provide machine-readable details for the API). For consistency, error
+messages should be plain text with no
special coloring, bolding, etc. to show that they're errors; presenting them
properly to the user as errors is done by the caller.
$title: Title object being checked against
define( 'EDIT_MINOR', 4 );
define( 'EDIT_SUPPRESS_RC', 8 );
define( 'EDIT_FORCE_BOT', 16 );
-define( 'EDIT_DEFER_UPDATES', 32 );
+define( 'EDIT_DEFER_UPDATES', 32 ); // Unused since 1.27
define( 'EDIT_AUTOSUMMARY', 64 );
/**@}*/
$out = array();
foreach ( $args as $errors ) {
foreach ( $errors as $params ) {
+ $originalParams = $params;
+ if ( $params[0] instanceof MessageSpecifier ) {
+ $msg = $params[0];
+ $params = array_merge( array( $msg->getKey() ), $msg->getParams() );
+ }
# @todo FIXME: Sometimes get nested arrays for $params,
# which leads to E_NOTICEs
$spec = implode( "\t", $params );
- $out[$spec] = $params;
+ $out[$spec] = $originalParams;
}
}
return array_values( $out );
if ( $page == '' ) {
return Status::newFatal( 'import-noarticle' );
}
- $link = Title::newFromText( "$interwiki:Special:Export/$page" );
- if ( is_null( $link ) || !$link->isExternal() ) {
+
+ # Look up the first interwiki prefix, and let the foreign site handle
+ # subsequent interwiki prefixes
+ $firstIwPrefix = strtok( $interwiki, ':' );
+ $firstIw = Interwiki::fetch( $firstIwPrefix );
+ if ( !$firstIw ) {
return Status::newFatal( 'importbadinterwiki' );
- } else {
- $params = array();
- if ( $history ) {
- $params['history'] = 1;
- }
- if ( $templates ) {
- $params['templates'] = 1;
- }
- if ( $pageLinkDepth ) {
- $params['pagelink-depth'] = $pageLinkDepth;
- }
- $url = $link->getFullURL( $params );
- # For interwikis, use POST to avoid redirects.
- return ImportStreamSource::newFromURL( $url, "POST" );
}
+
+ $additionalIwPrefixes = strtok( '' );
+ if ( $additionalIwPrefixes ) {
+ $additionalIwPrefixes .= ':';
+ }
+ # Have to do a DB-key replacement ourselves; otherwise spaces get
+ # URL-encoded to +, which is wrong in this case. Similar to logic in
+ # Title::getLocalURL
+ $link = $firstIw->getURL( strtr( "${additionalIwPrefixes}Special:Export/$page",
+ ' ', '_' ) );
+
+ $params = array();
+ if ( $history ) {
+ $params['history'] = 1;
+ }
+ if ( $templates ) {
+ $params['templates'] = 1;
+ }
+ if ( $pageLinkDepth ) {
+ $params['pagelink-depth'] = $pageLinkDepth;
+ }
+
+ $url = wfAppendQuery( $link, $params );
+ # For interwikis, use POST to avoid redirects.
+ return ImportStreamSource::newFromURL( $url, "POST" );
}
}
* @since 1.26
*/
public function doPostOutputShutdown( $mode = 'normal' ) {
+ $timing = $this->context->getTiming();
+ $timing->mark( 'requestShutdown' );
+
// Show visible profiling data if enabled (which cannot be post-send)
Profiler::instance()->logDataPageOutputOnly();
* - secure : does cheap and expensive checks, using the master as needed
* @param array $ignoreErrors Array of Strings Set this to a list of message keys
* whose corresponding errors may be ignored.
- * @return array Array of arguments to wfMessage to explain permissions problems.
+ * @return array Array of arrays of the arguments to wfMessage to explain permissions problems.
*/
public function getUserPermissionsErrors(
$action, $user, $rigor = 'secure', $ignoreErrors = array()
// Remove the errors being ignored.
foreach ( $errors as $index => $error ) {
- $error_key = is_array( $error ) ? $error[0] : $error;
+ $errKey = is_array( $error ) ? $error[0] : $error;
- if ( in_array( $error_key, $ignoreErrors ) ) {
+ if ( in_array( $errKey, $ignoreErrors ) ) {
+ unset( $errors[$index] );
+ }
+ if ( $errKey instanceof MessageSpecifier && in_array( $errKey->getKey(), $ignoreErrors ) ) {
unset( $errors[$index] );
}
}
} elseif ( $result !== '' && is_string( $result ) ) {
// A string representing a message-id
$errors[] = array( $result );
+ } elseif ( $result instanceof MessageSpecifier ) {
+ // A message specifier representing an error
+ $errors[] = array( $result );
} elseif ( $result === false ) {
// a generic "We don't want them to do that"
$errors[] = array( 'badaccess-group0' );
$options['httpOnly'] );
}
}
+
+ /**
+ * Unset a browser cookie.
+ * This sets the cookie with an empty value and an expiry set to a time in the past,
+ * which will cause the browser to remove any cookie with the given name, domain and
+ * path from its cookie store. Options other than these (and prefix) have no effect.
+ * @param string $name Cookie name
+ * @param array $options Cookie options, see {@link setCookie()}
+ * @since 1.27
+ */
+ public function clearCookie( $name, $options = array() ) {
+ $this->setCookie( $name, '', time() - 31536000 /* 1 year */, $options );
+ }
}
/**
*
* @since 1.23
* @param Status $status
+ * @param array|null &$extraData Set if extra data from IApiMessage is available (since 1.27)
* @return array Array of code and error string
* @throws MWException
*/
- public function getErrorFromStatus( $status ) {
+ public function getErrorFromStatus( $status, &$extraData = null ) {
if ( $status->isGood() ) {
throw new MWException( 'Successful status passed to ApiBase::dieStatus' );
}
// error messages.
if ( $errors[0] instanceof Message ) {
$msg = $errors[0];
- $code = $msg->getKey();
+ if ( $msg instanceof IApiMessage ) {
+ $extraData = $msg->getApiData();
+ $code = $msg->getApiCode();
+ } else {
+ $code = $msg->getKey();
+ }
} else {
$code = array_shift( $errors[0] );
$msg = wfMessage( $code, $errors[0] );
* @throws UsageException always
*/
public function dieStatus( $status ) {
- list( $code, $msg ) = $this->getErrorFromStatus( $status );
- $this->dieUsage( $msg, $code );
+ $extraData = null;
+ list( $code, $msg ) = $this->getErrorFromStatus( $status, $extraData );
+ $this->dieUsage( $msg, $code, 0, $extraData );
}
// @codingStandardsIgnoreStart Allow long lines. Cannot split these.
$error = array( $error );
}
$parsed = $this->parseMsg( $error );
- $this->dieUsage( $parsed['info'], $parsed['code'] );
+ $extraData = isset( $parsed['data'] ) ? $parsed['data'] : null;
+ $this->dieUsage( $parsed['info'], $parsed['code'], 0, $extraData );
}
/**
$key = array_shift( $error );
}
+ if ( $key instanceof IApiMessage ) {
+ return array(
+ 'code' => $key->getApiCode(),
+ 'info' => $key->inLanguage( 'en' )->useDatabase( false )->text(),
+ 'data' => $key->getApiData()
+ );
+ }
+
if ( isset( self::$messageMap[$key] ) ) {
return array(
'code' => wfMsgReplaceArgs( self::$messageMap[$key]['code'], $error ),
return array(
'action=help'
=> 'apihelp-help-example-main',
+ 'action=help&modules=query&submodules=1'
+ => 'apihelp-help-example-submodules',
'action=help&recursivesubmodules=1'
=> 'apihelp-help-example-recursive',
'action=help&modules=help'
$dbkey = $title->getDBkey();
$pageInfo['contentmodel'] = $title->getContentModel();
- $pageInfo['pagelanguage'] = $title->getPageLanguage()->getCode();
+
+ $pageLanguage = $title->getPageLanguage();
+ $pageInfo['pagelanguage'] = $pageLanguage->getCode();
+ $pageInfo['pagelanguagehtmlcode'] = $pageLanguage->getHtmlCode();
+ $pageInfo['pagelanguagedir'] = $pageLanguage->getDir();
if ( $titleExists ) {
$pageInfo['touched'] = wfTimestamp( TS_ISO_8601, $this->pageTouched[$pageid] );
$types[$name] = array( 'ApiQueryInfo', 'get' . ucfirst( $name ) . 'Token' );
}
Hooks::run( 'ApiTokensGetTokenTypes', array( &$types ) );
+
+ // For forwards-compat, copy any token types from ApiQueryTokens that
+ // we don't already have something for.
+ $user = $this->getUser();
+ $request = $this->getRequest();
+ foreach ( ApiQueryTokens::getTokenTypeSalts() as $name => $salt ) {
+ if ( !isset( $types[$name] ) ) {
+ $types[$name] = function () use ( $salt, $user, $request ) {
+ return $user->getEditToken( $salt, $request );
+ };
+ }
+ }
+
ksort( $types );
return $types;
$data['invalidparameter'] = $parameter;
$parsed = $this->parseMsg( $error );
+ if ( isset( $parsed['data'] ) ) {
+ $data = array_merge( $data, $parsed['data'] );
+ }
+
$this->dieUsage( $parsed['info'], $parsed['code'], 0, $data );
}
"apihelp-help-param-wrap": "Wrap the output in a standard API response structure.",
"apihelp-help-param-toc": "Include a table of contents in the HTML output.",
"apihelp-help-example-main": "Help for the main module.",
+ "apihelp-help-example-submodules": "Help for <kbd>action=query</kbd> and all its submodules.",
"apihelp-help-example-recursive": "All help in one page.",
"apihelp-help-example-help": "Help for the help module itself.",
"apihelp-help-example-query": "Help for two query submodules.",
"apihelp-query+watchlist-paramvalue-prop-loginfo": "Engade información do rexistro cando sexa axeitado.",
"apihelp-query+watchlist-param-show": "Só mostrar elementos que cumpran esos criterios. Por exemplo, para ver só edicións menores feitas por usuarios conectados, activar $1show=minor|!anon.",
"apihelp-query+watchlist-param-type": "Que tipos de cambios mostrar:",
+ "apihelp-query+watchlist-paramvalue-type-edit": "Edicións comúns a páxinas.",
+ "apihelp-query+watchlist-paramvalue-type-external": "Cambios externos.",
+ "apihelp-query+watchlist-paramvalue-type-new": "Creacións de páxinas.",
+ "apihelp-query+watchlist-paramvalue-type-log": "Entradas do rexistro",
"apihelp-query+watchlist-param-owner": "Usado con $1token para acceder á lista de páxinas de vixiancia doutro usuario.",
"apihelp-query+watchlist-param-token": "Identificador de seguridade (dispoñible nas [[Special:Preferences#mw-prefsection-watchlist|preferencias]] de usuario) para permitir o acceso a outros á súa páxina de vixiancia.",
"apihelp-query+watchlist-example-simple": "Listar a última revisión das páxinas recentemente modificadas da lista de vixiancia do usuario actual.",
"apihelp-feedrecentchanges-param-hidebots": "Nascondi le modifiche apportate da bot.",
"apihelp-feedrecentchanges-param-hideanons": "Nascondi le modifiche fatte da utenti anonimi.",
"apihelp-feedrecentchanges-param-hideliu": "Nascondi le modifiche apportate dagli utenti registrati.",
+ "apihelp-feedrecentchanges-param-hidepatrolled": "Nascondi modifiche verificate.",
"apihelp-feedrecentchanges-param-hidemyself": "Nasconde le modifiche effettuate dall'utente attuale.",
+ "apihelp-feedrecentchanges-param-tagfilter": "Filtra per etichetta.",
+ "apihelp-feedrecentchanges-param-target": "Mostra solo le modifiche alle pagine collegate da questa pagina.",
"apihelp-feedrecentchanges-param-showlinkedto": "Mostra solo le modifiche alle pagine collegate a quella specificata.",
"apihelp-feedrecentchanges-example-simple": "Mostra le ultime modifiche.",
"apihelp-feedrecentchanges-example-30days": "Mostra le modifiche degli ultimi 30 giorni.",
+ "apihelp-feedwatchlist-param-linktosections": "Collega direttamente alla sezione modificata, se possibile.",
+ "apihelp-filerevert-description": "Ripristina un file ad una versione precedente.",
+ "apihelp-filerevert-param-filename": "Nome del file di destinazione, senza il prefisso 'File:'.",
+ "apihelp-filerevert-example-revert": "Ripristina <kbd>Wiki.png</kbd> alla versione del <kbd>2011-03-05T15:27:40Z</kbd>.",
+ "apihelp-imagerotate-description": "Ruota una o più immagini.",
+ "apihelp-imagerotate-param-rotation": "Gradi di rotazione dell'immagine in senso orario.",
+ "apihelp-imagerotate-example-simple": "Ruota <kbd>File:Example.png</kbd> di <kbd>90</kbd> gradi.",
+ "apihelp-imagerotate-example-generator": "Ruota tutte le immagini in <kbd>Category:Flip</kbd> di <kbd>180</kbd> gradi.",
+ "apihelp-import-param-summary": "Oggetto dell'importazione.",
+ "apihelp-import-param-xml": "File XML caricato.",
+ "apihelp-import-param-interwikisource": "Per importazioni interwiki: wiki da cui importare.",
+ "apihelp-import-param-interwikipage": "Per importazioni interwiki: pagina da importare.",
+ "apihelp-import-param-fullhistory": "Per importazioni interwiki: importa l'intera cronologia, non solo la versione attuale.",
+ "apihelp-import-param-templates": "Per importazioni interwiki: importa anche tutti i template inclusi.",
+ "apihelp-import-example-import": "Importa [[meta:Help:ParserFunctions]] nel namespace 100 con cronologia completa.",
"apihelp-login-param-name": "Nome utente.",
"apihelp-login-param-password": "Password.",
"apihelp-login-param-domain": "Dominio (opzionale).",
"apihelp-userrights-param-userid": "ID utente.",
"apihelp-watch-description": "Aggiunge o rimuove pagine dagli osservati speciali dell'utente attuale.",
"api-pageset-param-titles": "Un elenco di titoli su cui lavorare.",
+ "api-pageset-param-pageids": "Un elenco di ID pagina su cui lavorare.",
"api-pageset-param-revids": "Un elenco di ID versioni su cui lavorare.",
"api-pageset-param-redirects-generator": "Risolvi automaticamente redirect in <var>$1titles</var>, <var>$1pageids</var>, e <var>$1revids</var>, e nelle pagine restituite da <var>$1generator</var>.",
"api-pageset-param-converttitles": "Converte i titoli in altre varianti, se necessario. Funziona solo se la lingua del contenuto del wiki supporta la conversione in varianti. Le lingue che supportano la conversione in varianti includono $1",
"apihelp-help-param-wrap": "{{doc-apihelp-param|help|wrap}}",
"apihelp-help-param-toc": "{{doc-apihelp-param|help|toc}}",
"apihelp-help-example-main": "{{doc-apihelp-example|help}}",
+ "apihelp-help-example-submodules": "{{doc-apihelp-example|help}}",
"apihelp-help-example-recursive": "{{doc-apihelp-example|help}}",
"apihelp-help-example-help": "{{doc-apihelp-example|help}}",
"apihelp-help-example-query": "{{doc-apihelp-example|help}}",
"apihelp-edit-param-redirect": "Автоматически разрешать редиректы.",
"apihelp-edit-param-contentformat": "Формат сериализации содержимого, используемый для ввода текста.",
"apihelp-edit-example-edit": "Редактировать страницу",
+ "apihelp-edit-example-prepend": "Добавить магическое слово <kbd>__NOTOC__</kbd> в начало страницы.",
+ "apihelp-edit-example-undo": "Отменить изменения с 13579 по 13585 с добавлением автоматического описания правки.",
"apihelp-emailuser-description": "Письмо участнику",
"apihelp-emailuser-param-target": "Адресат электронного письма",
"apihelp-emailuser-param-subject": "Заголовок темы.",
"apihelp-edit-param-text": "Страница са садржајем.",
"apihelp-edit-param-minor": "Мања измена.",
"apihelp-edit-example-edit": "Уређивање странице.",
- "apihelp-emailuser-description": "СлаÑ\9aе е-поÑ\80Ñ\83ке коÑ\80иÑ\81никÑ\83",
- "apihelp-emailuser-param-target": "Ð\9aоÑ\80иÑ\81ник Ñ\98е поÑ\81лао е-поÑ\80Ñ\83кÑ\83.",
+ "apihelp-emailuser-description": "СлаÑ\9aе имеÑ\98ла коÑ\80иÑ\81никÑ\83.",
+ "apihelp-emailuser-param-target": "Ð\9aоÑ\80иÑ\81ник Ñ\98е поÑ\81лао имеÑ\98л.",
"apihelp-feedcontributions-param-year": "Од године (и раније).",
"apihelp-filerevert-description": "Вратити датотеку у ранију верзију.",
"apihelp-help-example-recursive": "Сва помоћ у једној страници.",
protected $rclistOpen;
protected $rcMoveIndex;
- /** @var MapCacheLRU */
- protected $watchingCache;
+ /** @var BagOStuff */
+ protected $watchMsgCache;
/**
* Changeslist constructor
$this->skin = $obj;
}
$this->preCacheMessages();
- $this->watchingCache = new MapCacheLRU( 50 );
+ $this->watchMsgCache = new HashBagOStuff( array( 'maxKeys' => 50 ) );
}
/**
* @return string
*/
protected function numberofWatchingusers( $count ) {
- $cache = $this->watchingCache;
- if ( $count > 0 ) {
- if ( !$cache->has( $count ) ) {
- $cache->set( $count, $this->msg( 'number_of_watching_users_RCview' )
- ->numParams( $count )->escaped() );
- }
-
- return $cache->get( $count );
- } else {
+ if ( $count <= 0 ) {
return '';
}
+ $cache = $this->watchMsgCache;
+ $that = $this;
+ return $cache->getWithSetCallback( $count, $cache::TTL_INDEFINITE,
+ function () use ( $that, $count ) {
+ return $that->msg( 'number_of_watching_users_RCview' )
+ ->numParams( $count )->escaped();
+ }
+ );
}
/**
return $this->getContext()->getSkin();
}
+ /**
+ * Get the Timing object
+ *
+ * @since 1.27
+ * @return Timing
+ */
+ public function getTiming() {
+ return $this->getContext()->getTiming();
+ }
+
/**
* Get the Stats object
*
*/
private $stats;
+ /**
+ * @var Timing
+ */
+ private $timing;
+
/**
* Constructor
* @param IContextSource $context Context to inherit from
}
}
+ /**
+ * Get the timing object
+ *
+ * @return Timing
+ */
+ public function getTiming() {
+ if ( !is_null( $this->timing ) ) {
+ return $this->timing;
+ } else {
+ return $this->getContext()->getTiming();
+ }
+ }
+
/**
* Set the WebRequest object
*
*/
public function getStats();
+ /**
+ * Get the timing object
+ *
+ * @since 1.27
+ * @return Timing
+ */
+ public function getTiming();
+
/**
* Get a Message object with context set. See wfMessage for parameters.
*
*/
private $stats;
+ /**
+ * @var Timing
+ */
+ private $timing;
+
/**
* @var Config
*/
return $this->stats;
}
+ /**
+ * Get the timing object
+ *
+ * @return Timing
+ */
+ public function getTiming() {
+ if ( $this->timing === null ) {
+ $this->timing = new Timing();
+ }
+ return $this->timing;
+ }
+
/**
* Set the Title object
*
protected function createLogger( $channel, $spec ) {
$obj = new Logger( $channel );
+ if ( isset( $spec['calls'] ) ) {
+ foreach ( $spec['calls'] as $method => $margs ) {
+ call_user_func_array( array( $obj, $method ), $margs );
+ }
+ }
+
if ( isset( $spec['processors'] ) ) {
foreach ( $spec['processors'] as $processor ) {
$obj->pushProcessor( $this->getProcessor( $processor ) );
/**
* Purge the file object/metadata cache
*/
- function invalidateCache() {
+ public function invalidateCache() {
$key = $this->getCacheKey();
if ( !$key ) {
return;
* @param null|User $user
* @return bool
*/
- function recordUpload2( $oldver, $comment, $pageText, $props = false, $timestamp = false,
- $user = null
+ function recordUpload2(
+ $oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null
) {
-
if ( is_null( $user ) ) {
global $wgUser;
$user = $wgUser;
}
$dbw = $this->repo->getMasterDB();
- $dbw->begin( __METHOD__ );
-
- if ( !$props ) {
- $props = $this->repo->getFileProps( $this->getVirtualUrl() );
- }
# Imports or such might force a certain timestamp; otherwise we generate
# it and can fudge it slightly to keep (name,timestamp) unique on re-upload.
$allowTimeKludge = false;
}
+ $props = $props ?: $this->repo->getFileProps( $this->getVirtualUrl() );
$props['description'] = $comment;
$props['user'] = $user->getId();
$props['user_text'] = $user->getName();
# Fail now if the file isn't there
if ( !$this->fileExists ) {
wfDebug( __METHOD__ . ": File " . $this->getRel() . " went missing!\n" );
- $dbw->rollback( __METHOD__ );
return false;
}
- $reupload = false;
+ $dbw->startAtomic( __METHOD__ );
# Test to see if the row exists using INSERT IGNORE
# This avoids race conditions by locking the row until the commit, and also
__METHOD__,
'IGNORE'
);
- if ( $dbw->affectedRows() == 0 ) {
+
+ $reupload = ( $dbw->affectedRows() == 0 );
+ if ( $reupload ) {
if ( $allowTimeKludge ) {
# Use LOCK IN SHARE MODE to ignore any transaction snapshotting
- $ltimestamp = $dbw->selectField( 'image', 'img_timestamp',
+ $ltimestamp = $dbw->selectField(
+ 'image',
+ 'img_timestamp',
array( 'img_name' => $this->getName() ),
__METHOD__,
- array( 'LOCK IN SHARE MODE' ) );
+ array( 'LOCK IN SHARE MODE' )
+ );
$lUnixtime = $ltimestamp ? wfTimestamp( TS_UNIX, $ltimestamp ) : false;
# Avoid a timestamp that is not newer than the last version
# TODO: the image/oldimage tables should be like page/revision with an ID field
# version of the file was broken. Allow registration of the new
# version to continue anyway, because that's better than having
# an image that's not fixable by user operations.
-
- $reupload = true;
# Collision, this is an update of a file
# Insert previous contents into oldimage
$dbw->insertSelect( 'oldimage', 'image',
# Update the current image row
$dbw->update( 'image',
- array( /* SET */
+ array(
'img_size' => $this->size,
'img_width' => intval( $this->width ),
'img_height' => intval( $this->height ),
array( 'img_name' => $this->getName() ),
__METHOD__
);
- } else {
- # This is a new file, so update the image count
- DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array( 'images' => 1 ) ) );
}
$descTitle = $this->getTitle();
$wikiPage = new WikiFilePage( $descTitle );
$wikiPage->setFile( $this );
- # Add the log entry
- $action = $reupload ? 'overwrite' : 'upload';
-
- $logEntry = new ManualLogEntry( 'upload', $action );
+ // Add the log entry...
+ $logEntry = new ManualLogEntry( 'upload', $reupload ? 'overwrite' : 'upload' );
$logEntry->setPerformer( $user );
$logEntry->setComment( $comment );
$logEntry->setTarget( $descTitle );
-
// Allow people using the api to associate log entries with the upload.
// Log has a timestamp, but sometimes different from upload timestamp.
$logEntry->setParameters(
// now and wait until the page exists.
$logId = $logEntry->insert();
- $exists = $descTitle->exists();
- if ( $exists ) {
- // Page exists, do RC entry now (otherwise we wait for later).
+ if ( $descTitle->exists() ) {
+ // Page exists, do RC entry now (otherwise we wait for later)
$logEntry->publish( $logId );
- }
-
- if ( $exists ) {
- # Create a null revision
- $latest = $descTitle->getLatestRevID();
// Use own context to get the action text in content language
$formatter = LogFormatter::newFromEntry( $logEntry );
$formatter->setContext( RequestContext::newExtraneousContext( $descTitle ) );
false,
$user
);
- if ( !is_null( $nullRevision ) ) {
+ if ( $nullRevision ) {
$nullRevision->insertOn( $dbw );
-
- Hooks::run( 'NewRevisionFromEditComplete', array( $wikiPage, $nullRevision, $latest, $user ) );
+ Hooks::run(
+ 'NewRevisionFromEditComplete',
+ array( $wikiPage, $nullRevision, $nullRevision->getParentId(), $user )
+ );
$wikiPage->updateRevisionOn( $dbw, $nullRevision );
}
- }
-
- # Commit the transaction now, in case something goes wrong later
- # The most important thing is that files don't get lost, especially archives
- # NOTE: once we have support for nested transactions, the commit may be moved
- # to after $wikiPage->doEdit has been called.
- $dbw->commit( __METHOD__ );
-
- # Update memcache after the commit
- $this->invalidateCache();
- if ( $exists ) {
- # Invalidate the cache for the description page
- $descTitle->invalidateCache();
- $descTitle->purgeSquid();
+ $newPageContent = null;
} else {
- # New file; create the description page.
- # There's already a log entry, so don't make a second RC entry
- # Squid and file cache for the description page are purged by doEditContent.
- $content = ContentHandler::makeContent( $pageText, $descTitle );
- $status = $wikiPage->doEditContent(
- $content,
- $comment,
- EDIT_NEW | EDIT_SUPPRESS_RC,
- false,
- $user
- );
-
- // Now that the page exists, make an RC entry.
- // This relies on the resetArticleID() call in WikiPage::insertOn(),
- // which is triggered on $descTitle by doEditContent() above.
- $logEntry->publish( $logId );
- if ( isset( $status->value['revision'] ) ) {
- $dbw->update( 'logging',
- array( 'log_page' => $status->value['revision']->getPage() ),
- array( 'log_id' => $logId ),
- __METHOD__
- );
- }
+ // Make the description page and RC log entry post-commit
+ $newPageContent = ContentHandler::makeContent( $pageText, $descTitle );
}
+ # Defer purges, page creation, and link updates in case they error out.
+ # The most important thing is that files and the DB registry stay synced.
+ $dbw->endAtomic( __METHOD__ );
+
# Do some cache purges after final commit so that:
# a) Changes are more likely to be seen post-purge
# b) They won't cause rollback of the log publish/update above
$that = $this;
- $dbw->onTransactionIdle( function () use ( $that, $reupload, $descTitle ) {
+ $dbw->onTransactionIdle( function () use (
+ $that, $reupload, $wikiPage, $newPageContent, $comment, $user, $logEntry, $logId
+ ) {
+ # Update memcache after the commit
+ $that->invalidateCache();
+
+ if ( $newPageContent ) {
+ # New file page; create the description page.
+ # There's already a log entry, so don't make a second RC entry
+ # Squid and file cache for the description page are purged by doEditContent.
+ $status = $wikiPage->doEditContent(
+ $newPageContent,
+ $comment,
+ EDIT_NEW | EDIT_SUPPRESS_RC,
+ false,
+ $user
+ );
+
+ // Now that the page exists, make an RC entry.
+ // This relies on the resetArticleID() call in WikiPage::insertOn(),
+ // which is triggered on $descTitle by doEditContent() above.
+ $logEntry->publish( $logId );
+ if ( isset( $status->value['revision'] ) ) {
+ /** @var $rev Revision */
+ $rev = $status->value['revision'];
+ $that->getRepo()->getMasterDB()->update(
+ 'logging',
+ array( 'log_page' => $rev->getPage() ),
+ array( 'log_id' => $logId ),
+ __METHOD__
+ );
+ }
+ } else {
+ # Existing file page: invalidate description page cache
+ $wikiPage->getTitle()->invalidateCache();
+ $wikiPage->getTitle()->purgeSquid();
+ }
+
# Run hook for other updates (typically more cache purging)
- Hooks::run( 'FileUpload', array( $that, $reupload, $descTitle->exists() ) );
+ Hooks::run( 'FileUpload', array( $that, $reupload, !$newPageContent ) );
if ( $reupload ) {
# Delete old thumbnails
}
} );
+ if ( !$reupload ) {
+ # This is a new file, so update the image count
+ DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array( 'images' => 1 ) ) );
+ }
+
# Invalidate cache for all pages using this file
DeferredUpdates::addUpdate( new HTMLCacheUpdate( $this->getTitle(), 'imagelinks' ) );
protected $mFilterCallback;
protected $mName;
protected $mDir;
- protected $mLabel; # String label. Set on construction
+ protected $mLabel; # String label, as HTML. Set on construction.
protected $mID;
protected $mClass = '';
protected $mVFormClass = '';
$config = array(
'classes' => array( "mw-htmlform-field-$fieldType", $this->mClass ),
'align' => $this->getLabelAlignOOUI(),
- 'label' => $this->getLabel(),
+ 'label' => new OOUI\HtmlSnippet( $this->getLabel() ),
'help' => $helpText !== null ? new OOUI\HtmlSnippet( $helpText ) : null,
'errors' => $errors,
'infusable' => $infusable,
}
/**
- * @return string
+ * @return string HTML
*/
function getLabel() {
return is_null( $this->mLabel ) ? '' : $this->mLabel;
"config-nofile": "Non se puido atopar o ficheiro \"$1\". Se cadra, foi borrado.",
"config-extension-link": "Sabía que o seu wiki soporta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensións]?\n\nPode explorar as [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensións por categoría] ou a [//www.mediawiki.org/wiki/Extension_Matrix matriz de extensións] para ollar a lista completa de extensións.",
"mainpagetext": "<strong>MediaWiki instalouse correctamente.</strong>",
- "mainpagedocfooter": "Consulte a [//meta.wikimedia.org/wiki/Help:Contents guía de usuario] para obter máis información sobre como usar o software wiki.\n\n== Primeiros pasos ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista das opcións de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas máis frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo dos lanzamentos de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localice MediaWiki á súa lingua]"
+ "mainpagedocfooter": "Consulte a [//meta.wikimedia.org/wiki/Help:Contents guía de usuario] para obter máis información sobre como usar o software wiki.\n\n== Primeiros pasos ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista das opcións de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas máis frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo dos lanzamentos de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localice MediaWiki á súa lingua]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda como combater a publicidade na súa wiki]"
}
--- /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
+ */
+
+/**
+ * An interface to help developers measure the performance of their applications.
+ * This interface closely matches the W3C's User Timing specification.
+ * The key differences are:
+ *
+ * - The reference point for all measurements which do not explicitly specify
+ * a start time is $_SERVER['REQUEST_TIME_FLOAT'], not navigationStart.
+ * - Successive calls to mark() and measure() with the same entry name cause
+ * the previous entry to be overwritten. This ensures that there is a 1:1
+ * mapping between names and entries.
+ * - Because there is a 1:1 mapping, instead of getEntriesByName(), we have
+ * getEntryByName().
+ *
+ * The in-line documentation incorporates content from the User Timing Specification
+ * http://www.w3.org/TR/user-timing/
+ * Copyright © 2013 World Wide Web Consortium, (MIT, ERCIM, Keio, Beihang).
+ * http://www.w3.org/Consortium/Legal/2015/doc-license
+ *
+ * @since 1.27
+ */
+class Timing {
+
+ /** @var array[] */
+ private $entries = array();
+
+ public function __construct() {
+ $this->clearMarks();
+ }
+
+ /**
+ * Store a timestamp with the associated name (a "mark")
+ *
+ * @param string $markName The name associated with the timestamp.
+ * If there already exists an entry by that name, it is overwritten.
+ * @return array The mark that has been created.
+ */
+ public function mark( $markName ) {
+ $this->entries[$markName] = array(
+ 'name' => $markName,
+ 'entryType' => 'mark',
+ 'startTime' => microtime( true ),
+ 'duration' => 0,
+ );
+ return $this->entries[$markName];
+ }
+
+ /**
+ * @param string $markName The name of the mark that should
+ * be cleared. If not specified, all marks will be cleared.
+ */
+ public function clearMarks( $markName = null ) {
+ if ( $markName !== null ) {
+ unset( $this->entries[$markName] );
+ } else {
+ $this->entries = array(
+ 'requestStart' => array(
+ 'name' => 'requestStart',
+ 'entryType' => 'mark',
+ 'startTime' => isset( $_SERVER['REQUEST_TIME_FLOAT'] )
+ ? $_SERVER['REQUEST_TIME_FLOAT']
+ : $_SERVER['REQUEST_TIME'],
+ 'duration' => 0,
+ ),
+ );
+ }
+ }
+
+ /**
+ * This method stores the duration between two marks along with
+ * the associated name (a "measure").
+ *
+ * If neither the startMark nor the endMark argument is specified,
+ * measure() will store the duration from $_SERVER['REQUEST_TIME_FLOAT'] to
+ * the current time.
+ * If the startMark argument is specified, but the endMark argument is not
+ * specified, measure() will store the duration from the most recent
+ * occurrence of the start mark to the current time.
+ * If both the startMark and endMark arguments are specified, measure()
+ * will store the duration from the most recent occurrence of the start
+ * mark to the most recent occurrence of the end mark.
+ *
+ * @param string $measureName
+ * @param string $startMark
+ * @param string $endMark
+ * @return array The measure that has been created.
+ */
+ public function measure( $measureName, $startMark = 'requestStart', $endMark = null ) {
+ $start = $this->getEntryByName( $startMark );
+ $startTime = $start['startTime'];
+
+ if ( $endMark ) {
+ $end = $this->getEntryByName( $endMark );
+ $endTime = $end['startTime'];
+ } else {
+ $endTime = microtime( true );
+ }
+
+ $this->entries[$measureName] = array(
+ 'name' => $measureName,
+ 'entryType' => 'measure',
+ 'startTime' => $startTime,
+ 'duration' => $endTime - $startTime,
+ );
+
+ return $this->entries[$measureName];
+ }
+
+ /**
+ * Sort entries in chronological order with respect to startTime.
+ */
+ private function sortEntries() {
+ uasort( $this->entries, function ( $a, $b ) {
+ return 10000 * ( $a['startTime'] - $b['startTime'] );
+ } );
+ }
+
+ /**
+ * @return array[] All entries in chronological order.
+ */
+ public function getEntries() {
+ $this->sortEntries();
+ return $this->entries;
+ }
+
+ /**
+ * @param string $entryType
+ * @return array[] Entries (in chronological order) that have the same value
+ * for the entryType attribute as the $entryType parameter.
+ */
+ public function getEntriesByType( $entryType ) {
+ $this->sortEntries();
+ $entries = array();
+ foreach ( $this->entries as $entry ) {
+ if ( $entry['entryType'] === $entryType ) {
+ $entries[] = $entry;
+ }
+ }
+ return $entries;
+ }
+
+ /**
+ * @param string $name
+ * @return array|null Entry named $name or null if it does not exist.
+ */
+ public function getEntryByName( $name ) {
+ return isset( $this->entries[$name] ) ? $this->entries[$name] : null;
+ }
+}
return false;
}
+ // Refresh key position for maxCacheKeys eviction
+ $temp = $this->bag[$key];
+ unset( $this->bag[$key] );
+ $this->bag[$key] = $temp;
+
return $this->bag[$key][self::KEY_VAL];
}
* Giving 0 indicates the new page flag should be set on.
* @param bool $lastRevIsRedirect If given, will optimize adding and
* removing rows in redirect table.
- * @return bool True on success, false on failure
+ * @return bool Success; false if the page row was missing or page_latest changed
*/
public function updateRevisionOn( $dbw, $revision, $lastRevision = null,
$lastRevIsRedirect = null
$changed = !$content->equals( $old_content );
if ( $changed ) {
- $dbw->begin( __METHOD__ );
-
$prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
$status->merge( $prepStatus );
if ( !$status->isOK() ) {
- $dbw->rollback( __METHOD__ );
+ return $status;
+ }
+
+ $dbw->begin( __METHOD__ );
+ // Get the latest page_latest value while locking it.
+ // Do a CAS style check to see if it's the same as when this method
+ // started. If it changed then bail out before touching the DB.
+ $latestNow = $this->lock();
+ if ( $latestNow != $oldid ) {
+ $dbw->commit( __METHOD__ );
+ // Page updated or deleted in the mean time
+ $status->fatal( 'edit-conflict' );
return $status;
}
- $revisionId = $revision->insertOn( $dbw );
- // Update page.
- // We check for conflicts by comparing $oldid with the current latest revision ID.
- $ok = $this->updateRevisionOn( $dbw, $revision, $oldid, $oldIsRedirect );
+ // At this point we are now comitted to returning an OK
+ // status unless some DB query error or other exception comes up.
+ // This way callers don't have to call rollback() if $status is bad
+ // unless they actually try to catch exceptions (which is rare).
- if ( !$ok ) {
- // Belated edit conflict! Run away!!
- $status->fatal( 'edit-conflict' );
+ $revisionId = $revision->insertOn( $dbw );
+ // Update page_latest and friends to reflect the new revision
+ if ( !$this->updateRevisionOn( $dbw, $revision, null, $oldIsRedirect ) ) {
$dbw->rollback( __METHOD__ );
-
- return $status;
+ throw new MWException( "Failed to update page row to use new revision." );
}
Hooks::run( 'NewRevisionFromEditComplete',
// Create new article
$status->value['new'] = true;
- $dbw->begin( __METHOD__ );
-
$prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
$status->merge( $prepStatus );
-
if ( !$status->isOK() ) {
- $dbw->rollback( __METHOD__ );
-
return $status;
}
- $status->merge( $prepStatus );
+ $dbw->begin( __METHOD__ );
- // Add the page record; stake our claim on this title!
- // This will return false if the article already exists
+ // Add the page record unless one already exists for the title
$newid = $this->insertOn( $dbw );
-
if ( $newid === false ) {
- $dbw->rollback( __METHOD__ );
+ $dbw->commit( __METHOD__ ); // nothing inserted
$status->fatal( 'edit-already-exists' );
- return $status;
+ return $status; // nothing done
}
+ // At this point we are now comitted to returning an OK
+ // status unless some DB query error or other exception comes up.
+ // This way callers don't have to call rollback() if $status is bad
+ // unless they actually try to catch exceptions (which is rare).
+
// Save the revision text...
$revision = new Revision( array(
'page' => $newid,
}
// Update the page record with revision data
- $this->updateRevisionOn( $dbw, $revision, 0 );
+ if ( !$this->updateRevisionOn( $dbw, $revision, 0 ) ) {
+ $dbw->rollback( __METHOD__ );
+ throw new MWException( "Failed to update page row to use new revision." );
+ }
Hooks::run( 'NewRevisionFromEditComplete', array( $this, $revision, false, $user ) );
}
}
- /**
- * Edit an article without doing all that other stuff
- * The article must already exist; link tables etc
- * are not updated, caches are not flushed.
- *
- * @param string $text Text submitted
- * @param User $user The relevant user
- * @param string $comment Comment submitted
- * @param bool $minor Whereas it's a minor modification
- *
- * @deprecated since 1.21, use doEditContent() instead.
- */
- public function doQuickEdit( $text, User $user, $comment = '', $minor = 0 ) {
- ContentHandler::deprecated( __METHOD__, "1.21" );
-
- $content = ContentHandler::makeContent( $text, $this->getTitle() );
- $this->doQuickEditContent( $content, $user, $comment, $minor );
- }
-
/**
* Edit an article without doing all that other stuff
* The article must already exist; link tables etc
protected function validateScriptFile( $fileName, $contents ) {
if ( $this->getConfig()->get( 'ResourceLoaderValidateJS' ) ) {
// Try for cache hit
- $cache = ObjectCache::getLocalClusterInstance();
+ $cache = ObjectCache::getMainWANInstance();
$key = $cache->makeKey(
'resourceloader',
'jsparse',
foreach ( $temp_terms as $t ) {
$searchon .= ( $terms[1] == '-' ? ' ~' : ' & ' ) . $this->escapeTerm( $t );
}
- }
- else {
+ } else {
$searchon .= ( $terms[1] == '-' ? ' ~' : ' & ' ) . $this->escapeTerm( $terms[2] );
}
if ( !empty( $terms[3] ) ) {
}
if ( strtolower( $terms[2] ) === 'and' ) {
$searchstring .= ' & ';
- }
- elseif ( strtolower( $terms[2] ) === 'or' || $terms[2] === '|' ) {
+ } elseif ( strtolower( $terms[2] ) === 'or' || $terms[2] === '|' ) {
$searchstring .= ' | ';
- }
- elseif ( strtolower( $terms[2] ) === 'not' ) {
+ } elseif ( strtolower( $terms[2] ) === 'not' ) {
$searchstring .= ' & !';
- }
- else {
+ } else {
$searchstring .= " & $terms[2]";
}
}
$query = "SELECT page_id, page_namespace, page_title, 0 AS score " .
"FROM page p, revision r, pagecontent c WHERE p.page_latest = r.rev_id " .
"AND r.rev_text_id = c.old_id AND 1=0";
- }
- else {
+ } else {
$m = array();
if ( preg_match_all( "/'([^']+)'/", $top, $m, PREG_SET_ORDER ) ) {
foreach ( $m as $terms ) {
}
$query = "SELECT page_id, page_namespace, page_title, " .
- "ts_rank($fulltext, to_tsquery($searchstring), 5) AS score " .
- "FROM page p, revision r, pagecontent c WHERE p.page_latest = r.rev_id " .
- "AND r.rev_text_id = c.old_id AND $fulltext @@ to_tsquery($searchstring)";
+ "ts_rank($fulltext, to_tsquery($searchstring), 5) AS score " .
+ "FROM page p, revision r, pagecontent c WHERE p.page_latest = r.rev_id " .
+ "AND r.rev_text_id = c.old_id AND $fulltext @@ to_tsquery($searchstring)";
}
# # Namespaces - defaults to 0
$this->setInternalId( $fields['internalid'] );
}
}
-
-/**
- * @deprecated since 1.21
- */
-class SiteObject extends Site {
-}
return $serializationData;
}
}
-
-/**
- * @deprecated since 1.21
- */
-class SiteArray extends SiteList {
-}
$form = new HTMLForm( $fields, $this->getContext() );
$form->setAction( $this->getPageTitle( 'create' )->getLocalURL() );
$form->setWrapperLegendMsg( 'tags-create-heading' );
- $form->setHeaderText( $this->msg( 'tags-create-explanation' )->plain() );
+ $form->setHeaderText( $this->msg( 'tags-create-explanation' )->parseAsBlock() );
$form->setSubmitCallback( array( $this, 'processCreateTagForm' ) );
$form->setSubmitTextMsg( 'tags-create-submit' );
$form->show();
"htmlform-cloner-delete": "Выдаліць",
"htmlform-cloner-required": "Патрабуецца як мінімум яшчэ адно значэньне.",
"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 з падтрымкай поўнатэкстнага пошуку",
"viewsourceold": "pogledaj izvor",
"editlink": "uredi",
"viewsourcelink": "pogledaj izvor",
- "editsectionhint": "Uredi sekciju: $1",
+ "editsectionhint": "Uredi odlomak \"$1\"",
"toc": "Sadržaj",
"showtoc": "prikaži",
"hidetoc": "sakrij",
"cantcreateaccount-range-text": "Pravljenje računa sa IP adresa u rasponu '''$1''', koji uključuje i vašu IP adresu ('''$4'''), je blokirao korisnik [[User:$3|$3]].\n\nNavedeni razlog korisnika $3 je ''$2''",
"viewpagelogs": "Pogledaj zapisnike ove stranice",
"nohistory": "Ne postoji historija izmjena za ovu stranicu.",
- "currentrev": "Trenutna revizija",
- "currentrev-asof": "Trenutna revizija na dan $1",
+ "currentrev": "Trenutna verzija",
+ "currentrev-asof": "Trenutna verzija na dan $1",
"revisionasof": "Verzija od $1",
"revision-info": "Izmjena od $1 od {{GENDER:$6|$2}}$7",
"previousrevision": "← Starija izmjena",
"revdel-restore": "Promijeni dostupnost",
"pagehist": "Historija stranice",
"deletedhist": "Izbrisana historija",
- "revdelete-hide-current": "Greška pri sakrivanju stavke od $2, $1: ovo je trenutna revizija.\nNe može biti sakrivena.",
+ "revdelete-hide-current": "Greška pri sakrivanju stavke od $2, $1: ovo je trenutna verzija.\nNe može biti sakrivena.",
"revdelete-show-no-access": "Greška pri prikazivanju stavke od $2, $1: ova stavka je označena kao \"zaštićena\".\nNemate pristup do ove stavke.",
"revdelete-modify-no-access": "Greška pri izmjeni stavke od $2, $1: ova stavka je označena kao \"zaštićena\".\nNemate pristup ovoj stavci.",
"revdelete-modify-missing": "Greška pri mijenjanju stavke ID $1: nedostaje u bazi podataka!",
"rc_categories": "Ograniči na kategorije (razdvoji sa \"|\"):",
"rc_categories_any": "Bilo koju odabranu",
"rc-change-size-new": "$1 {{PLURAL:$1|bajt|bajta|bajtova}} poslije izmjene",
- "newsectionsummary": "/* $1 */ novi odjeljak",
+ "newsectionsummary": "/* $1 */ novi odlomak",
"rc-enhanced-expand": "Pokaži detalje",
"rc-enhanced-hide": "Sakrij detalje",
"rc-old-title": "prvobitno kreirano kao \"$1\"",
"nopagetitle": "Ne postoji takva stranica",
"nopagetext": "Ciljna stranica koju ste naveli ne postoji.",
"pager-newer-n": "{{PLURAL:$1|novija 1|novije $1}}",
- "pager-older-n": "{{PLURAL:$1|starija 1|starije $1}}",
+ "pager-older-n": "{{PLURAL:$1|starija $1|starijih $1}}",
"suppress": "Sakrij",
"querypage-disabled": "Ova posebna stranica je onemogućena jer smanjuje performanse.",
"apihelp": "API pomoć",
"watch": "Prati članak",
"watchthispage": "Prati ovu stranicu",
"unwatch": "Prestani pratiti",
- "unwatchthispage": "Ukinite praćenje",
+ "unwatchthispage": "Prestani pratiti",
"notanarticle": "Nije članak",
"notvisiblerev": "Revizija je obrisana",
"watchlist-details": "{{PLURAL:$1|$1 stranica|$1 stranice|$1 stranica }} na vašem spisku praćenja, ne računajući posebno stranice za razgovor.",
"tags-title": "Oznake",
"tags-intro": "Ova stranica prikazuje spisak oznaka koje softver može staviti na svaku izmjenu i njihovo značenje.",
"tags-tag": "Naziv oznake",
- "tags-display-header": "Vidljivost na spisku izmjena",
+ "tags-display-header": "Izgled na spiskovima izmjena",
"tags-description-header": "Puni opis značenja",
"tags-source-header": "Izvor",
"tags-active-header": "Aktivna?",
"nstab-template": "داڕێژە",
"nstab-help": "پەڕەی یارمەتی",
"nstab-category": "پۆل",
+ "mainpage-nstab": "دەستپێک",
"nosuchaction": "کردارێک بەم شێوە نییە",
"nosuchactiontext": "ئەو چالاکییەی لە لایەن بەستەرەوە دیاریکراوە ناتەواوە.\nلەوانەیە بە هەڵە بەستەرەکەت نووسیبێت، یان بەستەرێکی هەڵەی بە دواوە بێت.\nلەوانەیە ئەمە نیشانەی هەڵەیەک بێت لەو نەرمەکاڵایەی کە بەکاردێت لە لایەن {{SITENAME}}.",
"nosuchspecialpage": "پەڕەی تایبەتی ئاوا بوونی نییە",
"showingresultsinrange": "Níže zobrazuji nejvýše <strong>$1</strong> {{PLURAL:$1|výsledek|výsledky|výsledků}} v rozsahu #<strong>$2</strong>–#<strong>$3</strong>.",
"search-showingresults": "{{PLURAL:$4|Výsledek <strong>$1</strong> z <strong>$3</strong>|Výsledky <strong>$1–$2</strong> z <strong>$3</strong>}}",
"search-nonefound": "Na váš dotaz nebyly nalezeny žádné výsledky.",
+ "search-nonefound-thiswiki": "Pro tento dotaz nebyly nalezeny žádné odpovídající výsledky na této wiki.",
"powersearch-legend": "Rozšířené vyhledávání",
"powersearch-ns": "Hledat ve jmenných prostorech:",
"powersearch-togglelabel": "Zaškrtnout:",
"htmlform-cloner-required": "At least one value is required.",
"htmlform-title-badnamespace": "[[:$1]] is not in the \"{{ns:$2}}\" namespace.",
"htmlform-title-not-creatable": "\"$1\" is not a creatable page title",
- "htmlform-title-not-exists": "[[:$1]] does not exist.",
+ "htmlform-title-not-exists": "$1 does not exist.",
"htmlform-user-not-exists": "<strong>$1</strong> does not exist.",
"htmlform-user-not-valid": "<strong>$1</strong> isn't a valid username.",
"rawmessage": "$1",
"right-editmywatchlist": "فهرست پیگیریهای خود را ویرایش کنید. توجه داشته باشید برخی از اقدامات حتی بدون این دسترسی هم صفحات را اضافه میکنند.",
"right-viewmyprivateinfo": "دادههای خصوصی خود را ببینید (مانند آدرس ایمیل و نام واقعی)",
"right-editmyprivateinfo": "دادههای خصوصی خود را ویرایش کنید (مانند آدرس ایمیل و نام واقعی)",
- "right-editmyoptions": "ترجیحات خود را ویرایش",
+ "right-editmyoptions": "ویرایش ترجیحات خود",
"right-rollback": "واگردانی سریع ویرایشهای آخرین کاربری که یک صفحه را ویرایش کردهاست",
"right-markbotedits": "علامت زدن ویرایشهای واگردانیشده به عنوان ویرایش ربات",
"right-noratelimit": "تاثیر نپذیرفتن از محدودیت سرعت",
"mergehistory-into": "Kohdesivu:",
"mergehistory-list": "Sivuhistoria, joka voidaan yhdistää",
"mergehistory-merge": "Seuraavat versiot sivusta [[:$1]] voidaan yhdistää sivuun [[:$2]]. \n\nValintamerkin sijoituksella voit yhdistää vain ne versiot, jotka on luotu valittuna ajankohtana tai sitä ennen (listassa alaspäin). \nOta huomioon, että jos käytät navigaatiolinkkejä, tekemäsi valinta poistuu.",
- "mergehistory-go": "Etsi muokkaukset, jotka voidaan yhdistää",
+ "mergehistory-go": "Näytä muokkaukset, jotka voidaan yhdistää",
"mergehistory-submit": "Yhdistä versiot",
"mergehistory-empty": "Mitään versioita ei voida yhdistää.",
"mergehistory-done": "$3 {{PLURAL:$3|versio|versiota}} sivusta $1 yhdistettiin onnistuneesti sivuun [[:$2]].",
"nstab-category": "Catégorie",
"mainpage-nstab": "Accueil",
"nosuchaction": "Action inconnue",
- "nosuchactiontext": "L'action spécifiée dans l'URL est invalide.\nVous avez peut-être mal entré l'URL ou suivi un lien erroné.\nIl peut également s'agir d'un bug dans le logiciel utilisé par {{SITENAME}}.",
+ "nosuchactiontext": "L’action spécifiée dans l’URL est invalide.\nVous avez peut-être mal entré l’URL ou suivi un lien erroné.\nIl peut également s’agir d’un bogue dans le logiciel utilisé par {{SITENAME}}.",
"nosuchspecialpage": "Page spéciale inexistante",
"nospecialpagetext": "<strong>Vous avez demandé une page spéciale qui n'existe pas.</strong>\n\nUne liste des pages spéciales valides se trouve sur [[Special:SpecialPages|{{int:specialpages}}]].",
"error": "Erreur",
"search-category": "(catégorie $1)",
"search-file-match": "(correspond au contenu du fichier)",
"search-suggest": "Essayez avec cette orthographe : $1",
- "search-rewritten": "Affiche les résultats pour $1. Recherchez à sa place pour $2.",
+ "search-rewritten": "Résultats affichés pour $1. Rechercher $2 à la place.",
"search-interwiki-caption": "Projets frères",
"search-interwiki-default": "Résultats de $1 :",
"search-interwiki-more": "(plus)",
"feedback-bugornote": "Si vous êtes prêt à décrire un problème technique en détail, veuillez [$1 signaler un bogue].\nSinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentaire sera ajouté à la page « [$3 $2] », avec votre nom d'utilisateur.",
"feedback-cancel": "Annuler",
"feedback-close": "Fait",
- "feedback-external-bug-report-button": "Signaler un bug technique",
+ "feedback-external-bug-report-button": "Signaler un bogue technique",
"feedback-dialog-title": "Soumettre un commentaire",
"feedback-dialog-intro": "Vous pouvez utiliser le simple formulaire ci-dessous pour faire parvenir vos commentaires. Votre commentaire sera ajouté à la page « $1 », ainsi que votre nom d’utilisateur.",
"feedback-error-title": "Erreur",
"createaccountreason": "Motivo:",
"createacct-reason": "Motivo",
"createacct-reason-ph": "Por que crea outra conta?",
- "createacct-captcha": "Comprobación de seguridade",
- "createacct-imgcaptcha-ph": "Insira o texto que ve enriba",
"createacct-submit": "Crear a conta",
"createacct-another-submit": "Crear conta",
"createacct-benefit-heading": "Xente coma vostede elabora {{SITENAME}}.",
"showingresultsinrange": "{{PLURAL:$1|Móstrase <strong>1</strong> resultado|Móstranse <strong>$1</strong> resultados}}, comezando polo número <strong>$2</strong> e rematando polo número <strong>$3</strong>.",
"search-showingresults": "{{PLURAL:$4|Resultado <strong>$1</strong> de <strong>$3</strong>|Resultados do <strong>$1</strong> ao <strong>$2</strong>, dun total de <strong>$3</strong>}}",
"search-nonefound": "Non se atopou ningún resultado que coincidise coa procura.",
+ "search-nonefound-thiswiki": "Non hai resultados que cumpran os criterios de busca neste sitio.",
"powersearch-legend": "Busca avanzada",
"powersearch-ns": "Procurar nos espazos de nomes:",
"powersearch-togglelabel": "Seleccionar:",
"Statix64",
"CassiodoroVicinetti",
"Bultro",
- "Oggioniale"
+ "Oggioniale",
+ "Wim b"
]
},
"tog-underline": "Sottolinea i collegamenti:",
"passwordreset-capture-help": "Se si seleziona questa casella, l'indirizzo e-mail (con la password temporanea), verrà mostrato a voi, oltre ad essere inviato all'utente.",
"passwordreset-email": "Indirizzo email:",
"passwordreset-emailtitle": "Dettagli dell'utente su {{SITENAME}}",
- "passwordreset-emailtext-ip": "Qualcuno (probabilmente tu, con indirizzo IP $1) ha richiesto l'invio di una nuova password per l'accesso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|Gli utenti associati}} a questo indirizzo email sono:\n\n$2\n\n{{PLURAL:$3|Questa password temporanea scadrà|Queste password temporanee scadranno}} dopo {{PLURAL:$5|un giorno|$5 giorni}}.\nDovresti accedere e scegliere una nuova password ora. \n\nSe non sei stato tu a fare la richiesta, o se ti sei ricordato la password originale e non vuoi più cambiarla, puoi ignorare questo messaggio e continuare al utilizzare la tua vecchia password.",
+ "passwordreset-emailtext-ip": "Qualcuno (probabilmente tu, con indirizzo IP $1) ha richiesto l'invio di una nuova password per l'accesso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|Gli utenti associati}} a questo indirizzo email sono:\n\n$2\n\n{{PLURAL:$3|Questa password temporanea scadrà|Queste password temporanee scadranno}} dopo {{PLURAL:$5|un giorno|$5 giorni}}.\nDovresti accedere e scegliere una nuova password ora. \n\nSe non sei stato tu a fare la richiesta, o se ti sei ricordato la password originale e non vuoi più cambiarla, puoi ignorare questo messaggio e continuare ad utilizzare la tua vecchia password.",
"passwordreset-emailtext-user": "L'utente $1 di {{SITENAME}} ha richiesto l'invio di una nuova password per l'accesso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|Gli utenti associati}} a questo indirizzo email sono:\n\n$2\n\n{{PLURAL:$3|Questa password temporanea scadrà|Queste password temporanee scadranno}} dopo {{PLURAL:$5|un giorno|$5 giorni}}.\nDovresti accedere e scegliere una nuova password ora. \n\nSe non sei stato tu a fare la richiesta, o se ti sei ricordato la password originale e non vuoi più cambiarla, puoi ignorare questo messaggio e continuare al utilizzare la tua vecchia password.",
"passwordreset-emailelement": "Nome utente: \n$1\n\nPassword temporanea: \n$2",
"passwordreset-emailsent": "Se questo è un indirizzo di posta elettronica registrato per la tua utenza, allora verrà inviata una email per reimpostare la password.",
"viewsource": "មើលកូដ",
"viewsource-title": "មើលកូដរបស់ $1",
"actionthrottled": "សកម្មភាពត្រូវបានកម្រិត",
- "actionthrottledtext": "ក្រោមវិធានការប្រឆាំងស្ប៉ាម អ្នកត្រូវបានគេកំហិតមិនឱ្យធ្វើសកម្មភាពនេះច្រើនដងពេកទេក្នុងរយៈពេលខ្លីមួយ។\n\nសូមព្យាយាមម្ដងទៀតក្នុងរយៈពេលប៉ុន្មាននាទីទៀត។",
+ "actionthrottledtext": "ក្រោមវិធានការប្រឆាំងស្ប៉ាម អ្នកត្រូវបានគេកំហិតមិនឱ្យធ្វើសកម្មភាពនេះច្រើនដងពេកទេក្នុងរយៈពេលខ្លីមួយ តែអ្នកបានធ្វើលើសចំនួនកំហិត។\n\nសូមព្យាយាមម្ដងទៀតក្នុងរយៈពេលប៉ុន្មាននាទីទៀត។",
"protectedpagetext": "ទំព័រនេះបានត្រូវការពារមិនឱ្យកែប្រែឬធ្វើសកម្មភាពផ្សេងទៀតលើវា។",
"viewsourcetext": "អ្នកអាចមើលនិងចម្លងកូដរបស់ទំព័រនេះ។",
"viewyourtext": "អ្នកអាចមើលនិងចម្លងកូដរបស់<strong>ការកែប្រែរបស់អ្នក</strong>មកកាន់ទំព័រនេះ។",
"passwordreset-emailtext-ip": "មាននរណាម្នាក់ (ប្រហែលជាខ្លួនអ្នកផ្ទាល់, មកពីអាស័យដ្ឋាន IP $1) បានស្នើសុំស្ដារពាក្យសម្ងាត់របស់អ្នកសម្រាប់ {{SITENAME}} ($4)។ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះ\nមានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖\n\n$2\n\n{{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។\nយកល្អអ្នកគួរតែកត់ឈ្មោះចូលរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ \nឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ\nបំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។",
"passwordreset-emailtext-user": "អ្នកប្រើប្រាស់ $1 នៅក្នុង {{SITENAME}} បានស្នើសុំស្ដារពាក្យសម្ងាត់របស់អ្នកនៅក្នុង {{SITENAME}} ($4)។\n {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះមានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖\n\n$2\n\n{{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។\nយកល្អអ្នកគួរតែកត់ឈ្មោះចូលរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ \nឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ\nបំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។",
"passwordreset-emailelement": "អត្តនាម៖ \n$1\n\nពាក្យសម្ងាត់បណ្ដោះអាសន្ន៖ \n$2",
- "passwordreset-emailsent": "á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\98á\9e½á\9e\99á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\89á\9e¾á\9e\91á\9f\85á\9e á\9e¾á\9e\99។",
+ "passwordreset-emailsent": "á\9e\94á\9e¾á\9e\9fá\9e·á\9e\93á\9e\87á\9e¶á\9e\93á\9f\81á\9f\87á\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\8aá\9f\82á\9e\9bá\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\85á\9e»á\9f\87á\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\82á\9e\8eá\9e\93á\9e¸á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80 á\9e\93á\9f\84á\9f\87á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\98á\9e½á\9e\99á\9e\93á\9e¹á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\89á\9e¾á\9e\91á\9f\85។",
"passwordreset-emailsent-capture": "អ៊ីមែលស្ដារពាក្យសម្ងាត់មួយដូចបង្ហាញខាងក្រោមត្រូវបានផ្ញើទៅហើយ។",
"passwordreset-emailerror-capture": "អ៊ីមែលស្ដារពាក្យសម្ងាត់មួយដូចបង្ហាញខាងក្រោមត្រូវបានបង្កើតហើយ ប៉ុន្តែការផ្ញើទៅកាន់ {{GENDER:$2|អ្នកប្រើប្រាស់}}មិនបានសំរេចទេ៖ $1",
- "changeemail": "ផ្លាស់ប្ដូរអាសយដ្ឋានអ៊ីមែល",
- "changeemail-header": "á\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\82á\9e\8eá\9e\93á\9e¸á\9e\93á\9f\81á\9f\87",
+ "changeemail": "á\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e¬á\9e\9bá\9e»á\9e\94á\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9b",
+ "changeemail-header": "á\9e\9fá\9e¼á\9e\98á\9e\94á\9f\86á\9e\96á\9f\81á\9e\89á\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9f\82á\9e\94á\9e\94á\9e\91á\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9f\94 á\9e\94á\9e¾á\9e\9fá\9e·á\9e\93á\9e\87á\9e¶á\9e¢á\9f\92á\9e\93á\9e\80á\9e\85á\9e\84á\9f\8bá\9e\9bá\9e»á\9e\94á\9e\80á\9e¶á\9e\9aá\9e\8fá\9e\97á\9f\92á\9e\87á\9e¶á\9e\94á\9f\8bá\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\96á\9e¸á\9e\82á\9e\8eá\9e\93á\9e¸á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80 á\9e\9fá\9e¼á\9e\98á\9e\8aá\9e¶á\9e\80á\9f\8bá\9e\94á\9f\92á\9e\9aá\9e¡á\9f\84á\9f\87á\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e\90á\9f\92á\9e\98á\9e¸á\9e¢á\9f\84á\9e\99á\9e\93á\9f\85á\9e\91á\9f\86á\9e\93á\9f\81á\9e\9aá\9e\96á\9f\81á\9e\9bá\9e\9fá\9e\98á\9f\92á\9e\9aá\9f\81á\9e\85á\9e\8aá\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9f\82á\9e\94á\9e\94á\9e\91á\9f\94",
"changeemail-no-info": "អ្នកចាំបាច់ត្រូវតែកត់ឈ្មោះចូល ដើម្បីចូលទៅកាន់ទំព័រនេះដោយផ្ទាល់។",
"changeemail-oldemail": "អាសយដ្ឋានអ៊ីមែលបច្ចុប្បន្ន៖",
"changeemail-newemail": "អាសយដ្ឋានអ៊ីមែលថ្មី៖",
"upload-form-label-infoform-description": "ការពិពណ៌នា",
"upload-form-label-usage-title": "បម្រើបម្រាស់",
"upload-form-label-usage-filename": "ឈ្មោះឯកសារ",
+ "foreign-structured-upload-form-label-own-work": "នេះជាការងារផ្ទាល់ខ្លួនរបស់ខ្ញុំ",
+ "foreign-structured-upload-form-label-infoform-categories": "ចំណាត់ថ្នាក់ក្រុម",
+ "foreign-structured-upload-form-label-infoform-date": "កាលបរិច្ឆេទ",
"backend-fail-notexists": "គ្មានឯកសារ \"$1\" ទេ។",
"backend-fail-notsame": "ឯកសារដែលមិនដូចគ្នាបេះបិទមួយមានរួចហើយនៅ \"$1\"។",
"backend-fail-delete": "មិនអាចលុបឯកសារ \"$1\" បានទេ។",
"cant-move-to-user-page": "អ្នកគ្មានការអនុញ្ញាតអោយប្ដូរទីតាំងទំព័រមួយទៅកាន់ទំព័រអ្នកប្រើប្រាស់មួយទេ (លើកលែងតែទៅកាន់ទំព័ររងមួយ)។",
"cant-move-category-page": "អ្នកមិនត្រូវបានអនុញ្ញាតឱ្យប្តូរទីតាំងទំព័រចំណាត់ថ្នាក់ក្រុមទេ។",
"cant-move-to-category-page": "អ្នកគ្មានការអនុញ្ញាតអោយប្ដូរទីតាំងទំព័រមួយទៅកាន់ទំព័រចំណាត់ថ្នាក់ក្រុមមួយទេ។",
- "newtitle": "á\9e\91á\9f\85á\9e\85á\9f\86á\9e\8eá\9e\84á\9e\87á\9e¾á\9e\84á\9e\90á\9f\92á\9e\98á\9e¸á\9f\96",
+ "newtitle": "ចំណងជើងថ្មី៖",
"move-watch": "តាមដានទំព័រនេះ",
"movepagebtn": "ប្ដូរទីតាំង",
"pagemovedsub": "ប្ដូរទីតាំងដោយជោគជ័យ",
"tooltip-ca-nstab-main": "មើលទំព័រមាតិកា",
"tooltip-ca-nstab-user": "មើលទំព័រអ្នកប្រើប្រាស់",
"tooltip-ca-nstab-media": "មើលទំព័រមេឌា",
- "tooltip-ca-nstab-special": "á\9e\93á\9f\81á\9f\87á\9e\87á\9e¶á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\96á\9e·á\9e\9fá\9f\81á\9e\9fâ\80\8bá\9f\94 á\9e¢á\9f\92á\9e\93á\9e\80á\9e\98á\9e·á\9e\93á\9e¢á\9e¶á\9e\85á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87បានទេ។",
+ "tooltip-ca-nstab-special": "á\9e\93á\9f\81á\9f\87á\9e\87á\9e¶á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\96á\9e·á\9e\9fá\9f\81á\9e\9fâ\80\8bá\9e\8aá\9f\82á\9e\9bá\9e\98á\9e·á\9e\93á\9e¢á\9e¶á\9e\85á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82បានទេ។",
"tooltip-ca-nstab-project": "មើលទំព័រគម្រោង",
"tooltip-ca-nstab-image": "មើលទំព័រឯកសារ",
"tooltip-ca-nstab-mediawiki": "មើលសាររបស់ប្រព័ន្ធ",
"nstab-template": "模",
"nstab-help": "助",
"nstab-category": "類",
+ "mainpage-nstab": "卷首",
"nosuchaction": "無可為",
"nosuchactiontext": "此址也無",
"nosuchspecialpage": "無此特查",
"createaccountreason": "因:",
"createacct-reason": "因:",
"createacct-reason-ph": "汝另立一簿者何哉?",
- "createacct-captcha": "安檢",
- "createacct-imgcaptcha-ph": "輸上方文字",
"createacct-submit": "增簿",
"createacct-another-submit": "復立一簿",
"createacct-benefit-heading": "吾等立{{SITENAME}}者,或黔首,或專戶。",
"showingresultsinrange": "#<strong>$2</strong> മുതൽ #<strong>$3</strong> വരെയുള്ള പരിധിയിലെ {{PLURAL:$1|<strong>ഒരു</strong> ഫലം|<strong>$1</strong> ഫലങ്ങൾ}} താഴെ പ്രദർശിപിക്കുന്നു.",
"search-showingresults": "{{PLURAL:$4|<strong>$3</strong> ഫലത്തിൽ<strong>$1</strong>|<strong>$3</strong> ഫലത്തിൽ <strong>$1 മുതൽ $2</strong> വരെയുള്ളവ}}",
"search-nonefound": "താങ്കൾ തിരഞ്ഞ പദത്തിനു യോജിച്ച ഫലങ്ങളൊന്നും ലഭിച്ചില്ല.",
+ "search-nonefound-thiswiki": "ഈ അന്വേഷണത്തിനു യോജിച്ച ഫലങ്ങളൊന്നും ഈ സൈറ്റിൽ നിന്നും ലഭിച്ചില്ല.",
"powersearch-legend": "വിപുലീകൃത തിരച്ചിൽ",
"powersearch-ns": "തിരയേണ്ട നാമമേഖലകൾ",
"powersearch-togglelabel": "അടയാളപ്പെടുത്തുക:",
"logentry-newusers-byemail": "$3 എന്ന ഉപയോക്തൃ അംഗത്വം $1 {{GENDER:$2|സൃഷ്ടിച്ചിരിക്കുന്നു}}, രഹസ്യവാക്ക് ഇമെയിൽ വഴി അയച്ചു",
"logentry-newusers-autocreate": "$1 എന്ന ഉപയോക്തൃ അംഗത്വം സ്വയം {{GENDER:$2|സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു}}",
"logentry-protect-move_prot": "സംരക്ഷണ സജ്ജീകരണങ്ങൾ $4 എന്നതിൽ നിന്ന് $3 എന്നതിലേക്ക് $1 {{GENDER:$2|മാറ്റി}}",
+ "logentry-protect-unprotect": "$3 താളിലെ സംരക്ഷണം $1 {{GENDER:$2|നീക്കി}}",
+ "logentry-protect-protect": "$3 താൾ $1 {{GENDER:$2|സംരക്ഷിച്ചു}} $4",
+ "logentry-protect-protect-cascade": "$3 താൾ $1 {{GENDER:$2|സംരക്ഷിച്ചു}} $4 [നിർഝരിതം]",
"logentry-rights-rights": "$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം, $4 എന്നതിൽ നിന്നു $5 എന്നതിലേക്ക്, $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
"logentry-rights-rights-legacy": "$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
"logentry-rights-autopromote": "$1 എന്ന ഉപയോക്താവ് $4 എന്നതിൽ നിന്നും $5 എന്നതിലേയ്ക്ക് സ്വയമേവ {{GENDER:$2|ഉയർത്തപ്പെട്ടിരിക്കുന്നു}}",
"site-atom-feed": "$1 ऍटम रसद (Atom Feed)",
"page-rss-feed": "\"$1\" आर.एस.एस.रसद (RSS Feed)",
"page-atom-feed": "\"$1\" ऍटम रसद (Atom Feed)",
- "feed-atom": "ॲटम",
+ "feed-atom": "à¤\85à¥\85टम",
"feed-rss": "आर.एस.एस.",
"red-link-title": "$1 (पान अस्तित्वात नाही)",
"sort-descending": "उतरत्या क्रमाने लावा",
"resettokens-no-tokens": "पुनर्स्थापित करण्यासाठी कोणतीही ओळखचिन्हे नाहीत.",
"resettokens-tokens": "ओळखचिन्हे:",
"resettokens-token-label": "$1 (सद्य मुल्य: $2)",
- "resettokens-watchlist-token": "[[Special:Watchlist|à¤\86पलà¥\8dया निरà¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80तà¥\80ल पानाà¤\82मधà¥\80ल बदलाà¤\9aा]] वà¥\87ब रसद बिलà¥\8dला (ॲटम/आरएसएस)",
+ "resettokens-watchlist-token": "[[Special:Watchlist|à¤\86पलà¥\8dया निरà¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80तà¥\80ल पानाà¤\82मधà¥\80ल बदलाà¤\9aा]] वà¥\87ब रसद बिलà¥\8dला (à¤\85à¥\85टम/आरएसएस)",
"resettokens-done": "ओळखचिन्हे पुनर्स्थापन.",
"resettokens-resetbutton": "निवडलेली ओळखचिन्हे पुनर्स्थापित करा",
"bold_sample": "ठळक मजकूर",
"accmailtitle": "परवलीचा शब्द पाठविण्यात आलेला आहे.",
"accmailtext": "[[User talk:$1|$1]] यांसाठी अनियतक्रमाने निर्मित केलेला परवलीचा शब्द $2 यांना पाठवण्यात आला आहे.\n\nया नवीन खात्यासाठीचा परवलीचा शब्द,सनोंद-प्रवेश घेतल्यावर [[Special:ChangePassword|परवलीचा शब्द बदला]] येथे बदलता येईल.",
"newarticle": "(नवीन लेख)",
- "newarticletext": "à¤\86पण सधà¥\8dया à¤\85सà¥\8dतितà¥\8dवात नसलà¥\87लà¥\8dया पानाà¤\9aà¥\8dया दà¥\81वà¥\8dयाà¤\9aा माà¤\97à¥\8bवा à¤\98à¥\87त à¤\86ला à¤\86हात.\nहà¥\87 पान तयार à¤\95रणà¥\8dयासाठà¥\80,खालील पेटीत टंकन करणे सुरु करा(अधिक माहितीसाठी [$1 साहाय्य पान] बघा).\n\nजर आपण येथे चुकून आला असाल तर ब्राउझरच्या <strong>परत</strong>(बॅक) कळीवर टिचकी द्या.",
+ "newarticletext": "à¤\86पण सधà¥\8dया à¤\85सà¥\8dतितà¥\8dतà¥\8dवात नसलà¥\87लà¥\8dया पानाà¤\9aà¥\8dया दà¥\81वà¥\8dयाà¤\9aा माà¤\97à¥\8bवा à¤\98à¥\87त à¤\86ला à¤\86हात.\nहà¥\87 पान नवà¥\8dयानà¥\87 तयार à¤\95रणà¥\8dयासाठà¥\80 खालील पेटीत टंकन करणे सुरु करा(अधिक माहितीसाठी [$1 साहाय्य पान] बघा).\n\nजर आपण येथे चुकून आला असाल तर ब्राउझरच्या <strong>परत</strong>(बॅक) कळीवर टिचकी द्या.",
"anontalkpagetext": "---- ''हे चर्चापान अशा अज्ञात सदस्यासाठी आहे, ज्यांनी खाते तयार केलेले नाही किंवा त्याचा वापर करत नाहीत. त्यांच्या ओळखीसाठी आम्ही आंतरजाल अंकपत्ता वापरतो आहोत. असा अंकपत्ता बऱ्याच लोकांचा एकच असू शकतो. जर आपण अज्ञात सदस्य असाल आणि आपल्याला काही अप्रासंगिक संदेश मिळाला असेल तर कृपया [[Special:UserLogin| खाते तयार करा]] किंवा [[Special:UserLogin/signup|सनोंद-प्रवेश करा]] ज्यामुळे, पुढे असे गैरसमज होणार नाहीत.''",
"noarticletext": "या लेखात सध्या काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}| मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर नोंदी शोधा],\nकिंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}} लिहू शकता]</span>.",
"noarticletext-nopermission": "सध्या या लेखात काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये [[Special:Search/{{PAGENAME}}| या मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME}}}}आपण या लेखाच्या इतर नोंदी शोधा]</span>,परंतु, आपणास हा लेख लिहीण्याची परवानगी देण्यात येउ शकत नाही.",
"showingresultsinrange": "खाली #<strong>$2</strong> ते #<strong>$3</strong> पर्यंतच्या कक्षेतील {{PLURAL:$1|<strong>१</strong> निकाल दाखविला आहे|<strong>$1</strong> निकाल दाखविले आहेत}}.",
"search-showingresults": "{{PLURAL:$4|Result <strong>$1</strong> of <strong>$3</strong>|निकाल <strong>$3</strong> चे<strong>$1 - $2</strong>}}",
"search-nonefound": "दिलेल्या पृच्छेशी जुळणारे निकाल नाहीत.",
+ "search-nonefound-thiswiki": "या संकेतस्थळावर,दिलेल्या पृच्छेशी जुळणारे निकाल मिळाले नाही.",
"powersearch-legend": "प्रगत शोध",
"powersearch-ns": "नामविश्वांमध्ये शोधा:",
"powersearch-togglelabel": "तपासा:",
"logentry-rights-rights-legacy": "$1 ने $3 साठी गट सदस्यता {{GENDER:$2|बदलली}}",
"logentry-rights-autopromote": "$1 ला स्वयंचलितरित्या $4 वरुन $5 ला {{GENDER:$2|बढती दिल्या गेली}}",
"logentry-upload-upload": "$1 {{GENDER:$2|अपभारीत केली}} $3",
+ "log-name-tag": "खूणपताका नोंदी",
"rightsnone": "(काहीही नाही)",
"revdelete-summary": "संपादन माहिती",
"feedback-adding": "आपला पश्चप्रदाय (फिडबॅक) जोडत आहोत या पानास.......",
"tog-hideminor": "Sembunyikan suntingan kecil daripada perubahan terkini",
"tog-hidepatrolled": "Sembunyikan suntingan yang telah dironda daripada perubahan terkini",
"tog-newpageshidepatrolled": "Sorokkan laman yang telah dironda daripada senarai laman baru",
+ "tog-hidecategorization": "Sorokkan pengkategorian laman",
"tog-extendwatchlist": "Kembangkan senarai pantau untuk memaparkan semua perubahan, bukan hanya yang terkini",
"tog-usenewrc": "Kumpulkan perubahan mengikut laman dalam perubahan terkini dan senarai pantau",
"tog-numberheadings": "Nomborkan tajuk secara automatik",
"tog-watchlisthideliu": "Sembunyikan suntingan oleh pengguna yang telah log masuk daripada senarai pantau",
"tog-watchlisthideanons": "Sembunyikan suntingan oleh pengguna tanpa nama daripada senarai pantau",
"tog-watchlisthidepatrolled": "Sembunyikan suntingan yang telah dironda daripada senarai pantau",
+ "tog-watchlisthidecategorization": "Sorokkan pengkategorian laman",
"tog-ccmeonemails": "Kirimkan saya salinan e-mel yang saya hantar kepada pengguna lain",
"tog-diffonly": "Jangan tunjukkan kandungan laman di bawah perbezaan",
"tog-showhiddencats": "Tunjukkan kategori tersembunyi",
"nstab-template": "Templat",
"nstab-help": "Laman bantuan",
"nstab-category": "Kategori",
+ "mainpage-nstab": "Laman utama",
"nosuchaction": "Tindakan tidak dikenali",
"nosuchactiontext": "Tindakan yang dinyatakan dalam URL ini tidak sah. Anda mungkin telah menaip URL yang salah atau mengikuti pautan yang tidak sah. Ini juga mungkin bererti terdapat pepijat dalam perisian yang digunakan oleh {{SITENAME}}.",
"nosuchspecialpage": "Laman khas tidak wujud",
"viewsource": "Lihat sumber",
"viewsource-title": "Lihat sumber bagi $1",
"actionthrottled": "Tindakan didikitkan",
- "actionthrottledtext": "Untuk mencegah spam, anda dihadkan daripada melakukan tindakan ini berulang kali dalam ruang waktu yang singkat, dan anda telah melebihi had tersebut. Sila cuba lagi selepas beberapa minit.",
+ "actionthrottledtext": "Untuk mencegah penyalahgunaan, anda dihadkan daripada melakukan tindakan ini berulang kali dalam ruang waktu yang singkat, dan anda telah melebihi had tersebut. Sila cuba lagi selepas beberapa minit.",
"protectedpagetext": "Laman ini telah dikunci untuk melarang penyuntingan atau sebarang tindakan yang lain.",
- "viewsourcetext": "Anda boleh melihat dan menyalin sumber bagi laman ini:",
- "viewyourtext": "Anda boleh melihat dan menyalin sumber '''suntingan anda''' kepada laman ini:",
+ "viewsourcetext": "Anda boleh melihat dan menyalin sumber bagi laman ini.",
+ "viewyourtext": "Anda boleh melihat dan menyalin sumber <strong>suntingan anda</strong> pada laman ini.",
"protectedinterface": "Laman ini menyediakan teks antara muka bagi perisian ini, akan tetapi dikunci untuk menghalang penyalahgunaan.\nUntuk menambah atau menyunting terjemahan untuk semua wiki, sila gunakan projek penyetempatan MediaWiki, [//translatewiki.net/ translatewiki.net].",
"editinginterface": "<strong>Amaran:</strong> Anda sedang menyunting halaman yang digunakan untuk menyediakan teks antaramuka untuk perisian berkenaan.\nSebarang suntingan ke atas halaman ini akan memberikan kesan kepada penampilan antaramuka pengguna bagi pengguna-pengguna lain wiki ini.",
"translateinterface": "Untuk menambah atau menyunting terjemahan untuk kesemua wiki, sila gunakan [//translatewiki.net/ translatewiki.net], iaitu projek penyetempatan MediaWiki.",
- "cascadeprotected": "Laman ini telah dilindungi daripada penyuntingan oleh pengguna selain penyelia, kerana ia termasuk dalam {{PLURAL:$1|laman|laman-laman}} berikut, yang dilindungi dengan secara \"melata\": $2",
+ "cascadeprotected": "Laman ini telah dilindungi daripada disunting kerana ia termasuk dalam {{PLURAL:$1|laman|laman-laman}} berikut, yang dilindungi dengan opsyen \"melata\" dipasang:\n$2",
"namespaceprotected": "Anda tidak mempunyai keizinan untuk menyunting laman dalam ruang nama '''$1'''.",
"customcssprotected": "Anda tidak dibenarkan menyunting laman JavaScript ini kerana ia mengandungi tetapan peribadi pengguna lain.",
"customjsprotected": "Anda tidak dibenarkan menyunting laman JavaScript ini kerana ia mengandungi tetapan peribadi pengguna lain.",
"createaccountreason": "Sebab:",
"createacct-reason": "Sebab",
"createacct-reason-ph": "Mengapa anda membuka satu lagi akaun",
- "createacct-captcha": "Pemeriksaan sekuriti",
- "createacct-imgcaptcha-ph": "Isikan teks yang anda lihat di atas",
"createacct-submit": "Wujudkan akaun anda",
- "createacct-another-submit": "Buka akaun baru",
+ "createacct-another-submit": "Buka akaun",
"createacct-benefit-heading": "{{SITENAME}} dijayakan oleh orang ramai seperti anda.",
"createacct-benefit-body1": "{{PLURAL:$1|suntingan}}",
"createacct-benefit-body2": "{{PLURAL:$1|halaman}}",
"createacct-benefit-body3": "{{PLURAL:$1|penyumbang}} terkini",
"badretype": "Sila ulangi kata laluan dengan betul.",
+ "usernameinprogress": "Pembukaan akaun untuk nama pengguna ini sudah sedang dijalankan. Sila tunggu.",
"userexists": "Nama pengguna yang diisikan telah pun digunakan.\nSila pilih nama yang lain.",
"loginerror": "Ralat log masuk",
"createacct-error": "Ralat pembukaan akaun",
"passwordreset-emailtext-ip": "Seseorang (mungkin anda, dari alamat IP $1) telah memohon supaya kata laluan diset semula untuk {{SITENAME}} anda ($4). {{PLURAL:$3|Akaun|Akaun-akaun}} pengguna yang berikut\ndikaitkan dengan alamat e-mel ini:\n\n$2\n\n{{PLURAL:$3|Kata|Kata-kata}} laluan sementara ini akan luput dalam masa $5 hari. Anda harus log masuk dan membuat kata laluan yang baru sekarang. Jika permohonan ini dibuat oleh orang lain, atau jika anda teringat kembali kata laluan asal anda dan anda tidak lagi berhasrat untuk mengubahnya, anda boleh mengabaikan pesanan ini dan terus menggunakan kata laluan lama anda.",
"passwordreset-emailtext-user": "Pengguna $1 telah memohon supaya kata laluan diset semula untuk {{SITENAME}} anda ($4). {{PLURAL:$3|Akaun|Akaun-akaun}} pengguna yang berikut\ndikaitkan dengan alamat e-mel ini:\n\n$2\n\n{{PLURAL:$3|Kata|Kata-kata}} laluan sementara ini akan luput dalam masa $5 hari. Anda harus log masuk dan membuat kata laluan yang baru sekarang. Jika permohonan ini dibuat oleh orang lain, atau jika anda teringat kembali kata laluan asal anda dan anda tidak lagi berhasrat untuk mengubahnya, anda boleh mengabaikan pesanan ini dan terus menggunakan kata laluan lama anda.",
"passwordreset-emailelement": "Nama pengguna: \n$1\n\nKata laluan sementara: \n$2",
- "passwordreset-emailsent": "E-mel set semula kata laluan telah dihantar.",
+ "passwordreset-emailsent": "Jika ini ialah alamat e-mel yang terdaftar untuk akaun anda, maka e-mel set semula kata laluan akan dihantar.",
"passwordreset-emailsent-capture": "E-mel set semula kata laluan telah dihantar, seperti yang dipaparkan di bawah.",
"passwordreset-emailerror-capture": "E-mel set semula kata laluan telah dihasilkan, seperti yang dipaparkan di bawah, tetapi tidak berjaya dihantar kepada {{GENDER:$2|pengguna}} berkenaan: $1",
- "changeemail": "Tukar alamat e-mel",
- "changeemail-header": "Tukar alamat e-mel akaun",
+ "changeemail": "Tukar atau padamkan alamat e-mel",
+ "changeemail-header": "Lengkapkan borang ini untuk menukar alamat e-mel anda. Jika anda ingin memutuskan sebarang hubungan alamat e-mel daripada akaun anda, biarkan ruangan alamat e-mel kosong ketika menghantar borang.",
+ "changeemail-passwordrequired": "Anda akan dikehendaki memasukkan kata laluan untuk mengesahkan perubahan ini.",
"changeemail-no-info": "Anda hendaklah log masuk terlebih dahulu untuk mencapai laman ini secara terus.",
"changeemail-oldemail": "Alamat e-mel sekarang:",
"changeemail-newemail": "Alamat e-mel baru:",
+ "changeemail-newemail-help": "Ruangan ini harus dibiarkan kosong jika anda mahu menggugurkan alamat e-mel anda. Anda tidak akan dapat mengeset semula kata laluan yang terlupa, bahkan tidak akan menerima e-mel daripada wiki ini jika alamat e-mel itu dipadamkan.",
"changeemail-none": "(tiada)",
"changeemail-password": "Kata laluan anda di {{SITENAME}}:",
"changeemail-submit": "Tukar E-mel",
"changeemail-throttled": "Anda telah melakukan terlalu banyak cubaan log masuk.\nSila tunggu $1 dan cuba lagi.",
+ "changeemail-nochange": "Sila taipkan alamat e-mel baru yang lain.",
"resettokens": "Set semula token",
"resettokens-text": "Anda boleh mengeset semula token yang membolehkan akses kepada data peribadi tertentu yang berkaitan dengan akaun anda di sini.\n\nAnda harus melakukannya jika anda tanpa sengaja mengongsinya dengan sesiapa ataupun akaun anda telah dikompromi.",
"resettokens-no-tokens": "Tiada token untuk diset semula.",
"sig_tip": "Tandatangan dengan cap waktu",
"hr_tip": "Garis melintang (gunakan dengan hemat)",
"summary": "Ringkasan:",
- "subject": "Tajuk:",
+ "subject": "Perkara:",
"minoredit": "Ini adalah suntingan kecil",
"watchthis": "Pantau laman ini",
"savearticle": "Simpan",
"missingsummary": "'''Peringatan:''' Anda tidak menyatakan ringkasan suntingan. Klik '''Simpan''' sekali lagi untuk menyimpan suntingan ini tanpa ringkasan.",
"selfredirect": "<strong>Amaran:</strong> Anda sedang melencongkan laman ini kepada dirinya sendiri.\nMungkin anda telah menyatakan sasaran yang salah untuk lencongan ini ataupun sedang tersalah menyunting halaman.\nJika anda mengklik \"{{int:savearticle}}\" semula, maka lencongan tetap akan dihasilkan.",
"missingcommenttext": "Sila masukkan komen dalam ruangan di bawah.",
- "missingcommentheader": "'''Peringatan:''' Anda tidak menyatakan tajuk bagi komen ini. Klik '''{{int:savearticle}}''' sekali lagi untuk menyimpan suntingan ini tanpa tajuk.",
+ "missingcommentheader": "<strong>Peringatan:</strong> Anda belum menyatakan tajuk perkara bagi komen ini.\nJika anda klik '''{{int:savearticle}}''' sekali lagi, suntingan anda akan tersimpan tanpa tajuk.",
"summary-preview": "Pralihat ringkasan:",
- "subject-preview": "Pralihat tajuk:",
+ "subject-preview": "Pralihat perkara:",
"previewerrortext": "Ralat berlaku ketika cuba mempratayangkan hasil suntingan anda.",
"blockedtitle": "Pengguna disekat",
"blockedtext": "<strong>Nama pengguna atau alamat IP anda telah disekat.</strong>\n\nSekatan ini dilakukan oleh $1.\nSebab yang telah diberikan ialah <em>$2</em>.\n\n* Sekatan mula: $8\n* Sekatan tamat: $6\n* Pengguna sasaran: $7\n\nAnda boleh hubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|penyelia]] yang lain untuk membincangkan sekatan ini.\n\nSila ambil perhatian bahawa anda tidak boleh menggunakan ciri \"kirim e-mel kepada pengguna ini\" kecuali sekiranya anda telah menetapkan alamat e-mel yang sah dalam [[Special:Preferences|keutamaan pengguna]] anda dan anda tidak disekat daripada menggunakannya.\n\nAlamat IP semasa anda ialah $3, dan ID sekatan ialah #$5.\nSila sertakan maklumat-maklumat di atas dalam sebarang pertanyaan yang anda membuat.",
"yourdiff": "Perbezaan",
"copyrightwarning": "Sila ambil perhatian bahawa semua sumbangan kepada {{SITENAME}} akan dikeluarkan di bawah $2 (lihat $1 untuk butiran lanjut). Jika anda tidak mahu tulisan anda disunting sewenang-wenangnya oleh orang lain dan diedarkan secara bebas, maka jangan kirim di sini.<br />\nAnda juga berjanji bahawa ini adalah hasil kerja tangan anda sendiri, atau disalin daripada domain awam atau mana-mana sumber bebas lain.\n'''JANGAN KIRIM KARYA HAK CIPTA ORANG LAIN TANPA KEBENARAN!'''",
"copyrightwarning2": "Sila ambil perhatian bahawa semua sumbangan terhadap {{SITENAME}} boleh disunting, diubah, atau dipadam oleh penyumbang lain. Jika anda tidak mahu tulisan anda disunting sewenang-wenangnya, maka jangan kirim di sini.<br />\nAnda juga berjanji bahawa ini adalah hasil kerja tangan anda sendiri, atau\ndisalin daripada domain awam atau mana-mana sumber bebas lain (lihat $1 untuk butiran lanjut).\n'''JANGAN KIRIM KARYA HAK CIPTA ORANG LAIN TANPA KEBENARAN!'''",
+ "editpage-cannot-use-custom-model": "Model kandungan laman ini tidak boleh diubah.",
"longpageerror": "'''Ralat: Teks yang anda serahkan itu panjangnya {{PLURAL:$1|1|$1}} kilobait, iaitu lebih panjang daripada had maksimum {{PLURAL:$2|1|$2}} kilobait.'''\nOleh itu, ia tidak boleh disimpan.",
"readonlywarning": "'''Amaran: Pangkalan data ini dikunci untuk tujuan penyelenggaraan , maka anda tidak akan dapat menyimpan suntingan anda buat sekarang.'''\nAnda boleh menyalin tampal teks anda pada fail teks dan menyimpannya untuk lain kali.\n\nPenyelia yang menguncinya memberikan penjelasan ini: $1",
"protectedpagewarning": "'''Amaran: Laman ini telah dikunci supaya hanya mereka yang mempunyai keistimewaan penyelia boleh menyuntingnya.'''\nMasukan log terakhir ditunjukkan di bawah untuk rujukan:",
"semiprotectedpagewarning": "'''Nota:''' Laman ini telah dikunci agar hanya pengguna berdaftar sahaja boleh menyuntingnya.\nMasukan log terakhir ditunjukkan di bawah untuk rujukan:",
- "cascadeprotectedwarning": "'''Amaran:''' Laman ini telah dikunci, oleh itu hanya penyelia boleh menyuntingnya. Ini kerana ia termasuk dalam {{PLURAL:$1|laman|laman-laman}} berikut yang dilindungi secara melata:",
+ "cascadeprotectedwarning": "<strong>Amaran:</strong> Laman ini telah dikunci supaya hanya pengguna bertaraf penyelia boleh menyuntingnya kerana ia termasuk dalam {{PLURAL:$1|laman|laman-laman}} berikut yang dilindungi secara melata:",
"titleprotectedwarning": "'''Amaran: Laman ini telah dikunci hingga [[Special:ListGroupRights|hak-hak tertentu]] diperlukan untuk menciptanya.'''\nMasukan log terakhir ditunjukkan di bawah untuk rujukan:",
"templatesused": "{{PLURAL:$1|Templat|Templat}} yang digunakan dalam laman ini:",
"templatesusedpreview": "{{PLURAL:$1|Templat|Templat}} yang digunakan dalam pralihat ini:",
"permissionserrors": "Ralat kebenaran",
"permissionserrorstext": "Anda tidak mempunyai keizinan untuk berbuat demikian atas {{PLURAL:$1|sebab|sebab-sebab}} berikut:",
"permissionserrorstext-withaction": "Anda tidak mempunyai keizinan untuk $2, atas {{PLURAL:$1|sebab|sebab-sebab}} berikut:",
+ "contentmodelediterror": "Anda tidak boleh menyunting semakan ini kerana model kandungannya ialah <code>$1</code> padahal model kandungan semasa laman ini ialah <code>$2</code>.",
"recreate-moveddeleted-warn": "'''Amaran: Anda sedang mencipta semula sebuah laman yang pernah dihapuskan.'''\n\nAnda harus mempertimbangkan perlunya menyunting laman ini.\nUntuk rujukan, yang berikut ialah log penghapusan bagi laman ini:",
"moveddeleted-notice": "Laman ini telah dihapuskan.\nLog penghapusan bagi laman ini dilampirkan di bawah untuk rujukan.",
+ "moveddeleted-notice-recent": "Maaf, laman ini baru-baru sahaja dihapuskan (dalam 24 jam yang lepas).\nLog penghapusan dan pemindahan untuk laman ini dinyatakan di bawah sebagai rujukan.",
"log-fulllog": "Lihat log lengkap",
"edit-hook-aborted": "Suntingan anda telah dibatalkan oleh penyangkuk. Tiada sebab diberikan.",
"edit-gone-missing": "Laman tersebut telah dihapuskan dan tidak dapat dikemaskinikan.",
"content-model-css": "CSS",
"content-json-empty-object": "Objek kosong",
"content-json-empty-array": "Tatasusunan kosong",
+ "duplicate-args-warning": "<strong>Amaran:</strong> [[:$1]] sedang memanggil [[:$2]] dengan lebih daripada satu nilai untuk parameter \"$3\". Hanya nilai terakhir yang diberikan akan digunakan.",
"duplicate-args-category": "Laman yang menggunakan argumen pendua dalam panggilan templat",
"duplicate-args-category-desc": "Laman ini mengandungi panggilan templat yang menggunakan pendua argumen seperti <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> atau <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "Amaran: Laman ini mengandungi terlalu banyak panggilan fungsi penghurai yang intensif.\n\nHad panggilan ialah $2, sekarang terdapat $1 panggilan.",
"search-category": "(kategori $1)",
"search-file-match": "(sepadan dengan kandungan fail)",
"search-suggest": "Maksud anda, $1?",
+ "search-rewritten": "Memaparkan hasil untuk $1. Cari $2 pula.",
"search-interwiki-caption": "Projek-projek lain",
"search-interwiki-default": "Hasil dari $1:",
"search-interwiki-more": "(lagi)",
"showingresultsinrange": "Yang berikut adalah {{PLURAL:$1|<strong>satu</strong> hasil|sebanyak <strong>$1</strong> hasil}} dalam julat #<strong>$2</strong> hingga #<strong>$3</strong>.",
"search-showingresults": "{{PLURAL:$4|Hasil <strong>$1</strong> / <strong>$3</strong>|Hasil <strong>$1 - $2</strong> / <strong>$3</strong>}}",
"search-nonefound": "Tiada hasil yang sepadan dengan pertanyaan.",
+ "search-nonefound-thiswiki": "Tiada hasil yang sepadan dengan pertanyaan di tapak ini.",
"powersearch-legend": "Carian lanjutan",
"powersearch-ns": "Cari dalam ruang nama:",
"powersearch-togglelabel": "Pilih:",
"prefs-watchlist-token": "Token senarai pantau:",
"prefs-misc": "Pelbagai",
"prefs-resetpass": "Tukar kata laluan",
- "prefs-changeemail": "Tukar E-mel",
+ "prefs-changeemail": "Tukar atau padamkan alamat e-mel",
"prefs-setemail": "Tetapkan alamat e-mel",
"prefs-email": "Pilihan e-mel",
"prefs-rendering": "Penampilan",
"rows": "Baris:",
"columns": "Lajur:",
"searchresultshead": "Cari",
- "stub-threshold": "Ambang bagi pemformatan <a href=\"#\" class=\"stub\">pautan ke rencana ringkas</a> (bait):",
+ "stub-threshold": "Ambang untuk pemformatan pautan tunas ($1):",
+ "stub-threshold-sample-link": "contoh",
"stub-threshold-disabled": "Dimatikan",
"recentchangesdays": "Bilangan hari dalam perubahan terkini:",
"recentchangesdays-max": "(had $1 hari)",
"prefs-help-recentchangescount": "Ini termasuklah perubahan terkini, sejarah laman dan log.",
"prefs-help-watchlist-token2": "Inilah kunci rahsia kepada suapan web senarai pantau anda.\nSesiapa yang mengetahuinya akan boleh membaca senarai pantau anda, jadi jangan kongsinya.\n[[Special:ResetTokens|Klik di sini jika anda perlu mengesetnya semula]].",
"savedprefs": "Keutamaan anda disimpan.",
+ "savedrights": "Hak pengguna {{GENDER:$1|$1}} telah disimpan.",
"timezonelegend": "Zon waktu:",
"localtime": "Waktu tempatan:",
"timezoneuseserverdefault": "Gunakan tetapan sediaan wiki ($1)",
"badsig": "Tandatangan mentah tidak sah; sila semak tag HTML.",
"badsiglength": "Tandatangan anda tidak boleh melebihi $1 aksara.",
"yourgender": "Jantina anda?",
- "gender-unknown": "Tidak dinyatakan",
+ "gender-unknown": "Apabila menyebut anda, perisian anakn menggunakan kata-kata yang neutral jantina seboleh-bolehnya",
"gender-male": "Lelaki",
"gender-female": "Perempuan",
"prefs-help-gender": "Pilihan: Digunakan oleh perisian ini untuk merujuk jantina anda dengan betul. Maklumat ini akan didedahkan kepada awam.",
"rcshowhidemine": "$1 suntingan saya",
"rcshowhidemine-show": "Paparkan",
"rcshowhidemine-hide": "Sorokkan",
+ "rcshowhidecategorization": "$1 pengkategorian laman",
+ "rcshowhidecategorization-show": "Paparkan",
+ "rcshowhidecategorization-hide": "Sorokkan",
"rclinks": "Paparkan $1 perubahan terakhir sejak $2 hari yang lalu<br />$3",
"diff": "beza",
"hist": "sej",
"unpatrolledletter": "!",
"number_of_watching_users_pageview": "[$1 pemantau]",
"rc_categories": "Hadkan kepada kategori (asingkan dengan \"|\")",
- "rc_categories_any": "Semua",
+ "rc_categories_any": "Mana-mana yang terpilih",
"rc-change-size": "$1",
"rc-change-size-new": "$1 bait selepas perubahan",
"newsectionsummary": "/* $1 */ bahagian baru",
"recentchangeslinked-summary": "Laman khas ini menyenaraikan perubahan terkini bagi laman-laman yang dipaut. Laman-laman yang terdapat dalam senarai pantau anda ditandakan dengan '''teks tebal'''.",
"recentchangeslinked-page": "Nama laman:",
"recentchangeslinked-to": "Paparkan perubahan pada laman yang mengandungi pautan ke laman yang diberikan",
+ "recentchanges-page-added-to-category": "[[:$1]] ditambahkan kepada kategori",
+ "recentchanges-page-added-to-category-bundled": "[[:$1]] dan {{PLURAL:$2|satu|$2}} lagi halaman ditambahkan kepada kategori",
+ "recentchanges-page-removed-from-category": "[[:$1]] digugurkan dari kategori",
+ "recentchanges-page-removed-from-category-bundled": "[[:$1]] dan {{PLURAL:$2|satu|$2}} lagi halaman digugurkan dari kategori",
+ "autochange-username": "Perubahan automatik MediaWiki",
"upload": "Muat naik fail",
"uploadbtn": "Muat naik fail",
"reuploaddesc": "Kembali ke borang muat naik",
"uploaddisabledtext": "Ciri muat naik fail dimatikan.",
"php-uploaddisabledtext": "Pemuatnaikan fail PHP dilumpuhkan. Sila semak tetapan file_uploads.",
"uploadscripted": "Fail ini mengandungi kod HTML atau skrip yang boleh disalahtafsirkan oleh pelayar web.",
- "upload-scripted-pi-callback": "Tidak dapat memuat naik fail yang mengandungi arahan pemprosesan hamparan xml.",
+ "upload-scripted-pi-callback": "Tidak dapat memuat naik fail yang mengandungi arahan pemprosesan hamparan XML.",
"uploaded-script-svg": "Terdapat elemen terskrip \"$1\" dalam fail SVG yang dimuat naik.",
"uploaded-hostile-svg": "Terdapat CSS yang tidak selamat dalam elemen stail fail SVG yang dimuat naik.",
"uploaded-event-handler-on-svg": "Penetapan atribut <i>event-handler</i> <code>$1=\"$2\"</code> tidak dibenarkan dalam fail SVG.",
"uploaded-setting-event-handler-svg": "Dilarang menetapkan atribut <i>event-handler</i>, terdapat <code><$1 $2=\"$3\"></code> dalam fail SVG yang dimuat naik.",
"uploaded-setting-href-svg": "Dilarang menggunakan teg \"set\" untuk menambahkan atribut \"href\" kepada elemen induk.",
"uploaded-wrong-setting-svg": "Dilarang menggunakan teg \"set\" untuk menambah sasaran jauh/data/skrip ke sebarang atribut. Terdapat <code><set to=\"$1\"></code> dalam fail SVG yang dimuat naik.",
+ "uploaded-setting-handler-svg": "SVG yang menentukan atribut \"handler\" dengan remote/data/script disekat. Terdapat <code>$1=\"$2\"</code> dalam fail SVG yang dimuat naik.",
"uploaded-image-filter-svg": "Terdapat penapis imej dengan URL: <code><$1 $2=\"$3\"></code> dalam fail SVG yang dimuat naik.",
"uploadscriptednamespace": "Fail SVG ini mengandungi ruang nama terlarang \"$1\"",
"uploadinvalidxml": "XML dalam fail yang dimuat naik ini tidak dapat dihuraikan.",
"upload-too-many-redirects": "URL ini mengandungi terlalu banyak lencongan",
"upload-http-error": "Berlaku ralat HTTP: $1",
"upload-copy-upload-invalid-domain": "Muat naik salin tidak terdapat dari domain ini.",
+ "upload-dialog-title": "Muat naik fail",
+ "upload-dialog-button-cancel": "Batalkan",
+ "upload-dialog-button-done": "Siap",
+ "upload-dialog-button-save": "Simpan",
+ "upload-dialog-button-upload": "Muat naik",
+ "upload-form-label-select-file": "Pilih fail",
+ "upload-form-label-infoform-title": "Butiran",
+ "upload-form-label-infoform-name": "Nama",
+ "upload-form-label-infoform-description": "Keterangan",
+ "upload-form-label-usage-title": "Penggunaan",
+ "upload-form-label-usage-filename": "Nama fail",
+ "foreign-structured-upload-form-label-own-work": "Ini ialah karya saya sendiri",
+ "foreign-structured-upload-form-label-infoform-categories": "Kategori",
+ "foreign-structured-upload-form-label-infoform-date": "Tarikh",
+ "foreign-structured-upload-form-label-not-own-work-local-local": "Anda mungkin juga mahu mencuba [[Special:Upload|laman muat naik yang asal]].",
"backend-fail-stream": "Fail $1 tidak dapat distrimkan.",
"backend-fail-backup": "Fail $1 tidak dapat disandarkan.",
"backend-fail-notexists": "Fail $1 tidak wujud.",
"cant-move-to-user-page": "Anda tidak mempunyai keizinan untuk memindahkan sesebuah laman ke mana-mana laman pengguna (kecuali sebagai sublamannya sahaja).",
"cant-move-category-page": "Anda tidak mempunyai kebenaran untuk memindah laman-laman kategori.",
"cant-move-to-category-page": "Anda tidak mempunyai kebenaran untuk memindah sebuah laman ke sebuah laman kategori.",
- "newtitle": "Ke tajuk baru:",
+ "newtitle": "Tajuk baru:",
"move-watch": "Pantau laman ini",
"movepagebtn": "Pindahkan laman",
"pagemovedsub": "Pemindahan berjaya",
"tooltip-ca-nstab-main": "Lihat laman kandungan",
"tooltip-ca-nstab-user": "Lihat laman pengguna",
"tooltip-ca-nstab-media": "Lihat laman media",
- "tooltip-ca-nstab-special": "Ini adalah sebuah laman khas, anda tidak boleh menyunting laman ini secara terus.",
+ "tooltip-ca-nstab-special": "Ini adalah laman khas yang tidak boleh disunting.",
"tooltip-ca-nstab-project": "Lihat laman projek",
"tooltip-ca-nstab-image": "Lihat laman imej",
"tooltip-ca-nstab-mediawiki": "Lihat pesanan sistem",
"spam_reverting": "Membalikkan kepada versi terakhir yang tidak mengandungi pautan ke $1",
"spam_blanking": "Mengosongkan semua semakan yang mengandungi pautan ke $1",
"spam_deleting": "Menghapuskan semua semakan yang mengandungi pautan ke $1",
- "simpleantispam-label": "Pemeriksaan anti-spam.\n'''JANGAN''' isi ruangan ini!",
+ "simpleantispam-label": "Pemeriksaan anti-spam.\n<strong>Jangan</strong> isi ruangan ini!",
"pageinfo-title": "Maklumat untuk \"$1\"",
"pageinfo-not-current": "Maaf, maklumat ini tidak dapat disediakan untuk semakan lama.",
"pageinfo-header-basic": "Maklumat asas",
"pageinfo-robot-index": "Dibenarkan",
"pageinfo-robot-noindex": "Tidak dibenarkan",
"pageinfo-watchers": "Bilangan pemantau halaman",
+ "pageinfo-visiting-watchers": "Bilangan penonton laman yang melawat suntingan terkini",
"pageinfo-few-watchers": "Kurang daripada $1 orang pemantau",
"pageinfo-redirects-name": "Jumlah lencongan ke laman ini",
"pageinfo-subpages-name": "Subhalaman untuk halaman ini",
"version-libraries": "Perpustakaan terpasang",
"version-libraries-library": "Perpustakaan",
"version-libraries-version": "Versi",
+ "version-libraries-license": "Lesen",
+ "version-libraries-description": "Keterangan",
+ "version-libraries-authors": "Pengarang",
"redirect": "Lencongkan mengikut ID fail, pengguna, halaman atau semakan",
"redirect-legend": "Lencongkan ke fail atau halaman",
"redirect-summary": "Halaman khas ini melencong kepada fail (dengan nama fail), halaman (dengan ID semakan atau ID halaman) atau halaman pengguna (dengan ID pengguna berangka). Penggunaan: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], atau [[{{#Special:Redirect}}/user/101]].",
"special-characters-title-endash": "sengkang en",
"special-characters-title-emdash": "sengkang em",
"special-characters-title-minus": "tanda tolak",
+ "mw-widgets-dateinput-no-date": "Tarik belum dipilih",
+ "mw-widgets-titleinput-description-new-page": "laman belum wujud",
+ "mw-widgets-titleinput-description-redirect": "melencong ke $1",
"api-error-blacklisted": "Sila pilih tajuk yang berbeza dan deskriptif."
}
"tog-previewonfirst": "Ozuta ezikačondu kerras, ku edituičendu zavoditah",
"tog-enotifwatchlistpages": "Työnnä minule sähköpoštu minun valvondulistal olijoin sivuloin kohenduksis",
"tog-enotifusertalkpages": "Työnnä minule sähköpoštu minun paginsivun muutoksis",
- "tog-enotifminoredits": "Ilmoita minule pienisgi korjavuksis sähköpoštale",
+ "tog-enotifminoredits": "Ilmoita minule pienisgi kohenduksis sähköpoštale",
"tog-enotifrevealaddr": "Näytä minun sähköpoštuadressii muile lähetettylöis ilmoituksis",
"tog-shownumberswatching": "Ozuta tädä sivuu tarkailevien käyttäjien miäriä",
"tog-oldsig": "Nygöine allekirjutus:",
"and": " da",
"qbfind": "Eči",
"qbbrowse": "Livua",
- "qbedit": "Korjata",
+ "qbedit": "Kohendele",
"qbpageoptions": "Tämä sivu",
"qbmyoptions": "Minun sivut",
"faq": "PKK",
"view": "Kačo",
"view-foreign": "Kačo saital $1",
"edit": "Kohendele",
- "edit-local": "Edituiče paikallistu kuvavustu",
+ "edit-local": "Kohendele paikallistu kuvavustu",
"create": "Luaji",
"create-local": "Ližiä paikalline kuvavus",
"editthispage": "Kohendele tädä sivuu",
"currentevents-url": "Project:Aijankohtazet tapahtumat",
"disclaimers": "Kieldävymine vastuos",
"disclaimerpage": "Project:Vastuos kieldävymine",
- "edithelp": "Abu korjuamizeh",
+ "edithelp": "Abu kohendelemizeh",
"helppage-top-gethelp": "Kyzy abuu",
"mainpage": "Piäsivu",
"mainpage-description": "Piäsivu",
"userpage-userdoesnotexist-view": "Käyttäitunnustu ”$1” ei ole registruittu.",
"updated": "(Päivitetty)",
"continue-editing": "Mene edituičendualovehele",
- "editing": "Edituijah sivuu $1",
+ "editing": "Kohendellah sivuu $1",
"creating": "Luajitah sivuu \"$1\"",
- "editingsection": "Korjuandu $1 (alalugu)",
+ "editingsection": "Kohendellah $1 (alalugu)",
"editingcomment": "Edituijah $1 (uuzi sektsii)",
"yourtext": "Sinun tekstu",
"yourdiff": "Erot",
"powersearch-toggleall": "Kai",
"powersearch-togglenone": "Nimidä",
"mypreferences": "Azetukset",
- "prefs-edits": "Edituičendoi kaikkiedah:",
+ "prefs-edits": "Kohenduksii kaikkiedah:",
"prefs-skin": "Kettu",
"prefs-user-pages": "Käyttäisivut",
"prefs-watchlist": "Valvondulistu",
"group-user": "Käyttäjät",
"group-all": "(kai)",
"right-read": "Lugie sivuloi",
- "right-edit": "Edituija sivuloi",
+ "right-edit": "Kohendella sivuloi",
"right-createpage": "Luadie sivuloi (kudamat ei olla paginsivuloi)",
"right-createtalk": "Luadie paginsivuloi",
"right-createaccount": "Luadie uuzii käyttäitunnuksii",
"recentchanges": "Uvvet kohendukset",
"recentchanges-legend": "Tuorehien muutoksien azetukset",
"recentchanges-summary": "Jällitä kaikkii jälgimäzet muutokset wikih täl sivul.",
- "recentchanges-label-newpage": "Tämä korjavus on johtanuh uvven sivun luadimizeh",
+ "recentchanges-label-newpage": "Tämä kohendus on johtanuh uvven sivun luadimizeh",
"recentchanges-label-minor": "Tämä on pieni kohendus",
- "recentchanges-label-bot": "Tämän muutoksen on luadinuh bot",
+ "recentchanges-label-bot": "Tämän kohenduksen on luadinuh bot",
"recentchanges-label-unpatrolled": "Tädä korjuandua vie ei ole tarkistettu",
"recentchanges-label-plusminus": "Sivu on kazvanuh [] baital",
"recentchanges-legend-heading": "'''Legendu:'''",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kačo sežo [[Special:NewPages|uuzien sivuloin listu]])",
"rclistfrom": "Ozuta jälgimäzet muutokset algajen $2, $3",
- "rcshowhideminor": "$1 pienet muutokset",
+ "rcshowhideminor": "$1 pienet kohendukset",
"rcshowhideminor-show": "Ozuta",
"rcshowhideminor-hide": "Peitä",
"rcshowhidebots": "$1 botat",
"tooltip-t-permalink": "Pyzyi linki tämän sivun versieh",
"tooltip-ca-nstab-main": "Kačo piäsivun sizäldö",
"tooltip-ca-nstab-user": "Ozuta käyttäisivu",
- "tooltip-ca-nstab-special": "Tämä on erikoine sivu, sidä ei voi korjata",
+ "tooltip-ca-nstab-special": "Tämä on erikoine sivu, sidä ei voi kohendella",
"tooltip-ca-nstab-project": "Ozuta projektusivu",
"tooltip-ca-nstab-image": "Kačo failan sivu",
"tooltip-ca-nstab-template": "Ozuta šablon",
"eauthentsent": "На указанный адрес электронной почты отправлено письмо. \nЧтобы получать письма в дальнейшем, следуйте изложенным там инструкциям для подтверждения, что этот адрес действительно принадлежит вам.",
"throttled-mailpassword": "Функция напоминания пароля уже использовалась в течение {{PLURAL:$1|1=последнего часа|последних $1 часов}}.\nДля предотвращения злоупотреблений, разрешено запрашивать не более одного напоминания {{PLURAL:$1|за $1 час|за $1 часов|за $1 часа|1=в час}}.",
"mailerror": "Ошибка при отправке почты: $1",
- "acct_creation_throttle_hit": "За сутки с вашего IP-адреса {{PLURAL:$1|была создана $1 учётная запись участника|было создано $1 учётных записей участников|1=уже была создана учётная запись участника}}, что является пределом для данного отрезка времени.\nТаким образом, пользователи, обладающие данным IP-адресом, в данный момент больше не могут создавать новых учётных записей.",
+ "acct_creation_throttle_hit": "За сутки с вашего IP-адреса {{PLURAL:$1|была создана $1 учётная запись|было создано $1 учётных записей|были созданы $1 учётных записи|1=уже была создана учётная запись}} — это предельное количество для данного отрезка времени.\nВ результате, пользователи с этим IP-адресом в данный момент больше не могут создавать новых учётных записей.",
"emailauthenticated": "Ваш адрес электронной почты подтверждён $2 в $3.",
"emailnotauthenticated": "Ваш адрес электронной почты ещё не был подтверждён.\nПисьма не будут отправляться ни для одной из следующий функций.",
"noemailprefs": "Адрес электронной почты не был указан, функции вики-движка по работе с эл. почтой отключены.",
"resetpass-abort-generic": "Изменение пароля было прервано расширением.",
"resetpass-expired": "Срок действия вашего пароля истёк. Пожалуйста, установите новый пароль для входа в систему.",
"resetpass-expired-soft": "Срок действия вашего пароля истёк, и теперь он должен быть изменён. Пожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы изменить его позже.",
- "resetpass-validity-soft": "Ð\92аÑ\88 паÑ\80олÑ\8c Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f некоÑ\80Ñ\80екÑ\82нÑ\8bм: $1\n\nПожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы сбросить его позже.",
+ "resetpass-validity-soft": "Ð\97адан некоÑ\80Ñ\80екÑ\82нÑ\8bй паÑ\80олÑ\8c: $1\n\nПожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы сбросить его позже.",
"passwordreset": "Сброс пароля",
"passwordreset-text-one": "Заполните эту форму, чтобы сбросить свой пароль.",
"passwordreset-text-many": "{{PLURAL:$1|Заполните одно из полей для получения временного пароля по электронной почте.}}",
"permissionserrors": "Ошибка прав доступа",
"permissionserrorstext": "У вас нет прав на выполнение этой операции по {{PLURAL:$1|1=следующей причине|следующим причинам}}:",
"permissionserrorstext-withaction": "У вас нет прав на $2 по {{PLURAL:$1|1=следующей причине|следующим причинам}}:",
- "contentmodelediterror": "Ð\92Ñ\8b не можеÑ\82е Ñ\80едакÑ\82иÑ\80оваÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 веÑ\80Ñ\81иÑ\8e, поÑ\81колÑ\8cкÑ\83 еÑ\91 моделÑ\8cÑ\8e Ñ\81одеÑ\80жимого Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f <code>$1</code>, а Ñ\82екÑ\83Ñ\89аÑ\8f моделÑ\8c Ñ\81одеÑ\80жимого страницы — <code>$2</code>.",
+ "contentmodelediterror": "Ð\92Ñ\8b не можеÑ\82е Ñ\80едакÑ\82иÑ\80оваÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 веÑ\80Ñ\81иÑ\8e, поÑ\81колÑ\8cкÑ\83 моделÑ\8c еÑ\91 Ñ\81одеÑ\80жаниÑ\8f â\80\94 <code>$1</code>, а Ñ\82екÑ\83Ñ\89аÑ\8f моделÑ\8c Ñ\81одеÑ\80жаниÑ\8f страницы — <code>$2</code>.",
"recreate-moveddeleted-warn": "'''Внимание. Вы пытаетесь воссоздать страницу, которая ранее удалялась.'''\n\nПроверьте, действительно ли вам нужно воссоздавать эту страницу.\nНиже приведены журналы удалений и переименований этой страницы.",
"moveddeleted-notice": "Эта страница была удалена.\nДля справки ниже показаны соответствующие записи из журналов удалений и переименований.",
"moveddeleted-notice-recent": "К сожалению, эта страница была недавно удалена (в течение последних 24 часов).\nНиже для справки приведены журналы удаления и перемещения для этой страницы.",
"htmlform-cloner-create": "Өссө эп",
"htmlform-cloner-delete": "Сот",
"htmlform-cloner-required": "Саатар биирин толоруохтаах эбиккин.",
+ "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": "$3 сирэйи $1 соппут",
"revdelete-uname-unhid": "кыттааччы аата көстөр буолбут",
"revdelete-restricted": "хааччахтааһын администраатардарга сыһыаннаах",
"revdelete-unrestricted": "хааччахтааһын админстраатардартан уһулунна",
+ "logentry-block-block": "$1 маннык болдьоххо $5 $6 {{GENDER:$4|$3}} {{GENDER:$2|хааччахтаабыт}}",
"logentry-block-unblock": "$1 {{GENDER:$2|хааччаҕын суох гыммыт}} {{GENDER:$4|$3}}",
"logentry-block-reblock": "$1 хааччах болдьоҕун {{GENDER:$4|$3}} манныкка $5 $6 {{GENDER:$2|уларыппыт}}",
"logentry-suppress-block": "$1 маннык болдьоххо $5 $6 {{GENDER:$4|$3}} {{GENDER:$2|хааччаҕын суох гыммыт}}",
"logentry-suppress-reblock": "$1 хааччах болдьоҕун {{GENDER:$4|$3}} манныкка $5 $6 {{GENDER:$2|уларыппыт}}",
+ "logentry-import-upload": "$1 {{GENDER:$2|киллэрбит}} $3 билэни хачайдыыр ньыманнан",
+ "logentry-import-interwiki": "$1 {{GENDER:$2|киллэрбит}} $3 атын биикиттэн",
+ "logentry-merge-merge": "$1 {{GENDER:$2|холбообут}} мантан $3 манна $4 ($5 диэри торумнара)",
"logentry-move-move": "$1 $3 сирэй аатын маннык $4 уларыппыт",
"logentry-move-move-noredirect": "$3 сирэй аатын $1 маннык $4 уларыппыт, утаарыы-сирэй хаалларбатах",
"logentry-move-move_redir": "$3 сирэйи $1 диэн кыттааччы манныкка $4 уларыппыт (утаарыы үрдүнэн)",
"logentry-newusers-create2": "$3 кыттааччы аатын $1 бэлиэтээтэ",
"logentry-newusers-byemail": "$3 бэлиэ-ааты $1 оҥорбут, киирии тыла электрон почтанан ыытыллыбыт",
"logentry-newusers-autocreate": "$1 бэлиэ-аат аптамаатынан бэлиэтэннэ",
+ "logentry-protect-move_prot": "$1 көмүскэл нарылааһынан мантан $4 манна $3 {{GENDER:$2|көһөрбүт}}",
+ "logentry-protect-unprotect": "$1 мантан $3 көмүскэли {{GENDER:$2|суох гыммыт}}",
"logentry-protect-protect": "$1 {{GENDER:$2|көмүскээтэ}} $3 $4",
"logentry-protect-protect-cascade": "$1 {{GENDER:$2|көмүскээбит}} $3 $4 [каскаадынан]",
"logentry-protect-modify": "$1 {{GENDER:$2|уларыппыт}}: $3 $4 көмүскэлин таһымын",
"limitreport-title": "Анализатор дааннайдара:",
"limitreport-cputime": "Процессору туһаныы",
"limitreport-cputime-value": "$1 сөкүүндэ",
+ "limitreport-walltime": "Тута көрдөрөр эрэсиим",
"limitreport-walltime-value": "$1 {{PLURAL:$1|сөкүүндэ|сөкүүндэ}}",
"limitreport-ppvisitednodes": "Препроцессор көрбүт сирдэрин ахсаана",
"limitreport-ppgeneratednodes": "Препроцессор оҥорбут түмүктэрин (node) ахсаана",
"expand_templates_generate_xml": "XML-ы мас курдук көрдөр",
"expand_templates_generate_rawhtml": "HTML-ы көрдөр",
"expand_templates_preview": "Холоон көрүү",
+ "pagelanguage": "Сирэй тылын талыы",
"pagelang-name": "Сирэй",
"pagelang-language": "Омугун тыла",
"pagelang-use-default": "Сүрүн тылы тутун",
"right-pagelang": "Сирэй тылын уларыт",
"action-pagelang": "сирэй тылын уларытар буол",
"log-name-pagelang": "Тылы уларытыы сурунаала",
+ "log-description-pagelang": "Сирэй тылын талыы сурунаала.",
+ "logentry-pagelang-pagelang": "$1 кыттааччы $3 сирэй тылын мантан $4 манныкка $5 {{GENDER:$2|уларыппыт}}.",
"default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (холбоммут)",
"default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''арахсыбыт''')",
"mediastatistics": "Миэдьийэ ыстатыыстыката",
+ "mediastatistics-summary": "Киирбит билэ көрүҥүн ыстатыыстыката. Билэ тиһэх эрэ торумун көрдөрөр. Урукку уонна сотуллубут билэлэр ааҕыллыбаттар.",
"mediastatistics-nbytes": "$1 баайт ($2; $3%)",
"mediastatistics-table-mimetype": "MIME көрүҥэ",
"mediastatistics-table-extensions": "Туһаныллыан сөптөөх кэҥэтиилэр",
"special-characters-title-minus": "минус бэлиэтэ",
"mw-widgets-dateinput-no-date": "Күнэ-дьыла ыйыллыбатах",
"mw-widgets-titleinput-description-new-page": "сирэй суох эбит",
- "mw-widgets-titleinput-description-redirect": "манна $1 утаарыы"
+ "mw-widgets-titleinput-description-redirect": "манна $1 утаарыы",
+ "api-error-blacklisted": "Бука диэн өйдөнөр аатта тал дуу."
}
"noname": "توهان جو ڄاڻايل يُوزرنانءُ ناقابل ڪار آهي.",
"loginsuccesstitle": "لاگ اِن ڪامياب",
"loginsuccess": "'''هاڻي توهان {{SITENAME}} تي بطور \"$1\" لاگ اِن ٿيل آهيو.'''",
- "nosuchuser": "\"$1\" نالي سان ڪو بہ يوزر نہ آهي. يُوزرنانءُ، ننڍن وڏن اکرن ۾ امتياز ڪري ٿو. هِجي چڪاسيو، يا نئون کاتو کوليو.",
+ "nosuchuser": "\"$1\" نالي سان ڪو بہ يوزر نہ آهي. \"$1\".\n ننڍن وڏن اکرن ۾ امتياز ڪرڻ لازمي آهي. \nهِجي چڪاسيو،يا [[Special:UserLogin/signup|نئون کاتو تخليق ڪريو]]",
"nosuchusershort": "\"$1\" نالي ڪو بہ يُوزر ناهي.\nهِجي جي پڪ ڪندا.",
"nouserspecified": "توهان کي ڪو يوزرنانءُ ڄاڻائڻو پوندو.",
"login-userblocked": "هيءُ يُوزر بندشيل آهي. لاگ اِن جي اجازت نہ ٿي ڏجي.",
"passwordtooshort": "ڳجھي لفظ گھٽ ۾ گھٽ {{PLURAL:$1|1 اکر|$1 اکرَن}} تي ٻڌل هوڻ گھرجي.",
"passwordtoolong": "ڳجھو لفظ {{PLURAL:$1|1 اکر|$1 اکرن}} کان وڏو نہ ٿو ٿي سگھي.",
"password-name-match": "توهان جو ڳجھو لفظ توهان جي يوزرنانءُ کان مختلف هجڻ گھرجي.",
- "mailmypassword": "ڳجھو لفظ برق ٽپاليو",
+ "mailmypassword": "ڳجھو لفظ ٻيهر ترتيب ڪريو",
"passwordremindertitle": "{{SITENAME}} لاءِ نئون عارضي ڳجھو لفظ",
"passwordremindertext": "ڪنهن (شايد توهان آءِ پي پتي $1 تان) اسان کي {{SITENAME}} ($4) لاءِ نئون ڳجھو لفظ اماڻڻ جي گھُرَ ڪئي.\n\nهاڻي يوزر \"$2\" لاءِ ڳجھو لفظ \"$3\" آهي. توهان کي هينئر ئي لاگ اِن ٿي پنهنجو ڳجھو لفظ تبديل ڪرڻ گھرجي.\n\nجيڪڏهن اها گھُرَ اوهان نه ڪئي هئي، يا هاڻي اوهان کي پنهنجو ڳجھو لفظ ياد اچي ويو آهي ۽ توهان ان کي تبديل ڪرڻ نه ٿا چاهيو، ته توهان هن نياپي کي نظر انداز ڪندي پنهنجو پراڻو ڳجھو لفظ ئي استعمال ڪري سگھو ٿا.",
"noemail": "يُوزر \"$1\" جي ڪو به برق ٽپال پتو درج ٿيل ناهي.",
"cannotchangeemail": "هن وڪيءَ تي کاتيدار جو برق ٽپال پتو بدلائي نہ ٿو سگھجي.",
"emaildisabled": "هيءَ سرزمين برق ٽپال اماڻي نہ ٿي سگھي.",
"accountcreated": "کاتو کلي چڪو",
- "accountcreatedtext": "$1 نالي يوزر کاتو کلي چڪو آھي.",
+ "accountcreatedtext": "يوزر کاتو [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) جي لاءِ تخليق ٿي چڪو آهي.",
"createaccount-title": "{{SITENAME}} تي کاتو کولڻ",
"login-throttled": "توهان تازو ئي لاگ اِن ٿيڻ جون هيڪانديون گھڻيون ڪوششون ڪيون آهن. مهرباني ڪري $1 لاءِ ترسي پوءِ وري ڪوشش ڪريو.",
"login-abort-generic": "توهان جو لاگ اِن ناڪام ويو.",
"Nemo bis",
"Aktron",
"Srdjan m",
- "Macofe"
+ "Macofe",
+ "Сербијана"
]
},
"tog-underline": "Подвлачење веза:",
"tog-minordefault": "Означавај све измене као мање",
"tog-previewontop": "Прикажи преглед пре оквира за уређивање",
"tog-previewonfirst": "Прикажи преглед на првој измени",
- "tog-enotifwatchlistpages": "Ð\9fоÑ\88аÑ\99и ми е-поÑ\80Ñ\83кÑ\83 када се промени страница или датотека коју надгледам",
- "tog-enotifusertalkpages": "Ð\9fоÑ\88аÑ\99и ми е-поÑ\80Ñ\83кÑ\83 када се промени моја страница за разговор",
- "tog-enotifminoredits": "Ð\9fоÑ\88аÑ\99и ми е-поÑ\80Ñ\83кÑ\83 и за мање измене у страницама и датотекама",
- "tog-enotifrevealaddr": "Ð\9fÑ\80икажи моÑ\98Ñ\83 е-адресу у порукама обавештења",
+ "tog-enotifwatchlistpages": "Ð\9fоÑ\88аÑ\99и ми имеÑ\98л када се промени страница или датотека коју надгледам",
+ "tog-enotifusertalkpages": "Ð\9fоÑ\88аÑ\99и ми имеÑ\98л када се промени моја страница за разговор",
+ "tog-enotifminoredits": "Ð\9fоÑ\88аÑ\99и ми имеÑ\98л и за мање измене у страницама и датотекама",
+ "tog-enotifrevealaddr": "Ð\9fÑ\80икажи моÑ\98Ñ\83 имеÑ\98л адресу у порукама обавештења",
"tog-shownumberswatching": "Прикажи број корисника који надгледају",
"tog-oldsig": "Текући потпис:",
"tog-fancysig": "Сматрај потпис као викитекст (без самоповезивања)",
"tog-watchlisthideanons": "Сакриј измене анонимних корисника са списка надгледања",
"tog-watchlisthidepatrolled": "Сакриј патролиране измене са списка надгледања",
"tog-watchlisthidecategorization": "Сакриј категоризацију страница",
- "tog-ccmeonemails": "Ð\9fоÑ\88аÑ\99и ми копиÑ\98е е-поÑ\80Ñ\83ка које пошаљем другим корисницима",
+ "tog-ccmeonemails": "Ð\9fоÑ\88аÑ\99и ми копиÑ\98е имеÑ\98лова које пошаљем другим корисницима",
"tog-diffonly": "Не приказуј садржај странице испод разлика",
"tog-showhiddencats": "Прикажи скривене категорије",
"tog-norollbackdiff": "Изостави разлику након извршеног враћања",
"category-media-header": "Датотеке у категорији „$1“",
"category-empty": "<div style=\"margin:2em 1em 0 1em; padding:0.5em; border:1px solid #AAA; text-align:center;\">''Ова категорија тренутно не садржи странице или датотеке.''</div>",
"hidden-categories": "{{PLURAL:$1|Сакривена категорија|Сакривене категорије}}",
- "hidden-category-category": "СакÑ\80ивене каÑ\82егоÑ\80иÑ\98е",
+ "hidden-category-category": "Скривене категорије",
"category-subcat-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу поткатегорију.|Ова категорија има {{PLURAL:$1|1=следећу поткатегорију|следеће $1 поткатегорије|следећих $1 поткатегорија}}, од укупно $2.}}",
"category-subcat-count-limited": "Ова категорија садржи {{PLURAL:$1|следећу поткатегорију|следеће $1 поткатегорије|следећих $1 поткатегорија}}.",
"category-article-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу страницу.|{{PLURAL:$1|Следећа страница је|Следеће $1 странице су|Следећих $1 страница је}} у овој категорији, од укупно $2.}}",
"createacct-emailoptional": "Адреса е-поште (опционо)",
"createacct-email-ph": "Унесите вашу адресу е-поште",
"createacct-another-email-ph": "Унесите адресу е-поште",
- "createaccountmail": "Ð\9aоÑ\80иÑ\81Ñ\82иÑ\82е пÑ\80ивÑ\80еменÑ\83, Ñ\81лÑ\83Ñ\87аÑ\98но Ñ\81Ñ\82воÑ\80енÑ\83 лозинкÑ\83 и поÑ\88аÑ\99иÑ\82е на наведенÑ\83 адÑ\80еÑ\81Ñ\83 елекÑ\82Ñ\80онÑ\81ке поÑ\88Ñ\82е",
+ "createaccountmail": "Ð\9aоÑ\80иÑ\81Ñ\82иÑ\82е пÑ\80ивÑ\80еменÑ\83, Ñ\81лÑ\83Ñ\87аÑ\98но Ñ\81Ñ\82воÑ\80енÑ\83 лозинкÑ\83 и поÑ\88аÑ\99иÑ\82е на наведенÑ\83 имеÑ\98л адÑ\80еÑ\81Ñ\83",
"createacct-realname": "Право име (опционо)",
"createaccountreason": "Разлог:",
"createacct-reason": "Разлог",
"mailmypassword": "Ресетуј лозинку",
"passwordremindertitle": "{{SITENAME}} — привремена лозинка",
"passwordremindertext": "Неко, вероватно ви, са ИП адресе $1 је затражио нову лозинку на викију {{SITENAME}} ($4).\nСтворена је привремена лозинка за {{GENDER:$2|корисника|корисницу|корисника}} $2 која гласи $3.\nУколико је ово ваш захтев, сада се пријавите и поставите нову лозинку.\nПривремена лозинка истиче за {{PLURAL:$5|један дан|$5 дана|$5 дана}}.\n\nАко је неко други затражио промену лозинке, или сте се сетили ваше лозинке и не желите да је мењате, занемарите ову поруку.",
- "noemail": "Ð\9dе поÑ\81Ñ\82оÑ\98и е-адреса за {{GENDER:$1|корисника|корисницу}} $1.",
- "noemailcreate": "Ð\9cоÑ\80аÑ\82е навеÑ\81Ñ\82и иÑ\81пÑ\80авнÑ\83 е-адÑ\80еÑ\81Ñ\83",
- "passwordsent": "Ð\9dова лозинка Ñ\98е поÑ\81лаÑ\82а на е-адресу {{GENDER:$1|корисника|кориснице|корисника}} $1.\nПријавите се пошто је примите.",
+ "noemail": "Ð\9dе поÑ\81Ñ\82оÑ\98и имеÑ\98л адреса за {{GENDER:$1|корисника|корисницу}} $1.",
+ "noemailcreate": "Ð\9cоÑ\80аÑ\82е навеÑ\81Ñ\82и иÑ\81пÑ\80авнÑ\83 имеÑ\98л адÑ\80еÑ\81Ñ\83.",
+ "passwordsent": "Ð\9dова лозинка Ñ\98е поÑ\81лаÑ\82а на имеÑ\98л адресу {{GENDER:$1|корисника|кориснице|корисника}} $1.\nПријавите се пошто је примите.",
"blocked-mailpassword": "Вашој ИП адреси је онемогућено уређивање страница, као и могућност захтевања нове лозинке.",
- "eauthentsent": "Ð\9dа наведенÑ\83 е-адÑ\80еÑ\81Ñ\83 Ñ\98е поÑ\81лаÑ\82 поÑ\82вÑ\80дни код.\nÐ\9fÑ\80е него Ñ\88Ñ\82о поÑ\88аÑ\99емо даÑ\99Ñ\9aе поÑ\80Ñ\83ке, пÑ\80аÑ\82иÑ\82е Ñ\83пÑ\83Ñ\82Ñ\81Ñ\82ва Ñ\81 е-поÑ\88Ñ\82е да бисте потврдили да сте ви отворили налог.",
+ "eauthentsent": "Ð\9dа наведенÑ\83 имеÑ\98л адÑ\80еÑ\81Ñ\83 Ñ\98е поÑ\81лаÑ\82 поÑ\82вÑ\80дни код.\nÐ\9fÑ\80е него Ñ\88Ñ\82о поÑ\88аÑ\99емо даÑ\99Ñ\9aе поÑ\80Ñ\83ке, пÑ\80аÑ\82иÑ\82е Ñ\83пÑ\83Ñ\82Ñ\81Ñ\82ва Ñ\81 имеÑ\98ла да бисте потврдили да сте ви отворили налог.",
"throttled-mailpassword": "Порука за промену лозинке је послата у {{PLURAL:$1|1=последњих сат времена|последња $1 сата|последњих $1 сати}}.\nДа бисмо спречили злоупотребу, подсетник шаљемо само једном у року од {{PLURAL:$1|1=сат времена|$1 сата|$1 сати}}.",
"mailerror": "Грешка при слању поруке: $1",
"acct_creation_throttle_hit": "Посетиоци овог викија који користе вашу ИП адресу су већ отворили {{PLURAL:$1|1=један налог|$1 налога|$1 налога}} претходни дан, што је највећи дозвољени број у том временском периоду.\nЗбог тога посетиоци с ове ИП адресе тренутно не могу отворити више налога.",
- "emailauthenticated": "Ð\92аÑ\88а е-адреса је потврђена $2 у $3.",
- "emailnotauthenticated": "Ð\92аÑ\88а е-адреса још није потврђена.\nПоруке неће бити послате ни у једном од следећих случајева.",
- "noemailprefs": "УнеÑ\81иÑ\82е е-адресу како би ове могућности радиле.",
- "emailconfirmlink": "Ð\9fоÑ\82вÑ\80диÑ\82е Ñ\81воÑ\98Ñ\83 е-адресу",
- "invalidemailaddress": "Ð\95-адреса не може бити прихваћена јер је неисправног облика.\nУнесите исправну адресу или оставите празно поље.",
- "cannotchangeemail": "Ð\9dа овом викиÑ\98Ñ\83 не можеÑ\82е пÑ\80омениÑ\82и е-адресу налога.",
- "emaildisabled": "Ð\9eваÑ\98 Ñ\81аÑ\98Ñ\82 не може да Ñ\88аÑ\99е е-поÑ\80Ñ\83ке.",
+ "emailauthenticated": "Ð\92аÑ\88а имеÑ\98л адреса је потврђена $2 у $3.",
+ "emailnotauthenticated": "Ð\92аÑ\88а имеÑ\98л адреса још није потврђена.\nПоруке неће бити послате ни у једном од следећих случајева.",
+ "noemailprefs": "УнеÑ\81иÑ\82е имеÑ\98л адресу како би ове могућности радиле.",
+ "emailconfirmlink": "Ð\9fоÑ\82вÑ\80диÑ\82е Ñ\81воÑ\98Ñ\83 имеÑ\98л адресу",
+ "invalidemailaddress": "Ð\98меÑ\98л адреса не може бити прихваћена јер је неисправног облика.\nУнесите исправну адресу или оставите празно поље.",
+ "cannotchangeemail": "Ð\9dа овом викиÑ\98Ñ\83 не можеÑ\82е пÑ\80омениÑ\82и имеÑ\98л адресу налога.",
+ "emaildisabled": "Ð\9eваÑ\98 Ñ\81аÑ\98Ñ\82 не може да Ñ\88аÑ\99е имеÑ\98лове.",
"accountcreated": "Налог је отворен",
"accountcreatedtext": "Кориснички налог [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) је отворен.",
"createaccount-title": "Отварање корисничког налога за {{SITENAME}}",
- "createaccount-text": "Ð\9dеко Ñ\98е оÑ\82воÑ\80ио налог Ñ\81 ваÑ\88ом е-адресом на {{SITENAME}} ($4) под именом $2 и лозинком $3.\nПријавите се и промените своју лозинку.\n\nАко је ово грешка, занемарите ову поруку.",
+ "createaccount-text": "Ð\9dеко Ñ\98е оÑ\82воÑ\80ио налог Ñ\81 ваÑ\88ом имеÑ\98л адресом на {{SITENAME}} ($4) под именом $2 и лозинком $3.\nПријавите се и промените своју лозинку.\n\nАко је ово грешка, занемарите ову поруку.",
"login-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
"login-abort-generic": "Неуспешна пријава – прекинуто",
"login-migrated-generic": "Ваш налог је мигриран и ваше корисничко више не постоји на овом викију.",
"pt-createaccount": "Отвори налог",
"pt-userlogout": "Одјави ме",
"php-mail-error-unknown": "Непозната грешка у функцији PHP mail().",
- "user-mail-no-addy": "Ð\9fокÑ\83Ñ\88али Ñ\81Ñ\82е да поÑ\88аÑ\99еÑ\82е поÑ\80Ñ\83кÑ\83 без е-адресе.",
- "user-mail-no-body": "Ð\9fокÑ\83Ñ\88ано Ñ\81лаÑ\9aе елекÑ\82Ñ\80онÑ\81ке поÑ\80Ñ\83ке с празним или неразумно кратким садржајем.",
+ "user-mail-no-addy": "Ð\9fокÑ\83Ñ\88али Ñ\81Ñ\82е да поÑ\88аÑ\99еÑ\82е поÑ\80Ñ\83кÑ\83 без имеÑ\98л адресе.",
+ "user-mail-no-body": "Ð\9fокÑ\83Ñ\88ано Ñ\81лаÑ\9aе имеÑ\98ла с празним или неразумно кратким садржајем.",
"changepassword": "Промени лозинку",
"resetpass_announce": "Да бисте завршили пријаву, подесите нову лозинку овде.",
"resetpass_text": "<!-- Овде унесите текст -->",
"passwordreset-username": "Корисничко име:",
"passwordreset-domain": "Домен:",
"passwordreset-capture": "Погледати крајњу поруку?",
- "passwordreset-capture-help": "Ð\90ко ознаÑ\87иÑ\82е овÑ\83 кÑ\83Ñ\9bиÑ\86Ñ\83, е-поÑ\80Ñ\83ка Ñ\81 пÑ\80ивÑ\80еменом лозинком Ñ\9bе биÑ\82и пÑ\80иказана и поÑ\81лаÑ\82а кориснику.",
- "passwordreset-email": "Ð\95-адреса:",
+ "passwordreset-capture-help": "Ð\90ко ознаÑ\87иÑ\82е овÑ\83 кÑ\83Ñ\9bиÑ\86Ñ\83, имеÑ\98л Ñ\81 пÑ\80ивÑ\80еменом лозинком Ñ\9bе биÑ\82и пÑ\80иказан и поÑ\81лаÑ\82 кориснику.",
+ "passwordreset-email": "Ð\98меÑ\98л адреса:",
"passwordreset-emailtitle": "Детаљи налога на викију {{SITENAME}}",
- "passwordreset-emailtext-ip": "Неко, вероватно Ви, са ИП адресе $1 је затражио нову лозинку на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку и наставите користити стару лозинку.",
- "passwordreset-emailtext-user": "{{GENDER:$1|Ð\9aоÑ\80иÑ\81ник Ñ\98е заÑ\82Ñ\80ажио|Ð\9aоÑ\80иÑ\81ниÑ\86а Ñ\98е заÑ\82Ñ\80ажила}} подÑ\81еÑ\82ник о подаÑ\86има за пÑ\80иÑ\98авÑ\83 на викиÑ\98Ñ\83 {{SITENAME}} ($4).\nСледеÑ\9bи {{PLURAL:$3|коÑ\80иÑ\81ниÑ\87ки налог Ñ\98е повезан|коÑ\80иÑ\81ниÑ\87ки налози Ñ\81Ñ\83 повезани}} Ñ\81 овом е-адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.",
+ "passwordreset-emailtext-ip": "Неко (вероватно Ви, са ИП адресе $1) је затражио нову лозинку на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом имејл адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку и наставите користити стару лозинку.",
+ "passwordreset-emailtext-user": "{{GENDER:$1|Ð\9aоÑ\80иÑ\81ник Ñ\98е заÑ\82Ñ\80ажио|Ð\9aоÑ\80иÑ\81ниÑ\86а Ñ\98е заÑ\82Ñ\80ажила}} подÑ\81еÑ\82ник о подаÑ\86има за пÑ\80иÑ\98авÑ\83 на викиÑ\98Ñ\83 {{SITENAME}} ($4).\nСледеÑ\9bи {{PLURAL:$3|коÑ\80иÑ\81ниÑ\87ки налог Ñ\98е повезан|коÑ\80иÑ\81ниÑ\87ки налози Ñ\81Ñ\83 повезани}} Ñ\81 овом имеÑ\98л адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.",
"passwordreset-emailelement": "Корисничко име: \n$1\n\nПривремена лозинка: \n$2",
"passwordreset-emailsent": "Подсетник о лозинци је послат на вашу адресу.",
"passwordreset-emailsent-capture": "Послат је подсетник преко е-поште (приказан доле).",
- "passwordreset-emailerror-capture": "Ð\95-поÑ\80Ñ\83ка за Ñ\80еÑ\81еÑ\82оваÑ\9aе лозинке, пÑ\80иказана иÑ\81под Ñ\98е поÑ\81лаÑ\82а, али слање {{GENDER:$2|кориснику|корисници}} није успело: $1",
- "changeemail": "Ð\9fÑ\80омени или Ñ\83клони е-адресу",
- "changeemail-header": "Промените е-адресу налога",
+ "passwordreset-emailerror-capture": "Ð\98меÑ\98л за Ñ\80еÑ\81еÑ\82оваÑ\9aе лозинке, пÑ\80иказан иÑ\81под Ñ\98е поÑ\81лаÑ\82, али слање {{GENDER:$2|кориснику|корисници}} није успело: $1",
+ "changeemail": "Ð\9fÑ\80омени или Ñ\83клони имеÑ\98л адресу",
+ "changeemail-header": "Попуните овај образац да би сте променили Вашу имејл адресу. Ако жели да ускратите приступ било којој имејл адреси Вашем налогу, оставите празно поље за нову имејл адресу приликом попуњавање обрасца.",
"changeemail-passwordrequired": "Морате унети лозинку да би потврдили ову измену.",
"changeemail-no-info": "Морате бити пријављени да бисте приступили овој страници.",
- "changeemail-oldemail": "ТÑ\80енÑ\83Ñ\82на е-адреса:",
- "changeemail-newemail": "Ð\9dова е-адреса:",
+ "changeemail-oldemail": "ТÑ\80енÑ\83Ñ\82на имеÑ\98л адреса:",
+ "changeemail-newemail": "Ð\9dова имеÑ\98л адреса:",
"changeemail-none": "(ништа)",
"changeemail-password": "Ваша лозинка:",
"changeemail-submit": "Промени",
"subject-preview": "Преглед теме:",
"previewerrortext": "Догодила се грешка приликом приказивања ваших измена.",
"blockedtitle": "Корисник је блокиран",
- "blockedtext": "<strong>Ð\92аÑ\88е коÑ\80иÑ\81ниÑ\87ко име или Ð\98Ð\9f адÑ\80еÑ\81а Ñ\98е блокиÑ\80ана.</strong>\n\nÐ\91локиÑ\80аÑ\9aе Ñ\98е {{GENDER:$4|извÑ\80Ñ\88ио|извÑ\80Ñ\88ила}} $1.\nРазлог: <em>$2</em>.\n\n* Ð\94аÑ\82Ñ\83м блокиÑ\80аÑ\9aа: $8\n* Ð\91локиÑ\80аÑ\9aе иÑ\81Ñ\82иÑ\87е: $6\n* Ð\98ме коÑ\80иÑ\81ника: $7\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ñ\81е {{GENDER:$4|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и}} $1 или [[{{MediaWiki:Grouppage-sysop}}|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\83]] да Ñ\80азÑ\98аÑ\81ниÑ\82е Ñ\81Ñ\82ваÑ\80.\nÐ\9dе можеÑ\82е коÑ\80иÑ\81Ñ\82иÑ\82и могÑ\83Ñ\9bноÑ\81Ñ\82 â\80\9eÐ\9fоÑ\88аÑ\99и поÑ\80Ñ\83кÑ\83 овом коÑ\80иÑ\81никÑ\83â\80\9c ако ниÑ\81Ñ\82е Ñ\83нели иÑ\81пÑ\80авнÑ\83 е-адресу у [[Special:Preferences|подешавањима]].\nВаша блокирана ИП адреса је $3, а ID блокирања $5.\nНаведите све податке изнад при стварању било каквих упита.",
- "autoblockedtext": "Ð\92аÑ\88а Ð\98Ð\9f адÑ\80еÑ\81а Ñ\98е блокиÑ\80ана Ñ\98еÑ\80 Ñ\98Ñ\83 Ñ\98е Ñ\83поÑ\82Ñ\80ебÑ\99авао дÑ\80Ñ\83ги коÑ\80иÑ\81ник, кога Ñ\98е {{GENDER:$4|блокиÑ\80ао|блокиÑ\80ала}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Ð\94аÑ\82Ñ\83м блокиÑ\80аÑ\9aа: $8\n* Ð\91локиÑ\80аÑ\9aе иÑ\81Ñ\82иÑ\87е: $6\n* Ð\98ме коÑ\80иÑ\81ника: $7\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ñ\81е {{GENDER:$4|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и}} $1 или [[{{MediaWiki:Grouppage-sysop}}|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\83]] да Ñ\80азÑ\98аÑ\81ниÑ\82е Ñ\81Ñ\82ваÑ\80.\n\nÐ\9dе можеÑ\82е коÑ\80иÑ\81Ñ\82иÑ\82и могÑ\83Ñ\9bноÑ\81Ñ\82 â\80\9eÐ\9fоÑ\88аÑ\99и поÑ\80Ñ\83кÑ\83 овом коÑ\80иÑ\81никÑ\83â\80\9c ако ниÑ\81Ñ\82е Ñ\83нели иÑ\81пÑ\80авнÑ\83 е-адресу у [[Special:Preferences|подешавањима]].\n\nВаша блокирана ИП адреса је $3, а ID $5.\nНаведите све податке изнад при стварању било каквих упита.",
+ "blockedtext": "<strong>Ð\92аÑ\88е коÑ\80иÑ\81ниÑ\87ко име или Ð\98Ð\9f адÑ\80еÑ\81а Ñ\98е блокиÑ\80ана.</strong>\n\nÐ\91локиÑ\80аÑ\9aе Ñ\98е {{GENDER:$4|извÑ\80Ñ\88ио|извÑ\80Ñ\88ила}} $1.\nРазлог: <em>$2</em>.\n\n* Ð\94аÑ\82Ñ\83м блокиÑ\80аÑ\9aа: $8\n* Ð\91локиÑ\80аÑ\9aе иÑ\81Ñ\82иÑ\87е: $6\n* Ð\98ме коÑ\80иÑ\81ника: $7\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ñ\81е {{GENDER:$4|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и}} $1 или [[{{MediaWiki:Grouppage-sysop}}|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\83]] да Ñ\80азÑ\98аÑ\81ниÑ\82е Ñ\81Ñ\82ваÑ\80.\nÐ\9dе можеÑ\82е коÑ\80иÑ\81Ñ\82иÑ\82и могÑ\83Ñ\9bноÑ\81Ñ\82 â\80\9eÐ\9fоÑ\88аÑ\99и имеÑ\98л овом коÑ\80иÑ\81никÑ\83â\80\9c ако ниÑ\81Ñ\82е Ñ\83нели иÑ\81пÑ\80авнÑ\83 имеÑ\98л адресу у [[Special:Preferences|подешавањима]].\nВаша блокирана ИП адреса је $3, а ID блокирања $5.\nНаведите све податке изнад при стварању било каквих упита.",
+ "autoblockedtext": "Ð\92аÑ\88а Ð\98Ð\9f адÑ\80еÑ\81а Ñ\98е блокиÑ\80ана Ñ\98еÑ\80 Ñ\98Ñ\83 Ñ\98е Ñ\83поÑ\82Ñ\80ебÑ\99авао дÑ\80Ñ\83ги коÑ\80иÑ\81ник, кога Ñ\98е {{GENDER:$4|блокиÑ\80ао|блокиÑ\80ала}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Ð\94аÑ\82Ñ\83м блокиÑ\80аÑ\9aа: $8\n* Ð\91локиÑ\80аÑ\9aе иÑ\81Ñ\82иÑ\87е: $6\n* Ð\98ме коÑ\80иÑ\81ника: $7\n\nÐ\9eбÑ\80аÑ\82иÑ\82е Ñ\81е {{GENDER:$4|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и}} $1 или [[{{MediaWiki:Grouppage-sysop}}|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\83]] да Ñ\80азÑ\98аÑ\81ниÑ\82е Ñ\81Ñ\82ваÑ\80.\n\nÐ\9dе можеÑ\82е коÑ\80иÑ\81Ñ\82иÑ\82и могÑ\83Ñ\9bноÑ\81Ñ\82 â\80\9eÐ\9fоÑ\88аÑ\99и имеÑ\98л овом коÑ\80иÑ\81никÑ\83â\80\9c ако ниÑ\81Ñ\82е Ñ\83нели иÑ\81пÑ\80авнÑ\83 имеÑ\98л адресу у [[Special:Preferences|подешавањима]].\n\nВаша блокирана ИП адреса је $3, а ID $5.\nНаведите све податке изнад при стварању било каквих упита.",
"blockednoreason": "разлог није наведен",
"whitelistedittext": "За уређивање странице је потребно да будете $1.",
- "confirmedittext": "Ð\9cоÑ\80аÑ\82е да поÑ\82вÑ\80диÑ\82е Ñ\81воÑ\98Ñ\83 е-адÑ\80еÑ\81Ñ\83 пÑ\80е Ñ\83Ñ\80еÑ\92иваÑ\9aа Ñ\81Ñ\82Ñ\80аниÑ\86а.\nÐ\9fоÑ\81Ñ\82авиÑ\82е и поÑ\82вÑ\80диÑ\82е адресу преко [[Special:Preferences|подешавања]].",
+ "confirmedittext": "Ð\9cоÑ\80аÑ\82е да поÑ\82вÑ\80диÑ\82е Ñ\81воÑ\98Ñ\83 имеÑ\98л адÑ\80еÑ\81Ñ\83 пÑ\80е Ñ\83Ñ\80еÑ\92иваÑ\9aа Ñ\81Ñ\82Ñ\80аниÑ\86а.\nÐ\9fоÑ\81Ñ\82авиÑ\82е и поÑ\82вÑ\80диÑ\82е имеÑ\98л адресу преко [[Special:Preferences|подешавања]].",
"nosuchsectiontitle": "Не могу да пронађем одељак",
"nosuchsectiontext": "Покушали сте да уредите одељак који не постоји.\nМожда је премештен или обрисан док сте прегледали страницу.",
"loginreqtitle": "Потребна је пријава",
"protectedpagewarning": "<strong>Упозорење: ова страница је заштићена, тако да само администратори могу да је мењају.</strong>\nПоследњи запис у дневнику је приказан испод:",
"semiprotectedpagewarning": "'''Напомена:''' ова страница је заштићена, тако да само регистровани корисници могу да је уређују.\nПоследњи запис у дневнику је приказан испод:",
"cascadeprotectedwarning": "<strong>Упозорење:</strong> ова страница је заштићена тако да је могу уређивати само администратори, јер је она укључена у {{PLURAL:$1|следећу страницу која је|следеће странице које су}} заштићене „преносивом“ заштитом:",
- "titleprotectedwarning": "'''Упозорење: ова страница је заштићена тако да је могу направити само корисници [[Special:ListGroupRights|с одређеним правима]].'''",
+ "titleprotectedwarning": "<strong>Упозорење: ову страницу могу направити само корисници [[Special:ListGroupRights|с одређеним правима]].</strong>\nИспод су наведени последњи записи у дневнику:",
"templatesused": "{{PLURAL:$1|Шаблон|Шаблони}} на овој страници:",
"templatesusedpreview": "{{PLURAL:$1|Шаблон|Шаблони}} у овом прегледу:",
"templatesusedsection": "{{PLURAL:$1|Шаблон|Шаблони}} у овом одељку:",
"permissionserrors": "Грешка у дозволи",
"permissionserrorstext": "Немате овлашћење за ову радњу из {{PLURAL:$1|1=следећег|следећих}} разлога:",
"permissionserrorstext-withaction": "Немате дозволу за $2 из {{PLURAL:$1|следећег|следећих}} разлога:",
- "recreate-moveddeleted-warn": "'''Упозорење: поново правите страницу која је претходно обрисана.'''\n\nРазмотрите да ли је прикладно да наставите с уређивањем ове странице.\nОвде је наведена историја брисања и премештања с образложењем:",
+ "recreate-moveddeleted-warn": "<strong>Упозорење: поново правите страницу која је претходно обрисана.</strong>\n\nРазмотрите да ли је прикладно да наставите с уређивањем ове странице.\nОвде је наведена историја брисања и премештања с образложењем:",
"moveddeleted-notice": "Ова страница је обрисана.\nИсторија њеног брисања и премештања налази се испод:",
"moveddeleted-notice-recent": "Жао нам је, ова страница је недавно обрисана (у последњих 24 сата).\nОвде је наведена историја брисања и премештања с образложењем.",
"log-fulllog": "Погледај целу историју",
"revdelete-selected-text": "{{PLURAL:$1|Изабрана измена|Изабране измене}} [[:$2]]:",
"revdelete-selected-file": "{{PLURAL:$1|Изабрана верзија датотеке|Изабране верзије датотеке}} [[:$2]]:",
"logdelete-selected": "{{PLURAL:$1|Изабрана ставка у историји|Изабране ставке у историји}}:",
- "revdelete-text-text": "Избрисане измене ће и даље бити видљиве у историји странице, али делови њиховог садржаја неће бити јавно доступну.",
- "revdelete-text-file": "Избрисане верзије датотеке ће и даље бити видљиве у историји датотеке, али делови њиховог садржаја неће бити јавно доступну.",
- "logdelete-text": "Избрисани уноси у дневницима ће и даље бити видљиви у дневницима, али делови њиховог садржаја неће бити јавно доступну.",
+ "revdelete-text-text": "Избрисане измене ће и даље бити видљиве у историји странице, али делови њиховог садржаја неће бити јавно доступни.",
+ "revdelete-text-file": "Избрисане верзије датотеке ће и даље бити видљиве у историји датотеке, али делови њиховог садржаја неће бити јавно доступни.",
+ "logdelete-text": "Избрисани уноси у дневницима ће и даље бити видљиви у дневницима, али делови њиховог садржаја неће бити јавно доступни.",
"revdelete-text-others": "Остали администратори ће и даље моћи да приступе скривеном садржају и врате га, осим ако се поставе додатна ограничења.",
"revdelete-confirm": "Потврдите да намеравате ово урадити, да разумете последице и да то чините у складу с [[{{MediaWiki:Policy-url}}|правилима]].",
"revdelete-suppress-text": "Сакривање измена би требало користити <strong>само</strong> у следећим случајевима:\n* злонамерни или погрдни подаци\n* неприкладни лични подаци\n*: <em>кућна адреса и број телефона, број кредитне картице, ЈМБГ итд.</em>",
"prefs-watchlist-token": "Жетон списка надгледања:",
"prefs-misc": "Друга подешавања",
"prefs-resetpass": "Промени лозинку",
- "prefs-changeemail": "Ð\9fÑ\80омени или Ñ\83клони е-адресу",
- "prefs-setemail": "Ð\9fоÑ\81Ñ\82ави е-адресу",
+ "prefs-changeemail": "Ð\9fÑ\80омени или Ñ\83клони имеÑ\98л адресу",
+ "prefs-setemail": "Ð\9fоÑ\81Ñ\82ави имеÑ\98л адресу",
"prefs-email": "Поставке е-поште",
"prefs-rendering": "Изглед",
"saveprefs": "Сачувај",
"timezoneregion-europe": "Европа",
"timezoneregion-indian": "Индијски океан",
"timezoneregion-pacific": "Тихи океан",
- "allowemail": "Ð\9eмогÑ\83Ñ\9bи пÑ\80имаÑ\9aе е-поÑ\80Ñ\83ка од других корисника",
+ "allowemail": "Ð\9eмогÑ\83Ñ\9bи пÑ\80имаÑ\9aе имеÑ\98ла од других корисника",
"prefs-searchoptions": "Претрага",
"prefs-namespaces": "Именски простори",
"default": "подразумевано",
"prefs-custom-js": "Прилагођени јаваскрипт",
"prefs-common-css-js": "Дељени CSS/јаваскрипт за све теме:",
"prefs-reset-intro": "Можете користити ову страницу да поништите своје поставке на подразумеване вредности.\nОва радња се не може вратити.",
- "prefs-emailconfirm-label": "Ð\9fоÑ\82вÑ\80да е-адÑ\80еÑ\81е:",
- "youremail": "Ð\95-адÑ\80еÑ\81а:",
+ "prefs-emailconfirm-label": "Ð\9fоÑ\82вÑ\80да имеÑ\98ла:",
+ "youremail": "Ð\98меÑ\98л:",
"username": "{{GENDER:$1|Корисничко име}}:",
"prefs-memberingroups": "{{PLURAL:$1|Група|Групе}}:",
"prefs-memberingroups-type": "$1",
"gender-male": "Он уређује вики странице",
"gender-female": "Она уређује вики странице",
"prefs-help-gender": "Необавезно: користи се за исправно обраћање софтвера корисницима, зависно од њиховог пола.\nОвај податак ће бити јаван.",
- "email": "Ð\95-адÑ\80еÑ\81а",
+ "email": "Ð\98меÑ\98л",
"prefs-help-realname": "Право име није обавезно.\nАко изаберете да га унесете, оно ће бити коришћено за приписивање вашег рада.",
- "prefs-help-email": "Ð\95-адреса није обавезна, али је потребна у случају да заборавите лозинку.",
+ "prefs-help-email": "Ð\98меÑ\98л адреса није обавезна, али је потребна у случају да заборавите лозинку.",
"prefs-help-email-others": "Можете је користити и да омогућите другима да вас контактирају преко корисничке странице или странице за разговор, без откривања свог идентитета.",
- "prefs-help-email-required": "Ð\9fоÑ\82Ñ\80ебна Ñ\98е е-адреса.",
+ "prefs-help-email-required": "Ð\9fоÑ\82Ñ\80ебна Ñ\98е имеÑ\98л адреса.",
"prefs-info": "Основни подаци",
"prefs-i18n": "Интернационализација",
"prefs-signature": "Потпис",
"prefs-help-prefershttps": "Ова подешавања ће ступити на снагу при следећој пријави.",
"prefswarning-warning": "Променили сте ваша подешавања али нисте их још сачували.\nАко не притиснете „$1“ ваша подешавања ће бити изгубљена.",
"prefs-tabs-navigation-hint": "Савет: можете користити типке са левом и десном стрелицом за кретање кроз картице.",
- "email-address-validity-valid": "Ð\95-адреса је исправна",
- "email-address-validity-invalid": "УнеÑ\81иÑ\82е иÑ\81пÑ\80авнÑ\83 е-адресу",
+ "email-address-validity-valid": "Ð\98меÑ\98л адреса је исправна",
+ "email-address-validity-invalid": "УнеÑ\81иÑ\82е иÑ\81пÑ\80авнÑ\83 имеÑ\98л адресу",
"userrights": "Управљање корисничким правима",
"userrights-lookup-user": "Управљање корисничким групама",
"userrights-user-editname": "Корисничко име:",
"right-viewsuppressed": "прегледање измена скривених од свих корисника",
"right-suppressionlog": "прегледање приватних дневника",
"right-block": "блокирање даљих измена других корисника",
- "right-blockemail": "онемогÑ\83Ñ\9bаваÑ\9aе коÑ\80иÑ\81ниÑ\86има да Ñ\88аÑ\99Ñ\83 е-поÑ\80Ñ\83ке",
+ "right-blockemail": "онемогÑ\83Ñ\9bаваÑ\9aе коÑ\80иÑ\81ниÑ\86има да Ñ\88аÑ\99Ñ\83 имеÑ\98лове",
"right-hideuser": "блокирање корисничког имена и његово сакривање од јавности",
"right-ipblock-exempt": "заобилажење блокирања ИП адресе, аутоматска блокирања и блокирања опсега",
"right-proxyunbannable": "заобилажење аутоматских блокирања посредника",
"right-userrights-interwiki": "уређивање корисничких права на другим викијима",
"right-siteadmin": "закључавање и откључавање базе података",
"right-override-export-depth": "извоз страница укључујући и повазене странице до дубине од пет веза",
- "right-sendemail": "Ñ\81лаÑ\9aе е-поÑ\80Ñ\83ка другим корисницима",
+ "right-sendemail": "Ñ\81лаÑ\9aе имеÑ\98ла другим корисницима",
"right-passwordreset": "прегледање порука за обнављање лозинке",
"right-managechangetags": "прављење и/или брисање [[Special:Tags|ознака]] из базе података",
"right-applychangetags": "примењивање [[Special:Tags|ознака]] на нечије измене",
"action-userrights": "уређивање свих корисничких права",
"action-userrights-interwiki": "уређивање корисничких права на другим викијима",
"action-siteadmin": "закључавање или откључавање базе података",
- "action-sendemail": "Ñ\81лаÑ\9aе е-поÑ\80Ñ\83ка",
+ "action-sendemail": "Ñ\81лаÑ\9aе имеÑ\98ла",
"action-editmywatchlist": "измену сопственог списак надгледања",
"action-viewmywatchlist": "преглед вашег списак надгледања",
"action-viewmyprivateinfo": "прегледање ваших личних података",
"trackingcategories-nodesc": "Опис није доступан.",
"trackingcategories-disabled": "Категорија је онемогућена",
"mailnologin": "Нема адресе за слање",
- "mailnologintext": "Ð\9cоÑ\80аÑ\82е биÑ\82и [[Special:UserLogin|пÑ\80иÑ\98авÑ\99ени]] и имаÑ\82и иÑ\81пÑ\80авнÑ\83 е-адÑ\80еÑ\81Ñ\83 Ñ\83 [[Special:Preferences|подеÑ\88аваÑ\9aима]] да биÑ\81Ñ\82е Ñ\81лали е-поÑ\80Ñ\83ке другим корисницима.",
- "emailuser": "Ð\9fоÑ\88аÑ\99и е-поÑ\80Ñ\83кÑ\83",
- "emailuser-title-target": "СлаÑ\9aе е-поÑ\80Ñ\83ке {{GENDER:$1|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и|коÑ\80иÑ\81никÑ\83}}",
- "emailuser-title-notarget": "СлаÑ\9aе е-поÑ\80Ñ\83ке кориснику",
- "emailpagetext": "Ð\9cожеÑ\82е да коÑ\80иÑ\81Ñ\82иÑ\82е доÑ\9aи обÑ\80азаÑ\86 да поÑ\88аÑ\99еÑ\82е е-поÑ\80Ñ\83кÑ\83 {{GENDER:$1|овом коÑ\80иÑ\81никÑ\83|овоÑ\98 коÑ\80иÑ\81ниÑ\86и}}.\nÐ\95-адÑ\80еÑ\81а коÑ\98Ñ\83 сте унели у вашим [[Special:Preferences|подешавањима]] ће се приказати у пољу „Од“, тако да ће прималац моћи да вам одговори директно.",
+ "mailnologintext": "Ð\9cоÑ\80аÑ\82е биÑ\82и [[Special:UserLogin|пÑ\80иÑ\98авÑ\99ени]] и имаÑ\82и иÑ\81пÑ\80аван имеÑ\98л Ñ\83 [[Special:Preferences|подеÑ\88аваÑ\9aима]] да биÑ\81Ñ\82е Ñ\81лали имеÑ\98лове другим корисницима.",
+ "emailuser": "Ð\9fоÑ\88аÑ\99и имеÑ\98л",
+ "emailuser-title-target": "СлаÑ\9aе имеÑ\98ла {{GENDER:$1|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и}}",
+ "emailuser-title-notarget": "СлаÑ\9aе имеÑ\98ла кориснику",
+ "emailpagetext": "Ð\9cожеÑ\82е да коÑ\80иÑ\81Ñ\82иÑ\82е доÑ\9aи обÑ\80азаÑ\86 да поÑ\88аÑ\99еÑ\82е имеÑ\98л {{GENDER:$1|овом коÑ\80иÑ\81никÑ\83|овоÑ\98 коÑ\80иÑ\81ниÑ\86и}}.\nÐ\98меÑ\98л коÑ\98и сте унели у вашим [[Special:Preferences|подешавањима]] ће се приказати у пољу „Од“, тако да ће прималац моћи да вам одговори директно.",
"defemailsubject": "{{SITENAME}} — Е-пошта од {{GENDER:$1|корисника|кориснице}} $1",
"usermaildisabled": "Корисничка е-пошта је онемогућена",
- "usermaildisabledtext": "Ð\9dе можеÑ\82е да Ñ\88аÑ\99еÑ\82е е-поÑ\80Ñ\83ке другим корисницима на овом викију",
- "noemailtitle": "Ð\9dема е-адресе",
- "noemailtext": "Ð\9eваÑ\98 коÑ\80иÑ\81ник ниÑ\98е навео иÑ\81пÑ\80авнÑ\83 е-адресу.",
- "nowikiemailtext": "Ð\9eваÑ\98 коÑ\80иÑ\81ник Ñ\98е одлÑ\83Ñ\87ио да не пÑ\80има е-поÑ\80Ñ\83ке од других корисника.",
+ "usermaildisabledtext": "Ð\9dе можеÑ\82е да Ñ\88аÑ\99еÑ\82е имеÑ\98лове другим корисницима на овом викију",
+ "noemailtitle": "Ð\9dема имеÑ\98л адресе",
+ "noemailtext": "Ð\9eваÑ\98 коÑ\80иÑ\81ник ниÑ\98е навео иÑ\81пÑ\80авнÑ\83 имеÑ\98л адресу.",
+ "nowikiemailtext": "Ð\9eваÑ\98 коÑ\80иÑ\81ник Ñ\98е одлÑ\83Ñ\87ио да не пÑ\80има имеÑ\98лове од других корисника.",
"emailnotarget": "Непостојеће или неисправно корисничко име примаоца.",
"emailtarget": "Унос корисничког имена примаоца",
"emailusername": "Корисничко име:",
"emailusernamesubmit": "Пошаљи",
- "email-legend": "СлаÑ\9aе е-поÑ\80Ñ\83ка другом кориснику",
+ "email-legend": "СлаÑ\9aе имеÑ\98ла другом кориснику",
"emailfrom": "Од:",
"emailto": "За:",
"emailsubject": "Наслов:",
"emailccme": "Пошаљи ми копију поруке на моју е-пошту.",
"emailccsubject": "Копија ваше поруке кориснику $1: $2",
"emailsent": "Порука је послата",
- "emailsenttext": "Ваша е-порука је послата.",
- "emailuserfooter": "Ову е-поруку је {{GENDER:$1|послао|послала}} $1 {{GENDER:$2|кориснику|корисници}} $2 помоћу „{{int:emailuser}}“ с викија {{SITENAME}}.",
+ "emailsenttext": "Ваш имејл је послат.",
+ "emailuserfooter": "Овај имејл је {{GENDER:$1|послао|послала}} $1 {{GENDER:$2|кориснику|корисници}} $2 помоћу „{{int:emailuser}}“ с викија {{SITENAME}}.",
"usermessage-summary": "Слање системске поруке.",
"usermessage-editor": "Уређивач системских порука",
"usermessage-template": "MediaWiki:UserMessage",
"notanarticle": "Није страница са садржајем",
"notvisiblerev": "Измена је обрисана",
"watchlist-details": "Имате {{PLURAL:$1|$1 страница|$1 странице|$1 страница}} на вашем списку надгледања, не рачунајући странице за разговор.",
- "wlheader-enotif": "Ð\9eбавеÑ\88Ñ\82еÑ\9aе е-поÑ\80Ñ\83ком је омогућено.",
+ "wlheader-enotif": "Ð\9eбавеÑ\88Ñ\82еÑ\9aе имеÑ\98лом је омогућено.",
"wlheader-showupdated": "Странице које су измењене откад сте их последњи пут посетили су '''подебљане'''.",
"wlnote": "Испод {{PLURAL:$1|је последња измена|су последње <strong>$1</strong> измене|је последњих <strong>$1</strong> измена}} у {{PLURAL:$2|претходном сату|претходна <strong>$2</strong> сата|претходних <strong>$2</strong> сати}}, закључно са $3, $4.",
"wlshowlast": "Прикажи последњих $1 сати, $2 дана",
"ipbreason-dropdown": "*Најчешћи разлози за блокирање\n** Уношење лажних информација\n** Уклањање садржаја са страница\n** Постављање веза до спољашњих сајтова\n** Уношење бесмислица у странице\n** Непристојно понашање\n** Употреба више налога\n** Неприхватљиво корисничко име",
"ipb-hardblock": "Онемогући пријављеним корисницима да уређују с ове ИП адресе",
"ipbcreateaccount": "Онемогући отварање налога",
- "ipbemailban": "Ð\9eнемогÑ\83Ñ\9bи коÑ\80иÑ\81никÑ\83 да Ñ\88аÑ\99е е-поÑ\80Ñ\83ке",
+ "ipbemailban": "Ð\9eнемогÑ\83Ñ\9bи коÑ\80иÑ\81никÑ\83 да Ñ\88аÑ\99е имеÑ\98лове",
"ipbenableautoblock": "Аутоматски блокирај последњу ИП адресу овог корисника и све даљње адресе с којих покуша да уређује",
"ipbsubmit": "Блокирај овог корисника",
"ipbother": "Друго време:",
"unblocklink": "деблокирај",
"change-blocklink": "промени блокирање",
"contribslink": "доприноси",
- "emaillink": "поÑ\88аÑ\99и е-поÑ\80Ñ\83кÑ\83",
+ "emaillink": "поÑ\88аÑ\99и имеÑ\98л",
"autoblocker": "Аутоматски сте блокирани јер делите ИП адресу с корисником/цом [[User:$1|$1]].\nРазлог блокирања: „$2“",
"blocklogpage": "Дневник блокирања",
"blocklog-showlog": "{{GENDER:$1|Овај корисник је раније блокиран|Ова корисница је раније блокирана}}.\nИсторија блокирања се налази испод:",
"tooltip-feed-rss": "RSS довод ове странице",
"tooltip-feed-atom": "Атом довод ове странице",
"tooltip-t-contributions": "Погледајте списак доприноса овог корисника",
- "tooltip-t-emailuser": "Ð\9fоÑ\88аÑ\99иÑ\82е е-поÑ\80Ñ\83кÑ\83 овом кориснику",
+ "tooltip-t-emailuser": "Ð\9fоÑ\88аÑ\99иÑ\82е имеÑ\98л овом кориснику",
"tooltip-t-info": "Више информација о овој страници",
"tooltip-t-upload": "Пошаљите датотеке",
"tooltip-t-specialpages": "Списак свих посебних страница",
"exif-urgency-other": "Прилагођени приоритет ($1)",
"namespacesall": "сви",
"monthsall": "све",
- "confirmemail": "Ð\9fоÑ\82вÑ\80да е-адресе",
- "confirmemail_noemail": "Ð\9dиÑ\81Ñ\82е Ñ\83нели иÑ\81пÑ\80авнÑ\83 е-адресу у [[Special:Preferences|подешавањима]].",
- "confirmemail_text": "{{SITENAME}} заÑ\85Ñ\82ева да поÑ\82вÑ\80диÑ\82е е-адÑ\80еÑ\81Ñ\83 пÑ\80е него Ñ\88Ñ\82о поÑ\87неÑ\82е да коÑ\80иÑ\81Ñ\82иÑ\82е могÑ\83Ñ\9bноÑ\81Ñ\82и е-поÑ\88Ñ\82е.\nÐ\9aликниÑ\82е на дÑ\83гме иÑ\81под за Ñ\81лаÑ\9aе поÑ\80Ñ\83ке на ваÑ\88Ñ\83 е-адÑ\80еÑ\81Ñ\83.\nУ поÑ\80Ñ\83Ñ\86и Ñ\9bе Ñ\81е налазиÑ\82и веза Ñ\81 поÑ\82вÑ\80дним кодом;\nÑ\83неÑ\81иÑ\82е Ñ\98е Ñ\83 пÑ\80егледаÑ\87 да биÑ\81Ñ\82е поÑ\82вÑ\80дили да Ñ\98е ваÑ\88а е-адреса исправна.",
+ "confirmemail": "Ð\9fоÑ\82вÑ\80да имеÑ\98л адресе",
+ "confirmemail_noemail": "Ð\9dиÑ\81Ñ\82е Ñ\83нели иÑ\81пÑ\80авнÑ\83 имеÑ\98л адресу у [[Special:Preferences|подешавањима]].",
+ "confirmemail_text": "{{SITENAME}} заÑ\85Ñ\82ева да поÑ\82вÑ\80диÑ\82е имеÑ\98л адÑ\80еÑ\81Ñ\83 пÑ\80е него Ñ\88Ñ\82о поÑ\87неÑ\82е да коÑ\80иÑ\81Ñ\82иÑ\82е могÑ\83Ñ\9bноÑ\81Ñ\82и имеÑ\98ла.\nÐ\9aликниÑ\82е на дÑ\83гме иÑ\81под за Ñ\81лаÑ\9aе поÑ\80Ñ\83ке на ваÑ\88Ñ\83 адÑ\80еÑ\81Ñ\83.\nУ поÑ\80Ñ\83Ñ\86и Ñ\9bе Ñ\81е налазиÑ\82и веза Ñ\81 поÑ\82вÑ\80дним кодом;\nÑ\83неÑ\81иÑ\82е Ñ\98е Ñ\83 пÑ\80егледаÑ\87 да биÑ\81Ñ\82е поÑ\82вÑ\80дили да Ñ\98е ваÑ\88а имеÑ\98л адреса исправна.",
"confirmemail_pending": "Потврдни код вам је већ послат. Ако сте управо отворили налог, онда вероватно треба да сачекате неколико минута да пристигне, пре него што поново затражите нови код.",
"confirmemail_send": "Пошаљи потврдни код",
"confirmemail_sent": "Потврдна порука је послата.",
- "confirmemail_oncreate": "Ð\9fоÑ\81лаÑ\82 Ñ\98е поÑ\82вÑ\80дни код на ваÑ\88Ñ\83 е-адÑ\80еÑ\81Ñ\83.\nÐ\9eваÑ\98 код ниÑ\98е поÑ\82Ñ\80ебан за пÑ\80иÑ\98авÑ\99иваÑ\9aе, али вам Ñ\82Ñ\80еба да биÑ\81Ñ\82е Ñ\83кÑ\99Ñ\83Ñ\87или могÑ\83Ñ\9bноÑ\81Ñ\82и е-поÑ\88Ñ\82е на викију.",
- "confirmemail_sendfailed": "{{SITENAME}} не може да поÑ\88аÑ\99е поÑ\80Ñ\83кÑ\83.\nÐ\9fÑ\80овеÑ\80иÑ\82е да ли Ñ\98е е-адреса правилно написана.\n\nГрешка: $1",
+ "confirmemail_oncreate": "Ð\9fоÑ\81лаÑ\82 Ñ\98е поÑ\82вÑ\80дни код на ваÑ\88Ñ\83 имеÑ\98л адÑ\80еÑ\81Ñ\83.\nÐ\9eваÑ\98 код ниÑ\98е поÑ\82Ñ\80ебан за пÑ\80иÑ\98авÑ\99иваÑ\9aе, али вам Ñ\82Ñ\80еба да биÑ\81Ñ\82е Ñ\83кÑ\99Ñ\83Ñ\87или могÑ\83Ñ\9bноÑ\81Ñ\82и имеÑ\98ла на викију.",
+ "confirmemail_sendfailed": "{{SITENAME}} не може да поÑ\88аÑ\99е имеÑ\98л поÑ\82вÑ\80дÑ\83.\nÐ\9fÑ\80овеÑ\80иÑ\82е да ли Ñ\98е имеÑ\98л адреса правилно написана.\n\nГрешка: $1",
"confirmemail_invalid": "Потврдни код је неисправан. Вероватно је истекао.",
- "confirmemail_needlogin": "Ð\9cоÑ\80аÑ\82е биÑ\82и $1 да биÑ\81Ñ\82е поÑ\82вÑ\80дили е-адресу.",
- "confirmemail_success": "Ð\92аÑ\88а е-адреса је потврђена.\nСада можете да се [[Special:UserLogin|пријавите]]. Желимо вам пријатан боравак на викију.",
- "confirmemail_loggedin": "Ð\92аÑ\88а е-адреса је сада потврђена.",
- "confirmemail_subject": "{{SITENAME}} â\80\93 поÑ\82вÑ\80да е-адресе",
- "confirmemail_body": "Неко, вероватно ви, са ИП адресе $1 је отворио налог „$2“ на викију {{SITENAME}}, наводећи ову е-адресу.\n\nДа потврдите да овај налог стварно припада вама, као и да\nомогућите могућности е-поште, отворите ову везу у прегледачу:\n\n$3\n\nУколико нисте отворили налог, пратите везу\nиспод како бисте прекинули поступак уписа:\n\n$5\n\nОвај потврдни код истиче $6 у $5.",
- "confirmemail_body_changed": "Ð\9dеко, веÑ\80оваÑ\82но ви, Ñ\81а Ð\98Ð\9f адÑ\80еÑ\81е $1 Ñ\98е пÑ\80оменио е-адÑ\80еÑ\81Ñ\83 налога â\80\9e$2â\80\9c Ñ\83 овÑ\83 адÑ\80еÑ\81Ñ\83 на викиÑ\98Ñ\83 {{SITENAME}}.\n\nÐ\94а биÑ\81Ñ\82е поÑ\82вÑ\80дили да оваÑ\98 налог Ñ\81Ñ\82ваÑ\80но пÑ\80ипада вама и поново акÑ\82ивиÑ\80али могÑ\83Ñ\9bноÑ\81Ñ\82и е-поÑ\88Ñ\82е, оÑ\82воÑ\80иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 Ñ\83 пÑ\80егледаÑ\87Ñ\83:\n\n$3\n\nÐ\90ко налог *не* пÑ\80ипада вама, пÑ\80аÑ\82иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 да оÑ\82кажеÑ\82е поÑ\82вÑ\80дÑ\83 е-адресе:\n\n$5\n\nОвај потврдни код истиче $6 у $7",
- "confirmemail_body_set": "Ð\9dеко, веÑ\80оваÑ\82но ви, Ñ\81а Ð\98Ð\9f адÑ\80еÑ\81е $1 \nÑ\98е пÑ\80оменио е-адÑ\80еÑ\81Ñ\83 налога â\80\9e$2â\80\9c Ñ\83 овÑ\83 адÑ\80еÑ\81Ñ\83 на {{SITENAME}}.\n\nÐ\94а биÑ\81мо поÑ\82вÑ\80дили да оваÑ\98 налог Ñ\81Ñ\82ваÑ\80но пÑ\80ипада вама и поново акÑ\82ивиÑ\80али могÑ\83Ñ\9bноÑ\81Ñ\82и е-поÑ\88Ñ\82е на {{SITENAME}}, оÑ\82воÑ\80иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 Ñ\83 пÑ\80егледаÑ\87Ñ\83:\n\n$3\n\nÐ\90ко налог *не* пÑ\80ипада вама, пÑ\80аÑ\82иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 да оÑ\82кажеÑ\82е поÑ\82вÑ\80дÑ\83 е-адресе:\n\n$5\n\nОвај потврдни код истиче $4.",
+ "confirmemail_needlogin": "Ð\9cоÑ\80аÑ\82е биÑ\82и $1 да биÑ\81Ñ\82е поÑ\82вÑ\80дили имеÑ\98л адресу.",
+ "confirmemail_success": "Ð\92аÑ\88а имеÑ\98л адреса је потврђена.\nСада можете да се [[Special:UserLogin|пријавите]]. Желимо вам пријатан боравак на викију.",
+ "confirmemail_loggedin": "Ð\92аÑ\88а имеÑ\98л адреса је сада потврђена.",
+ "confirmemail_subject": "{{SITENAME}} â\80\93 поÑ\82вÑ\80да имеÑ\98л адресе",
+ "confirmemail_body": "Неко, вероватно ви, са ИП адресе $1 \nје променио имејл адресу налога „$2“ у ову адресу на {{SITENAME}}.\n\nДа бисмо потврдили да овај налог стварно припада вама и поново активирали могућности имејла на {{SITENAME}}, отворите следећу везу у прегледачу:\n\n$3\n\nАко налог *не* припада вама, пратите следећу везу да откажете потврду имејл адресе:\n\n$5\n\nОвај потврдни код истиче $4.",
+ "confirmemail_body_changed": "Ð\9dеко, веÑ\80оваÑ\82но ви, Ñ\81а Ð\98Ð\9f адÑ\80еÑ\81е $1 Ñ\98е пÑ\80оменио имеÑ\98л адÑ\80еÑ\81Ñ\83 налога â\80\9e$2â\80\9c Ñ\83 овÑ\83 адÑ\80еÑ\81Ñ\83 на викиÑ\98Ñ\83 {{SITENAME}}.\n\nÐ\94а биÑ\81Ñ\82е поÑ\82вÑ\80дили да оваÑ\98 налог Ñ\81Ñ\82ваÑ\80но пÑ\80ипада вама и поново акÑ\82ивиÑ\80али могÑ\83Ñ\9bноÑ\81Ñ\82и имеÑ\98ла, оÑ\82воÑ\80иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 Ñ\83 пÑ\80егледаÑ\87Ñ\83:\n\n$3\n\nÐ\90ко налог *не* пÑ\80ипада вама, пÑ\80аÑ\82иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 да оÑ\82кажеÑ\82е поÑ\82вÑ\80дÑ\83 имеÑ\98л адресе:\n\n$5\n\nОвај потврдни код истиче $6 у $7",
+ "confirmemail_body_set": "Ð\9dеко, веÑ\80оваÑ\82но ви, Ñ\81а Ð\98Ð\9f адÑ\80еÑ\81е $1 \nÑ\98е пÑ\80оменио имеÑ\98л адÑ\80еÑ\81Ñ\83 налога â\80\9e$2â\80\9c Ñ\83 овÑ\83 адÑ\80еÑ\81Ñ\83 на {{SITENAME}}.\n\nÐ\94а биÑ\81мо поÑ\82вÑ\80дили да оваÑ\98 налог Ñ\81Ñ\82ваÑ\80но пÑ\80ипада вама и поново акÑ\82ивиÑ\80али могÑ\83Ñ\9bноÑ\81Ñ\82и имеÑ\98ла на {{SITENAME}}, оÑ\82воÑ\80иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 Ñ\83 пÑ\80егледаÑ\87Ñ\83:\n\n$3\n\nÐ\90ко налог *не* пÑ\80ипада вама, пÑ\80аÑ\82иÑ\82е Ñ\81ледеÑ\9bÑ\83 везÑ\83 да оÑ\82кажеÑ\82е поÑ\82вÑ\80дÑ\83 имеÑ\98л адресе:\n\n$5\n\nОвај потврдни код истиче $4.",
"confirmemail_invalidated": "Потврда е-поште је отказана",
"invalidateemail": "Отказивање потврде е-поште",
"scarytranscludedisabled": "[Међувики укључивање шаблона је онемогућено]",
"아라",
"Nemo bis",
"Srdjan m",
- "Macofe"
+ "Macofe",
+ "Сербијана"
]
},
"tog-underline": "Podvlačenje veza:",
"category-media-header": "Datoteke u kategoriji „$1“",
"category-empty": "<div style=\"margin:2em 1em 0 1em; padding:0.5em; border:1px solid #AAA; text-align:center;\">''Ova kategorija trenutno ne sadrži stranice ili datoteke.''</div>",
"hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}",
- "hidden-category-category": "Sakrivene kategorije",
+ "hidden-category-category": "Skrivene kategorije",
"category-subcat-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću potkategoriju.|Ova kategorija ima {{PLURAL:$1|1=sledeću potkategoriju|sledeće $1 potkategorije|sledećih $1 potkategorija}}, od ukupno $2.}}",
"category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|sledeću potkategoriju|sledeće $1 potkategorije|sledećih $1 potkategorija}}.",
"category-article-count": "{{PLURAL:$2|1=Ova kategorija sadrži samo sledeću stranicu.|{{PLURAL:$1|Sledeća stranica je|Sledeće $1 stranice su|Sledećih $1 stranica je}} u ovoj kategoriji, od ukupno $2.}}",
"protectedpagewarning": "<strong>Upozorenje: ova stranica je zaštićena, tako da samo administratori mogu da je menjaju.</strong>\nPoslednji zapis u dnevniku je prikazan ispod:",
"semiprotectedpagewarning": "'''Napomena:''' ova stranica je zaštićena, tako da samo registrovani korisnici mogu da je uređuju.\nPoslednji zapis u dnevniku je prikazan ispod:",
"cascadeprotectedwarning": "<strong>Upozorenje:</strong> ova stranica je zaštićena tako da je mogu uređivati samo administratori, jer je ona uključena u {{PLURAL:$1|sledeću stranicu koja je|sledeće stranice koje su}} zaštićene „prenosivom“ zaštitom:",
- "titleprotectedwarning": "'''Upozorenje: ova stranica je zaštićena tako da je mogu napraviti samo korisnici [[Special:ListGroupRights|s određenim pravima]].'''",
+ "titleprotectedwarning": "<strong>Upozorenje: ovu stranicu mogu napraviti samo korisnici [[Special:ListGroupRights|s određenim pravima]].</strong>\nIspod su navedeni poslednji zapisi u dnevniku:",
"templatesused": "{{PLURAL:$1|Šablon|Šabloni}} na ovoj stranici:",
"templatesusedpreview": "{{PLURAL:$1|Šablon|Šabloni}} u ovom pregledu:",
"templatesusedsection": "{{PLURAL:$1|Šablon|Šabloni}} u ovom odeljku:",
"revdelete-selected-text": "{{PLURAL:$1|Izabrana izmena|Izabrane izmene}} [[:$2]]:",
"revdelete-selected-file": "{{PLURAL:$1|Izabrana verzija datoteke|Izabrane verzije datoteke}} [[:$2]]:",
"logdelete-selected": "{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:",
- "revdelete-text-text": "Izbrisane izmene će i dalje biti vidljive u istoriji stranice, ali delovi njihovog sadržaja neće biti javno dostupnu.",
- "revdelete-text-file": "Izbrisane verzije datoteke će i dalje biti vidljive u istoriji datoteke, ali delovi njihovog sadržaja neće biti javno dostupnu.",
- "logdelete-text": "Izbrisani unosi u dnevnicima će i dalje biti vidljivi u dnevnicima, ali delovi njihovog sadržaja neće biti javno dostupnu.",
+ "revdelete-text-text": "Izbrisane izmene će i dalje biti vidljive u istoriji stranice, ali delovi njihovog sadržaja neće biti javno dostupni.",
+ "revdelete-text-file": "Izbrisane verzije datoteke će i dalje biti vidljive u istoriji datoteke, ali delovi njihovog sadržaja neće biti javno dostupni.",
+ "logdelete-text": "Izbrisani unosi u dnevnicima će i dalje biti vidljivi u dnevnicima, ali delovi njihovog sadržaja neće biti javno dostupni.",
"revdelete-text-others": "Ostali administratori će i dalje moći da pristupe skrivenom sadržaju i vrate ga, osim ako se postave dodatna ograničenja.",
"revdelete-confirm": "Potvrdite da nameravate ovo uraditi, da razumete posledice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].",
"revdelete-suppress-text": "Sakrivanje izmena bi trebalo koristiti <strong>samo</strong> u sledećim slučajevima:\n* zlonamerni ili pogrdni podaci\n* neprikladni lični podaci\n*: <em>kućna adresa i broj telefona, broj kreditne kartice, JMBG itd.</em>",
"pageinfo-recent-edits": "Broj skorašnjih izmena (u poslednjih $1)",
"pageinfo-recent-authors": "Broj skorašnjih zasebnih autora",
"pageinfo-magic-words": "{{PLURAL:$1|Magična reč|Magične reči}} ($1)",
- "pageinfo-hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)",
+ "pageinfo-hidden-categories": "{{PLURAL:$1|Skrivena kategorija|Skrivene kategorije}} ($1)",
"pageinfo-templates": "{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)",
"pageinfo-transclusions": "{{PLURAL:$1|Stranica|Stranice}} uključene u ($1)",
"pageinfo-toolboxlink": "Podaci o stranici",
"Sborsody",
"friends at tyvawiki.org",
"לערי ריינהארט",
- "아라"
+ "아라",
+ "Монгуш Салим"
]
},
"tog-underline": "Холбааны шыяры:",
"underline-never": "Кажан-даа",
"underline-default": "Кештиң азы веб-браузерниң ниити үнези",
"editfont-default": "Веб-браузерниң ниити үнези",
- "sunday": "Улуг хүн",
+ "sunday": "Улуг-хүн",
"monday": "Бир дугаар хүн",
"tuesday": "Ийи дугаар хүн",
"wednesday": "Үш дугаар хүн",
"thursday": "Дөрт дугаар хүн",
"friday": "Беш дугаар хүн",
- "saturday": "ЧаÑ\80Ñ\82Ñ\8bк Ñ\83лÑ\83г хүн",
+ "saturday": "Ð\90лдÑ\8b дÑ\83гааÑ\80 хүн",
"sun": "Улуг-хүн",
"mon": "Пн",
"tue": "Вт",
"thu": "Чт",
"fri": "Пт",
"sat": "Сб",
- "january": "Бир ай",
- "february": "ийи ай",
- "march": "Үш ай",
- "april": "Ð\94Ó©Ñ\80Ñ\82 ай",
- "may_long": "Ð\91еÑ\88 ай",
- "june": "Ð\90лдÑ\8b ай",
- "july": "Чеди ай",
- "august": "СеÑ\81 ай",
- "september": "Тос ай",
- "october": "Ð\9eн ай",
- "november": "Ð\9eн биÑ\80 ай",
- "december": "Ð\9eн ийи ай",
+ "january": "январь",
+ "february": "февраль",
+ "march": "март",
+ "april": "апÑ\80елÑ\8c",
+ "may_long": "май",
+ "june": "иÑ\8eнÑ\8c",
+ "july": "иÑ\8eлÑ\8c",
+ "august": "авгÑ\83Ñ\81Ñ\82",
+ "september": "сентябрь",
+ "october": "окÑ\82Ñ\8fбÑ\80Ñ\8c",
+ "november": "ноÑ\8fбÑ\80Ñ\8c",
+ "december": "декабÑ\80Ñ\8c",
"january-gen": "Бир айның",
- "february-gen": "Ð\98йи айнÑ\8bÒ£",
+ "february-gen": "ФевÑ\80алÑ\8c",
"march-gen": "Үш айның",
"april-gen": "Дөрт айның",
"may-gen": "Беш айның",
"october-gen": "Он айның",
"november-gen": "Он бир айның",
"december-gen": "Он ийи айның",
- "jan": "1 ай",
- "feb": "2 ай",
- "mar": "3 ай",
- "apr": "4 ай",
- "may": "5 ай",
- "jun": "6 ай",
- "jul": "7 ай",
- "aug": "8 ай",
- "sep": "9 ай",
- "oct": "10 ай",
- "nov": "11 ай",
- "dec": "12 ай",
- "pagecategories": "{{PLURAL:$1|Ð\90ңгÑ\8bлал}}",
- "category_header": "«$1» деп бөлүкÑ\82Ò¯ң арыннары",
+ "jan": "январь",
+ "feb": "фев",
+ "mar": "март",
+ "apr": "апрель",
+ "may": "май",
+ "jun": "июнь",
+ "jul": "июль",
+ "aug": "август",
+ "sep": "сентябрь",
+ "oct": "октябрь",
+ "nov": "ноябрь",
+ "dec": "декабрь",
+ "pagecategories": "{{PLURAL:$1|Ð\9aаÑ\82егоÑ\80иÑ\8f|Ð\9aаÑ\82егоÑ\80иÑ\8fлаÑ\80}}",
+ "category_header": "«$1» каÑ\82егоÑ\80иÑ\8fнÑ\8bң арыннары",
"subcategories": "Адаккы бөлүктер",
"category-media-header": "«$1» деп бөлүкте файлдар",
"category-empty": "''Амгы бо бөлүкте медиа база арыннар чок.''",
- "hidden-categories": "{{PLURAL:$1|1=ЧажÑ\8bÑ\82 аңгÑ\8bлал|ЧажÑ\8bÑ\82 аңгÑ\8bлалдар}}",
+ "hidden-categories": "{{PLURAL:$1|1=Ð\9aөзүлбеÑ\81 каÑ\82егоÑ\80иÑ\8f|Ð\9aөзүлбеÑ\81 каÑ\82егоÑ\80иÑ\8fлар}}",
"hidden-category-category": "Чажыт бөлүктер",
- "category-subcat-count": "{{PLURAL:$2|1=Ð\91о аңгÑ\8bлал Ñ\87үгле даÑ\80аазÑ\8bнда аңгÑ\8bламнÑ\8bг.|Ð\91о аңгÑ\8bлалдÑ\8bÒ£ Ñ\88Ñ\83пÑ\82Ñ\83 $2 аңгÑ\8bламнаÑ\80нÑ\8bÒ£ аÑ\80азÑ\8bндан даÑ\80аазÑ\8bнда $1 аңгÑ\8bламнÑ\8b көÑ\80гүÑ\81кен.}}",
+ "category-subcat-count": "{{PLURAL:$2|1=Ð\91о каÑ\82егоÑ\80иÑ\8f Ñ\87үгле даÑ\80аазÑ\8bнда иÑ\88Ñ\82ики каÑ\82егоÑ\80иÑ\8fлÑ\8bг.|Ð\91о каÑ\82егоÑ\80иÑ\8fда баÑ\80-ла $2 иÑ\88Ñ\82ики каÑ\82егоÑ\80иÑ\8fлаÑ\80нÑ\8bÒ£ $1 деп иÑ\88Ñ\82ики каÑ\82егоÑ\80иÑ\8fзÑ\8b көÑ\81Ñ\82үп Ñ\82Ñ\83Ñ\80аÑ\80.}}",
"category-subcat-count-limited": "Бо аңгылал {{PLURAL:$1|1=бир|$1}} аңгыламныг.",
- "category-article-count": "{{PLURAL:$2|1=Ð\91о аңгÑ\8bлал Ñ\87үгле даÑ\80аазÑ\8bнда аÑ\80Ñ\8bннаÑ\80лÑ\8bг.|Ð\91о аңгÑ\8bлалдÑ\8bÒ£ Ñ\88Ñ\83пÑ\82Ñ\83 $2 аÑ\80Ñ\8bннаÑ\80Ñ\8bнÑ\8bÒ£ аÑ\80азÑ\8bндан даÑ\80аазÑ\8bнда $1 аÑ\80Ñ\8bнÑ\8bн көргүскен.}}",
- "category-file-count": "{{PLURAL:$2|1=Ð\91о бөлүк Ñ\87үгле Ñ\87аңгÑ\8bÑ\81 Ñ\84айлдÑ\8bг.|Ð\91о бөлүкÑ\82Ò¯Ò£ нииÑ\82и $2 файлының $1 файлын көргүскен.}}",
+ "category-article-count": "{{PLURAL:$2|1=Ð\91о каÑ\82егоÑ\80иÑ\8fда Ñ\87үгле Ñ\87аңгÑ\8bÑ\81 аÑ\80Ñ\8bн баÑ\80.|Ук каÑ\82егоÑ\80иÑ\8fда баÑ\80 $2 аÑ\80Ñ\8bннаÑ\80Ñ\8bнÑ\8bÒ£ аÑ\80азÑ\8bндан}} |{{PLURAL:$1 аÑ\80Ñ\8bннÑ\8b көÑ\80гүÑ\81кен| $1 аÑ\80Ñ\8bннаÑ\80нÑ\8b көргүскен.}}",
+ "category-file-count": "{{PLURAL:$2|1=Ð\91о каÑ\82егоÑ\80иÑ\8f Ñ\87үгле Ñ\87аңгÑ\8bÑ\81 Ñ\84айлдÑ\8bг.|Ð\91о каÑ\82егоÑ\80иÑ\8fнÑ\8bÒ£ Ñ\88Ñ\83пÑ\82Ñ\83 $2 файлының $1 файлын көргүскен.}}",
"listingcontinuesabbrev": "(уланчы)",
"noindex-category": "Индекстелбес арынар",
"broken-file-category": "Ажылдавайн турар файл-шөлүлгелиг арыннар",
"about": "Дугайында",
"article": "Допчу арын",
- "newwindow": "(чаа көзенээ ажыытынар)",
- "cancel": "СокÑ\81ааÑ\80Ñ\8b",
+ "newwindow": "(чаа көзенекке)",
+ "cancel": "ЫнÑ\87анмаÑ\81",
"moredotdotdot": "Артык...",
"mypage": "Арын",
"mytalk": "Чугаа",
"faqpage": "Project:БлСА",
"actions": "Кылыглар",
"namespaces": "Аттар делгемнери",
- "variants": "Бир янзы",
+ "variants": "Янзы-хевирлери",
+ "navigation-heading": "Навигация менюзу",
"errorpagetitle": "Алдаг",
"returnto": "«$1» деп арынже эглири.",
- "tagline": "{{SITENAME}} деп веб-сайттан",
+ "tagline": "{{SITENAME}} сайттан",
"help": "Дуза",
- "search": "Диле",
+ "search": "Дилээр",
"searchbutton": "Дилээр",
"go": "Баары",
- "searcharticle": "Ð\9aÒ¯Ò¯cедиÑ\80и",
+ "searcharticle": "Че-ве",
"history": "Арынның төөгүзү",
"history_short": "Төөгү",
- "printableversion": "СаазÑ\8bнга үндүÑ\80еÑ\80ин көөÑ\80Ò¯",
- "permalink": "ТÑ\83Ñ\80Ñ\83м айÑ\82Ñ\8bг",
+ "printableversion": "Ð\9fаÑ\80лап үндүÑ\80еÑ\80 Ñ\8fнзÑ\8bзÑ\8b",
+ "permalink": "Ð\94окÑ\82аамал Ñ\88өлүлге",
"print": "Саазынга үндүрер",
- "view": "Көөрү",
+ "view": "Көөр",
+ "view-foreign": "$1 сайттан көөр",
"edit": "Эдер",
"create": "Чогаадыры",
+ "create-local": "Кызыы тайылбыр немээр",
"editthispage": "Бо арынны өскертири",
"create-this-page": "Бо арынны чогаадыры",
"delete": "Ыраары",
"unprotectthispage": "Бо арынның камгалалын өскертири",
"newpage": "Чаа арын",
"talkpage": "Бо арын дугайында чугаалажыры",
- "talkpagelinktext": "Чугаа",
+ "talkpagelinktext": "Чугаалажып сайгарар",
"specialpage": "Тускай арын",
"personaltools": "Хууда херекселдер",
"articlepage": "Допчу арынны көөрү",
- "talk": "ЧÑ\83гаа",
- "views": "Көрүүшкүннери",
+ "talk": "СайгаÑ\80Ñ\8bлга",
+ "views": "Көрүлделер",
"toolbox": "Херекселдер",
"userpage": "Ажыглакчының арынын көөрү",
"projectpage": "Төлевилелдиң арынын көөрү",
"categorypage": "Бөлүктүң арынын көөрү",
"viewtalkpage": "Чугааны көөрү",
"otherlanguages": "Өске дылдарга",
- "redirectedfrom": "($1 шигленген)",
+ "redirectedfrom": "($1 катап чоруткан)",
"redirectpagesub": "шигледир арын",
- "lastmodifiedat": "Бо арын сөөлгү катап $1, $2 өскерилген.",
+ "lastmodifiedat": "Бо арын сөөлгү катап $1-ның хүнүнде, $2 турда өскерилген.",
"protectedpage": "Камгалаган арын",
"jumpto": "Шилчиир:",
"jumptonavigation": "навигация",
- "jumptosearch": "дилээри",
+ "jumptosearch": "дилээр",
"pool-errorunknown": "Билбес алдаг",
"aboutsite": "{{SITENAME}} дугайында",
"aboutpage": "Project:Дугайында",
- "copyrightpage": "{{ns:project}}:ЧогаалÑ\87Ñ\8bнÑ\8bң эргелери",
+ "copyrightpage": "{{ns:project}}:авÑ\82оÑ\80нÑ\83ң эргелери",
"currentevents": "Амгы үеде болуушкуннар",
"currentevents-url": "Project:Амгы үеде болуушкуннар",
- "disclaimers": "Ð\90жÑ\8bглааÑ\80 Ñ\85аÑ\80Ñ\8bÑ\81аалгазÑ\8bн Ñ\87Ó©Ñ\80Ñ\87Ò¯Ò¯Ñ\80Ò¯ (ойÑ\82алааÑ\80Ñ\8b)",
- "disclaimerpage": "Project:Ð\90жÑ\8bглааÑ\80 Ñ\85аÑ\80Ñ\8bÑ\81аалгазÑ\8bн ойÑ\82алааÑ\80Ñ\8b",
+ "disclaimers": "ХаÑ\80Ñ\8bÑ\8bÑ\81алгадан ойÑ\82алал",
+ "disclaimerpage": "Project:ХаÑ\80Ñ\8bÑ\8bÑ\81алгадан ойÑ\82алааÑ\88кÑ\8bн",
"edithelp": "Эдеринге дуза",
- "mainpage": "Ð\9aол Ð\90рын",
- "mainpage-description": "Ð\9aол Ð\90рын",
+ "mainpage": "Ð\9aол арын",
+ "mainpage-description": "Ð\9aол арын",
"policy-url": "Project:Чурум",
- "portal": "Ниитилел хаалгазы",
- "portal-url": "Project:Ниитилел хаалгазы",
- "privacy": "Ð\90кÑ\82Ñ\8bг бүзүрел дугуржулгазы",
- "privacypage": "Project:Ð\90кÑ\82Ñ\8bг бүзүрел дугуржулгазы",
+ "portal": "Ниитилелдиң порталы",
+ "portal-url": "Project:Ниитилелдиң порталы",
+ "privacy": "Ð\91үзүрел дугуржулгазы",
+ "privacypage": "Project:Ð\91үзүрел дугуржулгазы",
"badaccess": "Алдаг:Эргеңер чок.",
"versionrequired": "МедиаВикиниң $1 үндүреризи херек",
"ok": "Чөп",
- "retrievedfrom": "«$1» деп адрестен парлаттынган",
+ "retrievedfrom": "Дөзү - «$1»",
"youhavenewmessages": "Силерде $1 ($2) бар.",
"youhavenewmessagesmulti": "«$1» деп арында силерге чаа чагаалар бар.",
"editsection": "эдер",
"editold": "эдер",
"viewsourceold": "дөзү кодун көөрү",
"editlink": "эдер",
- "viewsourcelink": "дөзү кодун көөрү",
- "editsectionhint": "«$1» деп салбырны эдер",
+ "viewsourcelink": "Үндезин кодту көөр",
+ "editsectionhint": "«$1» салбырны эдер",
"toc": "Допчузу",
"showtoc": "көргүзери",
"hidetoc": "чажырары",
"feedlinks": "Агым:",
"feed-invalid": "Бижидилгениң агым хевири багай-дыр.",
"site-rss-feed": "$1 RSS Медээ Агымы",
- "site-atom-feed": "$1 Atom Медээ Агымы",
+ "site-atom-feed": "$1 Atom-лента",
"page-rss-feed": "«$1» RSS Медээ Агымы",
"page-atom-feed": "«$1» Atom Медээ Агымы",
- "red-link-title": "$1 (арны чок)",
+ "red-link-title": "$1 (арын чок)",
"nstab-main": "Арын",
"nstab-user": "Ажыглакчының арыны",
"nstab-media": "Медиа арыны",
- "nstab-special": "ТÑ\83Ñ\81кай арын",
+ "nstab-special": "Ð\90лбан-Ñ\85аакÑ\87Ñ\8bÑ\82 арын",
"nstab-project": "Төлевилел дугайында",
"nstab-image": "Файл",
"nstab-mediawiki": "Чагаа",
"nstab-template": "Майык",
"nstab-help": "Дуза",
- "nstab-category": "Аңгылал",
+ "nstab-category": "Категория",
+ "mainpage-nstab": "Кол арын",
"nosuchaction": "Ындыг кылыг чок",
"nosuchspecialpage": "Ындыг тускай арын чок",
"error": "Алдаг",
"internalerror_info": "Иштики алдаг: $1",
"badtitle": "Багай ат",
"badtitletext": "Негеттинип турар арын ады меге, куруг, чок болза өске дылда азы интервикиде ады шын эвес айыттынган.\n\nАттарга ажыглавас ужурлуг демдектер, үжүктер бары чадапчок.",
- "viewsource": "Ð\94өзүн көөÑ\80Ò¯",
+ "viewsource": "Ð\9aÓ©Ñ\80үлде",
"actionthrottled": "Шеглээн дүрген",
"exception-nologin": "Кирбес",
"welcomeuser": "Кирип моорлаңар, %s!",
"yourname": "Aжыглакчының ады",
+ "userlogin-yourname": "Бүрүткел ат",
+ "userlogin-yourname-ph": "Бүрүткедир адыңар киириңер",
"yourpassword": "Чажыт сөс",
+ "userlogin-yourpassword": "Пароль",
"yourpasswordagain": "Чажыт сөзүңерни катап бижиңер:",
"remembermypassword": "Мени бо компьютерде сактып алыры ($1 {{PLURAL:$1|1=хүн|хүн}}ге чедир)",
"login": "Кирери",
"accountcreatedtext": "«$1» деп ажыглакчының бүрүткел бижиини бүдүрген.",
"login-abort-generic": "Системаже таптыг эвес кирип тур силер",
"loginlanguagelabel": "Дыл: $1",
+ "pt-login": "Кирер",
+ "pt-createaccount": "Бүрүткел бижик кылыр",
"pt-userlogout": "Үнер",
"php-mail-error-unknown": "PHP-ниң mail() ажыл-чорудулгазында билбес алдаг бар.",
"changepassword": "Чажыт сөстү өскертири",
"passwordreset-email": "Э-чагааның адреси:",
"passwordreset-emailelement": "Ажыглакчы ады: \n$1\n\nТүр чажыт сөс: \n$2",
"changeemail": "Э-чагааның адресин өскертири",
+ "changeemail-header": "Бүрүткел бижиктиң э-чагааның адресин өскертири",
"changeemail-oldemail": "Амгы э-чагааның адреси:",
"changeemail-newemail": "Чаа э-чагааның адреси:",
"changeemail-none": "(чок)",
"changeemail-submit": "Э-чагааны өскертири",
- "bold_sample": "Кара сөзүглел",
- "bold_tip": "Кара сөзүглел",
- "italic_sample": "Ð\98йлендиÑ\80еÑ\80 Ñ\81өзүглел",
- "italic_tip": "Курсив бижик",
- "link_sample": "ХолбаанÑ\8bң ады",
- "link_tip": "Ð\98Ñ\88Ñ\82ики Ñ\85олбаа",
+ "bold_sample": "семис үжүк",
+ "bold_tip": "семис үжүк",
+ "italic_sample": "кÑ\83Ñ\80Ñ\81ив Ñ\85евиÑ\80",
+ "italic_tip": "Курсив хевир",
+ "link_sample": "Шөлүлгениң ады",
+ "link_tip": "Ð\98Ñ\88Ñ\82ики Ñ\88өлүлге",
"extlink_sample": "http://www.example.com холбааның ады",
- "extlink_tip": "Ð\94аÑ\88Ñ\82Ñ\8bкÑ\8b Ñ\85олбаа (\"http://\" Ñ\87үве Ñ\81акÑ\82Ñ\8bп алÑ\8bр)",
- "headline_sample": "Ð\9aÑ\8bÑ\80Ñ\8bкÑ\8b сөзүглели",
- "headline_tip": "2-ги деңнелдиг кырыкы ады",
- "nowiki_sample": "Форматтаваан сөзүглелини бээр салыры",
- "nowiki_tip": "Вики форматтаарын херекке албас",
+ "extlink_tip": "Ð\94аÑ\88Ñ\82Ñ\8bкÑ\8b Ñ\88өлүлге (\"http://\" пÑ\80еÑ\84икÑ\81 дÑ\83гайÑ\8bнда Ñ\83Ñ\82паңар)",
+ "headline_sample": "Ðге аÑ\82Ñ\82Ñ\8bÒ£ сөзүглели",
+ "headline_tip": "2-ги деңнелдиң эге ады",
+ "nowiki_sample": "Форматтавас сөзүглелди бээр салыңар",
+ "nowiki_tip": "Вики-форматтаашкын кылбас",
"image_sample": "Чижек.jpg",
- "image_tip": "Киир туткан файл",
+ "image_tip": "Киирген файл",
"media_sample": "Чижек.ogg",
- "media_tip": "Файлдың холбаазы",
- "sig_tip": "Шак-биле Ñ\85ол үжүңеÑ\80",
+ "media_tip": "Файлче шөлүлге",
+ "sig_tip": "ХолÑ\83ңаÑ\80 үжүү, үе-Ñ\88агÑ\8b",
"hr_tip": "Доора шугум (көвей ажыглаваңар)",
"summary": "Түңнел:",
"subject": "Кол сөс:",
"minoredit": "Бо эдилге бичии-дир",
- "watchthis": "Бо арынны хайгаараары",
- "savearticle": "Арын шыгжаар",
+ "watchthis": "Бо арынны хайгаараар",
+ "savearticle": "Арынны шыгжаар",
"preview": "Чижеглей көөрү",
- "showpreview": "Чижеглей көөÑ\80Ò¯",
- "showdiff": "Өскерлиишкиннерни көргүзери",
- "anoneditwarning": "<strong>Кичээңгейлиг!</strong> Силер сайтче кирип албаан силер. Чаартылгалар киирер болзуңарза, Силерниң IP-адрезиңер чүүлдүң төөгүзүнге көстүп кээр. Кажан сайтче <strong>[$1 шолаңар-биле кире бээриңерге]</strong> азы <strong>[$2 чаа шола чаяап алырыңарга]</strong>, эдилгеңерни шолаңар-биле холбаап каар база Силерге ажыктыг тускай херекселдер тыптып келир.",
+ "showpreview": "Чижек көÑ\80үлде",
+ "showdiff": "Кииртинген эдилгелер",
+ "anoneditwarning": "<strong> Кичээңгейлиг! </strong> Сайтта бүрүткеттинмээн-дир силер. Кандыг-даа бол эдилгелер киирер болзуңарза, IP-адрезиңер хөйге көскү болур. Сайтче <strong>[$1 кире бээр азы]</strong> азы <strong>[$2 бүрүткеттинип алыр] болзуңарза, эдилгелер силерниң адыңар-биле холбаалыг апаар, силерге өске-даа эптиг аргаларлыг тыптып кээр.",
"missingcommenttext": "Тайылбырни адаанда чогаадыңар.",
"summary-preview": "Түңнелдү чижеглей көөрү:",
"subject-preview": "Кол сөс чижеглей көөрү:",
"blockednoreason": "чылдагаан чок",
"nosuchsectiontitle": "Бо салбыр чок",
- "loginreqlink": "кирери",
+ "loginreqlink": "кирер",
"accmailtitle": "Чажыт сөс чоргустунган.",
"accmailtext": "A randomly generated password for [[User talk:$1|$1]] has been sent to $2.\n\nThe password for this new account can be changed on the ''[[Special:ChangePassword|change password]]'' page upon logging in.",
"newarticle": "(Чаа)",
"newarticletext": "Амдыызында чаяатынмаан арынче шөлүглеп шилчий бердиңер.\nОну чаяарда адакы көзенекке сөзүглелден таналап киириңер ([$1 тайылбыр арынын] тода көрүңер).. \nМаңаа алдаг аайы-биле шилчий берген болзуңарза, браузериңерниң \"дедир\" деп таназын базыптыңар.",
"noarticletext": "Амдыызында ук арында сөзүглел чок.\nОл дилеп турар [[Special:Search/{{PAGENAME}}|арыныңар дугайында өске чүүлдерге бижээнин тып аап]] болур силер,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} журналдар аразынга айытканын көрүп болур силер] азы '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} шак ындыг аттыг арын чаяап болур силер]'''</span>.,",
- "noarticletext-nopermission": "Ð\90мдÑ\8bÑ\8bзÑ\8bнда Ñ\83к аÑ\80Ñ\8bнда Ñ\81өзүглел Ñ\87ок.\nÐ\9eл дилеп Ñ\82Ñ\83Ñ\80аÑ\80 [[Special:Search/{{PAGENAME}}|аÑ\80Ñ\8bнÑ\8bңаÑ\80 дÑ\83гайÑ\8bнда Ó©Ñ\81ке Ñ\87үүлдеÑ\80ге бижÑ\8dÑ\8dнин Ñ\82Ñ\8bп аап]] болÑ\83Ñ\80 Ñ\81илеÑ\80, азÑ\8b\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} жÑ\83Ñ\80налдаÑ\80 аÑ\80азÑ\8bнга айÑ\8bÑ\82канÑ\8bн көÑ\80үп болÑ\83Ñ\80 Ñ\81илеÑ\80]. Шак Ñ\8bндÑ\8bг Ñ\83к аÑ\80Ñ\8bн Ñ\87аÑ\8fаÑ\80 Ñ\87Ó©Ñ\88пÑ\8dÑ\8dÑ\80елиңеÑ\80 чок.",
+ "noarticletext-nopermission": "Ð\90мгÑ\8b үеде бо аÑ\80Ñ\8bнда Ñ\81өзүглел Ñ\87ок. Ук аÑ\82Ñ\82Ñ\8b Ó©Ñ\81ке аÑ\80Ñ\8bннаÑ\80дан Ñ\82Ñ\8bп ап, азÑ\8b [[Special:Search/{{PAGENAME}}|аÑ\80Ñ\8bнÑ\8bңаÑ\80 дÑ\83гайÑ\8bнда Ó©Ñ\81ке Ñ\87үүлдеÑ\80ге бижÑ\8dÑ\8dнин Ñ\82Ñ\8bп ап]] болÑ\83Ñ\80 Ñ\81илеÑ\80, азÑ\8b\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} депÑ\82еÑ\80леÑ\80де Ñ\87огÑ\83Ñ\83Ñ\80 бижикÑ\82еÑ\80ни Ñ\82Ñ\8bп ап болÑ\83Ñ\80 Ñ\81илеÑ\80]. Ук аÑ\80Ñ\8bннÑ\8b кÑ\8bлÑ\8bÑ\80 Ñ\87өпÑ\88Ñ\8dÑ\8dÑ\80ел Ñ\81илеÑ\80де чок.",
"userpage-userdoesnotexist": "«<nowiki>$1</nowiki>» деп ажыглакчы is not registered.\nPlease check if you want to create/edit this page.",
"userpage-userdoesnotexist-view": "«$1» деп ажыглакчы not registered.",
"note": "'''Тайылбыр:'''",
"editingcomment": "«$1» деп арынны өскертип турар (чаа салбыр)",
"yourtext": "Силерниң сөзүглелиңер",
"yourdiff": "Ылгалдар",
- "templatesused": "Ð\91о аÑ\80Ñ\8bнда ажÑ\8bглаан {{PLURAL:$1|1=Ð\9cайÑ\8bк|Ð\9cайыктар}}:",
+ "templatesused": "Ð\91о аÑ\80Ñ\8bнда ажÑ\8bглап Ñ\82Ñ\83Ñ\80аÑ\80{{PLURAL:$1|1=майÑ\8bк|майыктар}}:",
"template-protected": "(камгалаан)",
- "template-semiprotected": "(Ñ\87еÑ\82пеÑ\81 камгалаан)",
- "hiddencategories": "Бо арын {{PLURAL:$1|$1 чажыт бөлүкке}} хамааржыр:",
- "permissionserrorstext-withaction": "Мында «'''$2'''» силерниң эргеңер чок, {{PLURAL:$1|1=чылдагааны|чылдагааннары}}:",
+ "template-semiprotected": "(Ñ\87аÑ\80Ñ\82Ñ\8bк-Ñ\87амдÑ\8bÑ\8bзÑ\8b камгалалдÑ\8bг)",
+ "hiddencategories": "Бо арын{{PLURAL:$1|$1 көзүлбес категорияга|$1 көзүлбес категорияларга|1=бир көзүлбес категорияга}} хамааржыр:",
+ "permissionserrorstext-withaction": "{{PLURAL:$1|1=дараазында чылдагаан-биле|дараазында чылдагааннар-биле}} $2-ни ажыглаар эрге силерде чок:",
"recreate-moveddeleted-warn": "'''Кичээңейлиг. Ооң мурнунда казыттынган арынны катап тургузар деп тур Силер.'''\n\nОл арынны катап тургузары шынап-ла чугула бе, боданыңар.\nБо адаанда ол арынның казыышкыннар болгаш өскээр адалгалар журналдарын көргүскен.",
"moveddeleted-notice": "Бо арын ап каавыткан.\nАдаанда ап каавыткан биле өскээр адаан бижиктер шынзылгазын көргүскен.",
"post-expand-template-inclusion-warning": "Сагындырыг: Кошкан майыктарның ниити хемчээли дендии улуг.\nЧамдык майыктар коштунмаан боор.",
"currentrev-asof": "Амгы $1 үениң бижээни",
"revisionasof": "$1 версиязы",
"revision-info": "$2 киржикчиниң $1 хүнүнде киирилдези",
- "previousrevision": "←Артык эрги үндүрери",
+ "previousrevision": "←Амдыы арын",
"nextrevision": "Артык чаа үндүрери→",
"currentrevisionlink": "Амгы үе үндүрери",
"cur": "амгы",
"next": "дараазында",
- "last": "эрткен",
+ "last": "амдыы",
"page_first": "бирги",
"page_last": "сөөлгү",
"histlegend": "Версиялар шилиири: деңнээр дээн арыныңар версияларын имнеңеш, бээр базыптыңар '''{{int:compare-submit}}'''.<br />\nТайылбыр: '''({{int:cur}})''' — амгы версиядан ылгавыр; '''({{int:last}})''' — эрткен версиядан ылгавыр; '''{{int:minoreditletter}}''' — биче өскерилгелер.",
"history-title": "«$1» деп арынның эдилге төөгүзү",
"lineno": "Одуруг $1:",
"compareselectedversions": "Шилип алган хевирлери деңнээри",
- "editundo": "чөрчүүрү",
- "searchresults": "ТүңнелдеÑ\80",
- "searchresults-title": "«$1» деп диле",
- "prevn": "эрткен {{PLURAL:$1|$1}}",
+ "editundo": "ойталаар",
+ "searchresults": "Ð\94илÑ\8dÑ\8dÑ\88кинниң Ñ\82үңнелдеÑ\80и",
+ "searchresults-title": "«$1» дилÑ\8dÑ\8dÑ\80",
+ "prevn": "амдыы {{PLURAL:$1|$1}}",
"nextn": "дараазында {{PLURAL:$1|$1}}",
"prevn-title": "Эрткен $1 {{PLURAL:$1|1=бижик|бижик}}",
"nextn-title": "Дараазында $1 {{PLURAL:$1|1=бижик|бижик}}",
- "shown-title": "Арынга $1 {{PLURAL:$1|түңнел}} көргүзер",
- "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) көөрү",
+ "shown-title": "Арынга $1 {{PLURAL:$1|бижикти, бижиктерни, бижиктерин}} көргүзер",
+ "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) көөр",
"searchmenu-exists": "'''Бо викиде \"[[:$1]]\" деп арын бар.'''",
- "searchmenu-new": "'''Бо викиде «[[:$1]]» арынны чогаадыры'''",
+ "searchmenu-new": "Бо вики-төлевилелге «[[:$1]]» деп арынны кылыр.{{PLURAL:$2|0=|Ол ышкаш дилээшкиниңерниң түңнелинде тывылган арынны база көрүңер.|Ол ышкаш дилээшкиниңерниң түңнелдерин база көрүңер.}}",
"searchprofile-articles": "үндезин арыннар",
"searchprofile-images": "Мультимедиа",
- "searchprofile-everything": "Ð\91үгүде",
- "searchprofile-advanced": "Ð\9aалбайÑ\82Ñ\8bÑ\80",
+ "searchprofile-everything": "каÑ\8fа-даа",
+ "searchprofile-advanced": "Ð\94елгеÑ\80еңгей",
"searchprofile-articles-tooltip": "$1 иштинден дилээри",
"searchprofile-images-tooltip": "Файлдар дилээри",
- "searchprofile-everything-tooltip": "Шупту арыннардан дилээри (сумележиишкиннерден база)",
+ "searchprofile-everything-tooltip": "Шупту арыннардан дилээр (сайгаржылга арыннарындан база)",
"searchprofile-advanced-tooltip": "Айыткан аттар делгемнеринден дилээри",
- "search-result-size": "$1 ({{PLURAL:$2|$2 сөс}})",
+ "search-result-size": "$1 ({{PLURAL:$2|$2 сөс|$2 сөстер|$2}})",
"search-result-category-size": "{{PLURAL:$1|1=1 кежигүүн|$1 кежигүүн}} ({{PLURAL:$2|1=1 аңгылам|$2 аңгылам}}, {{PLURAL:$3|1=1 файл|$3 файл}})",
- "search-redirect": "($1-н Ñ\88иглелге)",
+ "search-redirect": "($1-ден Ñ\8dде Ñ\87оÑ\80Ñ\83дÑ\83г)",
"search-section": "(«$1» деп салбыр)",
"search-suggest": "Силер «$1» деп бодадыңар чадавас",
"search-interwiki-more": "(артык)",
"searchrelated": "холбаалыг",
"searchall": "шупту",
- "search-nonefound": "Ð\90йÑ\8bÑ\82кан негелдениң Ñ\82үңнели Ñ\87ок",
+ "search-nonefound": "Ð\90йÑ\8bÑ\82кан негелдеге дүгжүÑ\80 Ñ\87Ò¯Ò¯-даа Ñ\82Ñ\8bвÑ\8bлбаан.",
"powersearch-ns": "Аттар делгемнеринден дилээри:",
"powersearch-toggleall": "Шупту",
"preferences": "Шилилгелер",
"right-createaccount": "Чаа бүрүткел бижиктерин бүдүрери",
"right-move": "Арыннарны шимчээри",
"right-movefile": "Файлдарны шимчээри",
+ "right-writeapi": "API-ни бижикке ажыглаары",
"right-editusercssjs": "Өске ажыглакчыларның CSS база Javascript файлдарын өскертири.",
"right-editusercss": "Өске ажыглакчыларның CSS файлдарын өскертири.",
"right-edituserjs": "Өске ажыглакчыларның JavaScript файлдарын өскертири.",
- "newuserlogpage": "Чаа ажÑ\8bглакÑ\87Ñ\8b кÑ\8bÑ\80Ñ\8bнда жÑ\83Ñ\80нал",
+ "newuserlogpage": "Ð\9aиÑ\80жикÑ\87илеÑ\80 бүÑ\80Ò¯Ñ\82кÑ\8dÑ\8dÑ\80 депÑ\82еÑ\80",
"action-read": "бо арынны номчууру",
"action-edit": "бо арынның эдилгези",
"action-createpage": "арыннарны чогаадыры",
"action-movefile": "бо файлды шимчээри",
"action-sendemail": "э-чагаалар чорудары",
"nchanges": "$1 {{PLURAL:$1|өскерлиишкин}}",
- "recentchanges": "Ð\90мгÑ\8b Ó©Ñ\81кеÑ\80лииÑ\88киннер",
- "recentchanges-legend": "Ð\90мгÑ\8b Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80ниң Ñ\8dдиглеÑ\80и",
- "recentchanges-summary": "Ð\91о агÑ\8bмда викиниң Ñ\81өөлгү Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80ин көөÑ\80Ò¯.",
+ "recentchanges": "Чаа Ñ\8dдилгелер",
+ "recentchanges-legend": "Чаа Ñ\8dдилгелеÑ\80ни аайлааÑ\80",
+ "recentchanges-summary": "Ð\9cооң адаанда аÑ\80Ñ\8bннаÑ\80да Ñ\81өөлгү Ó©Ñ\81кеÑ\80илгелеÑ\80ни үе-Ñ\88ак аайÑ\8b-биле Ñ\87изелеп Ñ\87Ñ\8bÑ\81кааган.",
"recentchanges-feed-description": "Бо агымда викиниң сөөлгү өскерлиишкиннерин көөрү.",
- "recentchanges-label-newpage": "Бо өскерлиишкин чаа арынны чогааткан.",
- "recentchanges-label-minor": "Ð\91о Ó©Ñ\81кеÑ\80лииÑ\88кин биÑ\87ии",
+ "recentchanges-label-newpage": "Бо эдилге-биле чаа арын кылдынган.",
+ "recentchanges-label-minor": "УлÑ\83г Ñ\8dвеÑ\81 Ó©Ñ\81кеÑ\80Ñ\82илге-диÑ\80",
"recentchanges-label-bot": "Бо эдилгени робот күүсеткен.",
- "recentchanges-label-unpatrolled": "Бо өскертилге истетинмээн (патрульдаттынмаан)",
+ "recentchanges-label-unpatrolled": "Бо эдилгени кым-даа хайгаараваан",
"recentchanges-label-plusminus": "Арынның сөзүглели бердинген түң байт-биле өскерилген",
- "recentchanges-legend-newpage": "$1 — чаа арын",
+ "recentchanges-legend-newpage": " $1 — чаа арыннар даңзызы",
"rcnotefrom": "<strong>$2</strong> үеде <strong>$1</strong> чедир өскертилгелерни санаан.",
- "rclistfrom": "$3 $2 тура чаа өскерилгелерни көргүзер",
- "rcshowhideminor": "Бичии өскерлиишкиннерни $1",
+ "rclistfrom": "$3 $2 тура өскерилгелерни көргүзер",
+ "rcshowhideminor": "$1 биче эдилгелер",
"rcshowhideminor-show": "көргүзер",
"rcshowhideminor-hide": "чажырар",
"rcshowhidebots": "Роботтарны $1",
- "rcshowhideliu": "Кирген киржикчилерни $1",
+ "rcshowhidebots-show": "Көргүзер",
+ "rcshowhideliu": "бүрүткеттинген киржикчилер $1",
"rcshowhideliu-show": "көргүзер",
- "rcshowhideliu-hide": "чажырар",
- "rcshowhideanons": "Адыжок киржикчилерни $1",
+ "rcshowhideliu-hide": "Чажырар",
+ "rcshowhideanons": "Ады билдинмес киржикчилер $1",
"rcshowhideanons-show": "көргүзер",
"rcshowhideanons-hide": "чажырар",
"rcshowhidepatr": "истээн өскерлиишкиннерни $1",
"rcshowhidepatr-show": "көргүзер",
"rcshowhidepatr-hide": "чажырар",
- "rcshowhidemine": "Эдиглеримни $1",
+ "rcshowhidemine": "$1 боттуң эдилгелери",
"rcshowhidemine-show": "көргүзер",
"rcshowhidemine-hide": "чажырар",
- "rclinks": "Сөөлгү $2 Ñ\85үн иÑ\88Ñ\82инде болган $1 өскерлиишкиннерни көргүзер<br />$3",
+ "rclinks": "ЧооккÑ\83 $2 Ñ\85үн иÑ\88Ñ\82инде Ñ\81өөлгү $1 өскерлиишкиннерни көргүзер<br />$3",
"diff": "ылгал",
"hist": "төөгү",
"hide": "Чажырар",
"newpageletter": "Ч",
"boteditletter": "р",
"number_of_watching_users_pageview": "[$1 хайгаараар {{PLURAL:$1|ажыглакчы}}]",
+ "rc-change-size-new": "Өскертилге соонда хемчээли:$1 {{PLURAL:$1|байт}}",
"newsectionsummary": "/* $1 */ чаа салбыр",
"rc-enhanced-expand": "Тодаларны көргүзери (JavaScript херек)",
"rc-enhanced-hide": "Тодаларны чажырары",
- "recentchangeslinked": "ХамааÑ\80Ñ\8bÑ\88кан өскерилгелер",
- "recentchangeslinked-toolbox": "ХамааÑ\80Ñ\8bÑ\88кан өскерилгелер",
- "recentchangeslinked-title": "«$1» деп арынга хамаарыштырган өскерлиишкиннер",
+ "recentchangeslinked": "ТÑ\83дÑ\83Ñ\88 өскерилгелер",
+ "recentchangeslinked-toolbox": "ТÑ\83дÑ\83Ñ\88 өскерилгелер",
+ "recentchangeslinked-title": "«$1» деп арынга кошкан эдилгелер",
"recentchangeslinked-summary": "Айыткан арынның (азы айыткан аңгылалга хамаарышкан) шөлүлүглериниң чедер арыннарнының чаа өскерилгер даңзызы.\n[[Special:Watchlist|Силерниң хайгаарал даңзызынче]] кирип турар арыннарны '''ылгап каан'''.",
"recentchangeslinked-page": "Арынның ады:",
- "recentchangeslinked-to": "Ð\90йÑ\8bÑ\82кан аÑ\80Ñ\8bнÑ\87е Ñ\88өлүп Ñ\82Ñ\83Ñ\80аÑ\80 аÑ\80Ñ\8bннаÑ\80га өскерилгелерни көргүзер",
- "upload": "Файл чүдүрер",
+ "recentchangeslinked-to": "Ð\90йÑ\8bÑ\82кан аÑ\80Ñ\8bнÑ\87е Ñ\88өлүп Ñ\82Ñ\83Ñ\80аÑ\80 аÑ\80Ñ\8bннаÑ\80да өскерилгелерни көргүзер",
+ "upload": "Файлды киир чүдүрер",
"uploadbtn": "Файлды салыры",
"uploadnologin": "Кирбес",
"uploaderror": "Кииреринге алдаг",
"upload-misc-error": "Билбес кииреринге алдаг",
"http-read-error": "HTTP-биле номчуур алдаг.",
"license": "Хоойлужудары:",
- "license-header": "ХоойлÑ\83жÑ\83дары",
+ "license-header": "Ð\9bиÑ\86ензиÑ\8fлаары",
"imgfile": "файл",
"listfiles": "Файл даңзызы",
"listfiles_name": "Ат",
"listfiles_count": "Үндүрерилер",
"file-anchor-link": "Файл",
"filehist": "Файлдың төөгүзү",
- "filehist-help": "Ð\9eл үеде Ñ\84айлдÑ\8bÒ£ көÑ\81Ñ\82Ò¯Ñ\80үн көөÑ\80де, даÑ\82а/үеже базÑ\8bпÑ\82Ñ\8bңар.",
+ "filehist-help": "Ð\90й-Ñ\85үн/үе-Ñ\88акÑ\87е базÑ\8bпкаÑ\88, Ñ\84айлдÑ\8bÒ£ Ñ\8bнÑ\87ан кандÑ\8bг Ñ\82Ñ\83Ñ\80ганÑ\8bн көÑ\80үңер.",
"filehist-deleteall": "шуптуну ырадыры",
"filehist-deleteone": "ырадыры",
"filehist-revert": "эгидип тургузары",
"filehist-current": "амгы",
- "filehist-datetime": "Ай, Хүн/Шак",
- "filehist-thumb": "Ð\91иÑ\87ии Ñ\87Ñ\83Ñ\80Ñ\83мал",
- "filehist-thumbtext": "$1 Ñ\85амааÑ\80жÑ\8bÑ\80 Ñ\85евиÑ\80иниң биÑ\87е Ñ\87Ñ\83Ñ\80Ñ\83малÑ\8b (миниаÑ\82Ñ\8eÑ\80азÑ\8b)",
- "filehist-user": "Ð\90жÑ\8bглакÑ\87Ñ\8b",
+ "filehist-datetime": "Ай-хүн/Үе-шак",
+ "filehist-thumb": "Ынай Ñ\87Ñ\83Ñ\80Ñ\83к",
+ "filehist-thumbtext": "$1 Ñ\8fнзÑ\8bзÑ\8bнга Ñ\8bнай Ñ\87Ñ\83Ñ\80Ñ\83к",
+ "filehist-user": "Ð\9aиÑ\80жикÑ\87и",
"filehist-dimensions": "Хемчээлдери",
"filehist-filesize": "Файл хемчээли",
"filehist-comment": "Тайылбыр",
"imagelinks": "Файлдың ажыглаашкыны",
- "linkstoimage": "Ð\91еÑ\80динген Ñ\84айлÑ\87е даÑ\80аазÑ\8bнда {{PLURAL:$1|1=аÑ\80Ñ\8bн Ñ\88өлүдүп Ñ\82Ñ\83Ñ\80|$1 аÑ\80Ñ\8bн Ñ\88өлүдүп Ñ\82Ñ\83Ñ\80}}:",
+ "linkstoimage": "Ð\94аÑ\80аазÑ\8bнда {{PLURAL:$1|1=аÑ\80Ñ\8bн|$1 аÑ\80Ñ\8bннаÑ\80нÑ\8bÒ£ Ñ\88өлүлгези Ñ\84айл}}:",
"nolinkstoimage": "Бердинген файлче шөлүп турар арыннар чок.",
- "sharedupload-desc-here": "Моон $1 алган файл өске төлевилелдерге ажыглаттынып болур.\nОоң [$2 допчу тайылбыр арынындан] медеглели адаанда бердинген.",
+ "sharedupload-desc-here": "Моон $1 алган файл өске төлевилелдерге база ажыглаттынып болур.\nОоң [$2 тайылбыр арнындан] медээни адаанда киирген.",
+ "upload-disallowed-here": "Бо файлды эде бижидип шыдавас силер.",
"filerevert": "$1 эгидип тургузары",
"filerevert-legend": "Файлды эгидип тургузары",
"filerevert-comment": "Чылдагаан:",
"unwatchedpages": "Хайгаарабас арыннар",
"unusedtemplates": "Ажыглаан эвес майыктар",
"unusedtemplateswlh": "өске холбаалар",
- "randompage": "Душ арын",
+ "randompage": "Дужа-келби таварышкан арын",
"statistics": "Статистика",
"statistics-pages": "Арыннар",
"brokenredirects-edit": "өскертири",
"nbytes": "$1 {{PLURAL:$1|байт}}",
"ncategories": "$1 {{PLURAL:$1|аңгылал}}",
"nlinks": "$1 {{PLURAL:$1|холбаа}}",
- "nmembers": "$1 {{PLURAL:$1|кежигүн}}",
+ "nmembers": "$1 {{PLURAL:$1|кежигүн|кежигүннер}}",
"nrevisions": "$1 {{PLURAL:$1|үндүрери}}",
"specialpage-empty": "Бо илеткелдиң түңнели чок.",
"lonelypages": "Чааскаан арыннар",
"move": "Шимчээри",
"movethispage": "Бо арынны шимчээри",
"pager-newer-n": "{{PLURAL:$1|артык чаа}}",
- "pager-older-n": "{{PLURAL:$1|аÑ\80Ñ\82Ñ\8bк Ñ\8dÑ\81ки}}",
+ "pager-older-n": "{{PLURAL:$1|аÑ\80Ñ\82Ñ\8bк Ñ\8dÑ\80ги}}",
"booksources": "Номнарның үнген дөзү",
"booksources-search-legend": "Номнуң медээлерин дилээри",
"specialloguserlabel": "Күүседикчи:",
"speciallogtitlelabel": "Target (aтка азы ажыглакчыга):",
- "log": "Ð\96Ñ\83Ñ\80налдар",
+ "log": "Ð\94епÑ\82еÑ\80лер",
"allpages": "Шупту арыннар",
"nextpage": "Дараазында арын ($1)",
"prevpage": "Эрткен арын ($1)",
"allarticles": "Шупту арыннар",
- "allpagessubmit": "Ð\9aÒ¯Ò¯cедиÑ\80и",
+ "allpagessubmit": "Че-ве",
"categories": "Аңгылалдар",
"sp-deletedcontributions-contribs": "дадывыр",
"linksearch": "Даштыкы холбааларга дилээри",
"namespace": "Аттар делгеми:",
"invert": "Шилээнин аңдарар. (Обратить выбранное)",
"blanknamespace": "(Кол)",
- "contributions": "{{GENDER:$1|Ð\90жÑ\8bглакÑ\87Ñ\8bнÑ\8bÒ£}} Ñ\81алÑ\8bÑ\8bÑ\88кÑ\8bннаÑ\80Ñ\8b",
+ "contributions": "{{GENDER:$1|киÑ\80жикÑ\87иниң}} үлүү",
"contributions-title": "«$1» деп ажыглакчының салыышкыннары",
"mycontris": "Дадывыр",
"contribsub2": "$1 ($2)",
"isredirect": "шиглидер арын",
"istemplate": "киирткен арыннар",
"isimage": "файлдың холбаазы",
- "whatlinkshere-prev": "{{PLURAL:$1|1=эрткен|эрткен $1}}",
+ "whatlinkshere-prev": "{{PLURAL:$1|1= амдыы|амдыы $1}}",
"whatlinkshere-next": "{{PLURAL:$1|1=дараазында|дараазында $1}}",
"whatlinkshere-links": "← холбаалар",
"whatlinkshere-hideredirs": "$1-че шиглиглер",
"blocklist-reason": "Чылдагаан",
"ipblocklist-submit": "Дилээр",
"infiniteblock": "кезээ-мөңгеде",
- "blocklink": "кÑ\8bзÑ\8bгааÑ\80лааÑ\80Ñ\8b",
+ "blocklink": "доÑ\81Ñ\82Ñ\83Ñ\80аÑ\80",
"unblocklink": "ажыдып хостаар",
"change-blocklink": "кызыгаарлаашкынны өскертири",
- "contribslink": "дадывыр",
+ "contribslink": "үлүг",
"blocklogpage": "Кызыгаарлаашкынның журналы",
"blocklogentry": ", [[$1]] $2 дургузунда кызыгаарлаттынган: $3",
"block-log-flags-anononly": "чүгле адыжок киржикчилер",
"unlockbtn": "Медээ шыгжамырын ажыттынар",
"move-page": "«$1» деп арынны шимчээри",
"move-page-legend": "Арынны шимчээр",
- "movearticle": "Бо арынны шимчээри:",
"newtitle": "Чаа ат:",
"move-watch": "Бо арынны хайгаараары",
"movepagebtn": "Арынны шимчээри",
"tooltip-pt-preferences": "Силерниң шилилгеңер",
"tooltip-pt-watchlist": "Карактап (хынап) турар өскертилгелерге хамааржыр арыннарның даңзызы",
"tooltip-pt-mycontris": "Силерниң салыышкыннарыңарның даңзызы",
- "tooltip-pt-login": "Ð\9cаңаа Ñ\81иÑ\81Ñ\82емаже кииÑ\80 бүÑ\80Ò¯Ñ\82кенип болÑ\83Ñ\80, Ñ\8bнÑ\87алза-даа ол албан эвес.",
+ "tooltip-pt-login": "Ð\9cаңаа Ñ\81иÑ\81Ñ\82емага бүÑ\80Ò¯Ñ\82кедип ап болÑ\83Ñ\80, Ñ\87огÑ\83м албан эвес.",
"tooltip-pt-logout": "Үнери",
- "tooltip-ca-talk": "Бо арын дугайында чыгаалажыры",
- "tooltip-ca-edit": "Ук арынны эдип болур силер. Эдилгеңер бижидерин бертинде чижеглей көөрүн утпаңар.",
- "tooltip-ca-addsection": "Чаа салбыр чаяар",
- "tooltip-ca-viewsource": "Бо арын камгалаттырган.\nДөзү кодун көрүп болур силер.",
- "tooltip-ca-history": "Арынның мурнуку өскерлиишкиннери",
+ "tooltip-pt-createaccount": "Албан эвес-даа болза, бүрүткел бижикти кылгаш, системаже кирерин силерге саналдап тур бис.",
+ "tooltip-ca-talk": "Кол арынны сайгарары",
+ "tooltip-ca-edit": "Бо арынны эдер",
+ "tooltip-ca-addsection": "Чаа салбыр кылыр",
+ "tooltip-ca-viewsource": "Бо арынны өскертилгелерден камгалап каан, чогум ону көрүп, ооң үндезин кодун хоолгалап ап болур силер.",
+ "tooltip-ca-history": "Арынның өскерлиишкиннериниң дептери",
"tooltip-ca-protect": "Бо арынны камгалаары",
"tooltip-ca-delete": "Бо арынны ырадыры",
"tooltip-ca-move": "Бо арынны шимчээри",
- "tooltip-ca-watch": "СилеÑ\80ниң Ñ\85айгааÑ\80ал даңзÑ\8bзÑ\8bнга бо аÑ\80Ñ\8bннÑ\8b немеÑ\80елÑ\8dÑ\8dÑ\80и",
+ "tooltip-ca-watch": "Ð\91о аÑ\80Ñ\8bннÑ\8b Ñ\85айгааÑ\80алÑ\8bңаÑ\80 даңзÑ\8bзÑ\8bнÑ\87е немÑ\8dÑ\8dÑ\80",
"tooltip-ca-unwatch": "Силерниң хайгаарал даңзызындан бо арынны ырадыры",
- "tooltip-search": "{{grammar:locative|{{SITENAME}}}} дилээри",
- "tooltip-search-go": "Шак Ñ\8bндÑ\8bг аÑ\82Ñ\82Ñ\8bг аÑ\80Ñ\8bнÑ\87е Ñ\89илчиир",
- "tooltip-search-fulltext": "Ð\91о бижике аÑ\80Ñ\8bннаÑ\80дан дилÑ\8dÑ\8dÑ\80и",
- "tooltip-p-logo": "Ð\9aол Ð\90Ñ\80Ñ\8bн",
- "tooltip-n-mainpage": "Ð\9aол Ð\90рынче шилчиир",
- "tooltip-n-mainpage-description": "Ð\9aол Ð\90Ñ\80Ñ\8bнÑ\87е киÑ\80еÑ\80и",
- "tooltip-n-portal": "Төлевилел дÑ\8bгайÑ\8bнда, Ñ\87үнү кÑ\8bлÑ\8bп болÑ\83Ñ\80 Ñ\81илеÑ\80, кайда Ñ\87Ò¯Ò¯ Ñ\87Ñ\8bдарыл",
- "tooltip-n-currentevents": "Ам болуп турар таварылгалар даңзызы",
- "tooltip-n-recentchanges": "Ð\92икиниң Ñ\8dниÑ\80 Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80и",
- "tooltip-n-randompage": "Душ арынны көөрү",
- "tooltip-n-help": "Төлевилелдиң Ñ\82айÑ\8bлбÑ\8bÑ\80Ñ\8b «{{SITENAME}}»",
- "tooltip-t-whatlinkshere": "Ð\91үгү маңаа Ñ\88өлүÑ\82ген вики арыннарның даңзызы",
- "tooltip-t-recentchangeslinked": "Бо арындан шөлүткен өске арыннарның сөөлгү өскерлиишкиннери",
+ "tooltip-search": "{{grammar:locative|{{SITENAME}}}} дилээр",
+ "tooltip-search-go": "Шак Ñ\8bндÑ\8bг аÑ\82Ñ\82Ñ\8bг аÑ\80Ñ\8bнÑ\87е Ñ\88илчиир",
+ "tooltip-search-fulltext": "Ð\90йÑ\8bÑ\82Ñ\82Ñ\8bнган Ñ\81өзүглелдиг аÑ\80Ñ\8bннаÑ\80нÑ\8b дилÑ\8dÑ\8dÑ\80",
+ "tooltip-p-logo": "Ð\9aол аÑ\80Ñ\8bнÑ\87е киÑ\80еÑ\80",
+ "tooltip-n-mainpage": "Ð\9aол арынче шилчиир",
+ "tooltip-n-mainpage-description": "Ð\9aол аÑ\80Ñ\8bнÑ\87е киÑ\80еÑ\80",
+ "tooltip-n-portal": "Төлевилел дÑ\83гайÑ\8bнда, маңаа Ñ\87үнү кÑ\8bлÑ\8bп болÑ\83Ñ\80Ñ\83л, ол Ñ\8bÑ\88каÑ\88 кайда Ñ\87Ò¯Ò¯ барыл",
+ "tooltip-n-currentevents": "Амгы болуушкуннар дугайында медээ",
+ "tooltip-n-recentchanges": "Ð\92икиниң Ñ\81өөлгү Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80 даңзÑ\8bзÑ\8b",
+ "tooltip-n-randompage": "Дужа-келби таварышкан арынны көөр",
+ "tooltip-n-help": "ШÑ\8bнзÑ\8bлга ап болÑ\83Ñ\80 Ñ\87еÑ\80",
+ "tooltip-t-whatlinkshere": "Ук аÑ\80Ñ\8bнÑ\87е Ñ\88өлүлгелиг Ñ\88Ñ\83пÑ\82Ñ\83 арыннарның даңзызы",
+ "tooltip-t-recentchangeslinked": "Бо арындан шөлүлгелиг арыннарында сөөлгү өскерилгелер",
"tooltip-feed-rss": "Бо арының РСС медээ агымы",
"tooltip-feed-atom": "Бо арының Атом медээ агымы",
"tooltip-t-contributions": "Бо ажыглакчының салыышкыннарының даңзазын көөрү.",
"tooltip-t-emailuser": "Бо ажыглакчыга э-чагааны чорудаары",
- "tooltip-t-upload": "Файлдарны киирери",
- "tooltip-t-specialpages": "ШÑ\83пÑ\82Ñ\83 Ñ\82Ñ\83Ñ\81кай арыннар даңзызы",
- "tooltip-t-print": "Бо арынның парлаттынар хевири",
- "tooltip-t-permalink": "Ук арынның амгы янзызының турум айтыы",
- "tooltip-ca-nstab-main": "Ð\94опÑ\87Ñ\8b аÑ\80Ñ\8bнÑ\8bн көөÑ\80Ò¯",
+ "tooltip-t-upload": "Файлдарны киир чүдүрери",
+ "tooltip-t-specialpages": "Ð\90лбан-Ñ\85аакÑ\87Ñ\8bÑ\82 арыннар даңзызы",
+ "tooltip-t-print": "Бо арынның парлап үндүрер янзызы",
+ "tooltip-t-permalink": "Ук арынның амгы янзызының доктаамал шөлүлгези",
+ "tooltip-ca-nstab-main": "Ð\9aол аÑ\80Ñ\8bннÑ\8b көөÑ\80",
"tooltip-ca-nstab-user": "Ажыглакчының арынын көөрү",
"tooltip-ca-nstab-media": "Медиа арынын көөрү",
- "tooltip-ca-nstab-special": "Ð\91о бөлгÑ\8dÑ\8dÑ\82 аÑ\80Ñ\8bн-дÑ\8bÑ\80 (Ñ\81лÑ\83жебнаÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86а), ооң эдери болдунмас.",
+ "tooltip-ca-nstab-special": "Ð\91о албан-Ñ\85аакÑ\87Ñ\8bÑ\82 аÑ\80Ñ\8bн-дÑ\8bÑ\80, онÑ\83 эдери болдунмас.",
"tooltip-ca-nstab-project": "Төлевилелдиң арынын көөрү",
- "tooltip-ca-nstab-image": "Файлдың арынын көөрү",
+ "tooltip-ca-nstab-image": "Файлдың арны",
"tooltip-ca-nstab-template": "Майыкты көөрү",
"tooltip-ca-nstab-help": "Дуза арынын көөрү",
- "tooltip-ca-nstab-category": "Ð\90ңгÑ\8bлалдÑ\8bÒ£ аÑ\80Ñ\8bнÑ\8bн көөÑ\80Ò¯",
+ "tooltip-ca-nstab-category": "Ð\9aаÑ\82егоÑ\80иÑ\8f аÑ\80нÑ\8b",
"tooltip-minoredit": "Бо өскертилгени \"биче\" деп демдеглээр",
- "tooltip-save": "СилеÑ\80ниң Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80иңеÑ\80ни Ñ\88Ñ\8bгжааÑ\80Ñ\8b",
- "tooltip-preview": "ШÑ\8bгжааÑ\80 мÑ\83Ñ\80нÑ\83нда Ñ\81илеÑ\80ниң Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80ин Ñ\87ижеглеп көÑ\80ем!",
- "tooltip-diff": "Бо сөзүглелге хамаарыштыр кандыг өскертилгелерни кылган Силер - ону көргүзер.",
+ "tooltip-save": "ÐдилгелеÑ\80иңеÑ\80ни Ñ\88Ñ\8bгжап аÑ\80Ñ\82Ñ\82Ñ\8bÑ\80аÑ\80",
+ "tooltip-preview": "Ð\90Ñ\80Ñ\8bннÑ\8bÒ£ Ñ\87ижек көÑ\80үлдези: Ñ\88Ñ\8bгжааÑ\80 беÑ\82инде онÑ\83 ажÑ\8bглааÑ\80 Ñ\81илеÑ\80!",
+ "tooltip-diff": "Үндезин сөзүглелге хамаарыштыр кылдынган өскерлиишкиннерни көргүзер.",
"tooltip-compareselectedversions": "Бо арынның шилиттинген ийи хевиринниң ылгалын көөр.",
"tooltip-watch": "Силерниң хайгаарал даңзызынга бо арынны немерелээри",
"tooltip-rollback": "Сөөлгү киржикчиниң өскерилгелерин чаңгыс баскаш, ойталаар",
"tooltip-undo": "Киирген эдигни казааш, ойталалдың чылдагаанын айтыр аргалыг мурнай көргүзүүн көргүзер.",
- "tooltip-summary": "Кысказы-биле бижиңер",
+ "tooltip-summary": "Кыска тайылбырны киириңер",
"anonymous": "{{grammar:genitive|{{SITENAME}}}} адыжок {{PLURAL:$1|киржикчизи}}",
+ "simpleantispam-label": "Спам-га удур хыналда.\nМону <strong>долдуруңар </strong>долдурбаңар",
"pageinfo-title": "«$1» дугайында",
"pageinfo-header-basic": "Кол медээлел",
"pageinfo-toolboxlink": "Арын дугайында",
"file-info-size-pages": "$1 × $2 пикcелдер, файл хемчээли: $3, MIME хевири: $4, $5 {{PLURAL:$5|1=арын|арын}}",
"file-nohires": "Оон улуг хевири чок",
"svg-long-desc": "SVG файл, $1 x $2 пиксел, файл хемчээли: $3",
- "show-big-image": "Улуг чурумал",
+ "show-big-image": "Үндезин файл",
"show-big-image-size": "$1 × $2 пиксел",
"newimages-legend": "Шүүрү",
"noimages": "Nothing to see.",
"ago": "$1 бурунгаар",
"bad_image_list": "Формады мындыг боор ужурлуг:\n\nЧүгле даңзының идегеттери (элементилери) санатынар боор (* деп демдектен эгелээн одуруглар).\nОдуругнуң бирги шөлүдүү салдынмас чурумалче шөлүдүг болуру албан.\nОл-ла одуругнуң арткан шөлүдүглери онзагай кылдыр азы чурумал капсырып болур чүүлдер кылдыр санаттынар.",
"metadata": "Чурумал дугайында медээлер",
- "metadata-help": "Бо файл немелде данныйларлыг:санныг камералар азы сканнерлер дугайында медеглел. Файл чаяанының соонда эдидип турган болза, чамдык параметрлери амгы чурумалга меге кылдыр хамааржып болур.",
+ "metadata-help": "Бо файлда цифралыг камераларның болгаш сканерлерниң немеп каары немелде медээлер бар. Файлды кылган соонда эдип турган болза, ооң чамдык параметрлери ооң амгы чуруунга дүүшпес бооп болур.",
"metadata-fields": "Бо даңзыда айыткан чурумалдар метаданныйларның кезектери чурумалдың арынынга көстүп кээр, метаданныйлар таблицазын дүрүп каан болур. \nАрткан кезектер аайлаан ёзугаар чажыт көстүр.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
"exif-imagewidth": "Калбаа",
"exif-imagelength": "Бедик",
+ "exif-orientation": "Кадрның ориентациязы",
+ "exif-xresolution": "доора разрешение",
+ "exif-yresolution": "узун дургаар разрешение",
+ "exif-datetime": "Файлды өскерткен ай-хүн, үе-шак",
"exif-imagedescription": "Чурумалдың ады",
+ "exif-make": "Камераның бүдүрүкчүзү",
+ "exif-model": "Камераның модели",
"exif-artist": "Чогаадыкчы",
+ "exif-colorspace": "Өңнер девискээри",
"exif-usercomment": "Ажыглакчының тайылбырлары",
+ "exif-datetimeoriginal": "Шын ай-хүн болгаш үе-шак",
"exif-jpegfilecomment": "JPEG фалй тайылбыры",
"exif-headline": "Баш ат",
"exif-languagecode": "Дыл",
"compare-submit": "Дөмейлээри",
"htmlform-submit": "Күүcедири",
"htmlform-selectorother-other": "Өске",
+ "logentry-delete-delete": "$1 {{GENDER:$2|арынны баладып каапкан}} $3",
"rightsnone": "(чок)",
"feedback-cancel": "Соксаары",
"feedback-message": "Чагаа:",
"feedback-subject": "Кол сөс:",
- "searchsuggest-search": "Ð\94илÑ\8dÑ\8dÑ\88кин",
+ "searchsuggest-search": "Ð\94илÑ\8dÑ\8dÑ\80",
"duration-seconds": "$1 {{PLURAL:$1|секунда|секунда}}",
"duration-minutes": "$1 {{PLURAL:$1|минут|минут}}",
"duration-hours": "$1 {{PLURAL:$1|шак|шак}}",
"enhancedrc-history": "tarix",
"recentchanges": "Yangi oʻzgarishlar",
"recentchanges-legend": "Yangi oʻzgarishlar moslamalari",
- "recentchanges-summary": "Bu sahifada siz {{SITENAME}}da sodir boʻlgan soʻnggi oʻzgarishlarni koʻrishingiz mumkin.",
+ "recentchanges-summary": "Bu sahifada {{SITENAME}} loyihasida sodir boʻlgan soʻnggi oʻzgarishlarni koʻrishingiz mumkin.",
"recentchanges-noresult": "Koʻrsatilgan muddatga va shartlarga oid oʻzgarishlar topilmadi.",
"recentchanges-feed-description": "Vikida mazkur oqimdagi oxirgi oʻzgarishlarni kuzatish",
"recentchanges-label-newpage": "Bu tahrir orqali yangi sahifa yaratilgan",
"undeleteinvert": "Tanlash tartibini almashtirish",
"undeletecomment": "Sababi:",
"undeletedrevisions": "{{PLURAL:$1|1 ta oʻzgarish|$1 ta tahrirlar}} tiklandi",
- "undeletedfiles": "$1 ta fayl tiklandi",
+ "undeletedfiles": "{{PLURAL:$1|Bitta fayl|$1 ta fayl}} tiklandi",
"undelete-search-title": "O'chirilgan sahifalarni qidirish",
"undelete-search-box": "O'chirilgan sahifalarni qidirish",
"undelete-search-prefix": "Bundan boshlangan sahifalarni koʻrsatish:",
} elseif ( $this->state == "page" ) {
$this->thisPage .= $data;
}
- }
- elseif ( $this->lastName == "model" ) {
+ } elseif ( $this->lastName == "model" ) {
$this->thisRevModel .= $data;
- }
- elseif ( $this->lastName == "format" ) {
+ } elseif ( $this->lastName == "format" ) {
$this->thisRevFormat .= $data;
}
$dbr->selectSQLText(
'image',
array( 'name' => 'img_name' ),
- array( 'img_name' => $imgIN )
+ $imgIN ? array( 'img_name' => $imgIN ) : '1=0'
),
$dbr->selectSQLText(
'oldimage',
array( 'name' => 'oi_archive_name' ),
- $dbr->makeList( $oiWheres, LIST_OR )
+ $oiWheres ? $dbr->makeList( $oiWheres, LIST_OR ) : '1=0'
)
),
true // UNION ALL (performance)
} else {
$file = $repo->newFile( $name );
}
- $this->output( $name . "\n" . $file->getUrl() . "\n\n" );
+ $this->output( $name . "\n" . $file->getCanonicalUrl() . "\n\n" );
}
}
}
"ooui-dialog-process-dismiss": "Փակել",
"ooui-dialog-process-retry": "Կրկին փորձել",
"ooui-dialog-process-continue": "Շարունակել",
+ "ooui-selectfile-button-select": "Ընտրել նիշք",
"ooui-selectfile-not-supported": "Ֆայլի ընտրությունը չի պաշտպանվում",
- "ooui-selectfile-placeholder": "Ֆայլն ընտրված չէ"
+ "ooui-selectfile-placeholder": "Ֆայլն ընտրված չէ",
+ "ooui-selectfile-dragdrop-placeholder": "Ֆայլը գցել այստե"
}
"Gleki",
"NoiX180",
"Pras",
- "Jadinegara"
+ "Jadinegara",
+ "Meursault2004"
]
},
"ooui-outline-control-move-down": "Pindhahaken butir mangandhap",
- "ooui-outline-control-move-up": "Pindhah kara mêndhuwur",
+ "ooui-outline-control-move-up": "Pindhah kara menyang dhuwur",
"ooui-outline-control-remove": "Busak kara",
- "ooui-toolbar-more": "Mênèh",
- "ooui-toolgroup-expand": "Mênèh",
+ "ooui-toolbar-more": "Manèh",
+ "ooui-toolgroup-expand": "Manèh",
"ooui-toolgroup-collapse": "Suda",
"ooui-dialog-message-accept": "Oké",
"ooui-dialog-message-reject": "Batal",
"ooui-dialog-process-dismiss": "Tutup",
"ooui-dialog-process-retry": "Jajal manèh",
"ooui-dialog-process-continue": "Tutug",
- "ooui-selectfile-not-supported": "Pilihan bêrkas ora disokong",
- "ooui-selectfile-placeholder": "Ora ana bêrkas sing kapilih"
+ "ooui-selectfile-not-supported": "Pilihan berkas ora disokong",
+ "ooui-selectfile-placeholder": "Ora ana berkas sing kapilih"
}
"ooui-dialog-process-retry": "Nach eng Kéier probéieren",
"ooui-dialog-process-continue": "Virufueren",
"ooui-selectfile-button-select": "E Fichier eraussichen",
+ "ooui-selectfile-not-supported": "D'Eraussiche vu Fichiere gëtt net ënnerstëtzt.",
"ooui-selectfile-placeholder": "Et ass kee Fichier erausgesicht",
"ooui-selectfile-dragdrop-placeholder": "Fichier hei ofleeën"
}
},
"ooui-outline-control-move-down": "Perkelti elementą žemyn",
"ooui-outline-control-move-up": "Perkelti elementą aukštyn",
- "ooui-outline-control-remove": "Šalinti elementus",
+ "ooui-outline-control-remove": "Šalinti įrašą",
"ooui-toolbar-more": "Daugiau",
"ooui-toolgroup-expand": "Daugiau",
"ooui-toolgroup-collapse": "Mažiau",
"ooui-dialog-process-dismiss": "Dispensar",
"ooui-dialog-process-retry": "Tentar novamente",
"ooui-dialog-process-continue": "Continuar",
+ "ooui-selectfile-button-select": "Selecionar um arquivo",
"ooui-selectfile-not-supported": "O selecionamento de arquivos não é suportado",
- "ooui-selectfile-placeholder": "Nenhum arquivo selecionado"
+ "ooui-selectfile-placeholder": "Nenhum arquivo selecionado",
+ "ooui-selectfile-dragdrop-placeholder": "Arraste o arquivo para cá"
}
/*!
- * OOjs UI v0.13.0
+ * OOjs UI v0.13.1
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-10-27T17:53:00Z
+ * Date: 2015-11-03T21:42:28Z
*/
@-webkit-keyframes oo-ui-progressBarWidget-slide {
from {
.oo-ui-textInputWidget textarea.oo-ui-pendingElement-pending {
background-color: transparent;
}
-.oo-ui-textInputWidget-icon {
- width: 2em;
-}
.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
outline: none;
}
.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
width: 1.875em;
+ max-height: 2.375em;
margin-left: 0.3em;
}
.oo-ui-textInputWidget.oo-ui-indicatorElement input,
}
.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
width: 0.9375em;
+ max-height: 2.375em;
margin-right: 0.775em;
}
.oo-ui-textInputWidget > .oo-ui-labelElement-label {
/*!
- * OOjs UI v0.13.0
+ * OOjs UI v0.13.1
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-10-27T17:52:51Z
+ * Date: 2015-11-03T21:42:20Z
*/
/**
* @class
/*!
- * OOjs UI v0.13.0
+ * OOjs UI v0.13.1
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-10-27T17:53:00Z
+ * Date: 2015-11-03T21:42:28Z
*/
@-webkit-keyframes oo-ui-progressBarWidget-slide {
from {
.oo-ui-textInputWidget textarea.oo-ui-pendingElement-pending {
background-color: transparent;
}
-.oo-ui-textInputWidget-icon {
- width: 2em;
-}
.oo-ui-textInputWidget.oo-ui-widget-enabled input,
.oo-ui-textInputWidget.oo-ui-widget-enabled textarea {
-webkit-transition: border 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1);
.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
left: 0;
width: 1.875em;
+ max-height: 2.375em;
margin-left: 0.5em;
height: 100%;
background-position: right center;
}
.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
width: 0.9375em;
+ max-height: 2.375em;
margin: 0 0.775em;
height: 100%;
}
margin-right: 2.0875em;
}
.oo-ui-textInputWidget-labelPosition-before.oo-ui-iconElement > .oo-ui-labelElement-label {
- margin-right: 2.475em;
+ margin-left: 2.475em;
}
.oo-ui-menuSelectWidget {
position: absolute;
/*!
- * OOjs UI v0.13.0
+ * OOjs UI v0.13.1
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-10-27T17:52:51Z
+ * Date: 2015-11-03T21:42:20Z
*/
/**
* @class
/*!
- * OOjs UI v0.13.0
+ * OOjs UI v0.13.1
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2015 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2015-10-27T17:52:51Z
+ * Date: 2015-11-03T21:42:20Z
*/
( function ( OO ) {
}
}
} );
+ // allow widgets to reuse parts of the DOM
+ data = cls.static.reusePreInfuseDOM( $elem[ 0 ], data );
// pick up dynamic state, like focus, value of form inputs, scroll position, etc.
- state = cls.static.gatherPreInfuseState( $elem, data );
+ state = cls.static.gatherPreInfuseState( $elem[ 0 ], data );
+ // rebuild widget
// jscs:disable requireCapitalizedConstructors
- obj = new cls( data ); // rebuild widget
+ obj = new cls( data );
+ // jscs:enable requireCapitalizedConstructors
// now replace old DOM with this new DOM.
if ( top ) {
- $elem.replaceWith( obj.$element );
- // This element is now gone from the DOM, but if anyone is holding a reference to it,
- // let's allow them to OO.ui.infuse() it and do what they expect (T105828).
- // Do not use jQuery.data(), as using it on detached nodes leaks memory in 1.x line by design.
- $elem[ 0 ].oouiInfused = obj;
+ // An efficient constructor might be able to reuse the entire DOM tree of the original element,
+ // so only mutate the DOM if we need to.
+ if ( $elem[ 0 ] !== obj.$element[ 0 ] ) {
+ $elem.replaceWith( obj.$element );
+ // This element is now gone from the DOM, but if anyone is holding a reference to it,
+ // let's allow them to OO.ui.infuse() it and do what they expect (T105828).
+ // Do not use jQuery.data(), as using it on detached nodes leaks memory in 1.x line by design.
+ $elem[ 0 ].oouiInfused = obj;
+ }
top.resolve();
}
obj.$element.data( 'ooui-infused', obj );
return obj;
};
+/**
+ * Pick out parts of `node`'s DOM to be reused when infusing a widget.
+ *
+ * This method **must not** make any changes to the DOM, only find interesting pieces and add them
+ * to `config` (which should then be returned). Actual DOM juggling should then be done by the
+ * constructor, which will be given the enhanced config.
+ *
+ * @protected
+ * @param {HTMLElement} node
+ * @param {Object} config
+ * @return {Object}
+ */
+OO.ui.Element.static.reusePreInfuseDOM = function ( node, config ) {
+ return config;
+};
+
/**
* Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of a HTML DOM node
* (and its children) that represent an Element of the same class and the given configuration,
* @throws {Error} An error is thrown if no widget is specified
*/
OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
- var hasInputWidget, div, i;
+ var hasInputWidget, div;
// Allow passing positional parameters inside the config object
if ( OO.isPlainObject( fieldWidget ) && config === undefined ) {
// Properties
this.fieldWidget = fieldWidget;
- this.errors = config.errors || [];
- this.notices = config.notices || [];
+ this.errors = [];
+ this.notices = [];
this.$field = $( '<div>' );
this.$messages = $( '<ul>' );
this.$body = $( '<' + ( hasInputWidget ? 'label' : 'div' ) + '>' );
this.$element
.addClass( 'oo-ui-fieldLayout' )
.append( this.$help, this.$body );
- if ( this.errors.length || this.notices.length ) {
- this.$element.append( this.$messages );
- }
this.$body.addClass( 'oo-ui-fieldLayout-body' );
this.$messages.addClass( 'oo-ui-fieldLayout-messages' );
this.$field
.toggleClass( 'oo-ui-fieldLayout-disable', this.fieldWidget.isDisabled() )
.append( this.fieldWidget.$element );
- for ( i = 0; i < this.notices.length; i++ ) {
- this.$messages.append( this.makeMessage( 'notice', this.notices[ i ] ) );
- }
- for ( i = 0; i < this.errors.length; i++ ) {
- this.$messages.append( this.makeMessage( 'error', this.errors[ i ] ) );
- }
-
+ this.setErrors( config.errors || [] );
+ this.setNotices( config.notices || [] );
this.setAlignment( config.align );
};
};
/**
+ * @protected
* @param {string} kind 'error' or 'notice'
* @param {string|OO.ui.HtmlSnippet} text
* @return {jQuery}
return this;
};
+/**
+ * Set the list of error messages.
+ *
+ * @param {Array} errors Error messages about the widget, which will be displayed below the widget.
+ * The array may contain strings or OO.ui.HtmlSnippet instances.
+ * @chainable
+ */
+OO.ui.FieldLayout.prototype.setErrors = function ( errors ) {
+ this.errors = errors.slice();
+ this.updateMessages();
+ return this;
+};
+
+/**
+ * Set the list of notice messages.
+ *
+ * @param {Array} notices Notices about the widget, which will be displayed below the widget.
+ * The array may contain strings or OO.ui.HtmlSnippet instances.
+ * @chainable
+ */
+OO.ui.FieldLayout.prototype.setNotices = function ( notices ) {
+ this.notices = notices.slice();
+ this.updateMessages();
+ return this;
+};
+
+/**
+ * Update the rendering of error and notice messages.
+ *
+ * @private
+ */
+OO.ui.FieldLayout.prototype.updateMessages = function () {
+ var i;
+ this.$messages.empty();
+
+ if ( this.errors.length || this.notices.length ) {
+ this.$body.after( this.$messages );
+ } else {
+ this.$messages.remove();
+ return;
+ }
+
+ for ( i = 0; i < this.notices.length; i++ ) {
+ this.$messages.append( this.makeMessage( 'notice', this.notices[ i ] ) );
+ }
+ for ( i = 0; i < this.errors.length; i++ ) {
+ this.$messages.append( this.makeMessage( 'error', this.errors[ i ] ) );
+ }
+};
+
/**
* ActionFieldLayouts are used with OO.ui.FieldsetLayout. The layout consists of a field-widget, a button,
* and an optional label and/or help text. The field-widget (e.g., a {@link OO.ui.TextInputWidget TextInputWidget}),
* @param {Object} [config] Configuration options
* @cfg {string} [name=''] The value of the input’s HTML `name` attribute.
* @cfg {string} [value=''] The value of the input.
- * @cfg {string} [accessKey=''] The access key of the input.
+ * @cfg {string} [dir] The directionality of the input (ltr/rtl).
* @cfg {Function} [inputFilter] The name of an input filter function. Input filters modify the value of an input
* before it is accepted.
*/
.append( this.$input );
this.setValue( config.value );
this.setAccessKey( config.accessKey );
+ if ( config.dir ) {
+ this.setDir( config.dir );
+ }
};
/* Setup */
/* Static Methods */
+/**
+ * @inheritdoc
+ */
+OO.ui.InputWidget.static.reusePreInfuseDOM = function ( node, config ) {
+ config = OO.ui.InputWidget.parent.static.reusePreInfuseDOM( node, config );
+ // Reusing $input lets browsers preserve inputted values across page reloads (T114134)
+ config.$input = $( node ).find( '.oo-ui-inputWidget-input' );
+ return config;
+};
+
/**
* @inheritdoc
*/
OO.ui.InputWidget.static.gatherPreInfuseState = function ( node, config ) {
- var
- state = OO.ui.InputWidget.parent.static.gatherPreInfuseState( node, config ),
- $input = state.$input || $( node ).find( '.oo-ui-inputWidget-input' );
- state.value = $input.val();
+ var state = OO.ui.InputWidget.parent.static.gatherPreInfuseState( node, config );
+ state.value = config.$input.val();
// Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward
- state.focus = $input.is( ':focus' );
+ state.focus = config.$input.is( ':focus' );
return state;
};
* @param {Object} config Configuration options
* @return {jQuery} Input element
*/
-OO.ui.InputWidget.prototype.getInputElement = function () {
- return $( '<input>' );
+OO.ui.InputWidget.prototype.getInputElement = function ( config ) {
+ // See #reusePreInfuseDOM about config.$input
+ return config.$input || $( '<input>' );
};
/**
};
/**
- * Set the direction of the input, either RTL (right-to-left) or LTR (left-to-right).
+ * Set the directionality of the input, either RTL (right-to-left) or LTR (left-to-right).
*
- * @param {boolean} isRTL
- * Direction is right-to-left
+ * @deprecated since v0.13.1, use #setDir directly
+ * @param {boolean} isRTL Directionality is right-to-left
+ * @chainable
*/
OO.ui.InputWidget.prototype.setRTL = function ( isRTL ) {
- this.$input.prop( 'dir', isRTL ? 'rtl' : 'ltr' );
+ this.setDir( isRTL ? 'rtl' : 'ltr' );
+ return this;
+};
+
+/**
+ * Set the directionality of the input.
+ *
+ * @param {string} dir Text directionality: 'ltr', 'rtl' or 'auto'
+ * @chainable
+ */
+OO.ui.InputWidget.prototype.setDir = function ( dir ) {
+ this.$input.prop( 'dir', dir );
+ return this;
};
/**
* @protected
*/
OO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {
- var type = [ 'button', 'submit', 'reset' ].indexOf( config.type ) !== -1 ?
- config.type :
- 'button';
+ var type;
+ // See InputWidget#reusePreInfuseDOM about config.$input
+ if ( config.$input ) {
+ return config.$input.empty();
+ }
+ type = [ 'button', 'submit', 'reset' ].indexOf( config.type ) !== -1 ? config.type : 'button';
return $( '<' + ( config.useInputTag ? 'input' : 'button' ) + ' type="' + type + '">' );
};
* @inheritdoc
*/
OO.ui.CheckboxInputWidget.static.gatherPreInfuseState = function ( node, config ) {
- var
- state = OO.ui.CheckboxInputWidget.parent.static.gatherPreInfuseState( node, config ),
- $input = $( node ).find( '.oo-ui-inputWidget-input' );
- state.$input = $input; // shortcut for performance, used in InputWidget
- state.checked = $input.prop( 'checked' );
+ var state = OO.ui.CheckboxInputWidget.parent.static.gatherPreInfuseState( node, config );
+ state.checked = config.$input.prop( 'checked' );
return state;
};
* @inheritdoc
* @protected
*/
-OO.ui.DropdownInputWidget.prototype.getInputElement = function () {
+OO.ui.DropdownInputWidget.prototype.getInputElement = function ( config ) {
+ // See InputWidget#reusePreInfuseDOM about config.$input
+ if ( config.$input ) {
+ return config.$input.addClass( 'oo-ui-element-hidden' );
+ }
return $( '<input type="hidden">' );
};
* @inheritdoc
*/
OO.ui.RadioInputWidget.static.gatherPreInfuseState = function ( node, config ) {
- var
- state = OO.ui.RadioInputWidget.parent.static.gatherPreInfuseState( node, config ),
- $input = $( node ).find( '.oo-ui-inputWidget-input' );
- state.$input = $input; // shortcut for performance, used in InputWidget
- state.checked = $input.prop( 'checked' );
+ var state = OO.ui.RadioInputWidget.parent.static.gatherPreInfuseState( node, config );
+ state.checked = config.$input.prop( 'checked' );
return state;
};
this.maxRows = config.maxRows || Math.max( 2 * ( this.minRows || 0 ), 10 );
this.validate = null;
this.styleHeight = null;
+ this.scrollWidth = null;
// Clone for resizing
if ( this.autosize ) {
* @inheritdoc
*/
OO.ui.TextInputWidget.static.gatherPreInfuseState = function ( node, config ) {
- var
- state = OO.ui.TextInputWidget.parent.static.gatherPreInfuseState( node, config ),
- $input = $( node ).find( '.oo-ui-inputWidget-input' );
- state.$input = $input; // shortcut for performance, used in InputWidget
+ var state = OO.ui.TextInputWidget.parent.static.gatherPreInfuseState( node, config );
if ( config.multiline ) {
- state.scrollTop = $input.scrollTop();
+ state.scrollTop = config.$input.scrollTop();
}
return state;
};
* @fires resize
*/
OO.ui.TextInputWidget.prototype.adjustSize = function () {
- var scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError, idealHeight, newHeight;
-
- if ( this.multiline && this.autosize && this.$input.val() !== this.valCache ) {
- this.$clone
- .val( this.$input.val() )
- .attr( 'rows', this.minRows )
- // Set inline height property to 0 to measure scroll height
- .css( 'height', 0 );
-
- this.$clone.removeClass( 'oo-ui-element-hidden' );
-
- this.valCache = this.$input.val();
-
- scrollHeight = this.$clone[ 0 ].scrollHeight;
-
- // Remove inline height property to measure natural heights
- this.$clone.css( 'height', '' );
- innerHeight = this.$clone.innerHeight();
- outerHeight = this.$clone.outerHeight();
-
- // Measure max rows height
- this.$clone
- .attr( 'rows', this.maxRows )
- .css( 'height', 'auto' )
- .val( '' );
- maxInnerHeight = this.$clone.innerHeight();
-
- // Difference between reported innerHeight and scrollHeight with no scrollbars present
- // Equals 1 on Blink-based browsers and 0 everywhere else
- measurementError = maxInnerHeight - this.$clone[ 0 ].scrollHeight;
- idealHeight = Math.min( maxInnerHeight, scrollHeight + measurementError );
-
- this.$clone.addClass( 'oo-ui-element-hidden' );
-
- // Only apply inline height when expansion beyond natural height is needed
- // Use the difference between the inner and outer height as a buffer
- newHeight = idealHeight > innerHeight ? idealHeight + ( outerHeight - innerHeight ) : '';
- if ( newHeight !== this.styleHeight ) {
- this.$input.css( 'height', newHeight );
- this.styleHeight = newHeight;
- this.emit( 'resize' );
+ var scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError,
+ idealHeight, newHeight, scrollWidth, property;
+
+ if ( this.multiline && this.$input.val() !== this.valCache ) {
+ if ( this.autosize ) {
+ this.$clone
+ .val( this.$input.val() )
+ .attr( 'rows', this.minRows )
+ // Set inline height property to 0 to measure scroll height
+ .css( 'height', 0 );
+
+ this.$clone.removeClass( 'oo-ui-element-hidden' );
+
+ this.valCache = this.$input.val();
+
+ scrollHeight = this.$clone[ 0 ].scrollHeight;
+
+ // Remove inline height property to measure natural heights
+ this.$clone.css( 'height', '' );
+ innerHeight = this.$clone.innerHeight();
+ outerHeight = this.$clone.outerHeight();
+
+ // Measure max rows height
+ this.$clone
+ .attr( 'rows', this.maxRows )
+ .css( 'height', 'auto' )
+ .val( '' );
+ maxInnerHeight = this.$clone.innerHeight();
+
+ // Difference between reported innerHeight and scrollHeight with no scrollbars present
+ // Equals 1 on Blink-based browsers and 0 everywhere else
+ measurementError = maxInnerHeight - this.$clone[ 0 ].scrollHeight;
+ idealHeight = Math.min( maxInnerHeight, scrollHeight + measurementError );
+
+ this.$clone.addClass( 'oo-ui-element-hidden' );
+
+ // Only apply inline height when expansion beyond natural height is needed
+ // Use the difference between the inner and outer height as a buffer
+ newHeight = idealHeight > innerHeight ? idealHeight + ( outerHeight - innerHeight ) : '';
+ if ( newHeight !== this.styleHeight ) {
+ this.$input.css( 'height', newHeight );
+ this.styleHeight = newHeight;
+ this.emit( 'resize' );
+ }
+ }
+ scrollWidth = this.$input[ 0 ].offsetWidth - this.$input[ 0 ].clientWidth;
+ if ( scrollWidth !== this.scrollWidth ) {
+ property = this.$element.css( 'direction' ) === 'rtl' ? 'left' : 'right';
+ // Reset
+ this.$label.css( { right: '', left: '' } );
+ this.$indicator.css( { right: '', left: '' } );
+
+ if ( scrollWidth ) {
+ this.$indicator.css( property, scrollWidth );
+ if ( this.labelPosition === 'after' ) {
+ this.$label.css( property, scrollWidth );
+ }
+ }
+
+ this.scrollWidth = scrollWidth;
+ this.positionLabel();
}
}
return this;
.toggleClass( 'oo-ui-textInputWidget-labelPosition-after', !!this.label && after )
.toggleClass( 'oo-ui-textInputWidget-labelPosition-before', !!this.label && !after );
+ this.valCache = null;
+ this.scrollWidth = null;
+ this.adjustSize();
this.positionLabel();
return this;
rtl = this.$element.css( 'direction' ) === 'rtl';
property = after === rtl ? 'padding-left' : 'padding-right';
- this.$input.css( property, this.$label.outerWidth( true ) );
+ this.$input.css( property, this.$label.outerWidth( true ) + ( after ? this.scrollWidth : 0 ) );
return this;
};
OO.inheritClass( mw.widgets.ComplexTitleInputWidget, OO.ui.Widget );
+ /* Static Methods */
+ /*jshint -W024*/
+
+ /**
+ * @inheritdoc
+ */
+ mw.widgets.ComplexTitleInputWidget.static.reusePreInfuseDOM = function ( node, config ) {
+ config = mw.widgets.ComplexTitleInputWidget.parent.static.reusePreInfuseDOM( node, config );
+ config.namespace = mw.widgets.NamespaceInputWidget.static.reusePreInfuseDOM(
+ $( node ).find( '.mw-widget-namespaceInputWidget' ),
+ config.namespace
+ );
+ config.title = mw.widgets.TitleInputWidget.static.reusePreInfuseDOM(
+ $( node ).find( '.mw-widget-titleInputWidget' ),
+ config.title
+ );
+ return config;
+ };
+
+ /**
+ * @inheritdoc
+ */
+ mw.widgets.ComplexTitleInputWidget.static.gatherPreInfuseState = function ( node, config ) {
+ var state = mw.widgets.ComplexTitleInputWidget.parent.static.gatherPreInfuseState( node, config );
+ state.namespace = mw.widgets.NamespaceInputWidget.static.gatherPreInfuseState(
+ $( node ).find( '.mw-widget-namespaceInputWidget' ),
+ config.namespace
+ );
+ state.title = mw.widgets.TitleInputWidget.static.gatherPreInfuseState(
+ $( node ).find( '.mw-widget-titleInputWidget' ),
+ config.title
+ );
+ return state;
+ };
+
+ /*jshint +W024*/
+
/* Methods */
/**
this.title.setNamespace( Number( this.namespace.getValue() ) );
};
+ /**
+ * @inheritdoc
+ */
+ mw.widgets.ComplexTitleInputWidget.prototype.restorePreInfuseState = function ( state ) {
+ mw.widgets.ComplexTitleInputWidget.parent.prototype.restorePreInfuseState.call( this, state );
+ this.namespace.restorePreInfuseState( state.namespace );
+ this.title.restorePreInfuseState( state.title );
+ };
+
}( jQuery, mediaWiki ) );
*/
ForeignStructuredUpload.prototype.getText = function () {
return (
+ '== {{int:filedesc}} ==\n' +
'{{' +
this.getTemplateName() +
'\n|description=' +
'\n|author=' +
this.getUser() +
'\n}}\n\n' +
+ '== {{int:license-header}} ==\n' +
this.getLicense() +
'\n\n' +
this.getCategories()
$el.attr( 'href', textify( arg ) );
}
}
- return appendWithoutParsing( $el, contents );
+ return appendWithoutParsing( $el.empty(), contents );
},
/**
--- /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
+ * @author Ori Livneh <ori@wikimedia.org>
+ */
+
+class TimingTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @covers Timing::clearMarks
+ * @covers Timing::getEntries
+ */
+ public function testClearMarks() {
+ $timing = new Timing;
+ $this->assertCount( 1, $timing->getEntries() );
+
+ $timing->mark( 'a' );
+ $timing->mark( 'b' );
+ $this->assertCount( 3, $timing->getEntries() );
+
+ $timing->clearMarks( 'a' );
+ $this->assertNull( $timing->getEntryByName( 'a' ) );
+ $this->assertNotNull( $timing->getEntryByName( 'b' ) );
+
+ $timing->clearMarks();
+ $this->assertCount( 1, $timing->getEntries() );
+ }
+
+ /**
+ * @covers Timing::mark
+ * @covers Timing::getEntryByName
+ */
+ public function testMark() {
+ $timing = new Timing;
+ $timing->mark( 'a' );
+
+ $entry = $timing->getEntryByName( 'a' );
+ $this->assertEquals( 'a', $entry['name'] );
+ $this->assertEquals( 'mark', $entry['entryType'] );
+ $this->assertArrayHasKey( 'startTime', $entry );
+ $this->assertEquals( 0, $entry['duration'] );
+
+ $timing->mark( 'a' );
+ $newEntry = $timing->getEntryByName( 'a' );
+ $this->assertGreaterThan( $entry['startTime'], $newEntry['startTime'] );
+ }
+
+ /**
+ * @covers Timing::measure
+ */
+ public function testMeasure() {
+ $timing = new Timing;
+
+ $timing->mark( 'a' );
+ $a = $timing->getEntryByName( 'a' );
+
+ $timing->mark( 'b' );
+ $b = $timing->getEntryByName( 'b' );
+
+ $timing->measure( 'a_to_b', 'a', 'b' );
+
+ $entry = $timing->getEntryByName( 'a_to_b' );
+ $this->assertEquals( 'a_to_b', $entry['name'] );
+ $this->assertEquals( 'measure', $entry['entryType'] );
+ $this->assertEquals( $a['startTime'], $entry['startTime'] );
+ $this->assertEquals( $b['startTime'] - $a['startTime'], $entry['duration'] );
+ }
+
+ /**
+ * @covers Timing::getEntriesByType
+ */
+ public function testGetEntriesByType() {
+ $timing = new Timing;
+
+ $timing->mark( 'mark_a' );
+ usleep( 100 );
+ $timing->mark( 'mark_b' );
+ usleep( 100 );
+ $timing->mark( 'mark_c' );
+
+ $timing->measure( 'measure_a', 'mark_a', 'mark_b' );
+ $timing->measure( 'measure_b', 'mark_b', 'mark_c' );
+
+ $marks = array_map( function ( $entry ) {
+ return $entry['name'];
+ }, $timing->getEntriesByType( 'mark' ) );
+
+ $this->assertEquals( array( 'requestStart', 'mark_a', 'mark_b', 'mark_c' ), $marks );
+
+ $measures = array_map( function ( $entry ) {
+ return $entry['name'];
+ }, $timing->getEntriesByType( 'measure' ) );
+
+ $this->assertEquals( array( 'measure_a', 'measure_b' ), $measures );
+ }
+}
}
}
- public function testEvictionOrder() {
- $cache = new HashBagOStuff( array( 'maxKeys' => 10 ) );
- for ( $i = 0; $i < 10; $i++ ) {
- $cache->set( "key$i", 1 );
- $this->assertEquals( 1, $cache->get( "key$i" ) );
- }
- for ( $i = 10; $i < 20; $i++ ) {
- $cache->set( "key$i", 1 );
- $this->assertEquals( 1, $cache->get( "key$i" ) );
- $this->assertEquals( false, $cache->get( "key" . $i - 10 ) );
- }
- }
-
public function testExpire() {
$cache = new HashBagOStuff();
$cacheInternal = TestingAccessWrapper::newFromObject( $cache );
$this->assertEquals( false, $cache->get( 'baz' ), 'Key expired' );
}
- public function testKeyOrder() {
+ /**
+ * Ensure maxKeys eviction prefers keeping new keys.
+ */
+ public function testEvictionAdd() {
+ $cache = new HashBagOStuff( array( 'maxKeys' => 10 ) );
+ for ( $i = 0; $i < 10; $i++ ) {
+ $cache->set( "key$i", 1 );
+ $this->assertEquals( 1, $cache->get( "key$i" ) );
+ }
+ for ( $i = 10; $i < 20; $i++ ) {
+ $cache->set( "key$i", 1 );
+ $this->assertEquals( 1, $cache->get( "key$i" ) );
+ $this->assertEquals( false, $cache->get( "key" . $i - 10 ) );
+ }
+ }
+
+ /**
+ * Ensure maxKeys eviction prefers recently set keys
+ * even if the keys pre-exist.
+ */
+ public function testEvictionSet() {
$cache = new HashBagOStuff( array( 'maxKeys' => 3 ) );
foreach ( array( 'foo', 'bar', 'baz' ) as $key ) {
}
$this->assertEquals( false, $cache->get( 'bar' ), 'Evicted bar' );
}
+
+ /**
+ * Ensure maxKeys eviction prefers recently retrieved keys (LRU).
+ */
+ public function testEvictionGet() {
+ $cache = new HashBagOStuff( array( 'maxKeys' => 3 ) );
+
+ foreach ( array( 'foo', 'bar', 'baz' ) as $key ) {
+ $cache->set( $key, 1 );
+ }
+
+ // Get existing key
+ $cache->get( 'foo', 1 );
+
+ // Add a 4th key (beyond the allowed maximum)
+ $cache->set( 'quux', 1 );
+
+ // Foo's life should have been extended over Bar
+ foreach ( array( 'foo', 'baz', 'quux' ) as $key ) {
+ $this->assertEquals( 1, $cache->get( $key ), "Kept $key" );
+ }
+ $this->assertEquals( false, $cache->get( 'bar' ), 'Evicted bar' );
+ }
}
$this->assertEquals( 2, $n, 'pagelinks should contain two links from the page' );
}
- /**
- * @covers WikiPage::doQuickEdit
- */
- public function testDoQuickEdit() {
- global $wgUser;
-
- $this->hideDeprecated( "WikiPage::doQuickEdit" );
-
- // NOTE: assume help namespace will default to wikitext
- $page = $this->createPage( "Help:WikiPageTest_testDoQuickEdit", "original text" );
-
- $text = "quick text";
- $page->doQuickEdit( $text, $wgUser, "testing q" );
-
- # ---------------------
- $page = new WikiPage( $page->getTitle() );
- $this->assertEquals( $text, $page->getText() );
- }
-
/**
* @covers WikiPage::doQuickEditContent
*/
public function testSerialization( SiteList $list ) {
$serialization = serialize( $list );
/**
- * @var SiteArray $copy
+ * @var SiteList $copy
*/
$copy = unserialize( $serialization );
assert.equal( logSpy.callCount, 2, 'mw.log.warn calls' );
} );
- QUnit.test( 'Integration', 4, function ( assert ) {
- var expected, logSpy;
+ QUnit.test( 'Integration', 5, function ( assert ) {
+ var expected, logSpy, msg;
expected = '<b><a title="Bold" href="/wiki/Bold">Bold</a>!</b>';
mw.messages.set( 'integration-test', '<b>[[Bold]]!</b>' );
expected,
'jQuery plugin $.fn.msg() works correctly'
);
+
+ mw.messages.set( 'integration-test-extlink', '[$1 Link]' );
+ msg = mw.message(
+ 'integration-test-extlink',
+ $( '<a>' ).attr( 'href', 'http://example.com/' )
+ );
+ msg.parse(); // Not a no-op
+ assert.equal(
+ msg.parse(),
+ '<a href="http://example.com/">Link</a>',
+ 'Calling .parse() multiple times does not duplicate link contents'
+ );
} );
}( mediaWiki, jQuery ) );