* Added a new hook, 'UploadVerifyUpload', which can be used to reject a file
upload. Unlike 'UploadVerifyFile' it provides information about upload comment
and the file description page, but does not run for uploads to stash.
+* (T141604) Extensions can now provide a better error message when their
+ maintenance scripts are run without the extension being installed.
=== External library changes in 1.28 ===
the value of $wgMaxArticleSize.
* Property 'modulemessages' from action=parse&prop=modules was removed
(deprecated since 1.26).
+* The following response properties from action=login, deprecated in 1.27, are
+ now removed: lgtoken, cookieprefix, sessionid. Clients should handle cookies
+ to properly manage session state.
=== Action API internal changes in 1.28 ===
* Added a new hook, 'ApiMakeParserOptions', to allow extensions to better
were replaced by HtmlPageLinkRendererBegin and HtmlPageLinkRendererEnd
respectively. See docs/hooks.txt for the specific changes needed for those hooks.
* The 'ParserLimitReportFormat' hook was removed.
+* Disabled "bug 2702" HTML tidying of parsed UI messages on wikis where Tidy is
+ disabled.
+* DifferenceEngine::generateDiffBody() was removed (deprecated since 1.21).
== Compatibility ==
-
This file provides an overview of the MediaWiki upgrade process. For help with
specific problems, check
-* the documentation at https://www.mediawiki.org
+* the documentation at https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/
* the mediawiki-l mailing list archive at
http://lists.wikimedia.org/pipermail/mediawiki-l/
-* the bug tracker at https://phabricator.wikimedia.org
+* the bug tracker at https://phabricator.wikimedia.org/
for information and workarounds to common issues.
== Overview ==
Comprehensive documentation on upgrading to the latest version of the software
-is available at https://www.mediawiki.org/wiki/Manual:Upgrading.
+is available at https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading
=== Consult the release notes ===
the upgrade scripts are somewhat robust, there is no guarantee that things will
not fail, leaving the database in an inconsistent state.
-https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki provides an overview of
+https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Backing_up_a_wiki provides an overview of
the backup process. You should also refer to the documentation for your
database management system for information on backing up a database, and to
your operating system documentation for information on making copies of files.
the most important parts of the code of MediaWiki. More in-depth documentation
can be found at:
https://www.mediawiki.org/wiki/Manual:Code
-
+ https://www.mediawiki.org/wiki/Developer_hub
API documentation is automatically generated and updated daily at:
https://doc.wikimedia.org/mediawiki-core/master/php/html/
"capitallinkoverride": {
"type": "boolean",
"description": "Set $wgCapitalLinks on a per-namespace basis"
+ },
+ "conditional": {
+ "type": "boolean",
+ "description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
+ "default": false
}
},
"required": ["id", "constant", "name"]
"capitallinkoverride": {
"type": "boolean",
"description": "Set $wgCapitalLinks on a per-namespace basis"
+ },
+ "conditional": {
+ "type": "boolean",
+ "description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
+ "default": false
}
},
"required": ["id", "constant", "name"]
+== User Information ==
+
Extensions are distributed separately. Drop them into this directory and enable
as per the extension's installation instructions.
You can find a list of extensions and documentation at
-<https://www.mediawiki.org/wiki/Category:Extensions>.
+<https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions>.
+== Development Information ==
If you are a developer, you might want to fetch the extension tree in another
directory and make a symbolic link:
require $filename;
}
- /**
- * Force a class to be run through the autoloader, helpful for things like
- * Sanitizer that have define()s outside of their class definition. Of course
- * this wouldn't be necessary if everything in MediaWiki was class-based. Sigh.
- *
- * @param string $class
- * @return bool Return the results of class_exists() so we know if we were successful
- */
- static function loadClass( $class ) {
- return class_exists( $class );
- }
-
/**
* Method to clear the protected class property $autoloadLocalClassesLower.
* Used in tests.
return $r;
}
+ /**
+ * Return pretty name which is display name if given and different from prefix text or
+ * the unprefixed page name.
+ *
+ * @return string HTML safe name.
+ */
+ function getPrettyPageNameHtml() {
+ $displayTitle = $this->getOutput()->getPageTitle();
+ if ( $displayTitle === $this->getTitle()->getPrefixedText() ) {
+ return htmlspecialchars( $this->getTitle()->getText() );
+ } else {
+ return $displayTitle;
+ }
+ }
+
/**
* @return string
*/
function getPagesSection() {
- $ti = wfEscapeWikiText( $this->title->getText() );
+ $name = $this->getPrettyPageNameHtml();
# Don't show articles section if there are none.
$r = '';
if ( $rescnt > 0 ) {
$r = "<div id=\"mw-pages\">\n";
- $r .= '<h2>' . $this->msg( 'category_header', $ti )->parse() . "</h2>\n";
+ $r .= '<h2>' . $this->msg( 'category_header' )->rawParams( $name )->parse() . "</h2>\n";
$r .= $countmsg;
$r .= $this->getSectionPagingLinks( 'page' );
$r .= $this->formatList( $this->articles, $this->articles_start_char );
* @return string
*/
function getImageSection() {
+ $name = $this->getPrettyPageNameHtml();
$r = '';
$rescnt = $this->showGallery ? $this->gallery->count() : count( $this->imgsNoGallery );
$dbcnt = $this->cat->getFileCount();
if ( $rescnt > 0 ) {
$r .= "<div id=\"mw-category-media\">\n";
$r .= '<h2>' .
- $this->msg(
- 'category-media-header',
- wfEscapeWikiText( $this->title->getText() )
- )->text() .
+ $this->msg( 'category-media-header' )->rawParams( $name )->parse() .
"</h2>\n";
$r .= $countmsg;
$r .= $this->getSectionPagingLinks( 'file' );
$wgEnableAsyncUploads = false;
/**
- * These are additional characters that should be replaced with '-' in filenames
+ * Additional characters that are not allowed in filenames. They are replaced with '-' when
+ * uploading. Like $wgLegalTitleChars, this is a regexp character class.
+ *
+ * Slashes and backslashes are disallowed regardless of this setting, but included here for
+ * completeness.
*/
-$wgIllegalFileChars = ":";
+$wgIllegalFileChars = ":\\/\\\\";
/**
* What directory to place deleted uploads in.
* Merge arrays in the style of getUserPermissionsErrors, with duplicate removal
* e.g.
* wfMergeErrorArrays(
- * array( array( 'x' ) ),
- * array( array( 'x', '2' ) ),
- * array( array( 'x' ) ),
- * array( array( 'y' ) )
+ * [ [ 'x' ] ],
+ * [ [ 'x', '2' ] ],
+ * [ [ 'x' ] ],
+ * [ [ 'y' ] ]
* );
* returns:
- * array(
- * array( 'x', '2' ),
- * array( 'x' ),
- * array( 'y' )
- * )
+ * [
+ * [ 'x', '2' ],
+ * [ 'x' ],
+ * [ 'y' ]
+ * ]
*
* @param array $array1,...
* @return array
$bits = parse_url( $url );
MediaWiki\restoreWarnings();
// parse_url() returns an array without scheme for some invalid URLs, e.g.
- // parse_url("%0Ahttp://example.com") == array( 'host' => '%0Ahttp', 'path' => 'example.com' )
+ // parse_url("%0Ahttp://example.com") == [ 'host' => '%0Ahttp', 'path' => 'example.com' ]
if ( !$bits || !isset( $bits['scheme'] ) ) {
return false;
}
}
/**
- * Replace all invalid characters with -
- * Additional characters can be defined in $wgIllegalFileChars (see bug 20489)
- * By default, $wgIllegalFileChars = ':'
+ * Replace all invalid characters with '-'.
+ * Additional characters can be defined in $wgIllegalFileChars (see T22489).
+ * By default, $wgIllegalFileChars includes ':', '/', '\'.
*
* @param string $name Filename to process
* @return string
function wfStripIllegalFilenameChars( $name ) {
global $wgIllegalFileChars;
$illegalFileChars = $wgIllegalFileChars ? "|[" . $wgIllegalFileChars . "]" : '';
- $name = wfBaseName( $name );
$name = preg_replace(
"/[^" . Title::legalChars() . "]" . $illegalFileChars . "/",
'-',
$name
);
+ // $wgIllegalFileChars may not include '/' and '\', so we still need to do this
+ $name = wfBaseName( $name );
return $name;
}
*/
function getBottomScripts() {
return $this->getScriptsForBottomQueue() .
- Skin::makeVariablesScript( [ 'wgPageParseReport' => $this->limitReportData ] );
+ ResourceLoader::makeInlineScript(
+ ResourceLoader::makeConfigSetScript(
+ [ 'wgPageParseReport' => $this->limitReportData ],
+ true
+ )
+ );
}
/**
/**
* List for revision table items for a single page
*/
-abstract class RevisionListBase extends ContextSource {
+abstract class RevisionListBase extends ContextSource implements Iterator {
/** @var Title */
public $title;
return $this->current;
}
+ public function rewind() {
+ $this->reset();
+ }
+
/**
* Get the current list item, or false if we are at the end
* @return Revision
return $this->current;
}
+ public function key() {
+ return $this->res ? $this->res->key(): 0;
+ }
+
+ public function valid() {
+ return $this->res ? $this->res->valid() : false;
+ }
+
/**
* Get the number of items in the list.
* @return int
*
* @code
* $conf = new SiteConfiguration;
- * $conf->wikis = array( 'de', 'en', 'beta' );
+ * $conf->wikis = [ 'de', 'en', 'beta' ];
* @endcode
*
* When configuring the MediaWiki global settings (the $wg variables),
* the identifiers will be available to specify settings on a per wiki basis.
*
* @code
- * $conf->settings = array(
- * 'wgSomeSetting' => array(
+ * $conf->settings = [
+ * 'wgSomeSetting' => [
*
* # production:
* 'de' => false,
*
* # test:
* 'beta => true,
- * ),
- * );
+ * ],
+ * ];
* @endcode
*
* With three wikis, that is easy to manage. But what about a farm with
* the above code could be written:
*
* @code
- * $conf->settings = array(
- * 'wgSomeSetting' => array(
+ * $conf->settings = [
+ * 'wgSomeSetting' => [
*
* 'default' => false,
*
* # Enable feature on test
* 'beta' => true,
- * ),
- * );
+ * ],
+ * ];
* @endcode
*
*
* on a per wiki basis.
*
* @code
- * $conf->settings = array(
- * 'wgMergeSetting' = array(
+ * $conf->settings = [
+ * 'wgMergeSetting' = [
* # Value that will be shared among all wikis:
- * 'default' => array( NS_USER => true ),
+ * 'default' => [ NS_USER => true ],
*
* # Leading '+' means merging the array of value with the defaults
- * '+beta' => array( NS_HELP => true ),
- * ),
- * );
+ * '+beta' => [ NS_HELP => true ],
+ * ],
+ * ];
*
* # Get configuration for the German site:
* $conf->get( 'wgMergeSetting', 'de' );
- * // --> array( NS_USER => true );
+ * // --> [ NS_USER => true ];
*
* # Get configuration for the testing site:
* $conf->get( 'wgMergeSetting', 'beta' );
- * // --> array( NS_USER => true, NS_HELP => true );
+ * // --> [ NS_USER => true, NS_HELP => true ];
* @endcode
*
* Finally, to load all configuration settings, extract them in global context:
* extract( $globals );
* @endcode
*
+ * @note For WikiMap to function, the configuration must define string values for
+ * $wgServer (or $wgCanonicalServer) and $wgArticlePath, even if these are the
+ * same for all wikis or can be correctly determined by the logic in
+ * Setup.php.
+ *
* @todo Give examples for,
* suffixes:
- * $conf->suffixes = array( 'wiki' );
+ * $conf->suffixes = [ 'wiki' ];
* localVHosts
* callbacks!
*/
* @param string $interwiki The interwiki prefix
* @return Title The new object
*/
- public static function &makeTitle( $ns, $title, $fragment = '', $interwiki = '' ) {
+ public static function makeTitle( $ns, $title, $fragment = '', $interwiki = '' ) {
$t = new Title();
$t->mInterwiki = $interwiki;
$t->mFragment = $fragment;
$path = $wgConf->get( 'wgArticlePath', $wikiID, $major,
[ 'lang' => $minor, 'site' => $major ] );
+
+ // If we don't have a canonical server or a path containing $1, the
+ // WikiReference isn't going to function properly. Just return null in
+ // that case.
+ if ( !is_string( $canonicalServer ) || !is_string( $path ) || strpos( $path, '$1' ) === false ) {
+ return null;
+ }
+
return new WikiReference( $canonicalServer, $path, $server );
}
/**
* Return the error message related to a certain array
* @param array|string|MessageSpecifier $error Element of a getUserPermissionsErrors()-style array
- * @return array('code' => code, 'info' => info)
+ * @return [ 'code' => code, 'info' => info ]
*/
public function parseMsg( $error ) {
// Check whether someone passed the whole array, instead of one element as
/**
* Fetch continuation result data
- * @return array Array( (array)$data, (bool)$batchcomplete )
+ * @return array [ (array)$data, (bool)$batchcomplete ]
*/
public function getContinuation() {
$data = [];
$result['lguserid'] = intval( $user->getId() );
$result['lgusername'] = $user->getName();
-
- // @todo: These are deprecated, and should be removed at some
- // point (1.28 at the earliest, and see T121527). They were ok
- // when the core cookie-based login was the only thing, but
- // CentralAuth broke that a while back and
- // SessionManager/AuthManager *really* break it.
- $result['lgtoken'] = $user->getToken();
- $result['cookieprefix'] = $this->getConfig()->get( 'CookiePrefix' );
- $result['sessionid'] = $session->getId();
break;
case 'NeedToken':
$this->setWarning( 'Fetching a token via action=login is deprecated. ' .
'Use action=query&meta=tokens&type=login instead.' );
$this->logFeatureUsage( 'action=login&!lgtoken' );
-
- // @todo: See above about deprecation
- $result['cookieprefix'] = $this->getConfig()->get( 'CookiePrefix' );
- $result['sessionid'] = $session->getId();
break;
case 'WrongToken':
// @codingStandardsIgnoreStart String contenation on "msg" not allowed to break long line
/**
* List of user roles that are specifically relevant to the API.
- * array( 'right' => array ( 'msg' => 'Some message with a $1',
- * 'params' => array ( $someVarToSubst ) ),
- * );
+ * [ 'right' => [ 'msg' => 'Some message with a $1',
+ * 'params' => [ $someVarToSubst ] ],
+ * ];
*/
private static $mRights = [
'writeapi' => [
*
* @code
* $modules['foo'] = 'ApiFoo';
- * $modules['bar'] = array(
+ * $modules['bar'] = [
* 'class' => 'ApiBar',
* 'factory' => function( $main, $name ) { ... }
- * );
- * $modules['xyzzy'] = array(
+ * ];
+ * $modules['xyzzy'] = [
* 'class' => 'ApiXyzzy',
- * 'factory' => array( 'XyzzyFactory', 'newApiModule' )
- * );
+ * 'factory' => [ 'XyzzyFactory', 'newApiModule' ]
+ * ];
* @endcode
*
* @param array $modules A map of ModuleName => ModuleSpec; The ModuleSpec
if ( $this->allowedParams !== null ) {
return $this->allowedParams;
}
- $this->allowedParams = [
- 'search' => null,
- 'limit' => [
- ApiBase::PARAM_DFLT => $this->getConfig()->get( 'OpenSearchDefaultLimit' ),
- ApiBase::PARAM_TYPE => 'limit',
- ApiBase::PARAM_MIN => 1,
- ApiBase::PARAM_MAX => 100,
- ApiBase::PARAM_MAX2 => 100
- ],
- 'namespace' => [
- ApiBase::PARAM_DFLT => NS_MAIN,
- ApiBase::PARAM_TYPE => 'namespace',
- ApiBase::PARAM_ISMULTI => true
- ],
+ $this->allowedParams = $this->buildCommonApiParams( false ) + [
'suggest' => false,
'redirects' => [
ApiBase::PARAM_TYPE => [ 'return', 'resolve' ],
'warningsaserror' => false,
];
- $profileParam = $this->buildProfileApiParam( SearchEngine::COMPLETION_PROFILE_TYPE,
- 'apihelp-query+prefixsearch-param-profile' );
- if ( $profileParam ) {
- $this->allowedParams['profile'] = $profileParam;
- }
+ // Use open search specific default limit
+ $this->allowedParams['limit'][ApiBase::PARAM_DFLT] = $this->getConfig()->get(
+ 'OpenSearchDefaultLimit'
+ );
+
return $this->allowedParams;
}
public function getSearchProfileParams() {
- if ( isset( $this->getAllowedParams()['profile'] ) ) {
- return [ SearchEngine::COMPLETION_PROFILE_TYPE => 'profile' ];
- }
- return [];
+ return [
+ 'profile' => [
+ 'profile-type' => SearchEngine::COMPLETION_PROFILE_TYPE,
+ 'help-message' => 'apihelp-query+prefixsearch-param-profile'
+ ],
+ ];
}
protected function getExamplesMessages() {
private $mGoodTitles = [];
private $mMissingPages = []; // [ns][dbkey] => fake page_id
private $mMissingTitles = [];
- /** @var array [fake_page_id] => array( 'title' => $title, 'invalidreason' => $reason ) */
+ /** @var array [fake_page_id] => [ 'title' => $title, 'invalidreason' => $reason ] */
private $mInvalidTitles = [];
private $mMissingPageIDs = [];
private $mRedirectTitles = [];
$res = $db->select( 'page', $this->getPageTableFields(), $set,
__METHOD__ );
- // Hack: get the ns:titles stored in array(ns => array(titles)) format
+ // Hack: get the ns:titles stored in [ ns => [ titles ] ] format
$this->initFromQueryResult( $res, $linkBatch->data, true ); // process Titles
// Resolve any found redirects
$titleObj->getPrefixedText();
}
- if ( isset( $prop['headitems'] ) || isset( $prop['headhtml'] ) ) {
+ if ( isset( $prop['headitems'] ) ) {
+ $result_array['headitems'] = $this->formatHeadItems( $p_result->getHeadItems() );
+ $this->logFeatureUsage( 'action=parse&prop=headitems' );
+ $this->setWarning( 'headitems is deprecated since MediaWiki 1.28. '
+ . 'Use prop=headhtml when creating new HTML documents, or '
+ . 'prop=modules|jsconfigvars when updating a document client-side.' );
+ }
+
+ if ( isset( $prop['headhtml'] ) ) {
$context = new DerivativeContext( $this->getContext() );
$context->setTitle( $titleObj );
$context->setWikiPage( $pageObj );
$output = new OutputPage( $context );
$output->addParserOutputMetadata( $p_result );
- if ( isset( $prop['headitems'] ) ) {
- $headItems = $this->formatHeadItems( $p_result->getHeadItems() );
-
- $css = $this->formatCss( $output->buildCssLinksArray() );
-
- $scripts = [ $output->getHeadScripts() ];
-
- $result_array['headitems'] = array_merge( $headItems, $css, $scripts );
- }
-
- if ( isset( $prop['headhtml'] ) ) {
- $result_array['headhtml'] = $output->headElement( $context->getSkin() );
- $result_array[ApiResult::META_BC_SUBELEMENTS][] = 'headhtml';
- }
+ $result_array['headhtml'] = $output->headElement( $context->getSkin() );
+ $result_array[ApiResult::META_BC_SUBELEMENTS][] = 'headhtml';
}
if ( isset( $prop['modules'] ) ) {
return $result;
}
- private function formatCss( $css ) {
- $result = [];
- foreach ( $css as $file => $link ) {
- $entry = [];
- $entry['file'] = $file;
- ApiResult::setContentValue( $entry, 'link', $link );
- $result[] = $entry;
- }
-
- return $result;
- }
-
private function formatLimitReportData( $limitReportData ) {
$result = [];
/**
* Add a set of JOIN conditions to the internal array
*
- * JOIN conditions are formatted as array( tablename => array(jointype,
- * conditions) e.g. array('page' => array('LEFT JOIN',
- * 'page_id=rev_page')) . conditions may be a string or an
- * addWhere()-style array
+ * JOIN conditions are formatted as [ tablename => [ jointype, conditions ] ]
+ * e.g. [ 'page' => [ 'LEFT JOIN', 'page_id=rev_page' ] ].
+ * Conditions may be a string or an addWhere()-style array.
* @param array $join_conds JOIN conditions
*/
protected function addJoinConds( $join_conds ) {
/**
* Add a set of WHERE clauses to the internal array.
- * Clauses can be formatted as 'foo=bar' or array('foo' => 'bar'),
+ * Clauses can be formatted as 'foo=bar' or [ 'foo' => 'bar' ],
* the latter only works if the value is a constant (i.e. not another field)
*
* If $value is an empty array, this function does nothing.
*
- * For example, array('foo=bar', 'baz' => 3, 'bla' => 'foo') translates
+ * For example, [ 'foo=bar', 'baz' => 3, 'bla' => 'foo' ] translates
* to "foo=bar AND baz='3' AND bla='foo'"
* @param string|array $value
*/
* @param string $method Function the query should be attributed to.
* You should usually use __METHOD__ here
* @param array $extraQuery Query data to add but not store in the object
- * Format is array(
+ * Format is [
* 'tables' => ...,
* 'fields' => ...,
* 'where' => ...,
* 'options' => ...,
* 'join_conds' => ...
- * )
+ * ]
* @return ResultWrapper
*/
protected function select( $method, $extraQuery = [] ) {
}
// find all files with the hashes, result format is:
- // array( hash => array( dup1, dup2 ), hash1 => ... )
+ // [ hash => [ dup1, dup2 ], hash1 => ... ]
$filesToFindBySha1s = array_unique( array_values( $sha1s ) );
if ( $params['localonly'] ) {
$filesBySha1s = RepoGroup::singleton()->getLocalRepo()->findBySha1s( $filesToFindBySha1s );
* The prototype for a token function is func($pageid, $title)
* it should return a token or false (permission denied)
* @deprecated since 1.24
- * @return array Array(tokenname => function)
+ * @return array [ tokenname => function ]
*/
protected function getTokenFunctions() {
// Don't call the hooks twice
if ( $this->allowedParams !== null ) {
return $this->allowedParams;
}
- $this->allowedParams = [
- 'search' => [
- ApiBase::PARAM_TYPE => 'string',
- ApiBase::PARAM_REQUIRED => true,
- ],
- 'namespace' => [
- ApiBase::PARAM_DFLT => NS_MAIN,
- ApiBase::PARAM_TYPE => 'namespace',
- ApiBase::PARAM_ISMULTI => true,
- ],
- 'limit' => [
- ApiBase::PARAM_DFLT => 10,
- ApiBase::PARAM_TYPE => 'limit',
- ApiBase::PARAM_MIN => 1,
- // Non-standard value for compatibility with action=opensearch
- ApiBase::PARAM_MAX => 100,
- ApiBase::PARAM_MAX2 => 200,
- ],
- 'offset' => [
- ApiBase::PARAM_DFLT => 0,
- ApiBase::PARAM_TYPE => 'integer',
- ],
- ];
- $profileParam = $this->buildProfileApiParam( SearchEngine::COMPLETION_PROFILE_TYPE,
- 'apihelp-query+prefixsearch-param-profile' );
- if ( $profileParam ) {
- $this->allowedParams['profile'] = $profileParam;
- }
+ $this->allowedParams = $this->buildCommonApiParams();
+
return $this->allowedParams;
}
public function getSearchProfileParams() {
- if ( isset( $this->getAllowedParams()['profile'] ) ) {
- return [ SearchEngine::COMPLETION_PROFILE_TYPE => 'profile' ];
- }
- return [];
+ return [
+ 'profile' => [
+ 'profile-type' => SearchEngine::COMPLETION_PROFILE_TYPE,
+ 'help-message' => 'apihelp-query+prefixsearch-param-profile',
+ ],
+ ];
}
protected function getExamplesMessages() {
* The prototype for a token function is func($pageid, $title, $rc)
* it should return a token or false (permission denied)
* @deprecated since 1.24
- * @return array Array(tokenname => function)
+ * @return array [ tokenname => function ]
*/
protected function getTokenFunctions() {
// Don't call the hooks twice
/** @var array list of api allowed params */
private $allowedParams;
- /**
- * When $wgSearchType is null, $wgSearchAlternatives[0] is null. Null isn't
- * a valid option for an array for PARAM_TYPE, so we'll use a fake name
- * that can't possibly be a class name and describes what the null behavior
- * does
- */
- const BACKEND_NULL_PARAM = 'database-backed';
-
public function __construct( ApiQuery $query, $moduleName ) {
parent::__construct( $query, $moduleName, 'sr' );
}
global $wgContLang;
$params = $this->extractRequestParams();
- if ( isset( $params['backend'] ) && $params['backend'] == self::BACKEND_NULL_PARAM ) {
- unset( $params['backend'] );
- }
-
// Extract parameters
$query = $params['search'];
$what = $params['what'];
return $this->allowedParams;
}
- $this->allowedParams = [
- 'search' => [
- ApiBase::PARAM_TYPE => 'string',
- ApiBase::PARAM_REQUIRED => true
- ],
- 'namespace' => [
- ApiBase::PARAM_DFLT => NS_MAIN,
- ApiBase::PARAM_TYPE => 'namespace',
- ApiBase::PARAM_ISMULTI => true,
- ],
+ $this->allowedParams = $this->buildCommonApiParams() + [
'what' => [
ApiBase::PARAM_TYPE => [
'title',
ApiBase::PARAM_ISMULTI => true,
ApiBase::PARAM_HELP_MSG_PER_VALUE => [],
],
- 'offset' => [
- ApiBase::PARAM_DFLT => 0,
- ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
- ],
- 'limit' => [
- ApiBase::PARAM_DFLT => 10,
- ApiBase::PARAM_TYPE => 'limit',
- ApiBase::PARAM_MIN => 1,
- ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
- ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
- ],
'interwiki' => false,
'enablerewrites' => false,
];
- $searchConfig = MediaWikiServices::getInstance()->getSearchEngineConfig();
- $alternatives = $searchConfig->getSearchTypes();
- if ( count( $alternatives ) > 1 ) {
- if ( $alternatives[0] === null ) {
- $alternatives[0] = self::BACKEND_NULL_PARAM;
- }
- $this->allowedParams['backend'] = [
- ApiBase::PARAM_DFLT => $searchConfig->getSearchType(),
- ApiBase::PARAM_TYPE => $alternatives,
- ];
- // @todo: support profile selection when multiple
- // backends are available. The solution could be to
- // merge all possible profiles and let ApiBase
- // subclasses do the check. Making ApiHelp and ApiSandbox
- // comprehensive might be more difficult.
- } else {
- $profileParam = $this->buildProfileApiParam( SearchEngine::FT_QUERY_INDEP_PROFILE_TYPE,
- 'apihelp-query+search-param-qiprofile' );
- if ( $profileParam ) {
- $this->allowedParams['qiprofile'] = $profileParam;
- }
- }
-
return $this->allowedParams;
}
public function getSearchProfileParams() {
- if ( isset( $this->getAllowedParams()['qiprofile'] ) ) {
- return [ SearchEngine::FT_QUERY_INDEP_PROFILE_TYPE => 'qiprofile' ];
- }
- return [];
+ return [
+ 'qiprofile' => [
+ 'profile-type' => SearchEngine::FT_QUERY_INDEP_PROFILE_TYPE,
+ 'help-message' => 'apihelp-query+search-param-qiprofile',
+ ],
+ ];
}
protected function getExamplesMessages() {
$ret['description'] = $ext['description'];
}
if ( isset( $ext['descriptionmsg'] ) ) {
- // Can be a string or array( key, param1, param2, ... )
+ // Can be a string or [ key, param1, param2, ... ]
if ( is_array( $ext['descriptionmsg'] ) ) {
$ret['descriptionmsg'] = $ext['descriptionmsg'][0];
$ret['descriptionmsgparams'] = array_slice( $ext['descriptionmsg'], 1 );
$this->addWhereFld( 'ct_tag', $this->params['tag'] );
}
- $this->addOption( 'USE INDEX', $index );
+ if ( isset( $index ) ) {
+ $this->addOption( 'USE INDEX', $index );
+ }
}
/**
* set to '*'. This may be skipped by including 'no*' in the value
* array.
* - Tags listed in META_BC_SUBELEMENTS will have their values changed to
- * array( '*' => $value ). This may be skipped by including 'nosub' in
+ * [ '*' => $value ]. This may be skipped by including 'nosub' in
* the value array.
* - If META_TYPE is 'BCarray', set it to 'default'
* - If META_TYPE is 'BCassoc', set it to 'default'
* as objects.
* - ArmorKVP: (string) If provided, transform arrays with META_TYPE 'kvp'
* and 'BCkvp' into arrays of two-element arrays, something like this:
- * $output = array();
+ * $output = [];
* foreach ( $input as $key => $value ) {
- * $pair = array();
+ * $pair = [];
* $pair[$META_KVP_KEY_NAME ?: $ArmorKVP_value] = $key;
* ApiResult::setContentValue( $pair, 'value', $value );
* $output[] = $pair;
* Add value to the output data at the given path.
*
* Path can be an indexed array, each element specifying the branch at which to add the new
- * value. Setting $path to array('a','b','c') is equivalent to data['a']['b']['c'] = $value.
+ * value. Setting $path to [ 'a', 'b', 'c' ] is equivalent to data['a']['b']['c'] = $value.
* If $path is null, the value will be inserted at the data root.
*
* @param array|string|int|null $path
* @ingroup API
*/
trait SearchApi {
+
+ /**
+ * When $wgSearchType is null, $wgSearchAlternatives[0] is null. Null isn't
+ * a valid option for an array for PARAM_TYPE, so we'll use a fake name
+ * that can't possibly be a class name and describes what the null behavior
+ * does
+ */
+ private static $BACKEND_NULL_PARAM = 'database-backed';
+
/**
- * Build the profile api param definitions.
+ * The set of api parameters that are shared between api calls that
+ * call the SearchEngine. Primarily this defines parameters that
+ * are utilized by self::buildSearchEngine().
*
- * @param string $profileType type of profile to customize
- * @param string $helpMsg i18n message
- * @param string|null $backendType SearchEngine backend type or null for default engine
- * @return array|null the api param definition or null if profiles are
- * not supported by the searchEngine implementation.
+ * @param bool $isScrollable True if the api offers scrolling
+ * @return array
*/
- public function buildProfileApiParam( $profileType, $helpMsg, $backendType = null ) {
- $searchEngine = null;
- if ( $backendType !== null ) {
- $searchEngine = MediaWikiServices::getInstance()
- ->getSearchEngineFactory()->create( $backendType );
+ public function buildCommonApiParams( $isScrollable = true ) {
+ $params = [
+ 'search' => [
+ ApiBase::PARAM_TYPE => 'string',
+ ApiBase::PARAM_REQUIRED => true,
+ ],
+ 'namespace' => [
+ ApiBase::PARAM_DFLT => NS_MAIN,
+ ApiBase::PARAM_TYPE => 'namespace',
+ ApiBase::PARAM_ISMULTI => true,
+ ],
+ 'limit' => [
+ ApiBase::PARAM_DFLT => 10,
+ ApiBase::PARAM_TYPE => 'limit',
+ ApiBase::PARAM_MIN => 1,
+ ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
+ ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2,
+ ],
+ ];
+ if ( $isScrollable ) {
+ $params['offset'] = [
+ ApiBase::PARAM_DFLT => 0,
+ ApiBase::PARAM_TYPE => 'integer',
+ ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+ ];
+ }
+
+ $searchConfig = MediaWikiServices::getInstance()->getSearchEngineConfig();
+ $alternatives = $searchConfig->getSearchTypes();
+ if ( count( $alternatives ) > 1 ) {
+ if ( $alternatives[0] === null ) {
+ $alternatives[0] = self::$BACKEND_NULL_PARAM;
+ }
+ $this->allowedParams['backend'] = [
+ ApiBase::PARAM_DFLT => $searchConfig->getSearchType(),
+ ApiBase::PARAM_TYPE => $alternatives,
+ ];
+ // @todo: support profile selection when multiple
+ // backends are available. The solution could be to
+ // merge all possible profiles and let ApiBase
+ // subclasses do the check. Making ApiHelp and ApiSandbox
+ // comprehensive might be more difficult.
} else {
- $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
+ $params += $this->buildProfileApiParam();
}
- $profiles = $searchEngine->getProfiles( $profileType );
- if ( $profiles ) {
+ return $params;
+ }
+
+ /**
+ * Build the profile api param definitions. Makes bold assumption only one search
+ * engine is available, ensure that is true before calling.
+ *
+ * @return array array containing available additional api param definitions.
+ * Empty if profiles are not supported by the searchEngine implementation.
+ */
+ private function buildProfileApiParam() {
+ $configs = $this->getSearchProfileParams();
+ $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
+ $params = [];
+ foreach ( $configs as $paramName => $paramConfig ) {
+ $profiles = $searchEngine->getProfiles( $paramConfig['profile-type'] );
+ if ( !$profiles ) {
+ continue;
+ }
+
$types = [];
$helpMessages = [];
$defaultProfile = null;
$defaultProfile = $profile['name'];
}
}
- return [
+
+ $params[$paramName] = [
ApiBase::PARAM_TYPE => $types,
- ApiBase::PARAM_HELP_MSG => $helpMsg,
+ ApiBase::PARAM_HELP_MSG => $paramConfig['help-message'],
ApiBase::PARAM_HELP_MSG_PER_VALUE => $helpMessages,
ApiBase::PARAM_DFLT => $defaultProfile,
];
}
- return null;
+
+ return $params;
}
/**
* Build the search engine to use.
* If $params is provided then the following searchEngine options
* will be set:
+ * - backend: which search backend to use
* - limit: mandatory
* - offset: optional, if set limit will be incremented by
* one ( to support the continue parameter )
public function buildSearchEngine( array $params = null ) {
if ( $params != null ) {
$type = isset( $params['backend'] ) ? $params['backend'] : null;
+ if ( $type === self::$BACKEND_NULL_PARAM ) {
+ $type = null;
+ }
$searchEngine = MediaWikiServices::getInstance()->getSearchEngineFactory()->create( $type );
$limit = $params['limit'];
$searchEngine->setNamespaces( $params['namespace'] );
$limit += 1;
}
$searchEngine->setLimitOffset( $limit, $offset );
- foreach ( $this->getSearchProfileParams() as $type => $param ) {
- if ( isset( $params[$param] ) ) {
- $searchEngine->setFeatureData( $type, $params[$param] );
+
+ // Initialize requested search profiles.
+ $configs = $this->getSearchProfileParams();
+ foreach ( $configs as $paramName => $paramConfig ) {
+ if ( isset( $params[$paramName] ) ) {
+ $searchEngine->setFeatureData(
+ $paramConfig['profile-type'],
+ $params[$paramName]
+ );
}
}
} else {
}
/**
- * @return string[] the list of supported search profile types. Key is
- * the profile type and its associated value is the request param.
+ * @return array[] array of arrays mapping from parameter name to a two value map
+ * containing 'help-message' and 'profile-type' keys.
*/
abstract public function getSearchProfileParams();
}
"apihelp-parse-paramvalue-prop-sections": "Gibt die Abschnitte im geparsten Wikitext zurück.",
"apihelp-parse-paramvalue-prop-revid": "Ergänzt die Versionskennung der geparsten Seite.",
"apihelp-parse-paramvalue-prop-displaytitle": "Ergänzt den Titel des geparsten Wikitextes.",
- "apihelp-parse-paramvalue-prop-jsconfigvars": "Gibt die JavaScript-Konfigurationsvariablen speziell für die Seite aus.",
+ "apihelp-parse-paramvalue-prop-jsconfigvars": "Gibt die JavaScript-Konfigurationsvariablen speziell für die Seite aus. Zur Anwendung verwende <code>mw.config.set()</code>.",
"apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Gibt die JavaScript-Konfigurationsvariablen speziell für die Seite als JSON-Zeichenfolge aus.",
"apihelp-parse-paramvalue-prop-indicators": "Gibt das HTML der Seitenstatusindikatoren zurück, die auf der Seite verwendet werden.",
"apihelp-parse-paramvalue-prop-iwlinks": "Gibt Interwiki-Links des geparsten Wikitextes zurück.",
"apihelp-protect-description": "Ändert den Schutzstatus einer Seite.",
"apihelp-protect-param-title": "Titel der Seite, die du (ent-)sperren möchtest. Kann nicht zusammen mit $1pageid verwendet werden.",
"apihelp-protect-param-pageid": "Seitenkennung der Seite, die du (ent-)sperren möchtest. Kann nicht zusammen mit $1title verwendet werden.",
- "apihelp-protect-param-protections": "Liste der Schutzebenen nach dem Format <kbd>Aktion=Ebene</kbd> (z.B. <kbd>edit=sysop</kbd>).\n\n<strong>HINWEIS:</strong> Wenn eine Aktion nicht angegeben wird, wird deren Schutz entfernt.",
+ "apihelp-protect-param-protections": "Listet die Schutzebenen nach dem Format <kbd>Aktion=Ebene</kbd> (z. B. <kbd>edit=sysop</kbd>) auf. Die Ebene <kbd>all</kbd> bedeutet, dass jeder die Aktion ausführen darf, z. B. keine Beschränkung.\n\n<strong>HINWEIS:</strong> Wenn eine Aktion nicht angegeben wird, wird deren Schutz entfernt.",
"apihelp-protect-param-expiry": "Zeitstempel des Schutzablaufs. Wenn nur ein Zeitstempel übergeben wird, ist dieser für alle Seitenschutze gültig. Um eine unendliche Schutzdauer festzulegen, kannst du die Werte <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd> oder <kbd>never</kbd> übergeben.",
"apihelp-protect-param-reason": "Grund für den Seitenschutz oder dessen Aufhebung.",
"apihelp-protect-param-tags": "Auf den Seitenschutz-Logbuch-Eintrag anzuwendende Änderungsmarkierungen.",
"apihelp-protect-param-watch": "Wenn vorhanden, fügt dieser Parameter die zu (ent-)sperrende Seite der Beobachtungsliste des aktuellen Benutzers hinzu.",
"apihelp-protect-param-watchlist": "Die Seite bedingungslos zur Beobachtungsliste des aktuellen Benutzers hinzufügen oder von ihr entfernen, Einstellungen verwenden oder Beobachtung nicht ändern.",
"apihelp-protect-example-protect": "Schützt eine Seite",
- "apihelp-protect-example-unprotect": "Eine Seite entsperren, indem die Einschränkungen durch den Schutz auf <kbd>all</kbd> gestellt werden.",
+ "apihelp-protect-example-unprotect": "Entsperrt eine Seite, indem die Einschränkungen durch den Schutz auf <kbd>all</kbd> gestellt werden (z. B. darf jeder die Aktion ausführen).",
"apihelp-protect-example-unprotect2": "Eine Seite entsperren, indem keine Einschränkungen übergeben werden",
"apihelp-purge-description": "Setzt den Cache der angegebenen Seiten zurück.\n\nFalls kein Benutzer angemeldet ist, müssen POST-Anfragen genutzt werden.",
"apihelp-purge-param-forcelinkupdate": "Aktualisiert die Linktabellen.",
"apihelp-parse-paramvalue-prop-sections": "Gives the sections in the parsed wikitext.",
"apihelp-parse-paramvalue-prop-revid": "Adds the revision ID of the parsed page.",
"apihelp-parse-paramvalue-prop-displaytitle": "Adds the title of the parsed wikitext.",
- "apihelp-parse-paramvalue-prop-headitems": "Gives items to put in the <code><head></code> of the page.",
+ "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">Deprecated.</span> Gives items to put in the <code><head></code> of the page.",
"apihelp-parse-paramvalue-prop-headhtml": "Gives parsed <code><head></code> of the page.",
- "apihelp-parse-paramvalue-prop-modules": "Gives the ResourceLoader modules used on the page. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.",
- "apihelp-parse-paramvalue-prop-jsconfigvars": "Gives the JavaScript configuration variables specific to the page.",
+ "apihelp-parse-paramvalue-prop-modules": "Gives the ResourceLoader modules used on the page. To load, use <code>mw.loader.using()</code>. Either <kbd>jsconfigvars</kbd> or <kbd>encodedjsconfigvars</kbd> must be requested jointly with <kbd>modules</kbd>.",
+ "apihelp-parse-paramvalue-prop-jsconfigvars": "Gives the JavaScript configuration variables specific to the page. To apply, use <code>mw.config.set()</code>.",
"apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Gives the JavaScript configuration variables specific to the page as a JSON string.",
"apihelp-parse-paramvalue-prop-indicators": "Gives the HTML of page status indicators used on the page.",
"apihelp-parse-paramvalue-prop-iwlinks": "Gives interwiki links in the parsed wikitext.",
"apihelp-protect-description": "Change the protection level of a page.",
"apihelp-protect-param-title": "Title of the page to (un)protect. Cannot be used together with $1pageid.",
"apihelp-protect-param-pageid": "ID of the page to (un)protect. Cannot be used together with $1title.",
- "apihelp-protect-param-protections": "List of protection levels, formatted <kbd>action=level</kbd> (e.g. <kbd>edit=sysop</kbd>).\n\n<strong>Note:</strong> Any actions not listed will have restrictions removed.",
+ "apihelp-protect-param-protections": "List of protection levels, formatted <kbd>action=level</kbd> (e.g. <kbd>edit=sysop</kbd>). A level of <kbd>all</kbd> means everyone is allowed to take the action, i.e. no restriction.\n\n<strong>Note:</strong> Any actions not listed will have restrictions removed.",
"apihelp-protect-param-expiry": "Expiry timestamps. If only one timestamp is set, it'll be used for all protections. Use <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, or <kbd>never</kbd>, for a never-expiring protection.",
"apihelp-protect-param-reason": "Reason for (un)protecting.",
"apihelp-protect-param-tags": "Change tags to apply to the entry in the protection log.",
"apihelp-protect-param-watch": "If set, add the page being (un)protected to the current user's watchlist.",
"apihelp-protect-param-watchlist": "Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.",
"apihelp-protect-example-protect": "Protect a page.",
- "apihelp-protect-example-unprotect": "Unprotect a page by setting restrictions to <kbd>all</kbd>.",
+ "apihelp-protect-example-unprotect": "Unprotect a page by setting restrictions to <kbd>all</kbd> (i.e. everyone is allowed to take the action).",
"apihelp-protect-example-unprotect2": "Unprotect a page by setting no restrictions.",
"apihelp-purge-description": "Purge the cache for the given titles.\n\nRequires a POST request if the user is not logged in.",
"apihelp-parse-paramvalue-prop-sections": "Fournit les sections dans le wikitexte analysé.",
"apihelp-parse-paramvalue-prop-revid": "Ajoute l’ID de révision de la page analysée.",
"apihelp-parse-paramvalue-prop-displaytitle": "Ajoute le titre du wikitexte analysé.",
- "apihelp-parse-paramvalue-prop-headitems": "Fournit les éléments à mettre dans le <code><head></code> de la page.",
+ "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">Obsolète.</span> Fournit les éléments à mettre dans le <code><head></code> de la page.",
"apihelp-parse-paramvalue-prop-headhtml": "Fournit le <code><head></code> analysé de la page.",
- "apihelp-parse-paramvalue-prop-modules": "Fournit les modules ResourceLoader utilisés sur la page. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
- "apihelp-parse-paramvalue-prop-jsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page.",
+ "apihelp-parse-paramvalue-prop-modules": "Fournit les modules ResourceLoader utilisés sur la page. Pour les charger, utiliser <code>mw.loader.using()</code>. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
+ "apihelp-parse-paramvalue-prop-jsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page. Pour les appliquer, utiliser <code>mw.config.set()</code>.",
"apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page comme chaîne JSON.",
"apihelp-parse-paramvalue-prop-indicators": "Fournit le HTML des indicateurs d’état de page utilisés sur la page.",
"apihelp-parse-paramvalue-prop-iwlinks": "Fournit les liens interwikis dans le wikitexte analysé.",
"apihelp-protect-description": "Modifier le niveau de protection d’une page.",
"apihelp-protect-param-title": "Titre de la page à (dé)protéger. Impossible à utiliser avec $1pageid.",
"apihelp-protect-param-pageid": "ID de la page à (dé)protéger. Impossible à utiliser avec $1title.",
- "apihelp-protect-param-protections": "Liste des niveaux de protection, au format <kbd>action=niveau</kbd> (par ex. <kbd>edit=sysop</kbd>).\n\n<strong>NOTE :<strong> Toutes les actions non listées auront leur restrictions supprimées.",
+ "apihelp-protect-param-protections": "Liste des niveaux de protection, au format <kbd>action=niveau</kbd> (par exemple <kbd>edit=sysop</kbd>). Un niveau de <kbd>tout</kbd>, indique que tout le monde est autorisé à faire l'action, c'est à dire aucune restriction.\n\n<strong>NOTE :<strong> Toutes les actions non listées auront leur restrictions supprimées.",
"apihelp-protect-param-expiry": "Horodatages d’expiration. Si un seul horodatage est fourni, il sera utilisé pour toutes les protections. Utiliser <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd> ou <kbd>never</kbd> pour une protection sans expiration.",
"apihelp-protect-param-reason": "Motif de (dé)protection.",
"apihelp-protect-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal de protection.",
"apihelp-protect-param-watch": "Si activé, ajouter la page (dé)protégée à la liste de suivi de l'utilisateur actuel.",
"apihelp-protect-param-watchlist": "Ajouter ou supprimer sans condition la page de la liste de suivi de l'utilisateur actuel, utiliser les préférences ou ne pas modifier le suivi.",
"apihelp-protect-example-protect": "Protéger une page",
- "apihelp-protect-example-unprotect": "Enlever la protection d’une page en mettant les restrictions à <kbd>all</kbd>.",
+ "apihelp-protect-example-unprotect": "Enlever la protection d’une page en mettant les restrictions à <kbd>all</kbd> (c'est à dire tout le monde est autorisé à faire l'action).",
"apihelp-protect-example-unprotect2": "Enlever la protection de la page en ne mettant aucune restriction",
"apihelp-purge-description": "Vider le cache des titres fournis.\n\nNécessite une requête POST si l’utilisateur n’est pas connecté.",
"apihelp-purge-param-forcelinkupdate": "Mettre à jour les tables de liens.",
"api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}",
"api-help-param-limit": "Pas plus de $1 autorisé.",
"api-help-param-limit2": "Pas plus de $1 autorisé ($2 pour les robots).",
- "api-help-param-integer-min": "{{PLURAL:$1|1=La valeur doit être inférieure|2=Les valeurs doivent être inférieures}} à $2.",
+ "api-help-param-integer-min": "{{PLURAL:$1|1=La valeur ne doit pas être inférieure|2=Les valeurs ne doivent pas être inférieures}} à $2.",
"api-help-param-integer-max": "{{PLURAL:$1|1=La valeur ne doit pas être supérieure|2=Les valeurs ne doivent pas être supérieures}} à $3.",
"api-help-param-integer-minmax": "{{PLURAL:$1|1=La valeur doit|2=Les valeurs doivent}} être entre $2 et $3.",
"api-help-param-upload": "Doit être envoyé comme un fichier importé utilisant multipart/form-data.",
"apihelp-createaccount-example-pass": "Crear usuario <kbd>testuser</kbd> con contrasinal <kbd>test123</kbd>.",
"apihelp-createaccount-example-mail": "Crear usuario <kbd>testmailuser</kbd>\"testmailuser\" e enviar por correo electrónico un contrasinal xenerado de forma aleatoria.",
"apihelp-cspreport-description": "Usado polos navegadores para informar de violacións da política de confidencialidade de contido. Este módulo non debe se usado nunca, excepto cando é usado automaticamente por un navegador web compatible con CSP.",
+ "apihelp-cspreport-param-reportonly": "Marcar un informe dunha política de vixiancia e non unha política esixida",
"apihelp-cspreport-param-source": "Que xerou a cabeceira CSP que lanzou este informe",
"apihelp-delete-description": "Borrar a páxina.",
"apihelp-delete-param-title": "Título da páxina a eliminar. Non pode usarse xunto con <var>$1pageid</var>.",
"apihelp-parse-paramvalue-prop-sections": "מתן הפסקאות בקוד הוויקי המפוענח.",
"apihelp-parse-paramvalue-prop-revid": "הוספת מזהה הגרסה של הדף המפוענח.",
"apihelp-parse-paramvalue-prop-displaytitle": "הוספת הכותרת של קוד הוויקי המפוענח.",
- "apihelp-parse-paramvalue-prop-headitems": "נותן פריטים לשים ב־<code><head></code> של הדף.",
+ "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">לא בשימוש.</span> נותן פריטים לשים ב־<code><head></code> של הדף.",
"apihelp-parse-paramvalue-prop-headhtml": "נותן את ה־<code><head></code> המפוענח של הדף.",
- "apihelp-parse-paramvalue-prop-modules": "×\9eצ×\9f ×\99×\97×\99×\93×\95ת ResourceLoader ש×\9eש×\9eש×\95ת ×\91×\93×£. יש לבקש את <kbd>jsconfigvars</kbd> או את <kbd>encodedjsconfigvars</kbd> יחד עם <kbd>modules</kbd>.",
- "apihelp-parse-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
+ "apihelp-parse-paramvalue-prop-modules": "×\9eת×\9f ×\99×\97×\99×\93×\95ת ResourceLoader ש×\9eש×\9eש×\95ת ×\91×\93×£. ×\9b×\93×\99 ×\9c×\98×¢×\95×\9f, ×\99ש ×\9c×\94שת×\9eש ×\91<code dir=\"ltr\">mw.loader.using()</code>. יש לבקש את <kbd>jsconfigvars</kbd> או את <kbd>encodedjsconfigvars</kbd> יחד עם <kbd>modules</kbd>.",
+ "apihelp-parse-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה. כדי להחיל, יש להשתמש ב<code dir=\"ltr\">mw.config.set()</code>.",
"apihelp-parse-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
"apihelp-parse-paramvalue-prop-indicators": "נותן את ה־HTML של מחווני מצב דף שמשמשים בדף.",
"apihelp-parse-paramvalue-prop-iwlinks": "מתן קישורי בינוויקי בקוד הוויקי המפוענח.",
"apihelp-protect-description": "לשנות את רמת ההגנה של דף.",
"apihelp-protect-param-title": "כותרת הדף להגנה או הסרת הגנה. לא ניתן להשתמש בזה יחד עם $1pageid.",
"apihelp-protect-param-pageid": "מזהה הדף להגנה או הסרת הגנה. לא ניתן להשתמש בזה יחד עם $1title.",
- "apihelp-protect-param-protections": "רש×\99×\9eת ר×\9e×\95ת ×\94×\9b× ×\94, ×\91תס×\93×\99ר <kbd>action=level</kbd> (×\9c×\9eש×\9c <kbd>edit=sysop</kbd>).",
+ "apihelp-protect-param-protections": "רש×\99×\9eת ר×\9e×\95ת ×\94×\92× ×\94, ×\91תס×\93×\99ר <kbd>action=level</kbd> (×\9c×\9eש×\9c <kbd>edit=sysop</kbd>). ר×\9eת <kbd>all</kbd> פ×\99ר×\95ש×\94 ש×\9b×\95×\9c×\9d ×\9e×\95רש×\99×\9d ×\9c×\91צע ×\90ת ×\94פע×\95×\9c×\94, ×\9b×\9c×\95×\9eר ×\90×\99×\9f ×\94×\92× ×\94.\n\n<strong>×\94ער×\94:</strong> ×\94×\94×\92×\91×\9c×\95ת ×\99×\95סר×\95 ×\9e×\9b×\9c ×\94פע×\95×\9c×\95ת ש×\9c×\90 ×\9bת×\95×\91×\95ת ×\91רש×\99×\9e×\94.",
"apihelp-protect-param-expiry": "חותמי־זמן של תפוגה. אם הוגדר רק חותם־זמן אחד, הוא ישמש לכל ההגנות. יש להשתמש ב־<kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, או <kbd>never</kbd> להגנה שלא פגה לעולם.",
"apihelp-protect-param-reason": "סיבה להגנה או הסרת הגנה.",
"apihelp-protect-param-tags": "תגי שינוי שיחולו על העיול ביומן ההגנה.",
"apihelp-protect-param-watch": "אם זה מוגדר, הוספת הדף שהגנה נוספת אליו או מוסרת ממנו לרשימת המעקב של המשתמש הנוכחי.",
"apihelp-protect-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
"apihelp-protect-example-protect": "הגנה על דף.",
- "apihelp-protect-example-unprotect": "להסיר את ההגנה מהדף על־ידי הגדרת מגבלות על <kbd>all</kbd>.",
+ "apihelp-protect-example-unprotect": "להסיר את ההגנה מהדף על־ידי הגדרת מגבלות על <kbd>all</kbd> (למשל: כולם מורשים לבצע את הפעולה).",
"apihelp-protect-example-unprotect2": "הסרת הגנה מדף על־ידי הגדרה של אפס הגבלות.",
"apihelp-purge-description": "ניקוי המטמון לכותרות שניתנו.\n\nדורש בקשת POST אם המשתמש לא נכנס לחשבון.",
"apihelp-purge-param-forcelinkupdate": "עדכון טבלאות הקישורים.",
"apihelp-protect-param-pageid": "ID della pagina da (s)proteggere. Non può essere usato insieme con $1title.",
"apihelp-protect-param-tags": "Modifica etichette da applicare all'elemento del registro delle protezioni.",
"apihelp-protect-example-protect": "Proteggi una pagina.",
- "apihelp-protect-example-unprotect": "Sproteggi una pagina impostando restrizione su <kbd>all</kbd>.",
+ "apihelp-protect-example-unprotect": "Sproteggi una pagina impostando restrizione su <kbd>all</kbd> (cioè a tutti è consentito intraprendere l'azione).",
"apihelp-protect-example-unprotect2": "Sproteggi una pagina impostando nessuna restrizione.",
"apihelp-purge-param-forcelinkupdate": "Aggiorna la tabella dei collegamenti.",
"apihelp-purge-param-forcerecursivelinkupdate": "Aggiorna la tabella dei collegamenti per questa pagina, e per ogni pagina che usa questa pagina come template.",
"apihelp-parse-paramvalue-prop-sections": "구문 분석된 위키텍스트의 문단을 제공합니다.",
"apihelp-parse-paramvalue-prop-revid": "구문 분석된 페이지의 판 ID를 추가합니다.",
"apihelp-parse-paramvalue-prop-displaytitle": "구문 분석된 위키텍스트의 제목을 추가합니다.",
- "apihelp-parse-paramvalue-prop-headitems": "문서의 <code><head></code> 안에 넣을 항목을 제공합니다.",
+ "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">사용되지 않습니다.</span> 문서의 <code><head></code> 안에 넣을 항목을 제공합니다.",
"apihelp-parse-paramvalue-prop-headhtml": "문서의 구문 분석된 <code><head></code>를 제공합니다.",
"apihelp-parse-paramvalue-prop-iwlinks": "구문 분석된 위키텍스트의 인터위키 링크를 제공합니다.",
"apihelp-parse-paramvalue-prop-wikitext": "구문 분석된 위키텍스트 원문을 제공합니다.",
"api-help-license-noname": "라이선스: [[$1|링크 참조]]",
"api-help-license-unknown": "라이선스: <span class=\"apihelp-unknown\">알 수 없음</span>",
"api-help-parameters": "{{PLURAL:$1|변수}}:",
- "api-help-param-deprecated": "사용 중지됨.",
+ "api-help-param-deprecated": "사용되지 않습니다.",
"api-help-param-required": "이 변수는 필수 입력 사항입니다.",
"api-help-datatypes-header": "데이터 유형",
"api-help-datatypes": "API 요청 내 몇몇 매개변수형에 대해 더 자세히 설명해보겠습니다:\n;boolean\n:Boolean 매개변수들은 HTML 체크박스처럼 동작합니다: 만약 매개변수가 지정되었다면, 값에 상관없이 참의 값으로 여겨집니다. 거짓값은 매개변수 전체를 생략하세요.\n;timestamp\n:타임스탬프들은 여러 형식으로 표현될 수 있으나 ISO 8601 날짜와 시간이 추천됩니다. 모든 시간은 UTC이어야 하며, 포함된 시간대는 모두 무시됩니다.\n:* ISO 8601 날짜와 시간, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (구두점과 <kbd>Z</kbd>는 선택입니다.)\n:* ISO 8601 날짜와 시간과 (무시되는) 소수 초, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (대시, 콜론과 <kbd>Z</kbd>는 선택입니다.)\n:* 미디어위키 형식, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* 일반적인 수 형식 <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (<kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, 또는 <kbd>-<var>##</var></kbd>와 같은 선택적 시간대는 무시됩니다)\n:*RFC 2822 형식 (시간대는 생략될 수 있음), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850 형식 (시간대는 생략될 수 있음), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime 형식, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* 1부터 13자리까지의 숫자로 표현된 1970-01-01T00:00:00Z 부터 흐른 시간(초) (<kbd>0</kbd>을 제외)\n:* 문자열 <kbd>now</kbd>",
"api-help-param-type-limit": "유형: 정수 또는 <kbd>max</kbd>",
"api-help-param-type-integer": "유형: {{PLURAL:$1|1=정수|2=정수 목록}}",
"api-help-param-type-boolean": "유형: 부울 ([[Special:ApiHelp/main#main/datatypes|자세한 정보]])",
- "api-help-param-list": "{{PLURAL:$1|1=하나의 값|2=값 (\"{{!}}\"로 구분)}}: $2",
+ "api-help-param-list": "{{PLURAL:$1|1=다음 값 중 하나|2=값 (<kbd>{{!}}</kbd>로 구분)}}: $2",
"api-help-param-list-can-be-empty": "{{PLURAL:$1|0=비어 있어야 함|비어 있을 수 있거나 $2}}",
"api-help-param-limit": "$1 초과는 허용되지 않습니다.",
"api-help-param-limit2": "$1 초과는 허용되지 않습니다. (봇의 경우 $2)",
"apihelp-query+allrevisions-param-generatetitles": "Wann als ene Jenerahtor enjesaz, brängk dat Övverschreffte un kein Kännonge vun Väsjohne.",
"apihelp-query+allrevisions-example-user": "Donn de läzde fuffzisch Beijdrähsch vum Metmaacher „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example</kbd>“ opleßte.",
"apihelp-query+allrevisions-example-ns-main": "Donn de eezde fuffzisch Väsjohne em Houp-Appachemang opleßte.",
+ "apihelp-query+mystashedfiles-description": "Holl en Leß vun dem aktoälle Metmaacher singe upload stash.",
"apihelp-query+mystashedfiles-param-prop": "Wat för en Aanjahbe holle för di Datteije.",
"apihelp-query+mystashedfiles-param-limit": "Wi vill Datteije holle?",
"apihelp-query+alltransclusions-param-from": "De Övverschreff vun dä ennjeföhschte Sigg, woh de Leß medd aanfange sull.",
"apihelp-feedcontributions-param-year": "A partir de l’annada (e mai recent) :",
"apihelp-feedcontributions-param-month": "A partir del mes (e mai recent) :",
"apihelp-feedrecentchanges-param-feedformat": "Lo format del flux.",
+ "apihelp-feedrecentchanges-param-hideminor": "Amagar las modificacions menoras.",
"apihelp-feedrecentchanges-param-tagfilter": "Filtrar per balisa.",
"apihelp-filerevert-param-comment": "Telecargar lo comentari.",
"apihelp-filerevert-param-archivename": "Nom d’archiu de la revision de restablir.",
"apihelp-protect-param-reason": "Powód zabezpieczania/odbezpieczania.",
"apihelp-protect-param-cascade": "Włącz ochronę kaskadową (chronione są wszystkie osadzone szablony i obrazki na tej stronie). Ignorowane, jeśli żaden z danych poziomów ochrony nie wspiera kaskadowania.",
"apihelp-protect-example-protect": "Zabezpiecz stronę",
- "apihelp-protect-example-unprotect": "Odbezpiecz stronę ustawiając ograniczenia na <kbd>all</kbd>.",
+ "apihelp-protect-example-unprotect": "Odbezpiecz stronę ustawiając ograniczenia na <kbd>all</kbd> (czyli każdy może wykonać działanie).",
"apihelp-protect-example-unprotect2": "Odbezpiecz stronę ustawiając brak ograniczeń.",
"apihelp-purge-param-forcelinkupdate": "Uaktualnij tabele linków.",
"apihelp-purge-example-generator": "Przeczyść pierwsze 10 stron w przestrzeni głównej.",
"apihelp-main-param-requestid": "Любое заданное здесь значение будет включено в ответ. Может быть использовано для различения запросов.",
"apihelp-main-param-servedby": "Включить в результаты имя хоста, обработавшего запрос.",
"apihelp-main-param-curtimestamp": "Включить в результаты временную метку.",
- "apihelp-main-param-origin": "При обращении к API, используя кросс-доменный AJAX-запрос (CORS), задайте параметру значение исходного домена. Он должен быть включён в любой предварительный запрос и таким образом должен быть частью URI-запроса (не тела POST). Он должен точно соответствовать одному из источников в заголовке <code>Origin<code>, так что он должен быть задан наподобие <kbd>https://ru.wikipedia.org</kbd> или <kbd>https://meta.wikimedia.org</kbd>. Если параметр не соответствует заголовку <code>Origin<code>, будет возвращён ответ с кодом ошибки 403. Если параметр соответствует заголовку <code>Origin</code>, и источник находится в белом списке, будет установлен заголовок <code>Access-Control-Allow-Origin</code>.",
+ "apihelp-main-param-origin": "При обращении к API, используя кросс-доменный AJAX-запрос (CORS), задайте параметру значение исходного домена. Он должен быть включён в любой предварительный запрос и таким образом должен быть частью URI-запроса (не тела POST).\n\nДля аутентифицированных запросов он должен точно соответствовать одному из источников в заголовке <code>Origin<code>, так что он должен быть задан наподобие <kbd>https://ru.wikipedia.org</kbd> или <kbd>https://meta.wikimedia.org</kbd>. Если параметр не соответствует заголовку <code>Origin<code>, будет возвращён ответ с кодом ошибки 403. Если параметр соответствует заголовку <code>Origin</code>, и источник находится в белом списке, будут установлены заголовки <code>Access-Control-Allow-Origin</code> и <code>Access-Control-Allow-Credentials</code>.\n\nДля неаутентифицированных запросов укажите значение <kbd>*</kbd>. Это приведёт к установке заголовка <code>Access-Control-Allow-Origin</code> заголовка должен быть установлен, но <code>Access-Control-Allow-Credentials</code> примет значение <code>false</code> и все пользовательские данные будут ограничены.",
"apihelp-block-description": "Блокировка участника.",
"apihelp-block-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите заблокировать.",
"apihelp-block-param-reason": "Причина блокировки.",
"apihelp-feedcontributions-param-deletedonly": "Показать только удалённые правки.",
"apihelp-feedcontributions-param-toponly": "Показать только правки, являющиеся последними версиями.",
"apihelp-feedcontributions-param-newonly": "Показывать только правки, являющиеся созданием страниц.",
+ "apihelp-feedcontributions-param-hideminor": "Скрыть малые правки.",
"apihelp-feedcontributions-param-showsizediff": "Показать размер различия между версиями.",
"apihelp-feedcontributions-example-simple": "Показать вклад участника <kbd>Example</kbd>.",
"apihelp-feedrecentchanges-param-invert": "Все пространства имён, кроме выбранного.",
"apihelp-imagerotate-param-rotation": "На сколько градусов по часовой стрелке повернуть изображение.",
"apihelp-imagerotate-example-simple": "Повернуть <kbd>File:Example.png</kbd> на <kbd>90</kbd> градусов.",
"apihelp-imagerotate-example-generator": "Повернуть все изображения в <kbd>Category:Flip</kbd> на <kbd>180</kbd> градусов.",
- "apihelp-import-param-summary": "Ð\98мпоÑ\80Ñ\82 иÑ\82ога",
+ "apihelp-import-param-summary": "Ð\9eпиÑ\81ание запиÑ\81и жÑ\83Ñ\80нала импоÑ\80Ñ\82а.",
"apihelp-import-param-xml": "Загруженный XML-файл.",
"apihelp-import-example-import": "Импортировать [[meta:Help:ParserFunctions]] с полной историей в пространство имён 100.",
"apihelp-login-param-name": "Имя участника.",
"apihelp-protect-param-title": "Бит атамаһы. $1pageid менән бергә ҡулланылмай.",
"apihelp-protect-param-reason": "(ООН) һағы сәбәптәре.",
"apihelp-protect-example-protect": "Защитить страницу.",
- "apihelp-protect-example-unprotect": "<kbd>всех</kbd> өсөн сикләүҙәр ҡуйып,биттән һаҡлауҙы алырға.",
+ "apihelp-protect-example-unprotect": "Снять защиту страницы, установив ограничения <kbd>all</kbd> (т. е. любой желающий может принять меры).",
"apihelp-protect-example-unprotect2": "Бер ниндәй сикләүҙәр ҡуймай биттән һаҡлауҙы алырға.",
"apihelp-purge-param-forcelinkupdate": "Обновление связей таблиц.",
"apihelp-purge-param-forcerecursivelinkupdate": "Һылтанманы һәм таблицаны яңыртығыҙ һәм был битте шаблон итеп ҡулланған башҡа биттәр өсөн һылтанмаларҙы ла яңыртығыҙ.",
"apihelp-query+allimages-param-maxsize": "Бар һүрәттәр лимиты (байттарҙа).",
"apihelp-query+allimages-param-limit": "Кире ҡайтыу өсөн образдар һаны.",
"apihelp-query+allimages-example-B": "<kbd>Б</kbd> хәрефенән башланған файлдар исемлеген күрһәтергә.",
- "apihelp-query+allimages-example-recent": "Ð\9aүпÑ\82Ó\99н Ñ\82үгел Ñ\82ейÓ\99лгÓ\99н Ò»Ó\99м [[Ñ\81пеÑ\86иалÑ\8cнÑ\8bе:NewFiles]] оҡÑ\88аÑ\88 Ñ\84айлдаÑ\80 иÑ\81емлеген күÑ\80Ò»Ó\99Ñ\82еÑ\80гÓ\99.",
+ "apihelp-query+allimages-example-recent": "Ð\9fоказаÑ\82Ñ\8c Ñ\81пиÑ\81ок недавно загÑ\80Ñ\83женнÑ\8bÑ\85 Ñ\84айлов, аналогиÑ\87но [[Special:NewFiles]].",
"apihelp-query+allimages-example-generator": "<kbd>Т</kbd> хәрефенән башланған 4 файл хаҡында мәғлүмәтте күрһәтергә.",
"apihelp-query+alllinks-description": "Бирелгән исемдәр арауығына йүнәлткән барлыҡ һылтанмаларҙы һанап сығырға.",
"apihelp-query+alllinks-param-from": "Һанауҙы башлау өсөн һылтанма атамаһы.",
"apihelp-parse-paramvalue-prop-sections": "Дає розділи в аналізованому вікітексті.",
"apihelp-parse-paramvalue-prop-revid": "Додає ідентифікатор версії аналізованої сторінки.",
"apihelp-parse-paramvalue-prop-displaytitle": "Додає заголовок аналізованого вікітексту.",
- "apihelp-parse-paramvalue-prop-headitems": "Дає елементи для вставки в <code><head></code> сторінки.",
+ "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">Застаріло.</span> Дає елементи для вставки в <code><head></code> сторінки.",
"apihelp-parse-paramvalue-prop-headhtml": "Дає проаналізований <code><head></code> сторінки.",
- "apihelp-parse-paramvalue-prop-modules": "Дає модулі ResourceLoader, використані на сторінці. Чи <kbd>jsconfigvars</kbd>, чи <kbd>encodedjsconfigvars</kbd> має бути запитано разом з <kbd>modules</kbd>.",
- "apihelp-parse-paramvalue-prop-jsconfigvars": "Дає змінні конфігурації JavaScript, притаманні для сторінки.",
+ "apihelp-parse-paramvalue-prop-modules": "Ð\94аÑ\94 модÑ\83лÑ\96 ResourceLoader, викоÑ\80иÑ\81Ñ\82анÑ\96 на Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\96. Щоб заванÑ\82ажиÑ\82и, викоÑ\80иÑ\81Ñ\82овÑ\83йÑ\82е <code>mw.loader.using()</code>. Чи <kbd>jsconfigvars</kbd>, Ñ\87и <kbd>encodedjsconfigvars</kbd> маÑ\94 бÑ\83Ñ\82и запиÑ\82ано Ñ\80азом з <kbd>modules</kbd>.",
+ "apihelp-parse-paramvalue-prop-jsconfigvars": "Дає змінні конфігурації JavaScript, притаманні для сторінки. Щоб застосувати, використайте <code>mw.config.set()</code>.",
"apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Дає змінні конфігурації JavaScript, притаманні для сторінки, як рядок JSON.",
"apihelp-parse-paramvalue-prop-indicators": "Дає HTML індикаторів стану сторінки, використаних на сторінці.",
"apihelp-parse-paramvalue-prop-iwlinks": "Дає інтервікі-посилання в аналізованому вікітексті.",
"apihelp-protect-description": "Змінити рівень захисту сторінки.",
"apihelp-protect-param-title": "Заголовок сторінки для (зняття) захисту. Не може використовуватися разом із $1pageid.",
"apihelp-protect-param-pageid": "ID сторінки для (зняття) захисту. Не може використовуватися разом з $1title.",
- "apihelp-protect-param-protections": "Список рівнів захисту у форматі <kbd>action=level</kbd> (напр., <kbd>edit=sysop</kbd>).\n\n<strong>Примітка:</strong> Обмеження на дії, яких нема в списку, буде знято.",
+ "apihelp-protect-param-protections": "Список рівнів захисту у форматі <kbd>action=level</kbd> (напр., <kbd>edit=sysop</kbd>). Рівень <kbd>all</kbd> означає, що будь-хто може робити дію, тобто обмежень немає.\n\n<strong>Примітка:</strong> Обмеження на дії, яких нема в списку, буде знято.",
"apihelp-protect-param-expiry": "Часові мітки закінчення. Якщо встановлена лише одна мітка, її буде використано для усіх захистів. Для безстрокового захисту використовуйте <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd> або <kbd>never</kbd>.",
"apihelp-protect-param-reason": "Причина для (зняття) захисту.",
"apihelp-protect-param-tags": "Змінити теги, що мають бути застосовані до запису в журналі захисту.",
"apihelp-protect-param-watch": "Якщо вказано, додати сторінку, де додається/знімається захист, до списку спостереження поточного користувача.",
"apihelp-protect-param-watchlist": "Беззастережно додати або вилучити сторінку зі списку спостереження поточного користувача, використати налаштування або не змінювати спостереження.",
"apihelp-protect-example-protect": "Захистити сторінку.",
- "apihelp-protect-example-unprotect": "Зняти захист зі сторінки, встановивши обмеження для <kbd>all</kbd>.",
+ "apihelp-protect-example-unprotect": "Зняти захист зі сторінки, встановивши обмеження для <kbd>all</kbd> (тобто будь-хто зможе робити дії).",
"apihelp-protect-example-unprotect2": "Зняти захист з сторінки, встановивши відсутність обмежень.",
"apihelp-purge-description": "Очистити кеш для вказаних заголовків.\n\nВимагає запиту POST, якщо користувач не ввійшов у систему.",
"apihelp-purge-param-forcelinkupdate": "Оновити таблиці посилань.",
"Hzy980512",
"PhiLiP",
"Arthur2e5",
- "損齋"
+ "損齋",
+ "Myy730"
]
},
"apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|文档]]\n* [[mw:API:FAQ|常见问题]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 邮件列表]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 程序错误与功能请求]\n</div>\n<strong>状态信息:</strong>本页所展示的所有特性都应正常工作,但是API仍在开发当中,将会随时变化。请订阅[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 邮件列表]以便获得更新通知。\n\n<strong>错误请求:</strong>当API收到错误请求时,HTTP header将会返回一个包含\"MediaWiki-API-Error\"的值,随后header的值与error code将会送回并设置为相同的值。详细信息请参阅[[mw:API:Errors_and_warnings|API: 错误与警告]]。\n\n<strong>测试中:</strong>测试API请求的易用性,请参见[[Special:ApiSandbox]]。",
"apihelp-main-param-requestid": "任何在此提供的值将包含在响应中。可能可以用以区别请求。",
"apihelp-main-param-servedby": "包含保存结果请求的主机名。",
"apihelp-main-param-curtimestamp": "在结果中包括当前时间戳。",
- "apihelp-main-param-origin": "当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。\n\n对于已验证的请求,这必须正确匹配<code>Origin</code>标头中的原点之一,因此它已经设置为像<kbd>https://zh.wikipedia.org</kbd>或<kbd>https://meta.wikimedia.org</kbd>的东西。如果此参数不匹配<code>Origin</code>页顶,就返回403错误响应。如果此参数匹配<code>Origin</code>页顶并且起点被白名单,将设置<code>Access-Control-Allow-Origin</code>和<code>Access-Control-Allow-Credentials</code>开头。\n\n对于未验证的请求,会指定值<kbd>*</kbd>。这将导致<code>Access-Control-Allow-Origin</code>标头被设置,但<code>Access-Control-Allow-Credentials</code>将为<code>false</code>,且所有用户特定数据将受限制。",
+ "apihelp-main-param-origin": "当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。\n\n对于已验证的请求,这必须正确匹配<code>Origin</code>标头中的原点之一,因此它已经设置为像<kbd>https://zh.wikipedia.org</kbd>或<kbd>https://meta.wikimedia.org</kbd>的东西。如果此参数不匹配<code>Origin</code>页顶,就返回403错误响应。如果此参数匹配<code>Origin</code>页顶并且起点在白名单中,将设置<code>Access-Control-Allow-Origin</code>和<code>Access-Control-Allow-Credentials</code>开头。\n\n对于未验证的请求,会指定值<kbd>*</kbd>。这将导致<code>Access-Control-Allow-Origin</code>标头被设置,但<code>Access-Control-Allow-Credentials</code>将为<code>false</code>,且所有用户特定数据将受限制。",
"apihelp-main-param-uselang": "用于消息翻译的语言。<kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>与<kbd>siprop=languages</kbd>可返回语言代码列表,或指定<kbd>user</kbd>以使用当前用户的语言设置,或指定<kbd>content</kbd>以使用此wiki的内容语言。",
"apihelp-block-description": "封禁一位用户。",
"apihelp-block-param-user": "您要封禁的用户、IP地址或IP地址段。",
"apihelp-parse-paramvalue-prop-sections": "在被解析的wiki文本中提供段落。",
"apihelp-parse-paramvalue-prop-revid": "添加被解析页面的修订ID。",
"apihelp-parse-paramvalue-prop-displaytitle": "为被解析的wiki文本添加标题。",
- "apihelp-parse-paramvalue-prop-headitems": "提供项目以插入至页面的<code><head></code>。",
+ "apihelp-parse-paramvalue-prop-headitems": "<span class=\"apihelp-deprecated\">已弃用。</span>提供项目以插入至页面的<code><head></code>。",
"apihelp-parse-paramvalue-prop-headhtml": "提供页面的被解析<code><head></code>。",
- "apihelp-parse-paramvalue-prop-modules": "提供在页面中使用的ResourceLoader模块。无论<kbd>jsconfigvars</kbd>还是<kbd>encodedjsconfigvars</kbd>都必须与<kbd>modules</kbd>共同被请求。",
- "apihelp-parse-paramvalue-prop-jsconfigvars": "针对页面提供JavaScript配置变量。",
+ "apihelp-parse-paramvalue-prop-modules": "提供在页面中使用的ResourceLoader模块。要加载,请使用<code>mw.loader.using()</code>。无论<kbd>jsconfigvars</kbd>还是<kbd>encodedjsconfigvars</kbd>都必须与<kbd>modules</kbd>共同被请求。",
+ "apihelp-parse-paramvalue-prop-jsconfigvars": "针对页面提供JavaScript配置变量。要应用,请使用<code>mw.config.set()</code>。",
"apihelp-parse-paramvalue-prop-encodedjsconfigvars": "针对页面提供JavaScript配置变量为一个JSON字符串。",
"apihelp-parse-paramvalue-prop-indicators": "提供页面上使用的页面状态指示器的HTML。",
"apihelp-parse-paramvalue-prop-iwlinks": "在被解析的wiki文本中提供跨wiki链接。",
"apihelp-protect-description": "更改页面的保护等级。",
"apihelp-protect-param-title": "要(解除)保护的页面标题。不能与$1pageid一起使用。",
"apihelp-protect-param-pageid": "要(解除)保护的页面ID。不能与$1title一起使用。",
- "apihelp-protect-param-protections": "保护等级列表,格式:<kbd>action=level</kbd>(例如<kbd>edit=sysop</kbd>)。\n\n<strong>注意:</strong>未列出的操作将移除限制。",
+ "apihelp-protect-param-protections": "保护等级列表,格式:<kbd>action=level</kbd>(例如<kbd>edit=sysop</kbd>)。等级<kbd>all</kbd>意味着任何人都可以执行操作,也就是说没有限制。\n\n<strong>注意:</strong>未列出的操作将移除限制。",
"apihelp-protect-param-expiry": "到期时间戳。如果只有一个时间戳被设置,它将被用于所有保护。使用<kbd>infinite</kbd>、<kbd>indefinite</kbd>、<kbd>infinity</kbd>或<kbd>never</kbd>用于永不过期的保护。",
"apihelp-protect-param-reason": "(解除)保护的原因。",
"apihelp-protect-param-tags": "要在保护日志中应用到实体的更改标签。",
"apihelp-protect-param-watch": "如果设置,就加入已开始(解除)保护的页面至当前用户的监视列表。",
"apihelp-protect-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
"apihelp-protect-example-protect": "保护一个页面。",
- "apihelp-protect-example-unprotect": "通过设置限制为<kbd>all</kbd>解除保护一个页面。",
+ "apihelp-protect-example-unprotect": "通过设置限制为<kbd>all</kbd>解除保护一个页面(就是说任何人都可以执行操作)。",
"apihelp-protect-example-unprotect2": "通过设置没有限制解除保护一个页面。",
"apihelp-purge-description": "为指定标题刷新缓存。\n\n如果用户尚未登录的话,就需要POST请求。",
"apihelp-purge-param-forcelinkupdate": "更新链接表。",
"apihelp-query+recentchanges-paramvalue-prop-sizes": "添加新旧页面长度(字节)。",
"apihelp-query+recentchanges-paramvalue-prop-redirect": "如果页面是重定向的话,标记编辑。",
"apihelp-query+recentchanges-paramvalue-prop-patrolled": "Tags patrollable edits as being patrolled or unpatrolled.",
- "apihelp-query+recentchanges-paramvalue-prop-loginfo": "Adds log information (log ID, log type, etc) to log entries.",
+ "apihelp-query+recentchanges-paramvalue-prop-loginfo": "添加日志信息(日志ID、日志类型等)至日志记录。",
"apihelp-query+recentchanges-paramvalue-prop-tags": "列举条目的标签。",
"apihelp-query+recentchanges-paramvalue-prop-sha1": "Adds the content checksum for entries associated with a revision.",
"apihelp-query+recentchanges-param-token": "请改用<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>。",
$ulang = $context->getLanguage();
// Check that there are no other sources of variation
- if ( $user->getId() || $user->getNewtalk() || $ulang->equals( $wgContLang ) ) {
+ if ( $user->getId() || $user->getNewtalk() || !$ulang->equals( $wgContLang ) ) {
return false;
}
// Allow extensions to disable caching
return new IdentityCollation;
case 'uca-default':
return new IcuCollation( 'root' );
+ case 'uca-default-u-kn':
+ return new IcuCollation( 'root-u-kn' );
case 'xx-uca-ckb':
return new CollationCkb;
case 'xx-uca-et':
/** @var Language */
protected $digitTransformLanguage;
+ /** @var boolean */
+ private $useNumericCollation = false;
+
/** @var array */
private $firstLetterData;
$this->primaryCollator = Collator::create( $locale );
$this->primaryCollator->setStrength( Collator::PRIMARY );
+
+ // If the special suffix for numeric collation is present, turn on numeric collation.
+ if ( substr( $locale, -5, 5 ) === '-u-kn' ) {
+ $this->useNumericCollation = true;
+ // Strip off the special suffix so it doesn't trip up fetchFirstLetterData().
+ $this->locale = substr( $this->locale, 0, -5 );
+ $this->mainCollator->setAttribute( Collator::NUMERIC_COLLATION, Collator::ON );
+ $this->primaryCollator->setAttribute( Collator::NUMERIC_COLLATION, Collator::ON );
+ }
}
public function getSortKey( $string ) {
return '';
}
- // Check for CJK
$firstChar = mb_substr( $string, 0, 1, 'UTF-8' );
+
+ // If the first character is a CJK character, just return that character.
if ( ord( $firstChar ) > 0x7f && self::isCjk( UtfNormal\Utils::utf8ToCodepoint( $firstChar ) ) ) {
return $firstChar;
}
// Before the first letter
return '';
}
- return $this->getLetterByIndex( $min );
+
+ $sortLetter = $this->getLetterByIndex( $min );
+
+ if ( $this->useNumericCollation ) {
+ // If the sort letter is a number, return '0–9' (or localized equivalent).
+ // ASCII value of 0 is 48. ASCII value of 9 is 57.
+ // Note that this also applies to non-Arabic numerals since they are
+ // mapped to Arabic numeral sort letters. For example, ২ sorts as 2.
+ if ( ord( $sortLetter ) >= 48 && ord( $sortLetter ) <= 57 ) {
+ $sortLetter = wfMessage( 'category-header-numerals' )->numParams( 0, 9 )->text();
+ }
+ }
+ return $sortLetter;
}
/**
}
/**
+ * Test if a code point is a CJK (Chinese, Japanese, Korean) character
* @since 1.16.3
*/
public static function isCjk( $codepoint ) {
return $this->__call( __FUNCTION__, func_get_args() );
}
+ public function serverIsReadOnly() {
+ return $this->__call( __FUNCTION__, func_get_args() );
+ }
+
public function onTransactionResolution( callable $callback ) {
return $this->__call( __FUNCTION__, func_get_args() );
}
protected $mTrxPreCommitCallbacks = [];
/** @var array[] List of (callable, method name) */
protected $mTrxEndCallbacks = [];
+ /** @var bool Whether to suppress triggering of post-commit callbacks */
+ protected $suppressPostCommitCallbacks = false;
protected $mTablePrefix;
protected $mSchema;
* queries. If a deadlock occurs during the processing, the transaction
* will be rolled back and the callback function will be called again.
*
+ * Avoid using this method outside of Job or Maintenance classes.
+ *
* Usage:
* $dbw->deadlockLoop( callback, ... );
*
* Extra arguments are passed through to the specified callback function.
+ * This method requires that no transactions are already active to avoid
+ * causing premature commits or exceptions.
*
* Returns whatever the callback function returned on its successful,
* iteration, or false on error, for example if the retry limit was
* reached.
+ *
* @return mixed
* @throws DBUnexpectedError
* @throws Exception
return false;
}
+ public function serverIsReadOnly() {
+ return false;
+ }
+
final public function onTransactionResolution( callable $callback ) {
if ( !$this->mTrxLevel ) {
throw new DBUnexpectedError( $this, "No transaction is active." );
}
/**
- * Actually run and consume any "on transaction idle" callbacks.
+ * Whether to disable running of post-commit callbacks
+ *
+ * This method should not be used outside of Database/LoadBalancer
+ *
+ * @param bool $suppress
+ * @since 1.28
+ */
+ final public function setPostCommitCallbackSupression( $suppress ) {
+ $this->suppressPostCommitCallbacks = $suppress;
+ }
+
+ /**
+ * Actually run and consume any "on transaction idle/resolution" callbacks.
+ *
+ * This method should not be used outside of Database/LoadBalancer
*
* @param integer $trigger IDatabase::TRIGGER_* constant
* @since 1.20
*/
- protected function runOnTransactionIdleCallbacks( $trigger ) {
+ public function runOnTransactionIdleCallbacks( $trigger ) {
+ if ( $this->suppressPostCommitCallbacks ) {
+ return;
+ }
+
$autoTrx = $this->getFlag( DBO_TRX ); // automatic begin() enabled?
$e = $ePrior = null; // last exception
$this->mTrxIdleCallbacks,
$this->mTrxEndCallbacks // include "transaction resolution" callbacks
);
- $this->mTrxIdleCallbacks = []; // recursion guard
- $this->mTrxEndCallbacks = []; // recursion guard
+ $this->mTrxIdleCallbacks = []; // consumed (and recursion guard)
+ $this->mTrxEndCallbacks = []; // consumed (recursion guard)
foreach ( $callbacks as $callback ) {
try {
list( $phpCallback ) = $callback;
$e = $ePrior = null; // last exception
do { // callbacks may add callbacks :)
$callbacks = $this->mTrxPreCommitCallbacks;
- $this->mTrxPreCommitCallbacks = []; // recursion guard
+ $this->mTrxPreCommitCallbacks = []; // consumed (and recursion guard)
foreach ( $callbacks as $callback ) {
try {
list( $phpCallback ) = $callback;
}
}
+ public function serverIsReadOnly() {
+ $res = $this->query( "SHOW GLOBAL VARIABLES LIKE 'read_only'", __METHOD__ );
+ $row = $this->fetchObject( $res );
+
+ return $row ? ( strtolower( $row->Value ) === 'on' ) : false;
+ }
+
/**
* @param string $index
* @return string
*/
public function getMasterPos();
+ /**
+ * @return bool Whether the DB is marked as read-only server-side
+ * @since 1.28
+ */
+ public function serverIsReadOnly();
+
/**
* Run a callback as soon as the current transaction commits or rolls back.
* An error is thrown if no transaction is pending. Queries in the function will run in
* 1. To commit changes to the masters.
* 2. To release the snapshot on all connections, master and slave.
* @param string $fname Caller name
+ * @param array $options Options map:
+ * - maxWriteDuration: abort if more than this much time was spent in write queries
*/
- public function commitAll( $fname = __METHOD__ ) {
- $this->logMultiDbTransaction();
-
- $start = microtime( true );
+ public function commitAll( $fname = __METHOD__, array $options = [] ) {
+ $this->commitMasterChanges( $fname, $options );
$this->forEachLBCallMethod( 'commitAll', [ $fname ] );
- $timeMs = 1000 * ( microtime( true ) - $start );
-
- RequestContext::getMain()->getStats()->timing( "db.commit-all", $timeMs );
}
/**
* - maxWriteDuration: abort if more than this much time was spent in write queries
*/
public function commitMasterChanges( $fname = __METHOD__, array $options = [] ) {
- $limit = isset( $options['maxWriteDuration'] ) ? $options['maxWriteDuration'] : 0;
-
- // Run pre-commit callbacks to keep them out of the COMMIT step. If one errors out here
- // then all DB transactions can be rolled back before anything was committed yet.
- $this->forEachLBCallMethod( 'runPreCommitCallbacks' );
-
- $this->logMultiDbTransaction();
- $this->forEachLB( function ( LoadBalancer $lb ) use ( $limit ) {
- $lb->forEachOpenConnection( function ( IDatabase $db ) use ( $limit ) {
- $time = $db->pendingWriteQueryDuration();
- if ( $limit > 0 && $time > $limit ) {
- throw new DBTransactionError(
- $db,
- wfMessage( 'transaction-duration-limit-exceeded', $time, $limit )->text()
- );
- }
- } );
- } );
-
+ // Perform all pre-commit callbacks, aborting on failure
+ $this->forEachLBCallMethod( 'runMasterPreCommitCallbacks' );
+ // Perform all pre-commit checks, aborting on failure
+ $this->forEachLBCallMethod( 'approveMasterChanges', [ $options ] );
+ // Log the DBs and methods involved in multi-DB transactions
+ $this->logIfMultiDbTransaction();
+ // Actually perform the commit on all master DB connections
+ $this->forEachLBCallMethod( 'commitMasterChanges', [ $fname ] );
+ // Run all post-commit callbacks
+ $this->forEachLBCallMethod( 'runMasterPostCommitCallbacks' );
+ // Commit any dangling DBO_TRX transactions from callbacks on one DB to another DB
$this->forEachLBCallMethod( 'commitMasterChanges', [ $fname ] );
}
/**
* Log query info if multi DB transactions are going to be committed now
*/
- private function logMultiDbTransaction() {
+ private function logIfMultiDbTransaction() {
$callersByDB = [];
$this->forEachLB( function ( LoadBalancer $lb ) use ( &$callersByDB ) {
$masterName = $lb->getServerName( $lb->getWriterIndex() );
private $mLoadMonitor;
/** @var BagOStuff */
private $srvCache;
+ /** @var WANObjectCache */
+ private $wanCache;
/** @var bool|DatabaseBase Database connection that caused a problem */
private $mErrorConnection;
const MAX_LAG = 10;
/** @var integer Max time to wait for a slave to catch up (e.g. ChronologyProtector) */
const POS_WAIT_TIMEOUT = 10;
+ /** @var integer Seconds to cache master server read-only status */
+ const TTL_CACHE_READONLY = 5;
/**
* @var boolean
}
$this->srvCache = ObjectCache::getLocalServerInstance();
+ $this->wanCache = ObjectCache::getMainWANInstance();
if ( isset( $params['trxProfiler'] ) ) {
$this->trxProfiler = $params['trxProfiler'];
if ( $masterOnly ) {
# Make master-requested DB handles inherit any read-only mode setting
- $conn->setLBInfo( 'readOnlyReason', $this->getReadOnlyReason( $wiki ) );
+ $conn->setLBInfo( 'readOnlyReason', $this->getReadOnlyReason( $wiki, $conn ) );
}
return $conn;
* @param string $fname Caller name
*/
public function commitAll( $fname = __METHOD__ ) {
- foreach ( $this->mConns as $conns2 ) {
- foreach ( $conns2 as $conns3 ) {
- /** @var DatabaseBase[] $conns3 */
- foreach ( $conns3 as $conn ) {
- if ( $conn->trxLevel() ) {
- $conn->commit( $fname, 'flush' );
- }
- }
+ $this->forEachOpenConnection( function ( DatabaseBase $conn ) use ( $fname ) {
+ $conn->commit( $fname, 'flush' );
+ } );
+ }
+
+ /**
+ * Perform all pre-commit callbacks that remain part of the atomic transactions
+ * and disable any post-commit callbacks until runMasterPostCommitCallbacks()
+ * @since 1.28
+ */
+ public function runMasterPreCommitCallbacks() {
+ $this->forEachOpenMasterConnection( function ( DatabaseBase $conn ) {
+ // Any error will cause all DB transactions to be rolled back together.
+ $conn->runOnTransactionPreCommitCallbacks();
+ // Defer post-commit callbacks until COMMIT finishes for all DBs.
+ $conn->setPostCommitCallbackSupression( true );
+ } );
+ }
+
+ /**
+ * Perform all pre-commit checks for things like replication safety
+ * @param array $options Includes:
+ * - maxWriteDuration : max write query duration time in seconds
+ * @throws DBTransactionError
+ * @since 1.28
+ */
+ public function approveMasterChanges( array $options ) {
+ $limit = isset( $options['maxWriteDuration'] ) ? $options['maxWriteDuration'] : 0;
+ $this->forEachOpenMasterConnection( function ( DatabaseBase $conn ) use ( $limit ) {
+ // Assert that the time to replicate the transaction will be sane.
+ // If this fails, then all DB transactions will be rollback back together.
+ $time = $conn->pendingWriteQueryDuration();
+ if ( $limit > 0 && $time > $limit ) {
+ throw new DBTransactionError(
+ $conn,
+ wfMessage( 'transaction-duration-limit-exceeded', $time, $limit )->text()
+ );
}
- }
+ } );
}
/**
- * Issue COMMIT only on master, only if queries were done on connection
+ * Issue COMMIT on all master connections where writes where done
* @param string $fname Caller name
*/
public function commitMasterChanges( $fname = __METHOD__ ) {
- $masterIndex = $this->getWriterIndex();
- foreach ( $this->mConns as $conns2 ) {
- if ( empty( $conns2[$masterIndex] ) ) {
- continue;
+ $this->forEachOpenMasterConnection( function ( DatabaseBase $conn ) use ( $fname ) {
+ if ( $conn->writesOrCallbacksPending() ) {
+ $conn->commit( $fname, 'flush' );
}
- /** @var DatabaseBase $conn */
- foreach ( $conns2[$masterIndex] as $conn ) {
- if ( $conn->trxLevel() && $conn->writesOrCallbacksPending() ) {
- $conn->commit( $fname, 'flush' );
- }
- }
- }
+ } );
+ }
+
+ /**
+ * Issue all pending post-commit callbacks
+ * @since 1.28
+ */
+ public function runMasterPostCommitCallbacks() {
+ $this->forEachOpenMasterConnection( function ( DatabaseBase $db ) {
+ $db->setPostCommitCallbackSupression( false );
+ $db->runOnTransactionIdleCallbacks( IDatabase::TRIGGER_COMMIT );
+ } );
}
/**
}
}
- /**
- * Call runOnTransactionPreCommitCallbacks() on all DB handles
- *
- * This method should not be used outside of LBFactory/LoadBalancer
- *
- * @since 1.28
- */
- public function runPreCommitCallbacks() {
- $masterIndex = $this->getWriterIndex();
- foreach ( $this->mConns as $conns2 ) {
- if ( empty( $conns2[$masterIndex] ) ) {
- continue;
- }
- /** @var DatabaseBase $conn */
- foreach ( $conns2[$masterIndex] as $conn ) {
- if ( $conn->trxLevel() && $conn->writesOrCallbacksPending() ) {
- $conn->runOnTransactionPreCommitCallbacks();
- }
- }
- }
- }
-
/**
* @return bool Whether a master connection is already open
* @since 1.24
/**
* @note This method may trigger a DB connection if not yet done
* @param string|bool $wiki Wiki ID, or false for the current wiki
+ * @param DatabaseBase|null DB master connection; used to avoid loops [optional]
* @return string|bool Reason the master is read-only or false if it is not
* @since 1.27
*/
- public function getReadOnlyReason( $wiki = false ) {
+ public function getReadOnlyReason( $wiki = false, DatabaseBase $conn = null ) {
if ( $this->readOnlyReason !== false ) {
return $this->readOnlyReason;
} elseif ( $this->getLaggedSlaveMode( $wiki ) ) {
return 'The database has been automatically locked ' .
'while the slave database servers catch up to the master.';
}
+ } elseif ( $this->masterRunningReadOnly( $wiki, $conn ) ) {
+ return 'The database master is running in read-only mode.';
}
return false;
}
+ /**
+ * @param string $wiki Wiki ID, or false for the current wiki
+ * @param DatabaseBase|null DB master connectionl used to avoid loops [optional]
+ * @return bool
+ */
+ private function masterRunningReadOnly( $wiki, DatabaseBase $conn = null ) {
+ $cache = $this->wanCache;
+ $masterServer = $this->getServerName( $this->getWriterIndex() );
+
+ return (bool)$cache->getWithSetCallback(
+ $cache->makeGlobalKey( __CLASS__, 'server-read-only', $masterServer ),
+ self::TTL_CACHE_READONLY,
+ function () use ( $wiki, $conn ) {
+ $this->trxProfiler->setSilenced( true );
+ try {
+ $dbw = $conn ?: $this->getConnection( DB_MASTER, [], $wiki );
+ $readOnly = (int)$dbw->serverIsReadOnly();
+ } catch ( DBError $e ) {
+ $readOnly = 0;
+ }
+ $this->trxProfiler->setSilenced( false );
+ return $readOnly;
+ },
+ [ 'pcTTL' => $cache::TTL_PROC_LONG, 'busyValue' => 0 ]
+ );
+ }
+
/**
* Disables/enables lag checks
* @param null|bool $mode
}
}
+ /**
+ * Call a function with each open connection object to a master
+ * @param callable $callback
+ * @param array $params
+ * @since 1.28
+ */
+ public function forEachOpenMasterConnection( $callback, array $params = [] ) {
+ $masterIndex = $this->getWriterIndex();
+ foreach ( $this->mConns as $connsByServer ) {
+ if ( isset( $connsByServer[$masterIndex] ) ) {
+ /** @var DatabaseBase $conn */
+ foreach ( $connsByServer[$masterIndex] as $conn ) {
+ $mergedParams = array_merge( [ $conn ], $params );
+ call_user_func_array( $callback, $mergedParams );
+ }
+ }
+ }
+ }
+
/**
* Get the hostname and lag time of the most-lagged slave
*
return $this->generateTextDiffBody( $otext, $ntext );
}
- /**
- * Generate a diff, no caching
- *
- * @param string $otext Old text, must be already segmented
- * @param string $ntext New text, must be already segmented
- *
- * @return bool|string
- * @deprecated since 1.21, use generateContentDiffBody() instead!
- */
- public function generateDiffBody( $otext, $ntext ) {
- ContentHandler::deprecated( __METHOD__, "1.21" );
-
- return $this->generateTextDiffBody( $otext, $ntext );
- }
-
/**
* Generate a diff, no caching
*
* @param array $params An associative array of handler-specific parameters.
* Typical keys are width, height and page.
* @param int $flags A bitfield, may contain self::RENDER_NOW to force rendering
- * @return MediaTransformOutput|bool False on failure
+ * @return ThumbnailImage|MediaTransformOutput|bool False on failure
*/
function transform( $params, $flags = 0 ) {
global $wgThumbnailEpoch;
LinksUpdate::queueRecursiveJobsForTable( $this->getTitle(), 'imagelinks' );
}
}
- )
+ ),
+ DeferredUpdates::PRESEND
);
if ( !$reupload ) {
&& strlen( serialize( $this->metadata ) ) <= self::CACHE_FIELD_MAX_LEN;
}
+ /**
+ * @return Status
+ * @since 1.28
+ */
+ public function acquireFileLock() {
+ return $this->getRepo()->getBackend()->lockFiles(
+ [ $this->getPath() ], LockManager::LOCK_EX, 10
+ );
+ }
+
+ /**
+ * @return Status
+ * @since 1.28
+ */
+ public function releaseFileLock() {
+ return $this->getRepo()->getBackend()->unlockFiles(
+ [ $this->getPath() ], LockManager::LOCK_EX
+ );
+ }
+
/**
* Start an atomic DB section and lock the image for update
* or increments a reference counter if the lock is already held
*
+ * This method should not be used outside of LocalFile/LocalFile*Batch
+ *
* @throws LocalFileLockError Throws an error if the lock was not acquired
* @return bool Whether the file lock owns/spawned the DB transaction
*/
- function lock() {
+ public function lock() {
if ( !$this->locked ) {
$logger = LoggerFactory::getInstance( 'LocalFile' );
// Bug 54736: use simple lock to handle when the file does not exist.
// SELECT FOR UPDATE prevents changes, not other SELECTs with FOR UPDATE.
// Also, that would cause contention on INSERT of similarly named rows.
- $backend = $this->getRepo()->getBackend();
- $lockPaths = [ $this->getPath() ]; // represents all versions of the file
- $status = $backend->lockFiles( $lockPaths, LockManager::LOCK_EX, 10 );
+ $status = $this->acquireFileLock(); // represents all versions of the file
if ( !$status->isGood() ) {
$dbw->endAtomic( self::ATOMIC_SECTION_LOCK );
$logger->warning( "Failed to lock '{file}'", [ 'file' => $this->name ] );
}
// Release the lock *after* commit to avoid row-level contention.
// Make sure it triggers on rollback() as well as commit() (T132921).
- $dbw->onTransactionResolution( function () use ( $backend, $lockPaths, $logger ) {
- $status = $backend->unlockFiles( $lockPaths, LockManager::LOCK_EX );
+ $dbw->onTransactionResolution( function () use ( $logger ) {
+ $status = $this->releaseFileLock();
if ( !$status->isGood() ) {
$logger->error( "Failed to unlock '{file}'", [ 'file' => $this->name ] );
}
/**
* Decrement the lock reference count and end the atomic section if it reaches zero
*
+ * This method should not be used outside of LocalFile/LocalFile*Batch
+ *
* The commit and loc release will happen when no atomic sections are active, which
* may happen immediately or at some point after calling this
*/
- function unlock() {
+ public function unlock() {
if ( $this->locked ) {
--$this->locked;
if ( !$this->locked ) {
}
try {
- $dbw = wfGetDB( DB_MASTER );
- return $dbw->deadlockLoop( [ $revision, 'importOldRevision' ] );
+ return $revision->importOldRevision();
} catch ( MWContentSerializationException $ex ) {
$this->notice( 'import-error-unserialize',
$revision->getTitle()->getPrefixedText(),
* @return bool
*/
public function importLogItem( $revision ) {
- $dbw = wfGetDB( DB_MASTER );
- return $dbw->deadlockLoop( [ $revision, 'importLogItem' ] );
+ return $revision->importLogItem();
}
/**
* @return bool
*/
public function importUpload( $revision ) {
- $dbw = wfGetDB( DB_MASTER );
- return $dbw->deadlockLoop( [ $revision, 'importUpload' ] );
+ return $revision->importUpload();
}
/**
if ( !$this->getTitle() ) {
wfDebug( __METHOD__ . ": skipping invalid {$this->type}/{$this->action} log time, timestamp " .
$this->timestamp . "\n" );
- return;
+ return false;
}
# Check if it exists already
// @todo FIXME: Use original log ID (better for backups)
wfDebug( __METHOD__
. ": skipping existing item for Log:{$this->type}/{$this->action}, timestamp "
. $this->timestamp . "\n" );
- return;
+ return false;
}
$log_id = $dbw->nextSequenceValue( 'logging_log_id_seq' );
$data = [
'log_params' => $this->params
];
$dbw->insert( 'logging', $data, __METHOD__ );
+
+ return true;
}
/**
"config-subscribe": "عضویت در [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce release announcements mailing list].",
"config-subscribe-help": "این یک میلینگ لیست کم حجم است که برای اطلاعرسانی کاربرد دارد و شامل اطلاعیههای امنیتی میشود.\nشما باید در آن ثبت نام کنید و زمانی که نسخهٔ جدید مدیاویکی ارائه شد آن را بهروز نمائید.",
"config-subscribe-noemail": "شما بدون ثبت نشانی پست الکترونیکی قصد داشتید در فهرست اطلاعرسانی پخش نرمافزار ثبتنام کنید.\nاگر قصد ثبتنام دارید لطفاً یک نشانی پست الکترونیکی مشخص کنید.",
+ "config-pingback": "اشتراک گذاری دادههای نصب با توسعهدهندگان مدیاویکی",
+ "config-pingback-help": "اگر این گزینه را انتخاب کنید، ویکیمدیا به صورت مداوم به وبگاه https://www.mediawiki.org برای ارسال اطلاعات ابتدایی نصب این مدیاویکی ارتباط برقرار میکند. اطلاعات شامل نوع سامانه، نسخهٔ پیاچپی، دیتابیس انتخاب شده میباشد. بنیاد مدیاویکی برای توسعههای آینده نرمافزار اطلاعات را با توسعه دهندگان مدیاویکی به اشتراک میگذارد. اطلاعاتی که از سامانه شما ارسال خواهد شد موارد زیر هستند:\n<pre>$1</pre>",
"config-almost-done": "شما تقریباً عملیات را کامل کردهاید.\nاکنون میتوانید پیکربندی باقیمانده را نخوانده رها کنید و درحالحاضر ویکی را نصب کنید.",
"config-optional-continue": "سوالهای بیشتری از من بپرسید.",
"config-optional-skip": "درحالحاضر خستهام،سریعاً ویکی را نصب کنید.",
"config-subscribe-help": "זוהי רשימת תפוצה עם הודעות מעטות שמשמשת להודעות על הוצאת גרסאות, כולל עדכוני אבטחה חשובים.\nמומלץ להירשם אליה ולעדכן את מדיה־ויקי כאשר יוצאות גרסאות חדשות.",
"config-subscribe-noemail": "ניסית להירשם לרשימת תפוצה של הודעות בלי לתת כתובת דוא\"ל.\nנא לתת כתובת דוא\"ל אם ברצונך להירשם לרשימת התפוצה.",
"config-pingback": "לשתף נתונים אודות ההתקנה הזו עם מפתחי מדיה־ויקי.",
+ "config-pingback-help": "אם האפשרות הזאת תיבחר, מדיה־ויקי תודיע לאתר https://www.mediawiki.org נתונים בסיסיים על מופע המדיה־ויקי הזה. הנתונים האלה כוללים, למשל, את סוג המערכת, גרסת ה־PHP, ושרת מסד הנתונים שבחרת. קרן ויקימדיה משתפת את הנתונים האלה עם מפתחי מדיה־ויקי כדי לעזור למאמצי הפיתוח העתידיים. הנתונים הבאים יישלחו מהמערכת שלך:\n<pre>$1</pre>",
"config-almost-done": "כמעט סיימת!\nאפשר לדלג על שאר ההגדרות ולהתקין את הוויקי כבר עכשיו.",
"config-optional-continue": "הצגת שאלות נוספות.",
"config-optional-skip": "משעמם לי, תתקינו לי כבר את הוויקי הזה.",
"config-subscribe-help": "Это список рассылки с малым числом сообщений, используется для анонса новых выпусков и сообщений о проблемах с безопасностью.\nВам следует подписаться на него и обновлять движок MediaWiki, по мере выхода новых версий.",
"config-subscribe-noemail": "Вы попытались подписаться на список рассылки уведомлений о новых выпусках без указания адреса электронной почты.\nУкажите адрес электронной почты, если вы хотите подписаться на список рассылки.",
"config-pingback": "Поделиться сведениями об этой установке с разработчикам MediaWiki.",
- "config-pingback-help": "Если вы выберите этот вариант, MediaWiki будет периодически отправлять на https://www.mediawiki.org основные сведения об этом экземпляре MediaWiki. К этим данным относятся, в частности, тип операционной системы, версия PHP и выбранная СУБД. Фонда Викимедиа делится этими данными с разработчиками MediaWiki, чтобы помочь им в проведении будущих разработок.",
+ "config-pingback-help": "Если вы выберите этот вариант, MediaWiki будет периодически отправлять на https://www.mediawiki.org основные сведения об этом экземпляре MediaWiki. К этим данным относятся, в частности, тип операционной системы, версия PHP и выбранная СУБД. Фонда Викимедиа делится этими данными с разработчиками MediaWiki, чтобы помочь им в проведении будущих разработок. Следующие данные будут отправлены для вашей системы:\n<pre>$1</pre>",
"config-almost-done": "Вы почти у цели!\nОстальные настройки можно пропустить и приступить к установке вики.",
"config-optional-continue": "Произвести тонкую настройку",
"config-optional-skip": "Хватит, установить вики",
"config-subscribe": "Підписатися на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce розсилку анонсів нових версій MediaWiki].",
"config-subscribe-help": "Це список розсилки з малим обсягом повідомлень, що використовується для анонсування релізів, а також важливих повідомлень про безпеку.\nВам варто підписати і оновлювати інсталяцію MediaWiki, коли з'являтимуться нові версії.",
"config-subscribe-noemail": "Ви намагались підписатись на розсилку анонсів релізів, не вказавши адреси електронної пошти.\nБудь ласка, вкажіть адресу електронної пошти, якщо хочете підписатись на розсилку.",
+ "config-pingback": "Поділитися даними про цю інсталяцію з розробниками MediaWiki.",
+ "config-pingback-help": "Якщо Ви обираєте цю опцію, MediaWiki періодично пінгуватиме https://www.mediawiki.org базовими даними про цю інсталяцію MediaWiki. Дані включають, наприклад, тип системи, версію PHP, обраний бекенд бази даних. Фонд Вікімедіа ділиться цими даними з розробниками MediaWiki, щоб допомогти спрямувати подальні розробки. Від Вашої системи надсилатимуться такі дані:\n<pre>$1</pre>",
"config-almost-done": "Майже готово!\nВи можете зараз пропустити налаштування, що залишилось, і встановити вікі прямо зараз.",
"config-optional-continue": "Запитуйте ще.",
"config-optional-skip": "Це вже втомлює, просто встановити вікі.",
"config-ns-site-name": "同 Wiki 名稱:$1",
"config-ns-other": "其他 (請註明)",
"config-ns-other-default": "我的 wiki",
- "config-project-namespace-help": "許多 Wiki 以維基百科(Wikipedia)做為範例將政策頁面從內容頁面抽離,放置在 \"'''專案命名空間'''\" 中。\n所有在此命名空間裡的頁面都會有特定的字首,您可以在此處設定。\n通常這些字首是由該 Wiki 的名稱所衍伸出來,但無法使用標點符號,如 \"#\" 或 \":\"。",
+ "config-project-namespace-help": "許多 Wiki 以維基百科 (Wikipedia) 做為範例將政策頁面從內容頁面抽離,放置在 \"'''專案命名空間'''\" 中。\n所有在此命名空間裡的頁面都會有特定的字首,您可以在此處設定。\n通常這些字首是由該 Wiki 的名稱所衍伸出來,但無法使用標點符號,如 \"#\" 或 \":\"。",
"config-ns-invalid": "您指定的命名空間 \"<nowiki>$1</nowiki>\" 無效,\n請指定另一個專案命名空間。",
"config-ns-conflict": "您指定的命名空間 \"<nowiki>$1</nowiki>\" 與 MediaWiki 預設的命名空間衝突。\n請指定另一個專案命名空間。",
"config-admin-box": "管理員帳號",
ContentHandler::runLegacyHooks( 'ArticleSaveComplete', $params );
Hooks::run( 'PageContentSaveComplete', $params );
}
- )
+ ),
+ DeferredUpdates::PRESEND
);
return $status;
Hooks::run( 'PageContentSaveComplete', $params );
}
- )
+ ),
+ DeferredUpdates::PRESEND
);
return $status;
}
if ( $this->mPreparedEdit
- && $this->mPreparedEdit->newContent
+ && isset( $this->mPreparedEdit->newContent )
&& $this->mPreparedEdit->newContent->equals( $content )
&& $this->mPreparedEdit->revid == $revid
&& $this->mPreparedEdit->format == $serialFormat
* @param string $text HTML input fragment. This should not contain a
* <body> or <html> tag.
* @return string Corrected HTML output
+ * @throws MWException
*/
public static function tidy( $text ) {
$driver = self::singleton();
* @param string $text
* @param string &$errorStr Return the error string
* @return bool Whether the HTML is valid
+ * @throws MWException
*/
public static function checkErrors( $text, &$errorStr = null ) {
$driver = self::singleton();
}
}
+ /**
+ * @return bool
+ */
public static function isEnabled() {
return self::singleton() !== false;
}
+ /**
+ * @return bool|\MediaWiki\Tidy\TidyDriverBase
+ */
protected static function singleton() {
global $wgUseTidy, $wgTidyInternal, $wgTidyConf, $wgDebugTidy, $wgTidyConfig,
$wgTidyBin, $wgTidyOpts;
* Create a new Tidy driver object from configuration.
* @see $wgTidyConfig
* @param array $config
- * @return TidyDriverBase
+ * @return bool|\MediaWiki\Tidy\TidyDriverBase
+ * @throws MWException
*/
public static function factory( array $config ) {
switch ( $config['driver'] ) {
/**
* Set the driver to be used. This is for testing.
- * @param TidyDriverBase|false|null $instance
+ * @param MediaWiki\Tidy\TidyDriverBase|false|null $instance
*/
public static function setInstance( $instance ) {
self::$instance = $instance;
$text = Sanitizer::normalizeCharReferences( $text );
- if ( MWTidy::isEnabled() && $this->mOptions->getTidy() ) {
- $text = MWTidy::tidy( $text );
+ if ( MWTidy::isEnabled() ) {
+ if ( $this->mOptions->getTidy() ) {
+ $text = MWTidy::tidy( $text );
+ }
} else {
# attempt to sanitize at least some nesting problems
# (bug #2702 and quite a few others)
protected $dbLockThreshold = 3.0;
/** @var float Seconds */
protected $eventThreshold = .25;
+ /** @var bool */
+ protected $silenced = false;
/** @var array transaction ID => (write start time, list of DBs involved) */
protected $dbTrxHoldingLocks = [];
$this->logger = $logger;
}
+ /**
+ * @param bool $value
+ * @since 1.28
+ */
+ public function setSilenced( $value ) {
+ $this->silenced = $value;
+ }
+
/**
* Set performance expectations
*
* @param string|float|int $actual [optional]
*/
protected function reportExpectationViolated( $expect, $query, $actual = null ) {
+ if ( $this->silenced ) {
+ return;
+ }
+
$n = $this->expect[$expect];
$by = $this->expectBy[$expect];
$actual = ( $actual !== null ) ? " (actual: $actual)" : "";
foreach ( $info['namespaces'] as $ns ) {
$id = $ns['id'];
$this->defines[$ns['constant']] = $id;
- $this->attributes['ExtensionNamespaces'][$id] = $ns['name'];
+ if ( !( isset( $ns['conditional'] ) && $ns['conditional'] ) ) {
+ // If it is not conditional, register it
+ $this->attributes['ExtensionNamespaces'][$id] = $ns['name'];
+ }
if ( isset( $ns['gender'] ) ) {
$this->globals['wgExtraGenderNamespaces'][$id] = $ns['gender'];
}
* the given value.
*
* @param array $configuration List of configuration values keyed by variable name
+ * @param bool $pretty Pretty-print with extra whitespace
* @return string
*/
- public static function makeConfigSetScript( array $configuration ) {
+ public static function makeConfigSetScript( array $configuration, $pretty = null ) {
return Xml::encodeJsCall(
'mw.config.set',
[ $configuration ],
- true // readable
+ ( $pretty === null ) ? ResourceLoader::inDebugMode() : $pretty
);
}
}
}
+ $illegalFileChars = $conf->get( 'IllegalFileChars' );
+
// Build list of variables
$vars = [
'wgLoadScript' => wfScript( 'load' ),
'wgResourceLoaderMaxQueryLength' => $conf->get( 'ResourceLoaderMaxQueryLength' ),
'wgCaseSensitiveNamespaces' => $caseSensitiveNamespaces,
'wgLegalTitleChars' => Title::convertByteClassToUnicodeClass( Title::legalChars() ),
+ 'wgIllegalFileChars' => Title::convertByteClassToUnicodeClass( $illegalFileChars ),
'wgResourceLoaderStorageVersion' => $conf->get( 'ResourceLoaderStorageVersion' ),
'wgResourceLoaderStorageEnabled' => $conf->get( 'ResourceLoaderStorageEnabled' ),
'wgResourceLoaderLegacyModules' => self::getLegacyModules(),
* Item class for a filearchive table row
*/
class RevDelArchivedFileItem extends RevDelFileItem {
+ /** @var RevDelArchivedFileList */
+ protected $list;
+ /** @var ArchivedFile */
+ protected $file;
+ /** @var LocalFile */
+ protected $lockFile;
+
public function __construct( $list, $row ) {
RevDelItem::__construct( $list, $row );
$this->file = ArchivedFile::newFromRow( $row );
+ $this->lockFile = RepoGroup::singleton()->getLocalRepo()->newFile( $row->fa_name );
}
public function getIdField() {
return $ret;
}
+
+ public function lock() {
+ return $this->lockFile->acquireFileLock();
+ }
+
+ public function unlock() {
+ return $this->lockFile->releaseFileLock();
+ }
}
* Item class for an oldimage table row
*/
class RevDelFileItem extends RevDelItem {
- /** @var File */
+ /** @var OldLocalFile */
public $file;
+ /** @var RevDelFileList */
+ protected $list;
public function __construct( $list, $row ) {
parent::__construct( $list, $row );
return $ret;
}
+
+ public function lock() {
+ return $this->file->acquireFileLock();
+ }
+
+ public function unlock() {
+ return $this->file->releaseFileLock();
+ }
}
* @return array Data for the API result
*/
abstract public function getApiData( ApiResult $result );
+
+ /**
+ * Lock the item against changes outside of the DB
+ * @return Status
+ * @since 1.28
+ */
+ public function lock() {
+ return Status::newGood();
+ }
+
+ /**
+ * Unlock the item against changes outside of the DB
+ * @return Status
+ * @since 1.28
+ */
+ public function unlock() {
+ return Status::newGood();
+ }
}
public function areAnySuppressed() {
$bit = $this->getSuppressBit();
- // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
- for ( $this->reset(); $this->current(); $this->next() ) {
- // @codingStandardsIgnoreEnd
- $item = $this->current();
+ /** @var $item RevDelItem */
+ foreach ( $this as $item ) {
if ( $item->getBits() & $bit ) {
return true;
}
}
+
return false;
}
* @since 1.23 Added 'perItemStatus' param
*/
public function setVisibility( array $params ) {
+ $status = Status::newGood();
+
$bitPars = $params['value'];
$comment = $params['comment'];
$perItemStatus = isset( $params['perItemStatus'] ) ? $params['perItemStatus'] : false;
$dbw = wfGetDB( DB_MASTER );
$this->res = $this->doQuery( $dbw );
+ $status->merge( $this->acquireItemLocks() );
+ if ( !$status->isGood() ) {
+ return $status;
+ }
+
$dbw->startAtomic( __METHOD__ );
+ $dbw->onTransactionResolution( function () {
+ // Release locks on commit or error
+ $this->releaseItemLocks();
+ } );
- $status = Status::newGood();
$missing = array_flip( $this->ids );
$this->clearFileOps();
$idsForLog = [];
// passed to doPostCommitUpdates().
$visibilityChangeMap = [];
- // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
- for ( $this->reset(); $this->current(); $this->next() ) {
- // @codingStandardsIgnoreEnd
- /** @var $item RevDelItem */
- $item = $this->current();
+ /** @var $item RevDelItem */
+ foreach ( $this as $item ) {
unset( $missing[$item->getId()] );
if ( $perItemStatus ) {
return $status;
}
+ final protected function acquireItemLocks() {
+ $status = Status::newGood();
+ /** @var $item RevDelItem */
+ foreach ( $this as $item ) {
+ $status->merge( $item->lock() );
+ }
+
+ return $status;
+ }
+
+ final protected function releaseItemLocks() {
+ $status = Status::newGood();
+ /** @var $item RevDelItem */
+ foreach ( $this as $item ) {
+ $status->merge( $item->unlock() );
+ }
+
+ return $status;
+ }
+
/**
* Reload the list data from the master DB. This can be done after setVisibility()
* to allow $item->getHTML() to show the new data.
*/
class SpecialNewFiles extends IncludableSpecialPage {
+ /** @var FormOptions */
+ protected $opts;
+
public function __construct() {
parent::__construct( 'Newimages' );
}
$out = $this->getOutput();
$this->addHelpLink( 'Help:New images' );
- $pager = new NewFilesPager( $this->getContext(), $par );
+ $opts = new FormOptions();
+
+ $opts->add( 'like', '' );
+ $opts->add( 'showbots', false );
+ $opts->add( 'hidepatrolled', false );
+ $opts->add( 'limit', 50 );
+ $opts->add( 'offset', '' );
+
+ $opts->fetchValuesFromRequest( $this->getRequest() );
+
+ if ( $par !== null ) {
+ $opts->setValue( is_numeric( $par ) ? 'limit' : 'like', $par );
+ }
+
+ $opts->validateIntBounds( 'limit', 0, 500 );
+
+ $this->opts = $opts;
if ( !$this->including() ) {
- $this->setTopText();
- $form = $pager->getForm();
- $form->prepareForm();
- $form->displayForm( '' );
+ $this->buildForm();
}
+ $pager = new NewFilesPager( $this->getContext(), $opts );
+
$out->addHTML( $pager->getBody() );
if ( !$this->including() ) {
$out->addHTML( $pager->getNavigationBar() );
}
}
+ protected function buildForm() {
+ $formDescriptor = [
+ 'like' => [
+ 'type' => 'text',
+ 'label-message' => 'newimages-label',
+ 'name' => 'like',
+ ],
+
+ 'showbots' => [
+ 'type' => 'check',
+ 'label-message' => 'newimages-showbots',
+ 'name' => 'showbots',
+ ],
+
+ 'hidepatrolled' => [
+ 'type' => 'check',
+ 'label-message' => 'newimages-hidepatrolled',
+ 'name' => 'hidepatrolled',
+ ],
+
+ 'limit' => [
+ 'type' => 'hidden',
+ 'default' => $this->opts->getValue( 'limit' ),
+ 'name' => 'limit',
+ ],
+
+ 'offset' => [
+ 'type' => 'hidden',
+ 'default' => $this->opts->getValue( 'offset' ),
+ 'name' => 'offset',
+ ],
+ ];
+
+ if ( $this->getConfig()->get( 'MiserMode' ) ) {
+ unset( $formDescriptor['like'] );
+ }
+
+ if ( !$this->getUser()->useFilePatrol() ) {
+ unset( $formDescriptor['hidepatrolled'] );
+ }
+
+ $form = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
+ ->setWrapperLegendMsg( 'newimages-legend' )
+ ->setSubmitTextMsg( 'ilsubmit' )
+ ->setMethod( 'get' )
+ ->prepareForm()
+ ->displayForm( false );
+ }
+
protected function getGroupName() {
return 'changes';
}
if ( $request->getSessionData( 'specialPreferencesSaveSuccess' ) ) {
// Remove session data for the success message
$request->setSessionData( 'specialPreferencesSaveSuccess', null );
+ $out->addModuleStyles( 'mediawiki.notification.convertmessagebox.styles' );
- $out->wrapWikiMsg(
+ $out->addHtml(
Html::rawElement(
'div',
[
- 'class' => 'mw-preferences-messagebox successbox',
- 'id' => 'mw-preferences-success'
+ 'class' => 'mw-preferences-messagebox mw-notify-success successbox',
+ 'id' => 'mw-preferences-success',
+ 'data-mw-autohide' => 'false',
],
- Html::element( 'p', [], '$1' )
- ),
- 'savedprefs'
+ Html::element( 'p', [], $this->msg( 'savedprefs' )->text() )
+ )
);
}
if ( $textMatches && !$textStatus ) {
// output appropriate heading
if ( $numTextMatches > 0 && $numTitleMatches > 0 ) {
- $out->addHTML( '<div class="visualClear"></div>' );
+ $out->addHTML( '<div class="mw-search-visualclear"></div>' );
// if no title matches the heading is redundant
$out->wrapWikiMsg( "==$1==\n", 'textmatches' );
}
$textMatches->free();
}
- $out->addHTML( '<div class="visualClear"></div>' );
+ $out->addHTML( '<div class="mw-search-visualclear"></div>' );
if ( $prevnext ) {
$out->addHTML( "<p class='mw-search-pager-bottom'>{$prevnext}</p>\n" );
protected function interwikiHeader( $interwiki, $interwikiResult ) {
// TODO: we need to figure out how to name wikis correctly
$wikiMsg = $this->msg( 'search-interwiki-results-' . $interwiki )->parse();
- return "<p class=\"mw-search-interwiki-header\">\n$wikiMsg</p>";
+ return "<p class=\"mw-search-interwiki-header mw-search-visualclear\">\n$wikiMsg</p>";
}
/**
* @return string
*/
protected function searchProfileTabs( $term ) {
- $out = Html::element( 'div', [ 'class' => 'visualClear' ] ) .
+ $out = Html::element( 'div', [ 'class' => 'mw-search-visualclear' ] ) .
Xml::openElement( 'div', [ 'class' => 'mw-search-profile-tabs' ] );
$bareterm = $term;
// show a successbox, if the user rights was saved successfully
if ( $request->getCheck( 'success' ) && $this->mFetchedUser !== null ) {
- $out->wrapWikiMsg(
- "<div class=\"successbox\">\n$1\n</div>",
- [ 'savedrights', $this->mFetchedUser->getName() ]
+ $out->addModules( [ 'mediawiki.special.userrights' ] );
+ $out->addModuleStyles( 'mediawiki.notification.convertmessagebox.styles' );
+ $out->addHtml(
+ Html::rawElement(
+ 'div',
+ [
+ 'class' => 'mw-notify-success successbox',
+ 'id' => 'mw-preferences-success',
+ 'data-mw-autohide' => 'false',
+ ],
+ Html::element(
+ 'p',
+ [],
+ $this->msg( 'savedrights', $this->mFetchedUser->getName() )->text()
+ )
+ )
);
}
// If statement for paranoia
if ( $file ) {
$thumb = $file->transform( [ 'width' => 180, 'height' => 360 ] );
-
- return $thumb->toHtml( [ 'desc-link' => true ] );
+ if ( $thumb ) {
+ return $thumb->toHtml( [ 'desc-link' => true ] );
+ } else {
+ return wfMessage( 'thumbnail_error', '' )->escaped();
+ }
} else {
return htmlspecialchars( $value );
}
protected $gallery;
/**
- * @var bool
+ * @var FormOptions
*/
- protected $showBots;
+ protected $opts;
/**
- * @var bool
+ * @param IContextSource $context
+ * @param FormOptions $opts
*/
- protected $hidePatrolled;
-
- function __construct( IContextSource $context, $par = null ) {
- $this->like = $context->getRequest()->getText( 'like' );
- $this->showBots = $context->getRequest()->getBool( 'showbots', 0 );
- $this->hidePatrolled = $context->getRequest()->getBool( 'hidepatrolled', 0 );
- if ( is_numeric( $par ) ) {
- $this->setLimit( $par );
- }
+ function __construct( IContextSource $context, FormOptions $opts ) {
+ $this->opts = $opts;
+
+ $this->setLimit( $opts->getValue( 'limit' ) );
parent::__construct( $context );
}
function getQueryInfo() {
+ $opts = $this->opts;
$conds = $jconds = [];
$tables = [ 'image' ];
$fields = [ 'img_name', 'img_user', 'img_timestamp' ];
$options = [];
- if ( !$this->showBots ) {
+ if ( !$opts->getValue( 'showbots' ) ) {
$groupsWithBotPermission = User::getGroupsWithPermission( 'bot' );
if ( count( $groupsWithBotPermission ) ) {
}
}
- if ( $this->hidePatrolled ) {
+ if ( $opts->getValue( 'hidepatrolled' ) ) {
$tables[] = 'recentchanges';
$conds['rc_type'] = RC_LOG;
$conds['rc_log_type'] = 'upload';
$options[] = 'STRAIGHT_JOIN';
}
- if ( !$this->getConfig()->get( 'MiserMode' ) && $this->like !== null ) {
+ $likeVal = $opts->getValue( 'like' );
+ if ( !$this->getConfig()->get( 'MiserMode' ) && $likeVal !== '' ) {
$dbr = wfGetDB( DB_SLAVE );
- $likeObj = Title::newFromText( $this->like );
+ $likeObj = Title::newFromText( $likeVal );
if ( $likeObj instanceof Title ) {
$like = $dbr->buildLike(
$dbr->anyString(),
. "</i><br />\n"
);
}
-
- function getForm() {
- $fields = [
- 'like' => [
- 'type' => 'text',
- 'label-message' => 'newimages-label',
- 'name' => 'like',
- ],
- 'showbots' => [
- 'type' => 'check',
- 'label-message' => 'newimages-showbots',
- 'name' => 'showbots',
- ],
- 'hidepatrolled' => [
- 'type' => 'check',
- 'label-message' => 'newimages-hidepatrolled',
- 'name' => 'hidepatrolled',
- ],
- 'limit' => [
- 'type' => 'hidden',
- 'default' => $this->mLimit,
- 'name' => 'limit',
- ],
- 'offset' => [
- 'type' => 'hidden',
- 'default' => $this->getRequest()->getText( 'offset' ),
- 'name' => 'offset',
- ],
- ];
-
- if ( $this->getConfig()->get( 'MiserMode' ) ) {
- unset( $fields['like'] );
- }
-
- if ( !$this->getUser()->useFilePatrol() ) {
- unset( $fields['hidepatrolled'] );
- }
-
- $context = new DerivativeContext( $this->getContext() );
- $context->setTitle( $this->getTitle() ); // Remove subpage
- $form = new HTMLForm( $fields, $context );
-
- $form->setSubmitTextMsg( 'ilsubmit' );
- $form->setSubmitProgressive();
-
- $form->setMethod( 'get' );
- $form->setWrapperLegendMsg( 'newimages-legend' );
-
- return $form;
- }
}
'ISO-8859-1',
'ISO-8859-2',
'UTF-16',
- 'UTF-32'
+ 'UTF-32',
+ 'WINDOWS-1250',
+ 'WINDOWS-1251',
+ 'WINDOWS-1252',
+ 'WINDOWS-1253',
+ 'WINDOWS-1254',
+ 'WINDOWS-1255',
+ 'WINDOWS-1256',
+ 'WINDOWS-1257',
+ 'WINDOWS-1258',
];
const SUCCESS = 0;
return true;
}
+ /**
+ * Return the users who are members of the given group(s). In case of multiple groups,
+ * users who are members of at least one of them are returned.
+ *
+ * @param string|array $groups A single group name or an array of group names
+ * @param int $limit Max number of users to return. The actual limit will never exceed 5000
+ * records; larger values are ignored.
+ * @param int $after ID the user to start after
+ * @return UserArrayFromResult
+ */
+ public static function findUsersByGroup( $groups, $limit = 5000, $after = null ) {
+ if ( $groups === [] ) {
+ return UserArrayFromResult::newFromIDs( [] );
+ }
+
+ $groups = array_unique( (array)$groups );
+ $limit = min( 5000, $limit );
+
+ $conds = [ 'ug_group' => $groups ];
+ if ( $after !== null ) {
+ $conds[] = 'ug_user > ' . (int)$after;
+ }
+
+ $dbr = wfGetDB( DB_SLAVE );
+ $ids = $dbr->selectFieldValues(
+ 'user_groups',
+ 'ug_user',
+ $conds,
+ __METHOD__,
+ [
+ 'DISTINCT' => true,
+ 'ORDER BY' => 'ug_user',
+ 'LIMIT' => $limit,
+ ]
+ ) ?: [];
+ return UserArray::newFromIDs( $ids );
+ }
+
/**
* Usernames which fail to pass this function will be blocked
* from new account registrations, but may be used internally
"showpreview": "أظهر معاينة",
"showdiff": "عرض التغييرات",
"blankarticle": "<strong>تنبيه:</strong> الصفحة التي تريد إنشاءها فارغة. إذا نقرت \"{{int:savearticle}}\" ثانية فستنشأ الصفحة بدون محتوى.",
- "anoneditwarning": "'''تحذير:''' لم تقم بالدخول.\nسيسجل عنوان الآيبي خاصتك في تاريخ هذه الصفحة.",
+ "anoneditwarning": "<strong>تحذير:</strong> أنت غير مسجل الدخول. عنوان الأيبي الخاص بك سيكون معروضا بشكل علني لو قمت بأي تعديلات. لو أنك <strong>[$1 سجلت الدخول]</strong> أو <strong>[$2 أنشأت حسابا]</strong>، فتعديلاتك ستنسب لاسم المستخدم الخاص بك، بالإضافة إلى فوائد أخرى.",
"anonpreviewwarning": "''أنت غير مسجل الدخول. الحفظ سيسجل عنوان الأيبي الخاص بك في تاريخ هذه الصفحة.''",
"missingsummary": "'''تنبيه:''' لم تقم بكتابة ملخص للتعديل.\nإذا قمت بضغط حفظ الصفحة مرة أخرى، فيتم حفظ تعديلك بدون ملخص.",
"selfredirect": "<strong>تحذير:</strong> أنت تقوم بتحويل الصفحة إلى نفسها.\nربما حددت الهدف الخطأ للتحويلة أو أنك تقوم بتحرير الصفحة الخطأ.\n\nإذا نقرت على «{{int:savearticle}}» مرة أخرى، سيتم إنشاء التحويلة رغم الخطأ.",
"content-model-css": "CSS",
"content-json-empty-object": "غرض فارغ",
"content-json-empty-array": "مصفوفة فارغة",
+ "deprecated-self-close-category": "صفحات تستخدم وسوم أتش تي أم أل غير صالحة",
"duplicate-args-warning": "<strong>تنبيه:</strong> المدخل \"$3\" ل[[:$1]] المستعمل في [[:$2]] مكرر. آخر قيمة مكرر منه هي المعتمدة.",
"duplicate-args-category": "صفحات تستعمل قالبا ببيانات مكررة",
"duplicate-args-category-desc": "تحوي هذه الصفحة استدعاءات قالب تستخدم متغيرات مزدوجة مثل <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> أو <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"preferences": "تفضيلات",
"mypreferences": "تفضيلات",
"prefs-edits": "عدد التعديلات:",
- "prefsnologintext2": "الرجاء $1 لضبط تفضيلات المستخدم.",
+ "prefsnologintext2": "الرجاء تسجيل الدخول لضبط تفضيلات المستخدم.",
"prefs-skin": "واجهة",
"skin-preview": "عرض مسبق",
"datedefault": "لا تفضيل",
"recentchangesdays-max": "الحد الأقصى {{PLURAL:$1|أقل من يوم|يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}}",
"recentchangescount": "عدد التعديلات الظاهرة مبدئيا:",
"prefs-help-recentchangescount": "بما في ذلك أحدث التغييرات وتاريخ الصفحات والسجلات.",
- "prefs-help-watchlist-token2": "Ù\87ذا Ù\87Ù\88 اÙ\84Ù\85Ù\81ØªØ§Ø Ø§Ù\84سرÙ\8a Ù\84تغذÙ\8aØ© اÙ\84Ù\88Ù\90ب لقائمة مراقبتك.\nيمكن لأي شخص يعرفه أن يقرأ قائمة مراقبتك، ولذا لا تتشاركه مع أحد. [[Special:ResetTokens|انقر هنا إذا أردت إعادة ضبطه]].",
+ "prefs-help-watchlist-token2": "Ù\87ذا Ù\87Ù\88 اÙ\84Ù\85Ù\81ØªØ§Ø Ø§Ù\84سرÙ\8a Ù\84تغذÙ\8aØ© اÙ\84Ù\88Ù\8aب لقائمة مراقبتك.\nيمكن لأي شخص يعرفه أن يقرأ قائمة مراقبتك، ولذا لا تتشاركه مع أحد. [[Special:ResetTokens|انقر هنا إذا أردت إعادة ضبطه]].",
"savedprefs": "تم حفظ تفضيلاتك.",
"savedrights": "حُفظت الصلاحيات الجديدة {{GENDER:$1|للمستخدم|للمستخدمة}} $1.",
"timezonelegend": "المنطقة الزمنية:",
"recentchanges-legend-heading": "<strong>شرح:</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (راجع أيضا [[Special:NewPages|قائمة الصفحات الجديدة]])",
"recentchanges-submit": "أظهر",
- "rcnotefrom": "بالأسفل التغييرات منذ <strong>$2</strong> (إلى <strong>$1</strong> معروضة).",
+ "rcnotefrom": "بالأسفل {{PLURAL:$5|التغيير|التغييرات}} منذ <strong>$2</strong> (إلى <strong>$1</strong> معروضة).",
"rclistfrom": "أظهر التغييرات بدء من $3 $2",
"rcshowhideminor": "$1 التعديلات الطفيفة",
"rcshowhideminor-show": "أظهر",
"ignorewarnings": "تجاهل أية تحذيرات",
"minlength1": "أسماء الملفات يجب أن تتكون من حرف واحد على الأقل.",
"illegalfilename": "اسم الملف \"$1\" يحتوي على حروف غير مسموح بها في عناوين الصفحات.\nمن فضلك أعد تسمية الملف وحاول رفعه مرة أخرى.",
- "filename-toolong": "Ø·Ù\88Ù\84 أسÙ\85اء اÙ\84Ù\85Ù\84Ù\81ات Ù\8aجب Ø£Ù\86 Ù\84ا Ù\8aتجاÙ\88ز 240 ØرÙ\81 (باÙ\8aت)",
+ "filename-toolong": "Ø·Ù\88Ù\84 أسÙ\85اء اÙ\84Ù\85Ù\84Ù\81ات Ù\8aجب Ø£Ù\86 Ù\84ا Ù\8aتجاÙ\88ز 240 باÙ\8aت",
"badfilename": "تم تغيير اسم الملف إلى \"$1\".",
"filetype-mime-mismatch": "امتداد الملف \".$1\" لا يطابق نوع MIME للملف ($2).",
"filetype-badmime": "من غير المسموح به رفع ملفات من النوع \"$1\".",
"img-auth-nopathinfo": "PATH_INFO مفقود.\nخادومك ليس مضبوطاً لتمرير هذه المعلومة.\nقد يكون مبنياً على نظام CGI ولا يمكنه دعم img_auth.\nراجع https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
"img-auth-notindir": "المسار المطلوب غير موجود في مجلد الرفع المضبوط.",
"img-auth-badtitle": "تعذر تشكيل عنوان صالح من \"$1\".",
- "img-auth-nologinnWL": "لست والجاً و\"$1\" ليست في القائمة البيضاء.",
+ "img-auth-nologinnWL": "لست والجا و\"$1\" ليست في القائمة البيضاء.",
"img-auth-nofile": "الملف \"$1\" غير موجود.",
"img-auth-isdir": "أنت تحاول الوصول إلى الدليل \"$1\".\nيسمح بوصول الملفات فقط.",
"img-auth-streaming": "عرض \"$1\".",
"listusers-noresult": "لم يتم إيجاد مستخدم.",
"listusers-blocked": "(ممنوع)",
"activeusers": "قائمة المستخدمين النشطين",
- "activeusers-intro": "هذه قائمة بالمستخدمين الذين مارسوا نوعاً من النشاط خلال {{PLURAL:$1||اليوم الماضي|اليومين الماضيين|ال$1 أيام الماضية|ال$1 يوماً ماضياً|ال$1 يوم ماضي}}.",
- "activeusers-count": "{{PLURAL:$1|لا أفعال|فعل واحد|فعلان اثنان|$1 أفعال|$1 فعلاً|$1 فعل}} منذ {{PLURAL:$3||يوم|يومين|$3 أيام|$3 يوماً|$1 يوم}}",
+ "activeusers-intro": "هذه قائمة بالمستخدمين الذين مارسوا نوعا من النشاط خلال {{PLURAL:$1||اليوم الماضي|اليومين الماضيين|ال$1 أيام الماضية|ال$1 يوما ماضيا|ال$1 يوم ماضي}}.",
+ "activeusers-count": "{{PLURAL:$1|لا أفعال|فعل واحد|فعلان اثنان|$1 أفعال|$1 فعلا|$1 فعل}} منذ {{PLURAL:$3||يوم|يومين|$3 أيام|$3 يوما|$1 يوم}}",
"activeusers-from": "اعرض المستخدمين ابتداء من:",
"activeusers-hidebots": "أخف البوتات",
"activeusers-hidesysops": "أخف الإداريين",
"mywatchlist": "قائمة مراقبتي",
"watchlistfor2": "ل$1 $2",
"nowatchlist": "لا توجد مدخلات في قائمة مراقبتك.",
- "watchlistanontext": "الرجاء $1 لعرض أو تعديل الصفحات في قائمة مراقبتك.",
+ "watchlistanontext": "الرجاء تسجيل الدخول لعرض أو تعديل الصفحات في قائمة مراقبتك.",
"watchnologin": "غير مسجل الدخول",
"addwatch": "إضافة إلى قائمة المراقبة",
"addedwatchtext": "\"[[:$1]]\" وصفحة نقاشها أضيفتا إلى [[Special:Watchlist|قائمة مراقبتك]].",
"alreadyrolled": "لم يمكن استرجاع آخر تعديل ل[[$1]] بواسطة [[User:$2|$2]] ([[User talk:$2|نقاش]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])؛\nشخص آخر عدل أو استرجع الصفحة بالفعل.\n\nآخر تعديل كان بواسطة [[User:$3|$3]] ([[User talk:$3|نقاش]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
"editcomment": "ملخص التعديل كان:<em>$1</em>.",
"revertpage": "استرجع تعديلات [[Special:Contributions/$2|$2]] ([[User talk:$2|نقاش]]) حتى آخر مراجعة ل[[User:$1|$1]]",
- "revertpage-nouser": "استرجع تعديلات مستخدم مخفيّ حتى آخر مراجعة ل{{GENDER:$1|[[User:$1|$1]]}}",
+ "revertpage-nouser": "استرجع تعديلات مستخدم مخفي حتى آخر مراجعة ل{{GENDER:$1|[[User:$1|$1]]}}",
"rollback-success": "استرجع تعديلات $1؛\nاسترجع حتى آخر نسخة بواسطة $2.",
"sessionfailure-title": "فشل في الجلسة",
"sessionfailure": "يبدو أنه هناك مشكلة في جلسة الدخول الخاصة بك؛\nلذلك فقد ألغيت هذه العملية كإجراء احترازي ضد الاختراق.\nمن فضلك اضغط على مفتاح \"رجوع\" لتحميل الصفحة التي جئت منها، ثم حاول مرة أخرى.",
"autoblockid": "منع تلقائي #$1",
"block": "امنع المستخدم",
"unblock": "إلغاء منع مستخدم",
- "blockip": "منع المستخدم",
+ "blockip": "منع {{GENDER:$1|المستخدم|المستخدمة}}",
"blockip-legend": "منع المستخدم",
"blockiptext": "استخدم النموذج التالي لمنع مستخدم، أو عنوان آيبي، معين من التعديل أو إنشاء حسابات جديدة. تُستخدم هذه العملية لمنع التخريب فقط، ويجب أن تتماشى مع [[{{MediaWiki:Policy-url}}|سياسة المنع]]. أدخل تعليلاً واضحًا لسبب المنع في الخانة المخصصة لذلك (مثلاً: ذكر صفحات محددة تمّ تخريبها من قبل المستخدم).",
"ipaddressorusername": "عنوان الأيبي أو اسم المستخدم:",
"api-error-missingparam": "خطأ داخلي : متغيرات مفقودة ضمن الطلب.",
"api-error-missingresult": "خطأ داخلي : لا يمكن التحديد ما إذا كان النسخ ناجحاً.",
"api-error-mustbeloggedin": "يجب أن تكون مسجلا في لتحميل الملفات.",
- "api-error-mustbeposted": "خطأ داخلي: يتطلب طلب HTTP POST.",
+ "api-error-mustbeposted": "خطأ داخلي: الطلب يتطلب HTTP POST.",
"api-error-noimageinfo": "نجح التحميل، ولكن الخادم لم يقدم لنا أي معلومات حول الملف.",
"api-error-nomodule": "خطأ داخلي: لم يتم تعيين تحميل الوحدة النمطية.",
"api-error-ok-but-empty": "خطأ داخلي : لم يكن هناك استجابة من الملقم.",
"recentchanges-label-unpatrolled": "التعديل ده مإتراجعش لسه",
"recentchanges-legend-heading": "<strong>شرح</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (بص كمان على [[Special:NewPages|قايمه الصفحات الجديده]])",
- "rcnotefrom": "دى التعديلات من '''$2''' (ل '''$1''' معروضه).",
+ "rcnotefrom": "{{PLURAL:$5|ده التعديل|دى التعديلات}} من اول <strong>$3, $4</strong> (لغايه<strong>$1</strong> معروضه).",
"rclistfrom": "اظهر التعديلات بدايه من $3 $2",
"rcshowhideminor": "$1 تعديلات صغيره",
"rcshowhideminor-show": "اعرض",
"upload_directory_read_only": "مجلد التحميل ($1) مش ممكن الكتابة عليه بواسطة سيرڨر الويب.",
"uploaderror": "غلطه فى التحميل",
"uploadtext": "استخدم الاستمارة علشان تحميل الملفات.\nلعرض أو البحث ف الملفات المتحملة سابقا، راجع عمليات المسح [[Special:Log/delete|deletion log]] [[Special:FileList|لستة الملفات المتحملة]]، عمليات التحميل موجودة فى [[Special:Log/upload|سجل التحميل]].\n\nعلشان تحط صورة فى صفحة، استخدم الوصلات فى الصيغ التالية:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' علشان استخدام النسخة الكاملة لملف\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|نص بديل]]</nowiki></code>''' لاستخدام صورة عرضها 200 بكسل فى صندوق فى الجانب الأيسر مع 'نص بديل' كوصف\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' للوصل للملف مباشرة بدون عرض الملف.",
- "upload-permitted": "أنواع الملفات المسموحة: $1.",
- "upload-preferred": "أنواع الملفات المفضلة: $1.",
- "upload-prohibited": "أنواع الملفات الممنوعة: $1.",
+ "upload-permitted": "{{PLURAL:$2|نوع|انواع}} الملفات اللى مسموح بيها: $1.",
+ "upload-preferred": "{{PLURAL:$2|نوع|انواع}} الملفات المفضله: $1.",
+ "upload-prohibited": "{{PLURAL:$2|نوع|انواع}} الملفات الممنوعه: $1.",
"uploadlogpage": "سجل التحميل",
"uploadlogpagetext": "تحت فية لستة بأحدث عمليات تحميل الملفات.\nانظر [[Special:NewFiles|معرض الملفات الجديدة]] لعرض بصرى أكتر",
"filename": "اسم الملف",
"mywatchlist": "لستة الصفح اللى باراقبها",
"watchlistfor2": "لليوزر $1 ($2)",
"nowatchlist": "مافيش حاجة فى لستة مراقبتك.",
- "watchlistanontext": "لو سمحت $1 لعرض أو تعديل الصفحات فى لستة مراقبتك.",
+ "watchlistanontext": "لو سمحت اعمل لوجين لعرض أو تعديل الصفحات فى لستة مراقبتك.",
"watchnologin": "مش متسجل",
"addedwatchtext": "تمت إضافة الصفحه \"$1\" [[Special:Watchlist|للستة الصفحات اللى بتراقبها]].\nالتعديلات اللى بعد كده ها تتحط على الصفحه دى، وصفحة المناقش الخاصه بها ها تتحط هناك. واسم الصفحة هايظهر بخط <b>عريض</b> فى صفحة [[Special:RecentChanges|أحدث التعديلات]] لتسهيل تحديدها واكتشافها.",
"removedwatchtext": "الصفحه دى اتشالت \"[[:$1]]\" من [[Special:Watchlist|لستة الصفحات اللى بتراقبها]].",
"whatlinkshere-hidelinks": "$1 لينكات",
"whatlinkshere-hideimages": "$1 وصلة صورة",
"whatlinkshere-filters": "فلاتر",
- "blockip": "منع يوزر",
+ "blockip": "بلوك {{GENDER:$1|اليوزر|اليوزره}}",
"blockip-legend": "منع اليوزر",
"blockiptext": "استخدم الاستمارة اللى تحت لمنع عنوان أيبى أو يوزر معين من الكتابة.\nدا لازم يحصل بس علشان تمنع التخريب ،و على حسب\n[[{{MediaWiki:Policy-url}}|السياسة]].\nاكتب سبب محدد تحت (يعنى مثلا، اكتب الصفحات المعينة اللى اتخربت بسببه).",
"ipaddressorusername": "عنوان الأيبى أو اسم اليوزر:",
"resetpass-expired-soft": "Тэрмін дзеяньня вашага паролю скончыўся і ён патрабуе замены. Калі ласка, абярыце новы пароль цяпер або націсьніце «{{int:authprovider-resetpass-skip-label}}», каб зьмяніць яго пазьней.",
"resetpass-validity-soft": "Ваш пароль зьяўляецца некарэктным: $1\n\nКалі ласка, абярыце зараз новы пароль або націсьніце «{{int:authprovider-resetpass-skip-label}}», каб скінуць яго пазьней.",
"passwordreset": "Ачыстка паролю",
- "passwordreset-text-one": "Запоўніце гэтую форму, каб скінуць пароль.",
+ "passwordreset-text-one": "Запоўніце гэтую форму, каб атрымаць часовы пароль электроннай поштай.",
"passwordreset-text-many": "{{PLURAL:$1|Запоўніце адно з палёў, каб атрымаць часовы пароль праз электронную пошту.}}",
- "passwordreset-disabled": "Ð\9cагÑ\87Ñ\8bмаÑ\81Ñ\8cÑ\86Ñ\8c аÑ\87Ñ\8bÑ\81Ñ\82кÑ\96 паÑ\80олÑ\8e бÑ\8bла забаÑ\80оненаÑ\8f Ñ\9e {{GRAMMAR:меÑ\81нÑ\8b|{{SITENAME}}}}.",
+ "passwordreset-disabled": "Ð\9cагÑ\87Ñ\8bмаÑ\81Ñ\8cÑ\86Ñ\8c аÑ\87Ñ\8bÑ\81Ñ\82кÑ\96 паÑ\80олÑ\8e бÑ\8bла адклÑ\8eÑ\87анаÑ\8f Ñ\9e гÑ\8dÑ\82ай вÑ\96кÑ\96.",
"passwordreset-emaildisabled": "Функцыі e-mail у гэтай вікі былі адключаныя.",
"passwordreset-username": "Імя ўдзельніка:",
"passwordreset-domain": "Дамэн:",
"redirect-page": "Ідэнтыфікатар старонкі",
"redirect-revision": "Вэрсіі старонкі",
"redirect-file": "Імя файла",
+ "redirect-logid": "ID журнала",
"redirect-not-exists": "Значэньне ня знойдзена",
"fileduplicatesearch": "Пошук дублікатаў файлаў",
"fileduplicatesearch-summary": "Пошук аднолькавых файлаў на падставе іх хэшаў.",
"tags-delete-not-found": "Метка «$1» не існуе.",
"tags-delete-too-many-uses": "Метка «$1» выкарыстаная ў больш чым $2 {{PLURAL:$2|вэрсіі|вэрсіях}}, адпаведна, яна ня можа быць выдаленая.",
"tags-delete-warnings-after-delete": "Метка «$1» была выдаленая, але {{PLURAL:$2|1=атрыманае наступнае папярэджаньне|атрыманыя наступныя папярэджаньні}}:",
+ "tags-delete-no-permission": "У вас няма дазволу на выдаленьне метак зьменаў.",
"tags-activate-title": "Актываваць метку",
"tags-activate-question": "Вы зьбіраецеся актываваць метку «$1».",
"tags-activate-reason": "Прычына:",
"feedback-useragent": "Агент удзельніка:",
"searchsuggest-search": "Пошук",
"searchsuggest-containing": "утрымлівае...",
+ "api-error-autoblocked": "Ваш IP-адрас быў аўтаматычна заблякаваны, бо ён быў выкарыстаны заблякаваным удзельнікам.",
"api-error-badaccess-groups": "У Вас няма дазволу загружаць файлы ў гэтую вікі.",
"api-error-badtoken": "Унутраная памылка: няслушны ключ.",
+ "api-error-blocked": "Рэдагаваньне было для вас заблякаванае.",
"api-error-copyuploaddisabled": "Загрузка з URL-адрасу забароненая на гэтым сэрвэры.",
"api-error-duplicate": "На сайце ўжо {{PLURAL:$1|1=існуе іншы файл|існуюць іншыя файлы}} з такім жа зьместам.",
"api-error-duplicate-archive": "Раней на сайце {{PLURAL:$1|1=быў файл|былі файлы}} з дакладна такім жа зьместам, але {{PLURAL:$1|1=ён быў выдалены|яны былі выдаленыя}}.",
"expand_templates_preview": "Папярэдні прагляд",
"expand_templates_preview_fail_html": "<em>Праз тое што {{SITENAME}} мае ўключаным неапрацаваны HTML і адбылася страта зьвестак сэсіі, папярэдні прагляд схаваны, як засьцярога ад атакаў з дапамогай JavaScript.</em>\n\n<strong>Калі гэта слушная спроба перадпрагляду, калі ласка, паспрабуйце яшчэ раз.</strong>\nКалі гэта не спрацуе, паспрабуйце [[Special:UserLogout|выйсьці]] і ўвайсьці яшчэ раз, а таксама праверце, што ваш браўзэр дазваляе кукі-файлы з гэтага сайту.",
"expand_templates_preview_fail_html_anon": "<em>Праз тое што {{SITENAME}} мае ўключаным сыры HTML і вы не ўвайшлі ў сыстэму, папярэдні прагляд схаваны, як засьцярога ад атакаў з дапамогай JavaScript.</em>\n\n<strong>Калі гэта слушная спроба перадпрагляду, калі ласка, [[Special:UserLogin|увайдзіце ў сыстэму]] і паспрабуйце яшчэ раз.</strong>",
+ "expand_templates_input_missing": "Вам трэба ўвесьці хоць нейкі тэкст.",
"pagelanguage": "Зьмена мовы старонкі",
"pagelang-name": "Старонка",
"pagelang-language": "Мова",
"pagelang-use-default": "Ужываць мову па змоўчаньні",
"pagelang-select-lang": "Абярыце мову",
+ "pagelang-submit": "Адправіць",
"right-pagelang": "Зьмяніць мову старонкі",
"action-pagelang": "зьмену мовы старонкі",
"log-name-pagelang": "Журнал зьменаў мовы",
"mediastatistics-header-text": "Тэкст",
"mediastatistics-header-executable": "Выконваныя файлы",
"mediastatistics-header-archive": "Сьціснутыя фарматы",
+ "mediastatistics-header-total": "Усе файлы",
"json-warn-trailing-comma": "$1 {{PLURAL:$1|залішняя коска ў канцы была выдаленая|залішнія коскі ў канцы былі выдаленыя|залішніх косак у канцы былі выдаленыя}} з JSON",
"json-error-unknown": "Узьнікла праблема з JSON. Памылка: $1",
"json-error-depth": "Перавышаная максымальная глыбіня стэку",
"special-characters-group-ipa": "МФА (IPA)",
"special-characters-group-symbols": "Сымбалі",
"special-characters-group-greek": "Грэцкія",
+ "special-characters-group-greekextended": "Пашыраная грэцкая",
"special-characters-group-cyrillic": "Кірылічныя",
"special-characters-group-arabic": "Арабскія",
"special-characters-group-arabicextended": "Арабскія пашыраныя",
"passwordreset-emailsent-capture": "Ніжэй прыведзены адпраўлены ліст пра скід пароля.",
"passwordreset-emailerror-capture": "Ніжэй прыведзены створаны ліст пра скід пароля, яго адпраўка не атрымалася па прычыне: $1",
"passwordreset-invalideamil": "Няслушны адрас электроннай пошты",
+ "passwordreset-nodata": "Не былі пададзены ні імя ўдзельніка, ні адрас электроннай пошты",
"changeemail": "Змяніць або выдаліць адрас электроннай пошты",
"changeemail-header": "Запоўніце гэтую форму, каб змяніць свой адрас электроннай пошты. Калі хочаце выдаліць адрас электроннай пошты, злучаны з вашым уліковым запісам, пакіньце поле новага адраса электроннай пошты пустым пры адпраўцы формы.",
"changeemail-passwordrequired": "Вам трэба будзе ўвесці свой пароль, каб пацвердзіць гэта змяненне.",
"userpage-userdoesnotexist": "Рахунак удзельніка \"<nowiki>$1</nowiki>\" не зарэгістраваны. Праверце, ці вы жадаеце стварыць або паправіць гэтую старонку.",
"userpage-userdoesnotexist-view": "Уліковы запіс удзельніка \" $1 \"не зарэгістраваны.",
"blocked-notice-logextract": "Гэты карыстальнік у дадзены момант заблакаваны. \n Апошні запіс журнала блакіровак прыводзіцца ніжэй для даведкі:",
- "clearyourcache": "<strong>Заўвага:</strong> Пасля замацоўвання, вам можа спатрэбіцца ачыстка кэшу браўзера, каб убачыць унесеныя змяненні. \n*<strong>Firefox / Safari:</strong> націсніце <em>Reload</em>, утрымліваючы <em>Shift</em>, або націсніце <em>Ctrl-F5</em> ці <em>Ctrl-R</em> (<em>⌘-R</em> на Макінтошах)\n* <strong>Google Chrome</strong>: Націсніце <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> на Mac)\n* <strong>Internet Explorer</strong>: націсніце <em>Refresh</em>, утрымліваючы <em>Ctrl</em>, або націсніце <em>Ctrl-F5</em>\n* <strong>Opera</strong>: увайдзіце ў настройкі карыстальніка (меню <em>Tools</em>, падпункт <em>Preferences</em>), там ачысціце кэш;",
+ "clearyourcache": "<strong>Заўвага:</strong> Пасля замацоўвання, вам можа спатрэбіцца ачыстка кэшу браўзера, каб убачыць унесеныя змяненні. \n*<strong>Firefox / Safari:</strong> націсніце <em>Reload</em>, утрымліваючы <em>Shift</em>, або націсніце <em>Ctrl-F5</em> ці <em>Ctrl-R</em> (<em>⌘-R</em> на Макінтошах)\n* <strong>Google Chrome</strong>: Націсніце <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> на Mac)\n* <strong>Internet Explorer</strong>: націсніце <em>Refresh</em>, утрымліваючы <em>Ctrl</em>, або націсніце <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Увайдзіце <em>Menu → Settings</em> (<em>Opera → Preferences</em> на Mac), далей <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
"usercssyoucanpreview": "'''Парада:''' Карыстайцеся кнопкай \"''{{int:showpreview}}''\" для выпрабоўвання новага коду CSS ''перад тым'', як яго запісваць.",
"userjsyoucanpreview": "'''Парада:''' Карыстайцеся кнопкай \"''{{int:showpreview}}''\" для выпрабоўвання новага коду JS ''перад тым'', як яго запісваць.",
"usercsspreview": "'''Памятайце, што гэта толькі папярэдні паказ вашага ўласнага CSS. Праўкі яшчэ не замацаваныя!'''",
"content-model-css": "CSS",
"content-json-empty-object": "Пусты аб'ект",
"content-json-empty-array": "Пусты масіў",
+ "deprecated-self-close-category": "Старонкі з недапушчальнымі самазакрытымі HTML-тэгамі",
"duplicate-args-warning": "<strong>Увага:</strong> [[:$1]] выклікае [[:$2]] з больш чым адным значэннем для параметра \"$3\". Толькі апошняе з пададзеных значэнняў будзе ўжытае.",
"duplicate-args-category": "Старонкі, якія выкарыстоўваюць задубляваныя параметры ў шаблонах",
"duplicate-args-category-desc": "Старонка ўтрымлівае шаблоны з задубляванымі параметрамі, напрыклад, <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> або <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"uploadstash-badtoken": "Не атрымалася выканаць названыя дзеянні. Магчыма, скончыўся тэрмін дзеяння вашага жэтона бяспекі. Паспрабуйце яшчэ раз.",
"uploadstash-errclear": "Ачыстка файлаў не ўдалася",
"uploadstash-refresh": "Абнавіць спіс файлаў",
+ "uploadstash-thumbnail": "паказаць мініяцюру",
"invalid-chunk-offset": "Недапушчальнае зрушэнне фрагмента",
"img-auth-accessdenied": "Доступ забаронены",
"img-auth-nopathinfo": "Адсутнічае PATH_INFO.\nВаш сервер не настроены на перадачу гэтых звестак.\nМагчыма, ён на аснове CGI і не падтрымлівае img_auth.\nГл. https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
"rollback-success": "Адкочаны праўкі $1; вернута апошняя версія $2.",
"sessionfailure-title": "Памылка сеансу",
"sessionfailure": "Магчыма, ёсць праблемы з вашым сеансам працы ў сістэме. Таму вам было адмоўлена ў выкананні дзеяння, каб засцерагчыся ад захопу сеанса.\n\nВярніцеся на папярэднюю старонку, перазагрузіце яе і тады паспрабуйце зноў.",
+ "changecontentmodel": "Змяніць мадэль змесціва старонкі",
"changecontentmodel-legend": "Змяніць мадэль змесціва",
"changecontentmodel-title-label": "Назва старонкі",
"changecontentmodel-model-label": "Новая мадэль змесціва",
"changecontentmodel-reason-label": "Прычына:",
"changecontentmodel-submit": "Змяніць",
+ "changecontentmodel-success-title": "Мадэль змесціва была зменена",
+ "changecontentmodel-emptymodels-title": "Няма даступных мадэляў змесціва",
"logentry-contentmodel-change-revertlink": "адкаціць",
"logentry-contentmodel-change-revert": "адкат",
"protectlogpage": "Журнал аховы",
"tog-ccmeonemails": "Pošalji mi kopije e-pošte koju pošaljem drugim korisnicima",
"tog-diffonly": "Ne prikazuj sadržaj stranice ispod razlika",
"tog-showhiddencats": "Prikaži skrivene kategorije",
- "tog-norollbackdiff": "Izostavi razliku nakon vraćanja",
+ "tog-norollbackdiff": "Ne prikazuj razliku nakon izvršenog vraćanja",
"tog-useeditwarning": "Upozori me kad napuštam stranicu za izmjene bez sačuvanih promjena",
"tog-prefershttps": "Uvijek koristi sigurnu konekciju kada sam prijavljen.",
"underline-always": "Uvijek",
"revdelete-unsuppress": "Ukloni ograničenja na vraćenim revizijama",
"revdelete-log": "Razlog:",
"revdelete-submit": "Primijeni na odabrane {{PLURAL:$1|reviziju|revizije}}",
- "revdelete-success": "'''Vidljivost revizije uspješno ažurirana.'''",
+ "revdelete-success": "'''Vidljivost izmjene je ažurirana.'''",
"revdelete-failure": "'''Vidljivost revizije nije mogla biti ažurirana:'''\n$1",
"logdelete-success": "'''Vidljivost evidencije uspješno postavljena.'''",
"logdelete-failure": "'''Zapisnik vidljivosti nije mogao biti postavljen:'''\n$1",
"rightslogtext": "Ovo je zapisnik promjena korisničkih prava.",
"action-read": "čitate ovu stranicu",
"action-edit": "uređujete ovu stranicu",
- "action-createpage": "napravite stranicu",
- "action-createtalk": "kreirate stranice za razgovor",
+ "action-createpage": "napravite ovu stranicu",
+ "action-createtalk": "pravite stranice za razgovor",
"action-createaccount": "napravite ovaj korisnički račun",
"action-history": "gledate historiju ove stranice",
"action-minoredit": "da označite ovu izmjenu kao malu",
"action-viewmyprivateinfo": "pogledajte svoje privatne informacije",
"action-editmyprivateinfo": "uredite svoje privatne podatke",
"action-editcontentmodel": "uredi model sadržaja stranice",
- "action-managechangetags": "napravite i uklonite oznake iz baze podataka",
+ "action-managechangetags": "pravite i (de)aktivirate oznake",
"action-applychangetags": "dodate oznake uz vaše izmjene",
"action-changetags": "dodate ili uklonite razne oznake na pojedinačnim verzijama i unosima u zapisnicima",
"nchanges": "$1 {{PLURAL:$1|promjena|promjene|promjena}}",
"nocookieslogin": "{{SITENAME}} utilitza galetes per a enregistrar usuaris. Teniu les galetes desactivades. Activeu-les i torneu a provar.",
"nocookiesfornew": "No s'ha creat el compte d'usuari, ja que no es podia confirmar el seu origen.\nVerifiqueu que teniu habilitades les galetes al vostre navegador, torneu a carregar aquesta pàgina i intenteu-lo de nou.",
"nocookiesforlogin": "{{int:nocookieslogin}}",
+ "createacct-loginerror": "El vostre compte ha estat creat correctament, però la vostra sessió podria no iniciar-se automàticament. Si us plau, realitzeu l'inici de [[Special:UserLogin|sessió manual]].",
"noname": "No heu especificat un nom vàlid d'usuari.",
"loginsuccesstitle": "Sessió iniciada",
"loginsuccess": "Heu iniciat la sessió a {{SITENAME}} com a «$1».",
"botpasswords-created-title": "S'ha creat la contrasenya del bot",
"botpasswords-created-body": "S'ha creat la contrasenya per al bot «$1» de l'usuari «$2».",
"botpasswords-updated-title": "Contrasenya de bot actualitzada",
+ "botpasswords-deleted-title": "S'ha eliminat la contrasenya del bot",
+ "botpasswords-deleted-body": "La contrasenya del bot \"$1\", pertanyent a l'usuari \"$2\", ha estat eliminada.",
+ "botpasswords-newpassword": "La nova contrasenya per a iniciar sessió amb <strong>$1</strong> és <strong>$2</strong>. Si us plau, guardeu-la de cara al futur.",
+ "botpasswords-no-provider": "BotPasswordsSessionProvider no està disponible.",
+ "botpasswords-restriction-failed": "Les restriccions de contrasenyes de bots impedeixen aquest inici de sessió.",
"botpasswords-not-exist": "L'usuari «$1» no té una contrasenya de bot anomenada «$2».",
"resetpass_forbidden": "No poden canviar-se les contrasenyes",
"resetpass_forbidden-reason": "Les contrasenyes no es poden canviar: $1",
"passwordreset-emailtext-user": "L'usuari $1 de {{SITENAME}} ha demanat una reinicialització de la vostra contrasenya per al projecte {{SITENAME}} ($4). {{PLURAL:$3|El següent compte d'usuari està associat|Els següents comptes d'usuari estan associats}} amb aquesta adreça de correu electrònic:\n\n$2\n\n{{PLURAL:$3|Aquesta contrasenya temporal caducarà|Aquestes contrasenyes temporals caducaran}} en {{PLURAL:$5|un dia|$5 dies}}.\nHauríeu d'entrar ara per fixar una nova contrasenya. Si algú que no sou vós és qui ha fet aquesta petició o si heu recordat la contrasenya original i ja no la voleu canviar, podeu ignorar aquest missatge i seguir utilitzant la vostra antiga contrasenya.",
"passwordreset-emailelement": "Nom d'usuari: \n$1\n\nContrasenya temporal: \n$2",
"passwordreset-emailsentemail": "Si aquesta adreça electrònica està associada al vostre compte, s’enviarà un missatge de restabliment de contrasenya.",
+ "passwordreset-emailsentusername": "Si existeix una adreça electrònica associada a aquest nom d'usuari, s’hi enviarà un missatge de reestabliment de contrasenya.",
"passwordreset-emailsent-capture": "S'ha enviat un correu electrònic de reinicialització de contrasenya, tal com es mostra a continuació.",
"passwordreset-emailerror-capture": "S'ha generat un correu electrònic de renovació de contrasenya, que es mostra a continuació, però ha fallat l'enviament a {{GENDER:$2:l'usuari|la usuària}}: $1",
"passwordreset-emailsent-capture2": "{{PLURAL:$1|S'ha enviat el correu|S'han enviat els correus}} de restabliment de {{PLURAL:$1|contrasenya|contrasenyes}}. A continuació es mostra {{PLURAL:$1|l'usuari i contrasenya|la llista d'usuaris i contrasenyes}}.",
"passwordreset-invalideamil": "Adreça de correu electrònic no vàlida",
+ "passwordreset-nodata": "No s'ha proporcionat cap nom d'usuari ni adreça electrònica",
"changeemail": "Canvia o elimina l’adreça electrònica",
"changeemail-header": "Empleneu aquest formulari per canviar la vostra adreça electrònica. Si voleu eliminar qualssevol associacions d’adreces electròniques del vostre compte, deixeu en blanc el camp i envieu el formulari.",
"changeemail-passwordrequired": "Cal que introduïu la vostra contrasenya per confirmar el canvi.",
"right-override-export-depth": "Exportar pàgines incloent aquelles enllaçades fins a una fondària de 5",
"right-sendemail": "Enviar missatges de correu electrònic a altres usuaris",
"right-passwordreset": "Veure les sol·licituds de restabliment de contrasenya per correu electrònic",
- "right-managechangetags": "Crear i suprimir [[Special:Tags|etiquetes]] des de la base de dades",
+ "right-managechangetags": "Crear, activar i desactivar [[Special:Tags|etiquetes]]",
"right-applychangetags": "Aplica les [[Special:Tags|etiquetes]] juntament amb els canvis propis",
"right-changetags": "Afegeix i suprimeix [[Special:Tags|etiquetes]] en revisions individuals i entrades de registre",
+ "right-deletechangetags": "Suprimir [[Special:Tags|etiquetes]] des de la base de dades",
"grant-group-page-interaction": "Interacció amb pàgines",
"grant-group-file-interaction": "Interacció amb fitxes multimèdia",
"grant-group-watchlist-interaction": "Interacció amb la vostra llista de seguiment",
"grant-createeditmovepage": "Crea, modifica i reanomena pàgines",
"grant-delete": "Suprimeix pàgines, revisions i entrades de registre",
"grant-editinterface": "Modifica l'espai de noms MediaWiki i els CSS/JavaScript d'usuari",
+ "grant-editmyoptions": "Editeu les vostres preferències d'usuari",
"grant-editmywatchlist": "Modifica la llista de seguiment",
"grant-editpage": "Modifica les pàgines existents",
"grant-editprotected": "Modifica pàgines protegides",
"grant-highvolume": "Edició d'alt volum",
"grant-oversight": "Amaga usuaris i suprimeix revisions",
+ "grant-patrol": "Patrulla els canvis de les pàgines",
"grant-protect": "Protecció i desprotecció de pàgines",
"grant-rollback": "Reversió de canvis en pàgines",
"grant-sendemail": "Enviament de correus a altres usuaris",
"rightslogtext": "Aquest és un registre de canvis dels permisos d'usuari.",
"action-read": "llegir aquesta pàgina",
"action-edit": "modificar aquesta pàgina",
- "action-createpage": "crear pàgines",
- "action-createtalk": "crear pàgines de discussió",
+ "action-createpage": "crear aquesta pàgina",
+ "action-createtalk": "crear aquesta pàgina de discussió",
"action-createaccount": "crear aquest compte d'usuari",
"action-autocreateaccount": "crea automàtica aquest compte d'usuari extern",
"action-history": "mostra l'historial de la pàgina",
"action-managechangetags": "crear i (des)activar etiquetes",
"action-applychangetags": "aplica les etiquetes juntament amb els canvis",
"action-changetags": "afegeix i elimina etiquetes a les revisions i les entrades de registre individuals",
+ "action-deletechangetags": "eliminar etiquetes des de la base de dades",
"nchanges": "$1 {{PLURAL:$1|canvi|canvis}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|des de la darrera visita}}",
"enhancedrc-history": "historial",
"upload-too-many-redirects": "L'URL conté massa redireccions",
"upload-http-error": "Ha ocorregut un error HTTP: $1",
"upload-copy-upload-invalid-domain": "Les càrregues de còpia no són disponibles des d'aquest domini.",
+ "upload-dialog-disabled": "La càrrega de fitxers utilitzant aquest quadre de diàleg està desactivada en aquest wiki.",
"upload-dialog-title": "Carrega un fitxer",
"upload-dialog-button-cancel": "Cancel·la",
"upload-dialog-button-done": "Fet",
"upload-form-label-infoform-name": "Nom",
"upload-form-label-infoform-name-tooltip": "Un únic títol descriptiu pel fitxer, que servirà com a nom del fitxer. Podeu utilitzar llenguatge senzill amb espais. No hi inclogueu l'extensió del fitxer.",
"upload-form-label-infoform-description": "Descripció",
+ "upload-form-label-infoform-description-tooltip": "Descriviu breument tot el que sigui notable d'aquesta obra.\nSi es tracta d'una fotografia, esmenteu els principals elements que hi ha representats o bé l'esdeveniment o lloc en qüestió.",
"upload-form-label-usage-title": "Ús",
"upload-form-label-usage-filename": "Nom del fitxer",
"upload-form-label-own-work": "Això és el meu propi treball",
"upload-form-label-infoform-categories": "Categories",
"upload-form-label-infoform-date": "Data",
+ "upload-form-label-own-work-message-generic-local": "Confirmo que estic carregant aquest fitxer seguint les condicions d'ús i polítiques de concessió de llicències a {{SITENAME}}.",
+ "upload-form-label-not-own-work-message-generic-local": "Si no podeu carregar aquest fitxer sota les polítiques de {{SITENAME}}, si us plau, tanqueu aquest quadre de diàleg i proveu amb un altre mètode.",
"upload-form-label-not-own-work-local-generic-local": "També podeu provar [[Special:Upload|la pàgina de càrrega per defecte]].",
"upload-form-label-own-work-message-generic-foreign": "Entenc que esteu carregant el fitxer en un repositori compartit. Confirmo que ho estic fent seguint les condicions d'ús i les polítiques de llicenciament que s'hi apliquen.",
+ "upload-form-label-not-own-work-message-generic-foreign": "Si no podeu carregar aquest fitxer sota les polítiques del repositori lliure, si us plau, tanqueu aquest quadre de diàleg i proveu amb un altre mètode.",
+ "upload-form-label-not-own-work-local-generic-foreign": "També us recomanem que utilitzeu [[Special:Upload|la pàgina de càrrega a {{SITENAME}}]] si aquest fitxer es pot carregar seguint les seves polítiques.",
"backend-fail-stream": "No s'ha pogut transmetre el fitxer $1.",
"backend-fail-backup": "No s'ha pogut fer una còpia de seguretat del fitxer $1.",
"backend-fail-notexists": "El fitxer $1 no existeix.",
"uploadstash-summary": "Aquesta pàgina permet accedir als fitxers que han estat carregats (o estan en procés de ser carregats), però que encara no s'han publicat al wiki. Aquests fitxers només són visibles per a l'usuari que els ha carregats.",
"uploadstash-clear": "Esborra els fitxers en reserva",
"uploadstash-nofiles": "No teniu fitxers en reserva",
- "uploadstash-badtoken": "No s'ha pogut realitzar l'acció, possiblement perquè han caducat la vostra identificació. Intenteu-ho de nou.",
+ "uploadstash-badtoken": "No s'ha pogut realitzar l'acció, possiblement perquè ha caducat la vostra identificació. Intenteu-ho de nou.",
"uploadstash-errclear": "S'estan netejant els fitxers que han fallat.",
"uploadstash-refresh": "Actualitza la llista de fitxers",
"uploadstash-thumbnail": "mostra una miniatura",
"sp-contributions-username": "Adreça IP o nom d'usuari:",
"sp-contributions-toponly": "Mostra només les darreres revisions",
"sp-contributions-newonly": "Mostra només modificacions que són creacions de pàgina",
+ "sp-contributions-hideminor": "Amaga les edicions menors",
"sp-contributions-submit": "Cerca",
"whatlinkshere": "Què hi enllaça",
"whatlinkshere-title": "Pàgines que enllacen amb «$1»",
"tooltip-ca-nstab-category": "Vegeu la pàgina de la categoria",
"tooltip-minoredit": "Marca-ho com una modificació menor",
"tooltip-save": "Deseu els canvis",
+ "tooltip-publish": "Publica els canvis",
"tooltip-preview": "Reviseu els vostres canvis, feu-ho abans de desar res!",
"tooltip-diff": "Mostra quins canvis heu fet al text",
"tooltip-compareselectedversions": "Vegeu les diferències entre les dues versions seleccionades d'aquesta pàgina.",
"pageinfo-category-files": "Nombre d'arxius",
"markaspatrolleddiff": "Marca com a supervisat",
"markaspatrolledtext": "Marca la pàgina com a supervisada",
+ "markaspatrolledtext-file": "Marc la versió del fitxer com patrullada",
"markedaspatrolled": "Marca com a supervisat",
"markedaspatrolledtext": "S'ha marcat com a patrullada la revisió seleccionada de [[:$1]].",
"rcpatroldisabled": "S'ha inhabilitat la supervisió dels canvis recents",
"log-action-filter-delete-restore": "Restauració de pàgines",
"log-action-filter-delete-event": "Registre de supressió",
"log-action-filter-delete-revision": "Supressió de revisions",
+ "log-action-filter-managetags-create": "Creació de l'etiqueta",
+ "log-action-filter-managetags-delete": "Supressió de l'etiqueta",
+ "log-action-filter-managetags-activate": "Activació de l'etiqueta",
+ "log-action-filter-newusers-autocreate": "Creació automàtica",
"log-action-filter-patrol-patrol": "Patrullatge manual",
"log-action-filter-patrol-autopatrol": "Patrullatge automàtic",
"log-action-filter-protect-protect": "Protecció",
"password-change-forbidden": "Хьан йиш яц хӀокху вики чохь пароль хийца.",
"externaldberror": "Арахьара хаамийн базан гӀоьнца аутентификаци ечу хенахь гӀалат даьлла я хьа дӀаяздаран хийцам бан бакъонаш яц.",
"login": "Системин довзийтар",
+ "login-security": "Хьой хилар бакъде",
"nav-login-createaccount": "Довзийтар / дӀаяздар кхоллар",
"userlogin": "Довзийтар я декъашхочун дӀаяздар кхоллар",
"userloginnocreate": "Довзийта",
"userlogin-resetpassword-link": "Пароль кхоссар?",
"userlogin-helplink2": "Системин чудахаран гӀодар",
"userlogin-loggedin": "Хьо {{GENDER:$1|$1}} цӀарца чохь ву/ю.\nЛахара форманца кхин цӀарца чугӀо.",
+ "userlogin-reauth": "{{GENDER:$1|$1}} хьой хилар бакъдан системин чугӀо.",
"userlogin-createanother": "Кхолла декъашхочун кхин дӀаяздар",
"createacct-emailrequired": "Электронан поштан адрес",
"createacct-emailoptional": "Электронан поштан адрес (ца яздича мега)",
"resetpass-wrong-oldpass": "Нийса йоцу я хана йолу карара пароль. Ахьа кхиамца пароль хийцина я керла хана йолу пароль ехна хила там бу.",
"resetpass-recycled": "Дехар до, хӀинца йолччул башха пароль хӀотта йе.",
"resetpass-temp-emailed": "Ахьа чугӀош язйина цкъачунна электронан поште яийтина пароль. Чудахар чекхдалийта язъян еза керла пароль.",
- "resetpass-temp-password": "ЦÑ\85Ñ\8cан Ñ\85ана пароль:",
+ "resetpass-temp-password": "Ð¥ана пароль:",
"resetpass-abort-generic": "Пароль хийцар дӀахедар",
"resetpass-expired": "Хьан паролан хан чекхелла. Дехар до керла пароль хӀоттаяр.",
"resetpass-expired-soft": "Хьа паролан хан чекхелла. Дехар до, харжа керла пароль я тӀетаӀе «{{int:authprovider-resetpass-skip-label}}», и тӀехо хица.",
"passwordreset-emailtitle": "{{SITENAME}}: декъашхочун дӀаяздарх лаьцна хаам",
"passwordreset-emailtext-ip": "{{SITENAME}} ($4) проектехь цхьам я ахьа хӀокху IP-адрес $1 тӀера хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
"passwordreset-emailtext-user": "{{SITENAME}} ($4) проектера декъашхочо $1 хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
- "passwordreset-emailelement": "Ð\94екÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ñ\86Ó\80е: \n$1\n\nХанна йолÑ\83 паÑ\80олÑ\8c: \n$2",
+ "passwordreset-emailelement": "Декъашхочун цӀе: \n$1\n\nХанна пароль: \n$2",
"passwordreset-emailsentemail": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш.",
"passwordreset-emailsent-capture": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш. \nцуна йозане хьажа йиш ю лахахь.",
"passwordreset-emailerror-capture": "Пароль кхоссаран хаам чохь болуш электронан кехат кхоьллина, цуна йоза хьажа йиш ю лахахь, амма иза {{GENDER:$2|декъашхочунга}} дӀадахьийта тар цаделира бахьнехь: $1",
"mostlinkedtemplates": "Массарел дуккха а лелайо агӀонаш",
"mostcategories": "Дуккха категореш тӀе тоьхна йолу агӀонаш",
"mostimages": "Массарел дуккха лелайо файлаш",
- "mostinterwikis": "Ð\94Ñ\83ккÑ\85а Ñ\8eкÑ\8aаÑ\80вики хьажоргаш тӀе тоьхна йолу агӀонаш",
+ "mostinterwikis": "Ð\94Ñ\83ккÑ\85а Ñ\8eкÑ\8aаÑ\80викаÑ\88-хьажоргаш тӀе тоьхна йолу агӀонаш",
"mostrevisions": "Сих сиха нисйина йолу агӀонаш",
"prefixindex": "Хьалха агӀонийн цӀерш хӀотто еза",
"prefixindex-namespace": "Хьалха агӀонийн цӀерш хӀотто еза («{{ns:$1}}»)",
"activeusers-hidebots": "Къайлабаха боташ",
"activeusers-hidesysops": "Къайлабаха куьйгалхой",
"activeusers-noresult": "Декъашхой цакарий.",
+ "activeusers-submit": "Гайта жигара декъашхой",
"listgrouprights": "Декъашхойн тобанийн бакъонаш",
"listgrouprights-summary": "Лахахьа гойту декъашхошна яла йиш йолу бакъонаш. [[{{MediaWiki:Listgrouprights-helppage}}|хьажа кхин хааме]].",
"listgrouprights-key": "Легенда:\n* <span class=\"listgrouprights-granted\">Ела бакъонаш</span>\n* <span class=\"listgrouprights-revoked\">ДӀаяьхна бакъонаш</span>",
"special-characters-title-minus": "хьаьрк минус",
"mw-widgets-titleinput-description-redirect": "ДӀасхьажорг $1 тӀе",
"sessionprovider-generic": "$1 сесси",
- "randomrootpage": "Цахууш нисъелла ораман агӀо"
+ "randomrootpage": "Цахууш нисъелла ораман агӀо",
+ "authmanager-provider-temporarypassword": "Ханна пароль",
+ "changecredentials": "Декъашхочун дӀаяздаран хийцам",
+ "removecredentials": "ДӀадаха декъашхойн дӀаяздарш",
+ "removecredentials-submit": "ДӀадаха декъашхойн дӀаяздарш",
+ "credentialsform-provider": "ДӀаяздарийн тайпа:",
+ "credentialsform-account": "Декъашхочун цӀе:"
}
"querypage-disabled": "Tato speciální stránka je z výkonnostních důvodů vypnuta.",
"apihelp": "Nápověda k API",
"apihelp-no-such-module": "Modul „$1“ nebyl nalezen.",
- "apisandbox": "API pískoviště",
- "apisandbox-jsonly": "Pro použití API pískoviště je nutný JavaScript.",
+ "apisandbox": "Pískoviště API",
+ "apisandbox-jsonly": "Pro použití pískoviště API je nutný JavaScript.",
"apisandbox-api-disabled": "API je na tomto webu vypnuto.",
"apisandbox-intro": "Pomocí této stránky můžete experimentovat s <strong>webovými službami MediaWiki API</strong>.\nPodrobnosti využití API najdete v [[mw:API:Main page|jeho dokumentaci]]. Příklad: [https://www.mediawiki.org/wiki/API#A_simple_example získání obsahu Hlavní stránky]. Další příklady uvidíte vybráním parametru action.\n\nUvědomte si, že přestože jste na pískovišti, mohou akce provedené na této stránce wiki změnit.",
"apisandbox-fullscreen": "Rozbalit panel",
"listgrouprights-namespaceprotection-header": "Omezení jmenných prostorů",
"listgrouprights-namespaceprotection-namespace": "Jmenný prostor",
"listgrouprights-namespaceprotection-restrictedto": "Oprávnění umožňující uživateli editovat",
- "listgrants": "Svolení",
+ "listgrants": "Skupiny oprávnění",
"listgrants-summary": "Následující seznam obsahuje svolení a jim odpovídající přístup k uživatelským právům. Uživatelé mohou aplikace autorizovat k využití jejich účtu, ale s omezenými právy na základě svolení, která uživatel aplikaci poskytl. Aplikace konající jménem uživatele ale nemůže využít oprávnění, která uživatel nemá.\nK jednotlivým oprávněním mohou existovat [[{{MediaWiki:Listgrouprights-helppage}}|doplňující informace]].",
- "listgrants-grant": "Svolení",
+ "listgrants-grant": "Skupina oprávnění",
"listgrants-rights": "Oprávnění",
"trackingcategories": "Sledovací kategorie",
"trackingcategories-summary": "Tato stránka obsahuje seznam sledovacích kategorií, které automaticky přidává software MediaWiki. Jejich jména lze změnit úpravou příslušných systémových hlášení ve jmenném prostoru {{ns:8}}.",
"Calak",
"Macofe",
"Matma Rex",
- "Kumkumuk"
+ "Kumkumuk",
+ "Gırd"
]
},
"tog-underline": "Bınê gırey de xete bance:",
"april": "Nisane",
"may_long": "Gulane",
"june": "Heziran",
- "july": "Temuze",
+ "july": "Temuz",
"august": "Tebaxe",
"september": "Keşkelun",
- "october": "Tışrino Verên",
- "november": "Tışrino Peyên",
+ "october": "Cetan",
+ "november": "Kelverdan",
"december": "Kanun",
"january-gen": "Çele",
"february-gen": "Sıbate",
"april-gen": "Nisane",
"may-gen": "Gulane",
"june-gen": "Heziran",
- "july-gen": "Temuze",
+ "july-gen": "Temuz",
"august-gen": "Tebaxe",
"september-gen": "Keşkelun",
- "october-gen": "Tışrino Verên",
- "november-gen": "Tışrino Peyên",
+ "october-gen": "Cetan",
+ "november-gen": "Kelverdan",
"december-gen": "Kanun",
"jan": "Çel",
"feb": "Sbt",
"april-date": "Nisane $1",
"may-date": "Gulane $1",
"june-date": "{{PLURAL:$1|1=1ᵉ|$1}} Heziran",
- "july-date": "Temuze $1",
+ "july-date": "Temuz $1",
"august-date": "Tebaxe $1",
"september-date": "Keşkelun $1",
- "october-date": "Tışrino Verên $1",
- "november-date": "Tışrino Peyên $1",
+ "october-date": "$1 Cetan",
+ "november-date": "$1 Kelverdan",
"december-date": "Kanun $1",
"period-am": "AM",
"period-pm": "PM",
"morenotlisted": "Vêşi lista nêbi...",
"mypage": "Pele",
"mytalk": "Mesac",
- "anontalk": "Werênayış",
+ "anontalk": "Mışewre",
"navigation": "Pusula",
"and": " u",
"qbfind": "Bıvêne",
"faq": "PZP",
"faqpage": "Project: PZP",
"actions": "Hereketi",
- "namespaces": "Heruna naman",
+ "namespaces": "Heruna nameyan",
"variants": "Varyanti",
"navigation-heading": "Menuyê navigasyoni",
"errorpagetitle": "Xeta",
"search": "Cı geyre",
"searchbutton": "Cı geyre",
"go": "Şo",
- "searcharticle": "So",
+ "searcharticle": "Şo",
"history": "Tarixê pele",
"history_short": "Tarix",
"updatedmarker": "cıkewtena mına peyêne ra dıme biyo rocane",
"view-foreign": "$1'i bıvin",
"edit": "Bıvurne",
"edit-local": "Şınasnayışê lokali bıvurne",
- "create": "Vıraze",
+ "create": "Bıvıraz",
"create-local": "Şınasnayışê lokali cı ke",
"editthispage": "Ena pele bıvurne",
"create-this-page": "Na pele bınuse",
"unprotectthispage": "Starkerdışe ena peler bıvurne",
"newpage": "Pela newiye",
"talkpage": "Ena pele sero werêne",
- "talkpagelinktext": "werênayış",
+ "talkpagelinktext": "vacenayış",
"specialpage": "Pela xısusiye",
"personaltools": "Hacetê şexsiy",
"articlepage": "Pela zerreki bıvêne",
"redirectedfrom": "($1 ra kırışı yê)",
"redirectpagesub": "Pela berdışi",
"redirectto": "Beno hetê:",
- "lastmodifiedat": "Ena pele tewr peyên roca $2, $1 de biya rocaniye.",
+ "lastmodifiedat": "Ena pele tewr peyên roca $1, seate $2 de biya rocaniye.{{MediaWiki bın}}",
"viewcount": "Ena pele {{PLURAL:$1|rae|$1 rey}} vêniya.",
"protectedpage": "Pela pawıtiye",
"jumpto": "Şo be:",
"actionthrottled": "Kerden peysnaya",
"actionthrottledtext": "Riyê tedbirê anti-spami ra, wextê do kılmek de şıma nê fealiyeti nêşkenê zaf zêde bıkerê, şıma ki no hedi viyarna ra.\nÇend deqey ra tepeya reyna bıcerrebnên.",
"protectedpagetext": "Na per qey nêvuriyayiş ho pawyeno ya zi kerdışe bini.",
- "viewsourcetext": "To şikinay çımey na pele bıvêne u kopya kerê:",
+ "viewsourcetext": "To şikinay çımey na pele bıvêne u kopya kerê:{{MediaWiki Wesiqe malumat}}",
"viewyourtext": "Na pela '''Vurnayışê ke kerdê''' re şıma şenê kopya kerê:",
"protectedinterface": "Na pela qandê nusnerin destegê verri dana u kes xırabin nêqero deye kerda kılit.",
"editinginterface": "'''İqaz:''' Şıma hayo yew pela ke seba nuşteyê meqalanê cayanê bırnayeyan dana, vurnenê.\nVurnayışê na pele karberanê binan rê serpela karberi kena ke bımocno.\nSeba çarnayışi, yardımê [https://translatewiki.net/wiki/Main_Page?setlang=diq translatewiki.net]i ra procêdoşkerdışi rê diqet kerên.",
"remembermypassword": "Parola mı nê cıgeyrayoği de biya xo viri (seba tewr zêde $1 {{PLURAL:$1|roce|rocan}})",
"userlogin-remembermypassword": "Mı biya xo viri",
"userlogin-signwithsecure": "Ebe teqdimkerê asayişın cıkewe",
+ "cannotloginnow-title": "Enewke ronıştışo nêabeno",
+ "cannotloginnow-text": "$1 karkerdışa ronıştış akerdış mıkum niyo.",
"yourdomainname": "Nameyê şıma yo meydani",
"password-change-forbidden": "Şıma na wiki de nêşenê parola bıvurnê.",
"externaldberror": "Ya database de xeta esta ya zi heqê şıma çino şıma no hesab bıvurni.",
"login": "Cı kewe",
+ "login-security": "Kamiya xo araşt kerê",
"nav-login-createaccount": "Dekew de / hesab vıraze",
"userlogin": "Cıkewtış / hesab vıraze",
- "userloginnocreate": "Cı kewe",
+ "userloginnocreate": "Dekewtış",
"logout": "Bıveciye",
"userlogout": "Bıveciye",
"notloggedin": "Şıma cıkewtış nêvıraşto",
"nologinlink": "Yew hesab ake",
"createaccount": "Hesab vıraze",
"gotaccount": "Hesabê şıma esto? '''$1'''.",
- "gotaccountlink": "Cı kewe",
+ "gotaccountlink": "Ronıştış ak",
"userlogin-resetlink": "Melumatê cıkewtışi xo vira kerdê?",
"userlogin-resetpassword-link": "Parola xo kerda xo vira?",
"userlogin-helplink2": "Heqa qeydbiyayışi de peşti bıgêrên",
"userlogin-loggedin": "Tı xora namey {{GENDER:$1|$1}} ra kewtê/kewtay cı.\nFormê cêrêni bıgureyne ke namey karberio bin ra cı kewê.",
+ "userlogin-reauth": "Eger ke {{GENDER:$1|$1}} şımayê se xo araşt kerdışirê fına ronıştış akerê.",
"userlogin-createanother": "Zewbi hesab vıraz",
"createacct-emailrequired": "Adresa e-postey",
"createacct-emailoptional": "Adresa e-postey (mecburi niya)",
"loginlanguagelabel": "Zıwan: $1",
"suspicious-userlogout": "Waştişê tu ya veciyayişi kebul nibiya cunki ihtimal o ke waştiş yew browser ya zi proksiyê heripiyaye ra ameya.",
"createacct-another-realname-tip": "Nameyo raştıkên keyfiyo.\nŞıma nameyo xoyo raştıkên ke bımocnê, seba iştırakanê karberi be ney ra istıfade beno.",
- "pt-login": "Cı kewe",
- "pt-login-button": "Cı kewe",
+ "pt-login": "Cıkewtış",
+ "pt-login-button": "Ronıştış ak",
"pt-login-continue-button": "Cıkewten rê dewam ke",
"pt-createaccount": "Hesab vıraze",
"pt-userlogout": "Veciyayış",
"nosuchsectiontitle": "Eno qısım çıniyo",
"nosuchsectiontext": "To waşt ke yew qısım kewê, oyo ke çıniyo.\nHeta ke werte de qısım çıniyo, ca çıniyo ke tı raştkerdışê xo qeyd bıkerê.",
"loginreqtitle": "Cı kewtış icab keno",
- "loginreqlink": "cı kewe",
+ "loginreqlink": "ronıştış ak",
"loginreqpagetext": "Eka ti wazeno peleyanê bini bivini, ti gani $1.",
"accmailtitle": "Paralo şirawiyayo.",
"accmailtext": "[[User talk:$1|$1]] parolayo ke raşt ameyo şırawiyo na adres $2.\n\nQey na hesabê newe parola, cıkewtış dıma şıma eşkeni na qısım de ''[[Special:ChangePassword|parola bıvurn]]'' bıvurni.",
"newarticle": "(Newe)",
"newarticletext": "To yew gıre tıkna be ra yew pela ke hewna çıniya.\nSeba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [$1 pela peşti] ke).\nEke be ğeletine ameya tiya, wa gocega <strong>peyser</strong>i programê xo de bıtıkne.",
"anontalkpagetext": "----''No pel, pel o karbero hesab a nêkerdeyan o, ya zi karbero hesab akerdeyan o labele pê hesabê xo nêkewto de. No sebeb ra ma IP adres şuxulneni û ney IP adresan herkes eşkeno bıvino. Eke şıma qayil niye ina bo xo ri [[Special:CreateAccount|yew hesab bıvıraze]] veyaxut [[Special:UserLogin|hesab akere]].''",
- "noarticletext": "Ena pele de hewna theba çıni yo.\nTı şenê zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|qandê sernameyê ena pele cı geyre]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre],\nya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele vıraze]</span>.",
+ "noarticletext": "Ena pele de hewna theba çıniyo.\nTı şenê zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|qandê sernameyê ena pele cı geyre]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre],\nya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele vıraze]</span>.{{MediaWiki mesaca pera newi}}",
"noarticletext-nopermission": "Ena pele de hewna theba çıniyo.\nTı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê na pele cı geyre]], ya zi <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre]</span>, ema destur çıniyo ke na pele vırazê.",
"missing-revision": "Rewizyonê name dê pela da #$1 \"{{FULLPAGENAME}}\" dı çıniyo.\n\nNo normal de tarix dê pelanê besterneyan dı ena xırabin asena.\nDetayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} tiya dı] aseno.",
"userpage-userdoesnotexist": "Hesabê karberi \"<nowiki>$1</nowiki>\" qeyd nêbiyo.\nKerem ke, tı ke wazenay na pele bafernê/bıvurnê, qontrol ke.",
"mergelog": "Qeydé zew kerdışi",
"revertmerge": "Abırnê",
"mergelogpagetext": "Cêr de yew liste esta ke mocnena ra, raya tewr peyêne kamci pela tarixi be a bine ra şanawa pê.",
- "history-title": "Revizyona pela \"$1\"",
+ "history-title": "Tarixê çımraviyarnayışê \"$1\"",
"difference-title": "Pela \"$1\" ferqê çım ra viyarnayışan",
"difference-title-multipage": "Ferkê pelan dê \"$1\" u \"$2\"",
"difference-multipage": "(Ferqê pelan)",
- "lineno": "Xeta $1i:",
+ "lineno": "Xeta $1:",
"compareselectedversions": "Rewizyonanê weçineyan pêver ke",
"showhideselectedversions": "Revizyonanê weçinıtan bımocne/bınımne",
"editundo": "peyser bıgê",
"right-passwordreset": "E-postayanê parola reset kerdışa vineno",
"right-managechangetags": "[[Special:Tags|Etiketi]] vıraz u aktiv (me)ke",
"right-applychangetags": "[[Special:Tags|Etiketa]] vurnayışana piya dezge fi.",
+ "grant-group-page-interaction": "Peran na tesiri",
+ "grant-group-file-interaction": "Medya na tesiri",
+ "grant-group-watchlist-interaction": "Lista da xoya tesir",
"grant-group-email": "e-poste bırışe",
+ "grant-group-high-volume": "Performansa aktiviteya vengê berzi",
"grant-group-customization": "Şexsi kerdış u tercihi",
+ "grant-group-administration": "Performans hereketa idarey",
"grant-group-other": "Enwayi babet aktivitey",
"grant-blockusers": "Karberi men ke u meni wedarne",
"grant-createaccount": "Hesab vıraze",
"grant-createeditmovepage": "Perer vırazê, bıvurnê u berê",
+ "grant-delete": "Besternayış, revizyon u qeydé peran",
+ "grant-editinterface": "Canameyê MediaWiki u CSS/javScripta karberi bıvurnê",
+ "grant-editmycssjs": "CSS/JavaScripta karberiya xo bıvurnê",
"grant-editmyoptions": "Tercihanê xo bıvurne",
"grant-editmywatchlist": "Listeyseyran de xo bıvırne",
"grant-editpage": "Peran bıvurnê",
"grant-editprotected": "Srar bıyaye peran bıvurnê",
+ "grant-highvolume": "Vengê berzi dayış",
+ "grant-oversight": "Karberan u ploğyayê revizyona bınımn",
"grant-patrol": "Perer de vurnayışa çımra ravyarn",
+ "grant-protect": "Şeveknayış u wedarıtışê şeveknayışê pelan",
+ "grant-uploadfile": "Dosyaya newi bar ke",
+ "grant-basic": "Heqê basiti",
+ "grant-viewdeleted": "Besteryaya peran u dosyaya bıasne",
+ "grant-viewmywatchlist": "Lista serykerdışê xo bıvêne",
"newuserlogpage": "Cıkewtışê hesabvıraştışi",
"newuserlogpagetext": "Ena log de viraştişê karberî esta.",
"rightslog": "Qeydê heqanê karberi",
"rightslogtext": "Ena listeyê loganê ke heqqa karbaranî mucneno.",
"action-read": "ena pela wanayış",
"action-edit": "ena pela bıvurnê",
- "action-createpage": "pelan vıraze",
+ "action-createpage": "Ena perer bıvıraze",
"action-createtalk": "pelanê werênayışi bıvıraze",
"action-createaccount": "hesabê nê karberi bıvıraze",
"action-minoredit": "nê vurnayışi be qıckek işaret ke",
"enhancedrc-history": "tarix",
"recentchanges": "Vurriyayışê peyêni",
"recentchanges-legend": "Tercihê vurnayışanê peyênan",
- "recentchanges-summary": "wiki sero vurnayışanê peyênan ena perer ra teqib ke.",
+ "recentchanges-summary": "\"Wiki sero vurnayışanê peyênan ena perer ra teqib ke.\"\n{{vp-diq}}",
"recentchanges-noresult": "Goreyê kriteranê kıfşkerdeyan ra qet yew vurnayış nêvêniya.",
"recentchanges-feed-description": "Ena feed dı vurnayişanê tewr peniyan teqip bık.",
"recentchanges-label-newpage": "Enê vurnayışi ra yew pela newiye vıraziye",
"recentchanges-label-bot": "Eno vurnayış terefê yew boti ra vıraziyo",
"recentchanges-label-unpatrolled": "Eno vurnayış hewna dewriya nêbiyo",
"recentchanges-label-plusminus": "Ebadê pele de bazê bayti de vayeyê cı",
- "recentchanges-legend-heading": "<strong>Kıtabek:</strong>",
+ "recentchanges-legend-heading": "<strong>Kıtabekê Vurriyayışê peyêni:</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|Lista pelanê neweyan]] zi bıvêne)",
"recentchanges-legend-plusminus": "''(±123)''",
"recentchanges-submit": "Bıasne",
- "rcnotefrom": "Cêr de <strong>$2</strong> ra nata vurnayışiyê asenê (tewr vêşi <strong>$1</strong> asenê).",
+ "rcnotefrom": "Cêr de <strong>$2</strong> ra nata {{PLURAL:$5|vurnayışiyê}} asenê (tewr vêşi <strong>$1</strong> asenê) <strong>$3, $4</strong>",
"rclistfrom": "$3 $2 ra tepiya vurnayışanê neweyan bımocne",
- "rcshowhideminor": "vurnayışê werdiyi $1",
+ "rcshowhideminor": "vurriyayışanê werdiyan $1",
"rcshowhideminor-show": "Bıasne",
"rcshowhideminor-hide": "Bınımne",
"rcshowhidebots": "botan $1",
"rcshowhidecategorization": "kategorizasyonê pele $1",
"rcshowhidecategorization-show": "Bıasne",
"rcshowhidecategorization-hide": "Bınımne",
- "rclinks": "$2 rocan de $1 vurriyayışanê peyênan bıasne <br />$3",
+ "rclinks": "$2 rocan de $1 vurriyayışanê peyêna bıasne <br />$3",
"diff": "ferq",
"hist": "verên",
"hide": "Bınımne",
"recentchangeslinked-to": "Heruna pela ke yena dayene, vurnayışanê pelanê ke daye ra gırêdayiyê inan bımocne",
"recentchanges-page-added-to-category": "[[:$1]] kerd be kategoriye",
"recentchanges-page-removed-from-category": "[[:$1]] kategoriye ra vet",
+ "autochange-username": "MediaWiki vurnayışo otomatik",
"upload": "Dosya bar ke",
"uploadbtn": "Dosya bar ke",
"reuploaddesc": "Barkerdışi iptal ke u peyser şo formê barkerdışi",
"backend-fail-read": "Na \"$1\" dosya nê wanêna",
"backend-fail-create": "Dosyay $1 nê vırazıyê",
"backend-fail-maxsize": "Dosyay $1 aya nênusneyêna feqet gırdeya cı {{PLURAL:$2|bayta|$2 bayto}}",
- "backend-fail-readonly": "Depo kerdışê \"$1\" enewke salt wanêno.Sebebê cı zi:\"''$2''\"",
+ "backend-fail-readonly": "Depo kerdışê \"$1\" enewke salt wanêno.Sebebê cı zi:<em>$2</em>",
"backend-fail-synced": "Dosyay \" $1 \" miyan de depo kerdışeyda cıdı pê nêtepıştey esta",
"backend-fail-connect": "Depo kerdışê \"$1\" peyni de nêgrêdeya.",
"backend-fail-internal": "Depo kerdışê \"$1\" peyni de ju xırabin vıcyê.",
"uploadstash-badtoken": "Karkerdışê cı nêbı, muhtemelen desture şımayê timarkerdışi zeman do şıma ravêrdo. Fına bıcerbnê.",
"uploadstash-errclear": "Besternayışê dosyayan nêbı",
"uploadstash-refresh": "Listanê dosyayan aneweke",
+ "uploadstash-thumbnail": "Asayışê qıteki bıvêne",
"invalid-chunk-offset": "Ofseto nêravyarde",
"img-auth-accessdenied": "Cıresnayış vındarnayo.",
"img-auth-nopathinfo": "PATH_INFO kemiyo.\nTeqdimkerê şıma seba ravurnayışê nê melumati eyar nêkerdo.\nBeno ke be CGI-bıngeyın bo u img_auth rê desteg nêbeno.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization Selahiyetê resımi bıvêne.",
"license": "Lisans:",
"license-header": "Lisansdayış",
"nolicense": "Theba nêweçineya",
+ "licenses-edit": "Weçenega lisansi bıvurnê",
"license-nopreview": "(verqeydî çin o)",
- "upload_source_url": "(yew URLê raştî, şar rê akerde yo)",
- "upload_source_file": "(komputerê ti de yew dosya)",
+ "upload_source_url": "(to yew ravêrde dosya weçina, şar rê akerde URL yo)",
+ "upload_source_file": "(komputer ra dos yu dosya weçina)",
+ "listfiles-delete": "bestere",
"listfiles-summary": "Na pera bağsiya; heme resima bar biyayeyan mocnena.",
"listfiles_search_for": "Qe nameyê medyayî bigêre:",
+ "listfiles-userdoesnotexist": "Hesabê karberi \"$1\" qeyd nêbiyo.",
"imgfile": "dosya",
"listfiles": "Lista Dosya",
"listfiles_thumb": "Resmo qıckek",
"listfiles-latestversion-yes": "Eya",
"listfiles-latestversion-no": "Nê",
"file-anchor-link": "Dosya",
- "filehist": "Ravêrdê dosya",
+ "filehist": "Tarixê dosya",
"filehist-help": "Seba diyayışê viyarteyê dosya tarixê ke qısımê tarix/zemani derê inan bıtıkne.",
"filehist-deleteall": "pêro bestere",
"filehist-deleteone": "bestere",
"filerevert-legend": "Dosya raçarne",
"filerevert-intro": "Ti ho ena dosyayê '''[[Media:$1|$1]]'''î [$4 versiyonê $3, $2] rê reyna anî.",
"filerevert-comment": "Sebeb:",
- "filerevert-defaultcomment": "Versiyonê $2, $1 rê reyna ard",
+ "filerevert-defaultcomment": "Versiyonê $2, $1 rê reyna ard ($3)",
"filerevert-submit": "Reyna biyere",
"filerevert-success": "'''[[Media:$1|$1]]''' peyser çarna ra [versiyonanê $4, $3, $2].",
"filerevert-badversion": "Vesiyonê lokalê verniyê eno dosya pê ena pulêwext de çin o.",
"unwatchedpages": "Pelanê seyrnibiyeyî",
"listredirects": "Listeya Hetenayışan",
"listduplicatedfiles": "Lista dosyeyanê ke kopyaya cı vêniyena",
+ "listduplicatedfiles-entry": "[[$3|{{PLURAL:$2|kapyay|$2 kopyey}}]] dosya da [[:File:$1|$1]]'i est a",
"unusedtemplates": "Şablonê ke nêguriyenê",
"unusedtemplatestext": "no pel, {{ns:template}} pelê ke pelê binan de nêaseni, ninan keno.",
"unusedtemplateswlh": "linkanê binî",
"randomincategory-invalidcategory": "\"$1\" yew nameyê kategoriya vêrdiye niyo.",
"randomincategory-nopages": "Kategori da [[:Category:$1|$1]] de qet per çıniya.",
"randomincategory-category": "Kategoriye:",
+ "randomincategory-legend": "Kategori ra raştamayi per",
"randomincategory-submit": "Şo",
"randomredirect": "Serçarnayışo rastameye",
"randomredirect-nopages": "Cayê nameyê \"$1\" de serşıkıtışi çıniyê.",
"protectedpages-unknown-performer": "Karbero nêzanaye",
"protectedtitles": "Sernameyê pawıteyi",
"protectedtitlesempty": "pê ney parametreyan sernuşteyê pawite çinê",
+ "protectedtitles-submit": "Sernaman bımocne",
"listusers": "Listeyê Karberan",
"listusers-editsonly": "Teyna karberan bimucne ke ey nuştê",
"listusers-creationsort": "goreyê wextê vıraştışi rêz ker",
"apihelp-no-such-module": "Modulê \"$1\" çıniyo.",
"apisandbox": "API qumdor",
"apisandbox-fullscreen": "Panela hera kerdışi",
+ "apisandbox-unfullscreen": "Pele bımocne",
"apisandbox-submit": "Bıwazê",
"apisandbox-reset": "Bestere",
"apisandbox-retry": "Fına",
"addedwatchtext-short": "Pera $1`i çebyê listeya seyran de şıma",
"removewatch": "Lista seyrkerdışi ra wedare",
"removedwatchtext": "Ena pela \"[[:$1]]\" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].",
+ "removedwatchtext-short": "Pera $1`i listeya seyran de şıma ra wedari yê",
"watch": "Seyr ke",
"watchthispage": "Ena pele seyr ke",
"unwatch": "Teqib meke",
"wlheader-enotif": "E-mail xeber dayiş abiyo.",
"wlheader-showupdated": "ziyaretê şıma ye peyini de vuryayişê peli pê '''nuşteyo qalıni''' mocyayo.",
"wlnote": "$3 saete $4 ra dıme {{PLURAL:$2|yew saete de|'''$2''' saetan de}} {{PLURAL:$1|vurnayışo peyên|vurnayışê '''$1''' peyêni}} cêrderê.",
- "wlshowlast": "Peyni de vurnayışan ra $1 seata u $2 roca bımocnê",
+ "wlshowlast": "Peyni de $1 seata u $2 roca bıasne",
"watchlist-hide": "Bınımne",
"watchlist-submit": "Bıasene",
"wlshowtime": "Periyoda zemani asenayışi:",
- "wlshowhideminor": "vurnayışê werdiyi",
+ "wlshowhideminor": "vurriyayışê werdi",
"wlshowhidebots": "boti",
"wlshowhideliu": "karberê qeydıni",
"wlshowhideanons": "karberê anonimi",
"delete-edit-reasonlist": "Sebebê vurnayışan bıvurne",
"delete-toobig": "no pel, pê $1 {{PLURAL:$1|tene vuriyayiş|tene vuriyayiş}}i wayirê yew tarixo kehen o.\nqey hewna nêşiyayişi wina pelani u {{SITENAME}}nêxerebnayişê keyepeli yew hed niyaya ro.",
"delete-warning-toobig": "no pel wayirê tarixê vurnayiş ê derg o, $1 {{PLURAL:$1|revizyonê|revizyonê}} seri de.\nhewn a kerdışê ıney {{SITENAME}} şuxul bıne gırano;\nbı diqqet dewam kerê.",
+ "deleteprotected": "Şıma nêşenê ena perer esternê, çıkı per starya ya.",
"rollback": "vurnayişan tepiya bıger",
"rollbacklink": "peyser biya",
"rollbacklinkcount": "$1 {{PLURAL:$1|vurnayış|vurnayışi}} peyd gıroti",
"pagesize": "(bitî)",
"restriction-edit": "Bıvurne",
"restriction-move": "Berr",
- "restriction-create": "Vıraze",
+ "restriction-create": "Bıvıraz",
"restriction-upload": "Bar ke",
"restriction-level-sysop": "tam pawiyayo",
"restriction-level-autoconfirmed": "nêm pawiyayo",
"sp-contributions-deleted": "iştırakê karberi esterdi",
"sp-contributions-uploads": "barkerdey",
"sp-contributions-logs": "qeydi",
- "sp-contributions-talk": "werênayış",
+ "sp-contributions-talk": "mışewre",
"sp-contributions-userrights": "idareyê heqanê karberan",
"sp-contributions-blocked-notice": "verniyê no/na karber/e geriyayo/a\nqê referansi qeydê vernigrewtışi cêr de eşkera biyo:",
"sp-contributions-blocked-notice-anon": "Eno adresê IPi bloke biyo.\nCıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:",
"sp-contributions-username": "Adresa IPy ya zi nameyê karberi:",
"sp-contributions-toponly": "Tenya rewizyonanê tewr peyniyan bimocne",
"sp-contributions-submit": "Cı geyre",
- "whatlinkshere": "Pele rê gıreyi",
+ "whatlinkshere": "Linkê tedeestey",
"whatlinkshere-title": "Per da \"$1\" rê perê ke gre danê",
"whatlinkshere-page": "Pele:",
"linkshere": "Ena peleyan grey biya '''[[:$1]]''':",
"whatlinkshere-links": "← gırey",
"whatlinkshere-hideredirs": "Hetenayışê $1",
"whatlinkshere-hidetrans": "Açarnayışê $1",
- "whatlinkshere-hidelinks": "Greyê $1",
+ "whatlinkshere-hidelinks": "Gıreyê $1",
"whatlinkshere-hideimages": "Gıreyê dosya $1",
"whatlinkshere-filters": "Avrêci",
"whatlinkshere-submit": "Şo",
"blocklogtext": "No kuliyatê kılitkerdış u rakerdışê fealiyetê karberano.\nAdresê IP'ya ke otomatikmen kılit biyê lista de çıniya.\nSeba lista karberanê ke heta nıka kılit biyê [[Special:BlockList|lista kılitkerdışê IPy]] bıvinê.",
"unblocklogentry": "$1 ake",
"block-log-flags-anononly": "tenya karberê anonimi",
- "block-log-flags-nocreate": "akerdışê hesabi racneyayo",
+ "block-log-flags-nocreate": "akerdışê hesabi kılit bi",
"block-log-flags-noautoblock": "Oto-wedariye terkneyayo",
- "block-log-flags-noemail": "e-posta biya bloqe",
- "block-log-flags-nousertalk": "Pela verênayişi ke xo nêşeno bıvurno",
+ "block-log-flags-noemail": "e-poste kılit bi",
+ "block-log-flags-nousertalk": "pela werênayışê xo nêşeno ke bıvurno",
"block-log-flags-angry-autoblock": "oto-wedariye amayen aktivo",
"block-log-flags-hiddenname": "nameyê karberi nımteyo",
"range_block_disabled": "Desturê administorî ke viraştişê blokê rangeyî kefiliyo.",
"exif-urgency-low": "($1) Kemiyo",
"exif-urgency-high": "( $1 ) Vêşiyo",
"exif-urgency-other": "Sıftê şınasiya karberi ($1)",
- "namespacesall": "pêron",
+ "namespacesall": "pêro",
"monthsall": "pêro",
"confirmemail": "Adresê e-posta tesdiq ker",
"confirmemail_noemail": "Yew emaîlê tu raştîyê çin o ke [[Special:Preferences|tercihê karberî]] ayar bike.",
"deletedwhileediting": "'''Teme''': Ena pele verniyê ti de eseteriyaya!",
"confirmrecreate": "Karberê [[User:$1|$1]]î ([[User talk:$1|mesac]]), verniyê vurnayîşê ti ra ena pele wedarno, sebeb: ''$2''\nMa rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
"confirmrecreate-noreason": "karbero [[User:$1|$1]] ([[User talk:$1|mesac]]) , dest pêkerdışiena pela sero vurnayışiya tepya ena pela besternê. Şıma qayıli ke ena pela fına vırazê se ena pela tesdiq kerê.",
- "recreate": "Reyna viraz",
+ "recreate": "Werzayne",
"unit-pixel": "px",
"confirm_purge_button": "Temam",
"confirm-purge-top": "Vervirê na pele bestere?",
"version-software": "Softwareyê ronayi",
"version-software-product": "Mal",
"version-software-version": "Versiyon",
- "version-entrypoints": "heruna dekewtış de GRE'i",
+ "version-entrypoints": "Heruna cıkewtışê URLi",
"version-entrypoints-header-entrypoint": "Heruna dekewtışi",
"version-entrypoints-header-url": "GRE",
"version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Article path]",
"fileduplicatesearch-result-1": "Dosyayê ''$1î'' de hem-kopya çini yo.",
"fileduplicatesearch-result-n": "Dosyayê ''$1î'' de {{PLURAL:$2|1 hem-kopya|$2 hem-kopyayî'}} esto.",
"fileduplicatesearch-noresults": "Ebe namey \"$1\" ra dosya nêdiyayê.",
- "specialpages": "Peleyê xısusiy",
+ "specialpages": "Pelê xısusiy",
"specialpages-note-top": "Kıtabek",
"specialpages-note": "* Pelê xasê normali.\n* <span class=\"mw-specialpagerestricted\">Pelê xasê nımıtey.</span>",
"specialpages-group-maintenance": "Raporê pawıtışi",
"specialpages-group-other": "Pelê xasiyê bini",
- "specialpages-group-login": "Cı kewe / hesab vıraze",
+ "specialpages-group-login": "Dekew / hesab vıraz",
"specialpages-group-changes": "Vurnayışê peyêni û qeydi",
"specialpages-group-media": "Raporê medya û barkerdışi",
"specialpages-group-users": "Karberi û heqi",
"feedback-bugcheck": "Harika! Sadece [xırabina ke $1 ] çınyayışê cı kontrol keno.",
"feedback-bugnew": "Mı qontrol ke. Xetaya newi xeber ke",
"feedback-bugornote": "Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1 jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da \"[ $3 $2 ]\", namey karber dê xoya piya u wasteriya karfiye.",
- "feedback-cancel": "Peyd ke",
+ "feedback-cancel": "Bıtexelne",
"feedback-close": "Biya star",
"feedback-error1": "Xeta: API ra neticey ne vıcyay",
"feedback-error2": "Xeta: Timar kerdış nebı",
"noindex-category": "Noindexed pages",
"broken-file-category": "Pages with broken file links",
"categoryviewer-pagedlinks": "($1) ($2)",
+ "category-header-numerals": "$1–$2",
"about": "About",
"article": "Content page",
"newwindow": "(opens in new window)",
"Orikrin1998"
]
},
- "tog-underline": "Substreki ligilojn",
- "tog-hideminor": "Kaŝi malgrandajn redaktetojn ĉe <i>Lastaj ŝanĝoj</i>",
+ "tog-underline": "Substrekado de ligiloj:",
+ "tog-hideminor": "Kaŝi malgrandajn redaktetojn de la lastaj ŝanĝoj",
"tog-hidepatrolled": "Kaŝi patrolitajn redaktojn en lastaj ŝanĝoj",
"tog-newpageshidepatrolled": "Kaŝi patrolitajn paĝojn de listo de novaj paĝoj",
"tog-hidecategorization": "Kaŝi enkategoriigon de paĝoj",
"tog-watchdefault": "Aldoni al mia atentaro paĝojn kaj dosierojn redaktitajn de mi",
"tog-watchmoves": "Aldoni paĝojn kaj dosierojn, kiujn mi movas, al mia atentaro",
"tog-watchdeletion": "Aldoni paĝojn kaj dosierojn, kiujn mi forigas, al mia atentaro",
- "tog-watchuploads": "Aldonu novajn dosierojn, kiujn mi alŝutas, al mia atentaro",
+ "tog-watchuploads": "Aldoni novajn dosierojn, kiujn mi alŝutas, al mia atentaro",
"tog-watchrollback": "Aldoni paĝojn, kie mi amasmalfaris, al mia atentaro.",
"tog-minordefault": "Marki defaŭlte ĉiujn redaktojn kiel etajn",
"tog-previewontop": "Montri antaŭrigardon antaŭ redaktilo",
"tog-watchlistreloadautomatically": "Reŝargi la atentaron aŭtomate ĉiam, kiam filtrilo estas ŝanĝita (bezonas Ĝavoskripton)",
"tog-watchlisthideanons": "Kaŝi redaktojn de anonimuloj de la atentaro",
"tog-watchlisthidepatrolled": "Kaŝi patrolitajn redaktojn de la atentaro",
- "tog-watchlisthidecategorization": "Kaŝu enkategoriigon de paĝoj",
+ "tog-watchlisthidecategorization": "Kaŝi enkategoriigon de paĝoj",
"tog-ccmeonemails": "Sendi al mi kopiojn de retpoŝtaĵoj, kiujn mi sendis al aliaj uzantoj.",
"tog-diffonly": "Ne montri paĝan enhavon sub la ŝanĝmontrilo",
"tog-showhiddencats": "Montri kaŝitajn kategoriojn",
"sun": "dim",
"mon": "lun",
"tue": "mar",
- "wed": "Mer",
- "thu": "Ä´aŭ",
- "fri": "Ven",
+ "wed": "mer",
+ "thu": "ĵaŭ",
+ "fri": "ven",
"sat": "sab",
"january": "januaro",
"february": "februaro",
"period-am": "ATM",
"period-pm": "PTM",
"pagecategories": "{{PLURAL:$1|Kategorio|Kategorioj}}",
- "category_header": "Artikoloj en kategorio \"$1\"",
+ "category_header": "Artikoloj en kategorio “$1”",
"subcategories": "Subkategorioj",
"category-media-header": "Dosieroj en kategorio “$1”",
"category-empty": "<em>Tiu ĉi kategorio nuntempe enhavas neniun artikolon aŭ plurmedian dosieron.</em>",
"listingcontinuesabbrev": "daŭrigo",
"index-category": "Indeksitaj paĝoj",
"noindex-category": "Neindeksitaj paĝoj",
- "broken-file-category": "Paĝoj kun eraraj dosierligiloj",
+ "broken-file-category": "Paĝoj kun rompita ligilo al dosiero",
"about": "Pri",
"article": "Artikolo",
"newwindow": "(en nova fenestro)",
"badaccess-groups": "La ago, kiun vi petis, estas limigita al uzantoj en {{PLURAL:$2|la grupo|unu el la grupoj}}: $1.",
"versionrequired": "Versio $1 de MediaWiki nepras",
"versionrequiredtext": "La versio $1 de MediaWiki estas necesa por uzi ĉi tiun paĝon. Vidu [[Special:Version|paĝon pri versio]].",
- "ok": "Ek!",
+ "ok": "Bone",
"retrievedfrom": "Elŝutita el \"$1\"",
"youhavenewmessages": "{{PLURAL:$3|Vi havas}} $1 ($2).",
"youhavenewmessagesfromusers": "Riceviĝis $1 de {{PLURAL:$3|alia uzanto|$3 uzantoj}} ($2).",
"content-model-css": "CSS",
"content-json-empty-object": "Malplena objeto",
"content-json-empty-array": "Malplena tabelo",
+ "deprecated-self-close-category": "Paĝoj, kiuj enhavas nevalidan memferman HTML‑etikedon",
"duplicate-args-warning": "'''Averto:''' [[:$1]] vokas al [[:$2]] kun pli ol unu valoro por la parametro \"$3\". Nur la lasta liverita valoro estos uzata.",
"duplicate-args-category": "Paĝoj kun pluroblaj argumentoj en ŝablonvokoj",
"duplicate-args-category-desc": "La paĝo enhavas uzon de ŝablono kun pluroble uzitaj argumentoj, kiel ekzemple <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> aŭ <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"log-action-filter-newusers": "Tipo de konta kreado:",
"log-action-filter-patrol": "Tipo de patrolado:",
"log-action-filter-protect": "Tipo de protektad:",
- "log-action-filter-rights": "Tipo de rajta ŝanĝo",
- "log-action-filter-suppress": "Tipo de forigado",
+ "log-action-filter-rights": "Tipo de rajta ŝanĝo:",
+ "log-action-filter-suppress": "Tipo de subpremado:",
"log-action-filter-upload": "Tipo de alŝutado:",
"log-action-filter-all": "Ĉia",
"log-action-filter-block-block": "Forbari",
"minoredit": "Aldaketa hau txikia da",
"watchthis": "Orrialde hau jarraitu",
"savearticle": "Gorde orria",
+ "savechanges": "Aldaketak gorde",
"publishpage": "Orrialdea argitaratu",
"publishchanges": "Aldaketak argitaratu",
"preview": "Aurrebista erakutsi",
"revdelete-unsuppress": "Berrezarritako aldaketen mugak kendu",
"revdelete-log": "Arrazoia:",
"revdelete-submit": "Hautatutako {{PLURAL:$1|berrikuspenari|berrikuspenei}} aplikatu",
- "revdelete-success": "'''Berrikuspenen ikusgarritasuna eguneratu da.'''",
+ "revdelete-success": "Berrikuspenen ikusgarritasuna eguneratu da.",
"revdelete-failure": "'''Ezin da berrikuspenaren ikuspena eguneratu:'''\n$1",
- "logdelete-success": "'''Log ikusgarritasuna ondo ezarri da.'''",
+ "logdelete-success": "Log ikusgarritasuna ondo ezarri da.",
"logdelete-failure": "'''Erregistroaren ikusgaitasuna ezin da honela ezarri:'''\n$1",
"revdel-restore": "Aldatu ikusgaitasuna",
"pagehist": "Orriaren historia",
"mergehistory-go": "Aldaketa bateragarriak erakutsi",
"mergehistory-submit": "Berrikuspenak bateratu",
"mergehistory-empty": "Ezin da berrikuspenik bateratu",
- "mergehistory-done": "$1(e)ko {{PLURAL:$3|berrikuspen|berrikuspen}} bateratu egin dira [[:$2]](e)n.",
+ "mergehistory-done": "$1(e)ko {{PLURAL:$3|berrikuspen|berrikuspen}} bateratu egin {{PLURAL:$3|da|dira}} [[:$2]](e)n.",
"mergehistory-fail": "Ezin izan da historia bateratu; egiaztatu orrialde eta denbora parametroak.",
"mergehistory-no-source": "Ez da $1 jatorrizko orrialdea existitzen.",
"mergehistory-no-destination": "Ez da $1 helburu orrialdea existitzen.",
"editusergroup": "{{GENDER:$1|Erabiltzaile}} taldeak editatu",
"editinguser": "'''[[User:$1|$1]]''' $2 lankidearen erabiltzaile-eskubideak aldatzen",
"userrights-editusergroup": "Erabiltzaile taldeak editatu",
- "saveusergroups": "Erabiltzaile taldeak gorde",
+ "saveusergroups": "Erabiltzaile {{GENDER:$1|taldeak}} gorde",
"userrights-groupsmember": "Ondorengo talde honetako kide da:",
"userrights-groupsmember-auto": "Honen kide inplizitua:",
"userrights-groups-help": "Lankide hau zein taldetakoa den alda dezakezu:\n* Laukia hautatuta baldin badago, esan nahi du lankidea talde horretakoa dela.\n* Laukia hautatu gabe baldin badago, esan nahi du lankidea talde horretakoa ez dela.\n* Izartxoak (*) erakusten du ezin duzula talde horretatik kendu, taldera gehitu eta gero; edo alderantziz, ezin duzula talde horretara gehitu, taldetik kendu eta gero.",
"userrights-changeable-col": "Alda ditzakezun taldeak",
"userrights-unchangeable-col": "Aldatu ezin ditzakezun taldeak",
"userrights-conflict": "Gatazka gertatu da erabiltzaile eskubideak aldatzean. Mesedez, berrikusi eta baieztatu zure aldaketak.",
- "userrights-removed-self": "Arrakasta izan duzu zure eskumenak kentzen. Beraz jada ezin duzu orrialde hau gehiago ikusi.",
+ "userrights-removed-self": "Zure eskumenak kendu dituzu. Beraz jada ezin duzu orrialde hau gehiago ikusi.",
"group": "Taldea:",
"group-user": "Erabiltzaileak",
"group-autoconfirmed": "Lankide autokonfirmatuak",
"right-override-export-depth": "5eko sakonerararteko loturiko orrialdeak barne esportatu",
"right-sendemail": "Beste erabiltzaileei e-posta bidali",
"right-passwordreset": "Ikusi pasahitza berrezartze e-postak",
+ "grant-group-email": "E-posta bidali",
"grant-createaccount": "Kontuak sortu",
"grant-editmycssjs": "Zure CSS/JavaScript aldatu",
"grant-editmyoptions": "Aldatu zure hobespenak",
"rightslogtext": "Erabiltzaile eskubideetan izandako aldaketen erregistroa da hau.",
"action-read": "orrialde hau irakurri",
"action-edit": "orri hau aldatu",
- "action-createpage": "orrialdeak sortu",
- "action-createtalk": "eztabaida orrialdeak sortu",
+ "action-createpage": "Sortu orri hau",
+ "action-createtalk": "eztabaida orrialde hau sortu",
"action-createaccount": "lankide hau sortu",
"action-history": "orrialde honen historia ikusi",
"action-minoredit": "markatu aldaketa hau txikitzat",
"upload-form-label-infoform-title": "Xehetasunak",
"upload-form-label-infoform-name": "Izena",
"upload-form-label-infoform-description": "Deskribapena",
+ "upload-form-label-infoform-description-tooltip": "Azaldu laburki lanaren inguruko kontu aipagarri guztiak. Argazki batean, aipatu agertzen den gai nagusia, momentua, edo lekua.",
"upload-form-label-usage-title": "Erabilera",
"upload-form-label-usage-filename": "Fitxategiaren izena",
"upload-form-label-own-work": "Hau neure lana da",
"listgrouprights-removegroup-self-all": "Talde guztiak norbere kontutik ezabatu",
"listgrouprights-namespaceprotection-namespace": "Izen-tartea",
"listgrants": "Diru-laguntzak",
+ "listgrants-grant": "Baimena eman",
"listgrants-rights": "Eskubideak",
+ "trackingcategories": "Jarraipen kategoriak",
+ "trackingcategories-msg": "Jarraipen kategoria",
"trackingcategories-name": "Mezuaren izena",
"trackingcategories-nodesc": "Ez dago deskribapenik eskuragarri.",
"trackingcategories-disabled": "Kategoria desgaitua dago",
"wlshowhideanons": "erabiltzaile anonimoak",
"wlshowhidepatr": "Patruilatutako aldaketak",
"wlshowhidemine": "nire edizioak",
+ "wlshowhidecategorization": "orrialdearen kategorizazioa",
"watchlist-options": "Jarraitze-zerrendaren aukerak",
"watching": "Zerrendan gehitzen...",
"unwatching": "Zerrendatik kentzen...",
"sessionfailure": "Badirudi saioarekin arazoren bat dagoela; bandalismoak saihesteko ekintza hau ezeztatu egin da. Mesedez, nabigatzaileko \"atzera\" botoian klik egin, hona ekarri zaituen orrialde hori berriz kargatu, eta saiatu berriz.",
"changecontentmodel-title-label": "Orriaren izenburua",
"changecontentmodel-reason-label": "Arrazoia:",
+ "changecontentmodel-submit": "Aldatu",
"logentry-contentmodel-change-revertlink": "desegin",
"logentry-contentmodel-change-revert": "desegin",
"protectlogpage": "Babes erregistroa",
"ipb-unblock": "Erabiltzaile izen edo IP helbide bati blokeoa kendu",
"ipb-blocklist": "Blokeaketak ikusi",
"ipb-blocklist-contribs": "{{GENDER:$1|$1(r)en}} ekarpenak",
+ "ipb-blocklist-duration-left": "gainerako $1",
"unblockip": "Erabiltzailea desblokeatu",
"unblockiptext": "Erabili beheko formularioa lehenago blokeatutako IP helbide edo erabiltzaile baten idazketa baimenak leheneratzeko.",
"ipusubmit": "Blokeoa ezabatu",
"pageinfo-category-files": "Fitxategi kopurua",
"markaspatrolleddiff": "Patruilatutzat markatu",
"markaspatrolledtext": "Artikulu hau patruilatutzat markatu",
+ "markaspatrolledtext-file": "Fitxategi honen bertsioa patruilatutzat markatu",
"markedaspatrolled": "Patruilatutzat markatu da",
"markedaspatrolledtext": "[[:$1]]-(r)en bertsio hautatua patruilatutzat markatu da.",
"rcpatroldisabled": "Aldaketa berrien patruilaketa ezgaituta dago",
"confirm-watch-top": "Orrialde hau zure jarraipen-zerrendara gehitu?",
"confirm-unwatch-button": "Ados",
"confirm-unwatch-top": "Orrialde hau zure jarraipen-zerrendatik kendu?",
+ "confirm-rollback-button": "Ados",
"quotation-marks": "«$1»",
"imgmultipageprev": "← aurreko orrialdea",
"imgmultipagenext": "hurrengo orrialdea →",
"expand_templates_generate_xml": "Erakutsi XML parse zuhaitza",
"expand_templates_generate_rawhtml": "Erakutsi HTML gordina",
"expand_templates_preview": "Aurreikusi",
- "pagelanguage": "Orriaren hizkuntza aukeratu",
+ "pagelanguage": "Orriaren hizkuntza aldatu",
"pagelang-name": "Orria",
"pagelang-language": "Hizkuntza",
"pagelang-use-default": "Hizkuntza lehenetsia erabili",
"mw-widgets-dateinput-no-date": "Ez duzu datarik aukeratu",
"mw-widgets-titleinput-description-new-page": "orri hori oraindik ez da existitzen",
"mw-widgets-titleinput-description-redirect": "$1ra birzuzendu",
- "sessionprovider-generic": "$1 sesio"
+ "sessionprovider-generic": "$1 sesio",
+ "log-action-filter-all": "Denak",
+ "log-action-filter-block-block": "Blokeatu",
+ "log-action-filter-block-reblock": "Blokeoa aldatu",
+ "log-action-filter-block-unblock": "blokeoa kendu",
+ "authmanager-email-label": "Emaila",
+ "authmanager-email-help": "Helbide elektronikoa",
+ "authmanager-realname-label": "Benetako izena",
+ "authmanager-realname-help": "Erabiltzailearen benetako izena",
+ "authprovider-resetpass-skip-label": "Utzi",
+ "authform-wrongtoken": "Token okerra"
}
"actionfailed": "عمل ناموفق بود",
"deletedtext": "«$1» حذف شد.\nبرای سابقهٔ حذفهای اخیر به $2 مراجعه کنید.",
"dellogpage": "سیاههٔ حذف",
- "dellogpagetext": "فهرست زیر فهرستی از آخرین حذفهاست.\nهمهٔ زمانهای نشاندادهشده زمان خادم (وقت گرینویچ) است.",
+ "dellogpagetext": "فهرست زیر فهرستی از آخرین حذفهاست.\nهمهٔ زمانهای نشاندادهشده زمان کارساز (وقت گرینویچ) است.",
"deletionlog": "سیاههٔ حذف",
"reverted": "به نسخهٔ قدیمیتر واگردانده شد",
"deletecomment": "دلیل:",
"confirmrecreate-noreason": "کاربر [[User:$1|$1]] ([[User talk:$1|بحث]]) این صفحه را پس از شروع ویرایشتان {{GENDER:$1|پاک}} کردهاست. لطفاً تأیید کنید که شما واقعاً میخواهید آن را دوباره ایجاد کنید.",
"recreate": "باز ایجاد",
"confirm_purge_button": "تأیید",
- "confirm-purge-top": "پاککردن نسخهٔ حافظهٔ نهانی (Cache) این صفحه را تأیید میکنید؟",
+ "confirm-purge-top": "پاک کردن نسخهٔ حافظهٔ نهانی (Cache) این صفحه را تأیید میکنید؟",
"confirm-purge-bottom": "خالی کردن میانگیر یک صفحه باعث میشود که آخرین نسخهٔ آن نمایش یابد.",
"confirm-watch-button": "تأیید",
"confirm-watch-top": "این صفحه به فهرست پیگیریهای شما افزوده شود؟",
"resetpass-expired": "Votre mot de passe a expiré. Veuillez en fournir un nouveau pour vous connecter.",
"resetpass-expired-soft": "Votre mot de passe a expiré, et doit être réinitialisé. Veuillez en choisir un nouveau maintenant ou cliquer sur « {{int:authprovider-resetpass-skip-label}} » pour le faire plus tard.",
"resetpass-validity-soft": "Votre mot de passe n’est pas valide : $1\n\nVeuillez choisir un nouveau mot de passe maintenant, ou cliquez sur « {{int:authprovider-resetpass-skip-label}} » pour le réinitialiser plus tard.",
- "passwordreset": "Remise à zéro du mot de passe",
+ "passwordreset": "Réinitialisation du mot de passe",
"passwordreset-text-one": "Remplissez ce formulaire pour réinitialiser votre mot de passe.",
"passwordreset-text-many": "{{PLURAL:$1|Remplissez un des champs pour recevoir un mot de passe temporaire par courriel.}}",
"passwordreset-disabled": "La réinitialisation des mots de passe a été désactivée sur ce wiki.",
"passwordreset-capture-help": "Si vous cochez cette case, le courriel (avec le mot de passe temporaire) vous sera affiché en même temps qu’il sera envoyé à l’utilisateur.",
"passwordreset-email": "Adresse de courriel :",
"passwordreset-emailtitle": "Détails du compte sur {{SITENAME}}",
- "passwordreset-emailtext-ip": "Quelqu’un (probablement vous, depuis l’adresse IP $1) a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
- "passwordreset-emailtext-user": "L’utilisateur $1 sur {{SITENAME}} a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
+ "passwordreset-emailtext-ip": "Quelqu’un (probablement vous, depuis l’adresse IP $1) a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. \nVous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
+ "passwordreset-emailtext-user": "L’utilisateur $1 sur {{SITENAME}} a demandé une réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. \nVous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou si vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
"passwordreset-emailelement": "Nom d’utilisateur : \n$1\n\nMot de passe temporaire : \n$2",
"passwordreset-emailsentemail": "Si cette adresse de courriel est associée à votre compte, alors un courriel de réinitialisation de mot de passe sera envoyé.",
"passwordreset-emailsentusername": "S’il y a une adresse de courriel associée à ce nom d’utilisateur, alors un courriel de réinitialisation de mot de passe sera envoyé.",
"editpage-cannot-use-custom-model": "Le modèle de contenu de cette page ne peut pas être modifié.",
"longpageerror": "<strong>Erreur : Le texte que vous avez soumis fait {{PLURAL:$1|un Kio|$1 Kio}}, ce qui dépasse la limite fixée à {{PLURAL:$2|un Kio|$2 Kio}}.</strong>\nIl ne peut pas être sauvegardé.",
"readonlywarning": "<strong>AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour l’instant.</strong>\nVous pouvez copier et coller votre texte dans un fichier texte et l’enregistrer pour plus tard.\n\nL’administrateur système ayant verrouillé la base de données a donné l’explication suivante : $1",
- "protectedpagewarning": "'''AVERTISSEMENT : cette page est protégée. Seuls les utilisateurs ayant le statut d'administrateur peuvent la modifier.'''<br />\nLa dernière entrée du journal est affichée ci-dessous pour référence :",
- "semiprotectedpagewarning": "'''Note :''' Cette page a été protégée de telle façon que seuls les contributeurs enregistrés puissent la modifier. La dernière entrée du journal est affichée ci-dessous pour référence :",
+ "protectedpagewarning": "<strong>AVERTISSEMENT : cette page est protégée afin que seuls les utilisateurs ayant le statut d'administrateur puissent la modifier.</strong>\nLa dernière entrée du journal est affichée ci-dessous pour référence :",
+ "semiprotectedpagewarning": "<strong>Note :</strong>Cette page a été protégée de telle façon que seuls les contributeurs enregistrés puissent la modifier. \nLa dernière entrée du journal est affichée ci-dessous pour référence :",
"cascadeprotectedwarning": "'''ATTENTION :''' Cette page a été protégée de manière à ce que seuls les administrateurs puissent la modifier car elle est transcluse dans {{PLURAL:$1|la page protégée suivante, qui a|les pages protégées suivantes, qui ont}} la « protection en cascade » activée :",
- "titleprotectedwarning": "'''ATTENTION : Cette page a été protégée de telle manière que des [[Special:ListGroupRights|droits spécifiques]] sont requis pour pouvoir la créer.''' La dernière entrée du journal est affichée ci-dessous pour référence :",
+ "titleprotectedwarning": "<strong>ATTENTION : Cette page a été protégée de telle manière que des [[Special:ListGroupRights|droits spécifiques]] sont requis pour pouvoir la créer.</strong> \nLa dernière entrée du journal est affichée ci-dessous pour référence :",
"templatesused": "{{PLURAL:$1|Modèle utilisé|Modèles utilisés}} par cette page :",
"templatesusedpreview": "{{PLURAL:$1|Modèle utilisé|Modèles utilisés}} dans cette prévisualisation :",
"templatesusedsection": "{{PLURAL:$1|Modèle utilisé|Modèles utilisés}} dans cette section :",
"parser-unstrip-loop-warning": "Boucle non démontable détectée",
"parser-unstrip-recursion-limit": "Limite de récursion non démontable dépassée ($1)",
"converter-manual-rule-error": "Erreur détectée dans la règle manuelle de conversion de langue",
- "undo-success": "Cette modification va être défaite. Veuillez vérifier les modifications ci-dessous, puis publier si c’est bien ce que vous voulez faire.",
+ "undo-success": "Cette modification va être annulée.\nVeuillez vérifier les différences ci-dessous, puis publier l’annulation si c’est bien ce que vous voulez faire.",
"undo-failure": "Cette modification ne peut pas être défaite : cela entrerait en conflit avec les modifications intermédiaires.",
"undo-norev": "La modification n’a pas pu être défaite parce qu’elle est inexistante ou qu’elle a été supprimée.",
"undo-nochange": "Il semblerait que la modification ait déjà été annulée.",
"last": "diff",
"page_first": "première",
"page_last": "dernière",
- "histlegend": "Légende : ({{int:cur}}) = différence avec la version actuelle, ({{int:last}}) = différence avec la version précédente, <b>{{int:minoreditletter}}</b> = modification mineure",
+ "histlegend": "Diff de sélection: cochez les boîtes radio des révisions à comparer et appuyez sur entrée ou sur le bouton en bas.<br />\nLégende: <strong>({{int:cur}})</strong> = différence avec la dernière révision, <strong>({{int:last}})</strong> = différence avec la précédente révision, <strong>{{int:minoreditletter}}</strong> = modification mineure.",
"history-fieldset-title": "Naviguer dans l’historique",
- "history-show-deleted": "Masqués seulement",
+ "history-show-deleted": "Supprimés seulement",
"histfirst": "les plus anciennes",
"histlast": "les plus récentes",
"historysize": "($1 octet{{PLURAL:$1||s}})",
"historyempty": "(vide)",
"history-feed-title": "Historique des versions",
- "history-feed-description": "Historique pour cette page sur le wiki",
+ "history-feed-description": "Historique des versions pour cette page sur le wiki",
"history-feed-item-nocomment": "$1 le $2",
- "history-feed-empty": "La page demandée n'existe pas.\nElle a peut-être été effacée ou renommée.\nEssayez de [[Special:Search|rechercher sur le wiki]] pour trouver des pages en rapport.",
+ "history-feed-empty": "La page demandée n'existe pas.\nElle a peut-être été effacée ou renommée.\nEssayez de [[Special:Search|rechercher sur le wiki]] pour trouver de nouvelles pages en rapport avec le sujet.",
"history-edit-tags": "Modifier les balises des révisions sélectionnées",
"rev-deleted-comment": "(résumé de modification retiré)",
"rev-deleted-user": "(nom d'utilisateur retiré)",
"mergehistory-no-destination": "La page de destination $1 n'existe pas.",
"mergehistory-invalid-source": "La page d'origine doit avoir un titre valide.",
"mergehistory-invalid-destination": "La page de destination doit avoir un titre valide.",
- "mergehistory-autocomment": "[[:$1]] fusionnée avec [[:$2]]",
- "mergehistory-comment": "[[:$1]] fusionnée avec [[:$2]] : $3",
- "mergehistory-same-destination": "Les pages d'origine et de destination ne peuvent pas être la même",
+ "mergehistory-autocomment": "[[:$1]] fusionnée dans [[:$2]]",
+ "mergehistory-comment": "[[:$1]] fusionnée dans [[:$2]] : $3",
+ "mergehistory-same-destination": "Les pages d'origine et de destination ne peuvent pas être les mêmes",
"mergehistory-reason": "Motif :",
"mergehistory-revisionrow": "$1 ($2) $3 — $4 $5 $6",
"mergelog": "Journal des fusions",
"revertmerge": "Séparer",
- "mergelogpagetext": "Voici la liste des plus récentes fusions de l’historique d’une page dans celui d’une autre.",
+ "mergelogpagetext": "Voici la liste des fusions les plus récentes de l’historique d’une page dans celui d’une autre.",
"history-title": "$1 : Historique des versions",
"difference-title": "$1 : Différence entre versions",
"difference-title-multipage": "Différences entre les pages « $1 » et « $2 »",
"post-expand-template-inclusion-warning": "'''𐌷𐍅𐍉𐍄𐌾𐌰𐌽𐌳𐍃:''' 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃. 𐍃𐌿𐌼𐍃 𐍆𐌰𐌿𐍂𐌴𐌼𐌴𐌻𐌴𐌹𐌽𐍉𐍃 𐌽𐌹 𐌼𐌰𐌲 𐍅𐌹𐍃𐌰𐌽 𐌸𐌰𐍂",
"post-expand-template-inclusion-category": "𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍂 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃",
"viewpagelogs": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐌲𐌰𐍆𐌰𐍃𐍄𐌰𐌹𐌽𐌹𐌽𐍃 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰",
- "currentrev": "ð\90\8c½ð\90\8c¿ ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³𐌴𐌹𐌽𐍃",
+ "currentrev": "ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c° ð\90\8c²ð\90\8c°ð\90\8c±ð\90\8d\89ð\90\8d\84𐌴𐌹𐌽𐍃",
"currentrev-asof": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐌰 𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $1",
"revisionasof": "𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $1",
"revision-info": "𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍃 𐌹𐌽 $1 𐍆𐍂𐌰𐌼 {{GENDER:$6|$2}}$7",
"listredirects": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐍃𐌴𐌹𐌳𐍉𐍃",
"randompage": "𐌸𐌿𐍃 𐌿𐌽𐌺𐌿𐌽𐌸𐍃 𐌻𐌰𐌿𐍆𐍃",
"statistics": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐍄𐌹𐍃𐍄𐌹𐌺",
- "brokenredirects-edit": "(𐌼𐌰𐌹𐌳𐌾𐌰𐌽)",
+ "brokenredirects-edit": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹",
"brokenredirects-delete": "(𐍄𐌰𐌹𐍂𐌰𐌽)",
"nbytes": "$1 {{PLURAL:$1|𐌱𐌹𐍄|𐌱𐌰𐍄𐌰}}",
"ncategories": "$1 {{PLURAL:$1|𐌺𐌿𐌽𐌾𐌰|𐌺𐌿𐌽𐌾𐍉𐍃}}",
"watchlist": "𐍅𐌹𐍄𐌰𐍅𐌹𐌺𐍉",
"mywatchlist": "𐌻𐌰𐌹𐍃𐍄𐌰𐌻𐌴𐌹𐍃𐍄𐌰",
"watch": "𐍅𐌰𐍂𐌰𐌽",
- "watchthispage": "ð\90\8d\85ð\90\8c°ð\90\8d\82ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+ "watchthispage": "ð\90\8c°ð\90\8d\84ð\90\8d\85ð\90\8c¹ð\90\8d\84 ð\90\8c¸ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°",
"unwatch": "𐌽𐌹𐍅𐌰𐍂𐌰𐌽",
"watchlist-details": "{{PLURAL:$1|$1 𐌻𐌰𐌿𐍆𐍃|$1 𐌻𐌰𐌿𐌱𐍉𐍃}} 𐌰𐌽𐌰 𐌸𐌴𐌹𐌽𐌰𐌹 𐍅𐌹𐍄𐌰𐍅𐌹𐌺𐍉𐌽, 𐌽𐌹 𐍃𐌿𐌽𐌳𐍂𐍉 𐍂𐌰𐌷𐌽𐌾𐌰𐌽𐌳𐌰 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰𐌻𐌰𐌿𐌱𐍉𐍃.",
"watching": "Wita...",
"protectlogpage": "Log af Baírgjan",
"prot_1movedto2": "[[$1]] skiubiþ du [[$2]]",
"protect-level-sysop": "𐌰𐌽𐌳𐌻𐌴𐍄𐌹𐌸 𐌸𐌰𐍄𐌰𐌹𐌽𐌴𐌹 𐍂𐌴𐌹𐌺𐍃",
- "protect-expiring": "bláuþiþ $1 (UTC)",
+ "protect-expiring": "𐌿𐍃𐍄𐌹𐌿𐌷𐌹𐌸 $1 (UTC)",
"restriction-type": "Freihals:",
- "restriction-edit": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½",
+ "restriction-edit": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹",
"restriction-move": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽",
"undeletebtn": "𐌰𐍆𐍄𐍂𐌰 𐌲𐌰𐌱𐍉𐍄𐌾𐌰𐌽",
"undeletelink": "𐍃𐌰𐌹𐍈𐌰𐌽/𐌰𐍆𐍄𐍂𐌰𐌲𐌰𐍃𐌰𐍄𐌾𐌰𐌽",
"unblocklink": "𐍅𐌰𐌽𐌳𐌾𐌰𐌽",
"change-blocklink": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐍅𐌰𐌿𐍂𐌾𐌰𐍅𐌰𐌳𐌳𐌾𐌿𐍃",
"contribslink": "𐌱𐌹𐌰𐌿𐌺𐌰𐌹𐌽𐌴𐌹𐍃",
- "blocklogpage": "ð\90\8c»ð\90\8d\89ð\90\8c²ð\90\8c±ð\90\8d\89ð\90\8cºð\90\8c° ð\90\8c°ð\90\8d\86 ð\90\8c°ð\90\8d\86ð\90\8c³ð\90\8d\82ð\90\8c°ð\90\8c¿ð\90\8d\83ð\90\8c¾ð\90\8c°ð\90\8c½",
+ "blocklogpage": "ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c°ð\90\8c¹ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8d\86ð\90\8c°ð\90\8d\83ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8d\83.",
"blocklogentry": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌹𐌸 [[$1]] 𐍆𐌰𐌿𐍂 $2 $3",
"newtitle": "𐌽𐌹𐌿𐌾𐌹 𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌹:",
- "move-watch": "ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8d\89 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+ "move-watch": "ð\90\8c°ð\90\8d\84ð\90\8d\85ð\90\8c¹ð\90\8d\84 ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8c½ð\90\8c½ð\90\8c°ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c° ð\90\8c¾ð\90\8c°ð\90\8c· ð\90\8c¼ð\90\8c¿ð\90\8c½ð\90\8c³ð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°",
"movepagebtn": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉",
"movelogpage": "Log af skiubans",
"movereason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
"tooltip-ca-nstab-template": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽",
"tooltip-ca-nstab-category": "𐍃𐌰𐌹𐍈 𐌺𐌿𐌽𐌾𐌰𐌻𐌰𐌿𐍆",
"tooltip-save": "𐌲𐌰𐍆𐌰𐍃𐍄 𐌸𐌴𐌹𐌽𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌽𐍃",
- "tooltip-preview": "ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8d\83ð\90\8c°ð\90\8d\88ð\90\8c¹ð\90\8d\83 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c¸ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c°, ð\90\8c±ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c° ð\90\8c¸ð\90\8c¿ð\90\8cº ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c½ ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c° ð\90\8c¼ð\90\8c´ð\90\8c»ð\90\8c¾ð\90\8c¹ð\90\8d\83!",
+ "tooltip-preview": "ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c°ð\90\8d\83ð\90\8c°ð\90\8c¹ð\90\8d\88 ð\90\8c¸ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83. ð\90\8c±ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c¼ ð\90\8c¸ð\90\8c¿ð\90\8cº, ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c´ð\90\8c¹ ð\90\8c¸ð\90\8c¹ð\90\8d\83 ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8d\86ð\90\8d\82ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c¸ð\90\8c¹ð\90\8c¶ð\90\8c´ð\90\8c¹ ð\90\8c²ð\90\8c°ð\90\8d\86ð\90\8c°ð\90\8d\83ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8d\83.",
"tooltip-diff": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐍈𐌹𐌻𐌴𐌹𐌺𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌽𐍃 𐌲𐌰𐍄𐌰𐍅𐌹𐌳𐌴𐍃 𐌳𐌿 𐌸𐌰𐌹𐌼 𐌱𐍉𐌺𐍉𐌼",
"tooltip-rollback": "\"𐌰𐍆𐍅𐌰𐌻𐍅𐌴𐌹\" 𐌲𐌰𐌽𐌰𐍃𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽(𐍉𐍃) 𐌳𐌿 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰 𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐌹𐍃 𐌱𐌹𐌰𐌿𐌺𐌰𐌽𐌳𐌹𐍃/𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐌰𐌹𐌶𐍉𐍃 𐌱𐌹𐌰𐌿𐌺𐌰𐌽𐌳𐌾𐍉𐍃 𐌹𐌽 𐌰𐌹𐌽𐌰𐌼𐌼𐌰 𐍃𐌹𐌽𐌸𐌰",
"tooltip-undo": "\"𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽\" 𐌱𐌰𐌺𐌼𐌰𐌹𐌳𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌲𐌴𐌹𐌽𐍃 𐌾𐌰𐌷 𐌿𐍃𐌻𐌿𐌺𐍉𐌸 𐌼𐌰𐌹𐌳𐌾𐌰𐍆𐍉𐍂𐌼𐍉𐌽 𐍃𐍅𐌴 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐌷𐌹𐍅𐌾𐌰. 𐌸𐌰𐍄𐌰 𐌻𐌴𐍄 𐌰𐌽𐌰𐌿𐌺𐌰𐌽𐌰𐌽 𐍃𐌰𐌿𐌸𐌰 𐌹𐌽 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰.",
"tooltip-summary": "𐌰𐍄𐌲𐌰𐌲𐌲𐌹𐍃 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰 𐌼𐌰𐌿𐍂𐌲𐌾𐌰",
"pageinfo-toolboxlink": "𐌺𐌿𐌽𐌸𐌹 𐌻𐌰𐌿𐌱𐌹𐍃",
- "previousdiff": "â\86\90 ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c° ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c¹𐍃",
+ "previousdiff": "â\86\90 ð\90\8d\86ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c½ð\90\8c¹ð\90\8c¶ð\90\8c´ð\90\8c¹ ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½𐍃",
"nextdiff": "𐌽𐌹𐌿𐌾𐌹𐌶𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 →",
"file-info-size": "$1 × $2 𐍀𐌹𐌺𐍃𐌴𐌻𐌰, 𐍆𐌴𐌹𐌻𐍅𐌰𐌷𐍃𐍄𐌿𐍃: $3, 𐌼𐌹𐌼𐌴 𐌺𐌿𐌽𐌹: $4",
"show-big-image": "𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐌰 𐌳𐌰𐍄𐌰",
"exif-colorspace": "𐍆𐌰𐍂𐍅𐌰𐍂𐌿𐌼",
"exif-orientation-1": "𐌱𐌹 𐌱𐌹𐌿𐌷𐍄𐌾𐌰",
"namespacesall": "𐌰𐌻𐌻",
- "monthsall": "𐌰𐌻𐌻𐌹𐍃",
+ "monthsall": "𐌰𐌻𐌻",
"imgmultigo": "Afgaggan!",
"table_pager_limit_submit": "Affgaggan",
"signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰]])",
"tags-create-reason": "𐌳𐌿𐌸𐌸𐌴:",
"tags-create-submit": "𐍃𐌺𐌰𐍀𐌴𐌹",
"tags-create-warnings-below": "𐍅𐌹𐌻𐌴𐌹𐌶𐌿 𐌸𐌰𐌹𐍂𐍈𐌹𐍃𐌰𐌽 𐍃𐌺𐌰𐍀𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳?",
- "tags-delete-title": "ð\90\8c¿ð\90\8d\83ð\90\8c½ð\90\8c¹ð\90\8c¼ ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c°𐍅𐌰𐌿𐍂𐌳",
+ "tags-delete-title": "ð\90\8c¿ð\90\8d\83ð\90\8c½ð\90\8c¹ð\90\8c¼ ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹𐍅𐌰𐌿𐍂𐌳",
"tags-delete-explanation-initial": "𐍅𐌰𐌹𐍂𐌸𐌰𐌹𐍃 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌿𐍃𐌽𐌹𐌼𐌰𐌽 𐌿𐍃 𐌲𐌹𐌱𐌰𐌲𐌰𐍃𐌰𐍄𐌴𐌹𐌽𐌰𐌹.",
"tags-delete-reason": "𐌳𐌿𐌸𐌸𐌴:",
- "tags-delete-not-found": "ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c°𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌽𐌹𐍃𐍄.",
- "tags-activate-title": "ð\90\8c²ð\90\8c°ð\90\8cµð\90\8c¹ð\90\8c¿ð\90\8c´ð\90\8c¹ ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c°𐍅𐌰𐌿𐍂𐌳",
- "tags-activate-question": "ð\90\8d\85ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c¸ð\90\8c°ð\90\8c¹ð\90\8d\83 ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ \"$1\" ð\90\8c²ð\90\8c°ð\90\8cµð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c°ð\90\8c½.",
+ "tags-delete-not-found": "ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌽𐌹𐍃𐍄.",
+ "tags-activate-title": "ð\90\8c²ð\90\8c°ð\90\8cµð\90\8c¹ð\90\8c¿ð\90\8c´ð\90\8c¹ ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹𐍅𐌰𐌿𐍂𐌳",
+ "tags-activate-question": "ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ \"$1\" ð\90\8c²ð\90\8c°ð\90\8cµð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c¹ð\90\8d\83.",
"tags-activate-reason": "𐌳𐌿𐌸𐌸𐌴:",
"tags-activate-not-found": "𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌽𐌹𐍃𐍄.",
"tags-activate-submit": "𐌲𐌰𐌵𐌹𐌿𐌴𐌹",
"tags-deactivate-reason": "𐌳𐌿𐌸𐌸𐌴:",
"tags-deactivate-submit": "𐌿𐌽𐌲𐌰𐌵𐌹𐌿𐌴𐌹",
"logentry-delete-delete": "$1 {{GENDER:$2|𐌿𐍃𐌽𐌰𐌼}} 𐌻𐌰𐌿𐍆 $3",
- "logentry-move-move": "$1 {{GENDER:$2|𐌼𐌹𐌸𐍃𐌰𐍄𐌹𐌳𐌰}} 𐌻𐌰𐌿𐍆𐍃 $3 𐌳𐌿 $4",
+ "logentry-move-move": "$1 {{GENDER:$2|𐌼𐌹𐌸𐍃𐌰𐍄𐌹𐌳𐌰}} 𐌻𐌰𐌿𐍆 $3 𐌳𐌿 $4",
"logentry-newusers-create": "𐌱𐍂𐌿𐌺𐌾𐌰𐌺𐌰𐍅𐍄𐍃𐌾𐍉 $1 𐍅𐌰𐍃 {{{{GENDER:$2|𐌲𐌰𐍃𐌺𐌰𐍀𐌰𐌽𐌰}}",
- "rightsnone": "(ni áinshun)",
+ "rightsnone": "(𐌽𐌹)",
"searchsuggest-search": "𐍃𐍉𐌺𐌴𐌹"
}
"actionthrottledtext": "כאמצעי נגד שימוש לרעה, קיימת מגבלה על ביצוע פעולה זו פעמים רבות מדי בזמן קצר, וחרגת מהמגבלה הזאת.\nנא לנסות שוב בעוד מספר דקות.",
"protectedpagetext": "דף זה מוגן כדי למנוע עריכה ופעולות אחרות.",
"viewsourcetext": "ב{{GENDER:|אפשרותך|אפשרותך|אפשרותכם}} לצפות בטקסט המקור של הדף ולהעתיקו.",
- "viewyourtext": "באפשרותך לצפות בטקסט המקור של <strong>העריכות שלך</strong> בדף הזה ולהעתיקו.",
+ "viewyourtext": "ב{{GENDER:|אפשרותך|אפשרותך|אפשרותכם}} לצפות בטקסט המקור של <strong>העריכות {{GENDER:|שלך|שלך|שלכם}}</strong> בדף הזה ולהעתיקו.",
"protectedinterface": "דף זה הוא אחד הדפים המספקים הודעות מערכת לתוכנה שמפעילה את {{SITENAME}}, והוא מוגן כדי למנוע השחתות.\nכדי להוסיף או לשנות תרגומים של הודעות מערכת עבור כל אתרי הוויקי, יש להשתמש ב־[https://translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
"editinginterface": "<strong>אזהרה:</strong> הדף ש{{GENDER:|אתה עורך|את עורכת|אתם עורכים}} הוא אחד הדפים המספקים הודעות מערכת לתוכנה שמפעילה את {{SITENAME}}.\nשינויים בדף הזה ישפיעו על ממשק המשתמש של משתמשים אחרים באתר.",
"translateinterface": "כדי להוסיף או לשנות תרגומים של הודעות מערכת עבור כל אתרי הוויקי, יש להשתמש ב־[https://translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
"pt-login-continue-button": "המשך כניסה לחשבון",
"pt-createaccount": "יצירת חשבון",
"pt-userlogout": "יציאה מהחשבון",
- "php-mail-error-unknown": "שגיאה לא ידועה בפונקציה mail() של PHP",
+ "php-mail-error-unknown": "שגיאה לא ידועה בפונקציה mail() של PHP.",
"user-mail-no-addy": "ניסיון לשלוח דוא\"ל ללא כתובת דוא\"ל.",
"user-mail-no-body": "ניסיון לשלוח דוא\"ל עם תוכן ריק או קצר מאוד.",
"changepassword": "שינוי סיסמה",
"editingsection": "עריכת הדף \"$1\" (פסקה)",
"editingcomment": "עריכת הדף \"$1\" (פסקה חדשה)",
"editconflict": "התנגשות עריכה: $1",
- "explainconflict": "משתמש אחר שינה את הדף מאז שהתחלתם לערוך אותו.\nחלון העריכה העליון מציג את הטקסט בדף כפי שהוא כרגע.\nהשינויים שלכם מוצגים בחלון העריכה התחתון.\nעליכם למזג את השינויים שלכם לתוך הטקסט הקיים.\n<strong>רק</strong> הטקסט בחלון העריכה העליון יישמר כשתלחצו על \"{{int:savearticle}}\".",
+ "explainconflict": "משתמש אחר שינה את הדף מאז שהתחלת לערוך אותו.\nתיבת העריכה העליונה מכילה את הטקסט בדף כפי שהוא כרגע.\nהשינויים שלך מוצגים בתיבת העריכה התחתונה.\nיש למזג את השינויים שלך מתיבת העריכה התחתונה לתיבת העריכה העליונה.\n<strong>רק</strong> הטקסט בתיבת העריכה העליונה יישמר לאחר לחיצה על \"{{int:savearticle}}\".",
"yourtext": "הטקסט שלך",
"storedversion": "גרסה שמורה",
"nonunicodebrowser": "'''אזהרה: הדפדפן שלך אינו תואם לתקן יוניקוד.'''\nכדי למנוע בעיות הנוצרות כתוצאה מכך ולאפשר לך לערוך דפים בבטחה, תווים שאינם ב־ASCII יוצגו בתיבת העריכה כקודים הקסדצימליים.",
- "editingold": "<strong>אזהרה: אתם עורכים גרסה לא עדכנית של דף זה.</strong>\nאם תשמרו את הדף, כל השינויים שנעשו מאז גרסה זו יאבדו.",
+ "editingold": "<strong>אזהרה: {{GENDER:|אתה עורך|את עורכת|אתם עורכים}} גרסה ישנה של דף זה.</strong>\nאם {{GENDER:|תשמור|תשמרי|תשמרו}} את העריכה, כל השינויים שנעשו מאז גרסה זו יאבדו.",
"yourdiff": "הבדלים",
"copyrightwarning": "'''שימו לב:''' תרומתכם ל{{grammar:תחילית|{{SITENAME}}}} תפורסם תחת תנאי הרישיון $2 (ראו $1 לפרטים נוספים). אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאחרים יוכלו להעתיק ממנה בציון המקור – אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים. '''אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!'''",
"copyrightwarning2": "'''שימו לב:''' תורמים אחרים עשויים לערוך או אף להסיר את תרומתכם ל{{grammar:תחילית|{{SITENAME}}}}. אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים (ראו $1 לפרטים נוספים). '''אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!'''",
"protect-expiring-local": "פוקעת ב{{GRAMMAR:תחילית|$1}}",
"protect-expiry-indefinite": "בלתי מוגבלת בזמן",
"protect-cascade": "הגנה על כל הדפים המוכללים בדף זה (הגנה מדורגת)",
- "protect-cantedit": "אין באפשרותך לשנות את רמת ההגנה על דף זה כיוון שאין לך הרשאה לערוך אותו.",
+ "protect-cantedit": "אין {{GENDER:|באפשרותך|באפשרותך|באפשרותכם}} לשנות את רמת ההגנה של דף זה כיוון שאין {{GENDER:|לך|לך|לכם}} הרשאה לערוך אותו.",
"protect-othertime": "זמן אחר:",
"protect-othertime-op": "זמן אחר",
"protect-existing-expiry": "זמן פקיעה נוכחי: $3, $2",
"fix-double-redirects": "עדכון הפניות לכותרת הדף המקורית",
"move-leave-redirect": "השארת הפניה בדף המקורי",
"protectedpagemovewarning": "'''אזהרה:''' דף זה מוגן כך שרק מפעילי מערכת יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
- "semiprotectedpagemovewarning": "'''הערה:''' דף זה מוגן כך שרק משתמשים רשומים יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
+ "semiprotectedpagemovewarning": "<strong>הערה:</strong> דף זה מוגן כך שרק משתמשים רשומים יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
"move-over-sharedrepo": "[[:$1]] כבר קיים במאגר משותף. העברת הקובץ לכותרת זו תדרוס את הקובץ המשותף.",
"file-exists-sharedrepo": "קובץ בשם שנבחר כבר קיים כקובץ משותף.\nיש לבחור שם אחר.",
"export": "ייצוא דפים",
"monthsall": "הכול",
"confirmemail": "אימות כתובת דוא\"ל",
"confirmemail_noemail": "אין לך כתובת דוא\"ל תקפה המוגדרת ב[[Special:Preferences|העדפות המשתמש]] שלך.",
- "confirmemail_text": "אתר זה דורש שתאמתו את כתובת הדוא\"ל שלכם לפני שתשתמשו בשירותי הדוא\"ל. לחצו על הכפתור למטה כדי לשלוח דוא\"ל עם קוד אימות לכתובת הדוא\"ל שהזנתם. טענו את הקישור בדפדפן שלכם כדי לאשר שכתובת הדוא\"ל תקפה.",
- "confirmemail_pending": "ק×\95×\93 ×\90×\99×\9e×\95ת ×\93×\95×\90\"×\9c ×\9b×\91ר × ×©×\9c×\97 ×\90×\9c×\99×\9b×\9d; ×\90×\9d ×\99צרת×\9d ×\90ת ×\94×\97ש×\91×\95×\9f ×\9c×\90×\97ר×\95× ×\94, ×\99×\99ת×\9b×\9f שתרצ×\95 ×\9c×\97×\9b×\95ת ×\9eספר ×\93ק×\95ת ×¢×\93 ש×\99×\92×\99×¢ ×\9c×¤× ×\99 ×©×ª× ×¡×\95 ×\9c×\91קש קוד חדש.",
+ "confirmemail_text": "{{GENDER:|עליך|עלייך|עליכם}} לאמת את כתובת הדוא\"ל {{GENDER:|שלך|שלך|שלכם}} לפני ש{{GENDER:|תוכל|תוכלי|תוכלו}} להשתמש בשירותי הדוא\"ל של {{SITENAME}}.\n{{GENDER:|לחץ|לחצי|לחצו}} על הכפתור שלמטה כדי לשלוח קוד אימות לכתובת הדוא\"ל ש{{GENDER:|הזנת|הזנת|הזנתם}}.\n{{GENDER:|פתח|פִתחי|פִתחו}} את הקישור בדפדפן {{GENDER:|שלך|שלך|שלכם}} כדי לאשר שכתובת הדוא\"ל תקפה.",
+ "confirmemail_pending": "ק×\95×\93 ×\94×\90×\99×\9e×\95ת ×\9b×\91ר × ×©×\9c×\97 ×\9c×\93×\95×\90ר ×\94×\90×\9cק×\98ר×\95× ×\99 {{GENDER:|ש×\9c×\9a|ש×\9c×\9a|ש×\9c×\9b×\9d}};\n×\90×\9d {{GENDER:|×\99צרת|×\99צרת|×\99צרת×\9d}} ×\90ת ×\94×\97ש×\91×\95×\9f ×\9c×\90×\97ר×\95× ×\94, ×\9b×\93×\90×\99 ×\9c×\94×\9eת×\99×\9f ×\9eספר ×\93ק×\95ת ×¢×\93 ש×\94×\93×\95×\90\"×\9c ×\99×\92×\99×¢ ×\9c×¤× ×\99 ×\91קשת קוד חדש.",
"confirmemail_send": "לשלוח קוד אימות",
"confirmemail_sent": "הדוא\"ל עם קוד האימות נשלח.",
"confirmemail_oncreate": "קוד אימות דוא\"ל נשלח לכתובת הדוא\"ל שלכם. הקוד הזה אינו נדרש לכניסה, אך תצטרכו לספקו כדי להשתמש בכל תכונה מבוססת דוא\"ל באתר זה.",
- "confirmemail_sendfailed": "{{SITENAME}} לא הצליח לשלוח לכם הודעת דוא\"ל עם קוד האימות.\nאנא בדקו שאין תווים שגויים בכתובת הדוא\"ל.\n\nתוכנת שליחת הדוא\"ל החזירה את ההודעה הבאה: $1",
+ "confirmemail_sendfailed": "אתר {{SITENAME}} לא הצליח לשלוח דוא\"ל האימות שלך.\nנא לבדוק שבכתובת הדוא\"ל שלך אין תווים בלתי־תקינים.\n\nמערכת שליחת הדוא\"ל החזירה את ההודעה הבאה: $1",
"confirmemail_invalid": "קוד האימות שגוי. ייתכן שפג תוקפו.",
"confirmemail_needlogin": "נדרשת $1 כדי לאמת את כתובת הדוא\"ל שלך.",
"confirmemail_success": "כתובת הדוא\"ל שלך אושרה.\nכעת באפשרותך [[Special:UserLogin|להיכנס לחשבון שלך]] וליהנות מהאתר.",
"revdelete-uname-unhid": "suradničko ime je otkriveno",
"revdelete-restricted": "primijenjeno ograničenje za administratore",
"revdelete-unrestricted": "uklonjeno ograničenje za administratore",
+ "logentry-merge-merge": "$1 je {{GENDER:$2|spojio|spojila}} $3 s $4 (izmjene do $5)",
"logentry-move-move": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4",
"logentry-move-move-noredirect": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 bez preusmjeravanja",
"logentry-move-move_redir": "$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja",
"passwordreset-emailsent-capture": "E-mejl za anulowanje hesła je so pósłała, kotraž so deleka pokazuje.",
"passwordreset-emailerror-capture": "E-mejl za anulowanje hesła je so wutworiła, kotraž so deleka pokazuje, ale słanje {{GENDER:$2|wužiwarjej|wužiwarce}} je so njeporadźiło: $1",
"changeemail": "E-mejlowu adresu změnić abo wotstronić",
- "changeemail-header": "Kontowu e-mejlowu adresu změnić",
+ "changeemail-header": "Wupjelń tutón formular, zo by swoju e-mejlowu adresu změnił. Jeli chceš zwisk e-mejloweje adresy ze swijim kontom wotstronić, wostaj polo e-mejloweje adresy prózdne, hdyž formular preč sćeleš.",
"changeemail-no-info": "Dyrbiš so přizjewić, zo by direktny přistup na tutu stronu měł.",
"changeemail-oldemail": "Aktualna e-mejlowa adresa:",
"changeemail-newemail": "Nowa e-mejlowa adresa:",
"anonpreviewwarning": "''Njejsy přizjewjeny. Składowanje přenošuje twoju IP-adresu do wobdźěłowanskeje historije tuteje strony.''",
"missingsummary": "'''Kedźbu:''' Njejsy žane zjeće zapodał. Jeli hišće raz na \"{{int:savearticle}}\" kliknješ, budźe so twoja změna bjez njeho składować.",
"missingcommenttext": "Prošu zapodaj komentar.",
- "missingcommentheader": "'''Kedźbu:''' Njejsy temu/nadpis za tutón komentar podał. Jeli na „{{int:savearticle}}” kliknješ, składuje so twoja změna bjez temy/nadpisa.",
+ "missingcommentheader": "<strong>Kedźbu:</strong> Njejsy temu za tutón komentar podał. Jeli na „{{int:savearticle}}” kliknješ, składuje so twoja změna bjez temy.",
"summary-preview": "Přehlad zjeća:",
"subject-preview": "Přehlad temy:",
"blockedtitle": "Wužiwar je zablokowany",
"accmailtext": "Připadnje spłodźene hesło za [[User talk:$1|$1]] bu na $2 pósłane. Daj so na stronje ''[[Special:ChangePassword|hesło změnić]]'' při přizjewjenju změnić.",
"newarticle": "(Nowy)",
"newarticletext": "Sy wotkaz k stronje slědował, kotraž hišće njeeksistuje. Zo by stronu wutworił, wupjelń slědowace tekstowe polo (hlej [$1 stronu pomocy] za dalše informacije). Jeli sy zmylnje tu, klikń prosće na tłóčatko <b>Wróćo</b> we swojim wobhladowaku.",
- "anontalkpagetext": "---- ''To je diskusijna strona za anonymneho wužiwarja, kiž hišće konto wutworił njeje abo je njewužiwa. Dyrbimy tohodla numerisku IP-adresu wužiwać, zo bychmy jeho/ju identifikowali. Tajka IP-adresa hodźi so wot wjacorych wužiwarjow zhromadnje wužiwać. Jeli sy anonymny wužiwar a měniš, zo buchu irelewantne komentary k tebi pósłane, [[Special:CreateAccount|wutwor prošu konto]] abo [[Special:UserLogin|přizjew so]], zo by přichodnu šmjatańcu z anonymnymi wužiwarjemi wobešoł.''",
+ "anontalkpagetext": "---- \n<em>To je diskusijna strona za anonymneho wužiwarja, kiž hišće konto wutworił njeje abo je njewužiwa.</em>\nDyrbimy tohodla numerisku IP-adresu wužiwać, zo bychmy jeho/ju identifikowali.\nTajka IP-adresa hodźi so wot wjacorych wužiwarjow zhromadnje wužiwać. Jeli sy anonymny wužiwar a měniš, zo buchu irelewantne komentary k tebi pósłane, [[Special:CreateAccount|wutwor prošu konto]] abo [[Special:UserLogin|přizjew so]], zo by přichodnu šmjatańcu z anonymnymi wužiwarjemi wobešoł.",
"noarticletext": "Tuchwilu tuta strona žadyn tekst njewobsahuje. Móžeš [[Special:Search/{{PAGENAME}}|tutón titul strony na druhich stronach pytać]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} wotpowědne protokole pytać] abo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tutu stronu wutworić]</span>.",
"noarticletext-nopermission": "Tuchwilu žadyn tekst na tutej stronje njeje.\nMóžeš [[Special:Search/{{PAGENAME}}|tutón titul strony]] na druhich stronach pytać abo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pytaj wotpowědne protokole]</span>, ale nimaš prawo, strou wutworić.",
"missing-revision": "Wersija #$1 strony z mjenom \"{{FULLPAGENAME}}\" njeeksistuje.\n\nPřičina je zwjetša zestarjeny wotkaz w stawiznach k stronje, kotraž je so zhašała.\nPodrobnosće móžeš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokolu wušmórnjenjow] namakać.",
"userpage-userdoesnotexist": "Wužiwarske konto „$1“ njeje zregistrowane. Prošu pruwuj, hač chceš tutu stronu woprawdźe wutworić/wobdźěłać.",
"userpage-userdoesnotexist-view": "Wužiwarske konto \"$1\" njeje zregistrowane.",
"blocked-notice-logextract": "Tutón wužiwar je tuchwilu zablokowany. Najnowši protokolowy zapisk so deleka jako referenca podawa:",
- "clearyourcache": "'''Kedźbu: Po składowanju dyrbiš snano pufrowak swojeho wobhladowaka wuprózdnić, zo by změny widźał.''' \n* '''Firefox/Safari:''' Tłóč na ''Umsch'' kliknjo na ''Znowa'' abo tłóč ''Strg-F5'' abo ''Strg-R'' (''⌘-R'' na Macintosh);\n* '''Google Chrome:''' Tłóč na ''Strg-Umsch-R'' (''⌘-Umsch-R'' na Mac)\n* '''Internet Explorer:''' Dźěrź ''Strg'' tłóčeny kliknjo na ''Znowa,'' abo tłóč ''Strg-F5''.\n* '''Opera:''' Wuprózdń pufrowak w ''Extras → Einstellungen'';",
+ "clearyourcache": "<strong>Kedźbu:</strong> Po składowanju dyrbiš snano pufrowak swojeho wobhladowaka wuprózdnić, zo by změny widźał.\n* <strong>Firefox/Safari:</strong> Dźerž tastu <em>Umsch</em> tłóčenu a klikń na <em>Znowa</em> abo tłóč pak <em>Strg-F5</em> abo <em>Strg-R</em> (<em>⌘-R</em> na Mac);\n* <strong>Google Chrome:</strong> Tłóč na <em>Strg-Umsch-R</em> (<em>⌘-Umsch-R</em> na Mac)\n* <strong>Internet Explorer:</strong> Dźěrź tastu <em>Strg</em> tłóčen a klikń na <em>Znowa</em> abo tłóč <em>Strg-F5</em>.\n* <strong>Opera:</strong> Dźi k <em>Menü → Einstellungen</em> (<em>Opera → Einstellungen</em> na Mac) a potom k <em>Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien</em>.",
"usercssyoucanpreview": "'''Pokiw:''' Wužij tłóčku '{{int:showpreview}}', zo by swój nowy css do składowanja testował.",
"userjsyoucanpreview": "'''Pokiw:''' Wužij tłóčatko \"{{int:showpreview}}\", zo by swój nowy JavaScript do składowanja testował.",
"usercsspreview": "'''Wobkedźbujće, zo sej jenož přehlad swojeho wužiwarskeho CSS wobhladuješ. Hišće njeje składowany!'''",
"tog-oldsig": "현재 서명:",
"tog-fancysig": "서명을 위키텍스트로 취급 (자동으로 링크를 걸지 않음)",
"tog-uselivepreview": "실시간 미리 보기 사용하기",
- "tog-forceeditsummary": "편집 요약을 쓰지 않았을 때 알려주기",
+ "tog-forceeditsummary": "편집 요약을 쓰지 않았을 때 물어보기",
"tog-watchlisthideown": "주시문서 목록에서 내 편집을 숨기기",
"tog-watchlisthidebots": "주시문서 목록에서 봇 편집을 숨기기",
"tog-watchlisthideminor": "주시문서 목록에서 사소한 편집을 숨기기",
"password-login-forbidden": "이 사용자 계정 이름과 비밀번호는 사용할 수 없습니다.",
"mailmypassword": "비밀번호 재설정",
"passwordremindertitle": "{{SITENAME}}의 새 임시 비밀번호",
- "passwordremindertext": "$1 IP 주소에서 당신일 수도 있는 누군가가 {{SITENAME}} ($4)의 새 비밀번호를 요청했습니다.\n\"$2\" 사용자의 임시 비밀번호는 \"$3\"로 설정되었습니다. 이것이 자신이 의도한 바라면\n지금 로그인하여 새로운 비밀번호를 만드세요.\n임시 비밀번호는 {{PLURAL:$5|1일|$5일}} 후에 만료됩니다.\n\n이 요청을 다른 사람이 했거나 이전 비밀번호를 기억해 내서 바꿀 필요가 없으면\n이 메시지를 무시하고 이전 비밀번호를 계속 사용할 수 있습니다.",
+ "passwordremindertext": "당신일 수도 있는 $1 IP 주소를 사용하는 사용자가 {{SITENAME}} ($4)의 새 비밀번호를 요청했습니다.\n\"$2\" 사용자의 임시 비밀번호는 \"$3\"로 설정되었습니다. 이것이 자신이 의도한 바라면\n지금 로그인하여 새로운 비밀번호를 만드세요.\n임시 비밀번호는 {{PLURAL:$5|1일|$5일}} 후에 만료됩니다.\n\n이 요청을 다른 사람이 했거나 이전 비밀번호를 기억해 내서 바꿀 필요가 없으면\n이 메시지를 무시하고 이전 비밀번호를 계속 사용할 수 있습니다.",
"noemail": "\"$1\" 사용자는 이메일 주소를 등록하지 않았습니다.",
"noemailcreate": "올바른 이메일 주소를 제공해야 합니다.",
"passwordsent": "\"$1\" 계정의 새로운 비밀번호를 이메일로 보냈습니다.\n비밀번호를 받고 다시 로그인해 주세요.",
"botpasswords-label-delete": "삭제",
"botpasswords-label-resetpassword": "비밀번호 재설정",
"botpasswords-label-grants": "적용할 수 있는 부여:",
- "botpasswords-help-grants": "ê°\9cê°\9cì\9d\98 ë¶\80ì\97¬ 기ë\8a¥ì\9d\80 ì\82¬ì\9a©ì\9e\90 ê³\84ì \95ì\9d´ ì\9d´ë¯¸ ì\86\8cì\9c í\95\98ê³ ì\9e\88ë\8a\94 ì\82¬ì\9a©ì\9e\90 ê¶\8cí\95\9cì\97\90 ë\8c\80í\95\9c ì \91ê·¼ì\9d\84 ì \9cê³µí\95©ë\8b\88ë\8b¤. ì\9e\90ì\84¸í\95\9c ì\82¬í\95ì\9d\80 [[Special:ListGrants|ë¶\80ì\97¬ 목ë¡\9d]]ì\9d\84 í\99\95ì\9d¸í\95´ 주ì\8bì\8b\9cì\98¤.",
+ "botpasswords-help-grants": "ê°\81ê°\81 ë¶\80ì\97¬ë\90\9c ê°\92ì\9d\80 목ë¡\9dì\97\90ì\84\9c ì\82¬ì\9a©ì\9e\90 ê³\84ì \95ì\9d\84 ì\9d´ë¯¸ ê°\96ê³ ì\9e\88ë\8a\94 ì\82¬ì\9a©ì\9e\90 ê¶\8cí\95\9cì\97\90 ì \91ê·¼í\95 ì\88\98 ì\9e\88ë\8a\94 ê¶\8cí\95\9cì\9d\84 ì¤\8dë\8b\88ë\8b¤. ì\9e\90ì\84¸í\95\9c ì \95ë³´ë\8a\94 [[Special:ListGrants|ë¶\80ì\97¬ í\91\9c]]ì\9d\84 ë³´ì\84¸ì\9a\94.",
"botpasswords-label-restrictions": "사용 제한:",
"botpasswords-label-grants-column": "승인됨",
"botpasswords-bad-appid": "\"$1\"이라는 봇 이름은 유효하지 않습니다.",
"passwordreset-capture-help": "이 상자에 체크하면 이메일이 발송된 즉시 임시 비밀번호가 담긴 이메일을 볼 수 있습니다.",
"passwordreset-email": "이메일 주소:",
"passwordreset-emailtitle": "{{SITENAME}} 계정에 대한 자세한 정보",
- "passwordreset-emailtext-ip": "당신일 수도 있는 $1 IP 주소를 사용하는 사용자가 {{SITENAME}} ($4)의 비밀번호 재설정을 요청하였습니다.\n이 이메일 주소와 연관된 {{PLURAL:$3|계정}}의 목록입니다:\n\n$2\n\n{{PLURAL:$3|이 임시 비밀번호}}는 {{PLURAL:$5|1일|$5일}} 후에 만료됩니다.\n이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,\n원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고\n이전의 비밀번호를 계속 사용할 수 있습니다.",
+ "passwordreset-emailtext-ip": "당신일 수도 있는 $1 IP 주소를 사용하는 사용자가 {{SITENAME}} ($4)의 비밀번호 재설정을 요청하였습니다.\n이 이메일 주소와 연관된 사용자 {{PLURAL:$3|계정}}의 목록입니다:\n\n$2\n\n{{PLURAL:$3|이 임시 비밀번호}}는 {{PLURAL:$5|1일|$5일}} 후에 만료됩니다.\n이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,\n원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고\n이전의 비밀번호를 계속 사용할 수 있습니다.",
"passwordreset-emailtext-user": "{{SITENAME}} ($4)의 사용자 $1이 비밀번호 재설정을 요청하였습니다.\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-emailsentemail": "당신의 계정과 연결된 이메일 주소가 있다면, 비밀번호 재설정 메일이 전해질 것입니다.",
"previewerrortext": "변경사항을 미리보기하는 도중 오류가 발생했습니다.",
"blockedtitle": "사용자가 차단됨",
"blockedtext": "'''사용자 계정 또는 IP 주소가 차단되었습니다.'''\n\n차단한 사람은 $1입니다.\n차단한 이유는 다음과 같습니다: $2\n\n* 차단이 시작된 시간: $8\n* 차단이 끝나는 시간: $6\n* 차단된 사용자: $7\n\n$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.\n[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.\n현재 당신의 IP 주소는 $3이고, 차단 ID는 #$5입니다.\n문의할 때에 이 정보를 같이 알려주세요.",
- "autoblockedtext": "당신의 IP 주소는 $1님이 차단한 사용자가 사용했던 IP이기 때문에 자동으로 차단되었습니다.\n차단된 이유는 다음과 같습니다:\n\n:$2\n\n* 차단이 시작된 시간: $8\n* 차단이 끝나는 시간: $6\n* 차단된 사용자: $7\n\n$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.\n\n[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 \"이메일 보내기\" 기능을 사용할 수 있습니다. 또한 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.\n\n현재 IP 주소는 $3이고, 차단 ID는 #$5입니다.\n문의할 때에 이 정보를 같이 알려주세요.",
+ "autoblockedtext": "당신의 IP 주소는 $1님이 차단한 사용자가 사용했던 IP이기 때문에 자동으로 차단되었습니다.\n차단된 이유는 다음과 같습니다:\n\n:$2\n\n* 차단이 시작된 시간: $8\n* 차단이 끝나는 시간: $6\n* 차단된 사용자: $7\n\n$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.\n\n[[Special:Preferences|사용자 환경 설정]]에 올바른 이메일 주소가 있어야만 \"이메일 보내기\" 기능을 사용할 수 있습니다. 또한 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.\n\n현재 IP 주소는 $3이고, 차단 ID는 #$5입니다.\n문의할 때에 이 정보를 같이 알려주세요.",
"blockednoreason": "이유를 입력하지 않음",
"whitelistedittext": "문서를 편집하기 전에 $1해야 합니다.",
"confirmedittext": "문서를 고치려면 이메일 인증 절차가 필요합니다.\n[[Special:Preferences|사용자 환경 설정]]에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다.",
"editingold": "<strong>경고: 이 문서의 오래된 판을 편집하고 있습니다.</strong>\n이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.",
"yourdiff": "차이",
"copyrightwarning": "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요).\n만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.\n<strong>저작권이 있는 내용을 허가 없이 저장하지 마세요!</strong>",
- "copyrightwarning2": "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요.\n만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 $1 문서를 보세요).\n<strong>저작권이 있는 내용을 허가 없이 저장하지 마세요!</strong>",
+ "copyrightwarning2": "{{SITENAME}}에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요.\n만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 $1 문서를 보세요).\n<strong>저작권이 있는 내용을 허가 없이 저장하지 마세요!</strong>",
"editpage-cannot-use-custom-model": "이 문서의 콘텐츠 모델은 변경될 수 없습니다.",
"longpageerror": "'''오류: 문서의 크기가 {{PLURAL:$1|$1킬로바이트}}로 최대 크기인 {{PLURAL:$2|$2킬로바이트}}보다 큽니다.'''\n저장할 수 없습니다.",
"readonlywarning": "<strong>경고: 데이터베이스가 관리를 위해 잠겨 있습니다. 따라서 문서를 편집한 내용을 지금 저장할 수 없습니다.</strong>\n편집 내용을 복사하여 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.\n\n데이터베이스를 잠근 시스템 관리자가 남긴 설명은 다음과 같습니다: $1",
"permissionserrors": "권한 오류",
"permissionserrorstext": "해당 명령을 수행할 권한이 없습니다. 다음 {{PLURAL:$1|이유}}를 확인해보세요:",
"permissionserrorstext-withaction": "$2 권한이 없습니다. 다음 {{PLURAL:$1|이유}}를 확인해주세요:",
- "contentmodelediterror": "ì\82¬ì\9a©ì\9e\90ë\8a\94 ì\9d´ í\8c\90ì\9d\84 í\8e¸ì§\91í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ì½\98í\85\90ì¸ ëª¨ë\8d¸ì\9d\80 <code>$1</code>ì\9d´ë©°, ì\9d´ 문ì\84\9cì\9d\98 í\98\84 콘텐츠 모델은 <code>$2</code>이므로 차이가 있습니다.",
+ "contentmodelediterror": "ì\9d´ í\8c\90ì\9d\84 í\8e¸ì§\91í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ì½\98í\85\90ì¸ ëª¨ë\8d¸ì\9d\80 <code>$1</code>ì\9d´ë©°, ì\9d´ 문ì\84\9cì\9d\98 í\98\84ì\9e¬ 콘텐츠 모델은 <code>$2</code>이므로 차이가 있습니다.",
"recreate-moveddeleted-warn": "<strong>경고: 삭제된 문서를 다시 만들고 있습니다.</strong>\n\n이 문서를 계속 편집하는 것이 적합한 것인지 확인해주세요.\n편의를 위해 삭제와 이동 기록을 다음과 같이 제공합니다:",
"moveddeleted-notice": "이 문서는 삭제되었습니다.\n이 문서의 삭제 및 이동 기록은 다음과 같습니다.",
"moveddeleted-notice-recent": "죄송합니다, 이 문서는 최근 (24시간 내)에 삭제된 적이 있습니다.\n삭제와 이동 기록이 참고를 위해 남겨져 있습니다.",
"currentrev": "최신판",
"currentrev-asof": "$1 기준 최신판",
"revisionasof": "$1 판",
- "revision-info": "{{GENDER:$6|$2}} 사용자의 $1 판$7",
+ "revision-info": "{{GENDER:$6|$2}}님의 $1 판$7",
"previousrevision": "← 이전 판",
"nextrevision": "다음 판 →",
"currentrevisionlink": "최신판",
"email": "이메일",
"prefs-help-realname": "실명은 선택 사항입니다.\n실명을 입력하면 당신의 기여에 대한 저작자 표시에 쓰이게 될 수 있습니다.",
"prefs-help-email": "이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호를 재설정하기 위해 필요합니다.",
- "prefs-help-email-others": "자신의 문서나 토론 문서에 있는 이메일 보내기 링크로 다른 사용자가 연락할 수 있게 할 수도 있습니다.\n이 경우에도 이메일 주소는 다른 사용자가 연락할 때 공개되지 않습니다.",
+ "prefs-help-email-others": "자신의 사용자 문서나 토론 문서에 있는 이메일 보내기 링크로 다른 사용자가 연락할 수 있게 할 수도 있습니다.\n이 경우에도 이메일 주소는 다른 사용자가 연락할 때 공개되지 않습니다.",
"prefs-help-email-required": "이메일 주소가 필요합니다.",
"prefs-info": "기본 정보",
"prefs-i18n": "언어 설정",
"rollbacklinkcount-morethan": "{{PLURAL:$1|편집}} $1회 이상 되돌리기",
"rollbackfailed": "되돌리기 실패",
"rollback-missingparam": "요청에 필요한 변수가 존재하지 않습니다.",
- "cantrollback": "í\8e¸ì§\91ì\9d\84 ë\90\98ë\8f\8c릴 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.\n문ì\84\9c를 í\8e¸ì§\91í\95\9c ì\82¬ì\9a©자가 한 명뿐입니다.",
+ "cantrollback": "í\8e¸ì§\91ì\9d\84 ë\90\98ë\8f\8c릴 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.\n문ì\84\9c를 í\8e¸ì§\91í\95\9c ì \80자가 한 명뿐입니다.",
"alreadyrolled": "[[:$1]]에서 [[User:$2|$2]] ([[User talk:$2|토론]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])의 편집을 되돌릴 수 없습니다.\n누군가가 이미 문서를 고치거나 되돌렸습니다.\n\n마지막으로 이 문서를 편집한 사용자는 [[User:$3|$3]] ([[User talk:$3|토론]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])입니다.",
"editcomment": "편집 요약: <em>$1</em>",
"revertpage": "[[Special:Contributions/$2|$2]]([[User talk:$2|토론]])의 편집을 [[User:$1|$1]]의 마지막 판으로 되돌림",
"unblockip": "사용자 차단 해제",
"unblockiptext": "아래의 양식에 차단 해제하려는 IP 주소나 사용자 이름을 입력하세요.",
"ipusubmit": "차단 해제",
- "unblocked": "[[User:$1|$1]] 사용자의 차단을 해제했습니다.",
+ "unblocked": "[[User:$1|$1]]님의 차단을 해제했습니다.",
"unblocked-range": "$1 대역이 차단 해제되었습니다.",
"unblocked-id": "$1 차단이 해제되었습니다.",
"unblocked-ip": "[[Special:Contributions/$1|$1]]님이 차단 해제되었습니다.",
"revdelete-restricted": "관리자에게 제한을 적용함",
"revdelete-unrestricted": "관리자에 대한 제한을 해제함",
"logentry-block-block": "$1님이 {{GENDER:$4|$3}}님을 $5 {{GENDER:$2|차단했습니다}} $6",
- "logentry-block-unblock": "$1님이 {{GENDER:$4|$3}} 사용자의 {{GENDER:$2|차단을 해제했습니다}}",
+ "logentry-block-unblock": "$1님이 {{GENDER:$4|$3}}님의 {{GENDER:$2|차단을 해제했습니다}}",
"logentry-block-reblock": "$1님이 {{GENDER:$4|$3}}님의 차단 기간을 $5 설정으로 {{GENDER:$2|바꾸었습니다}} $6",
"logentry-suppress-block": "$1님이 {{GENDER:$4|$3}} 사용자를 $5 {{GENDER:$2|차단했습니다}} $6",
"logentry-suppress-reblock": "$1님이 {{GENDER:$4|$3}}님의 차단 기간을 $5 설정으로 {{GENDER:$2|바꾸었습니다}} $6",
"logentry-protect-modify": "$1님이 $3 문서의 보호 수준을 {{GENDER:$2|바꾸었습니다}} $4",
"logentry-protect-modify-cascade": "$1님이 $3 문서의 보호 수준을 {{GENDER:$2|바꾸었습니다}} $4 [연쇄적]",
"logentry-rights-rights": "$1님이 {{GENDER:$6|$3}}님의 권한을 $4에서 $5(으)로 {{GENDER:$2|바꾸었습니다}}",
- "logentry-rights-rights-legacy": "$1님이 $3 사용자의 권한을 {{GENDER:$2|바꾸었습니다}}",
- "logentry-rights-autopromote": "$1님이 권한을 자동적으로 $4에서 $5으로 {{GENDER:$2|바꾸었습니다}}",
+ "logentry-rights-rights-legacy": "$1님이 $3님의 권한을 {{GENDER:$2|바꾸었습니다}}",
+ "logentry-rights-autopromote": "$1님이 권한을 자동적으로 $4에서 $5(으)로 {{GENDER:$2|바꾸었습니다}}",
"logentry-upload-upload": "$1님이 $3 파일을 {{GENDER:$2|올렸습니다}}",
"logentry-upload-overwrite": "$1님이 $3의 새 판을 {{GENDER:$2|올렸습니다}}",
"logentry-upload-revert": "$1님이 $3 파일을 {{GENDER:$2|올렸습니다}}",
"logentry-tag-update-add-logentry": "$1님이 $3 문서의 기록 항목 $5에 $6 {{PLURAL:$7|태그}}를 {{GENDER:$2|추가했습니다}}",
"logentry-tag-update-remove-revision": "$1님이 $3 문서의 $4판에서 $8 {{PLURAL:$9|태그}}를 {{GENDER:$2|제거했습니다}}",
"logentry-tag-update-remove-logentry": "$1님이 $3 문서의 기록 항목 $5에서 $8 {{PLURAL:$9|태그}}를 {{GENDER:$2|제거했습니다}}",
- "logentry-tag-update-revision": "$1님이 $3 문서의 $4 판에서 태그를 {{GENDER:$2|업데이트했습니다}} ($6 {{PLURAL:$7|추가함}}; $8 {{PLURAL:$9|제거함}})",
+ "logentry-tag-update-revision": "$1님이 $3 문서의 $4판에서 태그를 {{GENDER:$2|업데이트했습니다}} ($6 {{PLURAL:$7|추가함}}; $8 {{PLURAL:$9|제거함}})",
"logentry-tag-update-logentry": "$1님이 $3 문서의 기록 항목 $5에 있는 태그를 {{GENDER:$2|업데이트했습니다}} ($6 {{PLURAL:$7|추가함}}; $8 {{PLURAL:$9|제거함}})",
"rightsnone": "(없음)",
"revdelete-summary": "편집 요약",
"expand_templates_generate_rawhtml": "원본 HTML 보이기",
"expand_templates_preview": "미리 보기",
"expand_templates_preview_fail_html": "<em>{{SITENAME}}에서 순수 HTML 입력을 허용한 상태에서 세션 데이터가 분실되었습니다. 그러므로 자바스크립트 공격을 예방하기 위해 미리 보기는 숨겨져 있습니다.</em>\n\n<strong>적합하게 미리 보기를 시도했다면 다시 시도해 주십시오.</strong>\n그래도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인하여 사용자의 브라우저가 이 사이트에서 쿠키를 허용하는지 확인해 주십시오.",
- "expand_templates_preview_fail_html_anon": "<em>{{SITENAME}}에서 순수 HTML 입력을 허용한 상태에서 사용자는 로그인되어 있지 않습니다. 그러므로 자바스크립트 공격을 예방하기 위해 미리 보기는 숨겨져 있습니다.</em>\n\n<strong>적합하게 미리 보기를 시도했다면 [[Special:UserLogin|로그인]]한 다음 다시 시도해 주십시오.",
+ "expand_templates_preview_fail_html_anon": "<em>{{SITENAME}}에서 순수 HTML 입력을 허용한 상태에서 사용자는 로그인되어 있지 않습니다. 그러므로 자바스크립트 공격을 예방하기 위해 미리 보기는 숨겨져 있습니다.</em>\n\n<strong>적합하게 미리 보기를 시도했다면 [[Special:UserLogin|로그인]]한 다음 다시 시도해 주십시오.</strong>",
"expand_templates_input_missing": "전개할 내용을 입력해야 합니다.",
"pagelanguage": "문서 언어 바꾸기",
"pagelang-name": "문서",
"listingcontinuesabbrev": "jatkuu",
"about": "Tietuo",
"article": "Šivu",
- "newwindow": "(avautuu uuvešša ikkunašša)",
+ "newwindow": "(avautuu uuvvešša ikkunašša)",
"cancel": "Keškeytä",
"moredotdotdot": "Lisyä...",
"mypage": "Šivu",
"nstab-main": "Šivu",
"nstab-user": "Käyttäjäšivu",
"nstab-media": "Mediašivu",
- "nstab-special": "Toimintosivu",
+ "nstab-special": "Toimintošivu",
"nstab-project": "Projektišivu",
"nstab-image": "Faili",
"nstab-template": "Malli",
"passwordreset": "Kirjuta šalašana uuvveštah",
"passwordreset-username": "Käyttäjänimi:",
"passwordreset-domain": "Domain:",
- "bold_sample": "Sankie teksta",
- "bold_tip": "Sankie teksta",
+ "bold_sample": "Lihavointa",
+ "bold_tip": "Lihavointa",
"italic_sample": "Kuršivoitu teksti",
"italic_tip": "Kuršivointa",
"link_sample": "Linkki",
"link_tip": "Šiämilinkki",
"extlink_sample": "http://www.example.com linkin nimi",
- "extlink_tip": "Ulkohini linkki (musta http:// alkuh)",
- "headline_sample": "Rupriekkatekšta",
- "headline_tip": "Tašon 2 rupriekka",
+ "extlink_tip": "Ulkopuolini linkki (muissa laittua http:// alkuh)",
+ "headline_sample": "Očikkoteksti",
+ "headline_tip": "Tašon 2 očikko",
"nowiki_sample": "Lisyä täh teksti, kumpaista ei pijä korjata",
"nowiki_tip": "Penkuo wiki-korjaušta",
"image_tip": "Tallennettu faili",
"media_tip": "Linkki failih",
"sig_tip": "Teijän allakirjutuš ta aika",
- "hr_tip": "Horišontualini viiva (älä käytä liijakši)",
+ "hr_tip": "Vuakašuora viiva (elä käytä liijakši)",
"summary": "Yhtehveto",
"minoredit": "Tämä on pieni muutoš",
"watchthis": "Tarkkaile tätä šivuo",
"nextn-title": "Šeuruava $1 {{PLURAL:$1|tuloš|tulokšet}}",
"shown-title": "Näytä $1 {{PLURAL:$1|tuloš|tulošta}} šivulla",
"viewprevnext": "Näytä ($1 {{int:pipe-separator}} $2) ($3)",
- "searchmenu-new": "<strong>Luaji šivu \"[[:$1]]\" täh wikih!</strong> {{PLURAL:$2|0=|Kačo niise šiun eččolla löyvetyt šivut.|Kačo niise löyvetyt ečon tulokšet.}}",
+ "searchmenu-new": "<strong>Luaji šivu \"[[:$1]]\" täh wikih!</strong> {{PLURAL:$2|0=|Kačo niise šiun ečolla löyvetyt šivut.|Kačo niise löyvetyt ečon tulokšet.}}",
"searchprofile-articles": "Šisältöšivut",
"searchprofile-images": "Multimedija",
"searchprofile-everything": "Kaikki",
"newpageletter": "U",
"boteditletter": "b",
"rc-change-size-new": "$1 {{PLURAL:$1|baitti|baittie}} muutokšien jälkeh",
- "recentchangeslinked": "Toini toišeh liittyjät kohennukšet",
+ "recentchangeslinked": "Toini toiseh liittyjät kohennukšet",
"recentchangeslinked-toolbox": "Toini toiseh liittyjät kohennukšet",
"recentchangeslinked-title": "Šivuo \"$1\" koškijat muutokšet",
"recentchangeslinked-summary": "Tämä on niijen šivujen korjaukšien luvettelo, kumpasih viittuau tämä šivu (tahi šiih luokkah kuulujat). Šivut, kumpaset kuulutah [[Special:Watchlist|teijän valvontaluvetteloh]], ollah kirjutettu <strong>lihavalla</strong>.",
"tooltip-n-help": "Täštä voit kyšyö apuo",
"tooltip-t-whatlinkshere": "Kaikkien šivujen luvettelo, kumpasista on linkki täh šivuh",
"tooltip-t-recentchangeslinked": "Viimesimmät muokkaukšet šivuloilla, kumpasih viitatah tältä šivulta",
- "tooltip-feed-atom": "Atom-šyöte tällä sivulla",
+ "tooltip-feed-atom": "Atom-šyöteh tällä šivulla",
"tooltip-t-contributions": "Lista tämän käyttäjän kirjutukšista {{GENDER:$1|this user}}",
"tooltip-t-upload": "Tallenna failija",
"tooltip-t-specialpages": "Kaikkien erikoisien šivujen luvettelo",
"svg-long-desc": "SVG-faili, oletuštarkkuš $1 × $2 pikselie, failin koko: $3",
"show-big-image": "Alkuperäni faili",
"show-big-image-preview": "Tämän failin koko: $1.",
- "show-big-image-other": "{{PLURAL:$2|Toini resolutija|Toiset resolutijat}}: $1.",
+ "show-big-image-other": "{{PLURAL:$2|Toini resol'uutijo|Toiset resol'uutijot}}: $1.",
"show-big-image-size": "$1 × $2 kuvapistehtä",
"ilsubmit": "Ečintä",
"metadata": "Metatiijoštot",
"metadata-help": "Failih kuulutah lisätiijot, kumpasie tavan mukah lisätäh digikameralla tahi skannerilla. Još kuvua on muokattu šen alkuperäsen luonnan jälkeh, niin eryähät parametrit voijah erota nykyseštä kuvašta.",
"metadata-fields": "Šeuruavat metatietojen kentät ruvetah näkymäh kuvašivulla, konša metatietojen taulukko ei ole näkyvissä.\nMuut kentät ollah automattisešti piilotettuja.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
"exif-orientation": "Šuunta",
- "exif-xresolution": "Kuvan resoluutijo vuakašuorašša",
- "exif-yresolution": "Vertikualini resolutsija",
+ "exif-xresolution": "Kuvan resol'uutijo vuakašuorašša",
+ "exif-yresolution": "Pistyšuora resol'uutijo",
"exif-datetime": "Failin muutokšen päivä ta aika",
"exif-make": "Kameran valmistaja",
"exif-model": "Kameran malli",
"viewcount": "'Sta paggina a l'è stæta vista {{PLURAL:$1|solo 'na vòtta|$1 vòtte}}.",
"protectedpage": "Paggina protetta",
"jumpto": "Vanni a:",
- "jumptonavigation": "Navegaçión",
+ "jumptonavigation": "navegaçión",
"jumptosearch": "çerca",
"view-pool-error": "Scuza ma a-o momento i server sono stracarreghi.\nTroppi utenti çercan d' amiâ sta paggina.\nAspeta quarche menuto primma de çercâ torna d'accede a sta pagina.\n\n$1",
"generic-pool-error": "Scuza ma a-o momento i server sono stracarreghi.\nTroppi utenti çercan d' amiâ sta risorsa.\nAspeta quarche menuto primma de çercâ torna d'accede a sta risorsa.",
"userpage-userdoesnotexist": "L'utensa \"$1\" a no corisponde a un utente registròu.\nTi veu davei creâ o modificâ sta paggina?",
"userpage-userdoesnotexist-view": "L'utensa \"$1\" a no l'è registrâ.",
"blocked-notice-logextract": "St'utente o l'è attualmente bloccòu.\nL'urtimo elemento into registro di blocchi o l'è riportòu chì appreuvo pe informassion:",
- "clearyourcache": "<strong>Notta:</strong> doppo avei salrvou, poriæ ese necessaio netezâ a cache do proppio browser pe vedde i cangiamenti. \n*<strong>Firefox / Safari:</strong> tegni sciacou o tasto de maiuscole <em>Shift</em> e clicca <em>Recarega</em>, oppû sciacca <em>Ctrl-F5</em> ò <em>Ctrl-R</em> (<em>⌘-R</em> su Mac)\n*<strong>Google Chrome:</strong> sciacca <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> insce un Mac)\n*<strong>Internet Explorer:</strong> tegni sciacou o tasto <em>Ctrl</em> e clicca <em>Aggiorna</em>, oppû sciacca <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Vanni into <em>Menu → Impostaçioin</em> (<em>Opera → Preferençe</em> insce 'n Mac) e dapoeu inte <em>Privacy & segueçça → Nettezza dæti do browser → Inmaggine e file inta cache</em>.",
+ "clearyourcache": "<strong>Notta:</strong> doppo avei sarvou, poriæ ese necessaio netezâ a cache do proppio browser pe vedde i cangiamenti. \n*<strong>Firefox / Safari:</strong> tegni sciacou o tasto de maiuscole <em>Shift</em> e clicca <em>Recarega</em>, oppû sciacca <em>Ctrl-F5</em> ò <em>Ctrl-R</em> (<em>⌘-R</em> su Mac)\n*<strong>Google Chrome:</strong> sciacca <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> insce un Mac)\n*<strong>Internet Explorer:</strong> tegni sciacou o tasto <em>Ctrl</em> e clicca <em>Aggiorna</em>, oppû sciacca <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Vanni into <em>Menu → Impostaçioin</em> (<em>Opera → Preferençe</em> insce 'n Mac) e dapoeu inte <em>Privacy & segueçça → Nettezza dæti do browser → Inmaggine e file inta cache</em>.",
"usercssyoucanpreview": "'''Suggerimento:''' adeuvia o pomello 'Amia l'anteprimma' per provâ o to neuvo CSS primma de sarvâlo.",
"userjsyoucanpreview": "'''Suggerimento:''' adeuvia o pomello 'Amia l'anteprimma' per provâ o to neuvo JavaScript primma de sarvâlo.",
"usercsspreview": "'''Questa a l'è solo un'anteprimma do proppio CSS personâ. E modiffiche no son ancon stæte sarvæ!'''",
"currentrevisionlink": "Ûrtima revixon",
"cur": "cor",
"next": "Proscimo",
- "last": "Ûrtima",
+ "last": "prec",
"page_first": "primma",
"page_last": "ûrtima",
"histlegend": "Confronto tra verscioîn: selession-a e cascette corispondenti a-e verscioîn dexidiæ e schissa Invio oppû o pomello da basso.\n\nLegenda: (corr) = differense co-a verscion corrente, (prec) = differense co-a verscion precedente, '''m''' = modiffica minô",
"lineno": "Linia $1:",
"compareselectedversions": "Confronta e verscioîn selessionæ",
"showhideselectedversions": "Mostra/ascondi verscioin seleçionæ",
- "editundo": "Anùlla",
+ "editundo": "anùlla",
"diff-empty": "(Nisciun-a diferença)",
"diff-multi-sameuser": "({{PLURAL:$1|Una verscion intermedia|$1 De verscioin intermedie}} de 'n mæximo utente {{PLURAL:$1|a no l'è mostrâ|no son mostræ}})",
"diff-multi-otherusers": "({{PLURAL:$1|Una verscion intermedia|$1 De verscioin intermedie}} de {{PLURAL:$2|'n atro utente|$2 utenti}} {{PLURAL:$1|a no l'è mostrâ|no son mostræ}})",
"next-page": "paggina succesciva",
"prevn-title": "{{PLURAL:$1|rezoltato precedénte|rezoltati precedénti}}",
"nextn-title": "{{PLURAL:$1|Risultou succescivo|$1 risultæ succescivi}}",
- "shown-title": "Fanni védde {{PLURAL:$1|in rizoltato|$1 rizoltati}} pe pàgina",
+ "shown-title": "Fanni védde {{PLURAL:$1|un rizultou|$1 rizultæ}} pe pàgina",
"viewprevnext": "Veddi ($1 {{int:pipe-separator}} $2) ($3).",
"searchmenu-exists": "'''Inte questa wiki gh'è za 'na pàgina co-o nómme \"[[:$1]]\"'''",
"searchmenu-new": "<strong>Crea a paggina \"[[:$1]]\" insce questo wiki!</strong> {{PLURAL:$2|0=|Amia ascì a paggina trovâ co-a teu riçerca|Amia ascì i risultæ da riçerca}}",
"booksources-search-legend": "Çerca e fonti",
"booksources-isbn": "Codice ISBN:",
"booksources-search": "Çerca",
- "booksources-text": "De sotta unn-a lista de inganci a di ätri sciti che vendan libbri neuvi e vegi e che porrieivan avei ciu informaçioin in scî libbri che ti te çerchi",
+ "booksources-text": "De sotta unn-a lista d'inganci a di ätri sciti che vendan libbri neuvi e vegi e che porrieivan avei ciu informaçioin in scî libbri che ti çerchi",
"booksources-invalid-isbn": "O ISBN inserio pâ no ese vallido; controlla che no ghe segge stæto di ari into copiâlo da-a fonte originale.",
"specialloguserlabel": "Açion effettuâ da:",
"speciallogtitlelabel": "Açion effettuâ sciu (tittolo da paggina ò {{ns:user}}:Nomme utente):",
"emailsend": "Spèdi",
"emailccme": "Mandame unn-a copia do messagio co unn-a lettìa elettronega.",
"emailccsubject": "Coppia do messaggio inviou a $1: $2",
- "emailsent": "Lettìa elettronega spèdïa",
- "emailsenttext": "A teu lettìa elettronega a l'è stæta spedïa.",
+ "emailsent": "E-mail spedïa",
+ "emailsenttext": "A teu e-mail a l'è stæta spedïa.",
"emailuserfooter": "Questa email a l'è stæta {{GENDER:$1|inviâ}} da $1 a {{GENDER:$2|$2}} a traverso a fonçion \"{{int:emailuser}}\" insce {{SITENAME}}.",
"usermessage-summary": "Messaggio de scistema",
"usermessage-editor": "Messaggê de scistema",
"tooltip-ca-edit": "Modiffica sta paggina.",
"tooltip-ca-addsection": "Inça 'na seçión nêuva",
"tooltip-ca-viewsource": "'Sta pagina a l'è protetta, ma ti peu védde o sêu còdice sorgente.",
- "tooltip-ca-history": "Verscioìn précedenti da pàgina",
+ "tooltip-ca-history": "Verscioìn precedente da pàgina",
"tooltip-ca-protect": "Protezi 'sta paggina",
"tooltip-ca-unprotect": "Càngia a proteçión de sta paggina",
"tooltip-ca-delete": "Scancella sta pàgina",
"file-info": "dimenscion do file: $1, tipo MIME: $2",
"file-info-size": "$1 × $2 pixel, dimenscioîn: $3, tippo MIME: $4",
"file-info-size-pages": "$1 × $2 pixel, dimenscion do file: $3, tipo MIME: $4, $5 {{PLURAL:$5|paggina|paggine}}",
- "file-nohires": "No ghe son verscioìn a rezoluçion ciù âta.",
+ "file-nohires": "Verscioìn co-a resoluçion ciù âta no ghe n'è.",
"svg-long-desc": "file in formato SVG, dimenscioìn nominâli $1 × $2 pixel, dimenscioin do file: $3",
"svg-long-desc-animated": "file in formato SVG animou, dimenscion nominale $1 × $2 pixel, dimenscion do file: $3",
"svg-long-error": "File SVG non vallido: $1",
"Mjbmr",
"Macofe",
"Huji",
- "Miladrahimi"
+ "Miladrahimi",
+ "Ebraminio"
]
},
"tog-underline": "کڕ(خط)کیشائن ژێر پیوندەل:",
"password-change-forbidden": "Jus negalite keisti slaptažodžių šioje wiki.",
"externaldberror": "Yra arba išorinė autorizacijos duomenų bazės klaida arba jums neleidžiama atnaujinti jūsų išorinės paskyros.",
"login": "Prisijungti",
+ "login-security": "Patvirtinkite savo tapatybę",
"nav-login-createaccount": "Prisijungti / sukurti paskyrą",
"userlogin": "Prisijungti / sukurti paskyrą",
"userloginnocreate": "Prisijungti",
"createacct-reason-ph": "Kodėl kuriate kitą paskyrą",
"createacct-submit": "Sukurkite savo paskyrą",
"createacct-another-submit": "Sukurti paskyrą",
+ "createacct-continue-submit": "Tęsti paskyros kūrimą",
+ "createacct-another-continue-submit": "Tęsti paskyros kūrimą",
"createacct-benefit-heading": "{{SITENAME}} sukurtas žmonių kaip jūs.",
"createacct-benefit-body1": "{{PLURAL:$1|keitimas|keitimai|keitimų}}",
"createacct-benefit-body2": "{{PLURAL:$1|puslapis|puslapiai}}",
"createacct-another-realname-tip": "Tikrojo vardo nurodyti nebūtina.\nJei pasirinksite jį nurodyti, jis bus naudojamas parodymui, kas atliko straipsnio papildymus.",
"pt-login": "Prisijungti",
"pt-login-button": "Prisijungti",
+ "pt-login-continue-button": "Tęsti prisijungimą",
"pt-createaccount": "Sukurti paskyrą",
"pt-userlogout": "Atsijungti",
"php-mail-error-unknown": "Nežinoma klaida PHP mail() funkcijoje",
"newpassword": "Naujas slaptažodis:",
"retypenew": "Pakartokite naują slaptažodį:",
"resetpass_submit": "Nustatyti slaptažodį ir prisijungti",
- "changepassword-success": "Jūsų slaptažodis pakeistas sėkmingai!",
+ "changepassword-success": "Jūsų slaptažodis buvo pakeistas!",
"changepassword-throttled": "Jūs pastaruoju metu atlikote pernelyg daug bandymų prisijungti. Prašome luktelėti $1 prieš bandant iš naujo.",
"botpasswords": "Boto slaptažodžiai",
"botpasswords-summary": "<em>Boto slaptažodžiai</em> leidžia pasiekti naudotojo paskyrą per API, nenaudojant paskyros pagrindinio prisijungimo įgaliojimų. Naudotojo teisės prieinamos būnant prisijungus su boto slaptažodžiu gali būti apribotos.\n\nJeigu nežinote kodėl galite norėti tai daryti, jūs tikriausiai neturėtumėte to daryti. Niekas jūsų neturėtų prašyti sugeneruoti vieno ir perduoti jiems.",
"botpasswords-invalid-name": "Nurodytame naudotojo varde nėra boto slaptažodžio skirtuko (\"$1\").",
"botpasswords-not-exist": "Naudotojas \"$1\" neturi boto \"$2\" slaptažodžio.",
"resetpass_forbidden": "Slaptažodžiai negali būti pakeisti",
+ "resetpass_forbidden-reason": "Slaptažodžiai negali būti pakeisti: $1",
"resetpass-no-info": "Jūs turite būti prisijungęs, kad pasiektumėte puslapį tiesiogiai.",
"resetpass-submit-loggedin": "Keisti slaptažodį",
"resetpass-submit-cancel": "Atšaukti",
"passwordreset-emailsentusername": "Jeigu buvo el. paštas susietas su šiuo naudotojo vardu, tai slaptažodžio atkūrimo el. laiškas bus išsiųstas.",
"passwordreset-emailsent-capture": "Slaptažodžio priminimo laiškas bus išsiųstas, toks koks parodytas.",
"passwordreset-emailerror-capture": "Priminimo elektroninis laiškas buvo sukurtas, toks, koks parodytas žemiau, bet pasiuntimas naudotojui buvo nesėkmingas: $1",
+ "passwordreset-invalideamil": "Neteisingas el. pašto adresas",
+ "passwordreset-nodata": "Vartotojo vardas ir el. paštas buvo nepateikti",
"changeemail": "Pakeisti ar pašalinti el. pašto adresą",
"changeemail-header": "Užpildykite šią formą, kad pakeistumėte savo el. pašto adresą. Jeigu norite pašalinti bet kurio el. pašto adreso susiejimą su savo paskyra, palikite naujojo el. pašto adreso lauką tuščią, kai pateiksite formą.",
"changeemail-passwordrequired": "Jums reikės įvesti savo slaptažodį, kad patvirtintumėte šį pakeitimą.",
"mergehistory-empty": "Versijos negali būti sujungtos",
"mergehistory-done": "$3 $1 {{PLURAL:$3|versija|versijos|versijų}} sėkmingai {{PLURAL:$3|sujungta|sujungtos|sujungta}} su [[:$2]].",
"mergehistory-fail": "Nepavyksta atlikti istorijų sujungimo, prašome patikrinti puslapio ir laiko parametrus.",
+ "mergehistory-fail-bad-timestamp": "Laiko nuoroda negalima.",
+ "mergehistory-fail-invalid-source": "Šaltinio puslapis negalima.",
"mergehistory-fail-invalid-dest": "Paskirties puslapis yra neteisingas.",
+ "mergehistory-fail-permission": "Nepakanka teisių istorijai sujungti.",
+ "mergehistory-fail-self-merge": "Šaltinio ir tikslo puslapiai yra vienodi",
"mergehistory-fail-toobig": "Nepavyksta sulieti istorijos, nes būtina pernešti daugiau, nei leidžia $1 riba, {{PLURAL:$1|versijos|versijų}}.",
"mergehistory-no-source": "Šaltinio puslapis $1 neegzistuoja.",
"mergehistory-no-destination": "Rezultato puslapis $1 neegzistuoja.",
"userrights-changeable-col": "Grupės, kurias galite keisti",
"userrights-unchangeable-col": "Grupės, kurių negalite keisti",
"userrights-conflict": "Naudotojo teisių konfliktas! Prašome dar kartą taikyti savo keitimus.",
- "userrights-removed-self": "Jūs sėkmingai panaikinote savo paties teises. Taigi, daugiau nebegalite pasiekti šio puslapio.",
+ "userrights-removed-self": "Jūs pašalinote savo paties teises. Taigi, nebegalite pasiekti šio puslapio.",
"group": "Grupė:",
"group-user": "Naudotojai",
"group-autoconfirmed": "Automatiškai patvirtinti naudotojai",
"right-override-export-depth": "Eksportuoti puslapius įtraukiant susietus puslapius iki 5 lygio gylio",
"right-sendemail": "Siųsti el. laišką kitiems naudotojams",
"right-passwordreset": "Peržiūrėti slaptažodžio pakeitimo e-mail laiškus",
- "right-managechangetags": "Kurti ir ištrinti [[Special:Tags|žymes]] iš duomenų bazės",
+ "right-managechangetags": "Kurti ir (de)aktyvuoti [[Special:Tags|žymes]]",
"right-applychangetags": "Taikyti [[Special:Tags|žymes]] kartu su pokyčiais",
"right-changetags": "Pridėti ir ištrinti savavališkus [[Special:Tags|žymes]] individualiuose pakeitimuose ir žurnalo įrašuose",
+ "right-deletechangetags": "Ištrinti [[Special:Tags|žymes]] iš duomenų bazės",
"grant-generic": "\"$1\" teisių rinkinys",
"grant-group-page-interaction": "Sąveikauti su puslapiais",
"grant-group-file-interaction": "Sąveikauti su medija",
"rightslogtext": "Pateikiamas naudotojų teisių pakeitimų sąrašas.",
"action-read": "skaityti šį puslapį",
"action-edit": "keisti šį puslapį",
- "action-createpage": "kurti puslapius",
+ "action-createpage": "kurti šį puslapį",
"action-createtalk": "sukurti šį diskusijų puslapį",
"action-createaccount": "kurti šią naudotojo paskyrą",
"action-autocreateaccount": "Automatiškai sukurti šią išorinę naudotojo paskyrą",
"action-viewmyprivateinfo": "peržiūrėti jūsų privačią informaciją",
"action-editmyprivateinfo": "redaguoti savo privačią informaciją",
"action-editcontentmodel": "redaguoti puslapio turinio modelį",
- "action-managechangetags": "sukurti ir ištrinti žymes duomenų bazėje",
+ "action-managechangetags": "kurti ir (de)aktyvuoti žymes",
"action-applychangetags": "taikyti žymes kartu su savo pokeitymais",
"action-changetags": "pridėti ir ištrinti savavališkas žymes individualiuose pakeitimuose ir žurnalo įrašuose",
+ "action-deletechangetags": "trinti žymes iš duomenų bazės",
"nchanges": "$1 {{PLURAL:$1|pakeitimas|pakeitimai|pakeitimų}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|nuo paskutinio apsilankymo}}",
"enhancedrc-history": "istorija",
"apisandbox-dynamic-parameters-add-placeholder": "Parametro pavadinimas",
"apisandbox-dynamic-error-exists": "Parametras, pavadinimu „$1“ jau yra.",
"apisandbox-deprecated-parameters": "Nebenaudojami parametrai",
+ "apisandbox-fetch-token": "Automatiškai užpildyti žetoną",
"apisandbox-submit-invalid-fields-title": "Kai kurie laukai yra neteisingi",
+ "apisandbox-submit-invalid-fields-message": "Prašome pataisyti pažymėtus laukus ir bandyti dar kartą.",
"apisandbox-results": "Rezultatai",
+ "apisandbox-sending-request": "API prašymas siunčiamas...",
+ "apisandbox-loading-results": "API rezultatai gaunami...",
"apisandbox-request-url-label": "Prašyti URL:",
- "apisandbox-request-time": "Užklausos laikas: $1",
+ "apisandbox-request-time": "Užklausos laikas: {{PLURAL:$1|$1 ms}}",
+ "apisandbox-results-fixtoken": "Pataisykite žetoną ir pateikite iš naujo",
+ "apisandbox-results-fixtoken-fail": "Nepavyko gauti „$1“ žetono.",
+ "apisandbox-alert-page": "Laukai šiame puslapyje yra negalimi.",
"apisandbox-alert-field": "Šio lauko reikšmė yra neteisinga.",
"booksources": "Knygų šaltiniai",
"booksources-search-legend": "Knygų šaltinių paieška",
"log-edit-tags": "Redaguoti žymes pasirinktuose žurnalo įrašuose",
"checkbox-select": "Pasirinkti: $1",
"checkbox-all": "Visi",
- "checkbox-none": "Nieko",
- "checkbox-invert": "Invertuoti",
+ "checkbox-none": "Nieka",
+ "checkbox-invert": "Apmainītė vėituom",
"allpages": "Visi puslapiai",
"nextpage": "Kitas puslapis ($1)",
"prevpage": "Ankstesnis puslapis ($1)",
"changecontentmodel-success-text": "Turinys, kurio tipas [[:$1]], buvo atnaujintas.",
"changecontentmodel-cannot-convert": "Turinys [[:$1]] negali būti konvertuotas į $2 tipą.",
"changecontentmodel-nodirectediting": "$1 turinio modelis nepalaiko tiesioginio redagavimo",
+ "changecontentmodel-emptymodels-title": "Nėra prieinamų turinio modelių",
"log-name-contentmodel": "Turinio modelio kaitos istorija",
"log-description-contentmodel": "Įvykiai susiję su puslapio turinio modeliu",
"logentry-contentmodel-change": "$1 {{GENDER:$2|atnaujino}} puslapio $3 turinio modelį iš $4 į $5",
"sp-contributions-username": "IP adresas arba naudotojo vardas:",
"sp-contributions-toponly": "Rodyti tik paskutinius keitimus",
"sp-contributions-newonly": "Rodyti tik tuos keitimus, kuriais sukurti nauji straipsniai",
+ "sp-contributions-hideminor": "Slėpti nedidelius pakeitimus",
"sp-contributions-submit": "Ieškoti",
"whatlinkshere": "Susiję puslapiai",
"whatlinkshere-title": "Puslapiai, kurie nurodo į „$1“",
"lockdbsuccesstext": "Duomenų bazė buvo užrakinta.\n<br />Nepamirškite [[Special:UnlockDB|pašalinti užraktą]], kai techninė profilaktika bus baigta.",
"unlockdbsuccesstext": "Duomenų bazė buvo atrakinta.",
"lockfilenotwritable": "Duomenų bazės užrakto failas nėra įrašomas. Norint užrakinti ar atrakinti duomenų bazę, tinklapio serveris privalo turėti įrašymo teises šiam failui.",
+ "databaselocked": "Duomenų bazėje jau yra užrakinta.",
"databasenotlocked": "Duomenų bazė neužrakinta.",
"lockedbyandtime": "(užrakino {{GENDER:$1|$1}}, diena $2, laikas $3)",
"move-page": "Pervadinti $1",
"confirmemail_body_set": "Kažkas (tikriausiai jūs) iš IP adreso $1,\nnustatė svetainės {{SITENAME}} paskyros „$2“ elektroninio pašto adresą į jūsiškį.\n\nKad patvirtintumėte, kad ši paskyra tikrai priklauso jums ir tokiu būdu aktyvuotumėte\nelektroninio pašto galimybes svetainėje {{SITENAME}}, atverkite šią nuorodą savo naršyklėje:\n\n$3\n\nJei paskyra jums *nepriklauso*, spauskite šią nuorodą,\nkad atšauktumėte elektroninio pašto adreso patvirtinimą:\n\n$5\n\nŠis patvirtinimo kodas baigs galioti $4.",
"confirmemail_invalidated": "El. pašto adreso patvirtinimas atšauktas",
"invalidateemail": "El. pašto patvirtinimo atšaukimas",
+ "notificationemail_subject_changed": "{{SITENAME}} užregistruotas el. pašto adresas buvo pakeistas",
+ "notificationemail_subject_removed": "{{SITENAME}} užregistruotas el. pašto adresas buvo pašalintas",
"scarytranscludedisabled": "[Tarpprojektinis įterpimas yra išjungtas]",
"scarytranscludefailed": "[Šablono gavimas iš $1 nepavyko]",
"scarytranscludefailed-httpstatus": "[Šablono iškviesti nepavyko $1: HTTP $2]",
"confirm-watch-top": "Pridėti šį puslapį į stebimųjų sąrašą?",
"confirm-unwatch-button": "Gerai",
"confirm-unwatch-top": "Pašalinti šį puslapį iš jūsų stebimųjų sąrašo?",
+ "confirm-rollback-button": "Gerai",
"quotation-marks": "„$1“",
"imgmultipageprev": "← ankstesnis puslapis",
"imgmultipagenext": "kitas puslapis →",
"sessionprovider-mediawiki-session-cookiesessionprovider": "sesijos su slapukais",
"sessionprovider-nocookies": "Slapukai gali būti neaktyvuoti. Įsitikinkite, kad slapukai yra aktyvuoti ir pradėkite vėl.",
"randomrootpage": "Atsitiktinis šakninis puslapis",
+ "log-action-filter-block": "Blokavimo tipas:",
+ "log-action-filter-delete": "Trynimo tipas:",
+ "log-action-filter-import": "Importo tipas:",
+ "log-action-filter-managetags": "Žymės tvarkymo veiksmo tipas:",
+ "log-action-filter-move": "Kėlimo tipas:",
+ "log-action-filter-newusers": "Paskyros kūrimo tipas:",
+ "log-action-filter-protect": "Apsaugos tipas:",
"log-action-filter-rights": "Teisių tipo keitimas:",
+ "log-action-filter-upload": "Įkėlimo tipas:",
"log-action-filter-all": "Visi",
+ "log-action-filter-block-block": "Blokas",
+ "log-action-filter-block-reblock": "Blokavimo pakeitimas",
+ "log-action-filter-block-unblock": "Atblokuoti",
+ "log-action-filter-delete-delete": "Puslapio trynimas",
+ "log-action-filter-delete-restore": "Puslapio trynimo atšaukimas",
+ "log-action-filter-delete-event": "Žurnalo trynimas",
+ "log-action-filter-delete-revision": "Peržiūros trynimas",
+ "log-action-filter-managetags-create": "Žymės kūrimas",
+ "log-action-filter-managetags-delete": "Žymės trynimas",
+ "log-action-filter-managetags-activate": "Žymės aktyvavimas",
+ "log-action-filter-managetags-deactivate": "Žymės deaktyvavimas",
"log-action-filter-newusers-autocreate": "Automatinis kūrimas",
- "log-action-filter-protect-protect": "Apsauga"
+ "log-action-filter-protect-protect": "Apsauga",
+ "log-action-filter-upload-upload": "Naujas įkėlimas",
+ "log-action-filter-upload-overwrite": "Kelti iš naujo",
+ "authmanager-authplugin-setpass-bad-domain": "Negalimas domenas.",
+ "authmanager-autocreate-noperm": "Automatinis paskyros kūrimas neleidžiamas.",
+ "authmanager-autocreate-exception": "Automatinis paskyros kūrimas laikinai neleidžiamas dėl ankstesnių klaidų.",
+ "authmanager-userdoesnotexist": "Vartotojo paskyrą „$1“ nėra registruota.",
+ "authmanager-userlogin-remembermypassword-help": "Ar slaptažodis turėtų būti išsaugotas ilgesniam laikui nei ši sesija.",
+ "authmanager-username-help": "Vartotojo vardas dėl autentikacijos.",
+ "authmanager-password-help": "Slaptažodis dėl autentikacijos.",
+ "authmanager-domain-help": "Domenas dėl išorinės autentikacijos.",
+ "authmanager-retype-help": "Slaptažodį dar kartą, kad patvirtintumėte.",
+ "authmanager-email-label": "El. paštas",
+ "authmanager-email-help": "El. pašto adresas",
+ "authmanager-realname-label": "Tikras vardas",
+ "authmanager-realname-help": "Tikras vartotojo vardas",
+ "authmanager-provider-password": "Autentifikacija slaptažodžiu",
+ "authmanager-provider-password-domain": "Autentifikavimas slaptažodžiu ir domenu",
+ "authmanager-provider-temporarypassword": "Laikinas slaptažodis",
+ "authprovider-confirmlink-request-label": "Paskyros, kurios turėtų būti susietos",
+ "authprovider-confirmlink-success-line": "$1: Susieta sėkmingai.",
+ "authprovider-confirmlink-failed": "Paskyros susiejimas nebuvo visiškai sėkmingas: $1",
+ "authprovider-confirmlink-ok-help": "Tęsti po susiejimo klaidos žinutės parodymo.",
+ "authprovider-resetpass-skip-label": "Praleisti",
+ "authprovider-resetpass-skip-help": "Praleisti slaptažodžio perstatymą.",
+ "specialpage-securitylevel-not-allowed-title": "Neleidžiama"
}
"grant-group-email": "Sūtīt e-pastu",
"grant-createaccount": "Izveidot kontu",
"grant-editmywatchlist": "Labot uzraugāmo rakstu sarakstu",
+ "grant-editpage": "Labot esošās lapas",
+ "grant-editprotected": "Labot aizsargātās lapas",
+ "grant-basic": "Pamattiesības",
+ "grant-viewdeleted": "Skatīt dzēstos failus un lapas",
"newuserlogpage": "Jauno dalībnieku reģistrs",
"newuserlogpagetext": "Jauno lietotājvārdu reģistrs.",
"rightslog": "Dalībnieku tiesību reģistrs",
"action-read": "lasīt šo lapu",
"action-edit": "labot šo lapu",
"action-createpage": "izveidot šo lapu",
- "action-createtalk": "izveidot diskusiju lapas",
+ "action-createtalk": "izveidot šo diskusiju lapu",
"action-createaccount": "izveidot šo dalībnieka kontu",
"action-history": "apskatīt šīs lapas vēsturi",
"action-minoredit": "atzīmēt šo labojumu kā maznozīmīgu",
"rcshowhidemine": "$1 manus",
"rcshowhidemine-show": "Rādīt",
"rcshowhidemine-hide": "Slēpt",
+ "rcshowhidecategorization": "$1 lapu kategorizēšanu",
"rcshowhidecategorization-show": "Rādīt",
"rcshowhidecategorization-hide": "Paslēpt",
"rclinks": "Parādīt pēdējās $1 izmaiņas pēdējās $2 dienās.<br />$3",
"upload-dialog-button-save": "Saglabāt",
"upload-dialog-button-upload": "Augšupielādēt",
"upload-form-label-infoform-title": "Papildinformācija",
+ "upload-form-label-infoform-name": "Nosaukums",
"upload-form-label-infoform-description": "Apraksts",
"upload-form-label-usage-title": "Pielietojums",
"upload-form-label-usage-filename": "Faila nosaukums",
+ "upload-form-label-own-work": "Šis ir manis paša darbs",
"upload-form-label-infoform-categories": "Kategorijas",
"upload-form-label-infoform-date": "Datums",
"backend-fail-stream": "Nevar straumēt failu $1.",
"backend-fail-read": "Nevar lasīt failu $1.",
"backend-fail-create": "Nevar izveidot failu $1.",
"zip-wrong-format": "Norādītais fails nebija ZIP fails.",
- "uploadstash-errclear": "Failu tīrīšana bija neveiksmīga.",
+ "uploadstash-errclear": "Failu tīrīšana neizdevās.",
"uploadstash-refresh": "Atsvaidzināt failu sarakstu",
"img-auth-accessdenied": "Pieeja liegta",
"img-auth-nopathinfo": "Trūkst PATH_INFO.\nJūsu serveris nav konfigurēts nodot šo informāciju.\nTas var būt bāzēts uz CGI un neatbalstīt img_auth.\nSkatīt https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
"alllogstext": "Visi pieejamie {{grammar:akuzatīvs{{SITENAME}}}} reģistri.\nTu vari sašaurināt aplūkojamo reģistru, izvēloties reģistra veidu, lietotāja vārdu vai reģistrēto lapu. Visi teksta lauki izšķir lielos un mazos burtus.",
"logempty": "Reģistrā nav atbilstošu ierakstu.",
"log-title-wildcard": "Meklēt virsrakstus, kas sākas ar šo tekstu",
+ "checkbox-select": "Izvēlēties: $1",
+ "checkbox-all": "Visus",
+ "checkbox-none": "Nevienu",
+ "checkbox-invert": "Otrādi",
"allpages": "Visas lapas",
"nextpage": "Nākamā lapa ($1)",
"prevpage": "Iepriekšējā lapa ($1)",
"mailnologin": "Nav adreses, uz kuru sūtīt",
"mailnologintext": "Tev jābūt [[Special:UserLogin|iegājušam]], kā arī tev jābūt [[Special:Preferences|norādītai]] derīgai e-pasta adresei, lai sūtītu e-pastu citiem lietotājiem.",
"emailuser": "Sūtīt e-pastu šim lietotājam",
- "emailuser-title-target": "Nosūtīt e-pastu {{GENDER:$1|šim lietotājam|šai lietotājai}}",
+ "emailuser-title-target": "Nosūtīt e-pastu {{GENDER:$1|šim dalībniekam|šai dalībniecei}}",
"emailuser-title-notarget": "Sūtīt e-pastu lietotājam",
"emailpagetext": "Ar šo veidni ir iespējams nosūtīt e-pastu šim {{GENDER:$1|lietotājam}}.\nTā e-pasta adrese, kuru tu esi norādījis [[Special:Preferences|savā izvēļu lapā]], parādīsies e-pasta \"From\" lauciņā, tādejādi saņēmējs varēs tev atbildēt.",
"defemailsubject": "{{SITENAME}} e-pasts no lietotāja \"$1\"",
"wlheader-enotif": "E-pasta paziņojumi ir ieslēgti.",
"wlheader-showupdated": "Lapas, kuras ir tikušas izmainītas, kopš tu tās pēdējoreiz apskatījies, te rādās ar '''pustrekniem''' burtiem",
"wlshowlast": "Parādīt izmaiņas pēdējo $1 stundu laikā vai $2 dienu laikā, vai arī .",
+ "watchlist-hide": "Slēpt",
+ "watchlist-submit": "Rādīt",
"wlshowhidebots": "boti",
"wlshowhideliu": "reģistrēti lietotāji",
"wlshowhideanons": "anonīmi lietotāji",
"rollback-success": "Novērsu izmaiņas, ko izdarīja $1;\natjaunoju versiju, ko saglabāja $2.",
"sessionfailure-title": "sesijas kļūda",
"sessionfailure": "Ir radusies problēma ar sesijas autentifikāciju;\nšī darbība ir atcelta, lai novērstu lietotājvārda iespējami ļaunprātīgu izmantošanu.\nLūdzu, spied \"''back''\" un atjaunini iepriekšējo lapu. Tad mēģini vēlreiz.",
+ "changecontentmodel-title-label": "Lapas nosaukums",
"changecontentmodel-reason-label": "Iemesls:",
"changecontentmodel-submit": "Mainīt",
"protectlogpage": "Aizsargāšanas reģistrs",
"title-invalid-magic-tilde": "Побараниот наслов содржи низа неважечки тилди (<nowiki>~~~</nowiki>).",
"title-invalid-too-long": "Бараниот наслов е предолг. Не смее да биде поголем од $1 {{PLURAL:$1|бајт|бајти}} шифриран според UTF-8.",
"title-invalid-leading-colon": "Бараниот наслов содржи неважечки две точки на почетокот.",
- "perfcached": "Следните податоци се меѓускладирани и може да не се тековни. Во меѓускладот {{PLURAL:$1|е достапен највеќе еден резултат|се достапни највеќе $1 резултати}}.",
- "perfcachedts": "Следните податоци се меѓускладирани, последен пат подновени на $1. Во меѓускладот {{PLURAL:$4|е достапен највеќе еден резултат|се достапни највеќе $4 резултати}}.",
+ "perfcached": "Следните податоци се меѓускладирани и може да не се тековни. Во меѓускладот {{PLURAL:$1|е достапен највеќе еден запис|се достапни највеќе $1 записи}}.",
+ "perfcachedts": "Следните податоци се меѓускладирани, последен пат подновени на $1. Во меѓускладот {{PLURAL:$4|е достапен највеќе еден запис|се достапни највеќе $4 записи}}.",
"querypage-no-updates": "Подновите на оваа страница моментално се оневозможени.\nПодатоците овде во моментов нема да се подновуваат.",
"viewsource": "Преглед",
"viewsource-title": "Преглед на кодот на $1",
"tog-watchdefault": "मी संपादित केलेली पाने आणि संचिका माझ्या निरीक्षणसूचीत टाका",
"tog-watchmoves": "मी स्थानांतर केलेली पाने आणि संचिका माझ्या निरीक्षणसूचीत टाका",
"tog-watchdeletion": "मी वगळलेली पाने आणि संचिका माझ्या निरीक्षणसूचीत टाका",
+ "tog-watchuploads": "मी अपभारीलेल्या नविन संचिका माझ्या निरीक्षणसूचीत जोडा",
"tog-watchrollback": "यात ज्या पानात मी माझ्या निरीक्षणसूचीत पुनर्परतीची (रोलबॅक) क्रिया केलेली आहे.",
"tog-minordefault": "सर्व संपादने 'छोटा बदल' म्हणून आपोआप जतन करा.",
"tog-previewontop": "झलक संपादन खिडकीच्या आधी दाखवा",
"prefs-email": "विपत्र पर्याय",
"prefs-rendering": "देखावा",
"saveprefs": "जतन करा",
- "restoreprefs": "सरà¥\8dव डिफà¥\89लà¥\8dà¤\9f मांडणी पूर्ववत करा (सर्व विभागात)",
+ "restoreprefs": "सरà¥\8dव à¤\85विà¤\9aल(डिफà¥\89लà¥\8dà¤\9f) मांडणी पूर्ववत करा (सर्व विभागात)",
"prefs-editing": "संपादन",
"rows": "ओळी:",
"columns": "स्तंभ:",
"duration-centuries": "$1 {{PLURAL:$1|hundreår|hundreår}}",
"duration-millennia": "$1 {{PLURAL:$1|tusenår|tusenår}}",
"rotate-comment": "Biletet vart dreitt $1{{PLURAL:$1|°}} med klokka",
- "limitreport-title": "Profildata for analysatoren:",
+ "limitreport-title": "Profildata for parseren:",
"limitreport-cputime": "CPU-tidsbruk",
"limitreport-cputime-value": "{{PLURAL:$1|eitt sekund|$1 sekund}}",
"limitreport-walltime-value": "{{PLURAL:$1|eitt sekund|$1 sekund}}",
"wlheader-showupdated": "Las paginas que son estadas modificadas dempuèi vòstra darrièra visita son afichadas en '''gras'''.",
"wlnote": "Çaijós {{PLURAL:$1|figura la darrièra modificacion efectuada|figuran las <strong>$1</strong> darrièras modificacions efectuadas}} pendent {{PLURAL:$2|la darrièra ora|las <strong>$2</strong> darrièras oras}}, dempuèi $3, $4.",
"wlshowlast": "Far veire las darrièras $1 oras, los darrièrs $2 jorns",
+ "wlshowhideminor": "cambiaments menors",
"watchlist-options": "Opcions de la lista de seguiment",
"watching": "Seguit...",
"unwatching": "Fin del seguit...",
"isredirect": "pagina de redireccion",
"istemplate": "inclusion",
"isimage": "ligam cap al fichièr",
- "whatlinkshere-prev": "{{PLURAL:$1|precedent|$1 precedents}}",
+ "whatlinkshere-prev": "{{PLURAL:$1|precedenta|$1 precedentas}}",
"whatlinkshere-next": "{{PLURAL:$1|seguent|$1 seguents}}",
"whatlinkshere-links": "← ligams",
"whatlinkshere-hideredirs": "$1 las redireccions",
"table_pager_limit": "Far veire $1 elements per pagina",
"table_pager_limit_label": "Resultats per pagina :",
"table_pager_limit_submit": "Accedir",
- "table_pager_empty": "Cap de resultat",
+ "table_pager_empty": "Pas cap de resultat",
"autosumm-blank": "Blanquiment de la pagina",
"autosumm-replace": "Resumit automatic : contengut remplaçat per « $1 ».",
"autoredircomment": "Redireccion cap a [[$1]]",
"october-date": "$1 ਅਕਤੂਬਰ",
"november-date": "$1 ਨਵੰਬਰ",
"december-date": "$1 ਦਸੰਬਰ",
+ "period-am": "ਏਐਮ",
+ "period-pm": "ਪੀਐਮ",
"pagecategories": "{{PLURAL:$1|ਸ਼੍ਰੇਣੀ|ਸ਼੍ਰੇਣੀਆਂ}}",
"category_header": "ਸ਼੍ਰੇਣੀ \"$1\" ਵਿੱਚ ਲੇਖ",
"subcategories": "ਉਪਸ਼੍ਰੇਣੀਆਂ",
"mypage": "ਸਫ਼ਾ",
"mytalk": "ਗੱਲ-ਬਾਤ",
"anontalk": "ਗੱਲ-ਬਾਤ",
- "navigation": "ਫà©\87ਰà©\80 ਪਾà¨\93",
+ "navigation": "ਨà©\87ਵà©\80à¨\97à©\87ਸ਼ਨ",
"and": " ਅਤੇ",
"qbfind": "ਖੋਜ",
"qbbrowse": "ਝਲਕ",
"createaccount-title": "{{SITENAME}} ਲਈ ਅਕਾਊਂਟ ਬਣਾਉਣਾ",
"createaccount-text": "ਕਿਸੇ ਨੇ \"$2\" ਮੈਂਬਰ-ਨਾਮ ਅਤੇ \"$3\" ਪਾਸਵਰਡ ਨਾਲ਼ {{SITENAME}} ($4) ਤੇ, ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਵਰਤਦੇ ਹੋਏ, ਖਾਤਾ ਬਣਾਇਆ ਹੈ।\nਤੁਹਾਨੂੰ ਹੁਣੇ ਲਾਗਇਨ ਕਰਕੇ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ।\n\nਜੇ ਇਹ ਖਾਤਾ ਗ਼ਲਤੀ ਨਾਲ਼ ਬਣ ਗਿਆ ਹੈ ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਸਕਦੇ ਹੋ।",
"login-throttled": "ਤੁਸੀਂ ਬਹੁਤ ਸਾਰੀਆਂ ਤਾਜ਼ਾ ਲਾਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ।\nਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ $1 ਉਡੀਕ ਕਰੋ ਜੀ।",
- "login-abort-generic": "ਤà©\81ਹਾਡਾ ਦਾà¨\96਼ਲਾ ਨਾà¨\95ਾਮ ਸੀ - ਅਧੂਰਾ ਛੱਡਿਆ",
+ "login-abort-generic": "ਤà©\81ਹਾਡਾ ਦਾà¨\96਼ਲਾ à¨\85ਸਫਲ ਸੀ - ਅਧੂਰਾ ਛੱਡਿਆ",
"login-migrated-generic": "ਤੁਹਾਡੇ ਖਾਤੇ ਦੀ ਥਾਂ ਬਦਲ ਦਿੱਤੀ ਗਈ ਹੈ ਅਤੇ ਤੁਹਾਡਾ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਹੁਣ ਇਸ ਵਿਕੀ 'ਤੇ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
"loginlanguagelabel": "ਭਾਸ਼ਾ: $1",
"suspicious-userlogout": "ਤੁਹਾਡੀ ਵਿਦਾਇਗੀ ਦੀ ਬੇਨਤੀ ਨਕਾਰ ਦਿੱਤੀ ਗਈ ਕਿਉਂਕਿ ਲੱਗਦਾ ਹੈ ਕਿ ਇਹ ਕਿਸੇ ਟੁੱਟੇ ਹੋਏ ਬਰਾਊਜ਼ਰ ਜਾਂ ਕੈਸ਼ ਹੋਈ ਪ੍ਰਾਕਸੀ ਤੋਂ ਭੇਜੀ ਗਈ ਸੀ।",
"resetpass_submit": "ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ ਅਤੇ ਲਾਗਇਨ ਕਰੋ",
"changepassword-success": "ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਠੀਕ ਤਰ੍ਹਾਂ ਬਦਲਿਆ ਜਾ ਚੁੱਕਾ ਹੈ!",
"changepassword-throttled": "ਤੁਸੀਂ ਦਾਖ਼ਲ ਹੋਣ ਦੀਆਂ ਬਹੁਤ ਸਾਰੀਆਂ ਤਾਜ਼ਾ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ।\nਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ $1 ਉਡੀਕ ਕਰੋ ਜੀ।",
+ "botpasswords": "ਬੌਟ ਪਾਸਵਰਡ",
+ "botpasswords-label-appid": "ਬੌਟਾ ਨਾੰ:",
+ "botpasswords-label-create": "ਬਣਾਓ",
+ "botpasswords-label-update": "ਨਵਿਆਉ",
+ "botpasswords-label-cancel": "ਰੱਦ ਕਰੋ",
+ "botpasswords-label-delete": "ਮਿਟਾਓ",
+ "botpasswords-label-resetpassword": "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ",
"resetpass_forbidden": "ਪਾਸਵਰਡ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ",
"resetpass-no-info": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਸਿੱਧੇ ਹੀ ਵੇਖਣ ਲਈ ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨਾ ਪਵੇਗਾ।",
"resetpass-submit-loggedin": "ਪਛਾਣ-ਸ਼ਬਦ ਬਦਲੋ",
"passwordreset-emailsentemail": "ਇੱਕ ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਈ-ਮੇਲ ਭੇਜੀ ਜਾ ਚੁੱਕੀ ਹੈ।",
"passwordreset-emailsent-capture": "ਇੱਕ ਯਾਦ-ਦਹਾਨੀ ਈ-ਮੇਲ, ਜਿਹੜੀ ਕਿ ਹੇਠਾਂ ਦਿੱਸ ਰਹੀ ਹੈ, ਭੇਜੀ ਜਾ ਚੁੱਕੀ ਹੈ।",
"passwordreset-emailerror-capture": "ਪਛਾਣ-ਸ਼ਬਦ ਮੁੜ ਬਣਾਉਣ ਵਾਸਤੇ ਈਮੇਲ ਤਿਆਰ ਹੋ ਗਈ ਸੀ, ਜੋ ਹੇਠਾਂ ਵਿਖਾਈ ਗਈ ਹੈ, ਪਰ ਇਹਨੂੰ {{GENDER:$2|ਵਰਤੋਂਕਾਰ}} ਵੱਲ ਨਹੀਂ ਘੱਲਿਆ ਜਾ ਸਕਿਆ: $1",
- "changeemail": "ਈ-ਮੇਲ ਸਿਰਨਾਵਾਂ ਬਦਲੋ",
+ "passwordreset-invalideamil": "ਗ਼ਲਤ ਈਮੇਲ ਪਤਾ",
+ "changeemail": "ਈ-ਮੇਲ ਸਿਰਨਾਵਾਂ ਬਦਲੋ ਜਾੰ ਹਟਾਓ",
"changeemail-header": "ਖਾਤੇ ਵਾਲਾ ਈ-ਮੇਲ ਸਿਰਨਾਵਾਂ ਬਦਲੋ",
"changeemail-no-info": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਸਿੱਧੇ ਹੀ ਵੇਖਣ ਲਈ ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨਾ ਪਵੇਗਾ।",
"changeemail-oldemail": "ਮੌਜੂਦਾ ਈਮੇਲ ਸਿਰਨਾਵਾਂ:",
"minoredit": "ਇਹ ਇੱਕ ਛੋਟੀ ਸੋਧ ਹੈ",
"watchthis": "ਇਸ ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖੋ",
"savearticle": "ਸਫ਼ਾ ਸਾਂਭੋ",
+ "savechanges": "ਤਬਦੀਲੀਆਂ ਸਾਂਭੋ",
"preview": "ਝਲਕ",
"showpreview": "ਝਲਕ ਵਿਖਾਓ",
"showdiff": "ਤਬਦੀਲੀਆਂ ਵਿਖਾਉ",
"missingsummary": "'''ਯਾਦ-ਦਹਾਨੀ:''' ਤੁਸੀਂ ਸੋਧ ਸਾਰ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰਵਾਇਆ। ਜੇ ਤੁਸੀਂ \"{{int:savearticle}}\" ਤੇ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕੀਤਾ ਤਾਂ ਤੁਹਾਡਾ ਸਫ਼ਾ ਇਸਦੇ ਬਿਨਾਂ ਹੀ ਸਾਂਭਿਆ ਜਾਵੇਗਾ।",
"missingcommenttext": "ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।",
"summary-preview": "ਸੋਧ ਸਾਰ ਦੀ ਝਲਕ:",
- "subject-preview": "ਵਿਸ਼ੇ/ਸਿਰਨਾਵੇਂ ਦੀ ਝਲਕ:",
+ "subject-preview": "ਵਿਸ਼ੇ ਦੀ ਝਲਕ:",
"previewerrortext": "ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਝਲਕ ਵਿਖਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਗ਼ਲਤੀ ਆ ਗਈ।",
"blockedtitle": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲੱਗੀ ਹੋਈ ਹੈ",
"blockedtext": "'''ਤੁਹਾਡੇ ਮੌਮਬਰ ਨਾਮ ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''\n\nਪਾਬੰਦੀ $1 ਨੇ ਲਾਈ ਹੈ।\nਦਿੱਤਾ ਗਿਆ ਕਾਰਨ ਇਹ ਹੈ, ''$2''।\n\n* ਪਾਬੰਦੀ ਸ਼ੁਰੂ: $8\n* ਪਾਬੰਦੀ ਖਤਮ: $6\n* ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲੇ ਦਾ ਇਰਾਦਾ: $7\n\nਪਾਬੰਦੀ ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਤੁਸੀਂ $1 ਜਾਂ ਕਿਸੇ ਹੋਰ\n[[{{MediaWiki:Grouppage-\nsysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।\nਤੁਸੀਂ 'ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ' ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੇ ਤੁਹਾਡੀਆਂ [[Special:Preferences|ਖਾਤਾ ਪਸੰਦਾਂ]] ਵਿੱਚ ਇੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ ਜਾਂ ਜੇ ਤੁਹਾਡੇ ਇਸਨੂੰ ਵਰਤਣ ਤੇ ਪਾਬੰਦੀ ਹੈ।\nਤੁਹਾਡਾ ਚਾਲੂ IP ਪਤਾ $3 ਹੈ,\nਅਤੇ ਪਾਬੰਦੀ ਪਤਾ #$5 ਹੈ।\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੇ ਕਿਸੇ ਵੀ ਸਵਾਲ ਜਾਂ ਪੁੱਛ-ਗਿੱਛ ਵਿਚ ਇਹ ਉੱਪਰਲੀ ਤਫ਼ਸੀਲ ਜ਼ਰੂਰ ਸ਼ਾਮਲ ਕਰੋ।",
"history-feed-empty": "ਦਰਖ਼ਾਸਤਸ਼ੁਦਾ ਸਫ਼ਾ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।\nਸ਼ਾਇਦ ਇਸਨੂੰ ਵਿਕੀ ਤੋਂ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ ਜਾਂ ਨਾਮ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੈ।\nਵਿਕੀ ਦੇ ਨਵੇਂ ਮੁਨਾਸਿਬ ਸਫ਼ਿਆਂ ਵਿਚ [[Special:Search|ਲੱਭਣ]] ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।",
"rev-deleted-comment": "(ਸੋਧ ਸਾਰ ਹਟਾਇਆ)",
"rev-deleted-user": "(ਵਰਤੋਂਕਾਰ ਨਾਂ ਹਟਾਇਆ)",
- "rev-deleted-event": "(ਲਾà¨\97 à¨\95ਾਰਵਾà¨\88 ਹà¨\9fਾà¨\88 à¨\97à¨\88)",
+ "rev-deleted-event": "(ਲਾà¨\97 ਵà©\87ਰਵਾ ਹà¨\9fਾà¨\87à¨\86 à¨\97ਿà¨\86)",
"rev-deleted-user-contribs": "[ਮੈਂਬਰ-ਨਾਂ ਜਾਂ IP ਪਤਾ ਹਟਾਇਆ - ਸੋਧ ਯੋਗਦਾਨਾਂ ਵਿਚੋਂ ਓਹਲੇ ਕੀਤੀ]",
"rev-deleted-text-permission": "ਸਫ਼ੇ ਦੀ ਇਹ ਰੀਵਿਜ਼ਨ '''ਮਿਟਾਈ''' ਜਾ ਚੁੱਕੀ ਹੈ।\nਤਫ਼ਸੀਲ [{{fullurl:{{#Special:Log}}/delete|\npage={{FULLPAGENAMEE}}}} ਮਿਟਾਉਣ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ।",
"rev-deleted-text-unhide": "ਸਫ਼ੇ ਦੀ ਇਹ ਰੀਵਿਜ਼ਨ '''ਮਿਟਾਈ''' ਜਾ ਚੁੱਕੀ ਹੈ।\nਤਫ਼ਸੀਲ [{{fullurl:{{#Special:Log}}/delete|\npage={{FULLPAGENAMEE}}}} ਮਿਟਾਉਣ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ।\nਜੇ ਤੁਸੀਂ ਅੱਗੇ ਵਧਣਾ ਚਾਹੋ ਤਾਂ ਹਾਲੇ ਵੀ [$1 ਇਹ ਰੀਵਿਜ਼ਨ ਵੇਖ] ਸਕਦੇ ਹੋ।",
"mergehistory-submit": "ਰੀਵਿਜ਼ਨਾਂ ਰਲ਼ਾਓ",
"mergehistory-empty": "ਕੋਈ ਰੀਵਿਜ਼ਨ ਰਲ਼ਾਈ ਨਹੀ ਜਾ ਸਕਦੀ।",
"mergehistory-done": "$1 {{PLURAL:|ਦੀ|ਦੀਆਂ}} $3 {{PLURAL:$3|ਰੀਵਿਜ਼ਨ|ਰੀਵਿਜ਼ਨਾਂ}} ਕਾਮਯਾਬੀ ਨਾਲ਼ [[:$2]] ਵਿਚ {{PLURAL:$3|ਰਲ਼ਾਈ|ਰਲ਼ਾਈਆਂ}}।",
+ "mergehistory-fail-bad-timestamp": "ਸਮਾੰਮੋਹਰ ਗਲਤ ਹੈ।",
+ "mergehistory-fail-invalid-source": "ਸਰੋਤ ਸਫ਼ਾ ਗਲਤ ਹੈ।",
"mergehistory-no-source": "ਸਰੋਤ ਸਫ਼ਾ $1 ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
"mergehistory-no-destination": "ਨੀਯਤ ਸਫ਼ਾ $1 ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
"mergehistory-invalid-source": "ਸਰੋਤ ਸਫ਼ਾ ਇੱਕ ਸਹੀ ਸਿਰਲੇਖ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।",
"prefs-rc": "ਹਾਲੀਆ ਤਬਦੀਲੀਆਂ",
"prefs-watchlist": "ਨਿਗਰਾਨ-ਸੂਚੀ",
"prefs-editwatchlist": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ",
+ "prefs-editwatchlist-clear": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸਾਫ ਕਰੋ",
"prefs-watchlist-days": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਦਿਖਾਉਣ ਲਈ ਦਿਨ:",
"prefs-watchlist-days-max": "ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨ}}",
"prefs-watchlist-edits": "ਵਧਾਈ ਹੋਈ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਦਿਖਾਉਣ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਤਬਦੀਲੀਆਂ:",
"prefs-watchlist-token": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਟੋਕਨ:",
"prefs-misc": "ਫੁਟਕਲ",
"prefs-resetpass": "ਪਛਾਣ-ਸ਼ਬਦ ਬਦਲੋ",
- "prefs-changeemail": "ਈ-ਮੇਲ ਪਤਾ ਬਦਲੋ",
+ "prefs-changeemail": "ਈ-ਮੇਲ ਪਤਾ ਬਦਲੋ ਜਾੰ ਹਟਾਓ",
"prefs-setemail": "ਈ-ਮੇਲ ਪਤਾ ਸੈੱਟ ਕਰੋ",
"prefs-email": "ਈਮੇਲ ਚੋਣਾਂ",
"prefs-rendering": "ਦਿੱਖ",
"right-upload_by_url": "URL ਤੋਂ ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ",
"right-autoconfirmed": "ਨੀਮ-ਸੁਰੱਖਿਅਤ ਸਫ਼ਿਆਂ ਨੂੰ ਸੋਧਣਾ",
"right-bot": "ਇੱਕ ਸਵੈ-ਚਾਲਤ ਅਮਲ ਵਜੋਂ ਗਿਣਿਆ ਜਾਣਾ",
- "right-writeapi": "à¨\8fਪà©\80à¨\86à¨\88(API) ਦà©\80 ਵਰਤà©\8bà¨\82",
+ "right-writeapi": "ਲਿà¨\96ਾà¨\88 à¨\8fਪà©\80à¨\86à¨\88 ਦà©\80 ਵਰਤà©\8bà©°",
"right-delete": "ਸਫ਼ੇ ਹਟਾਓ",
"right-bigdelete": "ਵੱਡੇ ਅਤੀਤ ਵਾਲੇ ਪੰਨੇ ਮਿਟਾਉਣੇ",
"right-browsearchive": "ਮਿਟਾਏ ਹੋਏ ਸਫ਼ੇ ਖੋਜੋ",
"right-siteadmin": "ਡੈਟਾਬੇਸ ਨੂੰ ਤਾਲਾ ਲਾਉਣਾ ਤੇ ਖੋਲ੍ਹਣਾ",
"right-sendemail": "ਦੂਜੇ ਮੈਂਬਰਾਂ ਨੂੰ ਈ-ਮੇਲ ਭੇਜਣਾ",
"right-passwordreset": "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਈਮੇਲ ਵੇਖੋ",
+ "grant-group-email": "ਈ-ਮੇਲ ਭੇਜੋ",
+ "grant-group-customization": "ਅਨੁਕੂਲਨ ਅਤੇ ਪਸੰਦਾੰ",
+ "grant-createaccount": "ਖਾਤੇ ਬਣਾਓ",
+ "grant-createeditmovepage": "ਸਫ਼ੇ ਬਣਾਓ, ਸੋਧ, ਅਤੇ ਹਿੱਲਾਓ",
+ "grant-editmywatchlist": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ",
+ "grant-editprotected": "ਸੁਰੱਖਿਅਤ ਸਫ਼ੇ ਸੋਧ",
+ "grant-uploadfile": "ਨਵੀਆੰ ਫਾਈਲਾੰ ਅੱਪਲੋਡ ਕਰੋ",
+ "grant-basic": "ਬੁਨਿਆਦੀ ਹੱਕ",
+ "grant-viewmywatchlist": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਸੂਚੀ ਵੇਖੋ",
"newuserlogpage": "ਬਣਾਏ ਖਾਤਿਆਂ ਦਾ ਚਿੱਠਾ",
"newuserlogpagetext": "ਇਹ ਬਣੇ ਮੈਂਬਰਾਂ ਦਾ ਚਿੱਠਾ ਹੈ।",
"rightslog": "ਵਰਤੋਂਕਾਰ ਹੱਕਾਂ ਦਾ ਚਿੱਠਾ",
"rightslogtext": "ਇਹ ਮੈਂਬਰ ਹੱਕਾਂ ਵਿਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਦਾ ਚਿੱਠਾ ਹੈ।",
"action-read": "ਇਹ ਸਫ਼ਾ ਪੜ੍ਹੋ",
"action-edit": "ਇਹ ਸਫ਼ਾ ਸੋਧੋ",
- "action-createpage": "ਸਫ਼à©\87 ਬਣਾਓ",
- "action-createtalk": "à¨\9aਰà¨\9aਾ ਸਫ਼à©\87 ਬਣਾਉਣ",
+ "action-createpage": "à¨\87ਹ ਸਫ਼ਾ ਬਣਾਓ",
+ "action-createtalk": "à¨\87ਹ à¨\9aਰà¨\9aਾ ਸਫ਼ਾ ਬਣਾਉਣ",
"action-createaccount": "ਇਹ ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਬਣਾਓ",
"action-history": "ਇਸ ਸਫ਼ੇ ਦਾ ਅਤੀਤ ਵੇਖੋ",
"action-minoredit": "ਇਹ ਸੋਧ ਨੂੰ ਛੋਟੀ ਤੌਰ ਉੱਤੇ ਮੰਨੋ",
"action-block": "ਇਸ ਮੈਂਬਰ ਦੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
"action-protect": "ਇਸ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ",
"action-import": "ਹੋਰ ਵਿਕੀ ਤੋਂ ਇਹ ਸਫ਼ਾ ਲਵੋ",
- "action-importupload": "ਫ਼ਾà¨\88ਲ à¨\85ੱਪਲà©\8bਡ ਤà©\8bà¨\82 à¨\87ਹ ਸਫ਼ਾ ਮੰਗਾਓ",
+ "action-importupload": "ਫ਼ਾà¨\88ਲ à¨\85ੱਪਲà©\8bਡ ਤà©\8bà¨\82 ਸਫà©\87 ਮੰਗਾਓ",
"action-unwatchedpages": "ਨਜ਼ਰ ਨਾ ਰੱਖੇ ਜਾ ਰਹੇ ਸਫ਼ਿਆਂ ਦੀ ਸੂਚੀ ਵੇਖੋ",
"action-mergehistory": "ਇਸ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਰਲ਼ਾਉਣ",
"action-userrights": "ਵਰਤੋਂਕਾਰ ਦੇ ਸਾਰੇ ਹੱਕ ਸੋਧਣ",
"recentchanges-feed-description": "ਇਸ ਵਿਕੀ ’ਤੇ ਹਾਲ ‘ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਫ਼ੀਡ ’ਚ ਵੇਖੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।",
"recentchanges-label-newpage": "ਇਸ ਸੋਧ ਨਾਲ਼ ਨਵਾਂ ਸਫ਼ਾ ਬਣਿਆ ਹੈ",
"recentchanges-label-minor": "ਇਹ ਇੱਕ ਛੋਟੀ ਸੋਧ ਹੈ",
- "recentchanges-label-bot": "à¨\87ਹ ਸà©\8bਧ à¨\87ੱà¨\95 ਬà©\8bਟ ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਸੀ",
+ "recentchanges-label-bot": "à¨\87ਹ ਸà©\8bਧ à¨\87ੱà¨\95 ਬà©\8cਟ ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਸੀ",
"recentchanges-label-unpatrolled": "ਇਹ ਫੇਰ-ਬਦਲ ਹਾਲੇ ਵੇਖਿਆ ਨਹੀਂ ਗਿਆ",
"recentchanges-label-plusminus": "ਸਫ਼ੇ ਵਿੱਚ ਇੰਨੀਆਂ ਬਾਈਟਾਂ ਦੀ ਤਬਦੀਲੀ ਹੋਈ",
"recentchanges-legend-heading": "<strong>ਟੀਕਾ:</strong>",
"rcshowhidemine": "ਮੇਰੀਆਂ ਤਬਦੀਲੀਆਂ $1",
"rcshowhidemine-show": "ਵੇਖੋ",
"rcshowhidemine-hide": "ਓਹਲੇ",
+ "rcshowhidecategorization-show": "ਦਿਖਾਓ",
+ "rcshowhidecategorization-hide": "ਲੁਕਾਉ",
"rclinks": "ਪਿਛਲੇ $2 ਦਿਨਾਂ ਵਿੱਚ ਹੋਈਆਂ $1 ਤਬਦੀਲੀਆਂ ਵਖਾਓ<br /> $3",
"diff": "ਫ਼ਰਕ",
"hist": "ਅਤੀਤ",
"upload-file-error": "ਅੰਦਰੂਨੀ ਗਲਤੀ",
"upload-misc-error": "ਅਣਪਛਾਤੀ ਅੱਪਲੋਡ ਗਲਤੀ",
"upload-http-error": "ਇੱਕ HTTP ਗ਼ਲਤੀ ਹੋਈ: $1",
+ "upload-dialog-title": "ਫ਼ਾਈਲ ਅਪਲੋਡ ਕਰੋ",
+ "upload-dialog-button-cancel": "ਰੱਦ ਕਰੋ",
+ "upload-dialog-button-done": "ਮੁਕੰਮਲ",
+ "upload-dialog-button-save": "ਸਾਂਭੋ",
+ "upload-dialog-button-upload": "ਅੱਪਲੋਡ",
+ "upload-form-label-infoform-title": "ਵੇਰਵਾ",
+ "upload-form-label-infoform-name": "ਨਾਂ",
+ "upload-form-label-infoform-description": "ਵਰਨਣ",
+ "upload-form-label-usage-title": "ਉਪਯੋਗਤਾ",
+ "upload-form-label-usage-filename": "ਫ਼ਾਈਲ ਦਾ ਨਾਂ",
+ "upload-form-label-own-work": "ਇਹ ਮੇਰਾ ਆਪਣਾ ਕੰਮ ਹੈ",
+ "upload-form-label-infoform-categories": "ਸ਼੍ਰੇਣੀਆਂ",
"upload-form-label-infoform-date": "ਤਾਰੀਖ਼",
"backend-fail-notexists": "ਫ਼ਾਈਲ $1 ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
"backend-fail-delete": "ਫ਼ਾਈਲ \"$1\" ਮਿਟਾਈ ਨਹੀਂ ਜਾ ਸਕੀ।",
"backend-fail-create": "\"$1\" ਫ਼ਾਈਲ ਲਿਖੀ ਨਾ ਜਾ ਸਕੀ।",
"zip-wrong-format": "ਦੱਸੀ ਗਈ ਫ਼ਾਈਲ ਜ਼ਿੱਪ ਫ਼ਾਈਲ ਨਹੀਂ ਸੀ।",
"uploadstash-refresh": "ਫ਼ਾਈਲਾਂ ਦੀ ਲਿਸਟ ਨੂੰ ਤਾਜ਼ਾ ਕਰੋ",
+ "uploadstash-thumbnail": "ਥੰਮਨੇਲ ਵੇਖੋ",
"img-auth-accessdenied": "ਪਹੁੰਚ ਨਕਾਰੀ ਗਈ",
"img-auth-nofile": "ਫ਼ਾਈਲ \"$1\" ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
+ "http-invalid-url": "ਗਲਤ URL: $1",
"upload-curl-error6": "URL ’ਤੇ ਪਹੁੰਚਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।",
"upload-curl-error6-text": "ਦਿੱਤੇ ਹੋਏ URL ’ਤੇ ਪਹੁੰਚਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਦੁਬਾਰਾ ਜਾਂਚ ਕਰੋ ਕਿ URL ਸਹੀ ਹੈ ਅਤੇ ਸਾਈਟ ਉਪਲੱਬਧ ਹੈ।",
"upload-curl-error28": "ਅੱਪਲੋਡ ਟਾਈਮ-ਆਉਟ",
"uploadnewversion-linktext": "ਇਸ ਫਾਇਲ ਦਾ ਇੱਕ ਨਵਾਂ ਵਰਜਨ ਅੱਪਲੋਡ ਕਰੋ",
"shared-repo-from": "$1 ਤੋਂ",
"shared-repo": "ਕੋਈ ਸਾਂਝਾ ਕੀਤਾ ਭੰਡਾਰ",
- "upload-disallowed-here": "ਤà©\81ਸà©\80à¨\82 à¨\87ਸ ਫ਼ਾà¨\88ਲ à¨\89ੱਤà©\87 ਨਹà©\80à¨\82 ਨਹà©\80à¨\82 ਲਿà¨\96 ਸà¨\95ਦà©\87।",
+ "upload-disallowed-here": "ਤੁਸੀਂ ਇਸ ਫ਼ਾਈਲ ਉੱਤੇ ਨਹੀਂ ਲਿਖ ਸਕਦੇ।",
"filerevert": "$1 ਰੀਵਰਟ",
"filerevert-legend": "ਫਾਇਲ ਰੀਵਰਟ",
"filerevert-comment": "ਕਾਰਨ:",
"randomincategory-nopages": "[[:Category:$1|$1]] ਸ਼੍ਰੇਣੀ ਵਿਚ ਕੋਈ ਸਫ਼ਾ ਨਹੀਂ ਹੈ।",
"randomincategory-category": "ਵਰਗ:",
"randomincategory-legend": "ਵਰਗ ਵਿਚਲਾ ਰਲ਼ਵਾਂ ਸਫ਼ਾ",
+ "randomincategory-submit": "ਜਾਓ",
"randomredirect": "ਰਲ਼ਵਾਂ ਰੀਡਿਰੈਕਟ",
"statistics": "ਅੰਕੜੇ",
"statistics-header-pages": "ਸਫ਼ਾ ਅੰਕੜੇ",
"pager-newer-n": "{{PLURAL:$1|1 ਨਵਾਂ|$1 ਨਵੇਂ}}",
"pager-older-n": "{{PLURAL:$1|1 ਪੁਰਾਣਾ|$1 ਪੁਰਾਣੇ}}",
"suppress": "ਨਿਗਰਾਨ",
+ "apihelp": "API ਮਦਦ",
+ "apihelp-no-such-module": "ਮੌਡੂਲ \"$1\" ਨਹੀਂ ਲੱਭਾ।",
+ "apisandbox-unfullscreen": "ਸਫ਼ਾ ਵੇਖਾਓ",
+ "apisandbox-reset": "ਸਾਫ਼ ਕਰੋ",
+ "apisandbox-retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ",
+ "apisandbox-helpurls": "ਮਦਦ ਜੋੜ",
+ "apisandbox-examples": "ਮਿਸਾਲਾਂ",
+ "apisandbox-results": "ਨਤੀਜੇ",
"booksources": "ਪੁਸਤਕਾਂ ਦੇ ਸਰੋਤ",
"booksources-search-legend": "ਕਿਤਾਬਾਂ ਦੇ ਸਰੋਤ ਖੋਜੋ",
"booksources-search": "ਭਾਲ਼",
"listgrouprights-removegroup-self-all": "ਆਪਣੇ ਖਾਤੇ ਤੋਂ ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ",
"listgrouprights-namespaceprotection-header": "ਨਾਂ-ਥਾਂ ਦੀਆਂ ਬੰਧੇਜਾਂ",
"listgrouprights-namespaceprotection-namespace": "ਨਾਂ-ਥਾਂ",
+ "listgrants-rights": "ਹੱਕ",
"trackingcategories": "ਵਰਗਾਂ ਦੀ ਪੈੜ",
"trackingcategories-msg": "ਵਰਗ ਦੀ ਪੈੜ",
"trackingcategories-name": "ਸੁਨੇਹੇ ਦਾ ਨਾਂ",
"watchlist-details": "ਗੱਲ-ਬਾਤ ਸਫ਼ੇ ਨਾ ਗਿਣਦੇ ਹੋਏ, ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਸੂਚੀ ਵਿਚ{{PLURAL:$1|$1 ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।",
"wlheader-enotif": "ਈਮੇਲ ਸੂਚਨਾ ਚਾਲੂ ਹੈ।",
"wlnote": "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:\n$1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
- "wlshowlast": "ਪਿਛਲੇ $1 ਘੰਟੇ $2 ਦਿਨ ਵਖਾਓ",
+ "wlshowlast": "ਪਿਛਲੇ $1 ਘੰਟੇ $2 ਦਿਨ ਵਖਾਓ",
+ "watchlist-hide": "ਲੁਕਾਓ",
"watchlist-submit": "ਦਿਖਾਓ",
+ "wlshowhideminor": "ਨਿੱਕੀਆਂ ਸੋਧਾਂ",
+ "wlshowhidebots": "ਬੌਟ",
+ "wlshowhideanons": "ਗੁਮਨਾਮ ਵਰਤੋਂਕਾਰ",
+ "wlshowhidepatr": "ਜਾਂਚੀਆਂ ਸੋਧਾੰ",
+ "wlshowhidemine": "ਮੇਰੀਆਂ ਸੋਧਾਂ",
"watchlist-options": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਦੀਆਂ ਚੋਣਾਂ",
"watching": "ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...",
"unwatching": "ਨਿਗ੍ਹਾ ਰੱਖਣੀ (ਵਾਚ) ਬੰਦ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..",
"sessionfailure-title": "ਇਜਲਾਸ ਫੇਲ੍ਹ",
"changecontentmodel-title-label": "ਸਫ਼ੇ ਦਾ ਸਿਰਲੇਖ",
"changecontentmodel-reason-label": "ਕਾਰਨ:",
+ "changecontentmodel-submit": "ਬਦਲੋ",
"protectlogpage": "ਸੁਰੱਖਿਆ ਚਿੱਠਾ",
"protectedarticle": "\"[[$1]]\" ਸੁਰੱਖਿਅਤ ਕੀਤਾ",
"modifiedarticleprotection": "\"[[$1]]\" ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੀ",
"sp-contributions-username": "IP ਪਤਾ ਜਾਂ ਵਰਤੋਂਕਾਰਨਾਮ:",
"sp-contributions-toponly": "ਸਿਰਫ ਉਹ ਸੋਧਾਂ ਵਿਖਾਓ ਜੋ ਸਭ ਤੋਂ ਤਾਜ਼ੀਆਂ ਰਿਵੀਜਨਾਂ ਹਨ",
"sp-contributions-newonly": "ਸਿਰਫ਼ ਉਹ ਸੋਧਾਂ ਵਿਖਾਉ ਜਿਹਨਾਂ ਨਾਲ਼ ਨਵੇਂ ਸਫ਼ੇ ਬਣੇ ਹਨ",
+ "sp-contributions-hideminor": "ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ ਲੁਕਾਓ",
"sp-contributions-submit": "ਖੋਜ",
"whatlinkshere": "ਇੱਥੇ ਕੀ ਆ ਕੇ ਜੁੜਦਾ ਹੈ",
"whatlinkshere-title": "$1 ਨਾਲ ਜੋੜਨ ਵਾਲੇ ਸਫ਼ੇ",
"tooltip-ca-unprotect": "ਇਸ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ",
"tooltip-ca-delete": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਹਟਾਓ",
"tooltip-ca-move": "ਇਹ ਸਫ਼ਾ ਭੇਜੋ",
- "tooltip-ca-watch": "à¨\87ਸ ਸਫ਼à©\87 ਨà©\82à©° à¨\86ਪਣà©\80 ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿਚ ਜੋੜੋ",
+ "tooltip-ca-watch": "à¨\87ਸ ਸਫ਼à©\87 ਨà©\82à©° à¨\86ਪਣà©\80 ਨਿà¨\97ਰਾਨà©\80-ਸà©\82à¨\9aà©\80 ਵਿਚ ਜੋੜੋ",
"tooltip-ca-unwatch": "ਇਹ ਸਫ਼ਾ ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ’ਚੋਂ ਹਟਾਓ",
"tooltip-search": "{{SITENAME}} ’ਤੇ ਖੋਜੋ",
"tooltip-search-go": "ਠੀਕ ਇਸ ਨਾਮ ਵਾਲੇ ਪੰਨੇ ’ਤੇ ਜਾਉ, ਜੇ ਮੌਜੂਦ ਹੈ ਤਾਂ",
"tooltip-n-mainpage-description": "ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ",
"tooltip-n-portal": "ਪ੍ਰੋਜੈਕਟ ਬਾਰੇ, ਤੁਸੀਂ ਕੀ ਕਰ ਸਕਦੇ ਹੋ, ਕਿੱਥੇ ਕੁਝ ਲੱਭਣਾ ਹੈ",
"tooltip-n-currentevents": "ਹਾਲ ਦੀਆਂ ਘਟਨਾਵਾਂ ਬਾਰੇ ਪਿਛੋਕੜੀ ਜਾਣਕਾਰੀ ਲੱਭੋ",
- "tooltip-n-recentchanges": "ਵਿਕੀ ਵਿਚ ਹਾਲ ਵਿੱਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਸੂਚੀ",
+ "tooltip-n-recentchanges": "ਵਿà¨\95à©\80 ਵਿੱà¨\9a ਹਾਲ ਵਿੱà¨\9a ਹà©\8bà¨\88à¨\86à¨\82 ਤਬਦà©\80ਲà©\80à¨\86à¨\82 ਦà©\80 ਸà©\82à¨\9aà©\80",
"tooltip-n-randompage": "ਇੱਕ ਰਲ਼ਵਾਂ ਸਫ਼ਾ ਲੋਡ ਕਰੋ",
"tooltip-n-help": "ਖੋਜਣ ਲਈ ਥਾਂ",
"tooltip-t-whatlinkshere": "ਵਿਕੀ ਦੇ ਸਾਰੇ ਸਫ਼ਿਆ ਦੀ ਸੂਚੀ, ਜੋ ਇੱਥੇ ਜੋੜਦੇ ਹਨ",
"pageinfo-length": "ਸਫ਼ੇ ਦੀ ਲੰਬਾਈ (ਬਾਈਟਾਂ ਵਿਚ)",
"pageinfo-article-id": "ਸਫ਼ੇ ਦੀ ਸ਼ਨਾਖ਼ਤ",
"pageinfo-language": "ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਦੀ ਭਾਸ਼ਾ",
- "pageinfo-robot-policy": "à¨\87à©°à¨\9cਨ ਦà©\80 ਹਾਲਤ à¨\96à©\8bà¨\9cà©\8b",
+ "pageinfo-robot-policy": "ਰà©\8bਬà©\8bà¨\9f ਦà©\81à¨\86ਰਾ à¨\87ੰਡà©\88à¨\95ਸਿੰà¨\97",
"pageinfo-robot-index": "ਮਨਜ਼ੂਰ ਹੈ",
"pageinfo-robot-noindex": "ਨਾ-ਮਨਜ਼ੂਰ",
"pageinfo-watchers": "ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਵਾਲਿਆਂ ਦੀ ਗਿਣਤੀ",
"watchlistedit-raw-done": "ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਅੱਪਡੇਟ ਹੋ ਗਈ ਹੈ।",
"watchlistedit-raw-added": "{{PLURAL:$1|1 ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕੀਤਾ|$1 ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕੀਤੇ}}:",
"watchlistedit-raw-removed": "{{PLURAL:$1|1 ਸਿਰਲੇਖ ਹਟਾਇਆ|$1 ਸਿਰਲੇਖ ਹਟਾਏ}}:",
+ "watchlistedit-clear-title": "ਨਿਗਰਾਨ-ਸੂਚੀ ਸਾਫ਼ ਕਰੋ",
+ "watchlistedit-clear-legend": "ਨਿਗਰਾਨ-ਸੂਚੀ ਸਾਫ਼ ਕਰੋ",
"watchlistedit-clear-titles": "ਸਿਰਲੇਖ:",
"watchlistedit-clear-submit": "ਨਿਗਰਾਨ-ਸੂਚੀ ਸਾਫ਼ ਕਰੋ (ਇਹ ਪੱਕੇ ਤੌਰ 'ਤੇ ਹੈ!)",
"watchlistedit-clear-done": "ਤੁਹਾਡੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਸਾਫ਼ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ।",
"watchlisttools-edit": "ਨਿਗਰਾਨੀ-ਸੂਚੀ ਵੇਖੋ ’ਤੇ ਸੋਧੋ",
"watchlisttools-raw": "ਕੱਚੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਸੋਧੋ",
"signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ਗੱਲ-ਬਾਤ]])",
+ "timezone-local": "ਸਥਾਨਕ",
"duplicate-defaultsort": "ਪੁਰਾਣੀ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $1 ਦੇ ਬਜਾਏ ਹੁਣ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $2 ਹੋਵੇਗੀ।",
"version": "ਵਰਜਨ",
"version-skins": "ਥਾਪੀਆਂ ਖੱਲਾਂ",
"version-software-version": "ਵਰਜਨ",
"version-entrypoints-header-entrypoint": "ਦਾਖ਼ਲਾ ਬਿੰਦੂ",
"version-entrypoints-header-url": "ਯੂ.ਆਰ.ਐੱਲ",
+ "version-libraries-library": "ਪੁਸਤਕਾਲਾ",
+ "version-libraries-version": "ਵਰਜਨ",
+ "version-libraries-license": "ਲਸੰਸ",
+ "version-libraries-description": "ਵੇਰਵਾ",
+ "version-libraries-authors": "ਲੇਖਕ",
"redirect-submit": "ਜਾਓ",
"redirect-lookup": "ਲੱਭੋ:",
"redirect-value": "ਮੁੱਲ:",
"specialpages-group-wiki": "ਸਮੱਗਰੀ ਅਤੇ ਸੰਦ",
"specialpages-group-redirects": "ਖ਼ਾਸ ਸਫ਼ੇ ਰੀਡਿਰੈਕਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ",
"specialpages-group-spam": "ਸਪੈਮ ਦੇ ਸੰਦ",
+ "specialpages-group-developer": "ਡਿਵੈਲਪਰ ਸੰਦ",
"blankpage": "ਖ਼ਾਲੀ ਸਫ਼ਾ",
"intentionallyblankpage": "ਇਹ ਸਫ਼ਾ ਜਾਣ-ਬੁੱਝ ਕੇ ਖ਼ਾਲੀ ਛੱਡਿਆ ਗਿਆ ਹੈ।",
"external_image_whitelist": " #ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ <pre>\n#ਹੇਠਾਂ ਓਹੀ ਐਕਸਪ੍ਰੈਸ਼ਨ ਪਾਓ (ਜਿਹੜਾ ਹਿੱਸਾ // ਦੇ ਵਿਚਾਲੇ ਹੈ)\n#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ ਮਿਲਣਗੀਆਂ\n#ਜਿਹੜੀਆਂ ਮਿਲਣਗੀਆਂ ਓਹ ਬਤੌਰ ਤਸਵੀਰਾਂ ਦਿੱਸਣਗੀਆਂ ਨਹੀਂ ਤਾਂ ਤਸਵੀਰ ਦਾ ਸਿਰਫ਼ ਲਿੰਕ ਨਜ਼ਰ ਆਵੇਗਾ\n#'#' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਲਾਈਨਾਂ ਟਿੱਪਣੀਆਂ ਵਾਂਗ ਲਈਆਂ ਜਾਂਦੀਆਂ ਹਨ\n#ਇਹ ਕੇਸ-ਇਨਸੈਂਸਟਿਵ ਹੈ\n\n#ਸਾਰੇ ਰੈਜੈਕਸ ਫ਼ਰੈਗਮੈਂਟ ਇਸ ਲਾਈਨ ਤੋਂ ਉੱਪਰ ਪਾਓ। ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ </pre>",
"tags-title": "ਟੈਗ",
"tags-tag": "ਟੈਗ ਦਾ ਨਾਮ",
"tags-description-header": "ਅਰਥ ਦਾ ਪੂਰਾ ਬਿਓਰਾ",
+ "tags-source-header": "ਸਰੋਤ",
"tags-active-header": "ਸਰਗਰਮ?",
"tags-hitcount-header": "ਨਿਸ਼ਾਨਦੇਹ ਤਬਦੀਲੀਆਂ",
+ "tags-actions-header": "ਕਾਰਵਾਈਆਂ",
"tags-active-yes": "ਹਾਂ",
"tags-active-no": "ਨਹੀਂ",
"tags-edit": "ਸੋਧੋ",
+ "tags-delete": "ਮਿਟਾਉ",
+ "tags-activate": "ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ",
"tags-hitcount": "$1 {{PLURAL:$1|ਤਬਦੀਲੀ|ਤਬਦੀਲੀਆਂ}}",
+ "tags-create-reason": "ਕਾਰਨ:",
+ "tags-create-submit": "ਬਣਾਓ",
+ "tags-delete-reason": "ਕਾਰਨ:",
+ "tags-activate-reason": "ਕਾਰਨ:",
+ "tags-activate-submit": "ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ",
+ "tags-deactivate-reason": "ਕਾਰਨ:",
+ "tags-edit-title": "ਟੈਗ ਸੋਧੋ",
+ "tags-edit-remove-all-tags": "(ਸਾਰੇ ਟੈਗ ਹਟਾਓ)",
+ "tags-edit-reason": "ਕਾਰਨ:",
"comparepages": "ਸਫ਼ੇ ਮਿਲਾਓ",
"compare-page1": "ਸਫ਼ਾ ੧",
"compare-page2": "ਸਫ਼ਾ ੨",
"rightsnone": "(ਕੋਈ ਨਹੀਂ)",
"revdelete-summary": "ਸੰਖੇਪ ਸੋਧ",
"feedback-adding": "ਸਫ਼ੇ ਨਾਲ਼ ਵਿਚਾਰ ਜੁੜ ਰਹੇ ਹਨ...",
+ "feedback-back": "ਪਿੱਛੇ",
"feedback-bugnew": "ਮੈਂ ਚੈੱਕ ਕੀਤਾ। ਇੱਕ ਨਵੇਂ ਦੋਸ਼ ਦੀ ਰਿਪੋਰਟ ਕਰੋ",
"feedback-cancel": "ਰੱਦ ਕਰੋ",
"feedback-close": "ਹੋ ਗਿਆ",
+ "feedback-error-title": "ਗ਼ਲਤੀ",
"feedback-error2": "ਦੋਸ਼:ਸੋਧ ਫੇਲ੍ਹ ਹੋਈ",
"feedback-error3": "ਦੋਸ਼:API ਵੱਲੋਂ ਕੋਈ ਜੁਆਬ ਨਹੀਂ",
"feedback-message": "ਸੁਨੇਹਾ:",
"feedback-subject": "ਵਿਸ਼ਾ:",
"feedback-submit": "ਹਵਾਲੇ ਕਰੋ",
+ "feedback-thanks-title": "ਧੰਨਵਾਦ!",
+ "feedback-useragent": "ਉਪਭੋਗੀ ਏਜੰਟ:",
"searchsuggest-search": "ਖੋਜ",
"api-error-badaccess-groups": "ਤੁਹਾਨੂੰ ਇਸ ਵਿਕੀ ਉੱਤੇ ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
"api-error-badtoken": "ਅੰਦਰੂਨੀ ਦੋਸ਼: ਗ਼ਲਤ ਟੋਕਨ",
"limitreport-walltime": "ਹਕੀਕੀ ਸਮੇਂ ਦੀ ਵਰਤੋਂ",
"limitreport-walltime-value": "$1 {{PLURAL:$1|ਸਕਿੰਟ|ਸਕਿੰਟ}}",
"limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|ਬਾਈਟ|ਬਾਈਟ}}",
+ "expand_templates_input": "ਇੰਪੁੱਟ ਪਾਠ:",
"expand_templates_output": "ਨਤੀਜਾ",
"expand_templates_ok": "ਠੀਕ ਹੈ",
"expand_templates_remove_comments": "ਟਿੱਪਣੀਆਂ ਹਟਾਓ",
"pagelang-language": "ਭਾਸ਼ਾ",
"pagelang-use-default": "ਮੂਲ ਭਾਸ਼ਾ ਵਰਤੋਂ",
"pagelang-select-lang": "ਭਾਸ਼ਾ ਚੁਣੋ",
+ "pagelang-submit": "ਭੇਜੋ",
"right-pagelang": "ਸਫ਼ੇ ਦੀ ਭਾਸ਼ਾ ਬਦਲੋ",
"action-pagelang": "ਸਫ਼ੇ ਦੀ ਭਾਸ਼ਾ ਬਦਲੋ",
+ "mediastatistics": "ਮੀਡੀਆ ਅੰਕੜੇ",
+ "mediastatistics-table-mimetype": "MIME ਕਿਸਮ:",
"mediastatistics-table-count": "ਫ਼ਾਈਲਾਂ ਦੀ ਗਿਣਤੀ",
"mediastatistics-table-totalbytes": "ਮਿਲ਼ਵਾਂ ਅਕਾਰ",
"mediastatistics-header-unknown": "ਅਣਪਛਾਤਾ",
"mediastatistics-header-video": "ਵੀਡੀਓਆਂ",
"mediastatistics-header-office": "ਦਫ਼ਤਰ",
"mediastatistics-header-text": "ਲਿਖਤੀ",
+ "mediastatistics-header-total": "ਸਾਰੀਆੰ ਫਾਈਲਾੰ",
"json-error-syntax": "ਵਾਕ-ਵਿਉਂਤ 'ਚ ਦੋਸ਼",
"special-characters-group-latin": "ਲਾਤੀਨੀ",
"special-characters-group-latinextended": "ਲਾਤੀਨੀ ਤੋਂ ਛੁੱਟ",
"special-characters-title-endash": "ਅੰਗਰੇਜ਼ੀ ਡੈਸ਼",
"special-characters-title-emdash": "em ਡੈਸ਼",
"special-characters-title-minus": "ਘਟਾਓ ਦਾ ਨਿਸ਼ਾਨ",
+ "mw-widgets-dateinput-no-date": "ਕੋਈ ਮਿਤੀ ਨਹੀਂ ਚੁਣੀ",
+ "mw-widgets-titleinput-description-new-page": "ਸਫ਼ਾ ਹਜੇ ਮੌਜੂਦ ਨਹੀਂ ਹੈ",
+ "log-action-filter-all": "ਸਾਰੇ",
+ "log-action-filter-block-block": "ਪਾਬੰਦੀ",
+ "log-action-filter-block-unblock": "ਪਾਬੰਦੀ ਹਟਾਈ",
+ "authmanager-authplugin-setpass-bad-domain": "ਗਲਤ ਡੋਮੇਨ",
"authmanager-password-help": "ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ ਪਛਾਣ-ਸ਼ਬਦ।",
"authmanager-email-label": "ਈਮੇਲ",
"authmanager-email-help": "ਈਮੇਲ ਪਤਾ",
"authmanager-realname-label": "ਅਸਲੀ ਨਾਂ",
+ "authmanager-realname-help": "ਇਸ ਉਪਭੋਗੀ ਦਾ ਅਸਲ ਨਾਮ",
+ "authmanager-provider-temporarypassword": "ਆਰਜ਼ੀ ਪਾਸਵਰਡ",
"authprovider-resetpass-skip-label": "ਛੱਡ ਦਿਉ",
+ "authform-wrongtoken": "ਗਲਤ ਟੋਕਨ",
"specialpage-securitylevel-not-allowed-title": "ਇਜਾਜ਼ਤ ਨਹੀਂ",
"cannotauth-not-allowed-title": "ਪ੍ਰਵਾਨਗੀ ਨਹੀਂ ਮਿਲੀ",
"credentialsform-account": "ਖਾਤੇ ਦਾ ਨਾਂ:"
"createaccountreason": "Motivo:",
"createacct-reason": "Motivo",
"createacct-reason-ph": "Porque está a criar outra conta",
+ "createacct-reason-help": "Mensagem mostrada no registo de criação de contas",
"createacct-submit": "Crie a sua conta",
"createacct-another-submit": "Criar conta",
"createacct-continue-submit": "Continuar criação de conta",
"nocookiesnew": "A conta de utilizador foi criada, mas neste momento não tem sessão iniciada.\nA {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.\nOs ''cookies'' estão desativados no seu navegador.\nAtive-os e inicie sessão com o seu nome de utilizador e a sua palavra-passe, por favor.",
"nocookieslogin": "A {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.\nOs ''cookies'' estão desativados no seu navegador.\nAtive-os e tente novamente, por favor.",
"nocookiesfornew": "A conta de utilizador não foi criada, porque não foi possível confirmar a sua origem.\nCertifique-se de que tem os ''cookies'' ativados, recarregue esta página e tente novamente.",
+ "createacct-loginerror": "A conta foi criada com êxito, mas não pôde ser autenticado automaticamente. Por favor, faça o [[Special:UserLogin|início de sessão manualmente]].",
"noname": "Não especificou um nome de utilizador válido.",
"loginsuccesstitle": "Autenticação bem sucedida",
"loginsuccess": "'''Encontra-se agora ligado à {{SITENAME}} como \"$1\"'''.",
"version-license-not-found": "Não foi encontrada informação detalhada da licença para esta extensão.",
"version-credits-title": "Créditos de autoria da extensão $1",
"version-credits-not-found": "Não foi encontrada informação detalhada dos créditos para esta extensão.",
- "version-poweredby-credits": "Esta wiki é potenciada por <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
+ "version-poweredby-credits": "Este é um wiki <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
"version-poweredby-others": "outros",
"version-poweredby-translators": "os tradutores da translatewiki.net",
"version-credits-summary": "Gostaríamos de reconhecer as seguintes pessoas pela sua contribuição para o [[Special:Version|MediaWiki]].",
"log-action-filter-rights-rights": "Alteração manual",
"log-action-filter-rights-autopromote": "Alteração automática",
"log-action-filter-suppress-event": "Supressão de registo",
+ "log-action-filter-suppress-revision": "Supressão de revisões",
"log-action-filter-suppress-delete": "Supressão de página",
+ "log-action-filter-suppress-block": "Supressão de utilizadores por bloqueio",
"log-action-filter-upload-upload": "Novo carregamento",
"log-action-filter-upload-overwrite": "Recarregar",
"authmanager-create-disabled": "A criação de contas está desativada.",
"authmanager-create-from-login": "Para criar a sua conta, por favor, preencha os campos abaixo.",
+ "authmanager-authplugin-setpass-failed-title": "A alteração de palavra-passe falhou",
+ "authmanager-authplugin-setpass-failed-message": "O plugin de autenticação negou a alteração de palavra-passe.",
+ "authmanager-authplugin-create-fail": "O plugin de autenticação negou a criação de conta.",
+ "authmanager-authplugin-setpass-denied": "O plugin de autenticação não permite a alteração de palavras-passe.",
"authmanager-authplugin-setpass-bad-domain": "Domínio inválido.",
+ "authmanager-autocreate-noperm": "A criação automática de contas não é permitida.",
+ "authmanager-autocreate-exception": "A criação automática de contas foi temporariamente desativada devido a erros prévios.",
"authmanager-userdoesnotexist": "A conta de utilizador(a) \"$1\" não está registada.",
"authmanager-username-help": "Nome de utilizador(a) para autenticação.",
"authmanager-password-help": "Palavra-passe para autenticação.",
"authmanager-email-help": "Endereço de correio eletrónico",
"authmanager-realname-label": "Nome verdadeiro",
"authmanager-realname-help": "Nome verdadeiro do(a) utilizador(a)",
+ "authmanager-provider-temporarypassword": "Palavra-passe temporária",
+ "authprovider-confirmlink-success-line": "$1: Ligado com êxito.",
"authprovider-resetpass-skip-label": "Ignorar",
+ "authprovider-resetpass-skip-help": "Ignorar redefinição de palavra-passe",
+ "specialpage-securitylevel-not-allowed-title": "Não permitido",
+ "specialpage-securitylevel-not-allowed": "Desculpe, não tem permissão para utilizar esta página porque a sua identidade não pôde ser verificada.",
"authpage-cannot-login": "Não é possível iniciar sessão.",
"authpage-cannot-login-continue": "Não é possível continuar a iniciar sessão. A sua sessão pode ter expirado.",
"authpage-cannot-create": "Não é possível iniciar a criação da conta.",
"Psychoslave",
"Guycn2",
"2axterix2",
- "Ата"
+ "Ата",
+ "Matěj Suchánek"
]
},
"sidebar": "{{notranslate}}",
"noindex-category": "Name of the [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages with the <nowiki>__NOINDEX__</nowiki> behavior switch are listed.\n\nFor description of this behavior switch see [[mw:Special:MyLanguage/Help:Magic_words#Behavior_switches|MediaWiki]].\n\nSee also:\n* {{msg-mw|Noindex-category-desc}}",
"broken-file-category": "Name of [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages that embed files that do not exist (\"broken images\") are listed.\n\nSee also:\n* {{msg-mw|Broken-file-category-desc}}",
"categoryviewer-pagedlinks": "{{Optional}}\nThe pagination links in category viewer. Parameters:\n* $1 - the previous link, uses {{msg-mw|Prevn}}\n* $2 - the next link, uses {{msg-mw|Nextn}}",
+ "category-header-numerals": "{{Optional}}\nA header for all pages whose titles start with a number. This is used on category pages. This should only be translated if your language uses a different method to indicate a range of numbers (other than a dash).\n* $1 – 0 (or localized equivalent)\n* $2 – 9 (or localized equivalent)",
"about": "{{Identical|About}}",
"article": "A 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].\n\nPossible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.\n\n{{Identical|Content page}}",
"newwindow": "Below the edit form, next to \"{{msg-mw|Edithelp}}\".",
"SamGold",
"Jdforrester",
"Jack who built the house",
- "Cat1987"
+ "Cat1987",
+ "SergeyButkov"
]
},
"tog-underline": "Подчёркивание ссылок:",
"passwordreset-emailerror-capture": "Было создано электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже, однако его не удалось отправить {{GENDER:$2|участнику|участнице}} по следующей причине: $1",
"passwordreset-emailsent-capture2": "{{PLURAL:$1|Письмо|Письма}} для сброса пароля {{PLURAL:$1|было отправлено|были отправлены}}. {{PLURAL:$1|Логин и пароль показаны|Список логинов и паролей показан}} ниже.",
"passwordreset-emailerror-capture2": "Отправка {{GENDER:$2|участнику}} письма по электронной почте не удалась: $1 В {{PLURAL:$3|логин и пароль показаны|список логинов и паролей показан}} ниже.",
+ "passwordreset-nocaller": "Должен быть предоставлен источник вызова",
+ "passwordreset-nosuchcaller": "Источник вызова не существует: $1",
+ "passwordreset-ignored": "Сброс пароля не был обработан. Может быть, не был настроен ни один провайдер?",
"passwordreset-invalideamil": "Недопустимый адрес электронной почты",
"passwordreset-nodata": "Ни имя участника, ни адрес электронной почты не были предоставлены",
"changeemail": "Изменить или удалить адрес электронной почты",
"content-json-empty-object": "Пустой объект",
"content-json-empty-array": "Пустой массив",
"deprecated-self-close-category": "Страницы, использующие недопустимые самозакрывающеся HTML-теги",
- "deprecated-self-close-category-desc": "СÑ\82Ñ\80аниÑ\86а Ñ\81одеÑ\80жиÑ\82 недопÑ\83Ñ\81Ñ\82имÑ\8bе Ñ\81амозакÑ\80Ñ\8bваÑ\8eÑ\89иеÑ\81Ñ\8f HTML-Ñ\82еги, Ñ\82акие как <code><b/></code> или <code><span/></code>. Ð\9fÑ\80авила поведениÑ\8f оÑ\82ноÑ\81иÑ\82елÑ\8cно ниÑ\85 Ñ\81коÑ\80о изменÑ\8fÑ\82Ñ\81Ñ\8f, Ñ\87Ñ\82обÑ\8b Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82воваÑ\82Ñ\8c Ñ\81пеÑ\86иÑ\84икаÑ\86ии HTML5, Ñ\82ак Ñ\87Ñ\82о иÑ\81полÑ\8cзование Ñ\8dÑ\82иÑ\85 Ñ\83Ñ\81Ñ\82аÑ\80евÑ\88иÑ\85 Ñ\82егов в тексте нежелательно.",
+ "deprecated-self-close-category-desc": "СÑ\82Ñ\80аниÑ\86а Ñ\81одеÑ\80жиÑ\82 недопÑ\83Ñ\81Ñ\82имÑ\8bе Ñ\81амозакÑ\80Ñ\8bваÑ\8eÑ\89иеÑ\81Ñ\8f HTML-Ñ\82еги, Ñ\82акие как <code><b/></code> или <code><span/></code>. Ð\92 Ñ\81коÑ\80ом вÑ\80емени иÑ\85 дейÑ\81Ñ\82вие измениÑ\82Ñ\81Ñ\8f, Ñ\87Ñ\82обÑ\8b Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82воваÑ\82Ñ\8c Ñ\81пеÑ\86иÑ\84икаÑ\86ии HTML5, Ñ\82ак Ñ\87Ñ\82о иÑ\81полÑ\8cзование Ñ\8dÑ\82иÑ\85 Ñ\83Ñ\81Ñ\82аÑ\80евÑ\88иÑ\85 Ñ\82егов в вики-тексте нежелательно.",
"duplicate-args-warning": "<strong>Внимание:</strong> [[:$1]] вызывает [[:$2]] с более чем одним значением параметра «$3». Будет использовано только последнее указанное значение.",
"duplicate-args-category": "Страницы, использующие повторяющиеся аргументы в вызовах шаблонов",
"duplicate-args-category-desc": "Страницы, содержащие вызовы шаблонов, использующие повторяющиеся аргументы, такие как <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> или <code><nowiki>{{foo|bar|1=bar}}</nowiki></code>.",
"mergehistory-from": "Исходная страница:",
"mergehistory-into": "Целевая страница:",
"mergehistory-list": "Объединяемая история правок",
- "mergehistory-merge": "СледÑ\83Ñ\8eÑ\89ие веÑ\80Ñ\81ии [[:$1]] могÑ\83Ñ\82 бÑ\8bÑ\82Ñ\8c обÑ\8aединенÑ\8b в [[:$2]]. Ð\98Ñ\81полÑ\8cзÑ\83йÑ\82е пеÑ\80еклÑ\8eÑ\87аÑ\82ели длÑ\8f Ñ\82ого, чтобы объединить только выбранный диапазон правок. Учтите, что использование навигационных ссылок сбросит эту колонку.",
+ "mergehistory-merge": "СледÑ\83Ñ\8eÑ\89ие веÑ\80Ñ\81ии [[:$1]] могÑ\83Ñ\82 бÑ\8bÑ\82Ñ\8c пеÑ\80енеÑ\81енÑ\8b в [[:$2]]. Ð\98Ñ\81полÑ\8cзÑ\83йÑ\82е пеÑ\80еклÑ\8eÑ\87аÑ\82ели, чтобы объединить только выбранный диапазон правок. Учтите, что использование навигационных ссылок сбросит эту колонку.",
"mergehistory-go": "Показать объединяемые правки",
"mergehistory-submit": "Объединить правки",
"mergehistory-empty": "Не найдены правки для объединения.",
"log-action-filter-suppress-reblock": "Сокрытие пользователя через повторное блокирование",
"log-action-filter-upload-upload": "Новая загрузка",
"log-action-filter-upload-overwrite": "Повторно загрузить",
+ "authmanager-authn-not-in-progress": "Проверка подлинности не выполняется или данные сессии были утеряны. Пожалуйста, начните снова с самого начала.",
"authmanager-authn-no-primary": "Предоставленные учётные данные не могут быть проверены на подлинность.",
"authmanager-authn-no-local-user": "Предоставленные учётные данные не связаны ни с одним участником этой вики.",
"authmanager-authn-no-local-user-link": "Предоставленные учётные данные корректны, но не связаны ни с одни участником этой вики. Войдите с помощью какого-то другого способа или создайте новую учётную запись, и у вас появится возможность привязать свои предыдущие учётные данные к этой учетной записи.",
"authmanager-authn-autocreate-failed": "Автоматическое создание локальной учётной записи не удалось: $1",
+ "authmanager-change-not-supported": "Предоставленные учётные данные не могут быть изменены, так как они не будут использованы.",
"authmanager-create-disabled": "Создание учётных записей отключено.",
"authmanager-create-from-login": "Чтобы создать учётную запись, пожалуйста, заполните приведённые ниже поля.",
"authmanager-create-not-in-progress": "Создание учётной записи не выполняется или данные сессии были утеряны. Пожалуйста, начните снова с самого начала.",
"authmanager-autocreate-noperm": "Автоматическое создание учётных записей не разрешено.",
"authmanager-autocreate-exception": "Автоматическое создание учётной записи временно отключено из-за предыдущих ошибок.",
"authmanager-userdoesnotexist": "Не зарегистрировано учётной записи «$1».",
+ "authmanager-userlogin-remembermypassword-help": "Будет ли пароль запоминаться на время большее, чем продолжительность сессии.",
"authmanager-username-help": "Имя участника для проверки подлинности.",
"authmanager-password-help": "Пароль для проверки подлинности.",
"authmanager-domain-help": "Домен для внешней аутентификации.",
"authmanager-provider-password": "Аутентификация на основе пароля",
"authmanager-provider-password-domain": "Проверка подлинности на основе пароля и домена",
"authmanager-provider-temporarypassword": "Временный пароль",
+ "authprovider-confirmlink-message": "На основании ваших последних попыткок входа, учётные записи могут быть связаны с вашей учётной записью в вики. Их связывание даёт возможность входа через эти учётные записи. Пожалуйста, выберите, какие из них должны быть связаны между собой.",
"authprovider-confirmlink-option": "$1 ($2)",
"authprovider-confirmlink-request-label": "Учётные записи, которые должны быть связаны",
"authprovider-confirmlink-success-line": "$1: успешно связан.",
"linkaccounts-success-text": "Учетная запись была связана.",
"linkaccounts-submit": "Связать учётные записи",
"unlinkaccounts": "Отвязать учётные записи",
- "unlinkaccounts-success": "Учетная запись была отвязан."
+ "unlinkaccounts-success": "Учетная запись была отвязан.",
+ "authenticationdatachange-ignored": "Изменение данных для проверки подлинности не было обработано. Может быть, не был настроен ни один провайдер?"
}
"newwindow": "(īr atverams naujam longė)",
"cancel": "Pabengtė",
"moredotdotdot": "Daugiau...",
- "morenotlisted": "Tas sārošos ožbengts nie.",
+ "morenotlisted": "Tas sārašos ožbėngts nie.",
"mypage": "Poslapis",
"mytalk": "Aptarėms",
"anontalk": "Aptarėms",
"media_tip": "Nūruoda abruozdielin",
"sig_tip": "Tamstas parašos ė čiesos",
"hr_tip": "Golos briežis (nenauduokat ba rēkala)",
- "summary": "Pāiškėnėms:",
+ "summary": "Keitėma paāškėnėms:",
"subject": "Tema/ontraštė:",
"minoredit": "Mažos pakeitėms",
"watchthis": "Keravuotė ton poslapė",
- "savearticle": "Ėšsauguotė poslapė",
+ "savearticle": "Ėšsauguotė poslapi",
"preview": "Parveiza",
"showpreview": "Ruodītė parveiza",
"showdiff": "Ruodītė skėrtomus",
"protectedpagewarning": "'''DIEMESĖ: Šėts poslapis īr ožrakints ėr anū redagoutė gal tėk admėnėstratuorė teises torėntīs prietelē.'''",
"semiprotectedpagewarning": "'''Pastebiejėms:''' Šėts poslapis bova ožrakėnts ėr anuo gal redagoutė tėk regėstroutė nauduotojā.",
"titleprotectedwarning": "'''DIEMESĖ: Tas poslapis bova ožrakėnts tēp, ka tėktās kāpkatrė nauduotuojē galietu ana sokortė.'''",
- "templatesused": "{{PLURAL:$1|Šabluons, katros|Šabluonā, katrėi}}, īr nauduojamė tamė poslapi:",
+ "templatesused": "{{PLURAL:$1|Šabluons, katros|Šabluonā, katrėi}}, īr nauduojamė tamė poslapie:",
"templatesusedpreview": "{{PLURAL:$1|Šabluons|Šabluonā}}, nauduotė šėtuo parvaizuo:",
"templatesusedsection": "Šabluonā, nauduotė šėtom skėrsnelī:",
"template-protected": "(apsergiets)",
"permissionserrorstext": "Tamsta netorėt teisiu šėta darītė diel {{PLURAL:$1|tuos prīžastėis|tū prīžastiū}}:",
"permissionserrorstext-withaction": "Tamsta natorėt leidėma $2 dielē {{PLURAL:$1|tuokės dingstėis|tuokiū dingstiū}}:",
"recreate-moveddeleted-warn": "'''Parspiejėms: Tamsta ikeliat faila, katros onkstiau bova ėštrėnts.'''\n\nTamsta torietomiet nusprēstė, a īr naudėnga tuoliau ikeldinietė ta faila.\nTuo faila pašalinėma istuorėjė īr pateikta dielē patuogoma:",
- "moveddeleted-notice": "Tas poslapis bova ėštrints.\nĖštrinta poslapė atmainū sārošos īr douts paveiziejėmō apatiuo.",
+ "moveddeleted-notice": "Tas poslapis bova ėštrints.\nĖštrinta poslapė atmainū sārašos īr douts paveiziejėmō apatiuo.",
"log-fulllog": "Veizietė vėskon",
"edit-conflict": "Do keitėmo nesotink.",
"postedit-confirmation-created": "Poslapis padėrbts.",
"difference-title-multipage": "Skėrtoms terp poslapiu „$1“ ė „$2“",
"difference-multipage": "(Skėtroms terp poslapiu)",
"lineno": "Eilotė $1:",
- "compareselectedversions": "Pamieruotė pasėrinktus atmainus",
+ "compareselectedversions": "Pamieruotė pasirinktus atmainus",
+ "showhideselectedversions": "Ruodītė/kavuotė atmainus, katrūs pasirinkuot",
"editundo": "atgrōžintė",
"diff-empty": "(Nie skėrtoma)",
"diff-multi-sameuser": "({{PLURAL:$1|Vėins tarpėnis pakeitėms|$1 tarpėnē pakeitėmā|$1 tarpėniu pakeitėmu}}, padėrbtū tuo patė nauduotuojė, nie ruoduoma)",
"prevn-title": "{{PLURAL:$1|Onkstesnis $1 rezoltats|Onkstesnio $1 rezoltato|Onkstesni $1 rezoltatā}}",
"nextn-title": "{{PLURAL:$1|Kėts $1 gavėms|Kėtė $1 gavėmā|Kėtū $1 gavėmu}}",
"shown-title": "Ruodītė $1 {{PLURAL:$1|gavėni|gavėnius|gavėniū}} ont poslapė",
- "viewprevnext": "Veizėtė ($1 {{int:pipe-separator}} $2) ($3).",
+ "viewprevnext": "Veizietė ($1 {{int:pipe-separator}} $2) ($3).",
"searchmenu-exists": "'''Poslapis pavadėnts „[[$1]]“ šėtuo wiki'''",
"searchmenu-new": "<strong>Padėrbtė poslapi, katros vadėntos „[[:$1]]“</strong> {{PLURAL:$2|0=|Dā veiziekat paėiškuo rasta straipsni|Dā veiziekat paėiškuos gavėnius.}}",
"searchprofile-articles": "Torėnė poslapē",
"right-delete": "Trintė poslapius",
"right-browsearchive": "Ėiškuotė ėštrintū poslapiu",
"right-undelete": "Tou poslapi padėrbtė apent",
- "newuserlogpage": "Nauduotuojė kūrėma sārošos",
+ "newuserlogpage": "Nauduotuojė kūrėma sārašos",
"rightslog": "Nauduotuoju teisiu istuorėjė",
"rightslogtext": "Pateikiams nauduotuoju teisiu pakeitėmu sārašos.",
"action-read": "skaitītė ton poslapi",
"enhancedrc-history": "istuorėjė",
"recentchanges": "Vielībė̄jė pakeitėmā",
"recentchanges-legend": "Vielībūju pakeitėmu pasėrinkėmā",
- "recentchanges-summary": "Keravuokat patius vielībuosius wiki pakeitėmus tamė poslapi.",
+ "recentchanges-summary": "Keravuokat patius vielībuosius wiki pakeitėmus tamė poslapie.",
"recentchanges-feed-description": "Keravuokėt patius vielībiausius pakeitėmus pruojektō tamė šaltėnī.",
"recentchanges-label-newpage": "Šėtuo keitėmuo padėrbts naus poslapis",
"recentchanges-label-minor": "Tas īr mažos pataisīms",
"rcshowhidemine": "$1 mona pakeitėmus",
"rcshowhidemine-show": "Ruodītė",
"rcshowhidemine-hide": "Kavuotė",
+ "rcshowhidecategorization": "$1, kap poslapiam doud kateguorėjės",
"rclinks": "Ruodītė vielībus $1 pakeitėmu par paskuojės $2 dėinas<br />$3",
"diff": "skėrt",
"hist": "ist",
"uploadlogpage": "Ožkruovėmu istuorėjė",
"uploadlogpagetext": "Žemiau pateikiam paskotėniu failu ikielima istuorėjė.",
"filename": "Abruozdėlė vards",
- "filedesc": "Pāiškėnėms",
- "fileuploadsummary": "Pāiškėnėms:",
+ "filedesc": "Paāškėnėms",
+ "fileuploadsummary": "Tromps aprašīms:",
"filereuploadsummary": "Abruozdielė pakeitėmāː",
"filestatus": "Derbieju teisėsː",
"filesource": "Šaltėnis:",
"filehist-user": "Nauduotuos",
"filehist-dimensions": "Mierā",
"filehist-filesize": "Abruozdielė dėdloms",
- "filehist-comment": "Pāiškėnėms",
+ "filehist-comment": "Paāškėnėms",
"imagelinks": "Abruozdieliu nauduojėms",
"linkstoimage": "{{PLURAL:$1|Ons poslapis|Anėi poslapē}} ruod ton abruozdielin:",
"nolinkstoimage": "Abruozdielėp neruod anėjuoks poslapis.",
"filerevert": "Sogrōžėntė $1",
"filerevert-legend": "Faila sogrōžinėms",
"filerevert-intro": "<span class=\"plainlinks\">Tamsta grōžėnat '''[[Media:$1|$1]]''' i versėje $4 ($2, $3).</span>",
- "filerevert-comment": "Pāiškėnėms:",
+ "filerevert-comment": "Dingstės:",
"filerevert-submit": "Grōžėntė",
"filedelete": "Trintė $1",
"filedelete-legend": "Trintė faila",
"statistics-users": "Ožsėregėstravosiu [[Special:ListUsers|nauduotuoju]]",
"statistics-users-active": "Aktīviu nauduotuoju",
"statistics-users-active-desc": "Nauduotuojē, katrėi par {{PLURAL:$1|paskiausė dėina|paskiausė 2 dėinė|paskiausės $1 dėinas|paskiausiu $1 dėinū}} padėrba keitėmu",
+ "pageswithprop": "Poslapē so apībriežtuom savībėm",
+ "pageswithprop-legend": "Poslapē so apībriežtuom savībėm",
"pageswithprop-submit": "Ēk",
"doubleredirects": "Dvėgobė nusokėmā",
"doubleredirectstext": "Tėi paradresavėmā ruod i kėtus paradresavėma poslapius. Kuožnuo eilotē pamėnavuots pėrmasā ėr ontrasā paradresavėmā, tēpuogi ontrojė paradresavėma paskėrtis, katra paprastā ė paruod i tėkraji poslapi, i katra pėrmasā paradresavėms ė torietu ruodītė.",
"protectedpages-unknown-performer": "Nežėnuoms nauduotuos",
"protectedtitles": "Apsauguotė pavadinėmā",
"protectedtitlesempty": "Šėtou čieso nier anėjuokė pavadinėma, katros apsauguots tās parametrās.",
- "listusers": "Sārošos nauduotuoju",
+ "listusers": "Sārašos nauduotuoju",
"listusers-editsonly": "Ruodītė tėktās nauduotuojus katrėi īr atlėkė pakeitėmus",
"usereditcount": "{{PLURAL:$1|pataisīms|pataisīmā|pataisīmu}}",
"usercreated": "{{GENDER:$3|Padėrba paskīra}} $1 $2",
"logempty": "Istuorėjuo nier anėjuokiū atitinkontiu atsėtėkimu.",
"log-title-wildcard": "Ėiškuotė pavadinėmu, katrė prasėded šėtuo teksto",
"showhideselectedlogentries": "Ruodītė/kavuotė sāraša ponktus, katrūs pasėrėnkot",
+ "checkbox-select": "Rinktėis: $1",
+ "checkbox-all": "Viskos",
"allpages": "Vėsė straipsnē",
"nextpage": "Kėts poslapis ($1)",
"prevpage": "Onkstesnis poslapis ($1)",
"listgrouprights": "Nauduotuoju gropiu teisės",
"listgrouprights-group": "Gropė",
"listgrouprights-rights": "Teisės",
- "listgrouprights-members": "(nariū sārošos)",
+ "listgrouprights-members": "(nariū sārašos)",
+ "trackingcategories": "Pruogramėnės keravuojėma kateguorėjės",
"mailnologin": "Nier adresa",
"mailnologintext": "Tamstā reik būtė [[Special:UserLogin|prisėjongosiam]]\nė tor būtė ivests teisings el. pašta adresos Tamstas [[Special:Preferences|nustatīmuos]],\nkū siōstomiet el. gruomatas kėtėm nauduotuojam.",
"emailuser": "Rašītė gruomata šėtam nauduotuojō",
"actioncomplete": "Vēksmos padėrbts īr",
"actionfailed": "Vēksmos atšaukts īr",
"deletedtext": "„$1“ ėštrints īr.\nVielībūju trīnėmu istuorėjė - $2.",
- "dellogpage": "Ėštrīnėmu sārošos",
+ "dellogpage": "Ėštrīnėmu sārašos",
"dellogpagetext": "Apatiuo gol patīs vielībė̄jė ėštrīnėmā.",
- "deletionlog": "ėštrīnėmu sārošos",
+ "deletionlog": "ėštrīnėmu sārašos",
"reverted": "Grōžinta tāp, kāp ėšruodė pėrmiou",
"deletecomment": "Dingstės:",
"deleteotherreason": "Kėta/papėlduoma dingstės:",
"rollbackfailed": "Atmetėms nasėgava",
"cantrollback": "Negalėma atmestė redagavėma; paskotinis keitės nauduotuos īr tuo poslapė autorius.",
"alreadyrolled": "Nė̄šēn otgrōžintė pakeitėma, [[:$1]] katra padėrba [[User:$2|$2]] ([[User talk:$2|aptarėms]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nkažkas ton jau padėrba pėrmiou.\n\nVielībiausā ton poslapė pakeitėms padėrbts [[User:$3|$3]] ([[User talk:$3|aptarėms]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) īr.",
- "editcomment": "Padėrbėma pāiškėnėms bova: <em>$1</em>.",
+ "editcomment": "Padėrbėma paāškėnėms bova: <em>$1</em>.",
"revertpage": "Atmests [[Special:Contributions/$2|$2]] ([[User talk:$2|aptarėms]]) pakeitėms; sogrōžints atmains, katron padėrba nauduotuos [[User:$1|$1]]",
"rollback-success": "Atmestė $1 padėrbtė keitėmā; grōžints $2 padėrbts atmains.",
"sessionfailure": "Atruod ka īr biedū so Tamstas prėsėjongėmo; tas vēksmos bova grōžints kāp atsargoma prėimonė nu sesėjės vuogėma.\nPrašoum mīgtė „atgal“ ėr parkrautė poslapi ėš katruo atiejėt, ė pamieginkėt apent.",
"undeleteextrahelp": "Nuoriedamė atkortė vėsa poslapi, palikit vėsas varnales napažīmietas ėr\nspauskėt '''''Atkortė'''''. Nuoriedamiė atlėktė pasirėnktini atstatīma, pažīmiekit varnales šėtū versėju, katras nuorietomiet atstatītė, ėr spauskėt '''''Atkortė'''''. Paspaudus\n'''''Ėš naujė''''' bos ėšvalītuos vėsos varnalės ėr kuomentara lauks.",
"undeleterevisions": "$1 {{PLURAL:$1|versėjė|versėjės|versėju}} soarkīvouta",
"undeletehistory": "Jē atstatīsėt straipsni, istuorėjuo bos atstatītuos vėsos versėjės.\nJē puo ėštrīnima bova sokuots straipsnis tuokiuo patio pavadėnėmo,\natstatītuos versėjės atsiras onkstesnie istuorėjuo, o dabartėnė\nversėjė lėks napakeista. Atkoriant īr prarondamė apribuojimā failu versėjuom.",
- "undeleterevdel": "Atkorėms nebus ivīkdīts, jē šėtā nulems paskotėnės poslapė versėjės dalini ėštrīnima.\nTuokēs atvejās, Tamstā rēk atžīmietė a atkavuotė naujausēs ėštrintas versėjės.\nFailu versėjės, katrū netorėt teisiu veizėtė, nebus atkortas.",
+ "undeleterevdel": "Poslapė atstatīms nabūs padarīts, jēb dielē ton ėšsitrintom vielībė̄jė poslapė pakeitėmā.\nTūdie Tamstā rēk atžīmietė aba atkavuotė vielībuosius ėštrintus atmainus.",
"undeletehistorynoadmin": "Šėts straipsnis bova ėštrints. Trīnima prižastis\nruodoma žemiau, teipuogi kas redagava poslapi\nlėgė trīnima. Ėštrintū poslapiu tekstos īr galėmas tėk admėnėstratuoriam.",
"undelete-revision": "Ėštrėnta $1 versėjė, katra $4 d. $5 padėrba $3:",
"undeleterevision-missing": "Neteisėnga a dėngosė versėjė. Tamsta mažo torėt bluoga nūruoda, a versėjė bova atkorta a pašalėnta ėš arkīva.",
"undeletebtn": "Grōžintė",
"undeletelink": "veizietė/grōžintė",
"undeleteviewlink": "veizietė",
- "undeleteinvert": "Žīmietė prīšėngā",
+ "undeleteinvert": "Žīmietė atvėrkštē",
"undeletecomment": "Dingstės:",
"undeletedrevisions": "$1 {{PLURAL:$1|pakeitėms sogrōžints|pakeitėmā sogrōžintė|pakeitėmu sogrōžintu}} īr",
"undeletedrevisions-files": "sogrōžintaː $1 {{PLURAL:$1|pakeitėms|pakeitėmā|pakeitėmu}} ėr $2 {{PLURAL:$2|abruozdielis|abruozdielē|abruozdieliu}}",
"undelete-show-file-confirm": "A ėš tėkrā nuorėt parveizietė ėštrėnta faila „<nowiki>$1</nowiki>“ $2 $3 versėjė?",
"undelete-show-file-submit": "Tēp",
"namespace": "Vardū srėtės:",
- "invert": "Žīmietė prīšėngā",
+ "invert": "Žīmietė atvėrkštē",
"tooltip-invert": "Pažīmiekat ton varnalė, ka pakavuotomiet pakeitėmus pasėrinktūs poslapiūs (ė prėgolontės vardū srėtis)",
"namespace_association": "Prėgolontė vardū srėtės",
"tooltip-namespace_association": "Pažīmiekat ton varnalė, ka prėgoldītomat aptarėmus, katrėi ī sosėjė so parinkta vardū srėtim",
"uctop": " (vielībs)",
"month": "Nug mienėsė (ėr onkstiau):",
"year": "Nug metu (ėr onkstiau):",
- "sp-contributions-newbies": "Ruodītė tėk naujū prieteliu duovios",
+ "sp-contributions-newbies": "Ruodītė tėktās naujū prieteliu duovius",
"sp-contributions-newbies-sub": "Naujuoms paskīruoms",
"sp-contributions-newbies-title": "Nauduotuoju keitėmā naujuoms paskīruoms",
"sp-contributions-blocklog": "Bluokavėmu istuorėjė",
"contribslink": "duovis",
"emaillink": "siōstė pašta",
"autoblocker": "Autuomatėnis ožbluokavėms, nes dalėnaties IP adreso so nauduotuojo \"$1\". Prīžastės - \"$2\".",
- "blocklogpage": "Ožgīnėmu sārošos",
+ "blocklogpage": "Ožgīnėmu sārašos",
"blocklog-showlog": "Nauduotuos jau bova ožgints pėrmiou.\nApatiuo veiziekat kas ė kāpː",
"blocklogentry": "ožgīnė [[$1]] nug dėrbėma, tas vēk ton čiesa - $2 $3",
"reblock-logentry": "pakeistė [[$1]] bluokavėma nustatīmā, naus bluokavėma čiesos īr $2 $3",
"tooltip-pt-anonuserpage": "Nauduotuojė poslapis Tamstas IP adresō",
"tooltip-pt-mytalk": "Tamstas aptarėma poslapis",
"tooltip-pt-preferences": "Mona nustatīmā",
- "tooltip-pt-watchlist": "Poslapiu, katrūs Tamsta pasėrėnkuot keravuotė, sārošos.",
+ "tooltip-pt-watchlist": "Poslapiu, katrūs Tamsta pasirinkuot keravuotė, sārašos.",
"tooltip-pt-mycontris": "Tamstas dėrbtū keitėmu sārašos",
"tooltip-pt-login": "Kvėitam prėsėjongtė, nuors tas ė nie būtėna.",
"tooltip-pt-logout": "Atsėjongtė",
"tooltip-save": "Ėšsauguotė pakeitėmus",
"tooltip-preview": "Ta īr pakeitėmu parveiza. Prašuom parveizat prīš ėšsaugont!",
"tooltip-diff": "Ruod, kū parkeitiet straipsni.",
- "tooltip-compareselectedversions": "Veizėtė abodvėju pasėrėnktū poslapė versėju skėrtomos.",
+ "tooltip-compareselectedversions": "Veizietė abodvėju pasirinktū poslapė atmainu skėrtomus.",
"tooltip-watch": "Pridietė šėta poslapi i keravuojamu sāraša",
"tooltip-recreate": "Atkortė poslapi napaisant šėto, kū ans bova ėštrints",
"tooltip-rollback": "Sogrōžintė poslapi tāp, kāp ons bova prīš vielībūs ton nauduotuojė pardėrbėmus",
"watchlistedit-raw-explain": "Žemiau ruodomė poslapē Tamstas keravuojamu sārašė, ė gal būtė pridietė i a pašalėntė ėš sāraša; vėins poslapis eilotie. Bėngė paspauskėt „Atnaujėntė keravuojamu sāraša“. Tamsta tēpuogi galėt [[Special:EditWatchlist|nauduotė standartėni radaktuoriu]].",
"watchlistedit-raw-titles": "Poslapē:",
"watchlistedit-raw-submit": "Atnaujėntė keravuojamu sāraša",
- "watchlistedit-raw-done": "Tamstas keravuojamu sārošos bova atnaujėnts.",
+ "watchlistedit-raw-done": "Tamstas keravuojamu poslapiu sārašos bova atnaujints.",
"watchlistedit-raw-added": "$1 {{PLURAL:$1|poslapis bova pridiets|poslapē bova pridietė|poslapiu bova pridieta}}:",
"watchlistedit-raw-removed": "$1 {{PLURAL:$1|poslapis bova pašalėnts|poslapē bova pašalėntė|poslapiu bova pašalėnta}}:",
"watchlisttools-view": "Veizietė sosėjosius pakeitėmus",
"logentry-upload-overwrite": "$1 {{GENDER:$2|ožkruovė}} naujė $3 atmaina",
"logentry-upload-revert": "$1 {{GENDER:$2|ožkruovė}} $3",
"rightsnone": "(juokiū)",
- "revdelete-summary": "keitėma pāiškėnėms",
+ "revdelete-summary": "keitėma paāškėnėms",
"feedback-close": "Padėrbt",
"searchsuggest-search": "Ėiškuotė",
"searchsuggest-containing": "katrėi tor...",
"resetpass_submit": "Nastaviť heslo a prihlásiť sa",
"changepassword-success": "Vaše heslo bolo úspešne zmenené!",
"changepassword-throttled": "Uskutočnili ste príliš mnoho neúspešných pokusov o prihlásenie. Prosím, počkajte $1 predtým, než to skúsite znova.",
+ "botpasswords-label-appid": "Názov bota:",
+ "botpasswords-label-create": "Vytvoriť",
+ "botpasswords-label-update": "Aktualizovať",
+ "botpasswords-label-cancel": "Zrušiť",
+ "botpasswords-label-delete": "Vymazať",
+ "botpasswords-label-resetpassword": "Obnoviť heslo",
"resetpass_forbidden": "Heslá nie je možné zmeniť",
"resetpass-no-info": "Aby ste mohli priamo pristupovať k tejto stránke, musíte sa prihlásiť.",
"resetpass-submit-loggedin": "Zmeniť heslo",
"sig_tip": "Váš podpis s dátumom a časom",
"hr_tip": "Vodorovná čiara (radšej ju nepoužívajte)",
"summary": "Zhrnutie úprav:",
- "subject": "Téma/nadpis:",
+ "subject": "Predmet:",
"minoredit": "Toto je drobná úprava",
"watchthis": "Sledovať úpravy tejto stránky",
"savearticle": "Uložiť stránku",
+ "savechanges": "Uložiť zmeny",
+ "publishpage": "Publikovať stránku",
+ "publishchanges": "Publikovať zmeny",
"preview": "Náhľad",
"showpreview": "Zobraziť náhľad",
"showdiff": "Zobraziť rozdiely",
"mw-widgets-dateinput-placeholder-month": "RRRR-MM",
"mw-widgets-titleinput-description-new-page": "stránka zatiaľ neexistuje",
"mw-widgets-titleinput-description-redirect": "presmerovanie na $1",
- "api-error-blacklisted": "Prosím, zvoľte iný, opisný názov.",
"randomrootpage": "Náhodná koreňová stránka"
}
},
"tog-underline": "Nënvizimi i lidhjes:",
"tog-hideminor": "Fshih redaktimet e vogla nga ndryshimet e fundit",
- "tog-hidepatrolled": "Fshih redaktimet e paturlluara nga ndryshimet e fundit",
- "tog-newpageshidepatrolled": "Fshih faqet e patrulluara nga lista e faqeve të reja",
+ "tog-hidepatrolled": "Fshih redaktimet e kontrolluara nga ndryshimet e fundit",
+ "tog-newpageshidepatrolled": "Fshih faqet e kontrolluara nga lista e faqeve të reja",
"tog-hidecategorization": "Fshih kategorizimin e faqeve",
- "tog-extendwatchlist": "Zgjero listën e faqeve të vëzhguara që t'i tregojë të gjitha ndryshimet, jo vetëm më të fundit.",
- "tog-usenewrc": "Grupo ndryshimet sipas faqeve në ndryshime së fundmi dhe listën mbikqyrëse (kërkon JavaScript)",
- "tog-numberheadings": "Numëro automatikish titujt",
+ "tog-extendwatchlist": "Zgjero listën e të gjitha faqeve të vëzhguara në mënyrë që t'i tregojë të gjitha ndryshimet, jo vetëm më të fundit.",
+ "tog-usenewrc": "Grupo ndryshimet sipas faqes në ndryshimet më të fundit dhe listën e vëzhgimit (kërkon JavaScript)",
+ "tog-numberheadings": "Numërim automatik i titujve",
"tog-showtoolbar": "Shfaq shiritin e veglave të redaktorit",
"tog-editondblclick": "Redakto faqe në klikim të dyfishtë",
"tog-editsectiononrightclick": "Aktivizo redaktimin e seksioneve duke klikuar me të djathtën mbi titullin e seksionit",
"tog-watchrollback": "Shto faqet ku unë kam kryer një rikthim tek lista ime mbikqyrëse",
"tog-minordefault": "Shëno të gjitha redaktimet si të vogla automatikisht",
"tog-previewontop": "Vendose kutinë e bocetit sipër kutisë së redaktimeve",
- "tog-previewonfirst": "Tregoje bocetin në redaktimin e parë",
- "tog-enotifwatchlistpages": "Më njofto me e-mail kur ndryshohet një faqe apo skedarë nga lista ime e faqeve nën mbikqyrje",
+ "tog-previewonfirst": "Trego se si do të duket faqja pos ta filloj redaktimin",
+ "tog-enotifwatchlistpages": "Më njofto me email kur ndryshohet një faqe apo skedë nga lista ime e faqeve nën mbikqyrje",
"tog-enotifusertalkpages": "Kur faqja ime e diskutimeve e përdoruesit ndryshohet, më dërgo email",
"tog-enotifminoredits": "Më njofto me e-mail edhe kur ka redaktime të vogla në faqe dhe skedave",
"tog-enotifrevealaddr": "Tregoje adresën time të e-mail-it në e-mail-et njoftuese",
"tog-ccmeonemails": "Më dërgo kopje të mesazheve që u dërgoj të tjerëve",
"tog-diffonly": "Mos trego përmbajtjen e faqes nën diff-e",
"tog-showhiddencats": "Trego kategoritë e fshehura",
- "tog-norollbackdiff": "Ndryshimi pas rikthimit do të fshihet",
+ "tog-norollbackdiff": "Mos trego ndrysh pas kryerjes së një rikthkimi",
"tog-useeditwarning": "Më paralajmëro kur unë lë një redaktim faqeje me ndryshime të paruajtura",
"tog-prefershttps": "Gjithmonë përdorni një lidhje të sigurt kur të kyçur",
"underline-always": "Gjithmonë",
"underline-default": "Parapërcaktuar nga shfletuesi",
"editfont-style": "Zgjidh stilin e gërmave të hapsirës:",
"editfont-default": "Sipas rregullit në shfletues",
- "editfont-monospace": "Gërma monospace",
+ "editfont-monospace": "Germa me hapësirë të barabartë",
"editfont-sansserif": "Germa Sans-serif",
"editfont-serif": "Gërma serif",
"sunday": "E diel",
"listingcontinuesabbrev": "vazh.",
"index-category": "Faqe të indeksuara",
"noindex-category": "Faqe jo të indeksuara",
- "broken-file-category": "Faqet me lidhjet file thyer",
- "about": "Rreth",
+ "broken-file-category": "Faqet me lidhje të parregullta",
+ "about": "Për",
"article": "Faqja e përmbajtjes",
"newwindow": "(hapet në një dritare të re)",
"cancel": "Anulo",
"createacct-another-realname-tip": "* Emri i vërtetë nuk është i domosdoshëm: Nëse e jepni do të përmendeni si kontribues për punën që ke bërë.",
"pt-login": "Hyni",
"pt-login-button": "Hyni",
+ "pt-login-continue-button": "Vazhdoidntifikohu",
"pt-createaccount": "Krijo llogari",
"pt-userlogout": "Dil",
"php-mail-error-unknown": "Gabim i panjohur në funksionin e postës PHP ()",
"newpassword": "I riu",
"retypenew": "I riu përsëri",
"resetpass_submit": "Ndrysho fjalëkalimin dhe hyni brenda",
- "changepassword-success": "Fjalëkalimin juaj ka ndryshuar me sukses!",
+ "changepassword-success": "Fjalëkalimi yt është ndryshuar.",
"changepassword-throttled": "Keni bërë shumë tentime të njëpasnjëshme në fjalëkalimin e kësaj llogarie. Ju lutemi prisni para se te tentoni përsëri.",
+ "botpasswords": "Bot fjalëkalimet",
+ "botpasswords-label-create": "Krijo",
+ "botpasswords-label-update": "Përditëso",
+ "botpasswords-label-cancel": "Anulo",
+ "botpasswords-label-delete": "Fshi",
+ "botpasswords-label-resetpassword": "Rivendos fjalëkalimin",
+ "botpasswords-update-failed": "Dështoi për të përditësuar emrin e bot \"$1\". Ishte fshirë?",
"resetpass_forbidden": "Fjalëkalimet nuk mund të ndryshohen",
"resetpass-no-info": "Duhet të jeni i kyçur që të keni qasje direkte në këtë faqe.",
"resetpass-submit-loggedin": "Ndrysho fjalëkalimin",
"special-characters-group-lao": "Lao",
"special-characters-group-khmer": "Khmer",
"mw-widgets-dateinput-placeholder-day": "VVVV-MM-DD",
- "mw-widgets-dateinput-placeholder-month": "VVVV-MM",
- "api-error-blacklisted": "Ju lutemi zgjidhni një titull të ndryshëm, përshkrues."
+ "mw-widgets-dateinput-placeholder-month": "VVVV-MM"
}
"userpage-userdoesnotexist": "Кориснички налог „<nowiki>$1</nowiki>“ није отворен.\nРазмислите да ли заиста желите да направите/уредите ову страницу.",
"userpage-userdoesnotexist-view": "Кориснички налог „$1“ није отворен.",
"blocked-notice-logextract": "Овај корисник је тренутно блокиран.\nИзвештај о последњем блокирању можете погледати испод:",
- "clearyourcache": "<strong>Напомена:</strong> након чувања, можда ћете морати да очистите кеш прегледача како бисте видели промене.\n* <strong>Фајерфокс / Сафари:</strong> држите <em>Shift</em> и кликните на <em>Освежи</em>, или притисните <em>Ctrl-F5</em> или <em>Ctrl-R (<em>⌘-R</em> на Меку)\n* <strong>Гугл кроум:</strong> притисните <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> на Меку)\n* <strong>Интернет експлорер:</strong> држите <em>Ctrl</em> и кликните на <em>Освежи</em> или притисните <em>Ctrl-F5</em>\n* <strong>Опера:</strong> идите на <em>Алатке → Подешавања</em> (<em>Опера → Поставке</em> на Меку) и затим <em>Приватност и безбедност → Очистите податке о прегледима → Кеширане слике и датотеке</em>.",
+ "clearyourcache": "<strong>Напомена:</strong> након чувања, можда ћете морати да очистите кеш прегледача како бисте видели промене.\n* <strong>Фајерфокс / Сафари:</strong> држите <em>Shift</em> и кликните на <em>Освежи</em>, или притисните <em>Ctrl-F5</em> или <em>Ctrl-R</em> (<em>⌘-R</em> на Меку)\n* <strong>Гугл кроум:</strong> притисните <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> на Меку)\n* <strong>Интернет експлорер:</strong> држите <em>Ctrl</em> и кликните на <em>Освежи</em> или притисните <em>Ctrl-F5</em>\n* <strong>Опера:</strong> идите на <em>Алатке → Подешавања</em> (<em>Опера → Поставке</em> на Меку) и затим <em>Приватност и безбедност → Очистите податке о прегледима → Кеширане слике и датотеке</em>.",
"usercssyoucanpreview": "'''Савет:''' кориситите дугме „{{int:showpreview}}“ да испробате свој нови CSS пре него што га сачувате.",
"userjsyoucanpreview": "'''Савет:''' кориситите дугме „{{int:showpreview}}“ да испробате свој нови јаваскрипт пре него што га сачувате.",
"usercsspreview": "'''Ово је само преглед CSS-а.'''\n'''Страница још није сачувана!'''",
"userpage-userdoesnotexist": "Korisnički nalog „<nowiki>$1</nowiki>“ nije otvoren.\nRazmislite da li zaista želite da napravite/uredite ovu stranicu.",
"userpage-userdoesnotexist-view": "Korisnički nalog „$1“ nije otvoren.",
"blocked-notice-logextract": "Ovaj korisnik je trenutno blokiran.\nIzveštaj o poslednjem blokiranju možete pogledati ispod:",
- "clearyourcache": "<strong>Napomena:</strong> nakon čuvanja, možda ćete morati da očistite keš pregledača kako biste videli promene.\n* <strong>Fajerfoks / Safari:</strong> držite <em>Shift</em> i kliknite na <em>Osveži</em>, ili pritisnite <em>Ctrl-F5</em> ili <em>Ctrl-R (<em>⌘-R</em> na Meku)\n* <strong>Gugl kroum:</strong> pritisnite <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na Meku)\n* <strong>Internet eksplorer:</strong> držite <em>Ctrl</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em>\n* <strong>Opera:</strong> idite na <em>Alatke → Podešavanja</em> (<em>Opera → Postavke</em> na Meku) i zatim <em>Privatnost i bezbednost → Očistite podatke o pregledima → Keširane slike i datoteke</em>.",
+ "clearyourcache": "<strong>Napomena:</strong> nakon čuvanja, možda ćete morati da očistite keš pregledača kako biste videli promene.\n* <strong>Fajerfoks / Safari:</strong> držite <em>Shift</em> i kliknite na <em>Osveži</em>, ili pritisnite <em>Ctrl-F5</em> ili <em>Ctrl-R</em> (<em>⌘-R</em> na Meku)\n* <strong>Gugl kroum:</strong> pritisnite <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na Meku)\n* <strong>Internet eksplorer:</strong> držite <em>Ctrl</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em>\n* <strong>Opera:</strong> idite na <em>Alatke → Podešavanja</em> (<em>Opera → Postavke</em> na Meku) i zatim <em>Privatnost i bezbednost → Očistite podatke o pregledima → Keširane slike i datoteke</em>.",
"usercssyoucanpreview": "'''Savet:''' korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi CSS pre nego što ga sačuvate.",
"userjsyoucanpreview": "'''Savet:''' korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi javaskript pre nego što ga sačuvate.",
"usercsspreview": "'''Ovo je samo pregled CSS-a.'''\n'''Stranica još nije sačuvana!'''",
"template-protected": "(ಸಂರಕ್ಷಿತೊ)",
"template-semiprotected": "(ಅರೆ-ಸಂರಕ್ಷಿತೊ)",
"hiddencategories": "ಈ ಪುಟೊ {{PLURAL:$1|೧ ಗುಪ್ತ ವರ್ಗೊಗ್|$1 ಗುಪ್ತ ವರ್ಗೊಲೆಗ್}} ಸೇರ್ದ್ನ್ಡ್:",
+ "permissionserrors": "ಅನುಮತಿ ದೋಷ",
"permissionserrorstext-withaction": "$2 ಗ್ ಇರೆಗ್ ಅನುಮತಿ ಇದ್ದಿ, ಅಯಿಕ್ {{PLURAL:$1|ಕಾರಣೊ|ಕಾರಣೊಲು}}:",
"moveddeleted-notice": "ಈ ಪುಟೊ ಅಸ್ತಿತ್ವೊಡ್ ಇದ್ದಿ.\nಪುಟೊದ ಡಿಲೀಶನ್ ಅತ್ತ್ಂಡ್ ಕಡಪ್ಪುಡುನೆ ಲಾಗ್ನ್ ತೂಯರೆ ತಿರ್ತ್ ಕೊರ್ತ್ಂಡ್.",
+ "content-model-wikitext": "ವಿಕಿ ಪಠ್ಯ",
"viewpagelogs": "ಈ ಪುಟೊತ ದಾಕಲೆಲೆನ್ ತೂಲೆ",
"nohistory": "ಈ ಪುಟಕ್ ಬದಲಾವಣೆದ ಇತಿಹಾಸ ಇಜ್ಜಿ",
"currentrev": "ಇತ್ತೆದ ಆವೃತ್ತಿ",
"notextmatches": "ವಾ ಪುಟೊತ ಪಠ್ಯೊಡುಲಾ ಹೋಲಿಕೆ ಇಜ್ಜಿ",
"prevn": "ದುಂಬು {{PLURAL:$1|$1}}",
"nextn": "ಬೊಕ್ಕೊ {{PLURAL:$1|$1}}",
+ "prev-page": "ದುಂಬುತ ಪುಟೊ",
+ "next-page": "ನನತಾ ಪುಟ",
"nextn-title": "ದುಂಬುದ $1 {{PLURAL:$1|result|ಪಲಿತಾಂಸೊಲು}}",
"shown-title": "ಪ್ರತಿ ಪುಟೊಡುಲಾ $1 {{PLURAL:$1|result|ಪಲಿತಾಂಸೊ}} ತೋಜಿಪಾವು",
"viewprevnext": "ತೂಲೆ($1 {{int:pipe-separator}} $2) ($3)",
"prefs-skin": "ಸ್ಕಿನ್",
"skin-preview": "ಮುನ್ನೋಟೊ",
"datedefault": "ಒವ್ವೇ ಪ್ರಾಸಸ್ತ್ಯೊ ಇದ್ದಿ",
+ "prefs-user-pages": "ಸದಸ್ಯೆರೆನ ಪುಟೊ",
"prefs-rc": "ಇಂಚಿಪದ ಬದಲಾವಣೆಲು",
+ "prefs-watchlist": "ವೀಕ್ಷಣಾಪಟ್ಟಿ",
"prefs-resetpass": "ಪ್ರವೇಶಪದೊನ್ ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
"prefs-changeemail": "ಇ-ಅಂಚೆ ವಿಳಾಸೊನು ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ ಅತ್ತಂಡ ದೆಪ್ಪುಲೆ",
"prefs-setemail": "ಇ-ಅಂಚೆ ವಿಳಾಸೊನು ಸ್ತಾಪನೆ ಮಲ್ಪು",
"prefs-tokenwatchlist": "ಟೊಕನ್",
"userrights-lookup-user": "ಬಳಕೆದಾರೆರೆ ಗುಂಪುಲೆನ್ ನಿರ್ವಹಿಸಲ",
"userrights-user-editname": "ಒಂಜಿ ಸದಸ್ಯ ಪುದರ್ ಬರೆಲೆ",
+ "userrights-reason": "ಕಾರಣೊ:",
"group": "ಗುಂಪುಲು:",
"group-user": "ಬಳಕೆದಾರೆರ್",
"group-sysop": "ನಿರ್ವಾಹಕೆರ್",
"right-writeapi": "ಬರೆಯಿನ ಎಪಿಐದ ಬಳಕೆ",
"right-delete": "ಪುಟೊಕುಲೆನ್ ಮಾಜಾಲೆ",
"right-undelete": "ಪುಟೊನ್ ಮಾಜಾವಡೆ",
+ "grant-group-email": "ಇ-ಅಂಚೆ ಕಡಪುಡುಲೆ",
"newuserlogpage": "ಸದಸ್ಯೆರೆ ಸ್ರಿಸ್ಟಿದ ದಾಕಲೆ",
"rightslog": "ಸದಸ್ಯೆರ್ನ ಹಕ್ಕು ದಾಖಲೆ",
"action-read": "ಈ ಪುಟೊನು ಓದುಲೆ",
"recentchanges-label-plusminus": "ಬೈಟ್ಸ್ದ ಲೆಕ್ಕೊಡು ಈ ಪಾಲೆದ ಗಾತ್ರೊ ಬದಲಾತ್ಂಡ್",
"recentchanges-legend-heading": "<strong>ಲೆಜೆಂಡ್:</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ಬೊಕ್ಕೊಲಾ ತೂಲೆ [[Special:NewPages|ಪೊಸ ಪುಟೊದ ಪಟ್ಟಿ]])",
+ "recentchanges-submit": "ತೋಜಾಲೆ",
"rclistfrom": "$3 $2 ರ್ದ್ ಸುರುವಾತಿನ ಪೊಸ ಬದಲಾವಣೆಲೆನ್ ತೊಜ್ಪಾವು",
"rcshowhideminor": "$1 ಎಲ್ಯೆಲ್ಯ ಬದಲಾವಣೆಲು",
"rcshowhideminor-show": "ತೋಜಾಲೆ",
"rcshowhidebots-show": "ತೊಜಾವು",
"rcshowhidebots-hide": "ಅಡೆಂಗಾವು",
"rcshowhideliu": "ನೋಂದವಣೆ ಆತಿನಂಚಿನ ಸದಸ್ಯೆರ್ $1",
+ "rcshowhideliu-show": "ತೋಜಾಲೆ",
"rcshowhideliu-hide": "ಅಡೆಂಗಾವು",
"rcshowhideanons": "ಪುದರ್ ಇದ್ಯಾಂದಿನ ಸದಸ್ಯೆರ್ $1",
"rcshowhideanons-show": "ತೋಜಾಲೆ",
"rcshowhideanons-hide": "ಅಡೆಂಗಾವು",
"rcshowhidepatr": "$1 ಪರೀಕ್ಷಿಸಾದಿನ ಸಂಪಾದನೆಲು",
+ "rcshowhidepatr-show": "ತೋಜಾಲೆ",
+ "rcshowhidepatr-hide": "ಅಡೆಂಗಾವು",
"rcshowhidemine": "ಎನ್ನ ಸಂಪಾದನೆಲೆನ್ $1",
"rcshowhidemine-show": "ತೋಜಾಲೆ",
"rcshowhidemine-hide": "ಅಡೆಂಗಾವು",
+ "rcshowhidecategorization-show": "ತೋಜಾಲೆ",
+ "rcshowhidecategorization-hide": "ಅಡೆಂಗಾವು",
"rclinks": "ದುಂಬುದ $2 ದಿನೊಲೆಡ್ ಮಲ್ತಿನ $1 ಪಿರವುದ ಬದಲಾವಣೆಲೆನ್ ತೂಲೆ <br />$3",
"diff": "ವ್ಯತ್ಯಾಸೊ",
"hist": "ಇತಿಹಾಸೊ",
"uploadlogpage": "ಅಪ್ಲೋಡ್ ದಾಖಲೆ",
"filename": "ಕಡತದ ಪುದರ್",
"filedesc": "ಸಾರಾಂಸೊ",
+ "fileuploadsummary": "ಸಾರಾಂಸೊ:",
"filesource": "ಮೂಲ",
"savefile": "ಕಡತನ್ ಒರಿಪಾಲೆ",
"upload-source": "ಮೂಲ ಕಡತ",
+ "upload-file-error": "ಆ೦ತರಿಕ ದೋಷ",
+ "upload-dialog-button-cancel": "ವಜಾ ಮಲ್ಪುಲೆ",
+ "upload-dialog-button-done": "ಆಂಡ್",
+ "upload-dialog-button-save": "ಒರಿಪಾಲೆ",
+ "upload-dialog-button-upload": "ಅಪ್ಲೊಡ್",
+ "upload-form-label-infoform-title": "ವಿವರೊ",
+ "upload-form-label-infoform-name": "ಪುದರ್",
+ "upload-form-label-infoform-description": "ವಿವರಣೆ",
+ "upload-form-label-usage-filename": "ಕಡತದ ಪುದರ್",
+ "upload-form-label-infoform-categories": "ವರ್ಗೊಲು",
+ "upload-form-label-infoform-date": "ದಿನೊ",
+ "license": "ಪರವಾನಗಿ:",
"license-header": "ಪರವಾನಿಗೆ",
+ "listfiles-delete": "ಮಾಜಾಲೆ",
"imgfile": "ಫೈಲ್",
+ "listfiles_thumb": "ಎಲ್ಯಚಿತ್ರೊ",
+ "listfiles_date": "ದಿನೊ",
+ "listfiles_name": "ಪುದರ್",
+ "listfiles_user": "ಬಳಕೆದಾರೆರ್",
+ "listfiles_size": "ಗಾತ್ರೊ",
+ "listfiles_description": "ವಿವರಣೆ",
+ "listfiles_count": "ಆವೃತ್ತಿಲು",
+ "listfiles-latestversion-yes": "ಅಂದ್",
+ "listfiles-latestversion-no": "ಅತ್ತ್",
"file-anchor-link": "ಫೈಲ್",
"filehist": "ಫೈಲ್ದ ಇತಿಹಾಸೊ",
"filehist-help": "ದಿನೊ/ಪೊರ್ತುದ ಮಿತ್ತ್ ಒತ್ತ್ಂಡ ಈ ಫೈಲ್ದ ನಿಜೊಸ್ತಿತಿ ತೋಜುಂಡು.",
"filehist-deleteall": "ಮಾತಾ ಮಾಜಾಲೆ",
"filehist-deleteone": "ಮಾಜಾಲೆ",
+ "filehist-revert": "ದುಂಬುದ ಲೆಕ ಮಲ್ಪುಲೆ",
"filehist-current": "ಇತ್ತೆದ",
"filehist-datetime": "ದಿನೊ/ಪೊರ್ತು",
"filehist-thumb": "ಎಲ್ಯಚಿತ್ರೊ",
"sharedupload": "ಈ ಫೈಲ್’ನ್ ಮಸ್ತ್ ಜನ ಪಟ್ಟ್’ದುಲ್ಲೆರ್ ಅಂಚೆನೆ ಉಂದು ಮಸ್ತ್ ಪ್ರೊಜೆಕ್ಟ್’ಲೆಡ್ ಉಪಯೋಗಡುಪ್ಪು.",
"sharedupload-desc-here": "ಈ ಪುಟೊ $1ಡ್ದ್ ಬೊಕ್ಕ ಬೇತೆ ಯೋಜನೆಡ್ದ್ ಗಳಸೊಲಿ.\nಈ ಪುಟೊತ ವಿವರೊ [$2 ಪುಟೊತ ವಿವರೊ] ತಿರ್ತ ಸಾಲ್ಡ್ ತೋಜಾದ್ಂಡ್",
"upload-disallowed-here": "ಈರ್ ಈ ಫೈಲ್ನ್ ಕುಡೊರೊ ಬರೆವರೆ ಸಾದ್ಯೊ ಇದ್ದಿ.",
+ "filerevert-comment": "ಕಾರಣ:",
+ "filerevert-submit": "ದುಂಬುದ ಲೆಕ ಮಲ್ಪುಲೆ",
"filedelete-comment": "ಕಾರಣ",
"filedelete-submit": "ಮಾಜಾಲೆ",
+ "filedelete-reason-otherlist": "ಬೇತೆ ಕಾರಣ",
+ "download": "ಡೌನ್ಲೋಡ್",
"randompage": "ಯಾದೃಚ್ಛಿಕ ಪುಟೊ",
+ "randomincategory-submit": "ಪೋಲೆ",
"statistics": "ಅಂಕಿ ಅಂಶೊಲು",
"statistics-header-pages": "ಪುಟೊತ ಅಂಕಿ ಅಂಶಲು",
+ "statistics-pages": "ಪುಟಕುಲು",
+ "pageswithprop-submit": "ಪೋಲೆ",
+ "brokenredirects-edit": "ಸಂಪೊಲಿಪುಲೆ",
+ "brokenredirects-delete": "ಮಾಜಾಲೆ",
+ "withoutinterwiki-submit": "ತೋಜಾಲೆ",
"nbytes": "$1 {{PLURAL:$1|ಬೈಟ್|ಬೈಟ್ಲು}}",
"nmembers": "$1 {{PLURAL:$1|ಸದಸ್ಯೆ|ಸದಸ್ಯೆರ್}}",
"wantedfiles": "ಬೋಡಾಯಿನ ಕಡತೊಲು",
"prefixindex": "ಪೂರ್ವನಾಮೊಲ್ದ ಸೂಚಿಕೆ",
+ "prefixindex-submit": "ತೋಜಾಲೆ",
+ "protectedpages-page": "ಪುಟೊ",
+ "protectedpages-reason": "ಕಾರಣೊ",
+ "protectedpages-unknown-timestamp": "ಗೊತ್ತಿಜ್ಜಾಂದಿನ",
"listusers": "ಬಳಕೆದಾರರೆನ ತಖ್ತೆ",
"newpages": "ಪೊಸ ಪುಟೊಲು",
+ "newpages-submit": "ತೋಜಾಲೆ",
"newpages-username": "ಸದಸ್ಯೆರ್ನ ಪುದರ್:",
"move": "ಮೂವ್(ಸ್ಥಳಾಂತರ) ಮಲ್ಪುಲೆ",
"movethispage": "ಈ ಪುಟೊನು ಮೂವ್ ಮಲ್ಪುಲೆ",
"pager-newer-n": "{{PLURAL:$1|ಪೊಸ ೧|ಪೊಸ $1}}",
"pager-older-n": "{{PLURAL:$1|ಪರತ್ತ್ ೧|ಪರತ್ತ್ $1}}",
+ "apisandbox-reset": "ಮಾಜಲೇ",
+ "apisandbox-retry": "ನನೊರ ಪ್ರಯತ್ನ ಮಾನ್ಪುಲೇ",
+ "apisandbox-examples": "ಉದಾಹರಣೆಲು",
+ "apisandbox-results": "ಪಲಿತಾಂಸೊ",
"booksources": "ಬೂಕುದ ಮೂಲೊ",
"booksources-search-legend": "ಬೂಕುದ ಮೂಲೊನು ನಾಡ್ಲೆ",
"booksources-search": "ನಾಡ್ಲೆ",
"log": "ದಾಕಲೆಲು",
+ "logeventslist-submit": "ತೋಜಾಲೆ",
+ "checkbox-all": "ಮಾತಾ",
+ "checkbox-none": "ಒವ್ವುಲಾ ಇಜ್ಜಿ",
"allpages": "ಪೂರಾ ಪೂಟೊಲು",
"allpagesfrom": "ಇಂದೆರ್ದ್ ಶುರುವಾಪುನ ಪುಟೊಲೆನ್ ತೊಜ್ಪಾವು:",
"allpagesto": "ಇಂದೆರ್ದ್ ಅಂತ್ಯ ಆಪುನ ಪುಟೊಲೆನ್ ತೊಜ್ಪಾವು:",
"allarticles": "ಮಾತ ಪುಟೊಲು",
"allpagessubmit": "ಪೋಲೆ",
"categories": "ವರ್ಗೊಲು",
+ "categories-submit": "ತೋಜಾಲೆ",
+ "sp-deletedcontributions-contribs": "ಕಾನಿಕೆಲು",
+ "linksearch-ok": "ನಾಡ್ಲೆ",
+ "listusers-submit": "ತೋಜಾಲೆ",
+ "listgrouprights-group": "ಗುಂಪು",
"listgrouprights-members": "(ಸದಸ್ಯೆರ್ನ ಪಟ್ಟಿ)",
+ "listgrants-rights": "ಹಕ್ಕುಗಳು",
"emailuser": "ಈ ಸದಸ್ಯೆರೆಗ್ ಇ-ಮೈಲ್ ಕಡಪುಡ್ಲೆ",
+ "emailusername": "ಸದಸ್ಯೆರ್ನ ಪುದರ್:",
+ "emailusernamesubmit": "ಒಪ್ಪಿಸಾಲೆ",
+ "emailsubject": "ವಿಷಯ:",
+ "emailmessage": "ಸಂದೇಶಲು:",
+ "emailsend": "ಕಡಪುಡುಲೆ",
"watchlist": "ವೀಕ್ಷಣಾ ಪಟ್ಟಿ",
"mywatchlist": "ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿ",
"watch": "ತೂಲೆ",
"watchthispage": "ಈ ಪುಟೊನು ತೂಲೆ",
"unwatch": "ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆಪ್ಪು",
+ "watchlist-hide": "ಅಡೆಂಗಾವು",
+ "watchlist-submit": "ತೋಜಾವು",
+ "wlshowhideminor": "ಎಲ್ಯೆಲ್ಯ ಬದಲಾವಣೆಲು",
"watchlist-options": "ವೀಕ್ಷಣಾಪಟ್ಟಿ ಆಯ್ಕೆಲು",
"watching": "ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾವೊಂದುಂಡು...",
"unwatching": "ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆತ್ತೊಂದುಂಡು...",
+ "confirm": "ಗಟ್ಟಿಮಲ್ಪುಲೆ",
+ "delete-legend": "ಮಾಜಾಲೆ",
+ "historyaction-submit": "ತೋಜಾಲೆ",
"actioncomplete": "ಕಾರ್ಯ ಸಂಪೂರ್ಣ",
"dellogpage": "ಡಿಲೀಟ್ ಮಲ್ತಿನ ಫೈಲ್ದ ದಾಕಲೆ",
+ "deletecomment": "ಕಾರಣ:",
+ "deletereasonotherlist": "ಬೇತೆ ಕಾರಣ",
"rollbacklink": "ಪುಡತ್ತ್ ಪಾಡ್",
"rollbacklinkcount": "ಪಿರ ದೆತೊನ್ಲೆ $1 {{PLURAL:$1|edit|ಸಂಪದನೆಲು}}",
+ "changecontentmodel-reason-label": "ಕಾರಣ:",
+ "changecontentmodel-submit": "ಬದಲಾವಣೆ",
+ "logentry-contentmodel-change-revertlink": "ದುಂಬುದ ಲೆಕ ಮಲ್ಪುಲೆ",
+ "logentry-contentmodel-change-revert": "ದುಂಬುದ ಲೆಕ ಮಲ್ಪುಲೆ",
"protectlogpage": "ಸೇರಾಯಿನ ದಾಕಲೆ",
"protectedarticle": "\"[[$1]]\" ಸಂರಕ್ಷಿತವಾದುಂಡು.",
"modifiedarticleprotection": "\"[[$1]]\" ಪುಟೊತ ಸಂರಕ್ಷಣೆ ಮಟ್ಟ ಬದಲಾಂಡ್",
+ "protectcomment": "ಕಾರಣೊ:",
+ "protect-otherreason-op": "ಬೇತೆ ಕಾರಣ",
+ "restriction-type": "ಒಪ್ಪುಗೆ:",
+ "restriction-edit": "ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ",
+ "restriction-move": "ಸ್ಥಳಾಂತರ ಮಲ್ಪುಲೆ",
+ "restriction-create": "ಸೃಷ್ಟಿಸಾಲೆ",
+ "restriction-upload": "ಅಪ್ಲೊಡ್",
"undeletelink": "ದುಂಬುದ ಆವೃತ್ತಿಗ್ ಪೋಲೆ",
"undeleteviewlink": "ತೂಲೆ",
+ "undeletecomment": "ಕಾರಣೊ:",
+ "undelete-search-submit": "ನಾಡ್ಲೆ",
+ "undelete-show-file-submit": "ಅಂದ್",
"namespace": "ಪುದರ್ದ ಬಗೆ:",
"invert": "ಆಯ್ಕೆನ್ ತಿರ್ಗಾಲೆ",
"tooltip-invert": "ಈ ಚೌಕೊದುಲಯಿಡ್ ಅಡೆಂಗಿನ ಪುದರ್ನ್ ಈ ಚೌಕೊಡೆ ಪರೀಕ್ಷಿಸಲೆಲೆ(ಬೊಕ್ಕೊ ಒಟ್ಟುಗಿತ್ತಿನ ಪುದರ್ನ್ಲಾ ಪರೀಕ್ಷಿಸವೊಲಿ)",
"whatlinkshere-hidetrans": "$1 ಸೇರಾವುನವು",
"whatlinkshere-hidelinks": "$1 ಕೊಂಡಿಕುಲು",
"whatlinkshere-filters": "ಅರಿಪೆಲು",
+ "whatlinkshere-submit": "ಪೋಲೆ",
"blockip": "ಈ ಸದಸ್ಯೆರೆನ್ ಬ್ಲಾಕ್ ಮಲ್ಪುಲೆ",
+ "ipbreason": "ಕಾರಣೊ:",
"ipboptions": "2 ಗಂಟೆಲು:2 hours,1 ದಿನ:1 day,3 ದಿನೊಲು:3 days,1 ವಾರ:1 week,2 ವಾರೊಲು:2 weeks,1 ತಿಂಗೊಲು:1 month,3 ತಿಂಗೊಲು:3 months,6 ತಿಂಗೊಲು:6 months,1 ವರ್ಷ:1 year,ಅನಿರ್ಧಿಷ್ಟ:infinite",
"ipblocklist": "ತಡೆಪತ್ತ್’ದಿನ ಐ.ಪಿ ವಿಳಾಸೊಲು ಅಂಚೆನೆ ಬಳಕೆದ ಪುದರ್’ಲು",
"blocklink": "ಅಡ್ಡ ಪತ್ತ್ಲೆ",
"tog-ccmeonemails": "నేను ఇతర వాడుకరులకు పంపించే ఈ-మెయిళ్ల కాపీలను నాకు కూడా పంపు",
"tog-diffonly": "తేడాల కింద, పేజీలోని సమాచారాన్ని చూపించొద్దు",
"tog-showhiddencats": "దాచిన వర్గాలను చూపించు",
- "tog-norollbackdiff": "à°°à°¦à±\8dà°¦à±\81 చేసాక తేడాలు చూపించవద్దు",
+ "tog-norollbackdiff": "à°°à±\8bà°²à±\8dâ\80\8cà°¬à±\8dయాà°\95à±\8d చేసాక తేడాలు చూపించవద్దు",
"tog-useeditwarning": "ఏదైనా పేజీని నేను వదిలివెళ్తున్నప్పుడు దానిలో భద్రపరచని మార్పులు ఉంటే నన్ను హెచ్చరించు",
"tog-prefershttps": "లాగిన్ అయి ఉన్నప్పుడెల్లా భద్ర కనెక్షనునే వాడు",
"underline-always": "ఎల్లప్పుడూ",
"october-date": "అక్టోబరు $1",
"november-date": "నవంబరు $1",
"december-date": "డిసెంబరు $1",
+ "period-am": "ఉద",
+ "period-pm": "సాయం",
"pagecategories": "{{PLURAL:$1|వర్గం|వర్గాలు}}",
"category_header": "\"$1\" వర్గంలోని పుటలు",
"subcategories": "ఉపవర్గాలు",
"laggedslavemode": "<strong>హెచ్చరిక:</strong> పేజీలో ఇటీవల జరిగిన మార్పులు ఉండకపోవచ్చు.",
"readonly": "డేటాబేసు లాక్చెయ్యబడింది",
"enterlockreason": "డేటాబేసుకు వేయబోతున్న లాకుకు కారణం తెలుపండి, దానితోపాటే ఎంతసమయం తరువాత ఆ లాకు తీసేస్తారో కూడా తెలుపండి",
- "readonlytext": "à°¡à±\87à°\9fాబà±\87à°¸à±\81 à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 లాà°\95à±\81 à°\9aà±\87యబడిà°\82ది. మారà±\8dà°ªà±\81à°²à±\81, à°\9aà±\87à°°à±\8dà°ªà±\81à°²à±\81 à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 à°\9aà±\86à°¯à±\8dయలà±\87à°°à±\81. మామà±\82à°²à±\81à°\97à°¾ à°\9cà°°à°¿à°\97à±\87 నిరà±\8dవహణ à°\95à±\8aà°°à°\95à±\81 à°\87ది à°\9cà°°à°¿à°\97à°¿ à°\89à°\82à°¡à°µà°\9aà±\8dà°\9aà±\81; అది పూర్తి కాగానే తిరిగి మామూలుగా పనిచేస్తుంది.\n\nదీనిని లాకు చేసిన నిర్వాహకుడు ఇలా తెలియజేస్తున్నాడు: $1",
+ "readonlytext": "à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 à°\95à±\8aà°¤à±\8dà°¤ à°\8eà°\82à°\9fà±\8dà°°à±\80à°²à±\81, మారà±\8dà°ªà±\81à°\9aà±\87à°°à±\8dà°ªà±\81à°²à±\81 à°\9aà±\86à°¯à±\8dà°¯à°\95à±\81à°\82à°¡à°¾ à°¡à±\87à°\9fాబà±\87à°¸à±\81 లాà°\95à±\81 à°\9aà±\87యబడిà°\82ది. మామà±\82à°²à±\81à°\97à°¾ à°\9cà°°à°¿à°\97à±\87 నిరà±\8dవహణ à°\95à±\8aà°°à°\95à±\81 à°\87ది à°\9cà°°à°¿à°\97à°¿ à°\89à°\82à°¡à°µà°\9aà±\8dà°\9aà±\81. అది పూర్తి కాగానే తిరిగి మామూలుగా పనిచేస్తుంది.\n\nదీనిని లాకు చేసిన నిర్వాహకుడు ఇలా తెలియజేస్తున్నాడు: $1",
"missing-article": "\"$1\" $2 అనే పేజీ యొక్క పాఠ్యం డేటాబేసులో దొరకలేదు.\n\nకాలం చెల్లిన తేడా కోసం చూసినపుడుగానీ, తొలగించిన పేజీ చరితం కోసం చూసినపుడుగానీ ఇది సాధారణంగా జరుగుతుంది.\n\nఒకవేళ అలా కాకపోతే, మీరో బగ్ను కనుక్కున్నట్టే.\nఈ URLను సూచిస్తూ, దీన్ని ఓ [[Special:ListUsers/sysop|నిర్వాహకునికి]] తెలియజేయండి.",
"missingarticle-rev": "(కూర్పు#: $1)",
"missingarticle-diff": "(తేడా: $1, $2)",
"badtitletext": "మీరు కోరిన పేజీ యొక్క పేరు చెల్లనిది, ఖాళీగా ఉంది, లేదా తప్పు లింకుతో కూడిన అంతర్వికీ లేదా అంతర-భాషా శీర్షిక అయివుండాలి.\nశీర్షికలలో ఉపయోగించకూడని అక్షరాలు దానిలో ఉండివుండొచ్చు.",
"title-invalid-empty": "కోరబడిన పేజీ శీర్షిక ఖాళీగా ఉంది లేదా కేవలం పేరుబరి పేరు కలిగి ఉంది.",
"title-invalid-utf8": "కోరబడిన పేజీ శీర్షికలో చెల్లని UTF-8 అక్షరాలున్నాయి.",
- "title-invalid-interwiki": "à°¶à±\80à°°à±\8dà°·à°¿à°\95 పాఠà±\8dà°¯à°\82à°²à±\8b à°\85à°\82తరవిà°\95à±\80 à°²à°\82à°\95à±\86 à°\89à°\82ది",
+ "title-invalid-interwiki": "à°®à±\80à°°à°¡à°¿à°\97à°¿à°¨ à°ªà±\87à°\9cà±\80 à°¶à±\80à°°à±\8dà°·à°¿à°\95à°²à±\8b à°\85à°\82తర విà°\95à±\80 à°²à°\82à°\95à±\86 à°\89à°\82ది, à°\95ానà±\80 à°\85ది నిషిదà±\8dà°§à°\82.",
"title-invalid-talk-namespace": "మీరడిగిన పేజీ శీర్షిక అసలు సృష్టించే వీలే లేని చర్చా పేజీకి చెందినది.",
"title-invalid-characters": "కోరబడిన పేజీ శీర్షికలో చెల్లని అక్షరాలున్నాయి : \"$1\".",
"title-invalid-relative": "శీర్షికలో లంకె పాఠ్యం సాపేక్షంగా ఉంది - పూర్తిగా లేదు. సాపేక్ష పేజీ చిరునామాలు (./, ../) గల పేజీ శీర్షికలు ఎక్కువశాతం అందుబాటులో ఉండవు కనుక అవి చెల్లవు.",
"title-invalid-magic-tilde": "కోరబడిన పేజీ శీర్షిక పాఠ్యం లో చెల్లని మ్యాజిక్ టిల్డా పదాలున్నాయి (<nowiki>~~~</nowiki>).",
- "title-invalid-too-long": "à°\95à±\8bరబడిన à°ªà±\87à°\9cà±\80 à°¶à±\80à°°à±\8dà°·à°¿à°\95 పాఠà±\8dà°¯à°\82 మరà±\80 à°ªà±\8aà°¡à°µà±\81à°\97à°¾ à°\89à°\82ది. à°\87ది UTF-8 పదà±\8dధతిలà±\8b $1 à°¬à±\88à°\9fà±\8dà°²కు మించి ఉండరాదు.",
+ "title-invalid-too-long": "à°®à±\80à°°à°¡à°¿à°\97à°¿à°¨ à°ªà±\87à°\9cà±\80 à°¶à±\80à°°à±\8dà°·à°¿à°\95 మరà±\80 à°ªà±\8aà°¡à°µà±\81à°\97à°¾ à°\89à°\82ది. à°\87ది UTF-8 పదà±\8dధతిలà±\8b $1 {{PLURAL:$1|à°¬à±\88à°\9fà±\8dâ\80\8c|à°¬à±\88à°\9fà±\8dà°²}}కు మించి ఉండరాదు.",
"title-invalid-leading-colon": "కోరబడిన పేజీ శీర్షిక పాఠ్యం మొదట్లో చెల్లని కొలొన్ చిహ్నం (:) ఉంది.",
"perfcached": "కింది డేటా ముందే సేకరించి పెట్టుకున్నది. కాబట్టి తాజా డేటాతో పోలిస్తే తేడాలుండవచ్చు. ఈ కాషెలో గరిష్టంగా {{PLURAL:$1|ఒక్క ఫలితం ఉంది|$1 ఫలితాలు ఉన్నాయి}}.",
"perfcachedts": "కింది సమాచారం ముందే సేకరించి పెట్టుకున్నది. దీన్ని $1న చివరిసారిగా తాజాకరించారు. ఈ కాషెలో గరిష్టంగా {{PLURAL:$4|ఒక్క ఫలితం ఉంది|$4 ఫలితాలు ఉన్నాయి}}.",
"viewsource": "మూలాన్ని చూపించు",
"viewsource-title": "$1 యొక్క సోర్సు చూడండి",
"actionthrottled": "కార్యాన్ని ఆపేసారు",
- "actionthrottledtext": "à°¸à±\8dపామà±\81à°¨à±\81 నిరà±\8bధిà°\82à°\9aà±\87à°\82à°¦à±\81à°\95à±\81 à°\97ానà±\81, à°¤à°\95à±\8dà°\95à±\81à°µ సమయà°\82à°²à±\8b మరà±\80 à°\8eà°\95à±\8dà°\95à±\81à°µ సారà±\8dà°²à±\81 à°\88 పని à°\9aà±\87à°¯à°\95à±\81à°\82à°¡à°¾ పరిమితి విధిà°\82à°\9aà°¾à°\82. à°®à±\80à°°à±\81 దానà±\8dని à°\85ధిà°\97మిà°\82à°\9aారà±\81. à°\95à±\8aà°¨à±\8dà°¨ి నిమిషాలు ఆగి మరలా ప్రయత్నించండి.",
+ "actionthrottledtext": "à°¦à±\81à°¶à±\8dà°\9aà°°à±\8dయనà±\81 నిరà±\8bధిà°\82à°\9aà±\87à°\82à°¦à±\81à°\95à±\81 à°\97ానà±\81, à°¤à°\95à±\8dà°\95à±\81à°µ సమయà°\82à°²à±\8b మరà±\80 à°\8eà°\95à±\8dà°\95à±\81à°µ సారà±\8dà°²à±\81 à°\88 పని à°\9aà±\87à°¯à°\95à±\81à°\82à°¡à°¾ పరిమితి విధిà°\82à°\9aà°¾à°\82. à°®à±\80à°°à±\81 దానà±\8dని à°\85ధిà°\97మిà°\82à°\9aారà±\81. à°\95à±\8aà°¦à±\8dà°¦ి నిమిషాలు ఆగి మరలా ప్రయత్నించండి.",
"protectedpagetext": "ఈ పేజీలో మార్పులు వగైరాలు చెయ్యకుండా ఉండేందుకు గాను, సంరక్షించబడింది.",
- "viewsourcetext": "మీరీ పేజీ సోర్సును చూడవచ్చు, కాపీ చేసుకోవచ్చు:",
- "viewyourtext": "ఈ పేజీలోని <strong>మీ మార్పుల</strong> యొక్క మూలాన్ని చూడవచ్చు, కాపీచేసుకోవచ్చు:",
+ "viewsourcetext": "మీరీ పేజీ సోర్సును చూడవచ్చు, కాపీ చేసుకోవచ్చు.",
+ "viewyourtext": "ఈ పేజీలో <strong>మీరు చేసిన మార్పుల</strong> యొక్క మూలాన్ని చూడవచ్చు, కాపీచేసుకోవచ్చు.",
"protectedinterface": "ఈ పేజీ, ఈ వికీ యొక్క సాఫ్టువేరు ఇంటరుఫేసుకు చెందిన టెక్స్టును అందిస్తుంది. దుశ్చర్యల నివారణ కోసమై దీన్ని సంరక్షించాం. వికీలన్నిటిలోను అనువాదాలను చేర్చాలన్నా, మార్చాలన్నా మీడియావికీ స్థానికీకరణ ప్రాజెక్టైన [https://translatewiki.net/ translatewiki.net] ను వాడండి.",
"editinginterface": "<strong>హెచ్చరిక:</strong> సాఫ్టువేరుకు ఇంటరుఫేసు టెక్స్టును అందించేందుకు పనికొచ్చే పేజీని మీరు సరిదిద్దుతున్నారు.\nఈ పేజీలో చేసే మార్పుల వల్ల ఇతర వాడుకరులకు ఇంటరుఫేసు కనబడే విధానంలో తేడావస్తుంది.",
"translateinterface": "అన్ని వికీలలో కనిపించేలా అనువాదాలు చేర్చాలన్నా, మార్చాలన్నా, దయచేసి [https://translatewiki.net/ translatewiki.net] ను వాడండి. ఇది మీడియావికీ స్థానికీకరణ ప్రాజెక్టు.",
"special-characters-title-emdash": "ఎమ్ డాష్",
"special-characters-title-minus": "మైనస్ గుర్తు",
"mw-widgets-dateinput-no-date": "ఏ తేదీనీ ఎంచుకోలేదు",
- "mw-widgets-titleinput-description-new-page": "పేజీ ఇంకా లేదు",
- "api-error-blacklisted": "వేరే వివరమైన శీర్షకను ఎంచుకోండి"
+ "mw-widgets-titleinput-description-new-page": "పేజీ ఇంకా లేదు"
}
"trackingcategories-msg": "کھوجی زمرہ",
"trackingcategories-name": "پیغام کا عنوان",
"trackingcategories-desc": "زمرہ کی شمولیت کا معیار",
+ "restricted-displaytitle-ignored": "صفحات مع نظرانداز کردہ عناوین",
"trackingcategories-disabled": "زمرہ غیر فعال ہے",
"mailnologintext": "دیگر ارکان کو برقی خط ارسال کرنے کیلیۓ لازم ہے کہ آپ [[Special:UserLogin|داخل شدہ]] حالت میں ہوں اور آپ کی [[Special:Preferences|ترجیحات]] ایک درست برقی خط کا پتا درج ہو۔",
"emailuser": "صارف کو برقی خط لکھیں",
"hijri-calendar-m10": "شوال",
"hijri-calendar-m11": "ذوالقعدہ",
"hijri-calendar-m12": "ذوالحجہ",
+ "restricted-displaytitle": "<strong>انتباہ!:</strong> عنوان \"$1\" کو نظر انداز کر دیا گیا ہے کیونکہ یہ متعلقہ صفحہ کے عنوان کا حقیقی متبادل نہیں ہے۔",
"version": "ورژن",
"version-specialpages": "خاص صفحات",
"version-other": "دیگر",
"password-change-forbidden": "איר קען נישט ענדערן פאסווערטער אויף דער וויקי.",
"externaldberror": "עס איז אדער פארגעקומען אן אויטענטיקאציע דאטנבאזע פֿעלער אדער איר זענט נישט ערמעגליכט צו דערהיינטיגן אייער דרויסנדיגע קאנטע.",
"login": "אַרײַנלאָגירן",
+ "login-security": "וועריפיצירט אייער אידענטיטעט",
"nav-login-createaccount": "ארײַנלאָגירן / זיך אײַנשרײַבן",
"userlogin": "ארײַנלאָגירן / זיך אײַנשרײַבן",
"userloginnocreate": "אַרײַנלאגירן",
"createacct-reason-ph": "פֿארוואס שאפֿט איר נאך א קאנטע",
"createacct-submit": "שאפֿט אײַער קאנטע",
"createacct-another-submit": "שאַפֿן קאנטע",
+ "createacct-continue-submit": "פֿארטזעצן שאפֿן קאנטע",
+ "createacct-another-continue-submit": "פֿארטזעצן שאפֿן קאנטע",
"createacct-benefit-heading": "{{SITENAME}} איז געמאכט דורך מענטשן ווי איר.",
"createacct-benefit-body1": "{{PLURAL:$1|רעדאַקטירונג|$1 רעדאַקטירונגען}}",
"createacct-benefit-body2": "$1 {{PLURAL:$1|בלאַט|בלעטער}}",
"Apflu",
"飞舞回堂前",
"Cosine02",
- "Arthur2e5"
+ "Arthur2e5",
+ "Myy730",
+ "SolidBlock"
]
},
"tog-underline": "链接下划线:",
"password-login-forbidden": "这个用户名称及密码的使用是被禁止的。",
"mailmypassword": "重置密码",
"passwordremindertitle": "{{SITENAME}}的新临时密码",
- "passwordremindertext": "æ\9c\89人ï¼\88å\8f¯è\83½æ\98¯æ\82¨ï¼\8cæ\9d¥è\87ªIPå\9c°å\9d\80$1ï¼\89已请æ±\82{{SITENAME}}ç\9a\84æ\96°å¯\86ç \81ï¼\88$4ï¼\89ã\80\82ç\94¨æ\88·â\80\9c$2â\80\9dç\9a\84ä¸\80个æ\96°ä¸´æ\97¶å¯\86ç \81ç\8e°å\9c¨å·²è¢«è®¾ç½®å¥½ä¸ºâ\80\9c$3â\80\9dã\80\82å¦\82æ\9e\9cè¿\99个å\8a¨ä½\9cæ\98¯æ\82¨æ\89\80æ\8c\87示ç\9a\84ï¼\8cæ\82¨ä¾¿é\9c\80è¦\81ç«\8bå\8d³ç\99»å½\95并é\80\89æ\8b©一个新的密码。您的临时密码会于{{PLURAL:$5|一天|$5天}}内过期。\n\n如果是其他人发出了该请求,或者您已经记起了您的密码并不准备改变它,您可以忽略此消息并继续使用您的旧密码。",
+ "passwordremindertext": "æ\9c\89人ï¼\88å\8f¯è\83½æ\98¯æ\82¨ï¼\8cæ\9d¥è\87ªIPå\9c°å\9d\80$1ï¼\89已请æ±\82{{SITENAME}}ç\9a\84æ\96°å¯\86ç \81ï¼\88$4ï¼\89ã\80\82ç\94¨æ\88·â\80\9c$2â\80\9dç\9a\84临æ\97¶å¯\86ç \81ç\8e°å\9c¨å·²è¢«è®¾ç½®ä¸ºâ\80\9c$3â\80\9dã\80\82å¦\82æ\9e\9cè¿\99个å\8a¨ä½\9cæ\98¯æ\82¨æ\89\80æ\8c\87示ç\9a\84ï¼\8cæ\82¨ä¾¿é\9c\80è¦\81ç«\8bå\8d³ç\99»å½\95并设置一个新的密码。您的临时密码会于{{PLURAL:$5|一天|$5天}}内过期。\n\n如果是其他人发出了该请求,或者您已经记起了您的密码并不准备改变它,您可以忽略此消息并继续使用您的旧密码。",
"noemail": "用户\"$1\"没有登记电子邮件地址。",
"noemailcreate": "您需要提供一个有效的电子邮件地址",
"passwordsent": "用户\"$1\"的新密码已经寄往所登记的电子邮件地址。\n请在收到后再登录。",
"last": "之前",
"page_first": "首页",
"page_last": "末页",
- "histlegend": "差异选择:选中要对比的版本的单选按钮,按Enter键或下方的按钮。<br />\n说明:<strong>({{int:cur}})</strong>=与最后版本之间的差异,<strong>({{int:last}})</strong>=与上一版本之间的差异,<strong>{{int:minoreditletter}}</strong>=小编辑。",
+ "histlegend": "差异选择:选中要对比的版本的单选按钮,按Enter键或下方的按钮。<br />说明:<strong>({{int:cur}})</strong>=与最后版本之间的差异,<strong>({{int:last}})</strong>=与上一版本之间的差异,<strong>{{int:minoreditletter}}</strong>=小编辑。",
"history-fieldset-title": "浏览历史",
"history-show-deleted": "仅显示已删除的版本",
"histfirst": "最旧",
"searchdisabled": "{{SITENAME}}的搜索已被禁用。您可以暂时使用搜索引擎进行搜索,须注意他们索引的{{SITENAME}}内容可能不是最新的。",
"search-error": "搜索时发生错误:$1",
"preferences": "设置",
- "mypreferences": "设置",
+ "mypreferences": "参数设置",
"prefs-edits": "编辑数:",
"prefsnologintext2": "请登录以更改您的用户设置。",
"prefs-skin": "皮肤",
"version-license-not-found": "未找到此扩展相关的详细授权信息。",
"version-credits-title": "$1贡献者名单",
"version-credits-not-found": "未找到此扩展相关的详细制作人信息。",
- "version-poweredby-credits": "本Wiki由'''[https://www.mediawiki.org/ MediaWiki]'''驱动,版权所有 © 2001-$1 $2。",
+ "version-poweredby-credits": "本Wiki由<strong>[https://www.mediawiki.org/ MediaWiki]</strong>驱动,版权所有 © 2001-$1 $2。",
"version-poweredby-others": "其他",
"version-poweredby-translators": "translatewiki.net上的翻译者",
"version-credits-summary": "我们感谢下列人士为[[Special:Version|MediaWiki]]作出的贡献。",
'Listbots' => [ 'Seznam_botů', 'Seznam_botu' ],
'ListDuplicatedFiles' => [ 'Seznam_duplicitních_souborů' ],
'Listfiles' => [ 'Seznam_souborů', 'Seznam_souboru' ],
- 'Listgrants' => [ 'Seznam_grantů' ],
+ 'Listgrants' => [ 'Seznam_skupin_oprávnění', 'Seznam_skupin_opravneni', 'Seznam_grantů' ],
'Listgrouprights' => [ 'Práva_uživatelských_skupin', 'Seznam_uživatelských_práv', 'Seznam_uzivatelskych_prav' ],
'Listredirects' => [ 'Seznam_přesměrování', 'Seznam_presmerovani' ],
'Listusers' => [ 'Uživatelé', 'Uzivatele', 'Seznam_uživatelů', 'Seznam_uzivatelu' ],
$fallback = 'kn';
+$namespaceNames = [
+ NS_MEDIA => 'ಮಾದ್ಯಮೊ',
+ NS_SPECIAL => 'ವಿಸೇಸೊ',
+ NS_TALK => 'ಪಾತೆರ',
+ NS_USER => 'ಬಳಕೆದಾರೆ',
+ NS_USER_TALK => 'ಬಳಕೆದಾರೆ_ಪಾತೆರ',
+ NS_PROJECT_TALK => '$1_ಪಾತೆರ',
+ NS_FILE => 'ಫೈಲ್',
+ NS_FILE_TALK => 'ಫೈಲ್_ಪಾತೆರ',
+ NS_MEDIAWIKI => 'ಮಾದ್ಯಮೊ_ವಿಕಿ',
+ NS_MEDIAWIKI_TALK => 'ಮಾದ್ಯಮೊ_ವಿಕಿ_ಪಾತೆರ',
+ NS_TEMPLATE => 'ಟೆಂಪ್ಲೇಟ್',
+ NS_TEMPLATE_TALK => 'ಟೆಂಪ್ಲೇಟ್_ಪಾತೆರ',
+ NS_HELP => 'ಸಕಾಯೊ',
+ NS_HELP_TALK => 'ಸಕಾಯೊ_ಪಾತೆರ',
+ NS_CATEGORY => 'ವರ್ಗೊ',
+ NS_CATEGORY_TALK => 'ವರ್ಗೊ_ಪಾತೆರ',
+];
+
*/
private $config;
+ /**
+ * @see Maintenance::requireExtension
+ * @var array
+ */
+ private $requiredExtensions = [];
+
/**
* Used to read the options in the order they were passed.
* Useful for option chaining (Ex. dumpBackup.php). It will
$this->config = $config;
}
+ /**
+ * Indicate that the specified extension must be
+ * loaded before the script can run.
+ *
+ * This *must* be called in the constructor.
+ *
+ * @since 1.28
+ * @param string $name
+ */
+ protected function requireExtension( $name ) {
+ $this->requiredExtensions[] = $name;
+ }
+
+ /**
+ * Verify that the required extensions are installed
+ *
+ * @since 1.28
+ */
+ public function checkRequiredExtensions() {
+ $registry = ExtensionRegistry::getInstance();
+ $missing = [];
+ foreach ( $this->requiredExtensions as $name ) {
+ if ( !$registry->isLoaded( $name ) ) {
+ $missing[] = $name;
+ }
+ }
+
+ if ( $missing ) {
+ $joined = implode( ', ', $missing );
+ $msg = "The following extensions are required to be installed "
+ . "for this script to run: $joined. Please enable them and then try again.";
+ $this->error( $msg, 1 );
+ }
+
+ }
+
/**
* Run a child maintenance script. Pass all of the current arguments
* to it.
// Initialize main config instance
$maintenance->setConfig( ConfigFactory::getDefaultInstance()->makeConfig( 'main' ) );
+// Sanity-check required extensions are installed
+$maintenance->checkRequiredExtensions();
+
// Do the work
$maintenance->execute();
wiki|http://c2.com/cgi/wiki?$1|0|
wikia|http://www.wikia.com/wiki/$1|0|
wikibooks|https://en.wikibooks.org/wiki/$1|0|https://en.wikibooks.org/w/api.php
+wikidata|https://www.wikidata.org/wiki/$1|0|https://www.wikidata.org/w/api.php
wikif1|http://www.wikif1.org/$1|0|
wikihow|http://www.wikihow.com/$1|0|http://www.wikihow.com/api.php
wikinfo|http://wikinfo.co/English/index.php/$1|0|
('wiki','http://c2.com/cgi/wiki?$1',0,''),
('wikia','http://www.wikia.com/wiki/$1',0,''),
('wikibooks','https://en.wikibooks.org/wiki/$1',0,'https://en.wikibooks.org/w/api.php'),
+('wikidata','https://www.wikidata.org/wiki/$1',0,'https://www.wikidata.org/w/api.php'),
('wikif1','http://www.wikif1.org/$1',0,''),
('wikihow','http://www.wikihow.com/$1',0,'http://www.wikihow.com/api.php'),
('wikinfo','http://wikinfo.co/English/index.php/$1',0,''),
'scripts' => 'resources/src/mediawiki/mediawiki.notify.js',
'targets' => [ 'desktop', 'mobile' ],
],
+ 'mediawiki.notification.convertmessagebox' => [
+ 'dependencies' => [
+ 'mediawiki.notification',
+ ],
+ 'scripts' => 'resources/src/mediawiki/mediawiki.notification.convertmessagebox.js',
+ 'targets' => [ 'desktop', 'mobile' ],
+ ],
+ 'mediawiki.notification.convertmessagebox.styles' => [
+ 'position' => 'top',
+ 'styles' => [
+ 'resources/src/mediawiki/mediawiki.notification.convertmessagebox.styles.less',
+ ],
+ 'targets' => [ 'desktop', 'mobile' ],
+ ],
'mediawiki.RegExp' => [
'scripts' => 'resources/src/mediawiki/mediawiki.RegExp.js',
'targets' => [ 'desktop', 'mobile' ],
'dependencies' => [
'mediawiki.language',
'mediawiki.confirmCloseWindow',
- 'mediawiki.notification',
+ 'mediawiki.notification.convertmessagebox',
+ ],
+ ],
+ 'mediawiki.special.userrights' => [
+ 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userrights.js',
+ 'dependencies' => [
+ 'mediawiki.notification.convertmessagebox',
],
],
'mediawiki.special.preferences.styles' => [
*/
( function ( mw, $ ) {
$( function () {
- var $preftoc, $preferences, $fieldsets,
- labelFunc,
- $tzSelect, $tzTextbox, $localtimeHolder, servertime,
- allowCloseWindow, notif;
+ var $preftoc, $preferences, $fieldsets, labelFunc,
+ $tzSelect, $tzTextbox, $localtimeHolder, servertime, allowCloseWindow,
+ convertmessagebox = require( 'mediawiki.notification.convertmessagebox' );
labelFunc = function () {
return this.id.replace( /^mw-prefsection/g, 'preftab' );
}
}
- // Check for messageboxes (.successbox, .warningbox, .errorbox) to replace with notifications
- if ( $( '.mw-preferences-messagebox' ).length ) {
- // If there is a #mw-preferences-success box and javascript is enabled, use a slick notification instead!
- if ( $( '#mw-preferences-success' ).length ) {
- notif = mw.notification.notify( mw.message( 'savedprefs' ), { autoHide: false } );
- // 'change' event not reliable!
- $( '#preftoc, .prefsection' ).one( 'change keydown mousedown', function () {
- if ( notif ) {
- notif.close();
- notif = null;
- }
- } );
- }
- }
+ // Check for successbox to replace with notifications
+ convertmessagebox();
// Enable keyboard users to use left and right keys to switch tabs
$preftoc.on( 'keydown', function ( event ) {
zoom: 1;
}
-/* When JS is enabled, .mw-preferences-messageboxes are replaced with mw.notifications */
-.client-js .mw-preferences-messagebox {
- display: none;
-}
-
.client-nojs #preftoc {
display: none;
}
margin-left: 0;
float: left;
}
-.mw-search-interwiki-header {
+.mw-search-visualclear {
clear: both;
}
.mw-search-results li {
--- /dev/null
+/*!
+ * JavaScript for Special:UserRights
+ */
+( function () {
+ var convertmessagebox = require( 'mediawiki.notification.convertmessagebox' );
+ // Replace successbox with notifications
+ convertmessagebox();
+}() );
},
// slash, colon (not supported by file systems like NTFS/Windows, Mac OS 9 [:], ext4 [/])
{
- pattern: /[:\/#]/g,
+ pattern: new RegExp( '[' + mw.config.get( 'wgIllegalFileChars', '' ) + ']', 'g' ),
replace: '-',
fileRule: true
},
width: 39%;
}
+/* Flatlist styling for PHP widgets... */
+.mw-htmlform-flatlist .oo-ui-fieldLayout-align-inline,
+/* ...and for JS widgets */
.mw-htmlform-flatlist .oo-ui-optionWidget,
.mw-htmlform-flatlist .oo-ui-multioptionWidget {
display: inline-block;
log.deprecate = !Object.defineProperty ? function ( obj, key, val ) {
obj[ key ] = val;
} : function ( obj, key, val, msg ) {
+ /*globals Set */
msg = 'Use of "' + key + '" is deprecated.' + ( msg ? ( ' ' + msg ) : '' );
+ var logged, loggedIsSet, uniqueTrace;
+ if ( window.Set ) {
+ logged = new Set();
+ loggedIsSet = true;
+ } else {
+ logged = {};
+ loggedIsSet = false;
+ }
+ uniqueTrace = function () {
+ var trace = new Error().stack;
+ if ( loggedIsSet ) {
+ if ( logged.has( trace ) ) {
+ return false;
+ }
+ logged.add( trace );
+ return true;
+ } else {
+ if ( logged.hasOwnProperty( trace ) ) {
+ return false;
+ }
+ logged[ trace ] = 1;
+ return true;
+ }
+ };
Object.defineProperty( obj, key, {
configurable: true,
enumerable: true,
get: function () {
- mw.track( 'mw.deprecate', key );
- mw.log.warn( msg );
+ if ( uniqueTrace() ) {
+ mw.track( 'mw.deprecate', key );
+ mw.log.warn( msg );
+ }
return val;
},
set: function ( newVal ) {
- mw.track( 'mw.deprecate', key );
- mw.log.warn( msg );
+ if ( uniqueTrace() ) {
+ mw.track( 'mw.deprecate', key );
+ mw.log.warn( msg );
+ }
val = newVal;
}
} );
--- /dev/null
+/**
+ * Usage:
+ *
+ * var convertmessagebox = require( 'mediawiki.notification.convertmessagebox' );
+ *
+ * @class mw.plugin.convertmessagebox
+ * @singleton
+ */
+( function ( mw, $ ) {
+ 'use strict';
+
+ /**
+ * Convert a messagebox to a notification.
+ *
+ * Checks if a message box with class `.mw-notify-success`, `.mw-notify-warning`, or `.mw-notify-error`
+ * exists and converts it into a mw.Notification with the text of the element or a given message key.
+ *
+ * By default the notification will automatically hide after 5s, or when the user clicks the element.
+ * This can be overridden by setting attribute `data-mw-autohide="true"`.
+ *
+ * @param {Object} [options] Options
+ * @param {mw.Message} [options.msg] Message key (must be loaded already)
+ */
+ function convertmessagebox( options ) {
+ var $msgBox, type, autoHide, msg, notif,
+ $successBox = $( '.mw-notify-success' ),
+ $warningBox = $( '.mw-notify-warning' ),
+ $errorBox = $( '.mw-notify-error' );
+
+ // If there is a message box and javascript is enabled, use a slick notification instead!
+ if ( $successBox.length ) {
+ $msgBox = $successBox;
+ type = 'info';
+ } else if ( $warningBox.length ) {
+ $msgBox = $warningBox;
+ type = 'warn';
+ } else if ( $errorBox.length ) {
+ $msgBox = $errorBox;
+ type = 'error';
+ } else {
+ return;
+ }
+
+ autoHide = $msgBox.attr( 'data-mw-autohide' ) === 'true';
+
+ // If the msg param is given, use it, otherwise use the text of the successbox
+ msg = options && options.msg || $msgBox.text();
+ $msgBox.detach();
+
+ notif = mw.notification.notify( msg, { autoHide: autoHide, type: type } );
+ if ( !autoHide ) {
+ // 'change' event not reliable!
+ $( document ).one( 'keydown mousedown', function () {
+ if ( notif ) {
+ notif.close();
+ notif = null;
+ }
+ } );
+ }
+ }
+
+ module.exports = convertmessagebox;
+
+}( mediaWiki, jQuery ) );
--- /dev/null
+.client-js {
+ .mw-notify-success,
+ .mw-notify-warning,
+ .mw-notify-error {
+ display: none;
+ }
+}
*/
private $tidySupport;
+ /**
+ * @var ITestRecorder
+ */
+ private $recorder;
+
private $maxFuzzTestLength = 300;
private $fuzzSeed = 0;
private $memoryLimit = 50;
$this->hideDeprecated( 'WatchedItem::addWatch' );
$this->hideDeprecated( 'WatchedItem::removeWatch' );
$this->hideDeprecated( 'WatchedItem::isWatched' );
- $this->hideDeprecated( 'WatchedItem::resetNotificationTimestamp' );
$this->hideDeprecated( 'WatchedItem::duplicateEntries' );
$this->hideDeprecated( 'WatchedItem::batchAddWatch' );
}
'wgServer' => [
'enwiki' => 'http://en.example.org',
'ruwiki' => '//ru.example.org',
+ 'nopathwiki' => '//nopath.example.org',
],
'wgArticlePath' => [
'enwiki' => '/w/$1',
'nlwiki (sites)' => [ $nlwiki, 'nlwiki', false ],
'enwiktionary (sites)' => [ $enwiktionary, 'enwiktionary', false ],
'non MediaWiki site' => [ null, 'spam', false ],
+ 'boguswiki' => [ null, 'boguswiki' ],
+ 'nopathwiki' => [ null, 'nopathwiki' ],
];
}
$this->assertArrayHasKey( "login", $data[0] );
$this->assertArrayHasKey( "result", $data[0]['login'] );
$this->assertEquals( "Success", $data[0]['login']['result'] );
- $this->assertArrayHasKey( 'lgtoken', $data[0]['login'] );
}
public function testBotPassword() {
--- /dev/null
+<?php
+
+use MediaWiki\MediaWikiServices;
+
+class ApiOpenSearchTest extends MediaWikiTestCase {
+ public function testGetAllowedParams() {
+ $config = $this->replaceSearchEngineConfig();
+ $config->expects( $this->any() )
+ ->method( 'getSearchTypes' )
+ ->will( $this->returnValue( [ 'the one ring' ] ) );
+
+ $engine = $this->replaceSearchEngine();
+ $engine->expects( $this->any() )
+ ->method( 'getProfiles' )
+ ->will( $this->returnValueMap( [
+ [ SearchEngine::COMPLETION_PROFILE_TYPE, [
+ [
+ 'name' => 'normal',
+ 'desc-message' => 'normal-message',
+ 'default' => true,
+ ],
+ [
+ 'name' => 'strict',
+ 'desc-message' => 'strict-message',
+ ],
+ ] ],
+ ] ) );
+
+ $api = $this->createApi();
+ $params = $api->getAllowedParams();
+
+ $this->assertArrayNotHasKey( 'offset', $params );
+ $this->assertArrayHasKey( 'profile', $params, print_r( $params, true ) );
+ $this->assertEquals( 'normal', $params['profile'][ApiBase::PARAM_DFLT] );
+ }
+
+ private function replaceSearchEngineConfig() {
+ $config = $this->getMockBuilder( 'SearchEngineConfig' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->setService( 'SearchEngineConfig', $config );
+
+ return $config;
+ }
+
+ private function replaceSearchEngine() {
+ $engine = $this->getMockBuilder( 'SearchEngine' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $engineFactory = $this->getMockBuilder( 'SearchEngineFactory' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $engineFactory->expects( $this->any() )
+ ->method( 'create' )
+ ->will( $this->returnValue( $engine ) );
+ $this->setService( 'SearchEngineFactory', $engineFactory );
+
+ return $engine;
+ }
+
+ private function createApi() {
+ $ctx = new RequestContext();
+ $apiMain = new ApiMain( $ctx );
+ return new ApiOpenSearch( $apiMain, 'opensearch', '' );
+ }
+}
[ 'ValidTitle.jpg', 'ValidTitle.jpg', UploadBase::OK,
'upload valid title' ],
/* A title with a slash */
- [ 'A/B.jpg', 'B.jpg', UploadBase::OK,
+ [ 'A/B.jpg', 'A-B.jpg', UploadBase::OK,
'upload title with slash' ],
/* A title with illegal char */
[ 'A:B.jpg', 'A-B.jpg', UploadBase::OK,
];
// @codingStandardsIgnoreEnd
}
+
+ /**
+ * @dataProvider provideCheckXMLEncodingMissmatch
+ */
+ public function testCheckXMLEncodingMissmatch( $fileContents, $evil ) {
+ $filename = $this->getNewTempFile();
+ file_put_contents( $filename, $fileContents );
+ $this->assertSame( UploadBase::checkXMLEncodingMissmatch( $filename ), $evil );
+ }
+
+ public function provideCheckXMLEncodingMissmatch() {
+ return [
+ [ '<?xml version="1.0" encoding="utf-7"?><svg></svg>', true ],
+ [ '<?xml version="1.0" encoding="utf-8"?><svg></svg>', false ],
+ [ '<?xml version="1.0" encoding="WINDOWS-1252"?><svg></svg>', false ],
+ ];
+ }
}
class UploadTestHandler extends UploadBase {
$this->assertGreaterThan(
$touched, $user->getDBTouched(), "user_touched increased with casOnTouched() #2" );
}
+
+ /**
+ * @covers User::findUsersByGroup
+ */
+ public function testFindUsersByGroup() {
+ $users = User::findUsersByGroup( [] );
+ $this->assertEquals( 0, iterator_count( $users ) );
+
+ $users = User::findUsersByGroup( 'foo' );
+ $this->assertEquals( 0, iterator_count( $users ) );
+
+ $user = $this->getMutableTestUser( [ 'foo' ] )->getUser();
+ $users = User::findUsersByGroup( 'foo' );
+ $this->assertEquals( 1, iterator_count( $users ) );
+ $users->rewind();
+ $this->assertTrue( $user->equals( $users->current() ) );
+
+ // arguments have OR relationship
+ $user2 = $this->getMutableTestUser( [ 'bar' ] )->getUser();
+ $users = User::findUsersByGroup( [ 'foo', 'bar' ] );
+ $this->assertEquals( 2, iterator_count( $users ) );
+ $users->rewind();
+ $this->assertTrue( $user->equals( $users->current() ) );
+ $users->next();
+ $this->assertTrue( $user2->equals( $users->current() ) );
+
+ // users are not duplicated
+ $user = $this->getMutableTestUser( [ 'baz', 'boom' ] )->getUser();
+ $users = User::findUsersByGroup( [ 'baz', 'boom' ] );
+ $this->assertEquals( 1, iterator_count( $users ) );
+ $users->rewind();
+ $this->assertTrue( $user->equals( $users->current() ) );
+ }
}