* $wgSquidServersNoPurge now supports the use of Classless Inter-Domain
Routing (CIDR) notation to specify contiguous blocks of IPv4 and/or IPv6
addresses that should be trusted to provide X-Forwarded-For headers.
-* Preferences 'watchcreations' and 'watchdefault' ("Add pages I create and files
- I upload to my watchlist", "Add pages and files I edit to my watchlist") are
- now enabled by default.
+* Preferences 'watchcreations', 'watchdefault', 'enotifwatchlistpages' ("Add
+ pages I create and files I upload to my watchlist", "Add pages and files I
+ edit to my watchlist", "Email me when a page or file on my watchlist is
+ changed") are now enabled by default. In addition new user accounts' personal
+ and talk pages are now watched by them by default.
* $wgLBFactoryConf: Class names have had underscores removed. The configuration
should be updated if LBFactory_Simple or LBFactory_Multi is configured.
* $wgPasswordSenderName has been deprecated. To set a custom mailer name,
the system message 'emailsender' should be modified (default: "{{SITENAME}}").
* $wgDBAhandler was removed as the only class using it was also removed
+* The 'max threads' setting was removed from $wgDBservers.
=== New features in 1.23 ===
* ResourceLoader can utilize the Web Storage API to cache modules client-side.
* WikitextContent will now render redirects with the expected "redirect"
header, rather than as an ordered list. Code calling Article::viewRedirect
can probably be changed to no longer special-case redirects.
+* [[Special:Diff]] was added, allowing users to create internal links to
+ revision comparison pages using syntax such as [[Special:Diff/12345]],
+ [[Special:Diff/12345/prev]] or [[Special:Diff/12345/98765]].
+* New user accounts' personal and talk pages are now watched by them by default.
=== Bug fixes in 1.23 ===
* (bug 41759) The "updated since last visit" markers (on history pages, recent
compiled without support for MySQL yet with support for another DBMS.
* (bug 56199) Raw option of parser functions must now match complete word,
to take effect.
+* (bug 60543) Special:PrefixIndex forgot stripprefix=1 for "Next page" link
=== Web API changes in 1.23 ===
* (bug 54884) action=parse&prop=categories now indicates hidden and missing
access operators should continue to work, as it implements the ArrayAccess
interface).
* Option to mark hooks as deprecated has been added.
+* (bug 52811) Preference "Enable section editing via [edit] links" was removed.
+* (bug 52813) Preference "Show table of contents (for pages with more than
+ 3 headings)" was removed.
+* (bug 52810) Preference "Justify paragraphs" was removed.
+* OutputPage::showErrorPage raises a notice if arguments are incoherent.
==== Removed classes ====
+* FakeMemCachedClient (deprecated in 1.18)
+* RdfMetaData (unused)
* TitleDependency (unused)
* TitleListDependency (unused)
* WikiError (deprecated in 1.17)
* EditPage::spamPage() (deprecated since 1.17)
* Exif::getFormattedData() (deprecated in 1.18)
* Exif::makeFormattedData() (deprecated in 1.18)
+* in_string (deprecated in 1.21)
* Language::convertLinkToAllVariants() (deprecated in 1.17)
* LanguageConverter::convertLinkToAllVariants() (deprecated in 1.17)
* Linker::makeBrokenLink() (deprecated in 1.16)
* Linker::makeBrokenLinkObj() (deprecated in 1.16)
* Linker::makeColouredLinkObj() (deprecated in 1.16)
* Linker::makeSizeLinkObj() (deprecated in 1.17)
+* MediaWiki::articleFromTitle() (deprecated in 1.18)
+* ParserOptions::getkin() (deprecated 1.18)
* ProfilerSimple::getCpuTime (deprecated in 1.20)
* Revision::revText() (deprecated in 1.17)
* SkinTemplate::jstext() (deprecated in 1.21)
* User::getPageRenderingHash() (deprecated in 1.17)
* WebRequest::getFileSize() (deprecated in 1.17)
* WebRequest::isPathInfoBad() (deprecated in 1.17)
+* wfGenerateToken (deprecated in 1.20)
+* wfStreamFile (deprecated in 1.19)
+* wfUILang (deprecated in 1.18)
+* WikiPage::createUpdates() (deprecated in 1.18)
* WikiPage::quickEdit() (deprecated in 1.18)
* WikiPage::useParserCache() (deprecated in 1.18)
* WikiPage::viewUpdates() (deprecated in 1.18)
'AbortNewAccount': Return false to cancel explicit account creation.
$user: the User object about to be created (read-only, incomplete)
&$msg: out parameter: HTML to display on abort
+&$status: out parameter: Status object to return, replaces the older $msg param (added in 1.23)
+ Create the object with Status::newFatal() to ensure proper API error messages
+ are returned when creating account through API clients.
'AbortTalkPageEmailNotification': Return false to cancel talk page email notification
$targetUser: the user whom to send talk page email notification
Wiki::articleFromTitle().
$title: Title (object) used to create the article object
$article: Article (object) that will be returned
+$context: IContextSource (object)
'ArticleInsertComplete': After a new article is created. DEPRECATED, use
PageContentInsertComplete.
'BlockIp': Before an IP address or user is blocked.
$block: the Block object about to be saved
$user: the user _doing_ the block (not the one being blocked)
+&$reason: if the hook is aborted, the error message to be returned in an array
'BlockIpComplete': After an IP address or user is blocked.
$block: the Block object that was saved
$modeName: the requested content model name
&$handler: set this to a ContentHandler object, if desired.
+'ContentModelCanBeUsedOn': Called to determine whether that content model can
+be used on a given page. This is especially useful to prevent some content models
+to be used in some special location.
+$contentModel: ID of the content model in question
+$title: the Title in question.
+&$ok: Output parameter, whether it is OK to use $contentModel on $title.
+Handler functions that modify $ok should generally return false to prevent further
+hooks from further modifying $ok.
+
'ConvertContent': Called by AbstractContent::convert when a conversion to another
content model is requested.
$content: The Content object to be converted.
'DiffRevisionTools': Override or extend the revision tools available from the
diff view, i.e. undo, etc.
-$rev: Revision object
+$newRev: Revision object of the "new" revision
&$links: Array of HTML links
+$oldRev: Revision object of the "old" revision (may be null)
'DiffViewHeader': Called before diff display
$diff: DifferenceEngine object that's calling
}
$page = null;
- wfRunHooks( 'ArticleFromTitle', array( &$title, &$page ) );
+ wfRunHooks( 'ArticleFromTitle', array( &$title, &$page, $context ) );
if ( !$page ) {
switch ( $title->getNamespace() ) {
case NS_FILE:
$outputPage->addSubtitle( wfMessage( 'redirectedfrom' )->rawParams( $redir ) );
// Set the fragment if one was specified in the redirect
- if ( strval( $this->getTitle()->getFragment() ) != '' ) {
+ if ( $this->getTitle()->hasFragment() ) {
$outputPage->addJsConfigVars( 'wgRedirectToFragment', $this->getTitle()->getFragmentForURL() );
$outputPage->addModules( 'mediawiki.action.view.redirectToFragment' );
}
'CategoryPage' => 'includes/CategoryPage.php',
'CategoryViewer' => 'includes/CategoryViewer.php',
'ChangesFeed' => 'includes/ChangesFeed.php',
+ 'ChangesListSpecialPage' => 'includes/specialpage/ChangesListSpecialPage.php',
'ChangeTags' => 'includes/ChangeTags.php',
'ChannelFeed' => 'includes/Feed.php',
'Collation' => 'includes/Collation.php',
'QueryPage' => 'includes/QueryPage.php',
'QuickTemplate' => 'includes/SkinTemplate.php',
'RawMessage' => 'includes/Message.php',
- 'RdfMetaData' => 'includes/Metadata.php',
'ReadOnlyError' => 'includes/Exception.php',
'RedirectSpecialArticle' => 'includes/specialpage/RedirectSpecialPage.php',
'RedirectSpecialPage' => 'includes/specialpage/RedirectSpecialPage.php',
'StubObject' => 'includes/StubObject.php',
'StubUserLang' => 'includes/StubObject.php',
'TablePager' => 'includes/Pager.php',
- 'MWTimestamp' => 'includes/Timestamp.php',
- 'TimestampException' => 'includes/Timestamp.php',
+ 'MWTimestamp' => 'includes/MWTimestamp.php',
+ 'TimestampException' => 'includes/TimestampException.php',
'Title' => 'includes/Title.php',
'TitleArray' => 'includes/TitleArray.php',
- 'TitleArrayFromResult' => 'includes/TitleArray.php',
+ 'TitleArrayFromResult' => 'includes/TitleArrayFromResult.php',
'ThrottledError' => 'includes/Exception.php',
'UnlistedSpecialPage' => 'includes/specialpage/UnlistedSpecialPage.php',
'UploadSourceAdapter' => 'includes/Import.php',
'UppercaseCollation' => 'includes/Collation.php',
'User' => 'includes/User.php',
'UserArray' => 'includes/UserArray.php',
- 'UserArrayFromResult' => 'includes/UserArray.php',
+ 'UserArrayFromResult' => 'includes/UserArrayFromResult.php',
'UserBlockedError' => 'includes/Exception.php',
'UserNotLoggedIn' => 'includes/Exception.php',
'UserCache' => 'includes/cache/UserCache.php',
'RedisConnectionPool' => 'includes/clientpool/RedisConnectionPool.php',
'RedisConnRef' => 'includes/clientpool/RedisConnectionPool.php',
+ # includes/config
+ 'Config' => 'includes/config/Config.php',
+ 'GlobalConfig' => 'includes/config/GlobalConfig.php',
+
# includes/content
'AbstractContent' => 'includes/content/AbstractContent.php',
'ContentHandler' => 'includes/content/ContentHandler.php',
'MysqlUpdater' => 'includes/installer/MysqlUpdater.php',
'OracleInstaller' => 'includes/installer/OracleInstaller.php',
'OracleUpdater' => 'includes/installer/OracleUpdater.php',
- 'PhpRefCallBugTester' => 'includes/installer/PhpBugTests.php',
'PhpXmlBugTester' => 'includes/installer/PhpBugTests.php',
'PostgresInstaller' => 'includes/installer/PostgresInstaller.php',
'PostgresUpdater' => 'includes/installer/PostgresUpdater.php',
'WebInstallerPage' => 'includes/installer/WebInstallerPage.php',
# includes/job
+ 'IJobSpecification' => 'includes/job/JobSpecification.php',
'Job' => 'includes/job/Job.php',
'JobQueue' => 'includes/job/JobQueue.php',
'JobQueueAggregator' => 'includes/job/aggregator/JobQueueAggregator.php',
'JobQueueGroup' => 'includes/job/JobQueueGroup.php',
'JobQueueFederated' => 'includes/job/JobQueueFederated.php',
'JobQueueRedis' => 'includes/job/JobQueueRedis.php',
+ 'JobSpecification' => 'includes/job/JobSpecification.php',
# includes/job/jobs
'DoubleRedirectJob' => 'includes/job/jobs/DoubleRedirectJob.php',
'APCBagOStuff' => 'includes/objectcache/APCBagOStuff.php',
'BagOStuff' => 'includes/objectcache/BagOStuff.php',
'EmptyBagOStuff' => 'includes/objectcache/EmptyBagOStuff.php',
- 'FakeMemCachedClient' => 'includes/objectcache/EmptyBagOStuff.php',
'HashBagOStuff' => 'includes/objectcache/HashBagOStuff.php',
'MediaWikiBagOStuff' => 'includes/objectcache/SqlBagOStuff.php',
'MemCachedClientforWiki' => 'includes/objectcache/MemcachedClient.php',
'MySQLSearchResultSet' => 'includes/search/SearchMySQL.php',
'PostgresSearchResult' => 'includes/search/SearchPostgres.php',
'PostgresSearchResultSet' => 'includes/search/SearchPostgres.php',
+ 'SearchDatabase' => 'includes/search/SearchDatabase.php',
'SearchEngine' => 'includes/search/SearchEngine.php',
'SearchEngineDummy' => 'includes/search/SearchEngine.php',
'SearchHighlighter' => 'includes/search/SearchEngine.php',
'SpecialChangePassword' => 'includes/specials/SpecialChangePassword.php',
'SpecialComparePages' => 'includes/specials/SpecialComparePages.php',
'SpecialContributions' => 'includes/specials/SpecialContributions.php',
+ 'SpecialDiff' => 'includes/specials/SpecialDiff.php',
'SpecialEditWatchlist' => 'includes/specials/SpecialEditWatchlist.php',
'SpecialEmailUser' => 'includes/specials/SpecialEmailuser.php',
'SpecialExpandTemplates' => 'includes/specials/SpecialExpandTemplates.php',
$sortKey = $this->getPrimarySortKey( $string );
// Do a binary search to find the correct letter to sort under
- $min = $this->findLowerBound(
+ $min = ArrayUtils::findLowerBound(
array( $this, 'getSortKeyByLetterIndex' ),
$this->getFirstLetterCount(),
'strcmp',
* Do a binary search, and return the index of the largest item that sorts
* less than or equal to the target value.
*
+ * @deprecated in 1.23; use ArrayUtils::findLowerBound() instead
+ *
* @param array $valueCallback A function to call to get the value with
* a given array index.
* @param int $valueCount The number of items accessible via $valueCallback,
* sorts before all items.
*/
function findLowerBound( $valueCallback, $valueCount, $comparisonCallback, $target ) {
- if ( $valueCount === 0 ) {
- return false;
- }
-
- $min = 0;
- $max = $valueCount;
- do {
- $mid = $min + ( ( $max - $min ) >> 1 );
- $item = call_user_func( $valueCallback, $mid );
- $comparison = call_user_func( $comparisonCallback, $target, $item );
- if ( $comparison > 0 ) {
- $min = $mid;
- } elseif ( $comparison == 0 ) {
- $min = $mid;
- break;
- } else {
- $max = $mid;
- }
- } while ( $min < $max - 1 );
-
- if ( $min == 0 ) {
- $item = call_user_func( $valueCallback, $min );
- $comparison = call_user_func( $comparisonCallback, $target, $item );
- if ( $comparison < 0 ) {
- // Before the first item
- return false;
- }
- }
- return $min;
+ wfDeprecated( __METHOD__, '1.23' );
+ return ArrayUtils::findLowerBound( $valueCallback, $valueCount, $comparisonCallback, $target );
}
static function isCjk( $codepoint ) {
*/
$wgConf = new SiteConfiguration;
+/**
+ * Class name to use for accessing Config.
+ * Currently only 'GlobalConfig' is available
+ * @since 1.23
+ */
+$wgConfigClass = 'GlobalConfig';
+
/**
* MediaWiki version number
* @since 1.2
* if available
*
* - max lag: (optional) Maximum replication lag before a slave will taken out of rotation
- * - max threads: (optional) Maximum number of running threads
*
* These and any other user-defined properties will be assigned to the mLBInfo member
* variable of the Database object.
/**
* Settings added to this array will override the default globals for the user
* preferences used by anonymous visitors and newly created accounts.
- * For instance, to disable section editing links:
- * $wgDefaultUserOptions ['editsection'] = 0;
+ * For instance, to disable editing on double clicks:
+ * $wgDefaultUserOptions ['editondblclick'] = 0;
*/
$wgDefaultUserOptions = array(
'ccmeonemails' => 0,
'disablemail' => 0,
'editfont' => 'default',
'editondblclick' => 0,
- 'editsection' => 1,
'editsectiononrightclick' => 0,
'enotifminoredits' => 0,
'enotifrevealaddr' => 0,
'enotifusertalkpages' => 1,
- 'enotifwatchlistpages' => 0,
+ 'enotifwatchlistpages' => 1,
'extendwatchlist' => 0,
'fancysig' => 0,
'forceeditsummary' => 0,
'hideminor' => 0,
'hidepatrolled' => 0,
'imagesize' => 2,
- 'justify' => 0,
'math' => 1,
'minordefault' => 0,
'newpageshidepatrolled' => 0,
'rows' => 25,
'showhiddencats' => 0,
'shownumberswatching' => 1,
- 'showtoc' => 1,
'showtoolbar' => 1,
'skin' => false,
'stubthreshold' => 0,
* @since 1.20
*/
$wgGitRepositoryViewers = array(
- 'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://git.wikimedia.org/commit/%r/%H',
+ 'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' => 'https://git.wikimedia.org/commit/%r/%H',
'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)'
=> 'https://git.wikimedia.org/commit/%r/%H',
);
$wgRCFilterByAge = false;
/**
- * List of Days and Limits options to list in the Special:Recentchanges and
+ * List of Limits options to list in the Special:Recentchanges and
* Special:Recentchangeslinked pages.
*/
$wgRCLinkLimits = array( 50, 100, 250, 500 );
+
+/**
+ * List of Days options to list in the Special:Recentchanges and
+ * Special:Recentchangeslinked pages.
+ */
$wgRCLinkDays = array( 1, 3, 7, 14, 30 );
/**
* API module extensions.
* Associative array mapping module name to class name.
* Extension modules may override the core modules.
- * @todo Describe each of the variables, group them and add examples
+ *
+ * See ApiMain::$Modules for a list of the core modules.
*/
$wgAPIModules = array();
+
+/**
+ * API format module extensions.
+ * Associative array mapping format module name to class name.
+ * Extension modules may override the core modules.
+ *
+ * See ApiMain::$Formats for a list of the core format modules.
+ */
$wgAPIFormatModules = array();
+
+/**
+ * API Query meta module extensions.
+ * Associative array mapping meta module name to class name.
+ * Extension modules may override the core modules.
+ *
+ * See ApiQuery::$QueryMetaModules for a list of the core meta modules.
+ */
$wgAPIMetaModules = array();
+
+/**
+ * API Query prop module extensions.
+ * Associative array mapping properties module name to class name.
+ * Extension modules may override the core modules.
+ *
+ * See ApiQuery::$QueryPropModules for a list of the core prop modules.
+ */
$wgAPIPropModules = array();
+
+/**
+ * API Query list module extensions.
+ * Associative array mapping list module name to class name.
+ * Extension modules may override the core modules.
+ *
+ * See ApiQuery::$QueryListModules for a list of the core list modules.
+ */
$wgAPIListModules = array();
/**
* Date format selectors; used in user preference storage and by
* Language::date() and co.
*/
-/*define( 'MW_DATE_DEFAULT', '0' );
-define( 'MW_DATE_MDY', '1' );
-define( 'MW_DATE_DMY', '2' );
-define( 'MW_DATE_YMD', '3' );
-define( 'MW_DATE_ISO', 'ISO 8601' );*/
define( 'MW_DATE_DEFAULT', 'default' );
define( 'MW_DATE_MDY', 'mdy' );
define( 'MW_DATE_DMY', 'dmy' );
$undo = $wgRequest->getInt( 'undo' );
if ( $undo > 0 && $undoafter > 0 ) {
- if ( $undo < $undoafter ) {
- # If they got undoafter and undo round the wrong way, switch them
- list( $undo, $undoafter ) = array( $undoafter, $undo );
- }
$undorev = Revision::newFromId( $undo );
$oldrev = Revision::newFromId( $undoafter );
# the revisions exist and they were not deleted.
# Otherwise, $content will be left as-is.
if ( !is_null( $undorev ) && !is_null( $oldrev ) &&
- $undorev->getPage() == $oldrev->getPage() &&
- $undorev->getPage() == $this->mTitle->getArticleID() &&
!$undorev->isDeleted( Revision::DELETED_TEXT ) &&
!$oldrev->isDeleted( Revision::DELETED_TEXT ) ) {
$wgOut->addModules( 'mediawiki.action.edit.editWarning' );
}
- // Bug #19334: textarea jumps when editing articles in IE8
- $wgOut->addStyle( 'common/IE80Fixes.css', 'screen', 'IE 8' );
-
$wgOut->setRobotPolicy( 'noindex,nofollow' );
# Enabled article-related sidebar, toplinks, etc.
*/
static function getEditToolbar() {
global $wgStylePath, $wgContLang, $wgLang, $wgOut;
- global $wgUseTeX, $wgEnableUploads, $wgForeignFileRepos;
+ global $wgEnableUploads, $wgForeignFileRepos;
$imagesAvailable = $wgEnableUploads || count( $wgForeignFileRepos );
'tip' => wfMessage( 'media_tip' )->text(),
'key' => 'M'
) : false,
- $wgUseTeX ? array(
+ class_exists( 'MathRenderer' ) ? array(
'image' => $wgLang->getImageFile( 'button-math' ),
'id' => 'mw-editbutton-math',
'open' => "<math>",
* @param string|Message $msg Message key (string) for error text, or a Message object
* @param array $params with parameters to wfMessage()
*/
- function __construct( $title, $msg, $params = null ) {
+ function __construct( $title, $msg, $params = array() ) {
$this->title = $title;
$this->msg = $msg;
$this->params = $params;
* @param string|Message $msg A message key (default: 'badtitletext')
* @param array $params parameter to wfMessage()
*/
- function __construct( $msg = 'badtitletext', $params = null ) {
+ function __construct( $msg = 'badtitletext', $params = array() ) {
parent::__construct( 'badtitle', $msg, $params );
}
parent::__construct(
'readonly',
'readonlytext',
- wfReadOnlyReason()
+ wfReadOnlyReason() ?: array()
);
}
}
* @param string $titleMsg A message key to set the page title.
* Optional, default: 'exception-nologin'
* @param array $params Parameters to wfMessage().
- * Optional, default: null
+ * Optional, default: array()
*/
public function __construct(
$reasonMsg = 'exception-nologin-text',
$titleMsg = 'exception-nologin',
- $params = null
+ $params = array()
) {
parent::__construct( $titleMsg, $reasonMsg, $params );
}
function canTalk() { $this->error(); }
function getInterwiki() { $this->error(); }
function getFragment() { $this->error(); }
+ function hasFragment() { $this->error(); }
function getFragmentForURL() { $this->error(); }
function getDefaultNamespace() { $this->error(); }
function getIndexTitle() { $this->error(); }
return $wgContLang;
}
-/**
- * Old function when $wgBetterDirectionality existed
- * All usage removed, wfUILang can be removed in near future
- *
- * @deprecated since 1.18
- * @return Language
- */
-function wfUILang() {
- wfDeprecated( __METHOD__, '1.18' );
- global $wgLang;
- return $wgLang;
-}
-
/**
* This is the function for getting translated interface messages.
*
return $round ? round( $ret, $acc ) . '%' : "$ret%";
}
-/**
- * Find out whether or not a mixed variable exists in a string
- *
- * @deprecated Just use str(i)pos
- * @param $needle String
- * @param $str String
- * @param $insensitive Boolean
- * @return Boolean
- */
-function in_string( $needle, $str, $insensitive = false ) {
- wfDeprecated( __METHOD__, '1.21' );
- $func = 'strpos';
- if ( $insensitive ) {
- $func = 'stripos';
- }
-
- return $func( $str, $needle ) !== false;
-}
-
/**
* Safety wrapper around ini_get() for boolean settings.
* The values returned from ini_get() are pre-normalized for settings
return RepoGroup::singleton()->getLocalRepo()->newFile( $title );
}
-/**
- * Stream a file to the browser. Back-compat alias for StreamFile::stream()
- * @deprecated since 1.19
- */
-function wfStreamFile( $fname, $headers = array() ) {
- wfDeprecated( __FUNCTION__, '1.19' );
- StreamFile::stream( $fname, $headers );
-}
-
/**
* Should low-performance queries be disabled?
*
echo "\n";
}
-/**
- * Generate a random 32-character hexadecimal token.
- * @param $salt Mixed: some sort of salt, if necessary, to add to random
- * characters before hashing.
- * @return string
- * @codeCoverageIgnore
- * @deprecated since 1.20; Please use MWCryptRand for security purposes and
- * wfRandomString for pseudo-random strings
- * @warning This method is NOT secure. Additionally it has many callers that
- * use it for pseudo-random purposes.
- */
-function wfGenerateToken( $salt = '' ) {
- wfDeprecated( __METHOD__, '1.20' );
- $salt = serialize( $salt );
- return md5( mt_rand( 0, 0x7fffffff ) . $salt );
-}
-
/**
* Replace all invalid characters with -
* Additional characters can be defined in $wgIllegalFileChars (see bug 20489)
}
}
- /**
- * Set the referrer header
- */
- public function setReferer( $url ) {
- $this->setHeader( 'Referer', $url );
- }
-
/**
* Set the user agent
* @param $UA string
* @return Status
*/
public function execute() {
- global $wgTitle;
-
wfProfileIn( __METHOD__ );
$this->content = "";
$this->headersOnly = true;
}
- if ( is_object( $wgTitle ) && !isset( $this->reqHeaders['Referer'] ) ) {
- $this->setReferer( wfExpandUrl( $wgTitle->getFullURL(), PROTO_CURRENT ) );
- }
-
$this->proxySetup(); // set up any proxy as needed
if ( !$this->callback ) {
$this->curlOptions[CURLOPT_MAXREDIRS] = $this->maxRedirects;
$this->curlOptions[CURLOPT_ENCODING] = ""; # Enable compression
- /* not sure these two are actually necessary */
- if ( isset( $this->reqHeaders['Referer'] ) ) {
- $this->curlOptions[CURLOPT_REFERER] = $this->reqHeaders['Referer'];
- }
$this->curlOptions[CURLOPT_USERAGENT] = $this->reqHeaders['User-Agent'];
$this->curlOptions[CURLOPT_SSL_VERIFYHOST] = $this->sslVerifyHost ? 2 : 0;
* @return bool
*/
public function importRevision( $revision ) {
+ if ( !$revision->getContent()->getContentHandler()->canBeUsedOn( $revision->getTitle() ) ) {
+ $this->notice( 'import-error-bad-location',
+ $revision->getTitle()->getPrefixedText(),
+ $revision->getID(),
+ $revision->getModel(),
+ $revision->getFormat() );
+
+ return false;
+ }
+
try {
$dbw = wfGetDB( DB_MASTER );
return $dbw->deadlockLoop( array( $revision, 'importOldRevision' ) );
$revision->getModel(),
$revision->getFormat() );
}
+
+ return false;
}
/**
wfProfileIn( __METHOD__ );
# We don't want to include fragments for broken links, because they
# generally make no sense.
- if ( in_array( 'broken', $options ) && $target->mFragment !== '' ) {
+ if ( in_array( 'broken', $options ) && $target->hasFragment() ) {
$target = clone $target;
- $target->mFragment = '';
+ $target->setFragment( '' );
}
# If it's a broken link, add the appropriate query pieces, unless
// If the target is just a fragment, with no title, we return the fragment
// text. Otherwise, we return the title text itself.
- if ( $target->getPrefixedText() === '' && $target->getFragment() !== '' ) {
+ if ( $target->getPrefixedText() === '' && $target->hasFragment() ) {
return htmlspecialchars( $target->getFragment() );
}
return htmlspecialchars( $target->getPrefixedText() );
if ( !$name ) {
return $title;
}
- $ret = SpecialPage::getTitleFor( $name, $subpage );
- $ret->mFragment = $title->getFragment();
+ $ret = SpecialPage::getTitleFor( $name, $subpage, $title->getFragment() );
return $ret;
} else {
return $title;
--- /dev/null
+<?php
+/**
+ * Creation and parsing of MW-style timestamps.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.20
+ * @author Tyler Romeo, 2012
+ */
+
+/**
+ * Library for creating and parsing MW-style timestamps. Based on the JS
+ * library that does the same thing.
+ *
+ * @since 1.20
+ */
+class MWTimestamp {
+ /**
+ * Standard gmdate() formats for the different timestamp types.
+ */
+ private static $formats = array(
+ TS_UNIX => 'U',
+ TS_MW => 'YmdHis',
+ TS_DB => 'Y-m-d H:i:s',
+ TS_ISO_8601 => 'Y-m-d\TH:i:s\Z',
+ TS_ISO_8601_BASIC => 'Ymd\THis\Z',
+ TS_EXIF => 'Y:m:d H:i:s', // This shouldn't ever be used, but is included for completeness
+ TS_RFC2822 => 'D, d M Y H:i:s',
+ TS_ORACLE => 'd-m-Y H:i:s.000000', // Was 'd-M-y h.i.s A' . ' +00:00' before r51500
+ TS_POSTGRES => 'Y-m-d H:i:s',
+ );
+
+ /**
+ * The actual timestamp being wrapped (DateTime object).
+ * @var DateTime
+ */
+ public $timestamp;
+
+ /**
+ * Make a new timestamp and set it to the specified time,
+ * or the current time if unspecified.
+ *
+ * @since 1.20
+ *
+ * @param bool|string $timestamp Timestamp to set, or false for current time
+ */
+ public function __construct( $timestamp = false ) {
+ $this->setTimestamp( $timestamp );
+ }
+
+ /**
+ * Set the timestamp to the specified time, or the current time if unspecified.
+ *
+ * Parse the given timestamp into either a DateTime object or a Unix timestamp,
+ * and then store it.
+ *
+ * @since 1.20
+ *
+ * @param string|bool $ts Timestamp to store, or false for now
+ * @throws TimestampException
+ */
+ public function setTimestamp( $ts = false ) {
+ $da = array();
+ $strtime = '';
+
+ if ( !$ts || $ts === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0" ) { // We want to catch 0, '', null... but not date strings starting with a letter.
+ $uts = time();
+ $strtime = "@$uts";
+ } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
+ # TS_DB
+ } elseif ( preg_match( '/^(\d{4}):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
+ # TS_EXIF
+ } elseif ( preg_match( '/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/D', $ts, $da ) ) {
+ # TS_MW
+ } elseif ( preg_match( '/^-?\d{1,13}$/D', $ts ) ) {
+ # TS_UNIX
+ $strtime = "@$ts"; // http://php.net/manual/en/datetime.formats.compound.php
+ } elseif ( preg_match( '/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}.\d{6}$/', $ts ) ) {
+ # TS_ORACLE // session altered to DD-MM-YYYY HH24:MI:SS.FF6
+ $strtime = preg_replace( '/(\d\d)\.(\d\d)\.(\d\d)(\.(\d+))?/', "$1:$2:$3",
+ str_replace( '+00:00', 'UTC', $ts ) );
+ } elseif ( preg_match( '/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
+ # TS_ISO_8601
+ } elseif ( preg_match( '/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
+ #TS_ISO_8601_BASIC
+ } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d*[\+\- ](\d\d)$/', $ts, $da ) ) {
+ # TS_POSTGRES
+ } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d* GMT$/', $ts, $da ) ) {
+ # TS_POSTGRES
+ } elseif ( preg_match( '/^[ \t\r\n]*([A-Z][a-z]{2},[ \t\r\n]*)?' . # Day of week
+ '\d\d?[ \t\r\n]*[A-Z][a-z]{2}[ \t\r\n]*\d{2}(?:\d{2})?' . # dd Mon yyyy
+ '[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d/S', $ts ) ) { # hh:mm:ss
+ # TS_RFC2822, accepting a trailing comment. See http://www.squid-cache.org/mail-archive/squid-users/200307/0122.html / r77171
+ # The regex is a superset of rfc2822 for readability
+ $strtime = strtok( $ts, ';' );
+ } elseif ( preg_match( '/^[A-Z][a-z]{5,8}, \d\d-[A-Z][a-z]{2}-\d{2} \d\d:\d\d:\d\d/', $ts ) ) {
+ # TS_RFC850
+ $strtime = $ts;
+ } elseif ( preg_match( '/^[A-Z][a-z]{2} [A-Z][a-z]{2} +\d{1,2} \d\d:\d\d:\d\d \d{4}/', $ts ) ) {
+ # asctime
+ $strtime = $ts;
+ } else {
+ throw new TimestampException( __METHOD__ . ": Invalid timestamp - $ts" );
+ }
+
+ if ( !$strtime ) {
+ $da = array_map( 'intval', $da );
+ $da[0] = "%04d-%02d-%02dT%02d:%02d:%02d.00+00:00";
+ $strtime = call_user_func_array( "sprintf", $da );
+ }
+
+ try {
+ $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
+ } catch ( Exception $e ) {
+ throw new TimestampException( __METHOD__ . ': Invalid timestamp format.', $e->getCode(), $e );
+ }
+
+ if ( $final === false ) {
+ throw new TimestampException( __METHOD__ . ': Invalid timestamp format.' );
+ }
+ $this->timestamp = $final;
+ }
+
+ /**
+ * Get the timestamp represented by this object in a certain form.
+ *
+ * Convert the internal timestamp to the specified format and then
+ * return it.
+ *
+ * @since 1.20
+ *
+ * @param int $style Constant Output format for timestamp
+ * @throws TimestampException
+ * @return string The formatted timestamp
+ */
+ public function getTimestamp( $style = TS_UNIX ) {
+ if ( !isset( self::$formats[$style] ) ) {
+ throw new TimestampException( __METHOD__ . ': Illegal timestamp output type.' );
+ }
+
+ $output = $this->timestamp->format( self::$formats[$style] );
+
+ if ( ( $style == TS_RFC2822 ) || ( $style == TS_POSTGRES ) ) {
+ $output .= ' GMT';
+ }
+
+ return $output;
+ }
+
+ /**
+ * Get the timestamp in a human-friendly relative format, e.g., "3 days ago".
+ *
+ * Determine the difference between the timestamp and the current time, and
+ * generate a readable timestamp by returning "<N> <units> ago", where the
+ * largest possible unit is used.
+ *
+ * @since 1.20
+ * @since 1.22 Uses Language::getHumanTimestamp to produce the timestamp
+ *
+ * @param MWTimestamp|null $relativeTo The base timestamp to compare to (defaults to now)
+ * @param User|null $user User the timestamp is being generated for (or null to use main context's user)
+ * @param Language|null $lang Language to use to make the human timestamp (or null to use main context's language)
+ * @return string Formatted timestamp
+ */
+ public function getHumanTimestamp( MWTimestamp $relativeTo = null, User $user = null, Language $lang = null ) {
+ if ( $relativeTo === null ) {
+ $relativeTo = new self();
+ }
+ if ( $user === null ) {
+ $user = RequestContext::getMain()->getUser();
+ }
+ if ( $lang === null ) {
+ $lang = RequestContext::getMain()->getLanguage();
+ }
+
+ // Adjust for the user's timezone.
+ $offsetThis = $this->offsetForUser( $user );
+ $offsetRel = $relativeTo->offsetForUser( $user );
+
+ $ts = '';
+ if ( wfRunHooks( 'GetHumanTimestamp', array( &$ts, $this, $relativeTo, $user, $lang ) ) ) {
+ $ts = $lang->getHumanTimestamp( $this, $relativeTo, $user );
+ }
+
+ // Reset the timezone on the objects.
+ $this->timestamp->sub( $offsetThis );
+ $relativeTo->timestamp->sub( $offsetRel );
+
+ return $ts;
+ }
+
+ /**
+ * Adjust the timestamp depending on the given user's preferences.
+ *
+ * @since 1.22
+ *
+ * @param User $user User to take preferences from
+ * @param[out] MWTimestamp $ts Timestamp to adjust
+ * @return DateInterval Offset that was applied to the timestamp
+ */
+ public function offsetForUser( User $user ) {
+ global $wgLocalTZoffset;
+
+ $option = $user->getOption( 'timecorrection' );
+ $data = explode( '|', $option, 3 );
+
+ // First handle the case of an actual timezone being specified.
+ if ( $data[0] == 'ZoneInfo' ) {
+ try {
+ $tz = new DateTimeZone( $data[2] );
+ } catch ( Exception $e ) {
+ $tz = false;
+ }
+
+ if ( $tz ) {
+ $this->timestamp->setTimezone( $tz );
+ return new DateInterval( 'P0Y' );
+ } else {
+ $data[0] = 'Offset';
+ }
+ }
+
+ $diff = 0;
+ // If $option is in fact a pipe-separated value, check the
+ // first value.
+ if ( $data[0] == 'System' ) {
+ // First value is System, so use the system offset.
+ if ( isset( $wgLocalTZoffset ) ) {
+ $diff = $wgLocalTZoffset;
+ }
+ } elseif ( $data[0] == 'Offset' ) {
+ // First value is Offset, so use the specified offset
+ $diff = (int)$data[1];
+ } else {
+ // $option actually isn't a pipe separated value, but instead
+ // a comma separated value. Isn't MediaWiki fun?
+ $data = explode( ':', $option );
+ if ( count( $data ) >= 2 ) {
+ // Combination hours and minutes.
+ $diff = abs( (int)$data[0] ) * 60 + (int)$data[1];
+ if ( (int)$data[0] < 0 ) {
+ $diff *= -1;
+ }
+ } else {
+ // Just hours.
+ $diff = (int)$data[0] * 60;
+ }
+ }
+
+ $interval = new DateInterval( 'PT' . abs( $diff ) . 'M' );
+ if ( $diff < 1 ) {
+ $interval->invert = 1;
+ }
+
+ $this->timestamp->add( $interval );
+ return $interval;
+ }
+
+ /**
+ * Generate a purely relative timestamp, i.e., represent the time elapsed between
+ * the given base timestamp and this object.
+ *
+ * @param MWTimestamp $relativeTo Relative base timestamp (defaults to now)
+ * @param User $user Use to use offset for
+ * @param Language $lang Language to use
+ * @param array $chosenIntervals Intervals to use to represent it
+ * @return string Relative timestamp
+ */
+ public function getRelativeTimestamp(
+ MWTimestamp $relativeTo = null,
+ User $user = null,
+ Language $lang = null,
+ array $chosenIntervals = array()
+ ) {
+ if ( $relativeTo === null ) {
+ $relativeTo = new self;
+ }
+ if ( $user === null ) {
+ $user = RequestContext::getMain()->getUser();
+ }
+ if ( $lang === null ) {
+ $lang = RequestContext::getMain()->getLanguage();
+ }
+
+ $ts = '';
+ $diff = $this->diff( $relativeTo );
+ if ( wfRunHooks( 'GetRelativeTimestamp', array( &$ts, &$diff, $this, $relativeTo, $user, $lang ) ) ) {
+ $seconds = ( ( ( $diff->days * 24 + $diff->h ) * 60 + $diff->i ) * 60 + $diff->s );
+ $ts = wfMessage( 'ago', $lang->formatDuration( $seconds, $chosenIntervals ) )
+ ->inLanguage( $lang )
+ ->text();
+ }
+
+ return $ts;
+ }
+
+ /**
+ * @since 1.20
+ *
+ * @return string
+ */
+ public function __toString() {
+ return $this->getTimestamp();
+ }
+
+ /**
+ * Calculate the difference between two MWTimestamp objects.
+ *
+ * @since 1.22
+ * @param MWTimestamp $relativeTo Base time to calculate difference from
+ * @return DateInterval|bool The DateInterval object representing the difference between the two dates or false on failure
+ */
+ public function diff( MWTimestamp $relativeTo ) {
+ return $this->timestamp->diff( $relativeTo->timestamp );
+ }
+
+ /**
+ * Set the timezone of this timestamp to the specified timezone.
+ *
+ * @since 1.22
+ * @param String $timezone Timezone to set
+ * @throws TimestampException
+ */
+ public function setTimezone( $timezone ) {
+ try {
+ $this->timestamp->setTimezone( new DateTimeZone( $timezone ) );
+ } catch ( Exception $e ) {
+ throw new TimestampException( __METHOD__ . ': Invalid timezone.', $e->getCode(), $e );
+ }
+ }
+
+ /**
+ * Get the timezone of this timestamp.
+ *
+ * @since 1.22
+ * @return DateTimeZone The timezone
+ */
+ public function getTimezone() {
+ return $this->timestamp->getTimezone();
+ }
+
+ /**
+ * Format the timestamp in a given format.
+ *
+ * @since 1.22
+ * @param string $format Pattern to format in
+ * @return string The formatted timestamp
+ */
+ public function format( $format ) {
+ return $this->timestamp->format( $format );
+ }
+
+ /**
+ * Get a timestamp instance in the server local timezone ($wgLocaltimezone)
+ *
+ * @since 1.22
+ * @param bool|string $ts Timestamp to set, or false for current time
+ * @return MWTimestamp the local instance
+ */
+ public static function getLocalInstance( $ts = false ) {
+ global $wgLocaltimezone;
+ $timestamp = new self( $ts );
+ $timestamp->setTimezone( $wgLocaltimezone );
+ return $timestamp;
+ }
+
+ /**
+ * Get a timestamp instance in GMT
+ *
+ * @since 1.22
+ * @param bool|string $ts Timestamp to set, or false for current time
+ * @return MWTimestamp the instance
+ */
+ public static function getInstance( $ts = false ) {
+ return new self( $ts );
+ }
+}
public static function clear() {
// TODO: Give this some more thought
- // TODO: Is TRUNCATE better?
try {
+ // Not using TRUNCATE, because that needs extra permissions,
+ // which maybe not granted to the database user.
$dbw = wfGetDB( DB_MASTER );
$dbw->delete( 'msg_resource', '*', __METHOD__ );
$dbw->delete( 'msg_resource_links', '*', __METHOD__ );
+++ /dev/null
-<?php
-/**
- * Base code to format metadata.
- *
- * Copyright 2004, Evan Prodromou <evan@wikitravel.org>.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @author Evan Prodromou <evan@wikitravel.org>
- * @file
- */
-
-abstract class RdfMetaData {
- const RDF_TYPE_PREFS = 'application/rdf+xml,text/xml;q=0.7,application/xml;q=0.5,text/rdf;q=0.1';
-
- /**
- * Constructor
- * @param Page $page
- */
- public function __construct( Page $page ) {
- $this->mArticle = $page;
- }
-
- abstract public function show();
-
- protected function setup() {
- global $wgOut, $wgRequest;
-
- $httpaccept = isset( $_SERVER['HTTP_ACCEPT'] ) ? $_SERVER['HTTP_ACCEPT'] : null;
- $rdftype = wfNegotiateType(
- wfAcceptToPrefs( $httpaccept ),
- wfAcceptToPrefs( self::RDF_TYPE_PREFS )
- );
-
- if ( !$rdftype ) {
- throw new HttpError( 406, wfMessage( 'notacceptable' ) );
- }
-
- $wgOut->disable();
- $wgRequest->response()->header( "Content-type: {$rdftype}; charset=utf-8" );
- $wgOut->sendCacheControl();
- return true;
- }
-
- protected function reallyFullUrl() {
- return $this->mArticle->getTitle()->getFullURL();
- }
-
- protected function basics() {
- global $wgLanguageCode, $wgSitename;
-
- $this->element( 'title', $this->mArticle->getTitle()->getText() );
- $this->pageOrString( 'publisher', wfMessage( 'aboutpage' )->text(), $wgSitename );
- $this->element( 'language', $wgLanguageCode );
- $this->element( 'type', 'Text' );
- $this->element( 'format', 'text/html' );
- $this->element( 'identifier', $this->reallyFullUrl() );
- $this->element( 'date', $this->date( $this->mArticle->getTimestamp() ) );
-
- $lastEditor = User::newFromId( $this->mArticle->getUser() );
- $this->person( 'creator', $lastEditor );
-
- foreach ( $this->mArticle->getContributors() as $user ) {
- $this->person( 'contributor', $user );
- }
-
- $this->rights();
- }
-
- protected function element( $name, $value ) {
- $value = htmlspecialchars( $value );
- print "\t\t<dc:{$name}>{$value}</dc:{$name}>\n";
- }
-
- protected function date( $timestamp ) {
- return substr( $timestamp, 0, 4 ) . '-'
- . substr( $timestamp, 4, 2 ) . '-'
- . substr( $timestamp, 6, 2 );
- }
-
- protected function pageOrString( $name, $page, $str ) {
- if ( $page instanceof Title ) {
- $nt = $page;
- } else {
- $nt = Title::newFromText( $page );
- }
-
- if ( !$nt || $nt->getArticleID() == 0 ) {
- $this->element( $name, $str );
- } else {
- $this->page( $name, $nt );
- }
- }
-
- /**
- * @param string $name
- * @param Title $title
- */
- protected function page( $name, $title ) {
- $this->url( $name, $title->getFullURL() );
- }
-
- protected function url( $name, $url ) {
- $url = htmlspecialchars( $url );
- print "\t\t<dc:{$name} rdf:resource=\"{$url}\" />\n";
- }
-
- protected function person( $name, User $user ) {
- global $wgHiddenPrefs;
-
- if ( $user->isAnon() ) {
- $this->element( $name, wfMessage( 'anonymous' )->numParams( 1 )->text() );
- } else {
- $real = $user->getRealName();
- if ( $real && !in_array( 'realname', $wgHiddenPrefs ) ) {
- $this->element( $name, $real );
- } else {
- $userName = $user->getName();
- $this->pageOrString(
- $name,
- $user->getUserPage(),
- wfMessage( 'siteuser', $userName, $userName )->text()
- );
- }
- }
- }
-
- /**
- * Takes an arg, for future enhancement with different rights for
- * different pages.
- */
- protected function rights() {
- global $wgRightsPage, $wgRightsUrl, $wgRightsText;
-
- if ( $wgRightsPage && ( $nt = Title::newFromText( $wgRightsPage ) )
- && ( $nt->getArticleID() != 0 ) ) {
- $this->page( 'rights', $nt );
- } elseif ( $wgRightsUrl ) {
- $this->url( 'rights', $wgRightsUrl );
- } elseif ( $wgRightsText ) {
- $this->element( 'rights', $wgRightsText );
- }
- }
-
- protected function getTerms( $url ) {
- global $wgLicenseTerms;
-
- if ( $wgLicenseTerms ) {
- return $wgLicenseTerms;
- } else {
- $known = $this->getKnownLicenses();
- if ( isset( $known[$url] ) ) {
- return $known[$url];
- } else {
- return array();
- }
- }
- }
-
- protected function getKnownLicenses() {
- $ccLicenses = array( 'by', 'by-nd', 'by-nd-nc', 'by-nc',
- 'by-nc-sa', 'by-sa' );
- $ccVersions = array( '1.0', '2.0' );
- $knownLicenses = array();
-
- foreach ( $ccVersions as $version ) {
- foreach ( $ccLicenses as $license ) {
- if ( $version == '2.0' && substr( $license, 0, 2 ) != 'by' ) {
- # 2.0 dropped the non-attribs licenses
- continue;
- }
- $lurl = "http://creativecommons.org/licenses/{$license}/{$version}/";
- $knownLicenses[$lurl] = explode( '-', $license );
- $knownLicenses[$lurl][] = 're';
- $knownLicenses[$lurl][] = 'di';
- $knownLicenses[$lurl][] = 'no';
- if ( !in_array( 'nd', $knownLicenses[$lurl] ) ) {
- $knownLicenses[$lurl][] = 'de';
- }
- }
- }
-
- /* Handle the GPL and LGPL, too. */
-
- $knownLicenses['http://creativecommons.org/licenses/GPL/2.0/'] =
- array( 'de', 're', 'di', 'no', 'sa', 'sc' );
- $knownLicenses['http://creativecommons.org/licenses/LGPL/2.1/'] =
- array( 'de', 're', 'di', 'no', 'sa', 'sc' );
- $knownLicenses['http://www.gnu.org/copyleft/fdl.html'] =
- array( 'de', 're', 'di', 'no', 'sa', 'sc' );
-
- return $knownLicenses;
- }
-}
/**
* Output a standard error page
*
+ * showErrorPage( 'titlemsg', 'pagetextmsg' );
* showErrorPage( 'titlemsg', 'pagetextmsg', array( 'param1', 'param2' ) );
* showErrorPage( 'titlemsg', $messageObject );
- * showErrorPage( $titleMessageObj, $messageObject );
+ * showErrorPage( $titleMessageObject, $messageObject );
*
* @param $title Mixed: message key (string) for page title, or a Message object
* @param $msg Mixed: message key (string) for page text, or a Message object
$this->prepareErrorPage( $title );
if ( $msg instanceof Message ) {
+ if ( $params !== array() ) {
+ trigger_error( 'Argument ignored: $params. The message parameters argument is discarded when the $msg argument is a Message object instead of a string.', E_USER_NOTICE );
+ }
$this->addHTML( $msg->parseAsBlock() );
} else {
$this->addWikiMsgArray( $msg, $params );
'label-raw' => $context->msg( 'stub-threshold' )->text(), // Raw HTML message. Yay?
);
- if ( $wgAllowUserCssPrefs ) {
- $defaultPreferences['showtoc'] = array(
- 'type' => 'toggle',
- 'section' => 'rendering/advancedrendering',
- 'label-message' => 'tog-showtoc',
- );
- }
$defaultPreferences['showhiddencats'] = array(
'type' => 'toggle',
'section' => 'rendering/advancedrendering',
'label-message' => 'tog-showhiddencats'
);
- if ( $wgAllowUserCssPrefs ) {
- $defaultPreferences['justify'] = array(
- 'type' => 'toggle',
- 'section' => 'rendering/advancedrendering',
- 'label-message' => 'tog-justify',
- );
- }
-
$defaultPreferences['numberheadings'] = array(
'type' => 'toggle',
'section' => 'rendering/advancedrendering',
global $wgAllowUserCssPrefs;
## Editing #####################################
- if ( $wgAllowUserCssPrefs ) {
- $defaultPreferences['editsection'] = array(
- 'type' => 'toggle',
- 'section' => 'editing/advancedediting',
- 'label-message' => 'tog-editsection',
- );
- }
$defaultPreferences['editsectiononrightclick'] = array(
'type' => 'toggle',
'section' => 'editing/advancedediting',
# If users have saved a value for a preference which has subsequently been disabled
# via $wgHiddenPrefs, we don't want to destroy that setting in case the preference
# is subsequently re-enabled
- # TODO: maintenance script to actually delete these
foreach ( $wgHiddenPrefs as $pref ) {
# If the user has not set a non-default value here, the default will be returned
# and subsequently discarded
/**
* Somewhat deprecated, you probably want to be using execute()
* @param int|bool $offset
- * @oaram int|bool $limit
+ * @param int|bool $limit
* @return ResultWrapper
*/
function doQuery( $offset = false, $limit = false ) {
wfProfileOut( $fname . '-exception' );
wfProfileIn( $fname . '-includes' );
-require_once "$IP/includes/normal/UtfNormalUtil.php";
require_once "$IP/includes/GlobalFunctions.php";
+require_once "$IP/includes/normal/UtfNormalUtil.php";
require_once "$IP/includes/normal/UtfNormalDefines.php";
wfProfileOut( $fname . '-includes' );
);
}
+$wgDeferredUpdateList = array(); // b/c
+
wfProfileOut( $fname . '-defaults2' );
wfProfileIn( $fname . '-misc1' );
}
wfProfileOut( $fname . '-misc1' );
-wfProfileIn( $fname . '-memcached' );
-
-$wgMemc = wfGetMainCache();
-$messageMemc = wfGetMessageCacheStorage();
-$parserMemc = wfGetParserCacheStorage();
-$wgLangConvMemc = wfGetLangConverterCacheStorage();
+if ( !defined( 'MW_SETUP_NO_CACHE' ) ) {
+ wfProfileIn( $fname . '-memcached' );
-wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' .
- get_class( $messageMemc ) . '[message] ' .
- get_class( $parserMemc ) . "[parser]\n" );
+ $wgMemc = wfGetMainCache();
+ $messageMemc = wfGetMessageCacheStorage();
+ $parserMemc = wfGetParserCacheStorage();
+ $wgLangConvMemc = wfGetLangConverterCacheStorage();
-wfProfileOut( $fname . '-memcached' );
+ wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' .
+ get_class( $messageMemc ) . '[message] ' .
+ get_class( $parserMemc ) . "[parser]\n" );
-# # Most of the config is out, some might want to run hooks here.
-wfRunHooks( 'SetupAfterCache' );
+ wfProfileOut( $fname . '-memcached' );
+ # # Most of the config is out, some might want to run hooks here.
+ wfRunHooks( 'SetupAfterCache' );
+}
wfProfileIn( $fname . '-session' );
}
wfProfileOut( $fname . '-session' );
-wfProfileIn( $fname . '-globals' );
-$wgContLang = Language::factory( $wgLanguageCode );
-$wgContLang->initEncoding();
-$wgContLang->initContLang();
+if ( !defined( 'MW_SETUP_NO_CONTEXT' ) ) {
+ wfProfileIn( $fname . '-globals' );
-// Now that variant lists may be available...
-$wgRequest->interpolateTitle();
-$wgUser = RequestContext::getMain()->getUser(); # BackCompat
+ $wgContLang = Language::factory( $wgLanguageCode );
+ $wgContLang->initEncoding();
+ $wgContLang->initContLang();
-/**
- * @var $wgLang Language
- */
-$wgLang = new StubUserLang;
+ // Now that variant lists may be available...
+ $wgRequest->interpolateTitle();
+ $wgUser = RequestContext::getMain()->getUser(); # BackCompat
-/**
- * @var OutputPage
- */
-$wgOut = RequestContext::getMain()->getOutput(); # BackCompat
+ /**
+ * @var $wgLang Language
+ */
+ $wgLang = new StubUserLang;
-/**
- * @var $wgParser Parser
- */
-$wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) );
+ /**
+ * @var OutputPage
+ */
+ $wgOut = RequestContext::getMain()->getOutput(); # BackCompat
-if ( !is_object( $wgAuth ) ) {
- $wgAuth = new StubObject( 'wgAuth', 'AuthPlugin' );
- wfRunHooks( 'AuthPluginSetup', array( &$wgAuth ) );
-}
+ /**
+ * @var $wgParser Parser
+ */
+ $wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) );
-# Placeholders in case of DB error
-$wgTitle = null;
+ if ( !is_object( $wgAuth ) ) {
+ $wgAuth = new StubObject( 'wgAuth', 'AuthPlugin' );
+ wfRunHooks( 'AuthPluginSetup', array( &$wgAuth ) );
+ }
+
+ # Placeholders in case of DB error
+ $wgTitle = null;
-$wgDeferredUpdateList = array();
+ wfProfileOut( $fname . '-globals' );
+}
-wfProfileOut( $fname . '-globals' );
wfProfileIn( $fname . '-extensions' );
# Extension setup functions for extensions other than skins
: 'login';
$is_signup = $request->getText( 'type' ) == 'signup';
- $login_id = $this->showIPinHeader() ? 'anonlogin' : 'login';
$login_url = array(
'text' => $this->msg( $loginlink )->text(),
'href' => self::makeSpecialUrl( 'Userlogin', $returnto ),
$personal_urls['createaccount'] = $createaccount_url;
}
- $personal_urls[$login_id] = $login_url;
+ $personal_urls['login'] = $login_url;
}
wfRunHooks( 'PersonalUrls', array( &$personal_urls, &$title, $this ) );
+++ /dev/null
-<?php
-/**
- * Creation and parsing of MW-style timestamps.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.20
- * @author Tyler Romeo, 2012
- */
-
-/**
- * Library for creating and parsing MW-style timestamps. Based on the JS
- * library that does the same thing.
- *
- * @since 1.20
- */
-class MWTimestamp {
- /**
- * Standard gmdate() formats for the different timestamp types.
- */
- private static $formats = array(
- TS_UNIX => 'U',
- TS_MW => 'YmdHis',
- TS_DB => 'Y-m-d H:i:s',
- TS_ISO_8601 => 'Y-m-d\TH:i:s\Z',
- TS_ISO_8601_BASIC => 'Ymd\THis\Z',
- TS_EXIF => 'Y:m:d H:i:s', // This shouldn't ever be used, but is included for completeness
- TS_RFC2822 => 'D, d M Y H:i:s',
- TS_ORACLE => 'd-m-Y H:i:s.000000', // Was 'd-M-y h.i.s A' . ' +00:00' before r51500
- TS_POSTGRES => 'Y-m-d H:i:s',
- );
-
- /**
- * The actual timestamp being wrapped (DateTime object).
- * @var DateTime
- */
- public $timestamp;
-
- /**
- * Make a new timestamp and set it to the specified time,
- * or the current time if unspecified.
- *
- * @since 1.20
- *
- * @param bool|string $timestamp Timestamp to set, or false for current time
- */
- public function __construct( $timestamp = false ) {
- $this->setTimestamp( $timestamp );
- }
-
- /**
- * Set the timestamp to the specified time, or the current time if unspecified.
- *
- * Parse the given timestamp into either a DateTime object or a Unix timestamp,
- * and then store it.
- *
- * @since 1.20
- *
- * @param string|bool $ts Timestamp to store, or false for now
- * @throws TimestampException
- */
- public function setTimestamp( $ts = false ) {
- $da = array();
- $strtime = '';
-
- if ( !$ts || $ts === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0" ) { // We want to catch 0, '', null... but not date strings starting with a letter.
- $uts = time();
- $strtime = "@$uts";
- } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
- # TS_DB
- } elseif ( preg_match( '/^(\d{4}):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
- # TS_EXIF
- } elseif ( preg_match( '/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/D', $ts, $da ) ) {
- # TS_MW
- } elseif ( preg_match( '/^-?\d{1,13}$/D', $ts ) ) {
- # TS_UNIX
- $strtime = "@$ts"; // http://php.net/manual/en/datetime.formats.compound.php
- } elseif ( preg_match( '/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}.\d{6}$/', $ts ) ) {
- # TS_ORACLE // session altered to DD-MM-YYYY HH24:MI:SS.FF6
- $strtime = preg_replace( '/(\d\d)\.(\d\d)\.(\d\d)(\.(\d+))?/', "$1:$2:$3",
- str_replace( '+00:00', 'UTC', $ts ) );
- } elseif ( preg_match( '/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
- # TS_ISO_8601
- } elseif ( preg_match( '/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
- #TS_ISO_8601_BASIC
- } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d*[\+\- ](\d\d)$/', $ts, $da ) ) {
- # TS_POSTGRES
- } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d* GMT$/', $ts, $da ) ) {
- # TS_POSTGRES
- } elseif ( preg_match( '/^[ \t\r\n]*([A-Z][a-z]{2},[ \t\r\n]*)?' . # Day of week
- '\d\d?[ \t\r\n]*[A-Z][a-z]{2}[ \t\r\n]*\d{2}(?:\d{2})?' . # dd Mon yyyy
- '[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d/S', $ts ) ) { # hh:mm:ss
- # TS_RFC2822, accepting a trailing comment. See http://www.squid-cache.org/mail-archive/squid-users/200307/0122.html / r77171
- # The regex is a superset of rfc2822 for readability
- $strtime = strtok( $ts, ';' );
- } elseif ( preg_match( '/^[A-Z][a-z]{5,8}, \d\d-[A-Z][a-z]{2}-\d{2} \d\d:\d\d:\d\d/', $ts ) ) {
- # TS_RFC850
- $strtime = $ts;
- } elseif ( preg_match( '/^[A-Z][a-z]{2} [A-Z][a-z]{2} +\d{1,2} \d\d:\d\d:\d\d \d{4}/', $ts ) ) {
- # asctime
- $strtime = $ts;
- } else {
- throw new TimestampException( __METHOD__ . ": Invalid timestamp - $ts" );
- }
-
- if ( !$strtime ) {
- $da = array_map( 'intval', $da );
- $da[0] = "%04d-%02d-%02dT%02d:%02d:%02d.00+00:00";
- $strtime = call_user_func_array( "sprintf", $da );
- }
-
- try {
- $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
- } catch ( Exception $e ) {
- throw new TimestampException( __METHOD__ . ': Invalid timestamp format.', $e->getCode(), $e );
- }
-
- if ( $final === false ) {
- throw new TimestampException( __METHOD__ . ': Invalid timestamp format.' );
- }
- $this->timestamp = $final;
- }
-
- /**
- * Get the timestamp represented by this object in a certain form.
- *
- * Convert the internal timestamp to the specified format and then
- * return it.
- *
- * @since 1.20
- *
- * @param int $style Constant Output format for timestamp
- * @throws TimestampException
- * @return string The formatted timestamp
- */
- public function getTimestamp( $style = TS_UNIX ) {
- if ( !isset( self::$formats[$style] ) ) {
- throw new TimestampException( __METHOD__ . ': Illegal timestamp output type.' );
- }
-
- $output = $this->timestamp->format( self::$formats[$style] );
-
- if ( ( $style == TS_RFC2822 ) || ( $style == TS_POSTGRES ) ) {
- $output .= ' GMT';
- }
-
- return $output;
- }
-
- /**
- * Get the timestamp in a human-friendly relative format, e.g., "3 days ago".
- *
- * Determine the difference between the timestamp and the current time, and
- * generate a readable timestamp by returning "<N> <units> ago", where the
- * largest possible unit is used.
- *
- * @since 1.20
- * @since 1.22 Uses Language::getHumanTimestamp to produce the timestamp
- *
- * @param MWTimestamp|null $relativeTo The base timestamp to compare to (defaults to now)
- * @param User|null $user User the timestamp is being generated for (or null to use main context's user)
- * @param Language|null $lang Language to use to make the human timestamp (or null to use main context's language)
- * @return string Formatted timestamp
- */
- public function getHumanTimestamp( MWTimestamp $relativeTo = null, User $user = null, Language $lang = null ) {
- if ( $relativeTo === null ) {
- $relativeTo = new self();
- }
- if ( $user === null ) {
- $user = RequestContext::getMain()->getUser();
- }
- if ( $lang === null ) {
- $lang = RequestContext::getMain()->getLanguage();
- }
-
- // Adjust for the user's timezone.
- $offsetThis = $this->offsetForUser( $user );
- $offsetRel = $relativeTo->offsetForUser( $user );
-
- $ts = '';
- if ( wfRunHooks( 'GetHumanTimestamp', array( &$ts, $this, $relativeTo, $user, $lang ) ) ) {
- $ts = $lang->getHumanTimestamp( $this, $relativeTo, $user );
- }
-
- // Reset the timezone on the objects.
- $this->timestamp->sub( $offsetThis );
- $relativeTo->timestamp->sub( $offsetRel );
-
- return $ts;
- }
-
- /**
- * Adjust the timestamp depending on the given user's preferences.
- *
- * @since 1.22
- *
- * @param User $user User to take preferences from
- * @param[out] MWTimestamp $ts Timestamp to adjust
- * @return DateInterval Offset that was applied to the timestamp
- */
- public function offsetForUser( User $user ) {
- global $wgLocalTZoffset;
-
- $option = $user->getOption( 'timecorrection' );
- $data = explode( '|', $option, 3 );
-
- // First handle the case of an actual timezone being specified.
- if ( $data[0] == 'ZoneInfo' ) {
- try {
- $tz = new DateTimeZone( $data[2] );
- } catch ( Exception $e ) {
- $tz = false;
- }
-
- if ( $tz ) {
- $this->timestamp->setTimezone( $tz );
- return new DateInterval( 'P0Y' );
- } else {
- $data[0] = 'Offset';
- }
- }
-
- $diff = 0;
- // If $option is in fact a pipe-separated value, check the
- // first value.
- if ( $data[0] == 'System' ) {
- // First value is System, so use the system offset.
- if ( isset( $wgLocalTZoffset ) ) {
- $diff = $wgLocalTZoffset;
- }
- } elseif ( $data[0] == 'Offset' ) {
- // First value is Offset, so use the specified offset
- $diff = (int)$data[1];
- } else {
- // $option actually isn't a pipe separated value, but instead
- // a comma separated value. Isn't MediaWiki fun?
- $data = explode( ':', $option );
- if ( count( $data ) >= 2 ) {
- // Combination hours and minutes.
- $diff = abs( (int)$data[0] ) * 60 + (int)$data[1];
- if ( (int)$data[0] < 0 ) {
- $diff *= -1;
- }
- } else {
- // Just hours.
- $diff = (int)$data[0] * 60;
- }
- }
-
- $interval = new DateInterval( 'PT' . abs( $diff ) . 'M' );
- if ( $diff < 1 ) {
- $interval->invert = 1;
- }
-
- $this->timestamp->add( $interval );
- return $interval;
- }
-
- /**
- * Generate a purely relative timestamp, i.e., represent the time elapsed between
- * the given base timestamp and this object.
- *
- * @param MWTimestamp $relativeTo Relative base timestamp (defaults to now)
- * @param User $user Use to use offset for
- * @param Language $lang Language to use
- * @param array $chosenIntervals Intervals to use to represent it
- * @return string Relative timestamp
- */
- public function getRelativeTimestamp(
- MWTimestamp $relativeTo = null,
- User $user = null,
- Language $lang = null,
- array $chosenIntervals = array()
- ) {
- if ( $relativeTo === null ) {
- $relativeTo = new self;
- }
- if ( $user === null ) {
- $user = RequestContext::getMain()->getUser();
- }
- if ( $lang === null ) {
- $lang = RequestContext::getMain()->getLanguage();
- }
-
- $ts = '';
- $diff = $this->diff( $relativeTo );
- if ( wfRunHooks( 'GetRelativeTimestamp', array( &$ts, &$diff, $this, $relativeTo, $user, $lang ) ) ) {
- $seconds = ( ( ( $diff->days * 24 + $diff->h ) * 60 + $diff->i ) * 60 + $diff->s );
- $ts = wfMessage( 'ago', $lang->formatDuration( $seconds, $chosenIntervals ) )
- ->inLanguage( $lang )
- ->text();
- }
-
- return $ts;
- }
-
- /**
- * @since 1.20
- *
- * @return string
- */
- public function __toString() {
- return $this->getTimestamp();
- }
-
- /**
- * Calculate the difference between two MWTimestamp objects.
- *
- * @since 1.22
- * @param MWTimestamp $relativeTo Base time to calculate difference from
- * @return DateInterval|bool The DateInterval object representing the difference between the two dates or false on failure
- */
- public function diff( MWTimestamp $relativeTo ) {
- return $this->timestamp->diff( $relativeTo->timestamp );
- }
-
- /**
- * Set the timezone of this timestamp to the specified timezone.
- *
- * @since 1.22
- * @param String $timezone Timezone to set
- * @throws TimestampException
- */
- public function setTimezone( $timezone ) {
- try {
- $this->timestamp->setTimezone( new DateTimeZone( $timezone ) );
- } catch ( Exception $e ) {
- throw new TimestampException( __METHOD__ . ': Invalid timezone.', $e->getCode(), $e );
- }
- }
-
- /**
- * Get the timezone of this timestamp.
- *
- * @since 1.22
- * @return DateTimeZone The timezone
- */
- public function getTimezone() {
- return $this->timestamp->getTimezone();
- }
-
- /**
- * Format the timestamp in a given format.
- *
- * @since 1.22
- * @param string $format Pattern to format in
- * @return string The formatted timestamp
- */
- public function format( $format ) {
- return $this->timestamp->format( $format );
- }
-
- /**
- * Get a timestamp instance in the server local timezone ($wgLocaltimezone)
- *
- * @since 1.22
- * @param bool|string $ts Timestamp to set, or false for current time
- * @return MWTimestamp the local instance
- */
- public static function getLocalInstance( $ts = false ) {
- global $wgLocaltimezone;
- $timestamp = new self( $ts );
- $timestamp->setTimezone( $wgLocaltimezone );
- return $timestamp;
- }
-
- /**
- * Get a timestamp instance in GMT
- *
- * @since 1.22
- * @param bool|string $ts Timestamp to set, or false for current time
- * @return MWTimestamp the instance
- */
- public static function getInstance( $ts = false ) {
- return new self( $ts );
- }
-}
-
-/**
- * @since 1.20
- */
-class TimestampException extends MWException {}
--- /dev/null
+<?php
+
+/**
+ * @since 1.20
+ */
+class TimestampException extends MWException {}
\ No newline at end of file
var $mUserCaseDBKey; // /< DB key with the initial letter in the case specified by the user
var $mNamespace = NS_MAIN; // /< Namespace index, i.e. one of the NS_xxxx constants
var $mInterwiki = ''; // /< Interwiki prefix
- var $mFragment; // /< Title fragment (i.e. the bit after the #)
+ var $mFragment = ''; // /< Title fragment (i.e. the bit after the #)
var $mArticleID = -1; // /< Article ID, fetched from the link cache on demand
var $mLatestID = false; // /< ID of most recent revision
var $mContentModel = false; // /< ID of the page's content model, i.e. one of the CONTENT_MODEL_XXX constants
/**
* Get the interwiki prefix
*
+ * Use Title::isExternal to check if a interwiki is set
+ *
* @return String Interwiki prefix
*/
public function getInterwiki() {
/**
* Get the Title fragment (i.e.\ the bit after the #) in text form
*
+ * Use Title::hasFragment to check for a fragment
+ *
* @return String Title fragment
*/
public function getFragment() {
return $this->mFragment;
}
+ /**
+ * Check if a Title fragment is set
+ *
+ * @return bool
+ * @since 1.23
+ */
+ public function hasFragment() {
+ return $this->mFragment !== '';
+ }
+
/**
* Get the fragment in URL form, including the "#" character if there is one
* @return String Fragment in URL form
*/
public function getFragmentForURL() {
- if ( $this->mFragment == '' ) {
+ if ( !$this->hasFragment() ) {
return '';
} else {
- return '#' . Title::escapeFragmentForURL( $this->mFragment );
+ return '#' . Title::escapeFragmentForURL( $this->getFragment() );
}
}
*/
public function getFullText() {
$text = $this->getPrefixedText();
- if ( $this->mFragment != '' ) {
- $text .= '#' . $this->mFragment;
+ if ( $this->hasFragment() ) {
+ $text .= '#' . $this->getFragment();
}
return $text;
}
wfProfileIn( __METHOD__ );
if ( $this->isExternal() || $proto !== PROTO_RELATIVE ) {
$ret = $this->getFullURL( $query, $query2, $proto );
- } elseif ( $this->getPrefixedText() === '' && $this->getFragment() !== '' ) {
+ } elseif ( $this->getPrefixedText() === '' && $this->hasFragment() ) {
$ret = $this->getFragmentForURL();
} else {
$ret = $this->getLocalURL( $query, $query2 ) . $this->getFragmentForURL();
global $wgContLang, $wgLocalInterwiki;
# Initialisation
- $this->mInterwiki = $this->mFragment = '';
+ $this->mInterwiki = '';
+ $this->mFragment = '';
$this->mNamespace = $this->mDefaultNamespace; # Usually NS_MAIN
$dbkey = $this->mDbkeyform;
break;
} while ( true );
- # We already know that some pages won't be in the database!
- if ( $this->isExternal() || NS_SPECIAL == $this->mNamespace ) {
- $this->mArticleID = 0;
- }
$fragment = strstr( $dbkey, '#' );
if ( false !== $fragment ) {
$this->setFragment( $fragment );
// there are numerous ways to present the same IP. Having sp:contribs scan
// them all is silly and having some show the edits and others not is
// inconsistent. Same for talk/userpages. Keep them normalized instead.
- $dbkey = ( $this->mNamespace == NS_USER || $this->mNamespace == NS_USER_TALK )
- ? IP::sanitizeIP( $dbkey )
- : $dbkey;
+ if ( $this->mNamespace == NS_USER || $this->mNamespace == NS_USER_TALK ) {
+ $dbkey = IP::sanitizeIP( $dbkey );
+ }
// Any remaining initial :s are illegal.
if ( $dbkey !== '' && ':' == $dbkey[0] ) {
$this->mTextform = str_replace( '_', ' ', $dbkey );
+ # We already know that some pages won't be in the database!
+ if ( $this->isExternal() || $this->mNamespace == NS_SPECIAL ) {
+ $this->mArticleID = 0;
+ }
+
return true;
}
<?php
/**
- * Classes to walk into a list of Title objects.
+ * Class to walk into a list of Title objects.
*
* Note: this entire file is a byte-for-byte copy of UserArray.php with
* s/User/Title/. If anyone can figure out how to do this nicely with
return $array;
}
}
-
-class TitleArrayFromResult extends TitleArray implements Countable {
-
- /**
- * @var ResultWrapper
- */
- var $res;
- var $key, $current;
-
- function __construct( $res ) {
- $this->res = $res;
- $this->key = 0;
- $this->setCurrent( $this->res->current() );
- }
-
- /**
- * @param $row ResultWrapper
- * @return void
- */
- protected function setCurrent( $row ) {
- if ( $row === false ) {
- $this->current = false;
- } else {
- $this->current = Title::newFromRow( $row );
- }
- }
-
- /**
- * @return int
- */
- public function count() {
- return $this->res->numRows();
- }
-
- function current() {
- return $this->current;
- }
-
- function key() {
- return $this->key;
- }
-
- function next() {
- $row = $this->res->next();
- $this->setCurrent( $row );
- $this->key++;
- }
-
- function rewind() {
- $this->res->rewind();
- $this->key = 0;
- $this->setCurrent( $this->res->current() );
- }
-
- /**
- * @return bool
- */
- function valid() {
- return $this->current !== false;
- }
-}
--- /dev/null
+<?php
+/**
+ * Class to walk into a list of Title objects.
+ *
+ * Note: this entire file is a byte-for-byte copy of UserArrayFromResult.php
+ * with s/User/Title/. If anyone can figure out how to do this nicely
+ * with inheritance or something, please do so.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+class TitleArrayFromResult extends TitleArray implements Countable {
+
+ /**
+ * @var ResultWrapper
+ */
+ var $res;
+ var $key, $current;
+
+ function __construct( $res ) {
+ $this->res = $res;
+ $this->key = 0;
+ $this->setCurrent( $this->res->current() );
+ }
+
+ /**
+ * @param $row ResultWrapper
+ * @return void
+ */
+ protected function setCurrent( $row ) {
+ if ( $row === false ) {
+ $this->current = false;
+ } else {
+ $this->current = Title::newFromRow( $row );
+ }
+ }
+
+ /**
+ * @return int
+ */
+ public function count() {
+ return $this->res->numRows();
+ }
+
+ function current() {
+ return $this->current;
+ }
+
+ function key() {
+ return $this->key;
+ }
+
+ function next() {
+ $row = $this->res->next();
+ $this->setCurrent( $row );
+ $this->key++;
+ }
+
+ function rewind() {
+ $this->res->rewind();
+ $this->key = 0;
+ $this->setCurrent( $this->res->current() );
+ }
+
+ /**
+ * @return bool
+ */
+ function valid() {
+ return $this->current !== false;
+ }
+}
\ No newline at end of file
return;
}
+ $defaultOptions = self::getDefaultOptions();
+
$userId = $this->getId();
$insert_rows = array();
- foreach ( $saveOptions as $key => $value ) {
- // Don't bother storing default values
- $defaultOption = self::getDefaultOption( $key );
- if ( ( is_null( $defaultOption ) &&
- !( $value === false || is_null( $value ) ) ) ||
- $value != $defaultOption ) {
- $insert_rows[] = array(
- 'up_user' => $userId,
- 'up_property' => $key,
- 'up_value' => $value,
- );
+ $changedOptions = array_diff_assoc( $saveOptions, $defaultOptions );
+ foreach ( $changedOptions as $key => $value ) {
+ if ( $value === false || is_null( $value ) ) {
+ continue;
}
+ $insert_rows[] = array(
+ 'up_user' => $userId,
+ 'up_property' => $key,
+ 'up_value' => $value,
+ );
}
$dbw = wfGetDB( DB_MASTER );
<?php
/**
- * Classes to walk into a list of User objects.
+ * Class to walk into a list of User objects.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
protected static function newFromResult_internal( $res ) {
return new UserArrayFromResult( $res );
}
-}
-
-class UserArrayFromResult extends UserArray implements Countable {
-
- /**
- * @var ResultWrapper
- */
- var $res;
- var $key, $current;
-
- /**
- * @param $res ResultWrapper
- */
- function __construct( $res ) {
- $this->res = $res;
- $this->key = 0;
- $this->setCurrent( $this->res->current() );
- }
-
- /**
- * @param $row
- * @return void
- */
- protected function setCurrent( $row ) {
- if ( $row === false ) {
- $this->current = false;
- } else {
- $this->current = User::newFromRow( $row );
- }
- }
-
- /**
- * @return int
- */
- public function count() {
- return $this->res->numRows();
- }
-
- /**
- * @return User
- */
- function current() {
- return $this->current;
- }
-
- function key() {
- return $this->key;
- }
-
- function next() {
- $row = $this->res->next();
- $this->setCurrent( $row );
- $this->key++;
- }
-
- function rewind() {
- $this->res->rewind();
- $this->key = 0;
- $this->setCurrent( $this->res->current() );
- }
-
- /**
- * @return bool
- */
- function valid() {
- return $this->current !== false;
- }
-}
+}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Class to walk into a list of User objects.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+class UserArrayFromResult extends UserArray implements Countable {
+
+ /**
+ * @var ResultWrapper
+ */
+ var $res;
+ var $key, $current;
+
+ /**
+ * @param $res ResultWrapper
+ */
+ function __construct( $res ) {
+ $this->res = $res;
+ $this->key = 0;
+ $this->setCurrent( $this->res->current() );
+ }
+
+ /**
+ * @param $row
+ * @return void
+ */
+ protected function setCurrent( $row ) {
+ if ( $row === false ) {
+ $this->current = false;
+ } else {
+ $this->current = User::newFromRow( $row );
+ }
+ }
+
+ /**
+ * @return int
+ */
+ public function count() {
+ return $this->res->numRows();
+ }
+
+ /**
+ * @return User
+ */
+ function current() {
+ return $this->current;
+ }
+
+ function key() {
+ return $this->key;
+ }
+
+ function next() {
+ $row = $this->res->next();
+ $this->setCurrent( $row );
+ $this->key++;
+ }
+
+ function rewind() {
+ $this->res->rewind();
+ $this->key = 0;
+ $this->setCurrent( $this->res->current() );
+ }
+
+ /**
+ * @return bool
+ */
+ function valid() {
+ return $this->current !== false;
+ }
+}
return;
}
+ // some pages cannot be watched
+ if ( !$this->getTitle()->isWatchable() ) {
+ $this->watched = false;
+ return;
+ }
+
# Pages and their talk pages are considered equivalent for watching;
# remember that talk namespaces are numbered as page namespace+1.
# unless the address is not sensible (e.g. private). However, prefer private
# IP addresses over proxy servers controlled by this site (more sensible).
foreach ( $ipchain as $i => $curIP ) {
+ // ignore 'unknown' value from Squid when 'forwarded_for off' and try next
+ if ( $curIP === 'unknown' ) {
+ continue;
+ }
$curIP = IP::sanitizeIP( IP::canonicalize( $curIP ) );
if ( wfIsTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
if ( wfIsConfiguredProxy( $curIP ) || // bug 48919; treat IP as sane
return $action;
}
- /**
- * Create an Article object of the appropriate class for the given page.
- *
- * @deprecated in 1.18; use Article::newFromTitle() instead
- * @param $title Title
- * @param $context IContextSource
- * @return Article object
- */
- public static function articleFromTitle( $title, IContextSource $context ) {
- wfDeprecated( __METHOD__, '1.18' );
- return Article::newFromTitle( $title, $context );
- }
-
/**
* Performs the request.
* - bad titles
}
if ( !wfShellExecDisabled() && is_executable( $wgPhpCli ) ) {
- // Start a background process to run some of the jobs.
- // This will be asynchronous on *nix though not on Windows.
+ // Start a background process to run some of the jobs
wfProfileIn( __METHOD__ . '-exec' );
$retVal = 1;
$cmd = wfShellWikiCmd( "$IP/maintenance/runJobs.php", array( '--maxjobs', $n ) );
- wfShellExec( "$cmd &", $retVal );
+ $cmd .= " >" . wfGetNull() . " 2>&1"; // don't hang PHP on pipes
+ if ( wfIsWindows() ) {
+ // Using START makes this async and also works around a bug where using
+ // wfShellExec() with a quoted script name causes a filename syntax error.
+ $cmd = "START /B \"bg\" $cmd";
+ } else {
+ $cmd = "$cmd &";
+ }
+ wfShellExec( $cmd, $retVal );
wfProfileOut( __METHOD__ . '-exec' );
} else {
try {
return $this->mTitle->getTemplateLinksFrom();
}
- /**
- * Perform article updates on a special page creation.
- *
- * @param $rev Revision object
- *
- * @todo This is a shitty interface function. Kill it and replace the
- * other shitty functions like doEditUpdates and such so it's not needed
- * anymore.
- * @deprecated since 1.18, use doEditUpdates()
- */
- public function createUpdates( $rev ) {
- wfDeprecated( __METHOD__, '1.18' );
- global $wgUser;
- $this->doEditUpdates( $rev, $wgUser, array( 'created' => true ) );
- }
-
/**
* This function is called right before saving the wikitext,
* so we can do things like signatures and links-in-context.
* @return array
*/
protected static function pageCounts( Title $title ) {
- global $wgRCMaxAge, $wgDisableCounters;
+ global $wgRCMaxAge, $wgDisableCounters, $wgMiserMode;
wfProfileIn( __METHOD__ );
$id = $title->getArticleID();
}
// Counts for the number of transclusion links (to/from)
- $result['transclusion']['to'] = (int)$dbr->selectField(
- 'templatelinks',
- 'COUNT(tl_from)',
- array(
- 'tl_namespace' => $title->getNamespace(),
- 'tl_title' => $title->getDBkey()
- ),
- __METHOD__
- );
+ if ( $wgMiserMode ) {
+ $result['transclusion']['to'] = 0;
+ } else {
+ $result['transclusion']['to'] = (int)$dbr->selectField(
+ 'templatelinks',
+ 'COUNT(tl_from)',
+ array(
+ 'tl_namespace' => $title->getNamespace(),
+ 'tl_title' => $title->getDBkey()
+ ),
+ __METHOD__
+ );
+ }
$result['transclusion']['from'] = (int)$dbr->selectField(
'templatelinks',
);
}
+ /**
+ * Die if none of a certain set of parameters is set and not false.
+ * @param array $params of parameter names
+ */
+ public function requireAtLeastOneParameter( $params ) {
+ $required = func_get_args();
+ array_shift( $required );
+ $p = $this->getModulePrefix();
+
+ $intersection = array_intersect( array_keys( array_filter( $params,
+ array( $this, "parameterNotEmpty" ) ) ), $required );
+
+ if ( count( $intersection ) == 0 ) {
+ $this->dieUsage( "At least one of the parameters {$p}" . implode( ", {$p}", $required ) . ' is required', "{$p}missingparam" );
+ }
+ }
+
+ /**
+ * Generates the possible errors requireAtLeastOneParameter() can die with
+ *
+ * @param $params array
+ * @return array
+ */
+ public function getRequireAtLeastOneParameterErrorMessages( $params ) {
+ $p = $this->getModulePrefix();
+ $params = implode( ", {$p}", $params );
+
+ return array(
+ array( 'code' => "{$p}missingparam", 'info' => "At least one of the parameters {$p}{$params} is required" ),
+ );
+ }
+
/**
* @param $params array
* @param bool|string $load Whether load the object's state from the database:
'from' => strval( $titleStrFrom ),
'to' => $titleTo->getPrefixedText(),
);
- if ( $titleTo->getFragment() !== '' ) {
+ if ( $titleTo->hasFragment() ) {
$r['tofragment'] = $titleTo->getFragment();
}
$values[] = $r;
$sha1 = isset( $prop['sha1'] );
$meta = isset( $prop['metadata'] );
$extmetadata = isset( $prop['extmetadata'] );
+ $commonmeta = isset( $prop['commonmetadata'] );
$mime = isset( $prop['mime'] );
$mediatype = isset( $prop['mediatype'] );
$archive = isset( $prop['archivename'] );
}
$vals['metadata'] = $metadata ? self::processMetaData( $metadata, $result ) : null;
}
+ if ( $commonmeta ) {
+ $metaArray = $file->getCommonMetaArray();
+ $vals['commonmetadata'] = $metaArray ? self::processMetaData( $metaArray, $result ) : array();
+ }
if ( $extmetadata ) {
// Note, this should return an array where all the keys
' (requires url and param ' . $modulePrefix . 'urlwidth)',
'mediatype' => ' mediatype - Adds the media type of the image',
'metadata' => ' metadata - Lists Exif metadata for the version of the image',
+ 'commonmetadata' => ' commonmetadata - Lists file format generic metadata for the version of the image',
'extmetadata' => ' extmetadata - Lists formatted metadata combined ' .
'from multiple sources. Results are HTML formatted.',
'archivename' => ' archivename - Adds the file name of the archive ' .
// 'case-insensitive' option is reserved for future
$data['case'] = $GLOBALS['wgCapitalLinks'] ? 'first-letter' : 'case-sensitive';
- if ( isset( $GLOBALS['wgRightsCode'] ) ) {
- $data['rightscode'] = $GLOBALS['wgRightsCode'];
- }
- $data['rights'] = $GLOBALS['wgRightsText'];
$data['lang'] = $GLOBALS['wgLanguageCode'];
$fallbacks = array();
$this->lastdate = '';
$this->rclistOpen = false;
$this->getOutput()->addModuleStyles( 'mediawiki.special.changeslist' );
- $this->getOutput()->addModules( 'mediawiki.special.changeslist.js' );
return '<div class="mw-changeslist">';
}
$this->getOutput()->addModules( array(
'jquery.makeCollapsible',
'mediawiki.icon',
- 'mediawiki.special.changeslist.js',
) );
return '<div class="mw-changeslist">';
global $wgRCFeeds;
foreach ( $wgRCFeeds as $feed ) {
- $engine = self::getEngine( $feed['uri'] );
-
- if ( isset( $this->mExtra['actionCommentIRC'] ) ) {
- $actionComment = $this->mExtra['actionCommentIRC'];
- } else {
- $actionComment = null;
- }
-
$omitBots = isset( $feed['omit_bots'] ) ? $feed['omit_bots'] : false;
if (
continue;
}
+ $engine = self::getEngine( $feed['uri'] );
+
+ if ( isset( $this->mExtra['actionCommentIRC'] ) ) {
+ $actionComment = $this->mExtra['actionCommentIRC'];
+ } else {
+ $actionComment = null;
+ }
+
/** @var $formatter RCFeedFormatter */
$formatter = new $feed['formatter']();
$line = $formatter->getLine( $feed, $this, $actionComment );
*
* @param string $uri URI to get the engine object for
* @throws MWException
- * @return object The engine object
+ * @return RCFeedEngine The engine object
*/
- private static function getEngine( $uri ) {
+ public static function getEngine( $uri ) {
global $wgRCEngines;
$scheme = parse_url( $uri, PHP_URL_SCHEME );
--- /dev/null
+<?php
+/**
+ * Copyright 2014
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Abstract class for get settings for
+ *
+ * @since 1.23
+ */
+
+abstract class Config {
+
+ /**
+ * @param string $name configuration variable name without prefix
+ * @param string $prefix of the variable name
+ * @return mixed
+ */
+ abstract public function get( $name, $prefix = 'wg' );
+
+ /**
+ * @param string $name configuration variable name without prefix
+ * @param mixed $value to set
+ * @param string $prefix of the variable name
+ * @return Status object indicating success or failure
+ */
+ abstract public function set( $name, $value, $prefix = 'wg' );
+
+ /**
+ * @param string|null $type class name for Config object,
+ * uses $wgConfigClass if not provided
+ * @return Config
+ */
+ public static function factory( $type = null ) {
+ if ( !$type ) {
+ global $wgConfigClass;
+ $type = $wgConfigClass;
+ }
+
+ return new $type;
+ }
+}
--- /dev/null
+<?php
+/**
+ * Copyright 2014
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Accesses configuration settings from $GLOBALS
+ *
+ * @since 1.23
+ */
+class GlobalConfig extends Config {
+
+ /**
+ * @see Config::get
+ */
+ public function get( $name, $prefix = 'wg' ) {
+ return $GLOBALS[$prefix . $name];
+ }
+
+ /**
+ * @see Config::set
+ */
+ public function set( $name, $value, $prefix = 'wg' ) {
+ $GLOBALS[$prefix . $name] = $value;
+ return Status::newGood();
+ }
+}
* typically based on the namespace or some other aspect of the title, such as a special suffix
* (e.g. ".svg" for SVG content).
*
+ * @note: this calls the ContentHandlerCanBeUsedOn hook which may be used to override which
+ * content model can be used where.
+ *
* @param Title $title the page's title.
*
* @return bool true if content of this kind can be used on the given page, false otherwise.
*/
public function canBeUsedOn( Title $title ) {
- return true;
+ $ok = true;
+
+ wfRunHooks( 'ContentModelCanBeUsedOn', array( $this->getModelID(), $title, &$ok ) );
+
+ return $ok;
}
/**
}
/**
- * Get the SiteConfiguration object
+ * Get the Config object
*
* @since 1.23
- * @return SiteConfiguration
+ * @return Config
*/
public function getConfig() {
return $this->getContext()->getConfig();
}
/**
- * Get the SiteConfiguration object
+ * Get the Config object
*
- * @return SiteConfiguration
+ * @return Config
*/
public function getConfig() {
if ( !is_null( $this->config ) ) {
* Get the site configuration
*
* @since 1.23
- * @return SiteConfiguration
+ * @return Config
*/
public function getConfig();
private $skin;
/**
- * @var SiteConfiguration
+ * @var Config
*/
private $config;
/**
- * Set the SiteConfiguration object
+ * Set the Config object
*
- * @param SiteConfiguration $c
+ * @param Config $c
*/
- public function setConfig( SiteConfiguration $c ) {
+ public function setConfig( Config $c ) {
$this->config = $c;
}
/**
- * Get the SiteConfiguration object
+ * Get the Config object
*
- * @return SiteConfiguration
+ * @return Config
*/
public function getConfig() {
if ( $this->config === null ) {
- global $wgConf;
- $this->config = $wgConf;
+ $this->config = Config::factory();
}
return $this->config;
}
* so causes a DB error. This wrapper checks which tables can be locked and adjusts it accordingly.
*/
function selectSQLText( $table, $vars, $conds = '', $fname = __METHOD__, $options = array(), $join_conds = array() ) {
- $forUpdateKey = array_search( 'FOR UPDATE', $options );
- if ( $forUpdateKey !== false && $join_conds ) {
- unset( $options[$forUpdateKey] );
-
- foreach ( $join_conds as $table => $join_cond ) {
- if ( 0 === preg_match( '/^(?:LEFT|RIGHT|FULL)(?: OUTER)? JOIN$/i', $join_cond[0] ) ) {
- $options['FOR UPDATE'][] = $table;
+ if ( is_array( $options ) ) {
+ $forUpdateKey = array_search( 'FOR UPDATE', $options );
+ if ( $forUpdateKey !== false && $join_conds ) {
+ unset( $options[$forUpdateKey] );
+
+ foreach ( $join_conds as $table_cond => $join_cond ) {
+ if ( 0 === preg_match( '/^(?:LEFT|RIGHT|FULL)(?: OUTER)? JOIN$/i', $join_cond[0] ) ) {
+ $options['FOR UPDATE'][] = $table_cond;
+ }
}
}
}
*/
class LoadBalancer {
private $mServers, $mConns, $mLoads, $mGroupLoads;
+
+ /** @var bool|DatabaseBase Database connection that caused a problem */
private $mErrorConnection;
private $mReadIndex, $mAllowLagged;
* @return bool|int|string
*/
function getReaderIndex( $group = false, $wiki = false ) {
- global $wgReadOnly, $wgDBClusterTimeout, $wgDBAvgStatusPoll, $wgDBtype;
+ global $wgReadOnly, $wgDBtype;
# @todo FIXME: For now, only go through all this for mysql databases
if ( $wgDBtype != 'mysql' ) {
if ( count( $this->mServers ) == 1 ) {
# Skip the load balancing if there's only one server
return 0;
- } elseif ( $group === false and $this->mReadIndex >= 0 ) {
+ } elseif ( $group === false && $this->mReadIndex >= 0 ) {
# Shortcut if generic reader exists already
return $this->mReadIndex;
}
wfProfileIn( __METHOD__ );
- $totalElapsed = 0;
-
- # convert from seconds to microseconds
- $timeout = $wgDBClusterTimeout * 1e6;
-
# Find the relevant load array
if ( $group !== false ) {
if ( isset( $this->mGroupLoads[$group] ) ) {
$nonErrorLoads = $this->mLoads;
}
- if ( !$nonErrorLoads ) {
+ if ( !count( $nonErrorLoads ) ) {
wfProfileOut( __METHOD__ );
throw new MWException( "Empty server array given to LoadBalancer" );
}
$laggedSlaveMode = false;
+ # No server found yet
+ $i = false;
# First try quickly looking through the available servers for a server that
# meets our criteria
- do {
- $totalThreadsConnected = 0;
- $overloadedServers = 0;
- $currentLoads = $nonErrorLoads;
- while ( count( $currentLoads ) ) {
- if ( $wgReadOnly || $this->mAllowLagged || $laggedSlaveMode ) {
+ $currentLoads = $nonErrorLoads;
+ while ( count( $currentLoads ) ) {
+ if ( $wgReadOnly || $this->mAllowLagged || $laggedSlaveMode ) {
+ $i = ArrayUtils::pickRandom( $currentLoads );
+ } else {
+ $i = $this->getRandomNonLagged( $currentLoads, $wiki );
+ if ( $i === false && count( $currentLoads ) != 0 ) {
+ # All slaves lagged. Switch to read-only mode
+ wfDebugLog( 'replication', "All slaves lagged. Switch to read-only mode\n" );
+ $wgReadOnly = 'The database has been automatically locked ' .
+ 'while the slave database servers catch up to the master';
$i = ArrayUtils::pickRandom( $currentLoads );
- } else {
- $i = $this->getRandomNonLagged( $currentLoads, $wiki );
- if ( $i === false && count( $currentLoads ) != 0 ) {
- # All slaves lagged. Switch to read-only mode
- wfDebugLog( 'replication', "All slaves lagged. Switch to read-only mode\n" );
- $wgReadOnly = 'The database has been automatically locked ' .
- 'while the slave database servers catch up to the master';
- $i = ArrayUtils::pickRandom( $currentLoads );
- $laggedSlaveMode = true;
- }
+ $laggedSlaveMode = true;
}
+ }
- if ( $i === false ) {
- # pickRandom() returned false
- # This is permanent and means the configuration or the load monitor
- # wants us to return false.
- wfDebugLog( 'connect', __METHOD__ . ": pickRandom() returned false\n" );
- wfProfileOut( __METHOD__ );
-
- return false;
- }
-
- wfDebugLog( 'connect', __METHOD__ . ": Using reader #$i: {$this->mServers[$i]['host']}...\n" );
- $conn = $this->openConnection( $i, $wiki );
-
- if ( !$conn ) {
- wfDebugLog( 'connect', __METHOD__ . ": Failed connecting to $i/$wiki\n" );
- unset( $nonErrorLoads[$i] );
- unset( $currentLoads[$i] );
- continue;
- }
-
- // Perform post-connection backoff
- $threshold = isset( $this->mServers[$i]['max threads'] )
- ? $this->mServers[$i]['max threads'] : false;
- $backoff = $this->getLoadMonitor()->postConnectionBackoff( $conn, $threshold );
-
- // Decrement reference counter, we are finished with this connection.
- // It will be incremented for the caller later.
- if ( $wiki !== false ) {
- $this->reuseConnection( $conn );
- }
+ if ( $i === false ) {
+ # pickRandom() returned false
+ # This is permanent and means the configuration or the load monitor
+ # wants us to return false.
+ wfDebugLog( 'connect', __METHOD__ . ": pickRandom() returned false\n" );
+ wfProfileOut( __METHOD__ );
- if ( $backoff ) {
- # Post-connection overload, don't use this server for now
- $totalThreadsConnected += $backoff;
- $overloadedServers++;
- unset( $currentLoads[$i] );
- } else {
- # Return this server
- break 2;
- }
+ return false;
}
- # No server found yet
- $i = false;
+ wfDebugLog( 'connect', __METHOD__ .
+ ": Using reader #$i: {$this->mServers[$i]['host']}...\n" );
- # If all servers were down, quit now
- if ( !count( $nonErrorLoads ) ) {
- wfDebugLog( 'connect', "All servers down\n" );
- break;
+ $conn = $this->openConnection( $i, $wiki );
+ if ( !$conn ) {
+ wfDebugLog( 'connect', __METHOD__ . ": Failed connecting to $i/$wiki\n" );
+ unset( $nonErrorLoads[$i] );
+ unset( $currentLoads[$i] );
+ continue;
}
- # Some servers must have been overloaded
- if ( $overloadedServers == 0 ) {
- throw new MWException( __METHOD__ . ": unexpectedly found no overloaded servers" );
+ // Decrement reference counter, we are finished with this connection.
+ // It will be incremented for the caller later.
+ if ( $wiki !== false ) {
+ $this->reuseConnection( $conn );
}
- # Back off for a while
- # Scale the sleep time by the number of connected threads, to produce a
- # roughly constant global poll rate
- $avgThreads = $totalThreadsConnected / $overloadedServers;
- $totalElapsed += $this->sleep( $wgDBAvgStatusPoll * $avgThreads );
- } while ( $totalElapsed < $timeout );
-
- if ( $totalElapsed >= $timeout ) {
- wfDebugLog( 'connect', "All servers busy\n" );
- $this->mErrorConnection = false;
- $this->mLastError = 'All servers busy';
+
+ # Return this server
+ break;
+ }
+
+ # If all servers were down, quit now
+ if ( !count( $nonErrorLoads ) ) {
+ wfDebugLog( 'connect', "All servers down\n" );
}
if ( $i !== false ) {
/**
* Returns true if the specified index is a valid server index
*
- * @param $i
+ * @param string $i
* @return bool
*/
function haveIndex( $i ) {
/**
* Returns true if the specified index is valid and has non-zero load
*
- * @param $i
+ * @param string $i
* @return bool
*/
function isNonZeroLoad( $i ) {
/**
* Get the host name or IP address of the server with the specified index
* Prefer a readable name if available.
- * @param $i
+ * @param string $i
* @return string
*/
function getServerName( $i ) {
function closeAll() {
foreach ( $this->mConns as $conns2 ) {
foreach ( $conns2 as $conns3 ) {
+ /** @var DatabaseBase $conn */
foreach ( $conns3 as $conn ) {
$conn->close();
}
* Deprecated function, typo in function name
*
* @deprecated in 1.18
- * @param $conn
+ * @param DatabaseBase $conn
*/
function closeConnecton( $conn ) {
wfDeprecated( __METHOD__, '1.18' );
* Close a connection
* Using this function makes sure the LoadBalancer knows the connection is closed.
* If you use $conn->close() directly, the load balancer won't update its state.
- * @param $conn DatabaseBase
+ * @param DatabaseBase $conn
*/
function closeConnection( $conn ) {
$done = false;
function commitAll() {
foreach ( $this->mConns as $conns2 ) {
foreach ( $conns2 as $conns3 ) {
+ /** @var DatabaseBase[] $conns3 */
foreach ( $conns3 as $conn ) {
if ( $conn->trxLevel() ) {
$conn->commit( __METHOD__, 'flush' );
if ( empty( $conns2[$masterIndex] ) ) {
continue;
}
+ /** @var DatabaseBase $conn */
foreach ( $conns2[$masterIndex] as $conn ) {
if ( $conn->trxLevel() && $conn->writesOrCallbacksPending() ) {
$conn->commit( __METHOD__, 'flush' );
$success = true;
foreach ( $this->mConns as $conns2 ) {
foreach ( $conns2 as $conns3 ) {
+ /** @var DatabaseBase[] $conns3 */
foreach ( $conns3 as $conn ) {
if ( !$conn->ping() ) {
$success = false;
*/
function scaleLoads( &$loads, $group = false, $wiki = false );
- /**
- * Perform post-connection backoff.
- *
- * If the connection is in overload, this should return a backoff factor
- * which will be used to control polling time. The number of threads
- * connected is a good measure.
- *
- * If there is no overload, zero can be returned.
- *
- * A threshold thread count is given, the concrete class may compare this
- * to the running thread count. The threshold may be false, which indicates
- * that the sysadmin has not configured this feature.
- *
- * @param DatabaseBase $conn
- * @param float $threshold
- */
- function postConnectionBackoff( $conn, $threshold );
-
/**
* Return an estimate of replication lag for each server
*
function scaleLoads( &$loads, $group = false, $wiki = false ) {
}
- function postConnectionBackoff( $conn, $threshold ) {
- }
-
/**
* @param array $serverIndexes
* @param string $wiki
return $times;
}
-
- /**
- * @param DatabaseBase|DatabaseMySQLBase $conn
- * @param int $threshold
- * @return int
- */
- function postConnectionBackoff( $conn, $threshold ) {
- if ( !$threshold ) {
- return 0;
- }
- $status = $conn->getMysqlStatus( "Thread%" );
- if ( $status['Threads_running'] > $threshold ) {
- $server = $conn->getProperty( 'mServer' );
- wfLogDBError( "LB backoff from $server - Threads_running = {$status['Threads_running']}\n" );
-
- return $status['Threads_connected'];
- } else {
- return 0;
- }
- }
}
$rdel = $this->revisionDeleteLink( $this->mNewRev );
# Allow extensions to define their own revision tools
- wfRunHooks( 'DiffRevisionTools', array( $this->mNewRev, &$revisionTools ) );
+ wfRunHooks( 'DiffRevisionTools', array( $this->mNewRev, &$revisionTools, $this->mOldRev ) );
$formattedRevisionTools = array();
// Put each one in parentheses (poor man's button)
foreach ( $revisionTools as $tool ) {
$auth = $this->getAuthentication();
if ( !$auth ) {
$objHdrs['x-object-meta-sha1base36'] = false;
- return false; // failed
+ return $objHdrs; // failed
}
$status = Status::newGood();
'headers' => $this->authTokenHeaders( $auth ) + $objHdrs
) );
if ( $rcode >= 200 && $rcode <= 299 ) {
- return true; // success
+ return $objHdrs; // success
}
}
}
trigger_error( "Unable to set SHA-1 metadata for $path", E_USER_WARNING );
$objHdrs['x-object-meta-sha1base36'] = false;
- return false; // failed
+ return $objHdrs; // failed
}
protected function doGetFileContentsMulti( array $params ) {
* Log an unexpected exception for this backend.
* This also sets the Status object to have a fatal error.
*
- * @param Status $code null
+ * @param Status|null $status
* @param string $func
* @param array $params
* @param string $err Error string
- * @param integer $status HTTP status
+ * @param integer $code HTTP status
* @param string $desc HTTP status description
*/
public function onError( $status, $func, array $params, $err = '', $code = 0, $desc = '' ) {
*/
protected $abbrvThreshold;
+ /** @var string The URL of the repo's favicon, if any */
+ protected $favicon;
+
/**
* Factory functions for creating new files
* Override these in the base class
$optionalSettings = array(
'descBaseUrl', 'scriptDirUrl', 'articleUrl', 'fetchDescription',
'thumbScriptUrl', 'pathDisclosureProtection', 'descriptionCacheExpiry',
- 'scriptExtension'
+ 'scriptExtension', 'favicon'
);
foreach ( $optionalSettings as $var ) {
if ( isset( $info[$var] ) ) {
$optionalSettings = array(
'url', 'thumbUrl', 'initialCapital', 'descBaseUrl', 'scriptDirUrl', 'articleUrl',
- 'fetchDescription', 'descriptionCacheExpiry', 'scriptExtension'
+ 'fetchDescription', 'descriptionCacheExpiry', 'scriptExtension', 'favicon'
);
foreach ( $optionalSettings as $k ) {
if ( isset( $this->$k ) ) {
protected function assertWritableRepo() {
throw new MWException( get_class( $this ) . ': write operations are not supported.' );
}
+
+ /**
+ * Return information about the repository.
+ *
+ * @return array
+ * @since 1.22
+ */
+ function getInfo() {
+ return FileRepo::getInfo();
+ }
}
$wgMemc->set( $memcKey, ' PURGED', 12 );
}
}
+
+ /**
+ * Return information about the repository.
+ *
+ * @return array
+ * @since 1.22
+ */
+ function getInfo() {
+ global $wgFavicon;
+ return array_merge( parent::getInfo(), array(
+ 'favicon' => wfExpandUrl( $wgFavicon ),
+ ) );
+ }
}
$attr = array(
'class' => 'mw-htmlform-submit ' . $this->mClass,
'id' => $this->mID,
- );
-
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attr['disabled'] = 'disabled';
- }
+ ) + $this->getAttributes( array( 'disabled', 'tabindex' ) );
return Html::input( $this->mName, $value, $this->buttonType, $attr );
}
$attr = $this->getTooltipAndAccessKey();
$attr['id'] = $this->mID;
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attr['disabled'] = 'disabled';
- }
+ $attr += $this->getAttributes( array( 'disabled', 'tabindex' ) );
if ( $this->mClass !== '' ) {
$attr['class'] = $this->mClass;
function getInputHTML( $value ) {
$html = '';
$tableContents = '';
- $attribs = array();
$rows = $this->mParams['rows'];
$columns = $this->mParams['columns'];
- // If the disabled param is set, disable all the options
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
+ $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
// Build the column headers
$headerContents = Html::rawElement( 'td', array(), ' ' );
if ( $this->isVForm() ) {
// mw-ui-block is necessary because the buttons aren't necessarily in an
// immediate child div of the vform.
- array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-big', 'mw-ui-primary', 'mw-ui-block' );
+ // TODO Let client specify if the primary submit button is progressive or destructive
+ array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-big', 'mw-ui-constructive', 'mw-ui-block' );
}
$html .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
return Linker::tooltipAndAccesskeyAttribs( $this->mParams['tooltip'] );
}
+ /**
+ * Returns the given attributes from the parameters
+ *
+ * @param array $list List of attributes to get
+ * @return array Attributes
+ */
+ public function getAttributes( array $list ) {
+ static $boolAttribs = array( 'disabled', 'required', 'autofocus', 'multiple', 'readonly' );
+
+ $ret = array();
+
+ foreach( $list as $key ) {
+ if ( in_array( $key, $boolAttribs ) ) {
+ if ( !empty( $this->mParams[$key] ) ) {
+ $ret[$key] = '';
+ }
+ } elseif ( isset( $this->mParams[$key] ) ) {
+ $ret[$key] = $this->mParams[$key];
+ }
+ }
+
+ return $ret;
+ }
+
/**
* flatten an array of options to a single array, for instance,
* a set of "<options>" inside "<optgroups>".
function formatOptions( $options, $value ) {
$html = '';
- $attribs = array();
-
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
+ $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
foreach ( $options as $label => $info ) {
if ( is_array( $info ) ) {
function formatOptions( $options, $value ) {
$html = '';
- $attribs = array();
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
+ $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
# @todo Should this produce an unordered list perhaps?
foreach ( $options as $label => $info ) {
$textAttribs['class'] = $this->mClass;
}
- foreach ( array( 'required', 'autofocus', 'multiple', 'disabled' ) as $param ) {
- if ( isset( $this->mParams[$param] ) ) {
- $textAttribs[$param] = '';
- }
- }
+ $allowedParams = array(
+ 'required',
+ 'autofocus',
+ 'multiple',
+ 'disabled',
+ 'tabindex'
+ );
+
+ $textAttribs += $this->getAttributes( $allowedParams );
$textbox = Html::input( $this->mName . '-other', $value[2], 'text', $textAttribs );
$select->setAttribute( 'disabled', 'disabled' );
}
+ if ( isset( $this->mParams['tabindex'] ) ) {
+ $select->setAttribute( 'tabindex', $this->mParams['tabindex'] );
+ }
+
if ( $this->mClass !== '' ) {
$select->setAttribute( 'class', $this->mClass );
}
$tbAttribs['disabled'] = 'disabled';
}
+ if ( isset( $this->mParams['tabindex'] ) ) {
+ $select->setAttribute( 'tabindex', $this->mParams['tabindex'] );
+ $tbAttribs['tabindex'] = $this->mParams['tabindex'];
+ }
+
$select = $select->getHTML();
if ( isset( $this->mParams['maxlength'] ) ) {
$attribs['class'] = $this->mClass;
}
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
-
- if ( !empty( $this->mParams['readonly'] ) ) {
- $attribs['readonly'] = 'readonly';
- }
-
- if ( isset( $this->mParams['placeholder'] ) ) {
- $attribs['placeholder'] = $this->mParams['placeholder'];
- }
-
- foreach ( array( 'required', 'autofocus' ) as $param ) {
- if ( isset( $this->mParams[$param] ) ) {
- $attribs[$param] = '';
- }
- }
+ $allowedParams = array(
+ 'placeholder',
+ 'tabindex',
+ 'disabled',
+ 'readonly',
+ 'required',
+ 'autofocus'
+ );
+
+ $attribs += $this->getAttributes( $allowedParams );
return Html::element( 'textarea', $attribs, $value );
}
$attribs['class'] = $this->mClass;
}
- if ( !empty( $this->mParams['disabled'] ) ) {
- $attribs['disabled'] = 'disabled';
- }
-
# @todo Enforce pattern, step, required, readonly on the server side as
# well
$allowedParams = array(
'step',
'placeholder',
'list',
- 'maxlength'
+ 'maxlength',
+ 'tabindex',
+ 'disabled',
+ 'required',
+ 'autofocus',
+ 'multiple',
+ 'readonly'
);
- foreach ( $allowedParams as $param ) {
- if ( isset( $this->mParams[$param] ) ) {
- $attribs[$param] = $this->mParams[$param];
- }
- }
- foreach ( array( 'required', 'autofocus', 'multiple', 'readonly' ) as $param ) {
- if ( isset( $this->mParams[$param] ) ) {
- $attribs[$param] = '';
- }
- }
+ $attribs += $this->getAttributes( $allowedParams );
# Implement tiny differences between some field variants
# here, rather than creating a new class for each one which
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-This program is distributed in the hope that it will be useful, but '''without any warranty'''; without even the implied warranty of '''merchantability''' or '''fitness for a particular purpose'''.
+This program is distributed in the hope that it will be useful, but <strong>without any warranty</strong>; without even the implied warranty of <strong>merchantability</strong> or <strong>fitness for a particular purpose</strong>.
See the GNU General Public License for more details.
You should have received <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, or [http://www.gnu.org/copyleft/gpl.html read it online].",
However, MediaWiki requires PHP $2 or higher.',
'config-unicode-using-utf8' => 'Using Brion Vibber\'s utf8_normalize.so for Unicode normalization.',
'config-unicode-using-intl' => 'Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalization.',
- 'config-unicode-pure-php-warning' => "'''Warning:''' The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.
+ 'config-unicode-pure-php-warning' => "<strong>Warning:</strong> The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.
If you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
- 'config-unicode-update-warning' => "'''Warning:''' The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.
+ 'config-unicode-update-warning' => "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.
You should [//www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
'config-no-db' => 'Could not find a suitable database driver! You need to install a database driver for PHP.
The following database types are supported: $1.
If you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.
If you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.',
- 'config-outdated-sqlite' => "'''Warning:''' you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
- 'config-no-fts3' => "'''Warning:''' SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
- 'config-register-globals' => "'''Warning: PHP's <code>[http://php.net/register_globals register_globals]</code> option is enabled.'''
-'''Disable it if you can.'''
+ 'config-outdated-sqlite' => "<strong>Warning:</strong> you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
+ 'config-no-fts3' => "<strong>Warning:</strong> SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
+ 'config-register-globals' => "<strong>Warning: PHP's <code>[http://php.net/register_globals register_globals]</code> option is enabled.
+Disable it if you can.</strong>
MediaWiki will work, but your server is exposed to potential security vulnerabilities.",
- 'config-magic-quotes-runtime' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is active!'''
+ 'config-magic-quotes-runtime' => "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is active!'</strong>
This option corrupts data input unpredictably.
You cannot install or use MediaWiki unless this option is disabled.",
- 'config-magic-quotes-sybase' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] is active!'''
+ 'config-magic-quotes-sybase' => "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] is active!</strong>
This option corrupts data input unpredictably.
You cannot install or use MediaWiki unless this option is disabled.",
- 'config-mbstring' => "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is active!'''
+ 'config-mbstring' => "<strong>Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is active!</strong>
This option causes errors and may corrupt data unpredictably.
You cannot install or use MediaWiki unless this option is disabled.",
- 'config-ze1' => "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] is active!'''
-This option causes horrible bugs with MediaWiki.
-You cannot install or use MediaWiki unless this option is disabled.",
- 'config-safe-mode' => "'''Warning:''' PHP's [http://www.php.net/features.safe-mode safe mode] is active.
+ 'config-safe-mode' => "<strong>Warning:</strong> PHP's [http://www.php.net/features.safe-mode safe mode] is active.
It may cause problems, particularly if using file uploads and <code>math</code> support.",
'config-xml-bad' => "PHP's XML module is missing.
MediaWiki requires functions in this module and will not work in this configuration.
If you're running Mandrake, install the php-xml package.",
- 'config-pcre' => 'The PCRE support module appears to be missing.
-MediaWiki requires the Perl-compatible regular expression functions to work.',
- 'config-pcre-no-utf8' => "'''Fatal:''' PHP's PCRE module seems to be compiled without PCRE_UTF8 support.
+ 'config-pcre-old' => "<strong>Fatal:</strong> PCRE $1 or later is required.
+Your PHP binary is linked with PCRE $2.
+[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
+ 'config-pcre-no-utf8' => "<strong>Fatal:</strong> PHP's PCRE module seems to be compiled without PCRE_UTF8 support.
MediaWiki requires UTF-8 support to function correctly.",
'config-memory-raised' => "PHP's <code>memory_limit</code> is $1, raised to $2.",
- 'config-memory-bad' => "'''Warning:''' PHP's <code>memory_limit</code> is $1.
+ 'config-memory-bad' => "<strong>Warning:</strong> PHP's <code>memory_limit</code> is $1.
This is probably too low.
The installation may fail!",
- 'config-ctype' => "'''Fatal:''' PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
- 'config-json' => "'''Fatal:''' PHP was compiled without JSON support.
+ 'config-ctype' => "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
+ 'config-json' => "<strong>Fatal:</strong> PHP was compiled without JSON support.
You must install either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension before installing MediaWiki.
* The PHP extension is included in Red Hat Enterprise Linux (CentOS) 5 and 6, though must be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.
* Some Linux distributions released after May 2013 omit the PHP extension, instead packaging the PECL extension as <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
'config-xcache' => '[http://xcache.lighttpd.net/ XCache] is installed',
'config-apc' => '[http://www.php.net/apc APC] is installed',
'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] is installed',
- 'config-no-cache' => "'''Warning:''' Could not find [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].
+ 'config-no-cache' => "<strong>Warning:</strong> Could not find [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].
Object caching is not enabled.",
- 'config-mod-security' => "'''Warning:''' Your web server has [http://modsecurity.org/ mod_security] enabled. If misconfigured, it can cause problems for MediaWiki or other software that allows users to post arbitrary content.
+ 'config-mod-security' => "<strong>Warning:</strong> Your web server has [http://modsecurity.org/ mod_security] enabled. If misconfigured, it can cause problems for MediaWiki or other software that allows users to post arbitrary content.
Refer to [http://modsecurity.org/documentation/ mod_security documentation] or contact your host's support if you encounter random errors.",
'config-diff3-bad' => 'GNU diff3 not found.',
'config-git' => 'Found the Git version control software: <code>$1</code>.',
Image thumbnailing will be enabled if you enable uploads.',
'config-no-scaling' => 'Could not find GD library or ImageMagick.
Image thumbnailing will be disabled.',
- 'config-no-uri' => "'''Error:''' Could not determine the current URI.
+ 'config-no-uri' => "<strong>Error:</strong> Could not determine the current URI.
Installation aborted.",
- 'config-no-cli-uri' => "'''Warning:''' No --scriptpath specified, using default: <code>$1</code>.",
+ 'config-no-cli-uri' => "<strong>Warning:</strong> No --scriptpath specified, using default: <code>$1</code>.",
'config-using-server' => 'Using server name "<nowiki>$1</nowiki>".',
'config-using-uri' => 'Using server URL "<nowiki>$1$2</nowiki>".',
- 'config-uploads-not-safe' => "'''Warning:''' Your default directory for uploads <code>$1</code> is vulnerable to arbitrary scripts execution.
+ 'config-uploads-not-safe' => "<strong>Warning:</strong> Your default directory for uploads <code>$1</code> is vulnerable to arbitrary scripts execution.
Although MediaWiki checks all uploaded files for security threats, it is highly recommended to [//www.mediawiki.org/wiki/Manual:Security#Upload_security close this security vulnerability] before enabling uploads.",
- 'config-no-cli-uploads-check' => "'''Warning:''' Your default directory for uploads (<code>$1</code>) is not checked for vulnerability
+ 'config-no-cli-uploads-check' => "<strong>Warning:</strong> Your default directory for uploads (<code>$1</code>) is not checked for vulnerability
to arbitrary script execution during the CLI install.",
- 'config-brokenlibxml' => 'Your system has a combination of PHP and libxml2 versions which is buggy and can cause hidden data corruption in MediaWiki and other web applications.
-Upgrade to PHP 5.2.9 or later and libxml2 2.7.3 or later ([//bugs.php.net/bug.php?id=45996 bug filed with PHP]).
-Installation aborted.',
- 'config-using531' => 'MediaWiki cannot be used with PHP $1 due to a bug involving reference parameters to <code>__call()</code>.
-Upgrade to PHP 5.3.2 or higher, or downgrade to PHP 5.3.0 to resolve this.
+ 'config-brokenlibxml' => 'Your system has a combination of PHP and libxml2 versions that is buggy and can cause hidden data corruption in MediaWiki and other web applications.
+Upgrade to libxml2 2.7.3 or later ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).
Installation aborted.',
'config-suhosin-max-value-length' => "Suhosin is installed and limits the GET parameter <code>length</code> to $1 bytes.
MediaWiki's ResourceLoader component will work around this limit, but that will degrade performance.
'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
'config-charset-mysql4' => 'MySQL 4.0 backwards-compatible UTF-8',
- 'config-charset-help' => "'''Warning:''' If you use '''backwards-compatible UTF-8''' on MySQL 4.1+, and subsequently back up the database with <code>mysqldump</code>, it may destroy all non-ASCII characters, irreversibly corrupting your backups!
+ 'config-charset-help' => "<strong>Warning:</strong> If you use <strong>backwards-compatible UTF-8</strong> on MySQL 4.1+, and subsequently back up the database with <code>mysqldump</code>, it may destroy all non-ASCII characters, irreversibly corrupting your backups!
-In '''binary mode''', MediaWiki stores UTF-8 text to the database in binary fields.
+In <strong>binary mode</strong>, MediaWiki stores UTF-8 text to the database in binary fields.
This is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters.
-In '''UTF-8 mode''', MySQL will know what character set your data is in, and can present and convert it appropriately,
+In <strong>UTF-8 mode</strong>, MySQL will know what character set your data is in, and can present and convert it appropriately,
but it will not let you store characters above the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
'config-mysql-old' => 'MySQL $1 or later is required. You have $2.',
'config-db-port' => 'Database port:',
'config-db-schema' => 'Schema for MediaWiki:',
'config-db-schema-help' => 'This schema will usually be fine.
Only change it if you know you need to.',
- 'config-pg-test-error' => "Cannot connect to database '''$1''': $2",
+ 'config-pg-test-error' => "Cannot connect to database <strong>$1</strong>: $2",
'config-sqlite-dir' => 'SQLite data directory:',
'config-sqlite-dir-help' => "SQLite stores all data in a single file.
The directory you provide must be writable by the webserver during installation.
-It should '''not''' be accessible via the web, this is why we're not putting it where your PHP files are.
+It should <strong>not</strong> be accessible via the web, this is why we're not putting it where your PHP files are.
The installer will write a <code>.htaccess</code> file along with it, but if that fails someone can gain access to your raw database.
That includes raw user data (email addresses, hashed passwords) as well as deleted revisions and other restricted data on the wiki.
'config-sqlite-cant-create-db' => 'Could not create database file <code>$1</code>.',
'config-sqlite-fts3-downgrade' => 'PHP is missing FTS3 support, downgrading tables',
'config-can-upgrade' => "There are MediaWiki tables in this database.
-To upgrade them to MediaWiki $1, click '''Continue'''.",
+To upgrade them to MediaWiki $1, click <strong>Continue</strong>.",
'config-upgrade-done' => "Upgrade complete.
You can now [$1 start using your wiki].
If you want to regenerate your <code>LocalSettings.php</code> file, click the button below.
-This is '''not recommended''' unless you are having problems with your wiki.",
+This is <strong>not recommended</strong> unless you are having problems with your wiki.",
'config-upgrade-done-no-regenerate' => "Upgrade complete.
You can now [$1 start using your wiki].",
'config-regenerate' => 'Regenerate LocalSettings.php →',
'config-show-table-status' => '<code>SHOW TABLE STATUS</code> query failed!',
- 'config-unknown-collation' => "'''Warning:''' Database is using unrecognized collation.",
+ 'config-unknown-collation' => "<strong>Warning:</strong> Database is using unrecognized collation.",
'config-db-web-account' => 'Database account for web access',
'config-db-web-help' => 'Select the username and password that the web server will use to connect to the database server, during ordinary operation of the wiki.',
'config-db-web-account-same' => 'Use the same account as for installation',
'config-mysql-engine' => 'Storage engine:',
'config-mysql-innodb' => 'InnoDB',
'config-mysql-myisam' => 'MyISAM',
- 'config-mysql-myisam-dep' => "'''Warning:''' You have selected MyISAM as storage engine for MySQL, which is not recommended for use with MediaWiki, because:
+ 'config-mysql-myisam-dep' => "<strong>Warning:</strong> You have selected MyISAM as storage engine for MySQL, which is not recommended for use with MediaWiki, because:
* it barely supports concurrency due to table locking
* it is more prone to corruption than other engines
* the MediaWiki codebase does not always handle MyISAM as it should
If your MySQL installation supports InnoDB, it is highly recommended that you choose that instead.
If your MySQL installation does not support InnoDB, maybe it's time for an upgrade.",
- 'config-mysql-only-myisam-dep' => "'''Warning:''' MyISAM is the only available storage engine for MySQL on this machine, and this is not recommended for use with MediaWiki, because:
+ 'config-mysql-only-myisam-dep' => "<strong>Warning:</strong> MyISAM is the only available storage engine for MySQL on this machine, and this is not recommended for use with MediaWiki, because:
* it barely supports concurrency due to table locking
* it is more prone to corruption than other engines
* the MediaWiki codebase does not always handle MyISAM as it should
Your MySQL installation does not support InnoDB, maybe it's time for an upgrade.",
- 'config-mysql-engine-help' => "'''InnoDB''' is almost always the best option, since it has good concurrency support.
+ 'config-mysql-engine-help' => "<strong>InnoDB</strong> is almost always the best option, since it has good concurrency support.
-'''MyISAM''' may be faster in single-user or read-only installations.
+<strong>MyISAM</strong> may be faster in single-user or read-only installations.
MyISAM databases tend to get corrupted more often than InnoDB databases.",
'config-mysql-charset' => 'Database character set:',
'config-mysql-binary' => 'Binary',
'config-mysql-utf8' => 'UTF-8',
- 'config-mysql-charset-help' => "In '''binary mode''', MediaWiki stores UTF-8 text to the database in binary fields.
+ 'config-mysql-charset-help' => "In <strong>binary mode</strong>, MediaWiki stores UTF-8 text to the database in binary fields.
This is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters.
-In '''UTF-8 mode''', MySQL will know what character set your data is in, and can present and convert it appropriately, but it will not let you store characters above the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+In <strong>UTF-8 mode</strong>, MySQL will know what character set your data is in, and can present and convert it appropriately, but it will not let you store characters above the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
'config-site-name' => 'Name of wiki:',
'config-site-name-help' => "This will appear in the title bar of the browser and in various other places.",
However, many have found MediaWiki to be useful in a wide variety of roles, and sometimes it is not easy to convince everyone of the benefits of the wiki way.
So you have the choice.
-The '''{{int:config-profile-wiki}}''' model allows anyone to edit, without even logging in.
-A wiki with '''{{int:config-profile-no-anon}}''' provides extra accountability, but may deter casual contributors.
+The <strong>{{int:config-profile-wiki}}</strong> model allows anyone to edit, without even logging in.
+A wiki with <strong>{{int:config-profile-no-anon}}</strong> provides extra accountability, but may deter casual contributors.
-The '''{{int:config-profile-fishbowl}}''' scenario allows approved users to edit, but the public can view the pages, including history.
-A '''{{int:config-profile-private}}''' only allows approved users to view pages, with the same group allowed to edit.
+The <strong>{{int:config-profile-fishbowl}}</strong> scenario allows approved users to edit, but the public can view the pages, including history.
+A <strong>{{int:config-profile-private}}</strong> only allows approved users to view pages, with the same group allowed to edit.
More complex user rights configurations are available after installation, see the [//www.mediawiki.org/wiki/Manual:User_rights relevant manual entry].",
'config-license' => 'Copyright and license:',
This helps to create a sense of community ownership and encourages long-term contribution.
It is not generally necessary for a private or corporate wiki.
-If you want to be able to use text from Wikipedia, and you want Wikipedia to be able to accept text copied from your wiki, you should choose '''Creative Commons Attribution Share Alike'''.
+If you want to be able to use text from Wikipedia, and you want Wikipedia to be able to accept text copied from your wiki, you should choose <strong>Creative Commons Attribution Share Alike</strong>.
Wikipedia previously used the GNU Free Documentation License.
The GFDL is a valid license, but it is difficult to understand.
'config-email-auth' => 'Enable email authentication',
'config-email-auth-help' => "If this option is enabled, users have to confirm their email address using a link sent to them whenever they set or change it.
Only authenticated email addresses can receive emails from other users or change notification emails.
-Setting this option is '''recommended''' for public wikis because of potential abuse of the email features.",
+Setting this option is <strong>recommended</strong> for public wikis because of potential abuse of the email features.",
'config-email-sender' => 'Return email address:',
'config-email-sender-help' => 'Enter the email address to use as the return address on outbound email.
This is where bounces will be sent.
'config-extensions-help' => 'The extensions listed above were detected in your <code>./extensions</code> directory.
They may require additional configuration, but you can enable them now.',
- 'config-install-alreadydone' => "'''Warning:''' You seem to have already installed MediaWiki and are trying to install it again.
+ 'config-install-alreadydone' => "<strong>Warning:</strong> You seem to have already installed MediaWiki and are trying to install it again.
Please proceed to the next page.",
'config-install-begin' => 'By pressing "{{int:config-continue}}", you will begin the installation of MediaWiki.
If you still want to make changes, press "{{int:config-back}}".',
'config-install-user-missing-create' => 'The specified user "$1" does not exist.
Please click the "create account" checkbox below if you want to create it.',
'config-install-tables' => 'Creating tables',
- 'config-install-tables-exist' => "'''Warning:''' MediaWiki tables seem to already exist.
+ 'config-install-tables-exist' => "<strong>Warning:</strong> MediaWiki tables seem to already exist.
Skipping creation.",
- 'config-install-tables-failed' => "'''Error:''' Table creation failed with the following error: $1",
+ 'config-install-tables-failed' => "<strong>Error:</strong> Table creation failed with the following error: $1",
'config-install-interwiki' => 'Populating default interwiki table',
'config-install-interwiki-list' => 'Could not read file <code>interwiki.list</code>.',
- 'config-install-interwiki-exists' => "'''Warning:''' The interwiki table seems to already have entries.
+ 'config-install-interwiki-exists' => "<strong>Warning:</strong> The interwiki table seems to already have entries.
Skipping default list.",
'config-install-stats' => 'Initializing statistics',
'config-install-keys' => 'Generating secret keys',
- 'config-insecure-keys' => "'''Warning:''' {{PLURAL:$2|A secure key|Secure keys}} ($1) generated during installation {{PLURAL:$2|is|are}} not completely safe. Consider changing {{PLURAL:$2|it|them}} manually.",
+ 'config-insecure-keys' => "<strong>Warning:</strong> {{PLURAL:$2|A secure key|Secure keys}} ($1) generated during installation {{PLURAL:$2|is|are}} not completely safe. Consider changing {{PLURAL:$2|it|them}} manually.",
'config-install-sysop' => 'Creating administrator user account',
'config-install-subscribe-fail' => 'Unable to subscribe to mediawiki-announce: $1',
'config-install-subscribe-notpossible' => 'cURL is not installed and allow_url_fopen is not available.',
'config-install-mainpage' => 'Creating main page with default content',
'config-install-extension-tables' => 'Creating tables for enabled extensions',
'config-install-mainpage-failed' => 'Could not insert main page: $1',
- 'config-install-done' => "'''Congratulations!'''
+ 'config-install-done' => "<strong>Congratulations!</strong>
You have successfully installed MediaWiki.
The installer has generated a <code>LocalSettings.php</code> file.
$3
-'''Note:''' If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.
+<strong>Note:</strong> If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.
-When that has been done, you can '''[$2 enter your wiki]'''.",
+When that has been done, you can <strong>[$2 enter your wiki]</strong>.",
'config-download-localsettings' => 'Download <code>LocalSettings.php</code>',
'config-help' => 'help',
'config-nofile' => 'File "$1" could not be found. Has it been deleted?',
'config-extension-link' => 'Did you know that your wiki supports [//www.mediawiki.org/wiki/Manual:Extensions extensions]?
You can browse [//www.mediawiki.org/wiki/Category:Extensions_by_category extensions by category] or the [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.',
- 'mainpagetext' => "'''MediaWiki has been successfully installed.'''",
+ 'mainpagetext' => "<strong>MediaWiki has been successfully installed.</strong>",
'mainpagedocfooter' => "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
'config-mbstring' => '{{Related|Config-fatal}}',
'config-ze1' => '{{Related|Config-fatal}}',
'config-pcre' => 'PCRE is an initialism for "Perl-compatible regular expression". Perl is programming language whose [[:w:regular expression|regular expression]] syntax is popular and used in other languages using a library called PCRE.',
+ 'config-pcre-old' => 'Parameters:
+* $1 - minimum PCRE version number
+* $2 - the installed version of [[wikipedia:PCRE|PCRE]]
+{{Related|Config-fatal}}',
'config-pcre-no-utf8' => "PCRE is a name of a programmers' library for supporting regular expressions. It can probably be translated without change.
{{Related|Config-fatal}}",
'config-memory-raised' => 'Parameters:
// This is the absolute minimum PHP version we can support
const MINIMUM_PHP_VERSION = '5.3.2';
+ /**
+ * The oldest version of PCRE we can support.
+ *
+ * Defining this is necessary because PHP may be linked with a system version
+ * of PCRE, which may be older than that bundled with the minimum PHP version.
+ */
+ const MINIMUM_PCRE_VERSION = '7.2';
+
/**
* @var array
*/
'envCheckDB',
'envCheckRegisterGlobals',
'envCheckBrokenXML',
- 'envCheckPHP531',
'envCheckMagicQuotes',
'envCheckMagicSybase',
'envCheckMbstring',
- 'envCheckZE1',
'envCheckSafeMode',
'envCheckXML',
'envCheckPCRE',
$good = false;
}
+ // Must go here because an old version of PCRE can prevent other checks from completing
+ if ( $good ) {
+ list( $pcreVersion ) = explode( ' ', PCRE_VERSION, 2 );
+ if ( version_compare( $pcreVersion, self::MINIMUM_PCRE_VERSION, '<' ) ) {
+ $this->showError( 'config-pcre-old', self::MINIMUM_PCRE_VERSION, $pcreVersion );
+ $good = false;
+ }
+ }
+
if ( $good ) {
foreach ( $this->envChecks as $check ) {
$status = $this->$check();
return true;
}
- /**
- * Test PHP (probably 5.3.1, but it could regress again) to make sure that
- * reference parameters to __call() are not converted to null
- * @return bool
- */
- protected function envCheckPHP531() {
- $test = new PhpRefCallBugTester;
- $test->execute();
- if ( !$test->ok ) {
- $this->showError( 'config-using531', phpversion() );
-
- return false;
- }
-
- return true;
- }
-
/**
* Environment check for magic_quotes_runtime.
* @return bool
return true;
}
- /**
- * Environment check for zend.ze1_compatibility_mode.
- * @return bool
- */
- protected function envCheckZE1() {
- if ( wfIniGetBool( 'zend.ze1_compatibility_mode' ) ) {
- $this->showError( 'config-ze1' );
-
- return false;
- }
-
- return true;
- }
-
/**
* Environment check for safe_mode.
* @return bool
* @return bool
*/
protected function envCheckPCRE() {
- if ( !function_exists( 'preg_match' ) ) {
- $this->showError( 'config-pcre' );
-
- return false;
- }
wfSuppressWarnings();
$regexd = preg_replace( '/[\x{0430}-\x{04FF}]/iu', '', '-АБВГД-' );
// Need to check for \p support too, as PCRE can be compiled
$this->parsedData .= $data;
}
}
-
-/**
- * Test for PHP bug #50394 (PHP 5.3.x conversion to null only, not 5.2.x)
- * @see http://bugs.php.net/bug.php?id=50394
- * @ingroup PHPBugTests
- */
-class PhpRefCallBugTester {
- public $ok = false;
-
- function __call( $name, $args ) {
- $old = error_reporting( E_ALL & ~E_WARNING );
- call_user_func_array( array( $this, 'checkForBrokenRef' ), $args );
- error_reporting( $old );
- }
-
- function checkForBrokenRef( &$var ) {
- if ( $var ) {
- $this->ok = true;
- }
- }
-
- function execute() {
- $var = true;
- call_user_func_array( array( $this, 'foo' ), array( &$var ) );
- }
-}
"INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('archive_ar_id_seq')" ),
array( 'addPgField', 'externallinks', 'el_id',
"INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('externallinks_el_id_seq')" ),
+ array( 'addPgField', 'uploadstash', 'us_props', "BYTEA" ),
# type changes
array( 'changeField', 'archive', 'ar_deleted', 'smallint', '' ),
<?php
/**
- * Job queue base code.
+ * Job queue task base code.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Class to both describe a background job and handle jobs.
* The queue aspects of this class are now deprecated.
+ * Using the class to push jobs onto queues is deprecated (use JobSpecification).
*
* @ingroup JobQueue
*/
-abstract class Job {
+abstract class Job implements IJobSpecification {
/** @var string */
public $command;
}
/**
- * Push a single jobs into the queue.
+ * Push one or more jobs into the queue.
* This does not require $wgJobClasses to be set for the given job type.
* Outside callers should use JobQueueGroup::push() instead of this function.
*
}
/**
- * @param Job $job
+ * @param IJobSpecification $job
* @return array
*/
- protected function insertFields( Job $job ) {
+ protected function insertFields( IJobSpecification $job ) {
$dbw = $this->getMasterDB();
return array(
$jobsByType = array(); // (job type => list of jobs)
foreach ( $jobs as $job ) {
- if ( $job instanceof Job ) {
+ if ( $job instanceof IJobSpecification ) {
$jobsByType[$job->getType()][] = $job;
} else {
throw new MWException( "Attempted to push a non-Job object into a queue." );
}
/**
- * @param Job $job
+ * @param IJobSpecification $job
* @return array
*/
- protected function getNewJobFields( Job $job ) {
+ protected function getNewJobFields( IJobSpecification $job ) {
return array(
// Fields that describe the nature of the job
'type' => $job->getType(),
// Additional job metadata
'uuid' => UIDGenerator::newRawUUIDv4( UIDGenerator::QUICK_RAND ),
'sha1' => $job->ignoreDuplicates()
- ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
- : '',
+ ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
+ : '',
'timestamp' => time() // UNIX timestamp
);
}
--- /dev/null
+<?php
+/**
+ * Job queue task description base code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup JobQueue
+ */
+
+/**
+ * Job queue task description interface
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+interface IJobSpecification {
+ /**
+ * @return string Job type
+ */
+ public function getType();
+
+ /**
+ * @return array
+ */
+ public function getParams();
+
+ /**
+ * @return int|null UNIX timestamp to delay running this job until, otherwise null
+ */
+ public function getReleaseTimestamp();
+
+ /**
+ * @return bool Whether only one of each identical set of jobs should be run
+ */
+ public function ignoreDuplicates();
+
+ /**
+ * Subclasses may need to override this to make duplication detection work.
+ * The resulting map conveys everything that makes the job unique. This is
+ * only checked if ignoreDuplicates() returns true, meaning that duplicate
+ * jobs are supposed to be ignored.
+ *
+ * @return array Map of key/values
+ */
+ public function getDeduplicationInfo();
+
+ /**
+ * @return Title Descriptive title (this can simply be informative)
+ */
+ public function getTitle();
+}
+
+/**
+ * Job queue task description base code
+ *
+ * Example usage:
+ * <code>
+ * $job = new JobSpecification(
+ * 'null',
+ * array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
+ * array( 'removeDuplicates' => 1 ),
+ * Title::makeTitle( NS_SPECIAL, 'nullity' )
+ * );
+ * JobQueueGroup::singleton()->push( $job )
+ * </code>
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+class JobSpecification implements IJobSpecification {
+ /** @var string */
+ protected $type;
+
+ /** @var array Array of job parameters or false if none */
+ protected $params;
+
+ /** @var Title */
+ protected $title;
+
+ /** @var bool Expensive jobs may set this to true */
+ protected $ignoreDuplicates;
+
+ /**
+ * @param string $type
+ * @param array $params Map of key/values
+ * @param array $opts Map of key/values
+ * @param Title $title Optional descriptive title
+ */
+ public function __construct(
+ $type, array $params, array $opts = array(), Title $title = null
+ ) {
+ $this->validateParams( $params );
+
+ $this->type = $type;
+ $this->params = $params;
+ $this->title = $title ?: Title::newMainPage();
+ $this->ignoreDuplicates = !empty( $opts['removeDuplicates'] );
+ }
+
+ /**
+ * @param array $params
+ */
+ protected function validateParams( array $params ) {
+ foreach ( $params as $p => $v ) {
+ if ( is_array( $v ) ) {
+ $this->validateParams( $v );
+ } elseif ( !is_scalar( $v ) && $v !== null ) {
+ throw new UnexpectedValueException( 'Job parameters are not JSON serializable.' );
+ }
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getType() {
+ return $this->type;
+ }
+
+ /**
+ * @return Title
+ */
+ public function getTitle() {
+ return $this->title;
+ }
+
+ /**
+ * @return array
+ */
+ public function getParams() {
+ return $this->params;
+ }
+
+ /**
+ * @return int|null UNIX timestamp to delay running this job until, otherwise null
+ */
+ public function getReleaseTimestamp() {
+ return isset( $this->params['jobReleaseTimestamp'] )
+ ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
+ : null;
+ }
+
+ /**
+ * @return bool Whether only one of each identical set of jobs should be run
+ */
+ public function ignoreDuplicates() {
+ return $this->ignoreDuplicates;
+ }
+
+ /**
+ * Subclasses may need to override this to make duplication detection work.
+ * The resulting map conveys everything that makes the job unique. This is
+ * only checked if ignoreDuplicates() returns true, meaning that duplicate
+ * jobs are supposed to be ignored.
+ *
+ * @return array Map of key/values
+ */
+ public function getDeduplicationInfo() {
+ $info = array(
+ 'type' => $this->getType(),
+ 'namespace' => $this->getTitle()->getNamespace(),
+ 'title' => $this->getTitle()->getDBkey(),
+ 'params' => $this->getParams()
+ );
+ if ( is_array( $info['params'] ) ) {
+ // Identical jobs with different "root" jobs should count as duplicates
+ unset( $info['params']['rootJobSignature'] );
+ unset( $info['params']['rootJobTimestamp'] );
+ // Likewise for jobs with different delay times
+ unset( $info['params']['jobReleaseTimestamp'] );
+ }
+
+ return $info;
+ }
+}
* @ingroup JobQueue
*/
class RefreshLinksJob extends Job {
+ const PARSE_THRESHOLD_SEC = 1.0;
+
function __construct( $title, $params = '' ) {
parent::__construct( 'refreshLinks', $title, $params );
// Base backlink update jobs and per-title update jobs can be de-duplicated.
wfGetLB()->waitFor( $this->params['masterPos'] );
}
+ $page = WikiPage::factory( $title );
+
// Fetch the current revision...
$revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
if ( !$revision ) {
}
$parserOutput = false;
+ $parserOptions = $page->makeParserOptions( 'canonical' );
// If page_touched changed after this root job (with a good slave lag skew factor),
// then it is likely that any views of the pages already resulted in re-parses which
// are now in cache. This can be reused to avoid expensive parsing in some cases.
if ( isset( $this->params['rootJobTimestamp'] ) ) {
- $page = WikiPage::factory( $title );
$skewedTimestamp = wfTimestamp( TS_UNIX, $this->params['rootJobTimestamp'] ) + 5;
if ( $page->getLinksTimestamp() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
// Something already updated the backlinks since this job was made
return true;
}
if ( $page->getTouched() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
- $parserOptions = $page->makeParserOptions( 'canonical' );
$parserOutput = ParserCache::singleton()->getDirty( $page, $parserOptions );
if ( $parserOutput && $parserOutput->getCacheTime() <= $skewedTimestamp ) {
$parserOutput = false; // too stale
}
// Fetch the current revision and parse it if necessary...
if ( $parserOutput == false ) {
+ $start = microtime( true );
// Revision ID must be passed to the parser output to get revision variables correct
- $parserOutput = $content->getParserOutput( $title, $revision->getId(), null, false );
+ $parserOutput = $content->getParserOutput(
+ $title, $revision->getId(), $parserOptions, false );
+ $ellapsed = microtime( true ) - $start;
+ // If it took a long time to render, then save this back to the cache to avoid
+ // wasted CPU by other apaches or job runners. We don't want to always save to
+ // cache as this cause cause high cache I/O and LRU churn when a template changes.
+ if ( $ellapsed >= self::PARSE_THRESHOLD_SEC
+ && $page->isParserCacheUsed( $parserOptions, $revision->getId() )
+ && $parserOutput->isCacheable()
+ ) {
+ $ctime = wfTimestamp( TS_MW, (int)$start ); // cache time
+ ParserCache::singleton()->save( $parserOutput, $page, $parserOptions, $ctime );
+ }
}
$updates = $content->getSecondaryDataUpdates( $title, null, false, $parserOutput );
* @param int $bSize BacklinkCache partition size; usually $wgUpdateRowsPerJob
* @param int $cSize Max titles per leaf job; Usually 1 or a modest value
* @param array $opts Optional parameter map
- * @return array List of Job objects
+ * @return Job[] List of Job objects
*/
public static function partitionBacklinkJob( Job $job, $bSize, $cSize, $opts = array() ) {
$class = get_class( $job );
return $ruleWithRemapped;
}
}, $source );
-
- return $source;
}
/**
* - wrap String Wrap the message in html (usually something like "<div ...>$1</div>").
* - flags Integer display flags (NO_ACTION_LINK,NO_EXTRA_USER_LINKS)
* - useRequestParams boolean Set true to use Pager-related parameters in the WebRequest
+ * - useMaster boolean Use master DB
* @return int Number of total log items (not limited by $lim)
*/
public static function showLogExtract(
'wrap' => "$1",
'flags' => 0,
'useRequestParams' => false,
+ 'useMaster' => false,
);
# The + operator appends elements of remaining keys from the right
# handed array to the left handed, whereas duplicated keys are NOT overwritten.
$pager->mIsBackwards = false;
}
+ if ( $param['useMaster'] ) {
+ $pager->mDb = wfGetDB( DB_MASTER );
+ }
if ( isset( $param['offset'] ) ) { # Tell pager to ignore WebRequest offset
$pager->setOffset( $param['offset'] );
}
global $wgSharpenReductionThreshold, $wgSharpenParameter, $wgMaxAnimatedGifArea,
$wgImageMagickTempDir, $wgImageMagickConvertCommand;
- $quality = '';
- $sharpen = '';
+ $quality = array();
+ $sharpen = array();
$scene = false;
- $animation_pre = '';
- $animation_post = '';
- $decoderHint = '';
+ $animation_pre = array();
+ $animation_post = array();
+ $decoderHint = array();
if ( $params['mimeType'] == 'image/jpeg' ) {
- $quality = "-quality 80"; // 80%
+ $quality = array( '-quality', '80' ); // 80%
# Sharpening, see bug 6193
if ( ( $params['physicalWidth'] + $params['physicalHeight'] )
/ ( $params['srcWidth'] + $params['srcHeight'] )
< $wgSharpenReductionThreshold
) {
- $sharpen = "-sharpen " . wfEscapeShellArg( $wgSharpenParameter );
+ $sharpen = array( '-sharpen', $wgSharpenParameter );
}
if ( version_compare( $this->getMagickVersion(), "6.5.6" ) >= 0 ) {
// JPEG decoder hint to reduce memory, available since IM 6.5.6-2
- $decoderHint = "-define jpeg:size={$params['physicalDimensions']}";
+ $decoderHint = array( '-define', "jpeg:size={$params['physicalDimensions']}" );
}
} elseif ( $params['mimeType'] == 'image/png' ) {
- $quality = "-quality 95"; // zlib 9, adaptive filtering
+ $quality = array( '-quality', '95' ); // zlib 9, adaptive filtering
} elseif ( $params['mimeType'] == 'image/gif' ) {
if ( $this->getImageArea( $image ) > $wgMaxAnimatedGifArea ) {
$scene = 0;
} elseif ( $this->isAnimatedImage( $image ) ) {
// Coalesce is needed to scale animated GIFs properly (bug 1017).
- $animation_pre = '-coalesce';
+ $animation_pre = array( '-coalesce' );
// We optimize the output, but -optimize is broken,
// use optimizeTransparency instead (bug 11822)
if ( version_compare( $this->getMagickVersion(), "6.3.5" ) >= 0 ) {
- $animation_post = '-fuzz 5% -layers optimizeTransparency';
+ $animation_post = array( '-fuzz', '5%', '-layers', 'optimizeTransparency' );
}
}
} elseif ( $params['mimeType'] == 'image/x-xcf' ) {
- $animation_post = '-layers merge';
+ $animation_post = array( '-layers', 'merge' );
}
// Use one thread only, to avoid deadlock bugs on OOM
$rotation = $this->getRotation( $image );
list( $width, $height ) = $this->extractPreRotationDimensions( $params, $rotation );
- $cmd =
- wfEscapeShellArg( $wgImageMagickConvertCommand ) .
+ $cmd = call_user_func_array( 'wfEscapeShellArg', array_merge(
+ array( $wgImageMagickConvertCommand ),
+ $quality,
// Specify white background color, will be used for transparent images
// in Internet Explorer/Windows instead of default black.
- " {$quality} -background white" .
- " {$decoderHint} " .
- wfEscapeShellArg( $this->escapeMagickInput( $params['srcPath'], $scene ) ) .
- " {$animation_pre}" .
+ array( '-background', 'white' ),
+ $decoderHint,
+ array( $this->escapeMagickInput( $params['srcPath'], $scene ) ),
+ $animation_pre,
// For the -thumbnail option a "!" is needed to force exact size,
// or ImageMagick may decide your ratio is wrong and slice off
// a pixel.
- " -thumbnail " . wfEscapeShellArg( "{$width}x{$height}!" ) .
+ array( '-thumbnail', "{$width}x{$height}!" ),
// Add the source url as a comment to the thumb, but don't add the flag if there's no comment
( $params['comment'] !== ''
- ? " -set comment " . wfEscapeShellArg( $this->escapeMagickProperty( $params['comment'] ) )
- : '' ) .
- " -depth 8 $sharpen " .
- " -rotate -$rotation " .
- " {$animation_post} " .
- wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) );
+ ? array( '-set', 'comment', $this->escapeMagickProperty( $params['comment'] ) )
+ : array() ),
+ array( '-depth', 8 ),
+ $sharpen,
+ array( '-rotate', "-$rotation" ),
+ $animation_post,
+ array( $this->escapeMagickOutput( $params['dstPath'] ) ) ) );
wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
wfProfileIn( 'convert' );
$dst = wfEscapeShellArg( $params['dstPath'] );
$cmd = $wgCustomConvertCommand;
$cmd = str_replace( '%s', $src, str_replace( '%d', $dst, $cmd ) ); # Filenames
- $cmd = str_replace( '%h', $params['physicalHeight'],
- str_replace( '%w', $params['physicalWidth'], $cmd ) ); # Size
+ $cmd = str_replace( '%h', wfEscapeShellArg( $params['physicalHeight'] ),
+ str_replace( '%w', wfEscapeShellArg( $params['physicalWidth'] ), $cmd ) ); # Size
wfDebug( __METHOD__ . ": Running custom convert command $cmd\n" );
wfProfileIn( 'convert' );
$retval = 0;
case 'im':
$cmd = wfEscapeShellArg( $wgImageMagickConvertCommand ) . " " .
wfEscapeShellArg( $this->escapeMagickInput( $params['srcPath'], $scene ) ) .
- " -rotate -$rotation " .
+ " -rotate " . wfEscapeShellArg( "-$rotation" ) . " " .
wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) );
wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
wfProfileIn( 'convert' );
$srcPath = $image->getLocalRefPath();
# Use a subshell (brackets) to aggregate stderr from both pipeline commands
# before redirecting it to the overall stdout. This works in both Linux and Windows XP.
- $cmd = '(' . wfEscapeShellArg( $wgDjvuRenderer ) . " -format=ppm -page={$page}" .
- " -size={$params['physicalWidth']}x{$params['physicalHeight']} " .
- wfEscapeShellArg( $srcPath );
+ $cmd = '(' . wfEscapeShellArg(
+ $wgDjvuRenderer,
+ "-format=ppm",
+ "-page={$page}",
+ "-size={$params['physicalWidth']}x{$params['physicalHeight']}",
+ $srcPath );
if ( $wgDjvuPostProcessor ) {
$cmd .= " | {$wgDjvuPostProcessor}";
}
if ( !isset( $params['page'] ) ) {
$params['page'] = 1;
} else {
+ $params['page'] = intval( $params['page'] );
if ( $params['page'] > $image->pageCount() ) {
$params['page'] = $image->pageCount();
}
return true;
}
}
-
-/**
- * Backwards compatibility alias for EmptyBagOStuff
- * @deprecated since 1.18
- */
-class FakeMemCachedClient extends EmptyBagOStuff {
-}
public function createTables() {
for ( $serverIndex = 0; $serverIndex < $this->numServers; $serverIndex++ ) {
$db = $this->getDB( $serverIndex );
- if ( $db->getType() !== 'mysql'
- || version_compare( $db->getServerVersion(), '4.1.0', '<' )
- ) {
+ if ( $db->getType() !== 'mysql' ) {
throw new MWException( __METHOD__ . ' is not supported on this DB server' );
}
if ( !$wgRestrictDisplayTitle ) {
$parser->mOutput->setDisplayTitle( $text );
- } elseif ( $title instanceof Title && $title->getFragment() == '' && $title->equals( $parser->mTitle ) ) {
+ } elseif ( $title instanceof Title && !$title->hasFragment() && $title->equals( $parser->mTitle ) ) {
$parser->mOutput->setDisplayTitle( $text );
}
* Return the size of the given page, or 0 if it's nonexistent. This is an
* expensive parser function and can't be called too many times per page.
*
- * @todo FIXME: Title::getLength() documentation claims that it adds things
- * to the link cache, so the local cache here should be unnecessary, but
- * in fact calling getLength() repeatedly for the same $page does seem to
- * run one query for each call?
- * @todo Document parameters
- *
* @param $parser Parser
* @param $page String Name of page to check (Default: empty string)
* @param $raw String Should number be human readable with commas or just number
// Self-link checking for mixed/different variant titles. At this point, we
// already know the exact title does not exist, so the link cannot be to a
// variant of the current title that exists as a separate page.
- if ( $variantTitle->equals( $parentTitle ) && $title->getFragment() === '' ) {
+ if ( $variantTitle->equals( $parentTitle ) && !$title->hasFragment() ) {
$this->internals[$ns][$index]['selflink'] = true;
continue 2;
}
$t = Title::newFromText( 'NO TITLE' );
}
- if ( strval( $t->getFragment() ) !== '' ) {
+ if ( $t->hasFragment() ) {
# Strip the fragment to avoid various odd effects
$this->mTitle = clone $t;
$this->mTitle->setFragment( '' );
}
$ns = $nt->getNamespace();
- $iw = $nt->getInterWiki();
+ $iw = $nt->getInterwiki();
wfProfileOut( __METHOD__ . "-title" );
if ( $might_be_img ) { # if this is actually an invalid link
# Self-link checking. For some languages, variants of the title are checked in
# LinkHolderArray::doVariants() to allow batching the existence checks necessary
# for linking to a different variant.
- if ( $ns != NS_SPECIAL && $nt->equals( $this->mTitle ) && $nt->getFragment() === '' ) {
+ if ( $ns != NS_SPECIAL && $nt->equals( $this->mTitle ) && !$nt->hasFragment() ) {
$s .= $prefix . Linker::makeSelfLinkObj( $nt, $text, '', $trail );
continue;
}
*/
var $mNumberHeadings;
- /**
- * User math preference (as integer). Not used (1.19)
- */
- var $mMath;
-
/**
* Thumb size preferred by the user.
*/
function getExternalLinkTarget() { return $this->mExternalLinkTarget; }
function getDisableContentConversion() { return $this->mDisableContentConversion; }
function getDisableTitleConversion() { return $this->mDisableTitleConversion; }
- /** @deprecated since 1.22 use User::getOption('math') instead */
- function getMath() { $this->optionUsed( 'math' );
- return $this->mMath; }
function getThumbSize() { $this->optionUsed( 'thumbsize' );
return $this->mThumbSize; }
function getStubThreshold() { $this->optionUsed( 'stubthreshold' );
function getUser() { return $this->mUser; }
function getPreSaveTransform() { return $this->mPreSaveTransform; }
- /**
- * @param $title Title
- * @return Skin
- * @deprecated since 1.18 Use Linker::* instead
- */
- function getSkin( $title = null ) {
- wfDeprecated( __METHOD__, '1.18' );
- return new DummyLinker;
- }
-
function getDateFormat() {
$this->optionUsed( 'dateformat' );
if ( !isset( $this->mDateFormat ) ) {
function setExternalLinkTarget( $x ) { return wfSetVar( $this->mExternalLinkTarget, $x ); }
function disableContentConversion( $x = true ) { return wfSetVar( $this->mDisableContentConversion, $x ); }
function disableTitleConversion( $x = true ) { return wfSetVar( $this->mDisableTitleConversion, $x ); }
- /** @deprecated since 1.22 */
- function setMath( $x ) { return wfSetVar( $this->mMath, $x ); }
function setUserLang( $x ) {
if ( is_string( $x ) ) {
$x = Language::factory( $x );
$this->mUser = $user;
$this->mNumberHeadings = $user->getOption( 'numberheadings' );
- $this->mMath = $user->getOption( 'math' );
$this->mThumbSize = $user->getOption( 'thumbsize' );
$this->mStubThreshold = $user->getStubThreshold();
$this->mUserLang = $lang;
/**
* Called when an option is accessed.
+ * @param string $optionName name of the option
*/
- protected function optionUsed( $optionName ) {
+ public function optionUsed( $optionName ) {
if ( $this->onAccessCallback ) {
call_user_func( $this->onAccessCallback, $optionName );
}
* @return array
*/
public static function legacyOptions() {
- return array( 'math', 'stubthreshold', 'numberheadings', 'userlang', 'thumbsize', 'editsection', 'printable' );
+ return array( 'stubthreshold', 'numberheadings', 'userlang', 'thumbsize', 'editsection', 'printable' );
}
/**
public function optionsHash( $forOptions, $title = null ) {
global $wgRenderHashAppend;
- $confstr = '';
-
- if ( in_array( 'math', $forOptions ) ) {
- $confstr .= $this->mMath;
- } else {
- $confstr .= '*';
- }
+ // FIXME: Once the cache key is reorganized this argument
+ // can be dropped. It was used when the math extension was
+ // part of core.
+ $confstr = '*';
// Space assigned for the stubthreshold but unused
// since it disables the parser cache, its value will always
// Give a chance for extensions to modify the hash, if they have
// extra options or other effects on the parser cache.
- wfRunHooks( 'PageRenderingHash', array( &$confstr, $this->getUser() ) );
+ wfRunHooks( 'PageRenderingHash', array( &$confstr, $this->getUser(), &$forOptions ) );
// Make it a valid memcached key fragment
$confstr = str_replace( ' ', '_', $confstr );
$rules[] = 'a:lang(ar), a:lang(kk-arab), a:lang(mzn), ' .
'a:lang(ps), a:lang(ur) { text-decoration: none; }';
}
- if ( $options['justify'] ) {
- $rules[] = "#article, #bodyContent, #mw_content { text-align: justify; }\n";
- }
- if ( !$options['showtoc'] ) {
- $rules[] = "#toc { display: none; }\n";
- }
- if ( !$options['editsection'] ) {
- $rules[] = ".mw-editsection { display: none; }\n";
- }
if ( $options['editfont'] !== 'default' ) {
// Double-check that $options['editfont'] consists of safe characters only
if ( preg_match( '/^[a-zA-Z0-9_, -]+$/', $options['editfont'] ) ) {
--- /dev/null
+<?php
+/**
+ * Database search engine
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Search
+ */
+
+/**
+ * Base search engine base class for database-backed searches
+ * @ingroup Search
+ * @since 1.23
+ */
+class SearchDatabase extends SearchEngine {
+ /**
+ * @var DatabaseBase Slave database for reading from for results
+ */
+ protected $db;
+
+ /**
+ * Constructor
+ * @param DatabaseBase $db The database to search from
+ */
+ public function __construct( DatabaseBase $db = null ) {
+ if ( $db ) {
+ $this->db = $db;
+ } else {
+ $this->db = wfGetDB( DB_SLAVE );
+ }
+ }
+}
/// Feature values
protected $features = array();
- /**
- * @var DatabaseBase
- */
- protected $db;
-
- function __construct( $db = null ) {
- if ( $db ) {
- $this->db = $db;
- } else {
- $this->db = wfGetDB( DB_SLAVE );
- }
- }
-
/**
* Perform a full text search query and return a result set.
* If title searches are not supported or disabled, return null.
}
$search = new $class( $dbr );
- $search->setLimitOffset( 0, 0 );
return $search;
}
* Search engine hook base class for Mssql (ConText).
* @ingroup Search
*/
-class SearchMssql extends SearchEngine {
-
- /**
- * Creates an instance of this class
- * @param $db DatabaseMssql: database object
- */
- function __construct( $db ) {
- parent::__construct( $db );
- }
-
+class SearchMssql extends SearchDatabase {
/**
* Perform a full text search query and return a result set.
*
* Search engine hook for MySQL 4+
* @ingroup Search
*/
-class SearchMySQL extends SearchEngine {
+class SearchMySQL extends SearchDatabase {
var $strictMatching = true;
static $mMinSearchLength;
- /**
- * Creates an instance of this class
- * @param $db DatabaseMysql: database object
- */
- function __construct( $db ) {
- parent::__construct( $db );
- }
-
/**
* Parse the user's query and transform it into an SQL fragment which will
* become part of a WHERE clause
* Search engine hook base class for Oracle (ConText).
* @ingroup Search
*/
-class SearchOracle extends SearchEngine {
+class SearchOracle extends SearchDatabase {
private $reservedWords = array(
'ABOUT' => 1,
'WITHIN' => 1,
);
- /**
- * Creates an instance of this class
- * @param $db DatabasePostgres: database object
- */
- function __construct( $db ) {
- parent::__construct( $db );
- }
-
/**
* Perform a full text search query and return a result set.
*
* Search engine hook base class for Postgres
* @ingroup Search
*/
-class SearchPostgres extends SearchEngine {
-
- /**
- * @var DatabasePostgres
- */
- protected $db;
- /**
- * Creates an instance of this class
- * @param $db DatabaseSqlite: database object
- */
- function __construct( $db ) {
- parent::__construct( $db );
- }
-
+class SearchPostgres extends SearchDatabase {
/**
* Perform a full text search query via tsearch2 and return a result set.
* Currently searches a page's current title (page.page_title) and
* Search engine hook for SQLite
* @ingroup Search
*/
-class SearchSqlite extends SearchEngine {
-
- /**
- * @var DatabaseSqlite
- */
- protected $db;
-
- /**
- * Creates an instance of this class
- * @param $db DatabaseSqlite: database object
- */
- function __construct( $db ) {
- parent::__construct( $db );
- }
-
+class SearchSqlite extends SearchDatabase {
/**
* Whether fulltext search is supported by current schema
* @return Boolean
--- /dev/null
+<?php
+/**
+ * Special page which uses a ChangesList to show query results.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * Special page which uses a ChangesList to show query results.
+ * @todo Way too many public functions, most of them should be protected
+ *
+ * @ingroup SpecialPage
+ */
+abstract class ChangesListSpecialPage extends SpecialPage {
+ var $rcSubpage, $rcOptions; // @todo Rename these, make protected
+ protected $customFilters;
+
+ /**
+ * The feed format to output as (either 'rss' or 'atom'), or null if no
+ * feed output was requested
+ *
+ * @var string $feedFormat
+ */
+ protected $feedFormat;
+
+ /**
+ * Main execution point
+ *
+ * @param string $subpage
+ */
+ public function execute( $subpage ) {
+ $this->rcSubpage = $subpage;
+ $this->feedFormat = $this->including() ? null : $this->getRequest()->getVal( 'feed' );
+ if ( $this->feedFormat !== 'atom' && $this->feedFormat !== 'rss' ) {
+ $this->feedFormat = null;
+ }
+
+ $this->setHeaders();
+ $this->outputHeader();
+ $this->addModules();
+
+ $opts = $this->getOptions();
+ // Fetch results, prepare a batch link existence check query
+ $conds = $this->buildMainQueryConds( $opts );
+ $rows = $this->doMainQuery( $conds, $opts );
+ if ( $rows === false ) {
+ if ( !$this->including() ) {
+ $this->doHeader( $opts );
+ }
+
+ return;
+ }
+
+ if ( !$this->feedFormat ) {
+ $batch = new LinkBatch;
+ foreach ( $rows as $row ) {
+ $batch->add( NS_USER, $row->rc_user_text );
+ $batch->add( NS_USER_TALK, $row->rc_user_text );
+ $batch->add( $row->rc_namespace, $row->rc_title );
+ }
+ $batch->execute();
+ }
+ if ( $this->feedFormat ) {
+ list( $changesFeed, $formatter ) = $this->getFeedObject( $this->feedFormat );
+ /** @var ChangesFeed $changesFeed */
+ $changesFeed->execute( $formatter, $rows, $this->checkLastModified( $this->feedFormat ), $opts );
+ } else {
+ $this->webOutput( $rows, $opts );
+ }
+
+ $rows->free();
+ }
+
+ /**
+ * Get the current FormOptions for this request
+ *
+ * @return FormOptions
+ */
+ public function getOptions() {
+ if ( $this->rcOptions === null ) {
+ $this->rcOptions = $this->setup( $this->rcSubpage );
+ }
+
+ return $this->rcOptions;
+ }
+
+ /**
+ * Create a FormOptions object with options as specified by the user
+ *
+ * @param array $parameters
+ *
+ * @return FormOptions
+ */
+ public function setup( $parameters ) {
+ $opts = $this->getDefaultOptions();
+ foreach ( $this->getCustomFilters() as $key => $params ) {
+ $opts->add( $key, $params['default'] );
+ }
+
+ $opts = $this->fetchOptionsFromRequest( $opts );
+
+ // Give precedence to subpage syntax
+ if ( $parameters !== null ) {
+ $this->parseParameters( $parameters, $opts );
+ }
+
+ $this->validateOptions( $opts );
+
+ return $opts;
+ }
+
+ /**
+ * Get a FormOptions object containing the default options. By default returns some basic options,
+ * you might want to not call parent method and discard them, or to override default values.
+ *
+ * @return FormOptions
+ */
+ public function getDefaultOptions() {
+ $opts = new FormOptions();
+
+ $opts->add( 'hideminor', false );
+ $opts->add( 'hidebots', false );
+ $opts->add( 'hideanons', false );
+ $opts->add( 'hideliu', false );
+ $opts->add( 'hidepatrolled', false );
+ $opts->add( 'hidemyself', false );
+
+ $opts->add( 'namespace', '', FormOptions::INTNULL );
+ $opts->add( 'invert', false );
+ $opts->add( 'associated', false );
+
+ return $opts;
+ }
+
+ /**
+ * Get custom show/hide filters
+ *
+ * @return array Map of filter URL param names to properties (msg/default)
+ */
+ protected function getCustomFilters() {
+ // @todo Fire a Special{$this->getName()}Filters hook here
+ return array();
+ }
+
+ /**
+ * Fetch values for a FormOptions object from the WebRequest associated with this instance.
+ *
+ * Intended for subclassing, e.g. to add a backwards-compatibility layer.
+ *
+ * @param FormOptions $parameters
+ * @return FormOptions
+ */
+ protected function fetchOptionsFromRequest( $opts ) {
+ $opts->fetchValuesFromRequest( $this->getRequest() );
+ return $opts;
+ }
+
+ /**
+ * Process $par and put options found in $opts. Used when including the page.
+ *
+ * @param string $par
+ * @param FormOptions $opts
+ */
+ public function parseParameters( $par, FormOptions $opts ) {
+ // nothing by default
+ }
+
+ /**
+ * Validate a FormOptions object generated by getDefaultOptions() with values already populated.
+ *
+ * @param FormOptions $opts
+ */
+ public function validateOptions( FormOptions $opts ) {
+ // nothing by default
+ }
+
+ /**
+ * Return an array of conditions depending of options set in $opts
+ * @todo Whyyyy is this mutating $opts…
+ *
+ * @param FormOptions $opts
+ * @return array
+ */
+ public function buildMainQueryConds( FormOptions $opts ) {
+ $dbr = $this->getDB();
+ $user = $this->getUser();
+ $conds = array();
+
+ // It makes no sense to hide both anons and logged-in users
+ // Where this occurs, force anons to be shown
+ $botsOnly = false;
+ if ( $opts['hideanons'] && $opts['hideliu'] ) {
+ // Check if the user wants to show bots only
+ if ( $opts['hidebots'] ) {
+ $opts['hideanons'] = false;
+ } else {
+ $botsOnly = true;
+ }
+ }
+
+ // Toggles
+ if ( $opts['hideminor'] ) {
+ $conds['rc_minor'] = 0;
+ }
+ if ( $opts['hidebots'] ) {
+ $conds['rc_bot'] = 0;
+ }
+ if ( $user->useRCPatrol() && $opts['hidepatrolled'] ) {
+ $conds['rc_patrolled'] = 0;
+ }
+ if ( $botsOnly ) {
+ $conds['rc_bot'] = 1;
+ } else {
+ if ( $opts['hideliu'] ) {
+ $conds[] = 'rc_user = 0';
+ }
+ if ( $opts['hideanons'] ) {
+ $conds[] = 'rc_user != 0';
+ }
+ }
+ if ( $opts['hidemyself'] ) {
+ if ( $user->getId() ) {
+ $conds[] = 'rc_user != ' . $dbr->addQuotes( $user->getId() );
+ } else {
+ $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() );
+ }
+ }
+
+ // Namespace filtering
+ if ( $opts['namespace'] !== '' ) {
+ $selectedNS = $dbr->addQuotes( $opts['namespace'] );
+ $operator = $opts['invert'] ? '!=' : '=';
+ $boolean = $opts['invert'] ? 'AND' : 'OR';
+
+ // Namespace association (bug 2429)
+ if ( !$opts['associated'] ) {
+ $condition = "rc_namespace $operator $selectedNS";
+ } else {
+ // Also add the associated namespace
+ $associatedNS = $dbr->addQuotes(
+ MWNamespace::getAssociated( $opts['namespace'] )
+ );
+ $condition = "(rc_namespace $operator $selectedNS "
+ . $boolean
+ . " rc_namespace $operator $associatedNS)";
+ }
+
+ $conds[] = $condition;
+ }
+
+ return $conds;
+ }
+
+ /**
+ * Process the query
+ * @todo This should build some basic processing here…
+ *
+ * @param array $conds
+ * @param FormOptions $opts
+ * @return bool|ResultWrapper Result or false (for Recentchangeslinked only)
+ */
+ abstract public function doMainQuery( $conds, $opts );
+
+ /**
+ * Return a DatabaseBase object for reading
+ *
+ * @return DatabaseBase
+ */
+ protected function getDB() {
+ return wfGetDB( DB_SLAVE );
+ }
+
+ /**
+ * Send output to the OutputPage object, only called if not used feeds
+ * @todo This should do most, if not all, of the outputting now done by subclasses
+ *
+ * @param ResultWrapper $rows Database rows
+ * @param FormOptions $opts
+ */
+ abstract public function webOutput( $rows, $opts );
+
+ /**
+ * Return the text to be displayed above the changes
+ * @todo Not called by anything, should be called by webOutput()
+ *
+ * @param FormOptions $opts
+ * @return string XHTML
+ */
+ public function doHeader( $opts ) {
+ $this->setTopText( $opts );
+
+ // @todo Lots of stuff should be done here.
+
+ $this->setBottomText( $opts );
+ }
+
+ /**
+ * Send the text to be displayed before the options. Should use $this->getOutput()->addWikiText()
+ * or similar methods to print the text.
+ *
+ * @param FormOptions $opts
+ */
+ function setTopText( FormOptions $opts ) {
+ // nothing by default
+ }
+
+ /**
+ * Send the text to be displayed after the options. Should use $this->getOutput()->addWikiText()
+ * or similar methods to print the text.
+ *
+ * @param FormOptions $opts
+ */
+ function setBottomText( FormOptions $opts ) {
+ // nothing by default
+ }
+
+ /**
+ * Get options to be displayed in a form
+ * @todo This should handle options returned by getDefaultOptions().
+ * @todo Not called by anything, should be called by something… doHeader() maybe?
+ *
+ * @param FormOptions $opts
+ * @return array
+ */
+ function getExtraOptions( $opts ) {
+ return array();
+ }
+
+ /**
+ * Return the legend displayed within the fieldset
+ * @todo This should not be static, then we can drop the parameter
+ * @todo Not called by anything, should be called by doHeader()
+ *
+ * @param $context the object available as $this in non-static functions
+ * @return string
+ */
+ public static function makeLegend( IContextSource $context ) {
+ global $wgRecentChangesFlags;
+ $user = $context->getUser();
+ # The legend showing what the letters and stuff mean
+ $legend = Xml::openElement( 'dl' ) . "\n";
+ # Iterates through them and gets the messages for both letter and tooltip
+ $legendItems = $wgRecentChangesFlags;
+ if ( !$user->useRCPatrol() ) {
+ unset( $legendItems['unpatrolled'] );
+ }
+ foreach ( $legendItems as $key => $legendInfo ) { # generate items of the legend
+ $label = $legendInfo['title'];
+ $letter = $legendInfo['letter'];
+ $cssClass = isset( $legendInfo['class'] ) ? $legendInfo['class'] : $key;
+
+ $legend .= Xml::element( 'dt',
+ array( 'class' => $cssClass ), $context->msg( $letter )->text()
+ ) . "\n";
+ if ( $key === 'newpage' ) {
+ $legend .= Xml::openElement( 'dd' );
+ $legend .= $context->msg( $label )->escaped();
+ $legend .= ' ' . $context->msg( 'recentchanges-legend-newpage' )->parse();
+ $legend .= Xml::closeElement( 'dd' ) . "\n";
+ } else {
+ $legend .= Xml::element( 'dd', array(),
+ $context->msg( $label )->text()
+ ) . "\n";
+ }
+ }
+ # (+-123)
+ $legend .= Xml::tags( 'dt',
+ array( 'class' => 'mw-plusminus-pos' ),
+ $context->msg( 'recentchanges-legend-plusminus' )->parse()
+ ) . "\n";
+ $legend .= Xml::element(
+ 'dd',
+ array( 'class' => 'mw-changeslist-legend-plusminus' ),
+ $context->msg( 'recentchanges-label-plusminus' )->text()
+ ) . "\n";
+ $legend .= Xml::closeElement( 'dl' ) . "\n";
+
+ # Collapsibility
+ $legend =
+ '<div class="mw-changeslist-legend">' .
+ $context->msg( 'recentchanges-legend-heading' )->parse() .
+ '<div class="mw-collapsible-content">' . $legend . '</div>' .
+ '</div>';
+
+ return $legend;
+ }
+
+ /**
+ * Add page-specific modules.
+ */
+ protected function addModules() {
+ $out = $this->getOutput();
+ // Styles and behavior for the legend box (see makeLegend())
+ $out->addModuleStyles( 'mediawiki.special.changeslist.legend' );
+ $out->addModules( 'mediawiki.special.changeslist.legend.js' );
+ }
+
+ /**
+ * Return an array with a ChangesFeed object and ChannelFeed object.
+ *
+ * This is intentionally not abstract not to require subclasses which don't
+ * use feeds functionality to implement it.
+ *
+ * @param string $feedFormat Feed's format (either 'rss' or 'atom')
+ * @return array
+ */
+ public function getFeedObject( $feedFormat ) {
+ throw new MWException( "Not implemented" );
+ }
+
+ /**
+ * Get last-modified date, for client caching. Not implemented by default
+ * (returns current time).
+ *
+ * @param string $feedFormat
+ * @return string|bool
+ */
+ public function checkLastModified( $feedFormat ) {
+ return wfTimestampNow();
+ }
+
+ protected function getGroupName() {
+ return 'changes';
+ }
+}
// Unlisted / redirects
'Blankpage' => 'SpecialBlankpage',
+ 'Diff' => 'SpecialDiff',
'Emailuser' => 'SpecialEmailUser',
'Movepage' => 'MovePageForm',
'Mycontributions' => 'SpecialMycontributions',
case 'am_title' :
$title = Title::makeTitle( NS_MEDIAWIKI, $value . $this->suffix );
$talk = Title::makeTitle( NS_MEDIAWIKI_TALK, $value . $this->suffix );
+ $translation = Linker::makeExternalLink(
+ 'https://translatewiki.net/w/i.php?' . wfArrayToCgi( array(
+ 'title' => 'Special:SearchTranslations',
+ 'group' => 'mediawiki',
+ 'grouppath' => 'mediawiki',
+ 'query' => 'language:' . $this->getLanguage()->getCode() . '^25 ' .
+ 'messageid:"MediaWiki:' . $value . '"^10 "' .
+ $this->msg ( $value )->inLanguage ( 'en' )->plain() . '"'
+ ) ),
+ $this->msg( 'allmessages-filter-translate' )->text()
+ );
if ( $this->mCurrentRow->am_customised ) {
$title = Linker::linkKnown( $title, $this->getLanguage()->lcfirst( $value ) );
);
}
- return $title . ' ' . $this->msg( 'parentheses' )->rawParams( $talk )->escaped();
+ return $title . ' '
+ . $this->msg( 'parentheses' )->rawParams( $talk )->escaped()
+ . ' '
+ . $this->msg( 'parentheses' )->rawParams( $translation )->escaped();
case 'am_default' :
case 'am_actual' :
$block->isAutoblocking( $data['AutoBlock'] );
$block->mHideName = $data['HideUser'];
- if ( !wfRunHooks( 'BlockIp', array( &$block, &$performer ) ) ) {
- return array( 'hookaborted' );
+ $reason = array( 'hookaborted' );
+ if ( !wfRunHooks( 'BlockIp', array( &$block, &$performer, &$reason ) ) ) {
+ return $reason;
}
# Try to insert block. Is there a conflicting block?
$throttleCount = LoginForm::incLoginThrottle( $user->getName() );
if ( $throttleCount === true ) {
$lang = $this->getLanguage();
- $this->error( array( 'login-throttled', $lang->formatDuration( $wgPasswordAttemptThrottle['seconds'] ) ) );
+ $this->error( array( 'changeemail-throttled', $lang->formatDuration( $wgPasswordAttemptThrottle['seconds'] ) ) );
return false;
}
$throttleCount = LoginForm::incLoginThrottle( $this->mUserName );
if ( $throttleCount === true ) {
$lang = $this->getLanguage();
- throw new PasswordError( $this->msg( 'login-throttled' )
+ throw new PasswordError( $this->msg( 'changepassword-throttled' )
->params( $lang->formatDuration( $wgPasswordAttemptThrottle['seconds'] ) )
->text()
);
* @ingroup SpecialPage
*/
-class SpecialContributions extends SpecialPage {
+class SpecialContributions extends IncludableSpecialPage {
protected $opts;
public function __construct() {
$this->opts['deletedOnly'] = $request->getBool( 'deletedOnly' );
if ( !strlen( $target ) ) {
- $out->addHTML( $this->getForm() );
-
+ if ( !$this->including() ) {
+ $out->addHTML( $this->getForm() );
+ }
return;
}
$this->addFeedLinks( array( 'action' => 'feedcontributions', 'user' => $target ) );
if ( wfRunHooks( 'SpecialContributionsBeforeMainOutput', array( $id, $userObj, $this ) ) ) {
- $out->addHTML( $this->getForm() );
-
+ if ( !$this->including() ) {
+ $out->addHTML( $this->getForm() );
+ }
$pager = new ContribsPager( $this->getContext(), array(
'target' => $target,
'contribs' => $this->opts['contribs'],
}
if ( $message ) {
- if ( !$this->msg( $message, $target )->isDisabled() ) {
- $out->wrapWikiMsg(
- "<div class='mw-contributions-footer'>\n$1\n</div>",
- array( $message, $target ) );
+ if ( !$this->including() ) {
+ if ( !$this->msg( $message, $target )->isDisabled() ) {
+ $out->wrapWikiMsg(
+ "<div class='mw-contributions-footer'>\n$1\n</div>",
+ array( $message, $target ) );
+ }
}
}
}
--- /dev/null
+<?php
+/**
+ * Redirect from Special:Diff/### to index.php?diff=### and
+ * from Special:Diff/###/### to index.php?oldid=###&diff=###.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * Redirect from Special:Diff/### to index.php?diff=### and
+ * from Special:Diff/###/### to index.php?oldid=###&diff=###.
+ *
+ * All of the following are valid usages:
+ * - [[Special:Diff/12345]] (diff of a revision with the previous one)
+ * - [[Special:Diff/12345/prev]] (diff of a revision with the previous one as well)
+ * - [[Special:Diff/12345/next]] (diff of a revision with the next one)
+ * - [[Special:Diff/12345/cur]] (diff of a revision with the latest one of that page)
+ * - [[Special:Diff/12345/98765]] (diff between arbitrary two revisions)
+ *
+ * @ingroup SpecialPage
+ * @since 1.23
+ */
+class SpecialDiff extends RedirectSpecialPage {
+ function __construct() {
+ parent::__construct( 'Diff' );
+ $this->mAllowedRedirectParams = array();
+ }
+
+ function getRedirect( $subpage ) {
+ $parts = explode( '/', $subpage );
+
+ // Try to parse the values given, generating somewhat pretty URLs if possible
+ if ( count( $parts ) === 1 ) {
+ $this->mAddedRedirectParams['diff'] = $parts[0];
+ } elseif ( count( $parts ) === 2 ) {
+ $this->mAddedRedirectParams['oldid'] = $parts[0];
+ $this->mAddedRedirectParams['diff'] = $parts[1];
+ } else {
+ // Wrong number of parameters, bail out
+ throw new ErrorPageError( 'nopagetitle', 'nopagetext' );
+ }
+
+ return true;
+ }
+}
'fields' => array( 'title' => 'cat_title',
'namespace' => NS_CATEGORY,
'value' => 'cat_pages' ),
+ 'conds' => array( 'cat_pages > 0' ),
);
}
$nt = $this->newTitle;
# don't allow moving to pages with # in
- if ( !$nt || $nt->getFragment() != '' ) {
+ if ( !$nt || $nt->hasFragment() ) {
$this->showForm( array( array( 'badtitletext' ) ) );
return;
'from' => $s->page_title,
'prefix' => $prefix,
'hideredirects' => $this->hideRedirects,
+ 'stripprefix' => $this->stripPrefix,
);
if ( $namespace || $prefix == '' ) {
*
* @ingroup SpecialPage
*/
-class SpecialRecentChanges extends SpecialPage {
- var $rcOptions, $rcSubpage;
- protected $customFilters;
-
- /**
- * The feed format to output as (either 'rss' or 'atom'), or null if no
- * feed output was requested
- *
- * @var string $feedFormat
- */
- protected $feedFormat;
+class SpecialRecentChanges extends ChangesListSpecialPage {
public function __construct( $name = 'Recentchanges', $restriction = '' ) {
parent::__construct( $name, $restriction );
}
- public function isIncludable() {
- return true;
+ /**
+ * Main execution point
+ *
+ * @param string $subpage
+ */
+ public function execute( $subpage ) {
+ // 10 seconds server-side caching max
+ $this->getOutput()->setSquidMaxage( 10 );
+ // Check if the client has a cached version
+ $lastmod = $this->checkLastModified( $this->feedFormat );
+ if ( $lastmod === false ) {
+ return;
+ }
+
+ parent::execute( $subpage );
}
/**
* @return FormOptions
*/
public function getDefaultOptions() {
- $opts = new FormOptions();
+ $opts = parent::getDefaultOptions();
$user = $this->getUser();
$opts->add( 'days', $user->getIntOption( 'rcdays' ) );
$opts->add( 'hidepatrolled', $user->getBoolOption( 'hidepatrolled' ) );
$opts->add( 'hidemyself', false );
- $opts->add( 'namespace', '', FormOptions::INTNULL );
- $opts->add( 'invert', false );
- $opts->add( 'associated', false );
-
$opts->add( 'categories', '' );
$opts->add( 'categories_any', false );
$opts->add( 'tagfilter', '' );
return $opts;
}
- /**
- * Create a FormOptions object with options as specified by the user
- *
- * @param array $parameters
- * @return FormOptions
- */
- public function setup( $parameters ) {
- global $wgFeedLimit;
-
- $opts = $this->getDefaultOptions();
- foreach ( $this->getCustomFilters() as $key => $params ) {
- $opts->add( $key, $params['default'] );
- }
-
- $opts = $this->fetchOptionsFromRequest( $opts );
-
- // Give precedence to subpage syntax
- if ( $parameters !== null ) {
- $this->parseParameters( $parameters, $opts );
- }
-
- $opts->validateIntBounds( 'limit', 0, $this->feedFormat ? $wgFeedLimit : 5000 );
-
- return $opts;
- }
-
- /**
- * Fetch values for a FormOptions object from the WebRequest associated with this instance.
- *
- * Intended for subclassing, e.g. to add a backwards-compatibility layer.
- *
- * @param FormOptions $parameters
- * @return FormOptions
- */
- protected function fetchOptionsFromRequest( $opts ) {
- $opts->fetchValuesFromRequest( $this->getRequest() );
- return $opts;
- }
-
/**
* Get custom show/hide filters
*
}
/**
- * Get the current FormOptions for this request
- */
- public function getOptions() {
- if ( $this->rcOptions === null ) {
- $this->rcOptions = $this->setup( $this->rcSubpage );
- }
-
- return $this->rcOptions;
- }
-
- /**
- * Main execution point
- *
- * @param string $subpage
- */
- public function execute( $subpage ) {
- $this->rcSubpage = $subpage;
- $this->feedFormat = $this->including() ? null : $this->getRequest()->getVal( 'feed' );
-
- # 10 seconds server-side caching max
- $this->getOutput()->setSquidMaxage( 10 );
- # Check if the client has a cached version
- $lastmod = $this->checkLastModified( $this->feedFormat );
- if ( $lastmod === false ) {
- return;
- }
-
- $opts = $this->getOptions();
- $this->setHeaders();
- $this->outputHeader();
- $this->addModules();
-
- // Fetch results, prepare a batch link existence check query
- $conds = $this->buildMainQueryConds( $opts );
- $rows = $this->doMainQuery( $conds, $opts );
- if ( $rows === false ) {
- if ( !$this->including() ) {
- $this->doHeader( $opts );
- }
-
- return;
- }
-
- if ( !$this->feedFormat ) {
- $batch = new LinkBatch;
- foreach ( $rows as $row ) {
- $batch->add( NS_USER, $row->rc_user_text );
- $batch->add( NS_USER_TALK, $row->rc_user_text );
- $batch->add( $row->rc_namespace, $row->rc_title );
- }
- $batch->execute();
- }
- if ( $this->feedFormat ) {
- list( $changesFeed, $formatter ) = $this->getFeedObject( $this->feedFormat );
- /** @var ChangesFeed $changesFeed */
- $changesFeed->execute( $formatter, $rows, $lastmod, $opts );
- } else {
- $this->webOutput( $rows, $opts );
- }
-
- $rows->free();
- }
-
- /**
- * Return an array with a ChangesFeed object and ChannelFeed object
- *
- * @param string $feedFormat Feed's format (either 'rss' or 'atom')
- * @return array
- */
- public function getFeedObject( $feedFormat ) {
- $changesFeed = new ChangesFeed( $feedFormat, 'rcfeed' );
- $formatter = $changesFeed->getFeedObject(
- $this->msg( 'recentchanges' )->inContentLanguage()->text(),
- $this->msg( 'recentchanges-feed-description' )->inContentLanguage()->text(),
- $this->getPageTitle()->getFullURL()
- );
-
- return array( $changesFeed, $formatter );
- }
-
- /**
- * Process $par and put options found if $opts
- * Mainly used when including the page
+ * Process $par and put options found in $opts. Used when including the page.
*
* @param string $par
* @param FormOptions $opts
}
}
- /**
- * Get last modified date, for client caching
- * Don't use this if we are using the patrol feature, patrol changes don't
- * update the timestamp
- *
- * @param string $feedFormat
- * @return string|bool
- */
- public function checkLastModified( $feedFormat ) {
- $dbr = wfGetDB( DB_SLAVE );
- $lastmod = $dbr->selectField( 'recentchanges', 'MAX(rc_timestamp)', false, __METHOD__ );
- if ( $feedFormat || !$this->getUser()->useRCPatrol() ) {
- if ( $lastmod && $this->getOutput()->checkLastModified( $lastmod ) ) {
- # Client cache fresh and headers sent, nothing more to do.
- return false;
- }
- }
-
- return $lastmod;
+ public function validateOptions( FormOptions $opts ) {
+ global $wgFeedLimit;
+ $opts->validateIntBounds( 'limit', 0, $this->feedFormat ? $wgFeedLimit : 5000 );
}
/**
* Return an array of conditions depending of options set in $opts
+ * @todo Whyyyy is this mutating $opts…
*
* @param FormOptions $opts
* @return array
*/
public function buildMainQueryConds( FormOptions $opts ) {
- $dbr = wfGetDB( DB_SLAVE );
- $conds = array();
-
- # It makes no sense to hide both anons and logged-in users
- # Where this occurs, force anons to be shown
- $forcebot = false;
- if ( $opts['hideanons'] && $opts['hideliu'] ) {
- # Check if the user wants to show bots only
- if ( $opts['hidebots'] ) {
- $opts['hideanons'] = false;
- } else {
- $forcebot = true;
- $opts['hidebots'] = false;
- }
- }
+ $dbr = $this->getDB();
+ $conds = parent::buildMainQueryConds( $opts );
// Calculate cutoff
$cutoff_unixtime = time() - ( $opts['days'] * 86400 );
$conds[] = 'rc_timestamp >= ' . $dbr->addQuotes( $cutoff );
- $hidePatrol = $this->getUser()->useRCPatrol() && $opts['hidepatrolled'];
- $hideLoggedInUsers = $opts['hideliu'] && !$forcebot;
- $hideAnonymousUsers = $opts['hideanons'] && !$forcebot;
-
- if ( $opts['hideminor'] ) {
- $conds['rc_minor'] = 0;
- }
- if ( $opts['hidebots'] ) {
- $conds['rc_bot'] = 0;
- }
- if ( $hidePatrol ) {
- $conds['rc_patrolled'] = 0;
- }
- if ( $forcebot ) {
- $conds['rc_bot'] = 1;
- }
- if ( $hideLoggedInUsers ) {
- $conds[] = 'rc_user = 0';
- }
- if ( $hideAnonymousUsers ) {
- $conds[] = 'rc_user != 0';
- }
-
- if ( $opts['hidemyself'] ) {
- if ( $this->getUser()->getId() ) {
- $conds[] = 'rc_user != ' . $dbr->addQuotes( $this->getUser()->getId() );
- } else {
- $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $this->getUser()->getName() );
- }
- }
-
- # Namespace filtering
- if ( $opts['namespace'] !== '' ) {
- $selectedNS = $dbr->addQuotes( $opts['namespace'] );
- $operator = $opts['invert'] ? '!=' : '=';
- $boolean = $opts['invert'] ? 'AND' : 'OR';
-
- # namespace association (bug 2429)
- if ( !$opts['associated'] ) {
- $condition = "rc_namespace $operator $selectedNS";
- } else {
- # Also add the associated namespace
- $associatedNS = $dbr->addQuotes(
- MWNamespace::getAssociated( $opts['namespace'] )
- );
- $condition = "(rc_namespace $operator $selectedNS "
- . $boolean
- . " rc_namespace $operator $associatedNS)";
- }
-
- $conds[] = $condition;
- }
-
return $conds;
}
$query_options = array();
$uid = $this->getUser()->getId();
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = $this->getDB();
$limit = $opts['limit'];
$namespace = $opts['namespace'];
$invert = $opts['invert'];
$showWatcherCount = $wgRCShowWatchingUsers && $this->getUser()->getOption( 'shownumberswatching' );
$watcherCache = array();
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = $this->getDB();
$counter = 1;
$list = ChangesList::newFromContext( $this->getContext() );
}
}
- /**
- * Get the query string to append to feed link URLs.
- *
- * @return string
- */
- public function getFeedQuery() {
- global $wgFeedLimit;
-
- $this->getOptions()->validateIntBounds( 'limit', 0, $wgFeedLimit );
- $options = $this->getOptions()->getChangedValues();
-
- // wfArrayToCgi() omits options set to null or false
- foreach ( $options as &$value ) {
- if ( $value === false ) {
- $value = '0';
- }
- }
- unset( $value );
-
- return wfArrayToCgi( $options );
- }
-
/**
* Return the text to be displayed above the changes
*
$this->setBottomText( $opts );
}
+ /**
+ * Send the text to be displayed above the options
+ *
+ * @param FormOptions $opts Unused
+ */
+ function setTopText( FormOptions $opts ) {
+ global $wgContLang;
+
+ $message = $this->msg( 'recentchangestext' )->inContentLanguage();
+ if ( !$message->isDisabled() ) {
+ $this->getOutput()->addWikiText(
+ Html::rawElement( 'p',
+ array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
+ "\n" . $message->plain() . "\n"
+ ),
+ /* $lineStart */ false,
+ /* $interface */ false
+ );
+ }
+ }
+
/**
* Get options to be displayed in a form
*
}
/**
- * Return the legend displayed within the fieldset.
- *
- * This method is also called from SpecialWatchlist.
+ * Add page-specific modules.
+ */
+ protected function addModules() {
+ parent::addModules();
+ $out = $this->getOutput();
+ $out->addModules( 'mediawiki.special.recentchanges' );
+ }
+
+ /**
+ * Get last modified date, for client caching
+ * Don't use this if we are using the patrol feature, patrol changes don't
+ * update the timestamp
*
- * @param $context the object available as $this in non-static functions
- * @return string
+ * @param string $feedFormat
+ * @return string|bool
*/
- public static function makeLegend( IContextSource $context ) {
- global $wgRecentChangesFlags;
- $user = $context->getUser();
- # The legend showing what the letters and stuff mean
- $legend = Xml::openElement( 'dl' ) . "\n";
- # Iterates through them and gets the messages for both letter and tooltip
- $legendItems = $wgRecentChangesFlags;
- if ( !$user->useRCPatrol() ) {
- unset( $legendItems['unpatrolled'] );
- }
- foreach ( $legendItems as $key => $legendInfo ) { # generate items of the legend
- $label = $legendInfo['title'];
- $letter = $legendInfo['letter'];
- $cssClass = isset( $legendInfo['class'] ) ? $legendInfo['class'] : $key;
-
- $legend .= Xml::element( 'dt',
- array( 'class' => $cssClass ), $context->msg( $letter )->text()
- ) . "\n";
- if ( $key === 'newpage' ) {
- $legend .= Xml::openElement( 'dd' );
- $legend .= $context->msg( $label )->escaped();
- $legend .= ' ' . $context->msg( 'recentchanges-legend-newpage' )->parse();
- $legend .= Xml::closeElement( 'dd' ) . "\n";
- } else {
- $legend .= Xml::element( 'dd', array(),
- $context->msg( $label )->text()
- ) . "\n";
+ public function checkLastModified( $feedFormat ) {
+ $dbr = $this->getDB();
+ $lastmod = $dbr->selectField( 'recentchanges', 'MAX(rc_timestamp)', false, __METHOD__ );
+ if ( $feedFormat || !$this->getUser()->useRCPatrol() ) {
+ if ( $lastmod && $this->getOutput()->checkLastModified( $lastmod ) ) {
+ # Client cache fresh and headers sent, nothing more to do.
+ return false;
}
}
- # (+-123)
- $legend .= Xml::tags( 'dt',
- array( 'class' => 'mw-plusminus-pos' ),
- $context->msg( 'recentchanges-legend-plusminus' )->parse()
- ) . "\n";
- $legend .= Xml::element(
- 'dd',
- array( 'class' => 'mw-changeslist-legend-plusminus' ),
- $context->msg( 'recentchanges-label-plusminus' )->text()
- ) . "\n";
- $legend .= Xml::closeElement( 'dl' ) . "\n";
-
- # Collapsibility
- $legend =
- '<div class="mw-changeslist-legend">' .
- $context->msg( 'recentchanges-legend-heading' )->parse() .
- '<div class="mw-collapsible-content">' . $legend . '</div>' .
- '</div>';
-
- return $legend;
+
+ return $lastmod;
}
/**
- * Send the text to be displayed above the options
+ * Return an array with a ChangesFeed object and ChannelFeed object.
*
- * @param FormOptions $opts Unused
+ * @param string $feedFormat Feed's format (either 'rss' or 'atom')
+ * @return array
*/
- function setTopText( FormOptions $opts ) {
- global $wgContLang;
+ public function getFeedObject( $feedFormat ) {
+ $changesFeed = new ChangesFeed( $feedFormat, 'rcfeed' );
+ $formatter = $changesFeed->getFeedObject(
+ $this->msg( 'recentchanges' )->inContentLanguage()->text(),
+ $this->msg( 'recentchanges-feed-description' )->inContentLanguage()->text(),
+ $this->getPageTitle()->getFullURL()
+ );
- $message = $this->msg( 'recentchangestext' )->inContentLanguage();
- if ( !$message->isDisabled() ) {
- $this->getOutput()->addWikiText(
- Html::rawElement( 'p',
- array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
- "\n" . $message->plain() . "\n"
- ),
- /* $lineStart */ false,
- /* $interface */ false
- );
- }
+ return array( $changesFeed, $formatter );
}
/**
- * Send the text to be displayed after the options, for use in subclasses.
+ * Get the query string to append to feed link URLs.
*
- * @param FormOptions $opts
+ * @return string
*/
- function setBottomText( FormOptions $opts ) {
+ public function getFeedQuery() {
+ global $wgFeedLimit;
+
+ $this->getOptions()->validateIntBounds( 'limit', 0, $wgFeedLimit );
+ $options = $this->getOptions()->getChangedValues();
+
+ // wfArrayToCgi() omits options set to null or false
+ foreach ( $options as &$value ) {
+ if ( $value === false ) {
+ $value = '0';
+ }
+ }
+ unset( $value );
+
+ return wfArrayToCgi( $options );
}
/**
/**
* Filter $rows by categories set in $opts
*
- * @param array $rows Database rows
+ * @param ResultWrapper $rows Database rows
* @param FormOptions $opts
*/
function filterByCategories( &$rows, FormOptions $opts ) {
return "{$note}$rclinks<br />$rclistfrom";
}
- /**
- * Add page-specific modules.
- */
- protected function addModules() {
- $out = $this->getOutput();
- $out->addModules( 'mediawiki.special.recentchanges' );
- // This modules include styles and behavior for the legend box, load it unconditionally
- $out->addModuleStyles( 'mediawiki.special.changeslist' );
- $out->addModules( 'mediawiki.special.changeslist.js' );
- }
-
- protected function getGroupName() {
- return 'changes';
+ public function isIncludable() {
+ return true;
}
}
$opts['target'] = $par;
}
- public function getFeedObject( $feedFormat ) {
- $feed = new ChangesFeed( $feedFormat, false );
- $feedObj = $feed->getFeedObject(
- $this->msg( 'recentchangeslinked-title', $this->getTargetTitle()->getPrefixedText() )
- ->inContentLanguage()->text(),
- $this->msg( 'recentchangeslinked-feed' )->inContentLanguage()->text(),
- $this->getPageTitle()->getFullURL()
- );
- return array( $feed, $feedObj );
- }
-
public function doMainQuery( $conds, $opts ) {
$target = $opts['target'];
$showlinkedto = $opts['showlinkedto'];
return $res;
}
+ function setTopText( FormOptions $opts ) {
+ $target = $this->getTargetTitle();
+ if ( $target ) {
+ $this->getOutput()->addBacklinkSubtitle( $target );
+ }
+ }
+
/**
* Get options to be displayed in a form
*
return $extraOpts;
}
+ public function getFeedObject( $feedFormat ) {
+ $feed = new ChangesFeed( $feedFormat, false );
+ $feedObj = $feed->getFeedObject(
+ $this->msg( 'recentchangeslinked-title', $this->getTargetTitle()->getPrefixedText() )
+ ->inContentLanguage()->text(),
+ $this->msg( 'recentchangeslinked-feed' )->inContentLanguage()->text(),
+ $this->getPageTitle()->getFullURL()
+ );
+ return array( $feed, $feedObj );
+ }
+
/**
* @return Title
*/
}
return $this->rclTargetTitle;
}
-
- function setTopText( FormOptions $opts ) {
- $target = $this->getTargetTitle();
- if ( $target ) {
- $this->getOutput()->addBacklinkSubtitle( $target );
- }
- }
}
/** The RevDel_List object, storing the list of items to be deleted/undeleted */
var $list;
+ /** Was the DB modified in this request */
+ protected $wasSaved = false;
+
/**
* UI labels for each type.
*/
# Show relevant lines from the deletion log
$deleteLogPage = new LogPage( 'delete' );
$output->addHTML( "<h2>" . $deleteLogPage->getName()->escaped() . "</h2>\n" );
- LogEventsList::showLogExtract( $output, 'delete',
- $this->targetObj, '', array( 'lim' => 25, 'conds' => $qc ) );
+ LogEventsList::showLogExtract(
+ $output,
+ 'delete',
+ $this->targetObj,
+ '', /* user */
+ array( 'lim' => 25, 'conds' => $qc, 'useMaster' => $this->wasSaved )
+ );
# Show relevant lines from the suppression log
if ( $user->isAllowed( 'suppressionlog' ) ) {
$suppressLogPage = new LogPage( 'suppress' );
$output->addHTML( "<h2>" . $suppressLogPage->getName()->escaped() . "</h2>\n" );
- LogEventsList::showLogExtract( $output, 'suppress',
- $this->targetObj, '', array( 'lim' => 25, 'conds' => $qc ) );
+ LogEventsList::showLogExtract(
+ $output,
+ 'suppress',
+ $this->targetObj,
+ '',
+ array( 'lim' => 25, 'conds' => $qc, 'useMaster' => $this->wasSaved )
+ );
}
}
protected function success() {
$this->getOutput()->setPageTitle( $this->msg( 'actioncomplete' ) );
$this->getOutput()->wrapWikiMsg( "<span class=\"success\">\n$1\n</span>", $this->typeLabels['success'] );
+ $this->wasSaved = true;
$this->list->reloadFromMaster();
$this->showForm();
}
$out .= Html::hidden( 'fulltext', 'Search' ) . "\n";
$out .= Xml::submitButton(
$this->msg( 'searchbutton' )->text(),
- array( 'class' => array( 'mw-ui-button', 'mw-ui-primary' ) )
+ array( 'class' => array( 'mw-ui-button', 'mw-ui-progressive' ) )
) . "\n";
return $out . $this->didYouMeanHtml;
}
$u->setRealName( $this->mRealName );
$abortError = '';
- if ( !wfRunHooks( 'AbortNewAccount', array( $u, &$abortError ) ) ) {
+ $abortStatus = null;
+ if ( !wfRunHooks( 'AbortNewAccount', array( $u, &$abortError, &$abortStatus ) ) ) {
// Hook point to add extra creation throttles and blocks
wfDebug( "LoginForm::addNewAccountInternal: a hook blocked creation\n" );
- $abortError = new RawMessage( $abortError );
- $abortError->text();
- return Status::newFatal( $abortError );
+ if ( $abortStatus === null ) {
+ // Report back the old string as a raw message status.
+ // This will report the error back as 'createaccount-hook-aborted'
+ // with the given string as the message.
+ // To return a different error code, return a Status object.
+ $abortError = new Message( 'createaccount-hook-aborted', array( $abortError ) );
+ $abortError->text();
+ return Status::newFatal( $abortError );
+ } else {
+ // For MediaWiki 1.23+ and updated hooks, return the Status object
+ // returned from the hook.
+ return $abortStatus;
+ }
}
// Hook point to check for exempt from account creation throttle
// Explode the sub page information into useful bits
$parts = explode( '/', (string)$par );
+ $extNode = null;
if ( isset( $parts[1] ) ) {
$extName = str_replace( '_', ' ', $parts[1] );
- $extNode = null;
// Find it!
foreach ( $wgExtensionCredits as $group => $extensions ) {
foreach ( $extensions as $ext ) {
__METHOD__
);
foreach ( $categoryRes as $row ) {
- $this->currentCategoryCounts[ $row->cat_title ] = $row->cat_pages;
+ $this->currentCategoryCounts[ $row->cat_title ] = intval( $row->cat_pages );
}
// Back to start for display
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @ingroup SpecialPage Watchlist
+ * @ingroup SpecialPage
*/
-class SpecialWatchlist extends SpecialRecentChanges {
- protected $customFilters;
+/**
+ * A special page that lists last changes made to the wiki,
+ * limited to user-defined list of titles.
+ *
+ * @ingroup SpecialPage
+ */
+class SpecialWatchlist extends ChangesListSpecialPage {
/**
* Constructor
*/
parent::__construct( $page, $restriction );
}
- public function isIncludable() {
- return false;
+ /**
+ * Main execution point
+ *
+ * @param string $subpage
+ */
+ function execute( $subpage ) {
+ global $wgEnotifWatchlist, $wgShowUpdatedMarker;
+
+ // Anons don't get a watchlist
+ $this->requireLogin( 'watchlistanontext' );
+
+ $output = $this->getOutput();
+ $request = $this->getRequest();
+
+ $mode = SpecialEditWatchlist::getMode( $request, $subpage );
+ if ( $mode !== false ) {
+ if ( $mode === SpecialEditWatchlist::EDIT_RAW ) {
+ $title = SpecialPage::getTitleFor( 'EditWatchlist', 'raw' );
+ } else {
+ $title = SpecialPage::getTitleFor( 'EditWatchlist' );
+ }
+
+ $output->redirect( $title->getLocalURL() );
+ return;
+ }
+
+ $this->checkPermissions();
+
+ $user = $this->getUser();
+ $opts = $this->getOptions();
+
+ if ( ( $wgEnotifWatchlist || $wgShowUpdatedMarker ) && $request->getVal( 'reset' ) &&
+ $request->wasPosted() )
+ {
+ $user->clearAllNotifications();
+ $output->redirect( $this->getPageTitle()->getFullURL( $opts->getChangedValues() ) );
+ return;
+ }
+
+ parent::execute( $subpage );
}
/**
$opts = parent::getDefaultOptions();
$user = $this->getUser();
- // Overwrite RC options with Watchlist options
- // (calling #add() again is okay)
$opts->add( 'days', $user->getOption( 'watchlistdays' ), FormOptions::FLOAT );
+
$opts->add( 'hideminor', $user->getBoolOption( 'watchlisthideminor' ) );
$opts->add( 'hidebots', $user->getBoolOption( 'watchlisthidebots' ) );
$opts->add( 'hideanons', $user->getBoolOption( 'watchlisthideanons' ) );
$opts->add( 'hidepatrolled', $user->getBoolOption( 'watchlisthidepatrolled' ) );
$opts->add( 'hidemyself', $user->getBoolOption( 'watchlisthideown' ) );
- // Add new ones
$opts->add( 'extended', $user->getBoolOption( 'extendwatchlist' ) );
return $opts;
}
+ /**
+ * Get custom show/hide filters
+ *
+ * @return array Map of filter URL param names to properties (msg/default)
+ */
+ protected function getCustomFilters() {
+ if ( $this->customFilters === null ) {
+ $this->customFilters = array();
+ wfRunHooks( 'SpecialWatchlistFilters', array( $this, &$this->customFilters ) );
+ }
+
+ return $this->customFilters;
+ }
+
/**
* Fetch values for a FormOptions object from the WebRequest associated with this instance.
*
return $opts;
}
- /**
- * Get custom show/hide filters
- *
- * @return array Map of filter URL param names to properties (msg/default)
- */
- protected function getCustomFilters() {
- if ( $this->customFilters === null ) {
- $this->customFilters = array();
- wfRunHooks( 'SpecialWatchlistFilters', array( $this, &$this->customFilters ) );
- }
-
- return $this->customFilters;
- }
-
- /**
- * Process $par and put options found if $opts. Not used for Watchlist.
- *
- * @param string $par
- * @param FormOptions $opts
- */
- public function parseParameters( $par, FormOptions $opts ) {
- }
-
- /**
- * Get the current FormOptions for this request
- */
- public function getOptions() {
- if ( $this->rcOptions === null ) {
- $this->rcOptions = $this->setup( null );
- }
-
- return $this->rcOptions;
- }
-
- /**
- * Execute
- * @param $par Parameter passed to the page
- */
- function execute( $par ) {
- global $wgRCShowWatchingUsers, $wgEnotifWatchlist, $wgShowUpdatedMarker;
-
- $user = $this->getUser();
- $output = $this->getOutput();
-
- # Anons don't get a watchlist
- $this->requireLogin( 'watchlistanontext' );
-
- // Check permissions
- $this->checkPermissions();
-
- $request = $this->getRequest();
- $opts = $this->getOptions();
-
- $mode = SpecialEditWatchlist::getMode( $request, $par );
- if ( $mode !== false ) {
- if ( $mode === SpecialEditWatchlist::EDIT_RAW ) {
- $title = SpecialPage::getTitleFor( 'EditWatchlist', 'raw' );
- } else {
- $title = SpecialPage::getTitleFor( 'EditWatchlist' );
- }
-
- $output->redirect( $title->getLocalURL() );
- return;
- }
-
- if ( ( $wgEnotifWatchlist || $wgShowUpdatedMarker ) && $request->getVal( 'reset' ) &&
- $request->wasPosted() )
- {
- $user->clearAllNotifications();
- $output->redirect( $this->getPageTitle()->getFullURL( $opts->getChangedValues() ) );
- return;
- }
-
- $this->setHeaders();
- $this->outputHeader();
- $this->addModules();
-
- $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
-
- $this->numItems = $this->countItems( $dbr ); // TODO kill me
- if ( $this->numItems == 0 ) {
- $output->addWikiMsg( 'nowatchlist' );
- return;
- }
-
- // Fetch results, prepare a batch link existence check query
- $conds = $this->buildMainQueryConds( $opts );
- $rows = $this->doMainQuery( $conds, $opts );
- $this->numRows = $rows->numRows(); // TODO kill me
- if ( $rows === false ) {
- $this->doHeader( $opts );
-
- return;
- }
-
- $feedFormat = $this->getRequest()->getVal( 'feed' );
- if ( !$feedFormat ) {
- $batch = new LinkBatch;
- foreach ( $rows as $row ) {
- $batch->add( NS_USER, $row->rc_user_text );
- $batch->add( NS_USER_TALK, $row->rc_user_text );
- $batch->add( $row->rc_namespace, $row->rc_title );
- }
- $batch->execute();
- }
- if ( $feedFormat ) {
- list( $changesFeed, $formatter ) = $this->getFeedObject( $feedFormat );
- /** @var ChangesFeed $changesFeed */
- $changesFeed->execute( $formatter, $rows, $lastmod, $opts );
- } else {
- $this->webOutput( $rows, $opts );
- }
-
- $rows->free();
- }
-
/**
* Return an array of conditions depending of options set in $opts
*
* @return array
*/
public function buildMainQueryConds( FormOptions $opts ) {
- $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
- $conds = array();
- $user = $this->getUser();
+ $dbr = $this->getDB();
+ $conds = parent::buildMainQueryConds( $opts );
// Calculate cutoff
if ( $opts['days'] > 0 ) {
$conds[] = 'rc_timestamp > ' . $dbr->addQuotes( $dbr->timestamp( time() - intval( $opts['days'] * 86400 ) ) );
}
- # Toggles
- if ( $opts['hidemyself'] ) {
- $conds[] = 'rc_user != ' . $user->getId();
- }
- if ( $opts['hidebots'] ) {
- $conds[] = 'rc_bot = 0';
- }
- if ( $opts['hideminor'] ) {
- $conds[] = 'rc_minor = 0';
- }
- if ( $opts['hideliu'] ) {
- $conds[] = 'rc_user = 0';
- }
- if ( $opts['hideanons'] ) {
- $conds[] = 'rc_user != 0';
- }
- if ( $user->useRCPatrol() && $opts['hidepatrolled'] ) {
- $conds[] = 'rc_patrolled != 1';
- }
-
- # Namespace filtering
- if ( $opts['namespace'] !== '' ) {
- $selectedNS = $dbr->addQuotes( $opts['namespace'] );
- $operator = $opts['invert'] ? '!=' : '=';
- $boolean = $opts['invert'] ? 'AND' : 'OR';
-
- # namespace association (bug 2429)
- if ( !$opts['associated'] ) {
- $condition = "rc_namespace $operator $selectedNS";
- } else {
- # Also add the associated namespace
- $associatedNS = $dbr->addQuotes(
- MWNamespace::getAssociated( $opts['namespace'] )
- );
- $condition = "(rc_namespace $operator $selectedNS "
- . $boolean
- . " rc_namespace $operator $associatedNS)";
- }
-
- $conds[] = $condition;
- }
-
return $conds;
}
public function doMainQuery( $conds, $opts ) {
global $wgShowUpdatedMarker;
- $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
+ $dbr = $this->getDB();
$user = $this->getUser();
# Toggle watchlist content (all recent edits or just the latest)
if ( $opts['extended'] ) {
return $dbr->select( $tables, $fields, $conds, __METHOD__, $options, $join_conds );
}
+ /**
+ * Return a DatabaseBase object for reading
+ *
+ * @return DatabaseBase
+ */
+ protected function getDB() {
+ return wfGetDB( DB_SLAVE, 'watchlist' );
+ }
+
/**
* Send output to the OutputPage object, only called if not used feeds
*
- * @param array $rows Database rows
+ * @param ResultWrapper $rows Database rows
* @param FormOptions $opts
*/
public function webOutput( $rows, $opts ) {
global $wgShowUpdatedMarker, $wgRCShowWatchingUsers;
- $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
+ $dbr = $this->getDB();
$user = $this->getUser();
$dbr->dataSeek( $rows, 0 );
}
}
- function setTopText( FormOptions $opts ) {
- global $wgEnotifWatchlist, $wgShowUpdatedMarker;
-
- $nondefaults = $opts->getChangedValues();
- $form = "";
- $user = $this->getUser();
-
- # Show watchlist header
- $form .= "<p>";
- $form .= $this->msg( 'watchlist-details' )->numParams( $this->numItems )->parse() . "\n";
- if ( $wgEnotifWatchlist && $user->getOption( 'enotifwatchlistpages' ) ) {
- $form .= $this->msg( 'wlheader-enotif' )->parse() . "\n";
- }
- if ( $wgShowUpdatedMarker ) {
- $form .= $this->msg( 'wlheader-showupdated' )->parse() . "\n";
- }
- $form .= "</p>";
-
- if ( $wgShowUpdatedMarker ) {
- $form .= Xml::openElement( 'form', array( 'method' => 'post',
- 'action' => $this->getPageTitle()->getLocalURL(),
- 'id' => 'mw-watchlist-resetbutton' ) ) . "\n" .
- Xml::submitButton( $this->msg( 'enotif_reset' )->text(), array( 'name' => 'dummy' ) ) . "\n" .
- Html::hidden( 'reset', 'all' ) . "\n";
- foreach ( $nondefaults as $key => $value ) {
- $form .= Html::hidden( $key, $value ) . "\n";
- }
- $form .= Xml::closeElement( 'form' ) . "\n";
- }
-
- $form .= Xml::openElement( 'form', array(
- 'method' => 'post',
- 'action' => $this->getPageTitle()->getLocalURL(),
- 'id' => 'mw-watchlist-form'
- ) );
- $form .= Xml::fieldset(
- $this->msg( 'watchlist-options' )->text(),
- false,
- array( 'id' => 'mw-watchlist-options' )
- );
-
- $form .= SpecialRecentChanges::makeLegend( $this->getContext() );
-
- $this->getOutput()->addHTML( $form );
- }
-
/**
* Return the text to be displayed above the changes
*
* @return string XHTML
*/
public function doHeader( $opts ) {
- global $wgScript;
-
$user = $this->getUser();
$this->setTopText( $opts );
$wlInfo = '';
if ( $opts['days'] > 0 ) {
$timestamp = wfTimestampNow();
- $wlInfo = $this->msg( 'wlnote' )->numParams( $this->numRows, round( $opts['days'] * 24 ) )->params(
+ $wlInfo = $this->msg( 'wlnote2' )->numParams( round( $opts['days'] * 24 ) )->params(
$lang->userDate( $timestamp, $user ), $lang->userTime( $timestamp, $user ) )->parse() . "<br />\n";
}
$this->setBottomText( $opts );
}
+ function setTopText( FormOptions $opts ) {
+ global $wgEnotifWatchlist, $wgShowUpdatedMarker;
+
+ $nondefaults = $opts->getChangedValues();
+ $form = "";
+ $user = $this->getUser();
+
+ $dbr = $this->getDB();
+ $numItems = $this->countItems( $dbr );
+
+ // Show watchlist header
+ $form .= "<p>";
+ if ( $numItems == 0 ) {
+ $form .= $this->msg( 'nowatchlist' )->parse() . "\n";
+ } else {
+ $form .= $this->msg( 'watchlist-details' )->numParams( $numItems )->parse() . "\n";
+ if ( $wgEnotifWatchlist && $user->getOption( 'enotifwatchlistpages' ) ) {
+ $form .= $this->msg( 'wlheader-enotif' )->parse() . "\n";
+ }
+ if ( $wgShowUpdatedMarker ) {
+ $form .= $this->msg( 'wlheader-showupdated' )->parse() . "\n";
+ }
+ }
+ $form .= "</p>";
+
+ if ( $numItems > 0 && $wgShowUpdatedMarker ) {
+ $form .= Xml::openElement( 'form', array( 'method' => 'post',
+ 'action' => $this->getPageTitle()->getLocalURL(),
+ 'id' => 'mw-watchlist-resetbutton' ) ) . "\n" .
+ Xml::submitButton( $this->msg( 'enotif_reset' )->text(), array( 'name' => 'dummy' ) ) . "\n" .
+ Html::hidden( 'reset', 'all' ) . "\n";
+ foreach ( $nondefaults as $key => $value ) {
+ $form .= Html::hidden( $key, $value ) . "\n";
+ }
+ $form .= Xml::closeElement( 'form' ) . "\n";
+ }
+
+ $form .= Xml::openElement( 'form', array(
+ 'method' => 'post',
+ 'action' => $this->getPageTitle()->getLocalURL(),
+ 'id' => 'mw-watchlist-form'
+ ) );
+ $form .= Xml::fieldset(
+ $this->msg( 'watchlist-options' )->text(),
+ false,
+ array( 'id' => 'mw-watchlist-options' )
+ );
+
+ $form .= SpecialRecentChanges::makeLegend( $this->getContext() );
+
+ $this->getOutput()->addHTML( $form );
+ }
+
protected function showHideLink( $options, $message, $name, $value ) {
$label = $this->msg( $value ? 'show' : 'hide' )->escaped();
$options[$name] = 1 - (int)$value;
$this->getMsg( $this->data['loggedin'] ? 'createacct-another-submit' : 'createacct-submit' ),
'submit',
array(
- 'class' => "mw-ui-button mw-ui-big mw-ui-block mw-ui-primary",
+ 'class' => "mw-ui-button mw-ui-big mw-ui-block mw-ui-constructive",
'id' => 'wpCreateaccount',
'tabindex' => $tabIndex++
)
echo Html::input( 'wpLoginAttempt', $this->getMsg( 'login' )->text(), 'submit', array(
'id' => 'wpLoginAttempt',
'tabindex' => '6',
- 'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-primary'
+ 'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-constructive'
) );
?>
</div>
</div>
<?php } else { ?>
<div id="mw-createaccount-cta">
- <h3 id="mw-userloginlink"><?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7" class="mw-ui-button mw-ui-constructive"><?php $this->msg( 'userlogin-joinproject' ); ?></a></h3>
+ <h3 id="mw-userloginlink"><?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7" class="mw-ui-button mw-ui-progressive"><?php $this->msg( 'userlogin-joinproject' ); ?></a></h3>
</div>
<?php } ?>
<?php } ?>
'us_key' => $key,
'us_orig_path' => $path,
'us_path' => $stashPath, // virtual URL
- 'us_props' => serialize( $fileProps ),
+ 'us_props' => $dbw->encodeBlob( serialize( $fileProps ) ),
'us_size' => $fileProps['size'],
'us_sha1' => $fileProps['sha1'],
'us_mime' => $fileProps['mime'],
<?php
+/**
+ * Methods to play with arrays.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+/**
+ * A collection of static methods to play with arrays.
+ *
+ * @since 1.21
+ */
class ArrayUtils {
/**
* Sort the given array in a pseudo-random order which depends only on the
return $i;
}
+
+ /**
+ * Do a binary search, and return the index of the largest item that sorts
+ * less than or equal to the target value.
+ *
+ * @since 1.23
+ *
+ * @param array $valueCallback A function to call to get the value with
+ * a given array index.
+ * @param int $valueCount The number of items accessible via $valueCallback,
+ * indexed from 0 to $valueCount - 1
+ * @param array $comparisonCallback A callback to compare two values, returning
+ * -1, 0 or 1 in the style of strcmp().
+ * @param string $target The target value to find.
+ *
+ * @return int|bool The item index of the lower bound, or false if the target value
+ * sorts before all items.
+ */
+ public static function findLowerBound( $valueCallback, $valueCount, $comparisonCallback, $target ) {
+ if ( $valueCount === 0 ) {
+ return false;
+ }
+
+ $min = 0;
+ $max = $valueCount;
+ do {
+ $mid = $min + ( ( $max - $min ) >> 1 );
+ $item = call_user_func( $valueCallback, $mid );
+ $comparison = call_user_func( $comparisonCallback, $target, $item );
+ if ( $comparison > 0 ) {
+ $min = $mid;
+ } elseif ( $comparison == 0 ) {
+ $min = $mid;
+ break;
+ } else {
+ $max = $mid;
+ }
+ } while ( $min < $max - 1 );
+
+ if ( $min == 0 ) {
+ $item = call_user_func( $valueCallback, $min );
+ $comparison = call_user_func( $comparisonCallback, $target, $item );
+ if ( $comparison < 0 ) {
+ // Before the first item
+ return false;
+ }
+ }
+ return $min;
+ }
+
+ /**
+ * Do array_diff_assoc() on multi-dimensional arrays.
+ *
+ * Note: empty arrays are removed.
+ *
+ * @since 1.23
+ *
+ * @param array $array1 The array to compare from
+ * @param array $array2 An array to compare against
+ * @param array ... More arrays to compare against
+ * @return array An array containing all the values from array1
+ * that are not present in any of the other arrays.
+ */
+ public static function arrayDiffAssocRecursive( $array1 ) {
+ $arrays = func_get_args();
+ array_shift( $arrays );
+ $ret = array();
+
+ foreach ( $array1 as $key => $value ) {
+ if ( is_array( $value ) ) {
+ $args = array( $value );
+ foreach ( $arrays as $array ) {
+ if ( isset( $array[$key] ) ) {
+ $args[] = $array[$key];
+ }
+ }
+ $valueret = call_user_func_array( __METHOD__, $args );
+ if ( count( $valueret ) ) {
+ $ret[$key] = $valueret;
+ }
+ } else {
+ foreach ( $arrays as $array ) {
+ if ( isset( $array[$key] ) && $array[$key] === $value ) {
+ continue 2;
+ }
+ }
+ $ret[$key] = $value;
+ }
+ }
+
+ return $ret;
+ }
}
'tog-numberheadings' => 'رقم العناوين تلقائيا',
'tog-showtoolbar' => 'أظهر شريط التحرير (يتطلب جافاسكربت)',
'tog-editondblclick' => 'عدل الصفحات عند الضغط المزدوج (جافاسكربت)',
-'tog-editsection' => 'مكن تعديل الأقسام عن طريق وصلات [عدل]',
'tog-editsectiononrightclick' => 'فعل تعديل الأقسام بواسطة كبسة الفأرة اليمين على عناوين الأقسام (جافاسكريبت)',
'tog-showtoc' => 'اعرض فهرس المحتويات (للصفحات التي تحتوي على أكثر من 3 عناوين)',
'tog-rememberpassword' => 'تذكر دخولي على هذا المتصفح (إلى {{PLURAL:$1||يوم واحد|يومين|$1 أيام|$1 يومًا|$1 يوم}} كحد أقصى)',
'tog-numberheadings' => 'Nommer opskrifte outomaties',
'tog-showtoolbar' => 'Wys redigeergereedskap',
'tog-editondblclick' => 'Dubbelkliek om te wysig',
-'tog-editsection' => 'Wys [wysig]-skakels vir elke afdeling',
'tog-editsectiononrightclick' => 'Wysig afdeling met regskliek op afdeling se titel (JavaScript)',
-'tog-showtoc' => 'Wys inhoudsopgawe (by bladsye met meer as drie opskrifte)',
'tog-rememberpassword' => "Onthou dat ek op hierdie rekenaar ingeteken het (vir 'n maksimum van $1 {{PLURAL:$1|dag|dae}})",
'tog-watchcreations' => 'Voeg bladsye wat ek skep en lêers wat ek oplaai by my dophoulys',
'tog-watchdefault' => 'Voeg bladsye en lêers wat ek wysig by my dophoulys',
'tog-numberheadings' => 'Numerar automaticament os encabezaus',
'tog-showtoolbar' => "Amostrar a barra de ferramientas d'edición (cal JavaScript)",
'tog-editondblclick' => 'Activar edición de pachinas fendo-ie doble click (cal JavaScript)',
-'tog-editsection' => 'Activar a edición por seccions usando os vinclos [editar]',
'tog-editsectiononrightclick' => "Activar a edición de seccions punchando con o botón dreito d'o ratet <br /> en os títols de seccions (cal JavaScript)",
-'tog-showtoc' => "Amostrar l'endice (ta pachinas con más de 3 seccions)",
'tog-rememberpassword' => "Remerar o mío nombre d'usuario en iste navegador (como muito por $1 {{PLURAL:$1|día|días}})",
'tog-watchcreations' => 'Cosirar as pachinas que creye',
'tog-watchdefault' => 'Cosirar as pachinas que edite',
'tog-numberheadings' => 'ترقيم العناوين تلقائيا',
'tog-showtoolbar' => 'إظهار شريط التحرير',
'tog-editondblclick' => 'تعديل الصفحات بالنقر المزدوج',
-'tog-editsection' => 'تفعيل تعديل الأقسام بالضغط على [عدل]',
'tog-editsectiononrightclick' => 'تفعيل تعديل الأقسام بالنقر باليمين على عناوين الأقسام',
-'tog-showtoc' => 'عرض فهرس المحتويات (للصفحات التي تحتوي على أكثر من 3 عناوين)',
'tog-rememberpassword' => 'تذكر دخولي بهذا المتصفح (لمدة أقصاها {{PLURAL:$1||يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}})',
'tog-watchcreations' => 'أضف الصفحات التي أنشئها والملفات التي أرفعها إلى قائمة مراقبتي.',
'tog-watchdefault' => 'أضف الصفحات والملفات التي أعدلها إلى قائمة مراقبتي',
'search-result-score' => 'الارتباط: $1%',
'search-redirect' => '(تحويلة $1)',
'search-section' => '(قسم $1)',
+'search-file-match' => '(يطابق محتوى الملف)',
'search-suggest' => 'أتقصد: $1',
'search-interwiki-caption' => 'المشاريع الشقيقة',
'search-interwiki-default' => '$1 نتيجة:',
'watchmethod-list' => 'فحص الصفحات المراقبة للتعديلات الحديثة',
'watchlistcontains' => 'تحتوي قائمة مراقبتك على {{PLURAL:$1|لا صفحات|صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}}.',
'iteminvalidname' => "مشكلة في المدخل '$1'، اسم غير صحيح...",
-'wlnote' => "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
'wlshowlast' => 'عرض آخر $1 ساعات $2 أيام $3',
'watchlist-options' => 'خيارات قائمة المراقبة',
ملخص التعديل: $PAGESUMMARY $PAGEMINOREDIT
-الاتصال بالمحرر:
+اتصل بالمحرر:
البريد: $PAGEEDITOR_EMAIL
ويكي: $PAGEEDITOR_WIKI
-لن يكون هناك إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة تلك الصفحة.
-يمكنك أيضاً إزالة العلامات عن جميع الصفحات في قائمة مراقبتك.
+لن يكون هناك إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة تلك الصفحة أثناء تواجدك. يمكنك أيضاً إزالة العلامات عن جميع الصفحات في قائمة مراقبتك.
- نظام {{SITENAME}} للإعلام بالبريد الإلكتروني
+نظام {{SITENAME}} للإشعار
--
-Ù\84تغÙ\8aÙ\8aر إعدادات اÙ\84إعÙ\84اÙ\85 بالبريد الإلكتروني الخاص بك، قم بزيارة
+Ù\84تغÙ\8aÙ\8aر إعدادات اÙ\84إشعار بالبريد الإلكتروني الخاص بك، قم بزيارة
{{canonicalurl:{{#special:Preferences}}}}
لتغيير إعدادات قائمة مراقبتك، قم بزيارة
لحذف الصفحة من قائمة مراقبتك، قم بزيارة
$UNWATCHURL
-للمقترحات والحصول على مساعدة إضافية:
+للمقترحات وللحصول على مساعدة إضافية:
{{canonicalurl: {{MediaWiki:Helppage}}}}',
'created' => 'أنشئت',
'changed' => 'غيرت',
'range_block_disabled' => 'إمكانية مدير النظام لمنع نطاق معطلة.',
'ipb_expiry_invalid' => 'تاريخ الانتهاء غير صحيح.',
'ipb_expiry_temp' => 'عمليات منع أسماء المستخدمين المخفية يجب أن تكون دائمة.',
-'ipb_hide_invalid' => 'غير قادر على إخفاء هذا الحساب؛ ربما يكون قد قام بالكثير من التعديلات.',
+'ipb_hide_invalid' => 'غير قادر على منع الحساب؛ لديه أكثر من {{PLURAL:$1|تعديل واحد|$1 تعديل}}.',
'ipb_already_blocked' => '"$1" ممنوع حالياً',
'ipb-needreblock' => '$1 ممنوع حالياً. هل تريد تغيير الإعدادات؟',
'ipb-otherblocks-header' => '{{PLURAL:$1||المنع الآخر|المنعان الآخران|المنوعات الأخرى}}',
'tooltip-pt-watchlist' => 'قائمة الصفحات التي تراقب التغييرات التي تحدث بها',
'tooltip-pt-mycontris' => 'قائمة مساهماتك',
'tooltip-pt-login' => 'يفضل أن تسجل الدخول، لكنه ليس إلزاميا.',
-'tooltip-pt-anonlogin' => 'من المفضل أن تقوم بتسجيل الدخول، هذا ليس إلزاميا.',
'tooltip-pt-logout' => 'تسجيل الخروج',
'tooltip-ca-talk' => 'نقاش عن صفحة المحتوى',
'tooltip-ca-edit' => 'يمكنك تعديل هذه الصفحة.
# Language selector for translatable SVGs
'img-lang-default' => '(اللغة الافتراضية)',
+'img-lang-info' => 'ترجم هذه الصورة إلى $1. $2',
'img-lang-go' => 'اذهب',
# Table pager
'version-hook-subscribedby' => 'يستخدم بواسطة',
'version-version' => '(نسخة $1)',
'version-svn-revision' => 'ن$1',
-'version-license' => 'الرخصة',
+'version-license' => 'ترخيص ميدياويكي',
+'version-ext-license' => 'ترخيص',
+'version-ext-colheader-name' => 'امتداد',
+'version-ext-colheader-version' => 'نسخة',
+'version-ext-colheader-license' => 'ترخيص',
+'version-ext-colheader-description' => 'وصف',
+'version-ext-colheader-credits' => 'مؤلفون',
+'version-license-title' => 'ترخيص لـ $1',
+'version-license-not-found' => 'لم يتم العثور على أي معلومات ترخيص لهذا الامتداد.',
+'version-credits-title' => 'العاملون على $1',
+'version-credits-not-found' => 'لم يتم العثور على أي معلومات للعاملين على هذا الامتداد.',
'version-poweredby-credits' => "تدار هذه الويكي بواسطة '''[https://www.mediawiki.org/ ميدياويكي]'''، حقوق النشر © 2001-$1 $2.",
'version-poweredby-others' => 'آخرون',
'version-poweredby-translators' => 'مترجمو translatewiki.net',
'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath مسار السكريبت]',
# Special:Redirect
-'redirect' => 'تØÙ\88Ù\8aÙ\84 باسÙ\85 Ù\85Ù\84Ù\81 Ø£Ù\88 اسÙ\85 Ù\85ستخدÙ\85 أو رقم مراجعة',
+'redirect' => 'تØÙ\88Ù\8aÙ\84 Øسب رÙ\82Ù\85 اÙ\84Ù\85Ù\84Ù\81 Ø£Ù\88 رÙ\82Ù\85 اÙ\84Ù\85ستخدÙ\85 Ø£Ù\88 رÙ\82Ù\85 اÙ\84صÙ\81ØØ© أو رقم مراجعة',
'redirect-legend' => 'تحويل إلى ملف أو صفحة',
'redirect-summary' => 'هذه الصفحة الخاصة تحوّل إلى ملف (باسمه) أو صفحة (برقم إحدى مراجعاتها) أو إلى صفحة مستخدم (برقمه التعريفي). الاستخدام [[{{#Special:Redirect}}/file/Example.jpg]] أو [[{{#Special:Redirect}}/revision/328429]] أو [[{{#Special:Redirect}}/user/101]].',
'redirect-submit' => 'حوّل',
'redirect-lookup' => 'ابحث في:',
'redirect-value' => 'الوجهة',
'redirect-user' => 'رقم مستخدم',
+'redirect-page' => 'معرف الصفحة',
'redirect-revision' => 'مراجعة صفحة',
'redirect-file' => 'اسم ملف',
'redirect-not-exists' => 'المطلوب غير موجود',
'api-error-overwrite' => 'لا يسمح بالكتابة فوق ملف موجود.',
'api-error-stashfailed' => 'خطأ داخلي: فشل الملقم في تخزين الملفات المؤقتة.',
'api-error-publishfailed' => 'خطأ داخلي: لم ينجح الخادوم في نشر ملف مؤقت',
+'api-error-stasherror' => 'حدث خطأ أثناء رفع الملف لتخزينه.',
'api-error-timeout' => 'لم يستجب الملقم في الوقت المتوقع.',
'api-error-unclassified' => 'حدث خطأ غير معروف',
'api-error-unknown-code' => 'خطأ غير معروف : " $1 "',
'rotate-comment' => 'تدوير الصورة {{PLURAL:$1||درجة واحدة|درجتان|$1 درجات|$1 درجة}} باتجاه عقارب الساعة',
# Limit report
+'limitreport-title' => 'محلل سمات البيانات:',
'limitreport-cputime' => 'زمن المعالجة المستغرق',
'limitreport-cputime-value' => '{{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتان|$1 ثوان|$1 ثانية}}',
'limitreport-walltime' => 'الزمن الحقيقي المستغرق',
'limitreport-walltime-value' => '{{PLURAL:$1|أقل من ثانية|ثانية واحدة|ثانيتان|$1 ثوان|$1 ثانية}}',
+'limitreport-ppvisitednodes' => 'زار المعالج عقدة إحصاء',
+'limitreport-ppgeneratednodes' => 'أحدث المعالج عقدة إحصاء',
+'limitreport-postexpandincludesize' => 'بعد توسيع المساحة الشاملة',
'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|بايت|بايت}}',
-'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|بايت|بايت}}',
+'limitreport-templateargumentsize' => 'حجم نقاش القالب',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|بايت}}',
+'limitreport-expansiondepth' => 'أكثر عمق توسعي',
+'limitreport-expensivefunctioncount' => 'تحليل إحصاء وظيفة مكلف',
# Special:ExpandTemplates
'expandtemplates' => 'فرد القوالب',
'expand_templates_input' => 'النص المدخل:',
'expand_templates_output' => 'النتيجة',
'expand_templates_xml_output' => 'خرج XML',
+'expand_templates_html_output' => 'ناتج خام HTML',
'expand_templates_ok' => 'موافق',
'expand_templates_remove_comments' => 'أزل التعليقات',
'expand_templates_remove_nowiki' => 'أخفِ وسوم <nowiki> في الناتج',
'expand_templates_generate_xml' => 'اعرض شجرة XML parse',
+'expand_templates_generate_rawhtml' => 'أظهر خام HTML',
'expand_templates_preview' => 'عرض مسبق',
+# Unknown messages
+'uploadinvalidxml' => 'تعذر تحليل XML في الملف المرفوع.',
);
'tog-numberheadings' => 'رقم العناوين اوتوماتيك',
'tog-showtoolbar' => 'بين شريط التعديل',
'tog-editondblclick' => 'عدل الصفح لما تدوس مرتين',
-'tog-editsection' => 'اسمح بـ تعديل الاجزاء عن طريق لينكات [تعديل]',
'tog-editsectiononrightclick' => 'اسمح بـ تعديل الاجزاء لما تعمل كليك يمين بـالماوس على عناوين الاجزاء',
-'tog-showtoc' => 'بين جدول المحتويات (بتاع الصفح اللى فيها اكتر من 3 عناوين)',
'tog-rememberpassword' => ' (لمدة $1 {{PLURAL:$1|يوم|يوم}})خليك فاكر دخولى على الكمبيوتر دا',
'tog-watchcreations' => 'زوّد الصفح اللى ابتديتها على ليستة الصفح اللى باراقبها.',
'tog-watchdefault' => 'زوّد الصفح اللى باعدلها على ليستة الصفح اللى باراقبها',
'watchmethod-list' => 'التشييك فى الصفحات المتراقبة على التعديلات الاخيرة',
'watchlistcontains' => 'لستة المراقبة بتاعتك فيها $1 {{PLURAL:$1|صفحة|صفحات}}.',
'iteminvalidname' => "مشكلة فى '$1'، اسم مش صحيح...",
-'wlnote' => "تحت فى {{PLURAL:$1|آخر تغيير|آخر '''$1''' تغيير}} فى آخر {{PLURAL:$2|ساعه|'''$2''' ساعه}}، من الوقت $3، $4.",
'wlshowlast' => 'عرض اخر $1 ساعات $2 ايام $3',
'watchlist-options' => 'اختيارات قايمة المراقبة',
'blanknamespace' => '(رئيسى)',
# Contributions
-'contributions' => 'تعديلات اليوزر {{GENDER:$1|اليوزر|اليوزره}}',
+'contributions' => 'تعديلات {{GENDER:$1|اليوزر|اليوزره}}',
'contributions-title' => 'مساهمات اليوزر ل$1',
'mycontris' => 'تعديلاتى',
'contribsub2' => 'ل{{GENDER:$3|$1}} ($2)',
'range_block_disabled' => 'إمكانيةالسيسوب لمنع نطاق متعطلة.',
'ipb_expiry_invalid' => 'تاريخ الانتهاء مش صحيح.',
'ipb_expiry_temp' => 'عمليات منع أسماء اليوزرز المستخبية لازم تكون على طول.',
-'ipb_hide_invalid' => 'ماقدرناش نخفى الحساب دا; يمكن يكون عنده تعديلات كتيره قوى.',
+'ipb_hide_invalid' => 'ماقدرناش نخفى الحساب دا؛ هو عنده اكتر من {{PLURAL:$1|تعديل واحد|$1 تعديل}}.',
'ipb_already_blocked' => '"$1" ممنوع فعلا',
'ipb-needreblock' => '$1 ممنوع فعلا. عايز تغير الإعدادات؟',
'ipb-otherblocks-header' => '{{PLURAL:$1||المنع التانى|المنعين التانيين|المنوعات التانيين}}',
'tooltip-pt-watchlist' => 'ليستة الصفح اللى بتراقب التعديلات فيها',
'tooltip-pt-mycontris' => 'ليستة تعديلاتك',
'tooltip-pt-login' => 'يستحسن تسجل دخولك; لكن, ده مش اجبارى',
-'tooltip-pt-anonlogin' => 'من الأفضل انك تسجل دخولك، لكن ده مش إجبارى.',
'tooltip-pt-logout' => 'خروج',
'tooltip-ca-talk' => 'مناقشة صفحة الموضوع',
'tooltip-ca-edit' => 'ممكن تعدل الصفحه دى.
'tog-numberheadings' => 'শীৰ্ষকত স্বয়ংক্ৰিয়ভাৱে ক্ৰমিক নং দিয়ক',
'tog-showtoolbar' => 'সম্পাদনা দণ্ডিকা দেখুৱাওক',
'tog-editondblclick' => 'দুবাৰ ক্লিক কৰি পৃষ্ঠা সম্পাদনা কৰিব পাৰি',
-'tog-editsection' => '[সম্পাদনা] সংযোগৰ জৰিয়তে অনুচ্ছেদ সম্পাদনা কৰা সক্ৰিয় কৰক',
'tog-editsectiononrightclick' => 'অনুচ্ছেদৰ শিৰোনামাত ৰাইট্ ক্লিক টিপি সম্পাদনা কৰাটো সক্ৰিয় কৰক',
-'tog-showtoc' => 'শিৰোনামাৰ সূচী দেখুৱাওক (যিবোৰ পৃষ্ঠাত তিনিটাতকৈ বেছি শিৰোনামা আছে)',
'tog-rememberpassword' => 'মোৰ প্ৰৱেশ এই কম্পিউটাৰত মনত ৰাখক (সৰ্বাধিক $1 {{PLURAL:$1|দিনলৈ|দিনলৈ}})',
'tog-watchcreations' => 'মই সৃষ্টি সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক',
'tog-watchdefault' => 'মই সম্পাদনা কৰা সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক',
'watchmethod-list' => 'লক্ষ্য কৰা পৃষ্ঠাসমূহ শেহতীয়া সম্পাদনাৰ বাবে পৰীক্ষা কৰা হৈছে',
'watchlistcontains' => 'আপোনাৰ লক্ষ্য-তালিকাত $1 খন {{PLURAL:$1|পৃষ্ঠা|পৃষ্ঠা}} আছে ।',
'iteminvalidname' => "'$1' আইটেমটোৰ লগত সমস্যা হৈছে, অবৈধ নাম...",
-'wlnote' => "তলত {{PLURAL:$1| হ'ল সৰ্বশেষ পৰিৱৰ্তন|হ'ল সৰ্বশেষ '''$1''' পৰিৱৰ্তনসমূহ}} সৰ্বশেষ {{PLURAL:$2|ঘন্টা|'''$2''' ঘন্টা}}, $3, $4 -ৰ হিচাপে।",
'wlshowlast' => 'যোৱা $1 ঘণ্টা $2 দিন $3 চাওক',
'watchlist-options' => 'লক্ষ্য-তালিকা পছন্দসমূহ',
'allmessages-prefix' => 'উপসৰ্গ দি চেকক',
'allmessages-language' => 'ভাষা:',
'allmessages-filter-submit' => 'যাওক',
+'allmessages-filter-translate' => 'ভাঙনি কৰক',
# Thumbnails
'thumbnail-more' => 'ডাঙৰকৈ চাওক',
'tooltip-pt-watchlist' => 'আপুনি সালসলনিৰ গতিবিধি লক্ষ্য কৰি থকা পৃষ্ঠাসমূহৰ সুচী',
'tooltip-pt-mycontris' => 'আপোনাৰ বৰঙণিৰ তালিকা',
'tooltip-pt-login' => "বাধ্যতামূলক নহ'লেও প্ৰৱেশ কৰাটো বাঞ্চনীয়",
-'tooltip-pt-anonlogin' => 'বাধ্যতামূলক নহ’লেও প্ৰৱেশ কৰাটো বাঞ্চনীয়',
'tooltip-pt-logout' => 'প্ৰস্থান',
'tooltip-ca-talk' => 'সংশ্লিষ্ট প্ৰবন্ধ সম্পৰ্কীয় আলোচনা',
'tooltip-ca-edit' => 'আপুনি এই পৃষ্ঠাটো সালসলনি কৰিব পাৰে, অনুগ্ৰহ কৰি সালসলনি সাচী থোৱাৰ আগতে খচৰা চাই লব',
'version-hook-subscribedby' => 'চাবস্ক্ৰাইব কৰিছে',
'version-version' => '(সংস্কৰণ $1)',
'version-license' => 'অনুজ্ঞাপত্ৰ',
+'version-ext-license' => 'অনুজ্ঞাপত্ৰ',
+'version-ext-colheader-name' => 'এক্সটেন্চন',
+'version-ext-colheader-version' => 'সংস্কৰণ',
+'version-ext-colheader-license' => 'অনুজ্ঞাপত্ৰ',
+'version-ext-colheader-description' => 'বিৱৰণ',
+'version-ext-colheader-credits' => 'লেখকসকল',
'version-poweredby-credits' => "এই ৱিকি '''[https://www.mediawiki.org/ মিডিয়াৱিকিৰ]''' দ্বাৰা প্ৰচলিত , কপিৰাইট © ২০০১-$1 $2.",
'version-poweredby-others' => 'অন্য',
'version-poweredby-translators' => 'translatewiki.net অনুবাদকসকল',
'tog-numberheadings' => 'Autonumberar los encabezaos',
'tog-showtoolbar' => "Amosar la barra de ferramientes d'edición",
'tog-editondblclick' => 'Editar páxines con doble clic',
-'tog-editsection' => "Activar la edición de seiciones per aciu d'enllaces [editar]",
'tog-editsectiononrightclick' => 'Activar la edición de seiciones calcando col botón drechu nos títulos de seición',
-'tog-showtoc' => 'Amosar índiz (pa páxines con más de 3 encabezaos)',
'tog-rememberpassword' => 'Recordar la mio identificación nesti ordenador (hasta un máximu de $1 {{PLURAL:$1|día|díes}})',
'tog-watchcreations' => 'Amestar les páxines que creo y los ficheros que cargo a la mio llista de vixilancia',
'tog-watchdefault' => "Amestar les páxines y ficheros qu'edito a la mio llista de vixilancia",
'retypenew' => 'Vuelvi a escribir la contraseña nueva:',
'resetpass_submit' => 'Configurar la contraseña y aniciar sesión',
'changepassword-success' => '¡Camudóse la contraseña correutamente!',
+'changepassword-throttled' => "Ficisti demasiaos intentos d'aniciu de sesión recientes.
+Por favor espera $1 enantes d'intentalo otra vuelta.",
'resetpass_forbidden' => 'Nun puen camudase les contraseñes',
'resetpass-no-info' => "Tienes d'aniciar sesión pa entrar direutamente a esta páxina.",
'resetpass-submit-loggedin' => 'Camudar la contraseña',
'changeemail-password' => 'La to contraseña en {{SITENAME}}:',
'changeemail-submit' => 'Camudar el corréu electrónicu',
'changeemail-cancel' => 'Encaboxar',
+'changeemail-throttled' => "Ficisti demasiaos intentos d'aniciu de sesión.
+Por favor espera $1 enantes d'intentalo otra vuelta.",
# Special:ResetTokens
'resettokens' => 'Reaniciar los pases',
'search-result-score' => 'Relevancia: $1%',
'search-redirect' => '(redireición de $1)',
'search-section' => '(seición $1)',
+'search-file-match' => '(casa col conteníu del ficheru)',
'search-suggest' => 'Quixisti dicir: $1',
'search-interwiki-caption' => 'Proyeutos hermanos',
'search-interwiki-default' => '$1 resultaos:',
'watchmethod-list' => 'comprobando ediciones recientes nes páxines vixilaes',
'watchlistcontains' => 'La to llista de vixilancia tien $1 {{PLURAL:$1|páxina|páxines}}.',
'iteminvalidname' => "Problema col elementu '$1', nome non válidu...",
-'wlnote' => "Abaxo {{PLURAL:$1|ta'l caberu cambiu|tán los caberos '''$1''' cambios}} {{PLURAL:$2|na cabera hora|nes caberes '''$2''' hores}}, el día $3 a les $4.",
'wlshowlast' => 'Amosar les últimes $1 hores $2 díes $3',
'watchlist-options' => 'Opciones de la llista de vixilancia',
'delete-warning-toobig' => "Esta páxina tien un historial d'ediciones grande, más de $1 {{PLURAL:$1|revisión|revisiones}}.
Esborralu pue perturbar les operaciones de la base de datos de {{SITENAME}};
obra con precaución.",
-'deleting-backlinks-warning' => "'''Avisu:''' Otres páxines enllacen a la páxina que ta a piques de desaniciar.",
+'deleting-backlinks-warning' => "'''Avisu:''' Otres páxines enllacen a, o trescluyen de, la páxina que ta a piques de desaniciar.",
# Rollback
'rollback' => 'Revertir ediciones',
'range_block_disabled' => "La capacidá d'alministrador pa crear bloqueos d'intervalos ta desactivada.",
'ipb_expiry_invalid' => 'Tiempu incorrectu.',
'ipb_expiry_temp' => "Los bloqueos de nome d'usuariu escondíos han ser permanentes.",
-'ipb_hide_invalid' => 'Nun se pue desaniciar esta cuenta; seique tenga demasiaes ediciones.',
+'ipb_hide_invalid' => "Nun se pue desaniciar esta cuenta; tien más {{PLURAL:$1|d'una edición|de $1 ediciones}}.",
'ipb_already_blocked' => '"$1" yá ta bloquiáu',
'ipb-needreblock' => '$1 yá ta bloquiáu. ¿Quies camudar los parámetros?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Otru bloquéu|Otros bloqueos}}',
'tooltip-pt-watchlist' => 'Llista de les páxines nes que tas vixilando los cambios',
'tooltip-pt-mycontris' => 'Llista de les tos collaboraciones',
'tooltip-pt-login' => "T'encamentamos que t'identifiques, anque nun ye obligatorio",
-'tooltip-pt-anonlogin' => "T'encamentamos que t'identifiques, anque nun ye obligatorio.",
'tooltip-pt-logout' => 'Salir',
'tooltip-ca-talk' => 'Alderique tocante al conteníu de la páxina',
'tooltip-ca-edit' => "Pues editar esta páxina. Por favor usa'l botón de vista previa enantes de guardar los cambios.",
'expand_templates_generate_rawhtml' => 'Ver el HTML en bruto',
'expand_templates_preview' => 'Vista previa',
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
+'uploadinvalidxml' => "Nun pudo interpretase'l XML del ficheru cargáu.",
);
'tog-numberheadings' => 'Başlıqların avto-nömrələnməsi',
'tog-showtoolbar' => 'Redaktə zamanı alətlər qutusunu göstər (JavaScript)',
'tog-editondblclick' => 'Səhifələri iki kliklə redaktə etməyə başla (JavaScript)',
-'tog-editsection' => 'Hər bir bölmə üçün [redaktə]ni mümkün et',
'tog-editsectiononrightclick' => 'Bölmələrin redaktəsini başlıqların üzərində sağ klik etməklə mümkün et (JavaScript)',
-'tog-showtoc' => 'Mündəricat siyahısını göstər (3 başlıqdan artıq olan səhifələrdə)',
'tog-rememberpassword' => 'Məni bu kompyuterdə xatırla (maksimum $1 {{PLURAL:$1|gün|gün}})',
'tog-watchcreations' => 'Yaratdığım səhifələri izlədiyim səhifələrə əlavə et',
'tog-watchdefault' => 'Redaktə etdiyim səhifələri izlədiyim səhifələrə əlavə et',
'tog-numberheadings' => 'باشلیقلاری اوتوماتیک نومرهله',
'tog-showtoolbar' => 'دَییشدیرمه آراج چوبوغونو گؤستر (جاوااسکریپت لازیمدیر)',
'tog-editondblclick' => 'صحیفهلری ایکی کلیکله دَییشدیر (جاوااسکریپت لازیمدیر)',
-'tog-editsection' => '[دَییشدیر] باغلانتیسیلا بؤلوم دَییشدیرمهسینه ایجازه وئر',
'tog-editsectiononrightclick' => 'بؤلوملرین دیشدیرمهسینی، باشلیقلارین اوزرینده ساغکلیک ائتمکله ایجازه وئر (جاوااسکریپت لازیمدیر)',
-'tog-showtoc' => 'ایچیندهکیلر جدولینی گؤستر (۳-دن آرتیق باشلیقلاری اولان صحیفهلرده)',
'tog-rememberpassword' => 'منیم گیریشیمی بو بیلگیسایاردا یاددا ساخلا (چوخو {{PLURAL:$1|بیر گونه|$1 گونه}} کیمی)',
'tog-watchcreations' => 'ياراتدیغیم صحیفهلری و يوکلهدیگیم فايللاری ایزلهمهلریمه آرتیر',
'tog-watchdefault' => 'دَییشدیردیگیم صحیفهلری و فايللاری ایزلهدیکلریمه آرتیر',
'tog-numberheadings' => 'Башисемдәрҙе автоматик рәүештә номерлаe',
'tog-showtoolbar' => 'Мөхәррирләгән ваҡытта өҫкө ҡоралдар панелен күрһәтергә (JavaScript кәрәк)',
'tog-editondblclick' => 'Биттәрҙе ике сиртеү менән мөхәррирләргә',
-'tog-editsection' => 'Һәр бүлек өсөн «үҙгәртеү» һылтанмаһын күрһәтергә',
'tog-editsectiononrightclick' => 'Бүлектәрҙе исемдәренә төрткөнөң уң яғына сиртеп үҙгәртергә',
-'tog-showtoc' => 'Эстәлек күрһәтелһен (3-тән күп башлығы булған биттәрҙә)',
'tog-rememberpassword' => 'Был браузерҙа (иң күбендә $1 {{PLURAL:$1|көнгә}}) иҫәп яҙыуым хәтерләнһен',
'tog-watchcreations' => 'Мин төҙөгән биттәрҙе һәм күсергән файлдарҙы күҙәтеү исемлегенә өҫтәргә',
'tog-watchdefault' => 'Мин үҙгәрткән биттәр һәм файлдар аңлатмаһын күҙәтеү исемлегенә өҫтәргә',
'tog-numberheadings' => 'اتوماتیک شماره کتن عناوین',
'tog-showtoolbar' => 'میله ابزار اصلاح پیش درا(جاوا)',
'tog-editondblclick' => 'صفحات گون دو کلیک اصلاح کن(جاوا)',
-'tog-editsection' => 'فعال کتن کسمت اصلاح از طریق لینکان [edit]',
'tog-editsectiononrightclick' => 'فعال کتن اصلاح کسمت گون کلیک راست اور کسمت عناوین(جاوا)',
-'tog-showtoc' => 'جدول محتوایء پیش دار( په صفحیانی که گیش چه 3 عنوانش هست)',
'tog-rememberpassword' => 'من ورود ته ای کامپیوتر هیال بکن (په $1 {{PLURAL:$1|روچ|روچ}})',
'tog-watchcreations' => 'هور کن منی صفحاتی که من ته لیست چارگ شرکتت',
'tog-watchdefault' => 'هورکن صفحاتی که من اصلاح کتن ته منی لیست چارگ',
'tog-numberheadings' => 'Tolos-bilang na mga pamayohán',
'tog-showtoolbar' => 'Ipahiling an barang-gamit nin pagliwat',
'tog-editondblclick' => 'Liwaton an mga pahina sa pagdoble nin klik',
-'tog-editsection' => 'Paganaha an paghihirá kan seksyon sa paági kan [liwaton] na kilyawan',
'tog-editsectiononrightclick' => 'Paganaha an seksyon nin pagliliwat sa pag-klik kan mga titulo nin seksyon',
-'tog-showtoc' => 'Ihayag an taytayan nin mga laog (para sa mga pahinang igwang sobra sa 3 pamayohan)',
'tog-rememberpassword' => 'Giromdoma an sakong paglaóg sa kilyaw (browser) na ini (para sa maximum na $1 {{PLURAL:$1|aldaw|mga aldaw}})',
'tog-watchcreations' => 'Idagdag an mga pahina na ako an nagmukna asin an mga sagunson na ako an nagkarga sa sakong bantay-listahan',
'tog-watchdefault' => 'Idagdag an mga pahina asin mga sagunson na ako an nagliwat sa sakong bantay-listahan',
'watchmethod-list' => 'Pigsososog an mga pigbabantayan na páhina para mahiling an mga kaaagi pa sanan paghirá',
'watchlistcontains' => 'An saimong lista nin pigbabantayan igwang $1 na {{PLURAL:$1|páhina|mga páhina}}.',
'iteminvalidname' => "May problema sa bagay na '$1', salâ an pangaran...",
-'wlnote' => "Sa ibaba an {{PLURAL:$1|huring pagbabago|mga huring '''$1''' pagbabago}} sa nakaaging {{PLURAL:$2|oras|'''$2''' mga oras}}, magpoon pa kan $3, $4.",
'wlshowlast' => 'Ipahilíng an nakaaging $1 na mga oras mga $2 na aldaw $3',
'watchlist-options' => 'Bantay-listahan na mga pagpipilian',
'allmessages-prefix' => 'Pansara sa paagi kan enot-panigmit:',
'allmessages-language' => 'Lengguwahe:',
'allmessages-filter-submit' => 'Dumuman',
+'allmessages-filter-translate' => 'Idakit-taramon',
# Thumbnails
'thumbnail-more' => 'Padakuláon',
'tooltip-pt-watchlist' => 'Sarong listahan kan mga pahina na saimong inaantabayanan para sa mga kaliwatan',
'tooltip-pt-mycontris' => 'Sarong listahan kan saimong mga kontribusyon',
'tooltip-pt-login' => 'Ika inaagyat na maglaog; alagad, bako tabi ining piriritan',
-'tooltip-pt-anonlogin' => 'Pig-aagda kang maglaog, alagad, bakô man ining piriritan.',
'tooltip-pt-logout' => 'Magluwas',
'tooltip-ca-talk' => 'Orolayan dapit sa laog kan pahina',
'tooltip-ca-edit' => 'Ika makakaliwat kaining pahina. Tabi man gamiton an pindutan nin patanaw bago itatagama',
'tog-numberheadings' => 'Аўта-нумараваць падзагалоўкі',
'tog-showtoolbar' => 'Паказваць рэдактарскую стужку (Яваскрыпт)',
'tog-editondblclick' => 'Праўка старонак па падвойным пстрыку (Яваскрыпт)',
-'tog-editsection' => 'Праўка падраздзелаў праз спасылкі "[правіць]"',
'tog-editsectiononrightclick' => 'Праўка падраздзелаў па правым пстрыку на загалоўку (Яваскрыпт)',
-'tog-showtoc' => 'Паказваць змест (для старонак, дзе больш за 3 падзагалоўкі)',
'tog-rememberpassword' => 'Памятаць уваходныя даныя ў гэтым браўзеры (не даўжэй за $1 {{PLURAL:$1|дзень|дні|дзён}})',
'tog-watchcreations' => 'Дабаўляць створаныя мною старонкі і файлы ў мой спіс назірання',
'tog-watchdefault' => 'Дабаўляць старонкі і файлы пасля маіх правак у мой спіс назірання',
'tog-usenewrc' => 'Групаваць зьмены па старонках у апошніх зьменах і сьпісе назіраньня',
'tog-numberheadings' => 'Аўтаматычная нумарацыя загалоўкаў',
'tog-showtoolbar' => 'Паказваць панэль інструмэнтаў рэдагаваньня',
-'tog-editondblclick' => 'Рэдагаваць старонкі па падвойным пстрыку',
-'tog-editsection' => 'Дазволіць рэдагаваньне асобных сэкцыяў па спасылках [рэдагаваць]',
-'tog-editsectiononrightclick' => 'Рэдагаваць сэкцыі па правым пстрыку на загалоўку',
-'tog-showtoc' => 'Паказваць зьмест (для старонак з больш як 3 разьдзеламі)',
+'tog-editondblclick' => 'Рэдагаваць старонкі па падвойным націсканьні',
+'tog-editsectiononrightclick' => 'Рэдагаваць сэкцыі па націсканьні правай кнопкі мышы на загалоўку',
'tog-rememberpassword' => 'Запомніць мяне ў гэтым браўзэры (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
'tog-watchcreations' => 'Дадаваць у мой сьпіс назіраньня створаныя мной старонкі і загружаныя файлы',
-'tog-watchdefault' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я рэдагаваў',
+'tog-watchdefault' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я {{GENDER:|рэдагаваў|рэдагавала}}',
'tog-watchmoves' => 'Дадаваць у мой сьпіс назіраньня перанесеныя мною старонкі і файлы',
'tog-watchdeletion' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я выдаляю',
'tog-minordefault' => 'Па змоўчаньні пазначаць усе зьмены дробнымі',
'no-null-revision' => 'Немагчыма стварыць нулявую вэрсію для старонкі «$1»',
'badtitle' => 'Няслушная назва',
'badtitletext' => 'Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці інтэрвікі-назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.',
-'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікаў|вынікі}}.',
+'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.',
'perfcachedts' => 'Наступныя зьвесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} ня больш за $4 {{PLURAL:$4|вынік|вынікаў|вынікі}}.',
'querypage-no-updates' => 'Абнаўленьні гэтай старонкі цяпер адключаныя. Зьвесткі ня будуць абнаўляцца.',
'viewsource' => 'Паказаць крыніцу',
'retypenew' => 'Паўтарыце новы пароль:',
'resetpass_submit' => 'Наставіць пароль і увайсьці',
'changepassword-success' => 'Ваш пароль быў пасьпяхова зьменены!',
+'changepassword-throttled' => 'Вы зрабілі зашмат спробаў увайсьці ў сыстэму.
+Калі ласка, пачакайце $1 перад наступнай спробай.',
'resetpass_forbidden' => 'Пароль ня можа быць зьменены',
'resetpass-no-info' => 'Для непасрэднага доступу да гэтай старонкі Вам неабходна ўвайсьці ў сыстэму.',
'resetpass-submit-loggedin' => 'Зьмяніць пароль',
'passwordreset-capture-help' => 'Калі Вы пазначыце гэтае поле, электронны ліст (з часовым паролем), будзе паказаны Вам як толькі ён будзе дасланы ўдзельніку.',
'passwordreset-email' => 'Адрас электроннай пошты:',
'passwordreset-emailtitle' => 'Падрабязнасьці рахунку ў {{GRAMMAR:месны|{{SITENAME}}}}',
-'passwordreset-emailtext-ip' => 'Нехта (магчыма Вы, з IP-адрасу $1) зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
+'passwordreset-emailtext-ip' => 'Нехта (магчыма Вы, з IP-адрасу $1) зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|1=Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
$2
-{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дзён|дні}}.
+{{PLURAL:$3|1=Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дні|дзён}}.
Цяпер Вам неабходна ўвайсьці і выбраць новы пароль. Калі нехта іншы зрабіў гэты запыт, ці Вы ўспомнілі Ваш пачатковы пароль, які ня хочаце мяняць, Вы можаце праігнараваць гэтае паведамленьне, і працягваць выкарыстоўваць стары пароль.',
-'passwordreset-emailtext-user' => 'Удзельнік $1 зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
+'passwordreset-emailtext-user' => 'Удзельнік $1 зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|1=Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
$2
-{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дзён|дні}}.
+{{PLURAL:$3|1=Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дні|дзён}}.
Цяпер Вам неабходна ўвайсьці і выбраць новы пароль. Калі нехта іншы зрабіў гэты запыт, ці Вы ўспомнілі Ваш пачатковы пароль, які ня хочаце мяняць, Вы можаце праігнараваць гэтае паведамленьне, і працягваць выкарыстоўваць стары пароль.',
'passwordreset-emailelement' => 'Імя ўдзельніка: $1
Часовы пароль: $2',
'changeemail-password' => 'Ваш пароль у {{GRAMMAR:месны|{{SITENAME}}}}:',
'changeemail-submit' => 'Зьмяніць адрас электроннай пошты',
'changeemail-cancel' => 'Скасаваць',
+'changeemail-throttled' => 'Вы зрабілі зашмат спробаў увайсьці ў сыстэму.
+Калі ласка, пачакайце $1 перад наступнай спробай.',
# Special:ResetTokens
'resettokens' => 'Скідваньне токенаў',
Апошні запіс з журнала пададзены ніжэй для даведкі:",
'semiprotectedpagewarning' => "'''Заўвага:''' Гэтая старонка была абароненая, і рэдагаваць яе могуць толькі зарэгістраваныя ўдзельнікі.
Апошні запіс з журнала пададзены ніжэй для даведкі:",
-'cascadeprotectedwarning' => "'''Ð\9fапÑ\8fÑ\80Ñ\8dджанÑ\8cне:''' Ð\93Ñ\8dÑ\82аÑ\8f Ñ\81Ñ\82аÑ\80онка абаÑ\80оненаÑ\8f, Ñ\82олÑ\8cкÑ\96 Ñ\9eдзелÑ\8cнÑ\96кÑ\96 з пÑ\80авамÑ\96 адмÑ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82аÑ\80аÑ\9e могÑ\83Ñ\86Ñ\8c Ñ\80Ñ\8dдагаваÑ\86Ñ\8c Ñ\8fе, Ñ\82амÑ\83 Ñ\88Ñ\82о Ñ\8fна Ñ\9eклÑ\8eÑ\87анаÑ\8f Ñ\9e {{PLURAL:$1|1=наÑ\81Ñ\82Ñ\83пнÑ\83Ñ\8e каÑ\81кадна-абаÑ\80оненÑ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83|наÑ\81Ñ\82Ñ\83пнÑ\8bÑ\8f каÑ\81кадна-абаÑ\80оненÑ\8bÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96}}:",
+'cascadeprotectedwarning' => "'''Ð\9fапÑ\8fÑ\80Ñ\8dджанÑ\8cне:''' гÑ\8dÑ\82аÑ\8f Ñ\81Ñ\82аÑ\80онка абаÑ\80оненаÑ\8f, Ñ\82олÑ\8cкÑ\96 Ñ\9eдзелÑ\8cнÑ\96кÑ\96 з пÑ\80авамÑ\96 адмÑ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82аÑ\80аÑ\9e могÑ\83Ñ\86Ñ\8c Ñ\80Ñ\8dдагаваÑ\86Ñ\8c Ñ\8fе, Ñ\82амÑ\83 Ñ\88Ñ\82о Ñ\8fна Ñ\9eклÑ\8eÑ\87анаÑ\8f Ñ\9e {{PLURAL:$1|1=наÑ\81Ñ\82Ñ\83пнÑ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83|наÑ\81Ñ\82Ñ\83пнÑ\8bÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96}} з каÑ\81каднай абаÑ\80онай:",
'titleprotectedwarning' => "'''Папярэджаньне: гэтая старонка была абароненая і для яе стварэньня патрабуюцца [[Special:ListGroupRights|адпаведныя правы]].'''
Апошні запіс з журнала пададзены ніжэй для даведкі:",
'templatesused' => '{{PLURAL:$1|Шаблён, які ўжываецца|Шаблёны, якія ўжываюцца}} на гэтай старонцы:',
'templatesusedsection' => 'У гэтай сэкцыі {{PLURAL:$1|1=выкарыстаны наступны шаблён|выкарыстаныя наступныя шаблёны}}:',
'template-protected' => '(абаронены)',
'template-semiprotected' => '(часткова абароненая)',
-'hiddencategories' => 'Гэтая старонка належыць да $1 {{PLURAL:$1|1=схаванай катэгорыі|схаваных катэгорыяў}}:',
+'hiddencategories' => 'Гэтая старонка належыць да $1 {{PLURAL:$1|схаванай катэгорыі|схаваных катэгорыяў}}:',
'nocreatetext' => 'У {{GRAMMAR:месны|{{SITENAME}}}} абмежаванае стварэньне новых старонак.
Вы можаце вярнуцца і рэдагаваць існуючую старонку, альбо [[Special:UserLogin|ўвайсьці ў сыстэму ці стварыць рахунак]].',
'nocreate-loggedin' => 'Вы ня маеце дазволу на стварэньне новых старонак.',
'sectioneditnotsupported-title' => 'Рэдагаваньне сэкцыяў не падтрымліваецца',
'sectioneditnotsupported-text' => 'Рэдагаваньне сэкцыяў не падтрымліваецца ў гэтай старонцы рэдагаваньня',
'permissionserrors' => 'Памылка дазволу',
-'permissionserrorstext' => 'Ð\92Ñ\8b нÑ\8f маеÑ\86е дазволÑ\83 на гÑ\8dÑ\82ае дзеÑ\8fнÑ\8cне па {{PLURAL:$1|1=наÑ\81Ñ\82Ñ\83пнай пÑ\80Ñ\8bÑ\87Ñ\8bне|наÑ\81Ñ\82Ñ\83пнÑ\8bÑ\85 пÑ\80Ñ\8bÑ\87Ñ\8bнаÑ\85}}:',
-'permissionserrorstext-withaction' => 'Ð\92Ñ\8b нÑ\8f маеÑ\86е дазволÑ\83 на $2 па {{PLURAL:$1|1=наÑ\81Ñ\82Ñ\83пнай пÑ\80Ñ\8bÑ\87Ñ\8bне|наÑ\81Ñ\82Ñ\83пнÑ\8bÑ\85 пÑ\80Ñ\8bÑ\87Ñ\8bнаÑ\85}}:',
+'permissionserrorstext' => 'Ð\92Ñ\8b нÑ\8f маеÑ\86е дазволÑ\83 на гÑ\8dÑ\82ае дзеÑ\8fнÑ\8cне з {{PLURAL:$1|1=наÑ\81Ñ\82Ñ\83пнай пÑ\80Ñ\8bÑ\87Ñ\8bнÑ\8b|наÑ\81Ñ\82Ñ\83пнÑ\8bÑ\85 пÑ\80Ñ\8bÑ\87Ñ\8bнаÑ\9e}}:',
+'permissionserrorstext-withaction' => 'Ð\92Ñ\8b нÑ\8f маеÑ\86е дазволÑ\83 на $2 з {{PLURAL:$1|1=наÑ\81Ñ\82Ñ\83пнай пÑ\80Ñ\8bÑ\87Ñ\8bнÑ\8b|наÑ\81Ñ\82Ñ\83пнÑ\8bÑ\85 пÑ\80Ñ\8bÑ\87Ñ\8bнаÑ\9e}}:',
'recreate-moveddeleted-warn' => "'''Увага: Вы ствараеце старонку, якая раней была выдаленая.'''
Упэўніцеся, што стварэньне гэтай старонкі неабходнае.
'content-not-allowed-here' => 'Зьмест тыпу «$1» на старонцы [[$2]] не дазволены',
'editwarning-warning' => 'Пакінуўшы гэтую старонку, вы можаце страціць усе ўнесеныя зьмены.
Калі вы ўвайшлі ў сыстэму, Вы можаце адключыць гэтае папярэджаньне ў сэкцыі «Рэдагаваньне» вашых наладаў.',
+'editpage-notsupportedcontentformat-title' => 'Фармат зьмесьціва не падтрымліваецца',
+'editpage-notsupportedcontentformat-text' => 'Фармат зьмесьціва $1 не падтрымліваецца мадэльлю зьмесьціва $2.',
# Content models
'content-model-wikitext' => 'вікі-тэкст',
'cantcreateaccount-text' => "Стварэньне рахункаў з гэтага IP-адрасу ('''$1''') было заблякаванае [[User:$3|$3]].
Прычына блякаваньня пададзеная $3: ''$2''",
+'cantcreateaccount-range-text' => "Стварэньне рахункаў з IP-адрасоў у дыяпазоне '''$1''', у які ўваходзіць ваш IP-адрас ('''$4'''), было забароненае {{GENDER:$3|ўдзельнікам|ўдзельніцай}} [[User:$3|$3]].
+
+{{GENDER:$3|Удзельнікам|Удзельніцай}} $3 была пададзеная наступная прычына: ''$2''.",
# History pages
'viewpagelogs' => 'Паказаць журналы падзеяў для гэтай старонкі',
'revdelete-show-file-confirm' => 'Вы ўпэўненыя, што жадаеце паглядзець выдаленую вэрсію файла «<nowiki>$1</nowiki>» ад $2 $3?',
'revdelete-show-file-submit' => 'Так',
'revdelete-selected' => "'''{{PLURAL:$2|1=Выбраная вэрсія|Выбраныя вэрсіі}} старонкі [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|1=Выбраны запіс|Выбраныя запісы}} журнала падзеяў:'''",
+'logdelete-selected' => "'''{{PLURAL:$1|1=Выбраны запіс|Выбраныя запісы}} журнала:'''",
'revdelete-text' => "'''Выдаленыя вэрсіі і падзеі будуць паказвацца ў гісторыі старонкі і журналах, але частка іх зьместу ня будзе даступная для звычайных удзельнікаў.'''
Іншыя адміністратары {{GRAMMAR:родны|{{SITENAME}}}} будуць мець магчымасьць прагляду зьместу і аднаўленьня старонкі праз гэты інтэрфэйс, калі ня будуць уведзеныя дадатковыя абмежаваньні.",
'revdelete-confirm' => 'Калі ласка, пацьвердзіце, што Вы сапраўды жадаеце зрабіць гэта, разумееце наступствы і робіце гэта ў адпаведнасьці з [[{{MediaWiki:Policy-url}}|правіламі]].',
-'revdelete-suppress-text' => "Схаваньні могуць выкарыстоўвацца '''толькі''' ў наступных выпадках:
-* Раскрыцьцё асабістых зьвестак
-*: ''хатнія адрасы, тэлефонныя нумары, нумары пашпартоў і г.д.''",
+'revdelete-suppress-text' => "Скрываньне можа выкарыстоўвацца '''толькі''' ў наступных выпадках:
+* патэнцыйна паклёпніцкая інфармацыя
+* раскрыцьцё асабістых зьвестак
+*: ''хатнія адрасы, тэлефонныя нумары, нумары пашпартоў і г. д.''",
'revdelete-legend' => 'Усталяваць абмежаваньні бачнасьці',
-'revdelete-hide-text' => 'СÑ\85аваÑ\86Ñ\8c Ñ\82экст вэрсіі',
+'revdelete-hide-text' => 'Тэкст вэрсіі',
'revdelete-hide-image' => 'Схаваць зьмест файла',
'revdelete-hide-name' => 'Схаваць дзеяньне і мэту',
-'revdelete-hide-comment' => 'СÑ\85аваÑ\86Ñ\8c каÑ\80оÑ\82кае апісаньне зьменаў',
-'revdelete-hide-user' => 'СÑ\85аваÑ\86Ñ\8c Ñ\96мÑ\8f/IP-адÑ\80аÑ\81 Ñ\83дзелÑ\8cнÑ\96ка',
+'revdelete-hide-comment' => 'Ð\90пісаньне зьменаў',
+'revdelete-hide-user' => 'Ð\86мÑ\8f Ñ\9eдзелÑ\8cнÑ\96ка/IP-адÑ\80аÑ\81',
'revdelete-hide-restricted' => 'Ужываць гэтыя абмежаваньні таксама і для адміністратараў',
'revdelete-radio-same' => '(не зьмяняць)',
-'revdelete-radio-set' => 'Так',
-'revdelete-radio-unset' => 'Ð\9dе',
+'revdelete-radio-set' => 'СÑ\85аваÑ\86Ñ\8c',
+'revdelete-radio-unset' => 'Ð\9fаказаÑ\86Ñ\8c',
'revdelete-suppress' => 'Схаваць зьвесткі ад адміністратараў як і ад іншых удзельнікаў',
'revdelete-unsuppress' => 'Зьняць абмежаваньні з адноўленых вэрсіяў',
'revdelete-log' => 'Прычына:',
'diff-empty' => '(Розьніцы няма)',
'diff-multi' => '($1 {{PLURAL:$1|прамежная вэрсія|прамежныя вэрсіі|прамежных вэрсіяў}} $2 {{PLURAL:$2|удзельніка|удзельнікаў|удзельнікаў}} {{PLURAL:$1|не паказаная|не паказаныя|не паказаныя}})',
'diff-multi-manyusers' => '($1 {{PLURAL:$1|прамежная вэрсія|прамежныя вэрсіі|прамежных вэрсіяў}} $2 {{PLURAL:$2|удзельніка|удзельнікаў|удзельнікаў}} {{PLURAL:$1|не паказаная|не паказаныя|не паказаныя}})',
-'difference-missing-revision' => '{{PLURAL:$2|1=Адна вэрсія|$2 вэрсіі}} з гэтымі адрозьненьнямі ($1) {{PLURAL:$2|1=не была|не былі}} знойдзеныя.
+'difference-missing-revision' => '{{PLURAL:$2|$2 вэрсія|$2 вэрсіі|$2 вэрсіяў}} з гэтымі адрозьненьнямі ($1) {{PLURAL:$2|не была|не былі}} знойдзеныя.
-Звычайна гэта здараецца з-за перахода па састарэлай спасылцы на старонку, якая была выдаленая.
+Звычайна гэта здараецца з-за пераходу па састарэлай спасылцы на старонку, якая была выдаленая.
Падрабязнасьці можна знайсьці ў [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале выдаленьняў].',
# Search results
'search-result-score' => 'Адпаведнасьць: $1%',
'search-redirect' => '(перанакіраваньне $1)',
'search-section' => '(сэкцыя $1)',
+'search-file-match' => '(супадае зь зьмесьцівам файла)',
'search-suggest' => 'Магчыма, вы мелі на ўвазе: $1',
'search-interwiki-caption' => 'Сумежныя праекты',
'search-interwiki-default' => 'вынікі з $1:',
'searchall' => 'усе',
'showingresults' => "Ніжэй {{PLURAL:$1|паданы|паданыя|паданыя}} да '''$1''' {{PLURAL:$1|выніку|вынікаў|вынікаў}}, пачынаючы з #<b>$2</b>.",
'showingresultsnum' => "Ніжэй паказаны сьпіс з '''$3''' {{PLURAL:$3|выніка|вынікаў|вынікаў}}, пачынаючы ад № '''$2'''.",
-'showingresultsheader' => "{{PLURAL:$5|1=Вынік '''$1''' з '''$3'''|Вынікі '''$1 - $2''' з '''$3'''}} для '''$4'''",
+'showingresultsheader' => "{{PLURAL:$5|1=Вынік '''$1''' з '''$3'''|Вынікі '''$1—$2''' з '''$3'''}} для '''$4'''",
'search-nonefound' => 'Супадзеньняў па запыце ня знойдзена.',
'powersearch-legend' => 'Удасканалены пошук',
'powersearch-ns' => 'Шукаць у прасторах назваў:',
'filetype-mime-mismatch' => 'Пашырэньне файла «.$1» не адпавядае выяўленаму MIME-тыпу файла ($2).',
'filetype-badmime' => 'Загрузка файлаў тыпу MIME «$1» забароненая.',
'filetype-bad-ie-mime' => 'Немагчыма загрузіць гэты файл, таму што Internet Explorer вызначыў яго як «$1», што азначае, што тып гэтага файла забаронены і патэнцыяльна небясьпечны.',
-'filetype-unwanted-type' => "'''«.$1»''' — непажаданы тып файла.
-{{PLURAL:$3|1=Пажаданым тыпам файла зьяўляецца|Пажаданымі тыпамі файлаў зьяўляюцца}} $2.",
+'filetype-unwanted-type' => '<strong>«.$1»</strong> — непажаданы тып файла.
+{{PLURAL:$3|1=Пажаданым тыпам файла зьяўляецца|Пажаданымі тыпамі файлаў зьяўляюцца:}} $2.',
'filetype-banned-type' => "'''«.$1»''' — {{PLURAL:$4|1=забаронены тып файлаў|забароненыя тыпы файлаў}}.
{{PLURAL:$3|1=Дазволены тып файлаў|Дазволеныя тыпы файлаў}}: $2.",
'filetype-missing' => 'Файл ня мае пашырэньня (напрыклад, «.jpg»).',
'watchmethod-list' => 'прагляд старонак са сьпісу назіраньня дзеля апошніх зьменах',
'watchlistcontains' => 'Ваш сьпіс назіраньня зьмяшчае $1 {{PLURAL:$1|старонка|старонкі|старонак}}.',
'iteminvalidname' => 'Праблема з элемэнтам «$1», няслушная назва…',
-'wlnote' => "Ніжэй {{PLURAL:$1|паказаная '''$1''' апошняя зьмена|паказаныя '''$1''' апошнія зьмены|паказаныя '''$1''' апошніх зьменаў}} за '''$2''' {{PLURAL:$2|гадзіну|гадзіны|гадзінаў}}, па стане на $3, $4.",
'wlshowlast' => 'Паказаць: за апошнія $1 гадзінаў, $2 дзён, $3',
'watchlist-options' => 'Налады сьпісу назіраньня',
'tooltip-pt-watchlist' => 'Сьпіс старонак, за зьменамі якіх Вы назіраеце',
'tooltip-pt-mycontris' => 'Ваш унёсак',
'tooltip-pt-login' => 'Вас запрашаюць увайсьці, хаця гэта і неабавязкова.',
-'tooltip-pt-anonlogin' => 'Уваход у сыстэму вітаецца, хаця ён не абавязковы.',
'tooltip-pt-logout' => 'Выйсьці',
'tooltip-ca-talk' => 'Абмеркаваньне зьместу старонкі',
'tooltip-ca-edit' => 'Вы можаце рэдагаваць гэтую старонку. Калі ласка, ужывайце кнопку прагляду перад захаваньнем.',
'svg-long-desc' => 'SVG-файл, намінальна $1 × $2 {{PLURAL:$2|піксэл|піксэлы|піксэлаў}}, памер файла: $3.',
'svg-long-desc-animated' => 'Анімаваны SVG-файл, намінальна $1 × $2 {{PLURAL:$2|піксэл|піксэлы|піксэлаў}}, памер файла: $3',
'svg-long-error' => 'Няслушны SVG-файл: $1',
-'show-big-image' => 'Ð\9dайлепÑ\88ае Ñ\80азÑ\80озÑ\8cненÑ\8cне',
+'show-big-image' => 'Ð\90Ñ\80Ñ\8bгÑ\96налÑ\8cнÑ\8b Ñ\84айл',
'show-big-image-preview' => 'Памер прагляду: $1.',
'show-big-image-other' => '{{PLURAL:$2|1=Іншае разрозьненьне|Іншыя разрозьненьні}}: $1.',
'show-big-image-size' => '$1 × $2 піксэлаў',
'version-hook-subscribedby' => 'Падпісаны на',
'version-version' => '(Вэрсія $1)',
'version-svn-revision' => '(r$2)',
-'version-license' => 'Ліцэнзія',
+'version-license' => 'Ліцэнзія MediaWiki',
'version-poweredby-credits' => "{{SITENAME}} працуе на праграмным забесьпячэньні '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
'version-poweredby-others' => 'іншыя',
'version-poweredby-translators' => 'перакладчыкі з translatewiki.net',
'expand_templates_generate_xml' => 'Паказаць дрэва аналізу XML',
'expand_templates_preview' => 'Папярэдні прагляд',
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
);
'tog-numberheadings' => 'Номериране на заглавията',
'tog-showtoolbar' => 'Показване на инструментите за редактиране',
'tog-editondblclick' => 'Редактиране на страниците чрез двойно щракване',
-'tog-editsection' => 'Възможност за редактиране на раздел чрез препратка [редактиране]',
'tog-editsectiononrightclick' => 'Възможност за редактиране на раздел при щракване с десния бутон върху заглавието му',
-'tog-showtoc' => 'Показване на съдържание (за страници с повече от три раздела)',
'tog-rememberpassword' => 'Запомяне на паролата ми в този браузър (за не повече от $1 {{PLURAL:$1|ден|дни}})',
'tog-watchcreations' => 'Добавяне на създадените от мен страници и качените от мен файлове към списъка ми за наблюдение',
'tog-watchdefault' => 'Добавяне на страниците, които редактирам, в списъка ми за наблюдение',
'tog-numberheadings' => 'Bari numur judul utumatis',
'tog-showtoolbar' => 'Tampaiakan bilah-pakakas babak (parlu ada JavaScript)',
'tog-editondblclick' => 'Babak tutungkaran wan klik ganda (parlu ada JavaScript)',
-'tog-editsection' => "Kawa'akan pambabakan sub-hagian malalui tautan [babak]",
'tog-editsectiononrightclick' => "Kawa'akan mambabak sub-hagian lawan mang-klik kanan pada judul hagian (parlu ada JavaScript)",
-'tog-showtoc' => 'Tampaiakan daptar isi (gasan tungkaran-tungkaran nang baisi labih dari 3 subbagian)',
'tog-rememberpassword' => 'Ingatakan babuat log ulun pada panjalajah web ini (gasan salawas $1{{PLURAL:$1|hari|hahari}})',
'tog-watchcreations' => 'Tambahi tungkaran nang ulun ulah ka daptar itihan',
'tog-watchdefault' => 'Tambahi tungkaran nang ulun babak ka daptar itihan ulun',
* @author Samritmaity
* @author Sayak Sarkar
* @author Sm faysal
+ * @author Tauhid16
* @author Usarker
* @author Wikitanvir
* @author Zaheen
'tog-numberheadings' => 'শিরোনামগুলোকে স্বয়ংক্রিয়ভাবে ক্রমিক নম্বর দাও',
'tog-showtoolbar' => 'সম্পাদনা টুলবার দেখাও',
'tog-editondblclick' => 'দুইবার ক্লিক করে পাতা সম্পাদনা',
-'tog-editsection' => '[সম্পাদনা] সংযোগের সাহায্যে পরিচ্ছেদ সম্পাদনা করার ক্ষমতা দেয়া হোক',
'tog-editsectiononrightclick' => 'পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে সম্পাদনা করার ক্ষমতা দেয়া হোক',
-'tog-showtoc' => 'সূচিপত্র দেখানো হোক (৩টির বেশি পরিচ্ছেদের শিরোনামবিশিষ্ট পাতার জন্য)',
'tog-rememberpassword' => 'এই ব্রাউজারে আমার লগ ইন তথ্য (শব্দচাবি) মনে রাখো (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)',
'tog-watchcreations' => 'আমার তৈরি পাতা এবং আপলোড করা ফাইলগুললো আমার নজরতালিকায় যোগ করা হোক',
'tog-watchdefault' => 'আমার সম্পাদিত পাতা এবং ফাইলগুলো আমার নজরতালিকায় যোগ করা হোক',
'retypenew' => 'নতুন শব্দচাবি আবার লিখুন:',
'resetpass_submit' => 'শব্দচাবি দাও এবং লগ-ইন করো',
'changepassword-success' => 'আপনার শব্দচাবি সাফলভাবে পরিবর্তীত হয়েছে।',
+'changepassword-throttled' => 'আপনি সম্প্রতি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।',
'resetpass_forbidden' => 'শব্দচাবি পরিবর্তন করা সম্ভব নয়',
'resetpass-no-info' => 'এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই লগইন করতে হবে।',
'resetpass-submit-loggedin' => 'শব্দচাবি পরিবর্তন',
'changeemail-password' => 'আপনার {{SITENAME}} শব্দচাবি:',
'changeemail-submit' => 'ই-মেইল পরিবর্তন',
'changeemail-cancel' => 'বাতিল',
+'changeemail-throttled' => 'আপনি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।',
# Special:ResetTokens
'resettokens' => 'রিসেট টোকেন',
'search-result-score' => 'মিলেছে: $1%',
'search-redirect' => '(পুনর্নিদেশনা $1)',
'search-section' => '(অনুচ্ছেদ $1)',
+'search-file-match' => '(নথির বিষয়বস্তু মিলে যায়)',
'search-suggest' => 'আপনি সম্ভবত বুঝাতে চাইছেন: $1',
'search-interwiki-caption' => 'সহপ্রকল্পসমূহ',
'search-interwiki-default' => '$1 ফলাফলসমূহ:',
'watchmethod-list' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
'watchlistcontains' => 'আপনার নজরতালিকায় $1 টি {{PLURAL:$1|পাতা|পাতা}} রয়েছে।',
'iteminvalidname' => "'$1'নং আইটেমে সমস্যা, অবৈধ নাম...",
-'wlnote' => "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|'''$2''' ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ '''$1'''টি পরিবর্তন}} দেখানো হল।",
'wlshowlast' => 'দেখাও সর্বশেষ $1 ঘন্টা $2 দিন $3',
'watchlist-options' => 'নজর তালিকা পছন্দসমূহ',
'exblank' => 'পাতাটি খালি ছিল',
'delete-confirm' => '"$1" অপসারণ',
'delete-legend' => 'অপসারণ',
-'historywarning' => "'''সতর্কীকরণ:''' যে পাতাটি আপনি মুছে ফেলতে যাচ্ছেন তার ইতিহাসের সংখ্যা প্রায় $1টি {{PLURAL:$1|সংশোধন|সংশোধন}}:",
+'historywarning' => "'''সতর্কীকরণ:''' যে পাতাটি আপনি মুছে ফেলতে যাচ্ছেন তার ইতিহাসে প্রায় $1টি {{PLURAL:$1|সংশোধন}} রয়েছে:",
'confirmdeletetext' => 'আপনি একটি পাতা সেটির সমস্ত ইতিহাসসহ মুছে ফেলতে যাচ্ছেন।
অনুগ্রহ করে নিশ্চিত করুন আপনি আসলেই এটি করতে চান, আপনি এর ফলাফল সম্পর্কে অবহিত, এবং আপনি [[{{MediaWiki:Policy-url}}|নীতিমালা]] মেনে এটি করছেন।',
'actioncomplete' => 'কাজটি নিষ্পন্ন হয়েছে',
'allmessages-prefix' => 'প্রিফিক্স অনুযায়ী ফিল্টার:',
'allmessages-language' => 'ভাষা:',
'allmessages-filter-submit' => 'চলো',
+'allmessages-filter-translate' => 'অনুবাদ',
# Thumbnails
'thumbnail-more' => 'বড় করো',
'tooltip-pt-watchlist' => 'যে পাতাগুলির পরিবর্তন আপনি নজরে রেখেছেন, তাদের তালিকা',
'tooltip-pt-mycontris' => 'আপনার অবদানগুলোর তালিকা',
'tooltip-pt-login' => 'আপনার লগ-ইন করাটা বাঞ্চনীয়, কিন্তু তা বাধ্যতামূলক নয়।',
-'tooltip-pt-anonlogin' => 'আপনাকে লগ ইন করতে উৎসাহ দেয়া হচ্ছে, তবে এটা বাধ্যতামূলক নয়।',
'tooltip-pt-logout' => 'প্রস্থান',
'tooltip-ca-talk' => 'বিষয়বস্তু পাতা সম্পর্কে আলোচনা',
'tooltip-ca-edit' => 'আপনি এই পাতা সম্পাদনা করতে পারেন। অনুগ্রহ করে সংরক্ষণের আগে প্রাকদর্শন করুন।',
'tog-numberheadings' => 'Niverenniñ emgefre an titloù',
'tog-showtoolbar' => 'Diskouez ar varrenn ostilhoù aozañ',
'tog-editondblclick' => 'Daouglikañ evit kemmañ pajennoù',
-'tog-editsection' => 'Kemmañ ur rann dre al liammoù [kemmañ]',
'tog-editsectiononrightclick' => 'Kemmañ ur rann dre glikañ a-zehou war titl ar rann',
-'tog-showtoc' => 'Diskouez an daolenn<br /> (evit ar pennadoù zo ouzhpenn 3 rann enno)',
'tog-rememberpassword' => "Derc'hel soñj eus ma ger-tremen war an urzhiataer-mañ (evit $1 devezh{{PLURAL:$1||}} d'ar muiañ)",
'tog-watchcreations' => "Ouzhpennañ ar pajennoù krouet ganin da'm roll evezhiañ",
'tog-watchdefault' => "Ouzhpennañ ar pajennoù kemmet ganin da'm roll evezhiañ",
'tog-numberheadings' => 'Automatski numeriši podnaslove',
'tog-showtoolbar' => 'Prikaži traku s alatkama za uređivanje',
'tog-editondblclick' => 'Izmijeni stranice dvostrukim klikom',
-'tog-editsection' => 'Omogući da mijenjam pojedinačne odjeljke putem [uredi] linka',
'tog-editsectiononrightclick' => 'Uključite uređivanje odjeljka sa pritiskom na desno dugme miša u naslovu odjeljka',
-'tog-showtoc' => 'Prikaži sadržaj (u svim stranicama sa više od tri podnaslova)',
'tog-rememberpassword' => 'Zapamti moju šifru u ovom pregledniku (najviše $1 {{PLURAL:$1|dan|dana}})',
'tog-watchcreations' => 'Dodaj stranice i datoteke koje napravim na moj spisak praćenih članaka',
'tog-watchdefault' => 'Dodaj stranice i datoteke koje uređujem na moj spisak praćenih članaka',
'category-empty' => "''Ova kategorija trenutno ne sadrži članke ni medije.''",
'hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}',
'hidden-category-category' => 'Sakrivene kategorije',
-'category-subcat-count' => '{{PLURAL:$2|Ova kategorija ima sljedeću podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeće podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}',
+'category-subcat-count' => '{{PLURAL:$2|Ova kategorija ima sljedeću podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću podkategoriju|sljedeće $1 podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}',
'category-subcat-count-limited' => 'Ova kategorija sadrži {{PLURAL:$1|slijedeću $1 podkategoriju|slijedeće $1 podkategorije|slijedećih $1 podkategorija}}.',
'category-article-count' => '{{PLURAL:$2|U ovoj kategoriji se nalazi $1 članak.|{{PLURAL:$1|Prikazan je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od ukupno $2 u ovoj kategoriji.}}',
'category-article-count-limited' => '{{PLURAL:$1|Slijedeća $1 stranica je|Slijedeće $1 stranice su|Slijedećih $1 stranica je}} u ovoj kategoriji.',
'pageinfo-length' => 'Dužina stranice (u bajtovima)',
'pageinfo-article-id' => 'ID stranice',
'pageinfo-language' => 'Jezik sadržaja stranice',
+'pageinfo-content-model' => 'Model sadržaj stranice',
'pageinfo-robot-policy' => 'Indeksiranje od strane robota',
'pageinfo-robot-index' => 'Dozvoljeno',
'pageinfo-robot-noindex' => 'Nije dozvoljeno',
'tog-numberheadings' => 'Enumera automàticament els encapçalaments',
'tog-showtoolbar' => "Mostra la barra d'eines d'edició (cal JavaScript)",
'tog-editondblclick' => 'Edita les pàgines amb un doble clic (cal JavaScript)',
-'tog-editsection' => 'Activa la modificació de seccions mitjançant els enllaços [modifica]',
'tog-editsectiononrightclick' => "Habilita l'edició per seccions en clicar amb el botó dret sobre els títols de les seccions (cal JavaScript)",
-'tog-showtoc' => 'Mostra la taula de continguts (per pàgines amb més de 3 seccions)',
'tog-rememberpassword' => 'Recorda la sessió al navegador (per un màxim de {{PLURAL:$1|dia|dies}})',
'tog-watchcreations' => 'Afegeix les pàgines que vagi creant i fitxers que carregui a la llista de seguiment',
'tog-watchdefault' => 'Afegeix les pàgines que vagi editant a la llista de seguiment',
'retypenew' => 'Torneu a escriure la nova contrasenya:',
'resetpass_submit' => 'Definiu una contrasenya i inicieu una sessió',
'changepassword-success' => "S'ha canviat la vostra contrasenya amb èxit!",
+'changepassword-throttled' => "Heu realitzat massa intents d'inici de sessió.
+Espereu $1 abans de tornar-ho a provar.",
'resetpass_forbidden' => 'No poden canviar-se les contrasenyes',
'resetpass-no-info' => "Heu d'estar registrats en un compte per a poder accedir directament a aquesta pàgina.",
'resetpass-submit-loggedin' => 'Canvia la contrasenya',
'changeemail-password' => 'La vostra contrasenya a {{SITENAME}}:',
'changeemail-submit' => 'Canvia de correu electrònic',
'changeemail-cancel' => 'Cancel·la',
+'changeemail-throttled' => "Heu realitzat massa intents d'inici de sessió.
+Espereu $1 abans de tornar-ho a provar.",
# Special:ResetTokens
'resettokens' => 'Reinicia els testimonis',
'content-not-allowed-here' => 'No és permés el contingut "$1" a la pàgina [[$2]]',
'editwarning-warning' => "Si sortiu d'aquesta pàgina perdreu tots els canvis que hàgiu fet.
Si teniu un compte d'usuari, podeu eliminar aquest avís a la secció «Caixa d'edició» de les vostres preferències.",
+'editpage-notsupportedcontentformat-title' => "No s'admet el format del contingut",
+'editpage-notsupportedcontentformat-text' => "No s'admet el format del contingut $1 pel model de contingut $2.",
# Content models
'content-model-wikitext' => 'wikitext',
'search-result-score' => 'Rellevància: $1%',
'search-redirect' => '(redirigit des de $1)',
'search-section' => '(secció $1)',
+'search-file-match' => '(coincideix amb el contingut del fitxer)',
'search-suggest' => 'Volíeu dir: $1',
'search-interwiki-caption' => 'Projectes germans',
'search-interwiki-default' => '$1 resultats:',
Si us plau, si encara desitgeu carregar el vostre fitxer, torneu enrera i carregueu-ne una còpia amb un altre nom. [[File:$1|thumb|center|$1]]',
'file-exists-duplicate' => 'Aquest fitxer és un duplicat {{PLURAL:$1|del fitxer |dels següents fitxers:}}',
'file-deleted-duplicate' => "S'ha suprimit anteriorment un fitxer idèntic a aquest ([[:$1]]). Hauríeu de comprovar el registre de supressions del fitxer abans de tornar-lo a carregar.",
+'file-deleted-duplicate-notitle' => 'Un fitxer idèntic a aquest fitxer havia estat suprimit abans, i també el títol. Hauríeu de demanar a algú que pugui veure les dades suprimides del fitxer que revisi la situació abans de procedir a tornar a carregar-lo.',
'uploadwarning' => 'Avís de càrrega',
'uploadwarning-text' => 'Modifiqueu la descripció de la imatge i torneu a intentar-ho.',
'savefile' => 'Desa el fitxer',
$1',
'upload-warning-subj' => 'Avís de càrrega',
-'upload-warning-msg' => 'Hi ha hagut un problema amb la teva càrrega de [$2]. Pots tornar a [[Special:Upload/stash/$1|formulari de càrrega]] per corregir aquest problema.',
+'upload-warning-msg' => 'Hi ha hagut un problema amb la càrrega de [$2]. Podeu tornar a [[Special:Upload/stash/$1|formulari de càrrega]] per corregir aquest problema.',
'upload-proto-error' => 'El protocol és incorrecte',
'upload-proto-error-text' => 'Per a les càrregues remotes cal que els URL comencin amb <code>http://</code> o <code>ftp://</code>.',
'statistics-pages' => 'Pàgines',
'statistics-pages-desc' => 'Totes les pàgines del wiki, incloent les pàgines de discussió, redireccions, etc.',
'statistics-files' => 'Fitxers carregats',
-'statistics-edits' => 'Edicions en pàgines des que el projecte {{SITENAME}} fou instaŀlat',
+'statistics-edits' => 'Edicions en pàgines des que el projecte {{SITENAME}} fou instal·lat',
'statistics-edits-average' => 'Edicions per pàgina de mitjana',
'statistics-views-total' => 'Visualitzacions totals',
'statistics-views-total-desc' => "No hom inclou l'accès a pàgines inexistents o pàgines especials",
'watchmethod-list' => "s'està comprovant si hi ha edicions recents en les pàgines vigilades",
'watchlistcontains' => 'La vostra llista de seguiment conté {{PLURAL:$1|una única pàgina|$1 pàgines}}.',
'iteminvalidname' => "Hi ha un problema amb l'element '$1': el nom no és vàlid...",
-'wlnote' => "A sota hi ha {{PLURAL:$1|el darrer canvi|els darrers '''$1''' canvis}} en {{PLURAL:$2|la darrera hora|les '''$2''' darreres hores}}, a $4 del $3.",
'wlshowlast' => '<small>- Mostra les darreres $1 hores, els darrers $2 dies o $3</small>',
'watchlist-options' => 'Opcions de la llista de seguiment',
'delete-edit-reasonlist' => "Edita els motius d'eliminació",
'delete-toobig' => "Aquesta pàgina té un historial d'edicions molt gran, amb més de $1 {{PLURAL:$1|canvi|canvis}}. L'eliminació d'aquestes pàgines està restringida per a prevenir que hi pugui haver un desajustament seriós de la base de dades de tot el projecte {{SITENAME}} per accident.",
'delete-warning-toobig' => "Aquesta pàgina té un historial d'edicions molt gran, amb més de $1 {{PLURAL:$1|canvi|canvis}}. Eliminar-la podria suposar un seriós desajustament de la base de dades de tot el projecte {{SITENAME}}; aneu en compte abans dur a terme l'acció.",
-'deleting-backlinks-warning' => "'''Avís:''' Altres pàgines enllacen a la pàgina que esteu a punt de suprimir.",
+'deleting-backlinks-warning' => "'''Avís:''' Altres pàgines enllacen o transclouen de la pàgina que esteu a punt de suprimir.",
# Rollback
'rollback' => 'Reverteix edicions',
Vegeu la [[Special:BlockList|llista de bloqueigs]] per revisar-los.",
'ipb-blockingself' => 'Esteu a punt de blocar-vos a vós mateix! Esteu segurs de voler-ho fer?',
'ipb-confirmhideuser' => "Esteu a punt de bloquejar un usuari que està marcat amb l'opció «amaga l'usuari». Això suprimirà el seu nom a totes les llistes i registres. Esteu segurs de voler-ho fer?",
+'ipb-confirmaction' => 'Si esteu segur que voleu fer-ho, marqueu el camp «{{int:ipb-confirm}}» a la part inferior.',
'ipb-edit-dropdown' => 'Edita les raons per a blocar',
'ipb-unblock-addr' => 'Desbloca $1',
'ipb-unblock' => 'Desbloca un usuari o una adreça IP',
'range_block_disabled' => 'La facultat dels administradors per a crear bloquejos de rang està desactivada.',
'ipb_expiry_invalid' => "Data d'acabament no vàlida.",
'ipb_expiry_temp' => "Els blocatges amb ocultació de nom d'usuari haurien de ser permanents.",
-'ipb_hide_invalid' => "No s'ha pogut eliminar el compte; potser té massa edicions.",
+'ipb_hide_invalid' => "No s'ha pogut eliminar el compte; té més {{PLURAL:$1|d'una edició|de $1 edicions}}.",
'ipb_already_blocked' => '«$1» ja està blocat',
'ipb-needreblock' => "L'usuari $1 ja està blocat. Voleu canviar-ne els paràmetres del blocatge?",
'ipb-otherblocks-header' => 'Altres {{PLURAL:$1|bloquejos|bloquejos}}',
'tooltip-pt-watchlist' => 'La llista de pàgines de les que estau vigilant els canvis.',
'tooltip-pt-mycontris' => 'Llista de les vostres contribucions.',
'tooltip-pt-login' => 'Us animem a registrar-vos, però no és obligatori',
-'tooltip-pt-anonlogin' => 'Us animem a registrar-vos, però no és obligatori.',
'tooltip-pt-logout' => "Finalitza la sessió d'usuari",
'tooltip-ca-talk' => "Discussió sobre el contingut d'aquesta pàgina",
'tooltip-ca-edit' => 'Podeu modificar aquesta pàgina. Si us plau, previsualitzeu-la abans de desar.',
'version-hook-name' => 'Nom del lligam',
'version-hook-subscribedby' => 'Subscrit per',
'version-version' => '(Versió $1)',
-'version-license' => 'Llicència',
+'version-license' => 'Llicència del MediaWiki',
+'version-ext-license' => 'Llicència',
+'version-ext-colheader-name' => 'Extensió',
+'version-ext-colheader-version' => 'Versió',
+'version-ext-colheader-license' => 'Llicència',
+'version-ext-colheader-description' => 'Descripció',
+'version-ext-colheader-credits' => 'Autors',
+'version-license-title' => 'Llicència de $1',
+'version-license-not-found' => "No s'ha trobat cap informació detallada de la llicència d'aquesta extensió.",
+'version-credits-title' => 'Crèdits de $1',
+'version-credits-not-found' => "No s'ha trobat cap informació detallada dels crèdits d'aquesta extensió.",
'version-poweredby-credits' => "El wiki funciona gràcies a '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
'version-poweredby-others' => 'altres',
'version-poweredby-translators' => 'Traductors de translatewiki.net',
MediaWiki es distribueix en l'esperança de ser d'utilitat, però SENSE CAP GARANTIA; ni tan sols la garantia implícita de COMERCIALITZACIÓ o ADEQUACIÓ A UNA FINALITAT DETERMINADA. En trobareu més detalls a la Llicència Pública General GNU.
Amb aquest programa heu d'haver rebut [{{SERVER}}{{SCRIPTPATH}}/COPYING una còpia de la Llicència Pública General GNU]; si no és així, adreceu-vos a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o bé [//www.gnu.org/licenses/old-licenses/gpl-2.0.html llegiu-la en línia].",
-'version-software' => 'Programari instaŀlat',
+'version-software' => 'Programari instal·lat',
'version-software-product' => 'Producte',
'version-software-version' => 'Versió',
'version-entrypoints' => "URL de punts d'entrada",
'api-error-overwrite' => 'No està permès sobreescriure un fitxer existent.',
'api-error-stashfailed' => 'Error intern: el servidor no ha pogut emmagatzemar fitxers temporals.',
'api-error-publishfailed' => 'Error intern: el servidor no ha pogut publicar el fitxer temporal.',
+'api-error-stasherror' => "S'ha produït un error en carregar el fitxer al dipòsit.",
'api-error-timeout' => 'El servidor no ha respost en el temps esperat.',
'api-error-unclassified' => "S'ha produït un error desconegut",
'api-error-unknown-code' => 'Error desconegut: «$1»',
'expand_templates_generate_rawhtml' => "Mostra l'HTML sense filtrar",
'expand_templates_preview' => 'Previsualitza',
+# Unknown messages
+'uploadinvalidxml' => "No s'ha pogut analitzar l'XML del fitxer carregat.",
);
'tog-numberheadings' => 'Ша шех хlитто терахь корташна',
'tog-showtoolbar' => 'Гайта лакхара гӀирсан дакъа нисйеш аттон оц тадар чохь (JavaScript)',
'tog-editondblclick' => 'Нисйе агӀонаш шозза тӀетаӀийча (JavaScript)',
-'tog-editsection' => 'Гайта хьажораг «нисйе» аьлла хӀора агӀона',
'tog-editsectiononrightclick' => 'Нисде дакъа шозза бакъехьар дахка тӀетаӀийча оцу кортан (JavaScript)',
-'tog-showtoc' => 'Гойти коьртнаш (оцу агlонашна лаххара 3 коьртнашца)',
'tog-rememberpassword' => 'Даглаца сан дӀаяздар хӀокху браузеран тӀяхь (цхьан $1 {{PLURAL:$1|де|динахь|ден}})',
'tog-watchcreations' => 'ТӀетоха ас кхоьллина агӀонаш тергаме могӀам чу',
'tog-watchdefault' => 'ТӀетоха ас нисйина агӀонаш тергаме могӀам чу',
'notanarticle' => 'Бац яззам',
'watchlist-details' => 'Хьан тергаме могlамца $1 {{PLURAL:$1|агlо|агlонаш|агlонаш}} ю, дийцаре агlонаша йоцуш.',
'wlheader-showupdated' => "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
-'wlnote' => 'Лахахьа {{PLURAL:$1|тlаьхьа богlу $1 хийцам|тlаьхьа богlу $1 хийцамаш|тlаьхьа богlу $1 хийцамаш}} хlокху {{PLURAL:$2|тlаьхьар|тlаьхьара|тlаьхьара}} <strong>$2</strong> {{PLURAL:$2|сохьт|сохьатехь|сохьташкахь}}.',
'wlshowlast' => 'Гайта тlаьххьара $1 сахьташ $2 денош $3',
'watchlist-options' => 'Тергаме могlаман гlирс нисбар',
'exif-sensingmethod' => 'Сенсоран тайп',
'exif-filesource' => 'Файлан хьост',
'exif-imageuniqueid' => 'Суьртан номер (ID)',
+'exif-gpslatitude' => 'Шоралла',
+'exif-gpslongitude' => 'Дохалла',
'exif-gpsaltitude' => 'Локхалла',
'exif-gpsdestlatitude' => 'Объектан дохалла',
'exif-gpsdatestamp' => 'Терахь',
'version-parser-function-hooks' => 'Cинтаксисан къасторан функци схьалоцурш',
'version-version' => '(Верси $1)',
'version-license' => 'Бакъо',
+'version-ext-license' => 'Лицензи',
+'version-ext-colheader-name' => 'Шордарш',
'version-ext-colheader-version' => 'Верси',
+'version-ext-colheader-license' => 'Лицензи',
+'version-ext-colheader-description' => 'Цуьнах лаьцна',
+'version-ext-colheader-credits' => 'Автораш',
'version-poweredby-credits' => "ХӀара вики болх беш ю '''[https://www.mediawiki.org/ MediaWiki]''' движок тӀехь, copyright © 2001-$1 $2.",
'version-poweredby-others' => 'кхин',
'version-license-info' => 'MediaWiki ю маьрша программин латораг, шу йиш ю фондас арахецна йолу GNU General Public License лицензица и яржо я хийца а.
'tog-numberheadings' => 'ژمارەکردنی خۆگەڕی سەردێڕەکان',
'tog-showtoolbar' => 'شریتی ئامرازەکانی دەستکاری نیشان بدە (JavaScript پێویستە)',
'tog-editondblclick' => 'دەستکاریی پەڕە بە دووکلیک لەسەر دەق (JavaScript پێویستە)',
-'tog-editsection' => 'ڕێگە بدە بۆ دەستکاری کردنی بەشەکان لە ڕێگەی بەستەرەکانی [دەستکاری]',
'tog-editsectiononrightclick' => 'ڕێگە بدە بۆ دەستکاری کردنی بەشەکان لە ڕێگەی کلیکی ڕاست کردن لەسەر سەردێڕی بەشەکان (JavaScript پێویستە)',
-'tog-showtoc' => 'پێرستی ناوەرۆک نیشان بدە (بۆ ئەو پەڕانە کە زیاتر لە ٣ سەردێڕیان تێدایە)',
'tog-rememberpassword' => 'چوونە ژوورەوەم لەسەر ئەم وێبگەڕە پاشەکەوت بکە (ئەو پەڕی $1 {{PLURAL:$1|ڕۆژ|ڕۆژ}}ە)',
'tog-watchcreations' => 'ئەو پەڕانەی من دروستم کردوون و ئەو پەڕگانە من بارم کردوون زیاد بکە بە لیستی چاودێڕییەکەم',
'tog-watchdefault' => 'ئەو پەڕانە و ئەو پەڕگانە من دەستکاریان دەکەم زیاد بکە بە لیستی چاودێڕییەکەم',
* @ingroup Language
* @file
*
+ * @author Ale Mister
* @author Ale Mister (on co.wikipedia.org)
* @author Img (on co.wikipedia.org)
+ * @author Paulu
*/
$fallback = 'it';
'oct' => 'ott',
'nov' => 'nuv',
'dec' => 'dic',
+'may-date' => '{{PLURAL:$1|1°|$1}} maghju',
+'august-date' => '{{PLURAL:$1|1°|$1}} aostu',
+'september-date' => '{{PLURAL:$1|1°|$1}} sittembre',
+'november-date' => '{{PLURAL:$1|1°|$1}} nuvembre',
# Categories related messages
'pagecategories' => '{{PLURAL:$1|Categuria|Categurie}}',
-'category_header' => 'Articuli in a categuria "$1"',
+'category_header' => 'Pagine in a categuria "$1"',
'subcategories' => 'Sottucategurie',
+'category-empty' => "''Sta categuria ùn cuntene alcuna pagina o file multimediale.''",
+'hidden-categories' => '{{PLURAL:$1|Categuria nascosta|Categurie nascoste}}',
+'hidden-category-category' => 'Categurie nascoste',
+'index-category' => 'Pagine indicizate',
'about' => 'À prupositu',
'article' => 'Articulu',
+'newwindow' => '(si apre in una nova finestra)',
'cancel' => 'Annullà',
-'mypage' => 'A mo pagina',
-'mytalk' => 'E mo discussioni',
+'morenotlisted' => "'Ssa lista ùn hè micca cumpletta",
+'mypage' => 'A me pagina',
+'mytalk' => 'Discussione',
'anontalk' => 'Discussione per istu indirizzu IP',
'navigation' => 'Navigazione',
'and' => ' è',
# Cologne Blue skin
+'qbfind' => 'Truvà',
'qbpageoptions' => 'Issa pagina',
'qbmyoptions' => 'E mo pagine',
# Vector skin
+'vector-action-addsection' => 'Aghjunghje discussione',
'vector-action-delete' => 'Supprimà',
+'vector-action-move' => 'Cullucà',
'vector-action-protect' => 'Pruteghje',
+'vector-action-unprotect' => 'Cambià a prutezzione',
+'vector-view-create' => 'Creà',
'vector-view-edit' => 'Mudificà',
+'vector-view-history' => 'Vede a cronolugia',
+'vector-view-view' => 'Leghje',
+'vector-view-viewsource' => 'Vede a surghjente',
+'actions' => 'Azzione',
+'variants' => 'Variante',
'errorpagetitle' => 'Errore',
'returnto' => 'Vultà à $1.',
+'tagline' => 'À prupositu di {{SITENAME}}',
'help' => 'Aiutu',
'search' => 'Ricerca',
'searchbutton' => 'Ricerca',
-'searcharticle' => 'Và',
+'go' => 'Andà',
+'searcharticle' => 'Andà',
'history' => 'Cronolugia',
'history_short' => 'Cronolugia',
+'updatedmarker' => 'Mudificata dapoi a me ultima visita',
+'printableversion' => 'Versione stampevule',
'permalink' => 'Ligame permanente',
'print' => 'Stampà',
+'view' => 'Vede',
'edit' => 'Mudificà',
'create' => 'Creà',
+'create-this-page' => "Creà 'ssa pagina",
'delete' => 'Supprimà',
'deletethispage' => 'Cancellà issa pagina',
'protect' => 'Pruteghje',
+'protect_change' => 'Cambià',
'protectthispage' => 'Pruteghje issa pagina',
+'unprotect' => 'Cambià a prutezzione',
+'unprotectthispage' => 'Cambià a prutezzione di sta pagina',
'newpage' => 'Pagina nova',
+'talkpage' => "Discussione di 'ssa pagina",
'talkpagelinktext' => 'discussione',
'specialpage' => 'Pagina speciale',
+'personaltools' => 'Strumenti persunali',
+'postcomment' => 'Nova sezione',
'articlepage' => "Vede l'articulu",
'talk' => 'Discussione',
'toolbox' => 'Stuvigli',
'userpage' => 'Vede a pagina di utilizatore',
-'otherlanguages' => 'In altri lingui',
-'lastmodifiedat' => 'Ultima mudifica di ista pagina u $1 à e $2.',
+'projectpage' => 'Vede a pagina prutetta',
+'mediawikipage' => 'Vede i missaghji',
+'templatepage' => 'Vede a pagina di mudellu',
+'viewhelppage' => 'Vede a pagina di aiutu',
+'categorypage' => 'Vede a pagina di categuria',
+'viewtalkpage' => 'Vede a discussione',
+'otherlanguages' => 'In altre lingue',
+'lastmodifiedat' => 'Ultima mudifica di sta pagina u $1 à e $2.',
'protectedpage' => 'Pagina prutetta',
+'jumpto' => 'Andà à:',
'jumptonavigation' => 'navigazione',
'jumptosearch' => 'ricerca',
+'pool-errorunknown' => 'Errore scunnisciutu',
# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
'aboutsite' => 'À prupositu di {{SITENAME}}',
'aboutpage' => 'Project:À prupositu',
'currentevents' => 'Ultimi evenimenti',
'currentevents-url' => 'Project:Ultimi evenimenti',
-'disclaimers' => 'Avertimenti',
+'disclaimers' => 'Avvertimenti',
'disclaimerpage' => 'Project:Avertimenti generali',
+'helppage' => 'Help:Cuntenutu',
'mainpage' => 'Pagina maestra',
'mainpage-description' => 'Pagina maestra',
'portal' => 'Purtone di a cumunità',
'versionrequired' => 'A version $1 di MediaWiki hè necessaria',
+'ok' => "D'accordu",
+'retrievedfrom' => 'Ricacciatu da "$1"',
+'youhavenewmessagesmulti' => 'Ha novi missaghji nantu à $1',
'editsection' => 'mudificà',
'editold' => 'mudificà',
+'viewsourceold' => 'Vede a surghjente',
'editlink' => 'mudificà',
+'viewsourcelink' => 'Vede a surghjente',
+'editsectionhint' => 'Mudificà a sezzione: $1',
'toc' => 'Cuntenutu',
'showtoc' => 'mustrà',
'hidetoc' => 'piattà',
'feed-atom' => 'Atomu',
+'red-link-title' => '$1 (a pagina ùn esiste micca)',
# Short words for each namespace, by default used in the namespace tab in monobook
'nstab-main' => 'Articulu',
-'nstab-user' => 'Utilizatore',
+'nstab-user' => 'Pagina di cuntributore',
+'nstab-special' => 'Pagina spiciale',
+'nstab-project' => 'Pagina di prugettu',
'nstab-image' => 'Schedariu',
'nstab-mediawiki' => 'Messaghju',
'nstab-template' => 'Mudellu',
# General errors
'error' => 'Errore',
+'missingarticle-rev' => '(numeru di a versione: $1)',
'internalerror' => 'Errore internu',
+'internalerror_info' => 'Errore internu: $1',
+'badtitle' => 'Titulu scurrettu',
+'viewsource' => 'Vede a surghjente',
+'viewsource-title' => 'Vede a sughjente di $1',
+'actionthrottled' => 'Azzione attimpata',
+'viewsourcetext' => 'Si pò vede è cupià u codice surghjente di sta pagina:',
+
+# Virus scanner
+'virus-unknownscanner' => 'antivirus scunnisciutu:',
# Login and logout pages
-'yourname' => 'Nome di utilizatore:',
-'yourpassword' => 'Parulla secreta:',
-'yourpasswordagain' => 'Scrive torna a parulla secreta:',
+'yourname' => 'Nome di cuntributore:',
+'yourpassword' => 'Parolla secreta:',
+'yourpasswordagain' => 'Ripete a parolla secreta:',
'yourdomainname' => 'U to duminiu:',
'login' => 'Cunnessione',
-'userlogin' => 'Cunnessione / Registramentu',
+'nav-login-createaccount' => 'Cunnessione / registramentu',
+'userlogin' => 'Cunnessione / registramentu',
'logout' => 'Scunnessione',
'userlogout' => 'Scunnessione',
+'nologin' => 'Ùn ha ancu un accessu? $1.',
'nologinlink' => 'Registramentu',
'createaccount' => 'Registramentu',
+'gotaccount' => 'Ùn ha ancu un accessu? $1.',
'gotaccountlink' => 'Cunnessione',
'createaccountreason' => 'Mutivu:',
+'createacct-reason' => 'Mutivu',
'loginsuccesstitle' => 'Cunnessione fatta',
'acct_creation_throttle_hit' => "Desulatu, ai digià fattu $1 registramenti. Ùn ne poi micca fà d'altri.",
'accountcreated' => 'Registramentu fattu',
# Change password dialog
'retypenew' => 'Scrive torna a nova parulla secreta:',
+'resetpass-submit-cancel' => 'Cancillà',
+
+# Special:ChangeEmail
+'changeemail-cancel' => 'Cancillà',
# Edit page toolbar
+'bold_sample' => 'Grassettu',
+'bold_tip' => 'Grassettu',
+'italic_sample' => 'Italicu',
+'italic_tip' => 'Italicu',
+'link_sample' => 'Titulu di u ligame',
+'link_tip' => 'Ligame internu',
+'extlink_tip' => 'Ligamu esternu (cù u prefissu http:// )',
+'headline_sample' => 'Testu di intestatura',
+'headline_tip' => 'Intestamentu di 2° livellu',
+'nowiki_sample' => 'Inserisce quì u testu micca furmattatu',
+'nowiki_tip' => 'Ignurà a furmattazione wiki',
'image_sample' => 'Esempiu.jpg',
+'hr_tip' => 'Linia orizuntale (da imprudà incù ghjudiziu)',
# Edit pages
-'minoredit' => 'Mudifica minore',
+'minoredit' => 'Hè una mudifica minore',
+'watchthis' => "Fighjulà 'ssa pagina",
'savearticle' => 'Arrighjistrà a pagina',
+'preview' => 'Previsualisazione',
+'showpreview' => 'Previsualizà',
'showdiff' => 'Mustrà i cambiamenti',
-'anoneditwarning' => "'''Attenzione''': ùn sè micca un utilizatore registratu, oppuru ùn ai fattu a cunnessione.
-U to indirizzu IP serà registratu indu a cronolugia di ista pagina.",
+'anoneditwarning' => "'''Attenzione:''' Ùn ai micca fattu a cunnessione. U to indirizzu IP sarà salvatu in a cronolugia di sta pagina.",
'loginreqlink' => 'cunnessione',
'accmailtitle' => 'Parulla secreta inviata.',
'accmailtext' => 'A parulla secreta per "$1" hè stata inviata à l\'indirizzu $2.',
+'newarticle' => '(Novu)',
+'previewnote' => "'''Attentu: questa ùn hè ch'è una previsualisazzione.'''
+E to mudifiche ùn sò ancora state salvate!",
'editing' => 'Mudifica di $1',
'editingsection' => 'Mudifica di $1 (sezzione)',
'editingcomment' => 'Mudifica di $1 (cummentu)',
'editconflict' => 'Cunflittu di mudificazione: $1',
'yourtext' => 'U to testu',
'yourdiff' => 'Differenze',
+'templatesused' => "{{PLURAL:$1|Mudellu imprudatu|Mudelli imprudati}} in 'ssa pagina:",
'template-protected' => '(prutettu)',
'template-semiprotected' => '(mezu prutettu)',
+'hiddencategories' => 'Sta pagina appartene à {{PLURAL:$1|una categuria nascosta|$1 categurie nascoste}}:',
+
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => "'''Attenti:''' a dimensione di i mudelli inclusi è troppa maiò.
+Parechji mudelli ùn seranu micca inclusi.",
+'post-expand-template-inclusion-category' => 'Pagine per e quale a dimensione di i mudelli inclusi supereghja a limita',
+'post-expand-template-argument-category' => 'Pagine cuntinenti argumenti di mudellu mancanti',
# Account creation failure
'cantcreateaccounttitle' => 'Registramentu micca pussibile',
# History pages
'currentrev' => 'Ultima revisione',
+'currentrev-asof' => 'Versione attuale di e $1',
+'revisionasof' => 'Versione di e $1',
+'revision-info' => 'Versione di e $4 à e $5 di $2',
+'previousrevision' => '← Versione menu ricente',
+'currentrevisionlink' => 'Ultima revisione',
'page_first' => 'prima',
-'histfirst' => 'Prima',
-'histlast' => 'Ultima',
+'history-fieldset-title' => 'Parcorre a cronolugia',
+'history-show-deleted' => 'Solu quelli cancellati',
+'histfirst' => 'prima',
+'histlast' => 'ultima',
'historysize' => '({{PLURAL:$1|1 ottettu|$1 ottetti}})',
# Revision feed
'history-feed-title' => 'Cronolugia di e revisione',
+'history-feed-item-nocomment' => 'da $1 à $2',
# Revision deletion
'rev-delundel' => 'mustrà/piattà',
'revdelete-log' => 'Mutivu:',
+'revdel-restore' => 'cambià a visibilità',
# History merging
'mergehistory-reason' => 'Mutivu:',
+# Diffs
+'history-title' => '$1: cronolugia di e mudifiche',
+'lineno' => 'Linia $1:',
+'compareselectedversions' => 'Paragunà e versione selezziunate',
+'editundo' => 'Cancillà a modifica',
+
# Search results
'searchresults' => 'Risultati di a ricerca',
+'searchresults-title' => 'Risultati di a ricerca di "$1"',
+'prevn' => '{{PLURAL:$1|precidente|precidenti $1}}',
+'nextn' => '{{PLURAL:$1|siguente|siguenti $1}}',
+'prevn-title' => '{{PLURAL:$1|Risultatu precidente|$1 risultati precidenti}}',
+'nextn-title' => '{{PLURAL:$1|Risultatu|$1 risultati}}',
+'shown-title' => 'Mustrà {{PLURAL:$1|un risultatu|$1 risultati}} per pagina',
+'searchmenu-exists' => "'''Esiste nantu à u situ una pagina intitulata \"[[:\$1]]\"'''",
+'searchmenu-new' => 'Creà a pagina "[[:$1]]" annantu à \'ssu situ',
+'searchprofile-articles' => 'Pagine di cuntenuti',
+'searchprofile-project' => 'Pagine di aiutu è relative à u prugettu',
+'searchprofile-everything' => 'Tuttu',
+'searchprofile-advanced' => 'Avanzatu',
+'searchprofile-articles-tooltip' => 'Circà in $1',
+'searchprofile-project-tooltip' => 'Circà in $1',
+'searchprofile-everything-tooltip' => 'Circà dapertuttu (incluse e pagine di discussione)',
+'search-result-size' => '$1 ({{PLURAL:$2|1 parolla|$2 parolle}})',
+'search-section' => '(sezzione $1)',
+'search-suggest' => 'Forse vulii dì',
+'searchrelated' => 'currilati',
+'showingresultsheader' => "{{PLURAL:$5|Risultatu '''$1''' di '''$3'''|Risultati '''$1 - $2''' di '''$3'''}} per '''$4'''",
+'search-nonefound' => 'A ricerca ùn hà micca datu risultati.',
# Preferences page
'preferences' => 'Preferenze',
'localtime' => 'Ora lucale',
'allowemail' => 'Abilità a ricezzione di e-mail da altri utilizatori',
'prefs-files' => 'Schedarii',
-'youremail' => 'Indirizzu e-mail:',
-'yourrealname' => 'U to veru nome:',
+'youremail' => 'Indirizzu di currieru elettronicu:',
+'yourrealname' => 'Casata reale:',
'yourlanguage' => "Lingua di l'interfaccia:",
'yourvariant' => 'Variante',
'yournick' => 'Signatura pè e discussioni:',
'grouppage-sysop' => '{{ns:project}}:Amministratori',
'grouppage-bureaucrat' => '{{ns:project}}:Burocrati',
+# Special:Log/newusers
+'newuserlogpage' => 'Novi cuntributori',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => "mudificà 'ssa pagina",
+
# Recent changes
+'nchanges' => '$1 {{PLURAL:$1|mudifica|mudifiche}}',
'recentchanges' => 'Ultimi cambiamenti',
-'rcnotefrom' => "Quì sò discritti i cambiamenti dipoi <b>$2</b> (sin'à <b>$1</b>).",
-'rclistfrom' => 'Mustrà i cambiamenti dipoi $1',
+'recentchanges-legend' => "Ozzione per l'ultime mudifiche",
+'recentchanges-summary' => 'Sta pagina prisenta e mudifiche più recente à u cuntenutu di u situ.',
+'recentchanges-label-newpage' => "'Ssa mudifica hà creatu una pagina nova",
+'recentchanges-label-minor' => 'Hè una mudifica minore',
+'recentchanges-label-bot' => 'Sta mudifica hè stata effettuata da un botu',
+'recentchanges-label-unpatrolled' => 'Sta mudifica ùn hè ancu stata verificata',
+'recentchanges-label-plusminus' => "A dimensione di a pagina hè stata cambiata di 'ssu numaru d'ottetti",
+'rcnotefrom' => "Quì seguitanu e mudifiche dapoi u '''$2''' ('''$1''' à u massimu).",
+'rclistfrom' => 'Mustrà e mudifiche dapoi u $1',
'rcshowhideminor' => '$1 i cambiamenti minori',
'rcshowhidebots' => '$1 i boti',
-'rcshowhideliu' => "$1 l'utilizatori registrati",
+'rcshowhideliu' => '$1 i cuntributori righjistrati',
'rcshowhideanons' => '$1 i cuntributori anonimi',
+'rcshowhidepatr' => '$1 e mudifiche verificate',
'rcshowhidemine' => '$1 e mo cuntribuzioni',
-'rclinks' => 'Mustrà ultimi $1 cambiamenti in i $2 ghjorni scorsi<br />$3',
+'rclinks' => "Mustrà l'ultime $1 mudifiche in i $2 ghjorni scorsi<br />$3",
'hist' => 'cron',
'hide' => 'piattà',
'show' => 'mustrà',
+'rc-enhanced-hide' => 'Nasconde i dittagli',
# Recent changes linked
-'recentchangeslinked' => 'Cambiamenti assuciati',
+'recentchangeslinked' => 'Mudifiche assuciate',
'recentchangeslinked-feed' => 'Cambiamenti assuciati',
'recentchangeslinked-toolbox' => 'Cambiamenti assuciati',
+'recentchangeslinked-title' => 'Mudifiche assuciate à "$1"',
+'recentchangeslinked-page' => 'Nome di a pagina:',
+'recentchangeslinked-to' => 'Mustrà solu e mudifiche à a pagine legate à quella specificata',
# Upload
'upload' => 'Incaricà un schedariu',
'upload-file-error' => 'Errore internu',
+'license' => 'Licenzia:',
+'license-header' => 'Licenzia:',
+
# Special:ListFiles
'imgfile' => 'schedariu',
'listfiles_date' => 'Data',
'file-anchor-link' => 'Schedariu',
'filehist' => "Cronolugia di l'imagine",
'filehist-deleteone' => 'supprimà',
-'filehist-user' => 'Utilizatore',
-'imagelinks' => 'Ligami',
+'filehist-user' => 'Cuntributore',
+'filehist-dimensions' => 'Dimensione',
+'filehist-comment' => 'Cummentu',
+'imagelinks' => 'Usu di u schedariu',
# File reversion
'filerevert-comment' => 'Mutivu:',
# Miscellaneous special pages
'ncategories' => '$1 {{PLURAL:$1|categuria|categurie}}',
+'nmembers' => '$1 {{PLURAL:$1|elementu|elementi}}',
'specialpage-empty' => 'Issa pagina hè biota.',
'popularpages' => 'Pagine populare',
+'prefixindex' => 'Indice di e pagine per lettere iniziale',
'shortpages' => 'Pagine corte',
'longpages' => 'Pagine longhe',
'protectedpages' => 'Pagine prutette',
'listusers' => 'Listinu di i cuntributori',
'newpages' => 'Pagine nove',
'ancientpages' => 'Pagine vechje',
+'move' => 'Cullucà',
+'pager-newer-n' => '{{PLURAL:$1|1 più ricente|$1 più ricenti}}',
+'pager-older-n' => '{{PLURAL:$1|1 menu ricente|$1 menu ricenti}}',
+
+# Book sources
+'booksources' => 'Libri di fonti',
+'booksources-go' => 'Andà',
# Special:Log
'specialloguserlabel' => 'Utilizatore:',
'speciallogtitlelabel' => 'Titulu:',
+'log' => 'Righjistramenti',
'all-logs-page' => "Tutte l'azzioni",
# Special:AllPages
'allpages' => 'Tutte e pagine',
'alphaindexline' => 'da $1 à $2',
+'nextpage' => 'Pagina seguente ($1)',
+'prevpage' => 'Pagina precedente ($1)',
'allpagesfrom' => 'Mustrà e pagine à parte da:',
-'allarticles' => "Tutti l'articuli",
+'allarticles' => 'Tutte e pagine',
'allinnamespace' => 'Tutte e pagine di u spaziu $1',
'allpagessubmit' => 'Và',
'allpagesprefix' => 'Mustrà e pagine chì cumincianu cù:',
# Special:LinkSearch
'linksearch-ns' => 'Spaziu:',
'linksearch-ok' => 'Ricerca',
+'linksearch-line' => '$1 hè culligatu à a pagina $2',
# Special:ListUsers
'listusers-submit' => 'Mustrà',
+# Special:ListGroupRights
+'listgrouprights-members' => '(Lista di i membri)',
+
# Email user
+'emailuser' => "Scrive à 'ssu cuntributore",
'emailto' => 'À:',
'emailsubject' => 'Sughjettu:',
'emailmessage' => 'Messaghju:',
'emailsend' => 'Invià',
# Watchlist
-'watchlist' => 'Articuli seguitati',
-'mywatchlist' => 'Articuli seguitati',
-'watch' => 'Seguità',
+'watchlist' => 'Seguitati',
+'mywatchlist' => 'Seguitati',
+'watchlistfor2' => 'Per $1 ($2)',
+'watch' => 'Suvità',
+'unwatch' => 'Ùn suvità micca',
+'wlshowlast' => "Mustrà l'ultime $1 ore $2 ghjorni $3",
'enotif_reset' => 'Marcà tutte e pagine visitate',
'created' => 'creatu',
'exblank' => 'a pagina era biota',
'delete-legend' => 'Supprimà',
'actioncomplete' => 'Azzione compia',
+'actionfailed' => 'Azione faltata',
+'dellogpage' => 'Cancellamenti',
'deletecomment' => 'Mutivu:',
# Protect
-'protectedarticle' => 'prutettu "[[$1]]"',
+'protectedarticle' => 'hai prutettu "[[$1]]"',
'prot_1movedto2' => 'hà mossu [[$1]] à [[$2]]',
'protect-legend' => 'Cunfirmà a prutezzione',
'protectcomment' => 'Mutivu:',
# Undelete
'viewdeletedpage' => 'Fighjulà e p agine supprimate',
+'undeleteviewlink' => 'vede',
'undeletecomment' => 'Mutivu:',
'undelete-search-box' => 'Circà e pagine supprimate',
'undelete-search-submit' => 'Ricerca',
'blanknamespace' => '(Principale)',
# Contributions
-'contributions' => "Cuntribuzioni di l'utilizatore",
-'mycontris' => 'E mo cuntribuzioni',
-'contribsub2' => 'Per $1 ($2)',
+'contributions' => 'Mudifiche fatte da i {{GENDER:$1|cuntributori|cuntributrici}}',
+'contributions-title' => 'Cuntribuzione di $1',
+'mycontris' => 'Cuntribuzioni',
+'contribsub2' => 'Per {{GENDER:$3|$1}} ($2)',
'month' => 'Da u mese (è nanzu):',
+'year' => "Da l'annu (è nanzu):",
+'sp-contributions-newbies' => 'Mustrà solu e mudifiche di i novi cuntributori',
'sp-contributions-talk' => 'discussione',
+'sp-contributions-search' => 'Ricercà e cuntribuzione',
+'sp-contributions-submit' => 'Circà',
# What links here
+'whatlinkshere' => 'Pagine chì leganu quì',
+'whatlinkshere-title' => 'Pagine ligate à "$1"',
+'linkshere' => "E seguente pagine sò culligate à '''[[:$1]]''':",
'istemplate' => 'inclusione',
+'whatlinkshere-prev' => '{{PLURAL:$1|precidente|precidenti $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|seguente|seguenti $1}}',
+'whatlinkshere-links' => '$1 ligami',
+'whatlinkshere-hidetrans' => 'inclusione',
+'whatlinkshere-hidelinks' => '$1 ligami',
# Block/unblock
'ipadressorusername' => 'Adrizzu IP o nome di cuntributore',
'ipbreason' => 'Mutivu:',
+'ipboptions' => '2 ore:2 hours,1 ghjornu:1 day,3 ghjorni:3 days,1 sittimana:1 week,2 sittimane:2 weeks,1 mese:1 month,3 mesi:3 months,6 mesi:6 months,1 annu:1 year,infinitu:infinite',
+'ipblocklist' => 'Cuntributori bluccati',
'blocklist-reason' => 'Mutivu',
'ipblocklist-submit' => 'Ricerca',
'anononlyblock' => 'solu i cuntributori anonimi',
'blocklink' => 'bluccà',
'unblocklink' => 'sbluccà',
-'contribslink' => 'cuntribuzioni',
+'change-blocklink' => 'cambià u bloccu',
+'contribslink' => 'cuntribuzione',
+'blocklogentry' => 'ha bluccatu [[$1]] per un periodu di $2 $3',
'block-log-flags-anononly' => 'solu cuntributori anonimi',
'block-log-flags-nocreate' => 'registramentu pruibitu',
'export-addcat' => 'Aghjunghje',
# Namespace 8 related
-'allmessages' => 'Messaghji di sistemu',
+'allmessages' => 'Messagi di sistemu',
'allmessagesname' => 'Nome',
-'allmessagesdefault' => 'Testu prestabilitu',
+'allmessagesdefault' => 'Testu predefinitu',
'allmessagescurrent' => 'Testu attuale',
-'allmessagestext' => 'Istu hè u listinu di tutti i messaghji dispunibili in u spaziu MediaWiki.',
-'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' ùn hè dispunibile perchè '''\$wgUseDatabaseMessages''' ùn hè micca attivu.",
+'allmessagestext' => 'Ista pagina riperturia a lista di tutti i messagi dispunibili in u spaziu MediaWiki. Per cuntribuì à a lucalizazione generica di MediaWiki, visità [[translatewiki:|Translatewiki.net]].',
+'allmessagesnotsupportedDB' => "Ista pagina ùn hè dispunibile perchè '''\$wgUseDatabaseMessages''' ùn hè micca attivu.",
+'allmessages-filter-legend' => 'Filtru',
+'allmessages-filter' => 'Filtrà per statu di mudifica:',
+'allmessages-filter-unmodified' => 'Micca mudificati',
+'allmessages-filter-all' => 'Tutti',
+'allmessages-filter-modified' => 'Mudificati',
+'allmessages-prefix' => 'Filtrà per prefissu:',
+'allmessages-language' => 'Lingua:',
+'allmessages-filter-submit' => 'Applicà',
+
+# Thumbnails
+'thumbnail-more' => 'Allargà',
# Special:Import
'import-interwiki-submit' => 'Impurtà',
'import-logentry-upload-detail' => '$1 {{PLURAL:$1|revisione|revisione}}',
# Tooltip help for the actions
-'tooltip-pt-userpage' => 'A to pagina di utilizatore',
+'tooltip-pt-userpage' => 'A to pagina di cuntributore',
'tooltip-pt-mytalk' => 'A to pagina di discussione',
'tooltip-pt-preferences' => 'E to preferenze',
-'tooltip-pt-watchlist' => 'U listinu di e pagine chì seguiti',
-'tooltip-pt-mycontris' => 'U listinu di e to cuntribuzioni',
+'tooltip-pt-watchlist' => "Lista di e pagine ch'è tù suviti",
+'tooltip-pt-mycontris' => 'Lista di e to cuntribuzioni',
'tooltip-pt-login' => 'U registramentu hè suggeritu, micca ubligatoriu',
-'tooltip-pt-logout' => 'Scunnessione',
-'tooltip-ca-protect' => 'Pruteghje issa pagina',
-'tooltip-ca-delete' => 'Supprimà issa pagina',
+'tooltip-pt-logout' => 'Esce da a sessione',
+'tooltip-ca-talk' => 'Vede e discussione relative à sta pagina',
+'tooltip-ca-edit' => "Pò mudificà 'ssa pagina. Per piacè improda l'ozzione di previsualisazzione prima di salvà",
+'tooltip-ca-addsection' => 'Cumincià una nova sezzione',
+'tooltip-ca-viewsource' => 'Sta pagina hè prutetta, ma si pò vede u so codice surghjente',
+'tooltip-ca-history' => 'Versione precedente di sta pagina',
+'tooltip-ca-protect' => 'Prutege sta pagina',
+'tooltip-ca-delete' => 'Supprime sta pagina',
+'tooltip-ca-move' => "Move 'ssa pagina",
+'tooltip-ca-watch' => "Aghjunghje 'ssa pagina à u listinu di e pagine ch'è tù suviti",
+'tooltip-search' => 'Circà in {{SITENAME}}',
+'tooltip-search-go' => "Andà à una pagina incù u titolu indicatu, s'ella esiste",
+'tooltip-search-fulltext' => 'Circà e pagine cuntinenti stu testu',
'tooltip-p-logo' => 'Pagina maestra',
'tooltip-n-mainpage' => 'Andà à a Pagina maestra',
+'tooltip-n-mainpage-description' => 'Andà à a pagina maestra',
+'tooltip-n-portal' => 'À prupositu di u prugettu, ciò chì si pò fà, induve truvà qualcosa',
+'tooltip-n-currentevents' => "Informazione nantu à l'evvenimenti di attualità",
+'tooltip-n-recentchanges' => "Listinu di l'ultime mudifiche di u situ",
+'tooltip-n-randompage' => "Sceglie una pagina à l'accasu",
+'tooltip-n-help' => 'Pagine di aiutu',
+'tooltip-t-whatlinkshere' => 'Listinu di tutte e pagine chì sò ligate à quessa',
+'tooltip-t-recentchangeslinked' => "Versione di l'ultime mudifiche à e pagine legate à quessa",
+'tooltip-t-contributions' => "Listinu di e mudifiche di 'ssu cuntributore",
'tooltip-t-specialpages' => 'Listinu di tutte e pagine spiciale',
-'tooltip-ca-nstab-user' => 'Vede a pagina di utilizatore',
+'tooltip-t-print' => "Versione stampevule di 'ssa pagina",
+'tooltip-t-permalink' => 'Ligame permanente à e revisione di sta pagina',
+'tooltip-ca-nstab-main' => "Vede u cuntenutu di l'articulu",
+'tooltip-ca-nstab-user' => 'Vede a pagina di cuntributore',
+'tooltip-ca-nstab-project' => 'Vede a pagina di u prugettu',
+'tooltip-ca-nstab-template' => 'Vede u mudellu',
+'tooltip-ca-nstab-category' => 'Vede a pagina di categuria',
+'tooltip-minoredit' => "Signalà com'è mudifica minore",
+'tooltip-save' => 'Arrighjistrà i cambiamenti',
+'tooltip-preview' => 'Previsualizà i cambiamenti (si cunsiglia di salvà prima)',
+'tooltip-diff' => 'Mustrà e mudifiche fatte à u testu',
+'tooltip-compareselectedversions' => 'Vede e differenze trà e dui versione selezziunate di sta pagina.',
# Attribution
'anonymous' => '{{PLURAL:$1|Utilizatore anonimu|Utilizatori anonimi}} di {{SITENAME}}',
'others' => 'altri',
# Media information
-'show-big-image' => 'Imagine in alta resoluzione',
+'file-nohires' => 'Una diversione incù una risoluzione più alta ùn hè micca dispunibile.',
+'show-big-image' => 'Schedariu originale',
+'show-big-image-other' => '{{PLURAL:$2|Altra risuluzione|Altre risuluzioni}}: $1.',
# Special:NewFiles
'showhidebots' => '($1 boti)',
'exif-saturation-0' => 'Nurmale',
# 'all' in various places, this might be different for inflected languages
-'watchlistall2' => 'tutti',
+'watchlistall2' => 'tutte',
'monthsall' => 'tutti',
# action=purge
'confirm_purge_button' => "D'accordu",
# Table pager
-'table_pager_next' => 'Prossima pagina',
+'table_pager_next' => 'Pagina seguente',
+'table_pager_prev' => 'Pagina precedente',
'table_pager_first' => 'Prima pagina',
'table_pager_last' => 'Ultima pagina',
+'table_pager_limit' => 'Mustrà $1 elementi per pagina',
+'table_pager_limit_label' => 'Risultati per pagina:',
+'table_pager_limit_submit' => 'Invià',
'table_pager_empty' => 'Micca risultati',
# Auto-summaries
# Watchlist editor
'watchlistedit-raw-titles' => 'Pagine:',
+# Watchlist editing tools
+'watchlisttools-view' => 'Vede e modifiche assuciate',
+
# Special:Version
'version' => 'Versione',
+'version-specialpages' => 'Pagine spiciale',
# Special:SpecialPages
'specialpages' => 'Pagine spiciale',
# Special:Tags
'tags-edit' => 'mudificà',
+# New logging system
+'rightsnone' => '(nessunu)',
+
# Special:ExpandTemplates
'expand_templates_output' => 'Risultatu',
'tog-numberheadings' => 'Automaticky číslovat nadpisy',
'tog-showtoolbar' => 'Zobrazit panel nástrojů',
'tog-editondblclick' => 'Editovat stránky dvojklikem',
-'tog-editsection' => 'Zapnout možnost editace části stránky pomocí odkazu [editovat]',
'tog-editsectiononrightclick' => 'Umožnit editaci části stránky kliknutím pravým tlačítkem na nadpisy sekcí',
-'tog-showtoc' => 'Zobrazovat obsah (na stránkách s více než třemi nadpisy)',
'tog-rememberpassword' => 'Zapamatovat si mé přihlášení v tomto prohlížeči (maximálně $1 {{PLURAL:$1|den|dny|dní}})',
'tog-watchcreations' => 'Přidávat mnou založené stránky a načtené soubory ke sledovaným',
'tog-watchdefault' => 'Přidávat mnou editované stránky a soubory ke sledovaným',
'retypenew' => 'Napište znovu nové heslo',
'resetpass_submit' => 'Nastavit heslo a přihlásit se',
'changepassword-success' => 'Vaše heslo bylo úspěšně změněno!',
+'changepassword-throttled' => 'Provedli jste příliš mnoho pokusů o přihlášení.
+Než to zkusíte znovu, musíte počkat na vypršení lhůty $1.',
'resetpass_forbidden' => 'Hesla nelze změnit.',
'resetpass-no-info' => 'K této stránce mají přímý přístup jen přihlášení uživatelé.',
'resetpass-submit-loggedin' => 'Změnit heslo',
'changeemail-password' => 'Vaše heslo do {{gender:2sg|{{SITENAME}}}}:',
'changeemail-submit' => 'Změnit e-mail',
'changeemail-cancel' => 'Storno',
+'changeemail-throttled' => 'Provedli jste příliš mnoho pokusů o přihlášení.
+Než to zkusíte znovu, musíte počkat na vypršení lhůty $1.',
# Special:ResetTokens
'resettokens' => 'Reinicializace klíčů',
'search-result-score' => 'Relevantnost: $1 %',
'search-redirect' => '(přesměrování $1)',
'search-section' => '(část $1)',
+'search-file-match' => '(odpovídá obsah souboru)',
'search-suggest' => 'Mysleli jste: $1',
'search-interwiki-caption' => 'Sesterské projekty',
'search-interwiki-default' => 'Výsledky z $1:',
'watchmethod-list' => 'hledají se nejnovější editace sledovaných stránek',
'watchlistcontains' => 'Na vašem seznamu sledovaných stránek {{PLURAL:$1|je $1 položka|jsou $1 položky|je $1 položek}}.',
'iteminvalidname' => 'Problém s položkou „$1“, neplatný název…',
-'wlnote' => "Níže {{PLURAL:$1|je poslední změna|jsou poslední '''$1''' změny|je posledních '''$1''' změn}} za {{PLURAL:$2|poslední hodinu|poslední '''$2''' hodiny|posledních '''$2''' hodin}} do $4, $3.",
+'wlnote2' => 'Níže jsou změny za {{PLURAL:$1|poslední hodinu|poslední <strong>$1</strong> hodiny|posledních <strong>$1</strong> hodin}} do $3, $2.',
'wlshowlast' => 'Ukázat posledních $1 hodin $2 dnů $3',
'watchlist-options' => 'Možnosti sledovaných stránek',
'delete-edit-reasonlist' => 'Editovat důvody smazání',
'delete-toobig' => 'Tato stránka má velkou historii editací, přes $1 {{PLURAL:$1|verzi|verze|verzí}}. Mazání takových stránek je omezeno, aby se předešlo nechtěnému narušení {{grammar:2sg|{{SITENAME}}}}.',
'delete-warning-toobig' => 'Tato stránka má velkou historii editací, přes $1 {{PLURAL:$1|verzi|verze|verzí}}. Mazání takových stránek může narušit databázové operace {{grammar:2sg|{{SITENAME}}}}; postupujte opatrně.',
-'deleting-backlinks-warning' => "'''Upozornění:''' Na stránku, kterou se chystáte smazat, odkazují jiné stránky.",
+'deleting-backlinks-warning' => "'''Upozornění:''' Stránka, kterou se chystáte smazat, je na jiných stránkách odkazována nebo vkládána.",
# Rollback
'rollback' => 'Vrátit zpět editace',
'range_block_disabled' => 'Blokování rozsahů IP adres je zakázáno.',
'ipb_expiry_invalid' => 'Neplatný čas vypršení.',
'ipb_expiry_temp' => 'Blokování skrytých uživatelských jmen by měla být trvalá.',
-'ipb_hide_invalid' => 'Tento účet nelze utajit; možná má příliš mnoho editací.',
+'ipb_hide_invalid' => 'Tento účet nelze utajit; má více než $1 {{PLURAL:$1|editaci|editace|editací}}.',
'ipb_already_blocked' => '„$1“ již je zablokován.',
'ipb-needreblock' => '$1 je již zablokován(a). Chcete změnit nastavení bloku?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Jiné zablokování|Jiná zablokování}}',
'allmessages-prefix' => 'Filtr podle začátku názvu:',
'allmessages-language' => 'Jazyk:',
'allmessages-filter-submit' => 'Použít',
+'allmessages-filter-translate' => 'přeložit',
# Thumbnails
'thumbnail-more' => 'Zvětšit',
'tooltip-pt-watchlist' => 'Seznam stránek, jejichž změny sleduji',
'tooltip-pt-mycontris' => 'Seznam vašich příspěvků',
'tooltip-pt-login' => 'Doporučujeme vám přihlásit se, ovšem není to povinné.',
-'tooltip-pt-anonlogin' => 'Doporučujeme vám přihlásit se, ovšem není to povinné.',
'tooltip-pt-logout' => 'Odhlásit se',
'tooltip-ca-talk' => 'Diskuse ke stránce',
'tooltip-ca-edit' => 'Tuto stránku můžete editovat. Prosíme použijte tlačítko Ukázat náhled před uložením.',
'expand_templates_preview' => 'Náhled',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => 'XML v načteném souboru nelze zpracovat.',
);
'tog-numberheadings' => "Rhifo penawdau'n awtomatig",
'tog-showtoolbar' => 'Dangos y bar offer golygu',
'tog-editondblclick' => 'Golygu tudalennau wrth glicio ddwywaith',
-'tog-editsection' => 'Galluogi golygu adran trwy ddolennau [golygu] uwchben yr adran',
'tog-editsectiononrightclick' => 'Galluogi golygu adran drwy dde-glicio ar bennawd yr adran',
-'tog-showtoc' => 'Dangos y daflen gynnwys (ar gyfer tudalennau sydd â mwy na 3 pennawd)',
'tog-rememberpassword' => "Y porwr hwn i gofio'r manylion mewngofnodi (hyd at $1 {{PLURAL:$1||diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}})",
'tog-watchcreations' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu creu a ffeiliau wrth i mi eu huwchlwytho.',
'tog-watchdefault' => 'Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu golygu',
'tog-numberheadings' => 'Automatisk nummerering af overskrifter',
'tog-showtoolbar' => 'Vis værktøjslinje til redigering',
'tog-editondblclick' => 'Redigér sider med dobbeltklik',
-'tog-editsection' => 'Redigér afsnit ved hjælp af [redigér]-henvisninger',
'tog-editsectiononrightclick' => 'Redigér afsnit ved at højreklikke på deres titler',
-'tog-showtoc' => 'Vis indholdsfortegnelse (på sider med mere end tre afsnit)',
'tog-rememberpassword' => 'Husk mig i denne browser (i højst $1 {{PLURAL:$1|dag|dage}})',
'tog-watchcreations' => 'Tilføj sider, jeg opretter, og filer, jeg lægger op, til min overvågningsliste',
'tog-watchdefault' => 'Tilføj sider og filer, jeg redigerer, til min overvågningsliste',
'tog-numberheadings' => 'Überschriften automatisch nummerieren',
'tog-showtoolbar' => 'Bearbeiten-Werkzeugleiste anzeigen',
'tog-editondblclick' => 'Seiten mit Doppelklick bearbeiten',
-'tog-editsection' => 'Links zum Bearbeiten einzelner Abschnitte anzeigen',
'tog-editsectiononrightclick' => 'Einzelne Abschnitte per Rechtsklick bearbeiten',
-'tog-showtoc' => 'Anzeige eines Inhaltsverzeichnisses auf Seiten mit mehr als drei Überschriften',
'tog-rememberpassword' => 'Mit diesem Browser dauerhaft angemeldet bleiben (maximal $1 {{PLURAL:$1|Tag|Tage}})',
'tog-watchcreations' => 'Selbst erstellte Seiten und hochgeladene Dateien automatisch beobachten',
'tog-watchdefault' => 'Selbst geänderte Seiten und Dateien automatisch beobachten',
'retypenew' => 'Neues Passwort (nochmal):',
'resetpass_submit' => 'Passwort übermitteln und anmelden',
'changepassword-success' => 'Dein Passwort wurde erfolgreich geändert!',
+'changepassword-throttled' => 'Du hast kürzlich zu viele Anmeldeversuche unternommen.
+Bitte warte $1, bevor du es erneut versuchst.',
'resetpass_forbidden' => 'Das Passwort kann nicht geändert werden.',
'resetpass-no-info' => 'Du musst dich anmelden, um auf diese Seite direkt zuzugreifen.',
'resetpass-submit-loggedin' => 'Passwort ändern',
'changeemail-password' => 'Dein {{SITENAME}}-Passwort:',
'changeemail-submit' => 'E-Mail-Adresse ändern',
'changeemail-cancel' => 'Abbrechen',
+'changeemail-throttled' => 'Du hast zu viele Anmeldeversuche unternommen.
+Bitte warte $1, bevor du es erneut versuchst.',
# Special:ResetTokens
'resettokens' => 'Tokens zurücksetzen',
'watchmethod-list' => 'Überprüfen der Beobachtungsliste nach letzten Bearbeitungen',
'watchlistcontains' => 'Deine Beobachtungsliste enthält $1 {{PLURAL:$1|Seite|Seiten}}.',
'iteminvalidname' => 'Problem mit dem Eintrag „$1“, ungültiger Name.',
-'wlnote' => "Es {{PLURAL:$1|folgt die letzte Änderung|folgen die letzten '''$1''' Änderungen}} der letzten {{PLURAL:$2|Stunde|'''$2''' Stunden}}. Stand: $3, $4 Uhr.",
+'wlnote2' => 'Es folgen die Änderungen der letzten {{PLURAL:$1|Stunde|<strong>$1</strong> Stunden}}. Stand: $2, $3.',
'wlshowlast' => 'Zeige die Änderungen der letzten $1 Stunden, $2 Tage oder $3.',
'watchlist-options' => 'Anzeigeoptionen',
'range_block_disabled' => 'Die Möglichkeit, ganze Adressräume zu sperren, ist nicht aktiviert.',
'ipb_expiry_invalid' => 'Die eingegebene Dauer ist ungültig.',
'ipb_expiry_temp' => 'Benutzernamens-Sperren mit der Verstecken-Option müssen permanent sein.',
-'ipb_hide_invalid' => 'Dieses Konto kann nicht unterdrückt werden, da es zu viele Bearbeitungen aufweist.',
+'ipb_hide_invalid' => 'Dieses Konto kann nicht unterdrückt werden, da es mehr als {{PLURAL:$1|eine Bearbeitung|$1 Bearbeitungen}} aufweist.',
'ipb_already_blocked' => '„$1“ ist bereits gesperrt',
'ipb-needreblock' => '„$1“ ist bereits gesperrt. Möchtest du die Sperrparameter ändern?',
'ipb-otherblocks-header' => 'Andere {{PLURAL:$1|Sperre|Sperren}}',
'allmessages-prefix' => 'Präfixfilter:',
'allmessages-language' => 'Sprache:',
'allmessages-filter-submit' => 'Los',
+'allmessages-filter-translate' => 'Übersetzen',
# Thumbnails
'thumbnail-more' => 'vergrößern',
'tooltip-pt-watchlist' => 'Liste der beobachteten Seiten',
'tooltip-pt-mycontris' => 'Liste eigener Beiträge',
'tooltip-pt-login' => 'Sich anzumelden wird zwar gerne gesehen, ist aber keine Pflicht.',
-'tooltip-pt-anonlogin' => 'Sich anzumelden wird zwar gerne gesehen, ist aber keine Pflicht.',
'tooltip-pt-logout' => 'Abmelden',
'tooltip-ca-talk' => 'Diskussion zum Seiteninhalt',
'tooltip-ca-edit' => 'Seite bearbeiten. Bitte vor dem Speichern die Vorschaufunktion benutzen.',
'pageinfo-article-id' => 'Seitenkennnummer',
'pageinfo-language' => 'Seiteninhaltssprache',
'pageinfo-content-model' => 'Seiteninhaltsmodell',
-'pageinfo-robot-policy' => 'Indexierung durch Robots',
+'pageinfo-robot-policy' => 'Indizierung durch Suchmaschinen',
'pageinfo-robot-index' => 'Erlaubt',
'pageinfo-robot-noindex' => 'Nicht erlaubt',
'pageinfo-views' => 'Anzahl der Seitenaufrufe',
# Special:Redirect
'redirect' => 'Weiterleitung auf Benutzerseite, Seite, Seitenversion oder Datei',
'redirect-legend' => 'Weiterleitung auf eine Benutzerseite, Seite, Seitenversion oder Datei',
-'redirect-summary' => 'Diese Spezialseite leitet auf eine Benutzerseite (numerische Benutzerkennung angegeben), Seite (Seitenkennung angeben), Seitenversion (Versionskennung angegeben) oder Datei (Dateiname angegeben) weiter. Benutzung: [[{{#Special:Redirect}}/user/101]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] oder [[{{#Special:Redirect}}/file/Example.jpg]].',
+'redirect-summary' => 'Diese Spezialseite leitet auf eine Benutzerseite (numerische Benutzerkennung angegeben), Seite (Seitenkennung angegeben), Seitenversion (Versionskennung angegeben) oder Datei (Dateiname angegeben) weiter. Benutzung: [[{{#Special:Redirect}}/user/101]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] oder [[{{#Special:Redirect}}/file/Example.jpg]].',
'redirect-submit' => 'Los',
'redirect-lookup' => 'Suchen:',
'redirect-value' => 'Kennung oder Dateiname:',
'expand_templates_preview' => 'Vorschau',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => 'Das XML in der hochgeladenen Datei konnte nicht geparst werden.',
);
'tog-hidepatrolled' => 'Vurnayışanê qontrolkerdeyan pela vurnayışê peyêni de bınımne',
'tog-newpageshidepatrolled' => 'Pelanê qontrolkerdeyan lista pelanê neweyan de bınımne',
'tog-extendwatchlist' => 'Lista seyrkerdışi hera bıke ke vurnayışi pêro basê, tenya tewr peyêni nê',
-'tog-usenewrc' => 'Pera vurnayışanê grube de vurnayışê peyêni u lista seyrkerdışi (JavaScript lazımo)',
+'tog-usenewrc' => 'Vurnayışê ke pela vurnayışanê peyênan û lista seyrkerdışi derê inan grube ke.',
'tog-numberheadings' => 'Sernuşteyan be xo numre cı şane',
'tog-showtoolbar' => 'Toolbar virnayisi bivin (JavaScript lazımo)',
'tog-editondblclick' => 'Per virnayisi di dilet klik bike (JavaScript lazımo)',
-'tog-editsection' => 'Vurnayışê qısımi be gıreyanê [bıvurne] ra feal ke',
'tog-editsectiononrightclick' => 'Qısıman be tıknayışê serrêze ra ebe gocega raşte bıvurne (JavaScript lazımo)',
-'tog-showtoc' => 'Tabloyê tedeesteyan bımocne (de pelanê be hirê sernuşteyan ra vêşêri de)',
'tog-rememberpassword' => 'Parola mı nê cıgeyrayoği de bia xo viri (seba tewr zêde $1 {{PLURAL:$1|roce|rocan}}).',
'tog-watchcreations' => 'Pelê ke mı afernayê u dosyeyê ke mı bar kerdê lista mına seyrkerdışi ke',
'tog-watchdefault' => 'Pel u dosyeyê ke mı vurnayê lista mına seyrkerdışi ke',
'tog-shownumberswatching' => 'Amarê karberanê seyrkerdoğan bımocne',
'tog-oldsig' => 'İmza mewcude:',
'tog-fancysig' => 'İmza rê mameleyê wikimeqaley bıke (bê gıreyo otomatik)',
-'tog-uselivepreview' => 'Verqayto cınde (giyane) bıgureyne (cerrebane)',
-'tog-forceeditsummary' => 'Mı ke xulasa thal/veng verdae, hay a mı ser de (iqaz ke)',
+'tog-uselivepreview' => 'Verqayto giyane bıgureyne (cerrebane)',
+'tog-forceeditsummary' => 'Mı ke xulasa veng verdaye, hay a mı ser de',
'tog-watchlisthideown' => 'Vurnayışanê mı lista mına seyrkerdışi de bınımne',
'tog-watchlisthidebots' => 'Lista seyrkerdışi ra vurnayışanê boti bınımne',
'tog-watchlisthideminor' => 'Vurnayışanê qıckekan lista mına seyrkerdışi de bınımne',
'searchbutton' => 'Cı geyre',
'go' => 'Şo',
'searcharticle' => 'Şo',
-'history' => 'Verora perer',
+'history' => 'Tarixê pele',
'history_short' => 'Verén',
'updatedmarker' => 'cıkewtena mına peyêne ra dıme biyo rocane',
-'printableversion' => 'Versiyona Nusnayışi',
+'printableversion' => 'Asayışê çapkerdışi',
'permalink' => 'Gıreyo jûqere',
'print' => 'Nusten ke',
'view' => 'Bıvin',
'editthispage' => 'Ena pele bıvurne',
'create-this-page' => 'Na pele bınuse',
'delete' => 'Bestere',
-'deletethispage' => 'Ena perer besternê',
+'deletethispage' => 'Ena pele bestere',
'undeletethispage' => 'Na perer mebesterne',
'undelete_short' => '{{PLURAL:$1|Yew vurnayışi|$1 Vurnayışan}} mestere',
'viewdeleted_short' => '{{PLURAL:$1|Yew vurnayışo esterıte|$1 Vurnayışanê esterıtan}} bımocne',
# Short words for each namespace, by default used in the namespace tab in monobook
'nstab-main' => 'Wesiqe',
-'nstab-user' => 'Pera Karberi',
+'nstab-user' => 'Pela karberi',
'nstab-media' => 'Pera Medya',
'nstab-special' => 'Pela xase',
'nstab-project' => 'Pera proci',
'nologinlink' => 'Yew hesab ake',
'createaccount' => 'Hesab vıraşten',
'gotaccount' => "Hesabê şıma esto? '''$1'''.",
-'gotaccountlink' => 'Dekewtış',
+'gotaccountlink' => 'Cı kewe',
'userlogin-resetlink' => 'Melumatê cıkewtışi xo vira kerdê?',
'userlogin-resetpassword-link' => 'Parola xo kerda xo vira?',
'helplogin-url' => 'Help:Qeydbiyayış',
Sebebo ke terefê $3 ra diyao ''$2''",
# History pages
-'viewpagelogs' => 'Heqde na perer qeydan bıvin',
+'viewpagelogs' => 'Heqa na pele de qeydan bıvêne',
'nohistory' => 'Verê vurnayışanê na pele çıniyo.',
'currentrev' => 'Halo nıkayên',
'currentrev-asof' => 'Revizyonanê peniyan, tarixê $1',
'logdelete-failure' => "'''Esayişê rocaneyi eyar nêbı:'''
$1",
'revdel-restore' => 'asayışi bıvurne',
-'pagehist' => 'Verora perer',
+'pagehist' => 'Tarixê pele',
'deletedhist' => 'tarixê hewna şiyaye',
'revdelete-hide-current' => '$2 $1 ney çiye ke wexta diyayene wera (wedar dayiş) xeta da: no reviyon nınımiyeno.',
'revdelete-show-no-access' => '$2 $1 wexta ke ney tarix de mociyayene xeta da: ne çi "vergırewtı" nişane biyo.
'prefs-skin' => 'Çerme',
'skin-preview' => 'Verasayış',
'datedefault' => 'Tercih çıniyo',
-'prefs-beta' => 'Xacetê beta',
+'prefs-beta' => 'Hacetê beta',
'prefs-datetime' => 'Tarix u wext',
'prefs-labs' => 'Xacetê labs',
'prefs-user-pages' => 'Pela Karberi',
'action-reupload-shared' => 'dosyayê ki ho embarê medyayî de esto ser ay binusne',
'action-upload_by_url' => 'Ena dosya yew URL ra bar bike',
'action-writeapi' => 'ser nuşte API gure bike',
-'action-delete' => 'ena perer besternê',
+'action-delete' => 'ena pele bestere',
'action-deleterevision' => 'nê çımraviyarnayışi bestere',
'action-deletedhistory' => 'tarixê ena pel ki estereyî biya, ey bivine',
'action-browsearchive' => 'pelanê esterıteyan bıgeyre',
'action-undelete' => 'ena pele reyna biyere',
'action-suppressrevision' => 'revizyone ki nimnaye biye reyna bivîne u restore bike',
-'action-suppressionlog' => 'Ena bağse qeydi bıvin',
+'action-suppressionlog' => 'enê qeydê xısusi bıvêne',
'action-block' => 'enê karberi vurnayışi ra bıreyne',
'action-protect' => 'seviyeyê pawitişî se ena pele bivurne',
'action-rollback' => 'Lez/herbi vurnayışanê karberê peyêni tekrar bıke, oyo ke yew be yew pelê sero gureyao',
'newpages-username' => 'Nameyê karberi:',
'ancientpages' => 'Wesiqeyê ke vurnayışê ciyê peyeni tewr kehani',
'move' => 'Bere',
-'movethispage' => 'Na perer ber',
+'movethispage' => 'Ena pele bere',
'unusedimagestext' => 'Enê dosyey estê, feqet zerrey yew pele de wedardey niyê.
Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gırê bê, u wına şenê verba gurênayışo feal de tiya hewna lista bê.',
'unusedcategoriestext' => 'kategoriyê cêrıni bıbo zi çı nêşuxulyena.',
'removewatch' => 'Listedê mınê seyr kerdışi ra hewad',
'removedwatchtext' => 'Ena pela "[[:$1]]" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].',
'watch' => 'Temaşe ke',
-'watchthispage' => 'Na perer seyr ke',
+'watchthispage' => 'Ena pele seyr ke',
'unwatch' => 'Teqib mekerê',
'unwatchthispage' => 'temaşa kerdışê peli vındarn.',
'notanarticle' => 'mebhesê peli niyo',
'watchmethod-list' => 'pel ê ke şıma temaşa kenî vuryayişê peyinê ey konrol beno',
'watchlistcontains' => 'listeya seyrkerdışê şıma de $1 tene {{PLURAL:$1|peli|peli}} estî.',
'iteminvalidname' => "pê no '$1' unsuri problem bı, nameyo nemeqbul...",
-'wlnote' => "$3 seate u bahde $4 deqa dıma {{PLURAL:$2|ju seate dı|'''$2''' ju seate dı}} {{PLURAL:$1|vurnayışe peyeni|vurnayışe '''$1''' peyeni}} cêrdeyê",
'wlshowlast' => 'Peyni de vurnayışan ra $1 seata u $2 roca $3 bımocnê',
'watchlist-options' => 'Tercihê liste da seyri',
'sp-contributions-submit' => 'Cı geyre',
# What links here
-'whatlinkshere' => 'Gırey perer',
+'whatlinkshere' => 'Gıreyê pele',
'whatlinkshere-title' => 'Per da "$1" rê perê ke gre danê',
'whatlinkshere-page' => 'Pele:',
'linkshere' => "Ena peleyan grey biya '''[[:$1]]''':",
'movepage-page-moved' => 'pelê $1i kırışiya pelê $2i.',
'movepage-page-unmoved' => 'pelê $1i nêkırışiyeno sernameyê $2i.',
'movepage-max-pages' => 'tewr ziyed $1 {{PLURAL:$1|peli|peli}} kırışiya u hıni ziyedê ıney otomotikmen nêkırışiyeno.',
-'movelogpage' => 'Qeydé berdışi',
+'movelogpage' => 'Qeydê berdışi',
'movelogpagetext' => 'nameyê liste ya ke cêr de yo, pelê vuriyayeyani mocneno',
'movesubpage' => '{{PLURAL:$1|Subpage|pelê bınıni}}',
'movesubpagetext' => '{{PLURAL:$1|pelê bınıni yê|pelê bınıni yê}} no $1 peli cer de yo.',
'delete_and_move_text' => '==gani hewn a bıbıo/bıesteriyo==
" no [[:$1]]" name de yew pel ca ra esto. şıma wazeni pê hewn a kerdışê ey peli vurnayişê nameyi bıkeri?',
-'delete_and_move_confirm' => 'E na perer bestern',
+'delete_and_move_confirm' => 'Eya, na pele bestere',
'delete_and_move_reason' => '"[[$1]]" qande nami re ca akerdışi re besteriyaye',
'selfmove' => 'name yo ke şıma wazeni bıbo, ın name û name yo ke ca ra esto eyni yê /zepê yê. vurnayiş mumkin niyo.',
'immobile-source-namespace' => '"$1" pelê cayi de nameyi nêkırışyenî',
'javascripttest-qunit-heading' => 'MediaWiki JavaScript QUnit test suite',
# Tooltip help for the actions
-'tooltip-pt-userpage' => 'Pera şımaya karberi',
+'tooltip-pt-userpage' => 'Pela şımaya karberi',
'tooltip-pt-anonuserpage' => 'pelê karberê IPyi',
'tooltip-pt-mytalk' => 'Pela toya werênayışi',
'tooltip-pt-anontalk' => 'vurnayiş ê ke no Ipadresi ra biyo muneqeşa bıker',
'tooltip-pt-watchlist' => 'Lista pelanê ke to gırewtê seyrkerdış',
'tooltip-pt-mycontris' => 'Listeya dekerdışan de şıma',
'tooltip-pt-login' => 'Mayê şıma ronıştış akerdışi rê dawet keme; labelê ronıştış mecburi niyo',
-'tooltip-pt-anonlogin' => 'Seba cıkewtışê şıma rê dewato; labelê, no zeruri niyo',
'tooltip-pt-logout' => 'Sistem ra vıcyayış',
'tooltip-ca-talk' => 'Zerrekê pele sero werênayış',
'tooltip-ca-edit' => 'Tı şenay na perer bıvurné.Verdé qeyd kerdışi ver gocega verqayti bıkarné.',
'tooltip-ca-addsection' => 'Zu bınnusteya newi ak',
'tooltip-ca-viewsource' => 'Ena pele kılit biya.
Şıma şenê çımeyê aye bıvênê',
-'tooltip-ca-history' => 'Verén rewziyoné ena perer bıvin',
-'tooltip-ca-protect' => 'Na perer star fi',
+'tooltip-ca-history' => 'Versiyonê verênê ena pele',
+'tooltip-ca-protect' => 'Ena pele bışevekne',
'tooltip-ca-unprotect' => 'Starkerdışe ena peler bıvurne',
-'tooltip-ca-delete' => 'Ena perer bestern',
+'tooltip-ca-delete' => 'Ena pele bestere',
'tooltip-ca-undelete' => 'peli biyarê halê ver hewnakerdışi',
'tooltip-ca-move' => 'Ena pele bere',
'tooltip-ca-watch' => 'Ena pele lista xoya seyrkerdışi ke',
'tooltip-t-print' => 'Hewl versiyona ploğnayışa na perer',
'tooltip-t-permalink' => 'Gırêyo daimi be ena versiyonê pele',
'tooltip-ca-nstab-main' => 'Perra muhtevay bıvin',
-'tooltip-ca-nstab-user' => 'Pera karberi bıvin',
+'tooltip-ca-nstab-user' => 'Pela karberi bıvêne',
'tooltip-ca-nstab-media' => 'Pera medya bıvin',
'tooltip-ca-nstab-special' => 'Na yew pela xasa, şıma nêşenê sero vurnayış bıkerê',
'tooltip-ca-nstab-project' => 'Pera proci bıvin',
'tog-numberheadings' => 'Nadpisma awtomatiski numerěrowaś',
'tog-showtoolbar' => 'Wobźěłowańsku rědku pokazaś',
'tog-editondblclick' => 'Boki z dwójnym kliknjenim wobźěłaś',
-'tog-editsection' => 'Wobźěłanje wótstawkow pśez wótkaze [wobźěłaś] zmóžniś',
'tog-editsectiononrightclick' => 'Wobźěłowanje wótrězkow pśez kliknjenje z pšaweju tastu myški zmóžniś',
-'tog-showtoc' => 'Wopśimjeśe pokazaś, jolic ma bok wěcej nježli 3 nadpisma',
'tog-rememberpassword' => 'Z toś tym wobglědowakom pśizjawjony wóstaś (za maksimalnje $1 {{PLURAL:$1|źeń|dnja|dny|dnjow}})',
'tog-watchcreations' => 'Boki, kótarež napórajom a dataje, kótarež nagrawam, wobglědowaś',
'tog-watchdefault' => 'Boki a dataje , kótarež změnijom, wobglědowaś',
'retypenew' => 'Nowe šćitne gronidło (hyšći raz):',
'resetpass_submit' => 'Šćitne gronidło nastajiś a se pśizjawiś',
'changepassword-success' => 'Twóje gronidło jo se wuspěšnje změniło!',
+'changepassword-throttled' => 'Sy pśecesto wopytał se pśizjawiś.
+Pócakaj pšosym $1, nježli až wopytajoš znowego.',
'resetpass_forbidden' => 'Gronidła njedaju se změniś',
'resetpass-no-info' => 'Dejš pśizjawjony byś, aby direktny pśistup na toś ten bok měł.',
'resetpass-submit-loggedin' => 'Gronidło změniś',
'changeemail-password' => 'Twójo gronidło za {{GRAMMAR:akuzatiw|{{SITENAME}}}}',
'changeemail-submit' => 'E-mailowu adresu změniś',
'changeemail-cancel' => 'Pśetergnuś',
+'changeemail-throttled' => 'Sy pśecesto wopytał se pśizjawiś.
+Pócakaj pšosym $1, nježli až wopytajoš znowego.',
# Special:ResetTokens
'resettokens' => 'Tokeny slědk stajiś',
'watchmethod-list' => 'Pśepytanje wobglědowanych bokow za aktualnymi změnami',
'watchlistcontains' => 'Twója wobglědowańka wopśimujo $1 {{PLURAL:$1|bok|boka|boki|bokow}}.',
'iteminvalidname' => 'Problem ze zapisom „$1“, njepłaśece mě.',
-'wlnote' => "{{PLURAL:$1|Slědujo slědna změna|slědujotej '''$1''' slědnej změnje|slěduju slědne '''$1''' změny}} {{PLURAL:$2|slědneje góźiny|slědneju '''$2''' góźinowu|slědnych '''$2''' góźinow}}, staw: $3, $4.",
'wlshowlast' => 'Pokaž změny slědnych $1 góźinow, $2 dnjow abo $3 (w slědnych 30 dnjach).',
'watchlist-options' => 'Opcije wobglědowańki',
'range_block_disabled' => 'Móžnosć administratora, blokěrowaś cełe adresowe rumy, njejo aktiwěrowana.',
'ipb_expiry_invalid' => 'Pódany cas jo njepłaśecy.',
'ipb_expiry_temp' => 'Blokěrowanja schowanych wužywarskich mjenjow deje permanentne byś.',
-'ipb_hide_invalid' => 'Njejo móžno toś to konto pódtłocyś; jo snaź pśewjele změnow.',
+'ipb_hide_invalid' => 'Njejo móžno toś to konto pódtłocyś; ma wěcej ako {{PLURAL:$1|jadnu změnu|$1 změnje|$1 změny|$1 změnow}}.',
'ipb_already_blocked' => '"$1" jo južo blokěrowany.',
'ipb-needreblock' => '$1 jo južo zablokěrowany. Coš nastajenja změniś?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Druge blokěrowanje|Drugej blokěrowani|Druge blokěrowanja|Druge blokěrowanja}}',
'tooltip-pt-watchlist' => 'Lisćina bokow, kótarež se wobglěduju',
'tooltip-pt-mycontris' => 'Lisćina twójich pśinoskow',
'tooltip-pt-login' => 'Pśizjawjenje njejo obligatoriske, ale lubje witane.',
-'tooltip-pt-anonlogin' => 'Pśizjawjenje njejo obligatoriske, ale lubje witane.',
'tooltip-pt-logout' => 'Wótzjawiś',
'tooltip-ca-talk' => 'Diskusija wó wopśimjeśu boka',
'tooltip-ca-edit' => 'Móžoš bok wobźěłaś. Nježlic składujoš, wužywaj pšosym funkciju "pśeglěd".',
'expand_templates_preview' => 'Pśeglěd',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => 'XML w nagratej dataji njedajo se parsowaś.',
);
'tog-numberheadings' => 'Cûnta automâtica di tétol ed sesiòun.',
'tog-showtoolbar' => 'Fà vèder la bâra di strumèint ed mudéfica.',
'tog-editondblclick' => "Mudéfica 'l pàgini cun un cléch dòpi.",
-'tog-editsection' => 'Mudéfica dal sesiòun per mèz dal colegamèint [mudéfica].',
'tog-editsectiononrightclick' => 'Mudéfica dal sesiòun per mèz dal cléch a dréta insém al tétol.',
-'tog-showtoc' => "Fà vèder al sûnt (p'r al pàgini cun pió 'd 3 sesiòun)",
'tog-rememberpassword' => "Tîn a mèint la cêva 'd ingrès insém a cól navigadōr ché (per un mâsim ed $1{{PLURAL:$1|dé}}).",
'tog-watchcreations' => "Zûnta al pàgini fâti e i file carghê int i tgnû 'd ôc specêl.",
'tog-watchdefault' => "Zûnta al pàgini e i file mudifichê int i tgnû 'd ôc specêl.",
'createacct-yourpasswordagain' => "Cunfērma la cêva 'd ingrès",
'createacct-yourpasswordagain-ph' => "Tōrna mèter dèinter la cêva 'd ingrès",
'remembermypassword' => "Tîn a mèint la cêva 'd ingrès insém a cól navigadōr ché (per un mâsim ed $1{{PLURAL:$1|dé}}).",
-'userlogin-remembermypassword' => 'Tînom coleghê',
+'userlogin-remembermypassword' => 'Sèimper coleghê',
'userlogin-signwithsecure' => 'Drōva un colegamèint sicûr',
+'password-change-forbidden' => "An n'é mìa pusébil mudifichêr la cêva 'd ingrès insém a sté wiki.",
+'externaldberror' => "È sucès un erōr cun al terminêl ed certificasiòun ed validitê d'ed fōra, opór an 's gh'à mìa al j autorişasiòun necesâri per arnuvêr l' ingrès d'ed fōra.",
'login' => 'Và dèinter',
'nav-login-createaccount' => 'Và dèinter / Fà la tó inscrisiòun',
'loginprompt' => "Per andêr dèinter a {{SITENAME}} l'é necesâri permèter i cookie.",
'logout' => 'Và fōra',
'userlogout' => 'Và fōra',
'notloggedin' => "An t'é mìa gnû dèinter",
+'userlogin-noaccount' => 'Ét mìa incòra fât la registrasiòun?',
+'userlogin-joinproject' => 'Da {{SITENAME}}',
'nologin' => "An gh'èt mìa incòra un ingrès? $1",
'nologinlink' => 'Fà la tó inscrisiòun',
'createaccount' => 'Fà la tó inscrisiòun',
'gotaccount' => "Gh'èt bèle un ingrès? $1",
'gotaccountlink' => 'Và dèinter',
'userlogin-resetlink' => "T'ét scurdê j elemèint p'r al tó ingrès?",
+'userlogin-resetpassword-link' => "T' ét scurdê la cêva 'd ingrès?",
+'helplogin-url' => "Help: Per l'ingrès",
+'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Ajót cun l' ingrès]]",
+'userlogin-loggedin' => "T'ét bèle coleghê {{GENDER:$1|$1}}.
+Drōva al mōdul ché sòta cme un êter utèint.",
+'userlogin-createanother' => "Fà 'n' êtra utèinsa.",
+'createacct-join' => 'Mèt dèinter al tō infurmasiòun ché sòta.',
+'createacct-another-join' => 'Mèt dèinter al j infurmasiòun per la registrasiòun ché sòta.',
+'createacct-emailrequired' => 'Indirés pôsta eletrônica',
+'createacct-emailoptional' => "Indirés pôsta eletrônica (se 's vōl)",
+'createacct-email-ph' => 'Scrév al tó indirés ed pôsta eletrônica',
+'createacct-another-email-ph' => "Scrév l'indirés ed pôsta eletrônica",
'createaccountmail' => "Drōva 'na cêva 'd ingrès a chêş pruvişôria e spidésla a l'indirés ed pôsta eletrônica sgnê.",
+'createacct-realname' => "Al nòm vèira (se 's vōl)",
'createaccountreason' => 'Mutîv:',
+'createacct-reason' => 'Mutîv',
+'createacct-reason-ph' => "Perchè ét drē fêr 'n' êtra utèinsa",
+'createacct-captcha' => "Cuntròl 'd sicurèsa",
+'createacct-imgcaptcha-ph' => "Mèt dèinter al tèst ch'é vèd ché sōver",
+'createacct-submit' => 'Fà la tó utèinsa',
+'createacct-another-submit' => "Fà 'n' êtra utèinsa.",
+'createacct-benefit-heading' => '{{SITENAME}} crès grâsia a persòuni cme té.',
+'createacct-benefit-body1' => '{{PLURAL:$1|mudéfica|mudéfichi}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pàgina|pàgini}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|iscrét nōv}}',
+'badretype' => "Al cêvi 'd ingrès scréti an cumbînen tra 'd lōr.",
+'userexists' => "Al nòm utèint scrét l'é bèle druvê.
+Siēlier 'n' êter nòm utèint.",
'loginerror' => "Erōr 'd ingrès",
+'createacct-error' => "A gh'é stê un erōr ind al fêr l'utèinsa.",
+'createaccounterror' => "Imposébil fêr l'iscrisiòun: $1",
+'nocookiesnew' => "La registrasiòun an n' é mìa finîda, e an n'é mìa stê pusébil andêr dèinter a {{SITENAME}} perchè i cookie în blûchê. Tōrna fêr l'ingrès cun al nòm e la cêva 'd ingrès apèina fât dôp avèir şbluchê i cookie int al tó navigadōr.",
+'nocookieslogin' => "Per fêr l'ingrès a {{SITENAME}} a 's dēv druvêr i cookie che rişûlten bluchê. Tōrna fêr l'ingrès dôp avèir şbluchê i cookie int al tó navigadōr.",
+'nocookiesfornew' => "L'iscrisiòun utèint an n'é mìa stêda fâta, perchè òm mìa prû cunfermêr la só urégin. Veréfica 'd avèir şbluchê i cookie, tōrna carghêr cla pàgina ché e prōva incòra.",
+'noname' => "Al nòm utèint scrét an n'é mìa vâlid.",
+'loginsuccesstitle' => 'Ingrès fât.',
+'loginsuccess' => "''' T'é stê coleghê al terminêl {{SITENAME}} cun al nòm utèint '''$1'''.",
+'nosuchuser' => 'An n\'é mìa registrê nisûn utèint cun al nòm "$1". I nòm utèin în sensébil al lètri grândi. Veréfica al nòm scrét o [[Special:UserLogin/signup|fà un nōv ingrès]].',
+'nosuchusershort' => "An gh'é mìa registrê un utèint ciamê ''$1''. Veréfica al nòm scrét.",
+'nouserspecified' => "L'é necesâri precişêr un nòm utèint.",
+'login-userblocked' => "Cl'utèinsa ché l'é bluchêda. An n'é pusébil fêr l'ingrès.",
+'wrongpassword' => "La cêv 'd ingrès e-scréta an n'é mìa giósta. Tōrna a pruvêr.",
+'wrongpasswordempty' => "An n'é mìa stê scrét nisóna cêva 'd ingrès. Tōrna pruvêr.",
+'passwordtooshort' => "La cêva 'd ingrès la dēv avèir almēno {{PLURAL:$1|1 carâter|$1 carâter}}",
+'password-name-match' => "La cêva 'd ingrès l'an dēv mìa èser cumpâgn al nòm utèint.",
+'password-login-forbidden' => "L'ûş de sté nòm e cêva 'd ingrès l'é stê pruibî.",
'mailmypassword' => "Tōrna mèter la cêva 'd ingrès",
+'passwordremindertitle' => "Nōva cêva 'd ingrès pruvişôria per {{SITENAME}}",
+'passwordremindertext' => "Quelchiûn (prubabilmèit té, cun l'indirés IP \$1) l'à dmandê de spidîregh 'na nōva cêva 'd ingrès a {{SITENAME}} (\$4). 'Na nōva cêva 'd ingrès pruvişôria per l'utèint \"\$2\" l'é stêda impustêda a \"\$3\". L'é necesâri fêr un ingrès al pió prèst e cambiêr la cêva 'd ingrès subét. La cêva 'd ingrès pruvişôria la scadrà dôp {{PLURAL:\$5un dé|\$5 dé}}. S' an t'é mia stê té a fêr la dmânda, opór t'é turnê a catêr la vècia cêva 'd ingrès e an 't vō pió cambiêrla, ét pō trascurêr cól mesâg ché e cuntinvêr a druvêr la vècia cêva 'd ingrès.",
+'noemail' => "Nisûn indirés ed pôsta eletrônica registrê per l'utèint $1.",
+'noemailcreate' => "L'é necesâri dêr un 'indirés ed pôsta eletrônica vâlid.",
+'passwordsent' => "'Na nōva cêva 'd ingrès l'é stêda spidîda a l'indiré ed pôsta eletrônica per l'utèint \"\$1\". Per piaşèir, fà un ingrès apèina 't la ricēv.",
+'blocked-mailpassword' => "Per pervèder abûş, an n'é mìa permès druvêr la funsiòun \"spidés 'na nōva cêva 'd ingrès\" da un indirés IP bluchê.",
+'eauthentsent' => "Un mesâg ed cunfèirma l'é stê spidî a l'indirés ed pôsta eletrônica sgnê ché. L'utèint per prèir inviêr di mesâg ed pôsta eletrônica al dēv andêr a drē al j istrusiòun scréti, in môd da cunfermêr ch' l'é ló al legétim proprietâri 'd l'indirés.",
+'throttled-mailpassword' => "Un mesâg ed pôsta eletrônica 'd arnōv ed la cêva 'd ingrès l'é bèle stê inviê da mēno 'd {{PLURAL:$1|1 ōra|$1 ōri}}. Per pervèder abûş, la funziòun 'd arnōv ed la cêva 'd ingrès la pōl èser druvêda sōl 'na vôlta ògni {{PLURAL:$1|1 ōra|$1 ōri}}.",
+'mailerror' => 'Erōr int la spedisiòun dal mesâg $1',
+'acct_creation_throttle_hit' => "{{PLURAL:$1|1 registrasiòun l'é bèle stêda fâta |$1 registrasiòun în bèle stêdi fâti}} da quelchidûn cun al tó 'stès indirés IP int l'ûltem dé: l'é al mâsim permés in cól peréiod ed tèimp ché. Per còst j utèint che drōven cl 'indirés IP ché, p'r al mumèint, an 's pōl mìa registrêr.",
+'emailauthenticated' => "L'indirés ed pôsta eletrônica l'é stê cunfermê al $2 al $3.",
+'emailnotauthenticated' => "L'indirés ed pôsta eletrônica an n'é mìa incòra stê cunfermê.
+A gnirâ mìa spidî mesâg ed pôsta eletrônica p'r al funsiòun in elèinch ché sòta.",
+'noemailprefs' => "Scréver un indirés ed pôsta eletrônica per fêr funsionêr st' al funsiòun.",
+'emailconfirmlink' => 'Cunfèirma al tó indirés ed pôsta eletrônica',
+'invalidemailaddress' => "L'indirés ed pôsta eletrônica scrét in 'na manēra mìa vâlida.
+Scrév un indirés vâlid o vōda la caşèla.",
+'cannotchangeemail' => 'In cól wiki ché j indiré ed pôsta eletrônica an pōlen mìa èser cambiê.',
+'emaildisabled' => 'Cól sît ché an pōl mia spidîr mesâg ed pôsta eletrônica.',
'accountcreated' => 'Ingrès fât',
+'accountcreatedtext' => "È stê fât 'n'utèisa per [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
+'createaccount-title' => 'Per fêr un inscrisiòun a {{SITENAME}}',
+'createaccount-text' => "Quelchidûn l'à fât un inscrisiòun a {{SITENAME}} (\$4) a nòm ed \$2 coleghê a cl'indirés ed pôsta eletrônica ché. La cêva 'd ingrès per l'utèint \"\$2\" l'é impustêda a \"\$3\".
+É necesâri fêr un ingrès préma ch' es pôl e cambiêr subét la cêva 'd ingrès.
+Se l'inscrisiòun l'é stêda fâta per şbâli, es pōl scanşlêr sté mesâg.",
+'usernamehasherror' => 'Al nòm utèint al pōl mìa avèir i carâter hash',
+'login-throttled' => "În stê fât trôp tentatîv 'd ingrès in pôch tèimp. Spèta $1 e pó tōrna pruvêr.",
+'login-abort-generic' => "An t'é mìa stê arcgnusû - Scanşlê",
'loginlanguagelabel' => 'Léngva: $1',
+'suspicious-userlogout' => "La tó dmânda per destachêret l'é stēda rifiutêda perchè la sèmbra spidîda da un navigadōr ch' al funsiòuna mìa o da un proxy di caching.",
# Change password dialog
'changepassword' => "Câmbia la cêva 'd ingrès",
'previousrevision' => '← Versiòun pió vècia',
'nextrevision' => 'Versiòun pió nōva →',
'currentrevisionlink' => 'Ûltma versiòun',
-'cur' => 'cur',
+'cur' => 'adès',
'next' => 'Còl dôp',
-'last' => 'Còl préma',
+'last' => 'préma',
'page_first' => 'préma',
'page_last' => 'ûltem',
'histlegend' => "Cunfrûnt tra 'l versiòun: sernés al caşèli cumpâgni al versiòun vrûdi e schésa Invio o al ptòun in bâs. Spiegasiòun: : '''({{int:cur}})''' = diferèinsi cun la versiòun d' adèsa, '''({{int:last}})''' = diferèinsi cun la versiòun ed préma, '''{{int:minoreditletter}}''' = mudéfica céca.",
'emailmessage' => 'Mesâg',
# Watchlist
-'watchlist' => 'Sòt uservasiòun',
-'mywatchlist' => 'Sòt uservasiòun',
+'watchlist' => 'Tgnîr sòt ôc',
+'mywatchlist' => 'Tgnîr sòt ôc',
'watchlistfor2' => "Da l'utèint $1 $2",
'watchnologin' => "An t'é mìa gnû dèinter",
'watch' => 'Và adrē',
# Info page
'pageinfo-header-edits' => 'Stòria dal mudéfichi',
'pageinfo-views' => 'Nómer dal vîşiti',
-'pageinfo-watchers' => "Nómer 'd utèint che gh'àn la pàgina sòt uservasiòun.",
+'pageinfo-watchers' => "Nómer 'd utèint che gh'àn la pàgina sòt ôc.",
'pageinfo-edits' => 'Nómer totêl dal mudéfichi',
'pageinfo-authors' => 'Nómer totêl di divêrs avtôr',
'tog-numberheadings' => 'Αυτόματη αρίθμηση επικεφαλίδων',
'tog-showtoolbar' => 'Εμφάνιση μπάρας εργαλείων επεξεργασίας',
'tog-editondblclick' => 'Επεξεργασία σελίδων με διπλό κλικ',
-'tog-editsection' => 'Ενεργοποίηση επεξεργασίας ενοτήτων μέσω των συνδέσμων [επεξεργασία]',
'tog-editsectiononrightclick' => 'Ενεργοποίηση επεξεργασίας ενοτήτων με δεξί κλικ στους τίτλους των ενοτήτων',
-'tog-showtoc' => 'Εμφάνιση πίνακα περιεχομένων (για σελίδες με περισσότερες από τρεις κεφαλίδες)',
'tog-rememberpassword' => 'Διατήρηση της σύνδεσής μου σε αυτόν τον περιηγητή (για μέγιστο $1 {{PLURAL:$1|ημέρας|ημερών}})',
'tog-watchcreations' => 'Προσθήκη σελίδων που δημιουργώ και αρχείων που ανεβάζω στη λίστα παρακολούθησής μου',
'tog-watchdefault' => 'Προσθήκη σελίδων που επεξεργάζομαι στη λίστα παρακολούθησης.',
'CreateAccount' => array( 'CreateAccount' ),
'Deadendpages' => array( 'DeadendPages' ),
'DeletedContributions' => array( 'DeletedContributions' ),
+ 'Diff' => array( 'Diff' ),
'DoubleRedirects' => array( 'DoubleRedirects' ),
'EditWatchlist' => array( 'EditWatchlist' ),
'Emailuser' => array( 'EmailUser' ),
# User preference toggles
'tog-underline' => 'Link underlining:',
-'tog-justify' => 'Justify paragraphs',
'tog-hideminor' => 'Hide minor edits in recent changes',
'tog-hidepatrolled' => 'Hide patrolled edits in recent changes',
'tog-newpageshidepatrolled' => 'Hide patrolled pages from new page list',
'tog-numberheadings' => 'Auto-number headings',
'tog-showtoolbar' => 'Show edit toolbar',
'tog-editondblclick' => 'Edit pages on double click',
-'tog-editsection' => 'Enable section editing via [edit] links',
'tog-editsectiononrightclick' => 'Enable section editing by right clicking on section titles',
-'tog-showtoc' => 'Show table of contents (for pages with more than 3 headings)',
'tog-rememberpassword' => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
'tog-watchcreations' => 'Add pages I create and files I upload to my watchlist',
'tog-watchdefault' => 'Add pages and files I edit to my watchlist',
'category_header' => 'Pages in category "$1"',
'subcategories' => 'Subcategories',
'category-media-header' => 'Media in category "$1"',
-'category-empty' => "''This category currently contains no pages or media.''",
+'category-empty' => '<em>This category currently contains no pages or media.</em>',
'hidden-categories' => '{{PLURAL:$1|Hidden category|Hidden categories}}',
'hidden-category-category' => 'Hidden categories',
'category-subcat-count' => '{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}',
'databaseerror-query' => 'Query: $1',
'databaseerror-function' => 'Function: $1',
'databaseerror-error' => 'Error: $1',
-'laggedslavemode' => "'''Warning:''' Page may not contain recent updates.",
+'laggedslavemode' => '<strong>Warning:</strong> Page may not contain recent updates.',
'readonly' => 'Database locked',
'enterlockreason' => 'Enter a reason for the lock, including an estimate of when the lock will be released',
'readonlytext' => 'The database is currently locked to new entries and other modifications, probably for routine database maintenance, after which it will be back to normal.
Please try again in a few minutes.',
'protectedpagetext' => 'This page has been protected to prevent editing or other actions.',
'viewsourcetext' => 'You can view and copy the source of this page:',
-'viewyourtext' => "You can view and copy the source of '''your edits''' to this page:",
+'viewyourtext' => 'You can view and copy the source of <strong>your edits</strong> to this page:',
'protectedinterface' => 'This page provides interface text for the software on this wiki, and is protected to prevent abuse.
To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.',
-'editinginterface' => "'''Warning:''' You are editing a page that is used to provide interface text for the software.
+'editinginterface' => '<strong>Warning:</strong> You are editing a page that is used to provide interface text for the software.
Changes to this page will affect the appearance of the user interface for other users on this wiki.
-To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.',
'cascadeprotected' => 'This page has been protected from editing because it is included in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the "cascading" option turned on:
$2',
-'namespaceprotected' => "You do not have permission to edit pages in the '''$1''' namespace.",
+'namespaceprotected' => "You do not have permission to edit pages in the <strong>$1</strong> namespace.",
'customcssprotected' => "You do not have permission to edit this CSS page because it contains another user's personal settings.",
'customjsprotected' => "You do not have permission to edit this JavaScript page because it contains another user's personal settings.",
'mycustomcssprotected' => 'You do not have permission to edit this CSS page.',
'mypreferencesprotected' => 'You do not have permission to edit your preferences.',
'ns-specialprotected' => 'Special pages cannot be edited.',
'titleprotected' => 'This title has been protected from creation by [[User:$1|$1]].
-The reason given is "\'\'$2\'\'".',
+The reason given is "<em>$2</em>".',
'filereadonlyerror' => 'Unable to modify the file "$1" because the file repository "$2" is in read-only mode.
The administrator who locked it offered this explanation: "$3".',
'exception-nologin-text-manual' => 'Please $1 to be able to access this page or action.',
# Virus scanner
-'virus-badscanner' => "Bad configuration: Unknown virus scanner: ''$1''",
+'virus-badscanner' => "Bad configuration: Unknown virus scanner: <em>$1</em>",
'virus-scanfailed' => 'scan failed (code $1)',
'virus-unknownscanner' => 'unknown antivirus:',
# Login and logout pages
-'logouttext' => "'''You are now logged out.'''
+'logouttext' => "<strong>You are now logged out.</strong>
Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
'welcomeuser' => 'Welcome, $1!',
'nocookiesforlogin' => '{{int:nocookieslogin}}', # only translate this message to other languages if you have to change it
'noname' => 'You have not specified a valid username.',
'loginsuccesstitle' => 'Login successful',
-'loginsuccess' => "'''You are now logged in to {{SITENAME}} as \"\$1\".'''",
+'loginsuccess' => "<strong>You are now logged in to {{SITENAME}} as \"\$1\".</strong>",
'nosuchuser' => 'There is no user by the name "$1".
Usernames are case sensitive.
Check your spelling, or [[Special:UserLogin/signup|create a new account]].',
# Change password dialog
'changepassword' => 'Change password',
'changepassword-summary' => '', # do not translate or duplicate this message to other languages
+'changepassword-throttled' => 'You have made too many recent login attempts.
+Please wait $1 before trying again.',
'resetpass_announce' => 'You logged in with a temporary emailed code.
To finish logging in, you must set a new password here:',
'resetpass_text' => '<!-- Add text here -->', # only translate this message to other languages if you have to change it
'changeemail-password' => 'Your {{SITENAME}} password:',
'changeemail-submit' => 'Change email',
'changeemail-cancel' => 'Cancel',
+'changeemail-throttled' => 'You have made too many login attempts.
+Please wait $1 before trying again.',
# Special:ResetTokens
'resettokens' => 'Reset tokens',
'showpreview' => 'Show preview',
'showlivepreview' => 'Live preview',
'showdiff' => 'Show changes',
-'anoneditwarning' => "'''Warning:''' You are not logged in.
+'anoneditwarning' => "<strong>Warning:</strong> You are not logged in.
Your IP address will be recorded in this page's edit history.",
-'anonpreviewwarning' => "''You are not logged in. Saving will record your IP address in this page's edit history.''",
-'missingsummary' => "'''Reminder:''' You have not provided an edit summary.
+'anonpreviewwarning' => "<em>You are not logged in. Saving will record your IP address in this page's edit history.</em>",
+'missingsummary' => "<strong>Reminder:</strong> You have not provided an edit summary.
If you click \"{{int:savearticle}}\" again, your edit will be saved without one.",
'missingcommenttext' => 'Please enter a comment below.',
-'missingcommentheader' => "'''Reminder:''' You have not provided a subject/headline for this comment.
+'missingcommentheader' => "<strong>Reminder:</strong> You have not provided a subject/headline for this comment.
If you click \"{{int:savearticle}}\" again, your edit will be saved without one.",
'summary-preview' => 'Summary preview:',
'subject-preview' => 'Subject/headline preview:',
'blockedtitle' => 'User is blocked',
-'blockedtext' => "'''Your username or IP address has been blocked.'''
+'blockedtext' => "<strong>Your username or IP address has been blocked.</strong>
The block was made by $1.
-The reason given is ''$2''.
+The reason given is <em>$2</em>.
* Start of block: $8
* Expiry of block: $6
'autoblockedtext' => "Your IP address has been automatically blocked because it was used by another user, who was blocked by $1.
The reason given is:
-:''$2''
+:<em>$2</em>
* Start of block: $8
* Expiry of block: $6
'loginreqlink' => 'log in',
'loginreqpagetext' => 'Please $1 to view other pages.',
'accmailtitle' => 'Password sent',
-'accmailtext' => "A randomly generated password for [[User talk:$1|$1]] has been sent to $2. It can be changed on the ''[[Special:ChangePassword|change password]]'' page upon logging in.",
+'accmailtext' => "A randomly generated password for [[User talk:$1|$1]] has been sent to $2. It can be changed on the <em>[[Special:ChangePassword|change password]]</em> page upon logging in.",
'newarticle' => '(New)',
'newarticletext' => "You have followed a link to a page that does not exist yet.
To create the page, start typing in the box below (see the [[{{MediaWiki:Helppage}}|help page]] for more info).
-If you are here by mistake, click your browser's '''back''' button.",
+If you are here by mistake, click your browser's <strong>back</strong> button.",
'newarticletextanon' => '{{int:newarticletext}}', # do not translate or duplicate this message to other languages
'talkpagetext' => '<!-- MediaWiki:talkpagetext -->', # do not translate or duplicate this message to other languages
'anontalkpagetext' => "----
-''This is the discussion page for an anonymous user who has not created an account yet, or who does not use it.''
+<em>This is the discussion page for an anonymous user who has not created an account yet, or who does not use it.</em>
We therefore have to use the numerical IP address to identify him/her.
Such an IP address can be shared by several users.
If you are an anonymous user and feel that irrelevant comments have been directed at you, please [[Special:UserLogin/signup|create an account]] or [[Special:UserLogin|log in]] to avoid future confusion with other anonymous users.",
'userpage-userdoesnotexist-view' => 'User account "$1" is not registered.',
'blocked-notice-logextract' => 'This user is currently blocked.
The latest block log entry is provided below for reference:',
-'clearyourcache' => "'''Note:''' After saving, you may have to bypass your browser's cache to see the changes.
-* '''Firefox / Safari:''' Hold ''Shift'' while clicking ''Reload'', or press either ''Ctrl-F5'' or ''Ctrl-R'' (''⌘-R'' on a Mac)
-* '''Google Chrome:''' Press ''Ctrl-Shift-R'' (''⌘-Shift-R'' on a Mac)
-* '''Internet Explorer:''' Hold ''Ctrl'' while clicking ''Refresh'', or press ''Ctrl-F5''
-* '''Opera:''' Clear the cache in ''Tools → Preferences''",
-'usercssyoucanpreview' => "'''Tip:''' Use the \"{{int:showpreview}}\" button to test your new CSS before saving.",
-'userjsyoucanpreview' => "'''Tip:''' Use the \"{{int:showpreview}}\" button to test your new JavaScript before saving.",
-'usercsspreview' => "'''Remember that you are only previewing your user CSS.'''
-'''It has not yet been saved!'''",
-'userjspreview' => "'''Remember that you are only testing/previewing your user JavaScript.'''
-'''It has not yet been saved!'''",
-'sitecsspreview' => "'''Remember that you are only previewing this CSS.'''
-'''It has not yet been saved!'''",
-'sitejspreview' => "'''Remember that you are only previewing this JavaScript code.'''
-'''It has not yet been saved!'''",
-'userinvalidcssjstitle' => "'''Warning:''' There is no skin \"\$1\".
+'clearyourcache' => "<strong>Note:</strong> After saving, you may have to bypass your browser's cache to see the changes.
+* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clicking <em>Reload</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)
+* <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)
+* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clicking <em>Refresh</em>, or press <em>Ctrl-F5</em>
+* <strong>Opera:</strong> Clear the cache in <em>Tools → Preferences</em>",
+'usercssyoucanpreview' => "<strong>Tip:</strong> Use the \"{{int:showpreview}}\" button to test your new CSS before saving.",
+'userjsyoucanpreview' => "<strong>Tip:</strong> Use the \"{{int:showpreview}}\" button to test your new JavaScript before saving.",
+'usercsspreview' => "<strong>Remember that you are only previewing your user CSS.
+It has not yet been saved!</strong>",
+'userjspreview' => "<strong>Remember that you are only testing/previewing your user JavaScript.
+It has not yet been saved!</strong>",
+'sitecsspreview' => "<strong>Remember that you are only previewing this CSS.
+It has not yet been saved!</strong>",
+'sitejspreview' => "<strong>Remember that you are only previewing this JavaScript code.
+It has not yet been saved!</strong>",
+'userinvalidcssjstitle' => "<strong>Warning:</strong> There is no skin \"\$1\".
Custom .css and .js pages use a lowercase title, e.g. {{ns:user}}:Foo/vector.css as opposed to {{ns:user}}:Foo/Vector.css.",
'updated' => '(Updated)',
-'note' => "'''Note:'''",
-'previewnote' => "'''Remember that this is only a preview.'''
+'note' => "<strong>Note:</strong>",
+'previewnote' => "<strong>Remember that this is only a preview.</strong>
Your changes have not yet been saved!",
'continue-editing' => 'Go to editing area',
'previewconflict' => 'This preview reflects the text in the upper text editing area as it will appear if you choose to save.',
-'session_fail_preview' => "'''Sorry! We could not process your edit due to a loss of session data.'''
+'session_fail_preview' => "<strong>Sorry! We could not process your edit due to a loss of session data.</strong>
Please try again.
If it still does not work, try [[Special:UserLogout|logging out]] and logging back in.",
-'session_fail_preview_html' => "'''Sorry! We could not process your edit due to a loss of session data.'''
+'session_fail_preview_html' => "<strong>Sorry! We could not process your edit due to a loss of session data.</strong>
-''Because {{SITENAME}} has raw HTML enabled, the preview is hidden as a precaution against JavaScript attacks.''
+<em>Because {{SITENAME}} has raw HTML enabled, the preview is hidden as a precaution against JavaScript attacks.</em>
-'''If this is a legitimate edit attempt, please try again.'''
+<strong>If this is a legitimate edit attempt, please try again.</strong>
If it still does not work, try [[Special:UserLogout|logging out]] and logging back in.",
-'token_suffix_mismatch' => "'''Your edit has been rejected because your client mangled the punctuation characters in the edit token.'''
+'token_suffix_mismatch' => "<strong>Your edit has been rejected because your client mangled the punctuation characters in the edit token.</strong>
The edit has been rejected to prevent corruption of the page text.
This sometimes happens when you are using a buggy web-based anonymous proxy service.",
-'edit_form_incomplete' => "'''Some parts of the edit form did not reach the server; double-check that your edits are intact and try again.'''",
+'edit_form_incomplete' => "<strong>Some parts of the edit form did not reach the server; double-check that your edits are intact and try again.</strong>",
'editing' => 'Editing $1',
'creating' => 'Creating $1',
'editingsection' => 'Editing $1 (section)',
The upper text area contains the page text as it currently exists.
Your changes are shown in the lower text area.
You will have to merge your changes into the existing text.
-'''Only''' the text in the upper text area will be saved when you press \"{{int:savearticle}}\".",
+<strong>Only</strong> the text in the upper text area will be saved when you press \"{{int:savearticle}}\".",
'yourtext' => 'Your text',
'storedversion' => 'Stored revision',
-'nonunicodebrowser' => "'''Warning: Your browser is not Unicode compliant.'''
+'nonunicodebrowser' => "<strong>Warning: Your browser is not Unicode compliant.</strong>
A workaround is in place to allow you to safely edit pages: Non-ASCII characters will appear in the edit box as hexadecimal codes.",
-'editingold' => "'''Warning: You are editing an out-of-date revision of this page.'''
+'editingold' => "<strong>Warning: You are editing an out-of-date revision of this page.</strong>
If you save it, any changes made since this revision will be lost.",
'yourdiff' => 'Differences',
'copyrightwarning' => "Please note that all contributions to {{SITENAME}} are considered to be released under the $2 (see $1 for details).
If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.<br />
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
-'''Do not submit copyrighted work without permission!'''",
+<strong>Do not submit copyrighted work without permission!</strong>",
'copyrightwarning2' => "Please note that all contributions to {{SITENAME}} may be edited, altered, or removed by other contributors.
If you do not want your writing to be edited mercilessly, then do not submit it here.<br />
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see $1 for details).
-'''Do not submit copyrighted work without permission!'''",
+<strong>Do not submit copyrighted work without permission!</strong>",
'editpage-head-copy-warn' => '-', # do not translate or duplicate this message to other languages
'editpage-tos-summary' => '-', # do not translate or duplicate this message to other languages
'longpage-hint' => '-', # do not translate or duplicate this message to other languages
-'longpageerror' => "'''Error: The text you have submitted is {{PLURAL:$1|one kilobyte|$1 kilobytes}} long, which is longer than the maximum of {{PLURAL:$2|one kilobyte|$2 kilobytes}}.'''
+'longpageerror' => "<strong>Error: The text you have submitted is {{PLURAL:$1|one kilobyte|$1 kilobytes}} long, which is longer than the maximum of {{PLURAL:$2|one kilobyte|$2 kilobytes}}.</strong>
It cannot be saved.",
-'readonlywarning' => "'''Warning: The database has been locked for maintenance, so you will not be able to save your edits right now.'''
+'readonlywarning' => "<strong>Warning: The database has been locked for maintenance, so you will not be able to save your edits right now.</strong>
You may wish to copy and paste your text into a text file and save it for later.
The administrator who locked it offered this explanation: $1",
-'protectedpagewarning' => "'''Warning: This page has been protected so that only users with administrator privileges can edit it.'''
+'protectedpagewarning' => "<strong>Warning: This page has been protected so that only users with administrator privileges can edit it.</strong>
The latest log entry is provided below for reference:",
-'semiprotectedpagewarning' => "'''Note:''' This page has been protected so that only registered users can edit it.
+'semiprotectedpagewarning' => "<strong>Note:</strong> This page has been protected so that only registered users can edit it.
The latest log entry is provided below for reference:",
-'cascadeprotectedwarning' => "'''Warning:''' This page has been protected so that only users with administrator privileges can edit it because it is included in the following cascade-protected {{PLURAL:$1|page|pages}}:",
-'titleprotectedwarning' => "'''Warning: This page has been protected so that [[Special:ListGroupRights|specific rights]] are needed to create it.'''
+'cascadeprotectedwarning' => "<strong>Warning:</strong> This page has been protected so that only users with administrator privileges can edit it because it is included in the following cascade-protected {{PLURAL:$1|page|pages}}:",
+'titleprotectedwarning' => "<strong>Warning: This page has been protected so that [[Special:ListGroupRights|specific rights]] are needed to create it.</strong>
The latest log entry is provided below for reference:",
'templatesused' => '{{PLURAL:$1|Template|Templates}} used on this page:',
'templatesusedpreview' => '{{PLURAL:$1|Template|Templates}} used in this preview:',
'permissionserrors' => 'Permission error',
'permissionserrorstext' => 'You do not have permission to do that, for the following {{PLURAL:$1|reason|reasons}}:',
'permissionserrorstext-withaction' => 'You do not have permission to $2, for the following {{PLURAL:$1|reason|reasons}}:',
-'recreate-moveddeleted-warn' => "'''Warning: You are recreating a page that was previously deleted.'''
+'recreate-moveddeleted-warn' => "<strong>Warning: You are recreating a page that was previously deleted.</strong>
You should consider whether it is appropriate to continue editing this page.
The deletion and move log for this page are provided here for convenience:",
'content-model-css' => 'CSS',
# Parser/template warnings
-'expensive-parserfunction-warning' => "'''Warning:''' This page contains too many expensive parser function calls.
+'expensive-parserfunction-warning' => "<strong>Warning:</strong> This page contains too many expensive parser function calls.
It should have less than $2 {{PLURAL:$2|call|calls}}, there {{PLURAL:$1|is now $1 call|are now $1 calls}}.",
'expensive-parserfunction-category' => 'Pages with too many expensive parser function calls',
-'post-expand-template-inclusion-warning' => "'''Warning:''' Template include size is too large.
+'post-expand-template-inclusion-warning' => "<strong>Warning:</strong> Template include size is too large.
Some templates will not be included.",
'post-expand-template-inclusion-category' => 'Pages where template include size is exceeded',
-'post-expand-template-argument-warning' => "'''Warning:''' This page contains at least one template argument that has a too large expansion size.
+'post-expand-template-argument-warning' => "<strong>Warning:</strong> This page contains at least one template argument that has a too large expansion size.
These arguments have been omitted.",
'post-expand-template-argument-category' => 'Pages containing omitted template arguments',
'parser-template-loop-warning' => 'Template loop detected: [[$1]]',
'cantcreateaccount-range-text' => "Account creation from IP addresses in the range '''$1''', which includes your IP address ('''$4'''), has been blocked by [[User:$3|$3]].
The reason given by $3 is ''$2''",
-'cantcreateaccount-text' => "Account creation from this IP address ('''$1''') has been blocked by [[User:$3|$3]].
+'cantcreateaccount-text' => "Account creation from this IP address (<strong>$1</strong>) has been blocked by [[User:$3|$3]].
-The reason given by $3 is ''$2''",
+The reason given by $3 is <em>$2</em>",
+'createaccount-hook-aborted' => '$1', # do not translate or duplicate this message to other languages
# History pages
'viewpagelogs' => 'View logs for this page',
'page_first' => 'first',
'page_last' => 'last',
'histlegend' => "Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />
-Legend: '''({{int:cur}})''' = difference with latest revision, '''({{int:last}})''' = difference with preceding revision, '''{{int:minoreditletter}}''' = minor edit.",
+Legend: <strong>({{int:cur}})</strong> = difference with latest revision, <strong>({{int:last}})</strong> = difference with preceding revision, <strong>{{int:minoreditletter}}</strong> = minor edit.",
'history-fieldset-title' => 'Browse history',
'history-show-deleted' => 'Deleted only',
'history_copyright' => '-', # do not translate or duplicate this message to other languages
'rev-deleted-user' => '(username removed)',
'rev-deleted-event' => '(log action removed)',
'rev-deleted-user-contribs' => '[username or IP address removed - edit hidden from contributions]',
-'rev-deleted-text-permission' => "This page revision has been '''deleted'''.
+'rev-deleted-text-permission' => "This page revision has been <strong>deleted</strong>.
Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-'rev-deleted-text-unhide' => "This page revision has been '''deleted'''.
+'rev-deleted-text-unhide' => "This page revision has been <strong>deleted</strong>.
Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].
You can still [$1 view this revision] if you wish to proceed.",
-'rev-suppressed-text-unhide' => "This page revision has been '''suppressed'''.
+'rev-suppressed-text-unhide' => "This page revision has been <strong>suppressed</strong>.
Details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].
You can still [$1 view this revision] if you wish to proceed.",
-'rev-deleted-text-view' => "This page revision has been '''deleted'''.
+'rev-deleted-text-view' => "This page revision has been <strong>deleted</strong>.
You can view it; details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-'rev-suppressed-text-view' => "This page revision has been '''suppressed'''.
+'rev-suppressed-text-view' => "This page revision has been <strong>suppressed</strong>.
You can view it; details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
-'rev-deleted-no-diff' => "You cannot view this diff because one of the revisions has been '''deleted'''.
+'rev-deleted-no-diff' => "You cannot view this diff because one of the revisions has been <strong>deleted</strong>.
Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-'rev-suppressed-no-diff' => "You cannot view this diff because one of the revisions has been '''deleted'''.",
-'rev-deleted-unhide-diff' => "One of the revisions of this diff has been '''deleted'''.
+'rev-suppressed-no-diff' => "You cannot view this diff because one of the revisions has been <strong>deleted</strong>.",
+'rev-deleted-unhide-diff' => "One of the revisions of this diff has been <strong>deleted</strong>.
Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].
You can still [$1 view this diff] if you wish to proceed.",
-'rev-suppressed-unhide-diff' => "One of the revisions of this diff has been '''suppressed'''.
+'rev-suppressed-unhide-diff' => "One of the revisions of this diff has been <strong>suppressed</strong>.
Details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].
You can still [$1 view this diff] if you wish to proceed.",
-'rev-deleted-diff-view' => "One of the revisions of this diff has been '''deleted'''.
+'rev-deleted-diff-view' => "One of the revisions of this diff has been <strong>deleted</strong>.
You can view this diff; details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
-'rev-suppressed-diff-view' => "One of the revisions of this diff has been '''suppressed'''.
+'rev-suppressed-diff-view' => "One of the revisions of this diff has been <strong>suppressed</strong>.
You can view this diff; details can be found in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
'rev-delundel' => 'change visibility',
'rev-showdeleted' => 'show',
'revdelete-no-file' => 'The file specified does not exist.',
'revdelete-show-file-confirm' => 'Are you sure you want to view a deleted revision of the file "<nowiki>$1</nowiki>" from $2 at $3?',
'revdelete-show-file-submit' => 'Yes',
-'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Selected revisions}} of [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Selected log events}}:'''",
-'revdelete-text' => "'''Deleted revisions and events will still appear in the page history and logs, but parts of their content will be inaccessible to the public.'''
+'revdelete-selected' => "<strong>{{PLURAL:$2|Selected revision|Selected revisions}} of [[:$1]]:</strong>",
+'logdelete-selected' => "<strong>{{PLURAL:$1|Selected log event|Selected log events}}:</strong>",
+'revdelete-text' => "<strong>Deleted revisions and events will still appear in the page history and logs, but parts of their content will be inaccessible to the public.</strong>
Other administrators on {{SITENAME}} will still be able to access the hidden content and can undelete it again through this same interface, unless additional restrictions are set.",
'revdelete-confirm' => 'Please confirm that you intend to do this, that you understand the consequences, and that you are doing this in accordance with [[{{MediaWiki:Policy-url}}|the policy]].',
-'revdelete-suppress-text' => "Suppression should '''only''' be used for the following cases:
+'revdelete-suppress-text' => "Suppression should <strong>only</strong> be used for the following cases:
* potentially libelous information
* inappropriate personal information
-*: ''home addresses and telephone numbers, national identification numbers, etc.''",
+*: <em>home addresses and telephone numbers, national identification numbers, etc.</em>",
'revdelete-legend' => 'Set visibility restrictions',
'revdelete-hide-text' => 'Revision text',
'revdelete-hide-image' => 'Hide file content',
'revdelete-unsuppress' => 'Remove restrictions on restored revisions',
'revdelete-log' => 'Reason:',
'revdelete-submit' => 'Apply to selected {{PLURAL:$1|revision|revisions}}',
-'revdelete-success' => "'''Revision visibility successfully updated.'''",
-'revdelete-failure' => "'''Revision visibility could not be updated:'''
+'revdelete-success' => "<strong>Revision visibility successfully updated.</strong>",
+'revdelete-failure' => "<strong>Revision visibility could not be updated:</strong>
$1",
-'logdelete-success' => "'''Log visibility successfully set.'''",
-'logdelete-failure' => "'''Log visibility could not be set:'''
+'logdelete-success' => "<strong>Log visibility successfully set.</strong>",
+'logdelete-failure' => "<strong>Log visibility could not be set:</strong>
$1",
'revdel-restore' => 'change visibility',
'pagehist' => 'Page history',
'revdelete-modify-no-access' => 'Error modifying the item dated $2, $1: This item has been marked "restricted".
You do not have access to it.',
'revdelete-modify-missing' => 'Error modifying item ID $1: It is missing from the database!',
-'revdelete-no-change' => "'''Warning:''' The item dated $2, $1 already had the requested visibility settings.",
+'revdelete-no-change' => "<strong>Warning:</strong> The item dated $2, $1 already had the requested visibility settings.",
'revdelete-concurrent-change' => 'Error modifying the item dated $2, $1: Its status appears to have been changed by someone else while you attempted to modify it.
Please check the logs.',
'revdelete-only-restricted' => 'Error hiding the item dated $2, $1: You cannot suppress items from view by administrators without also selecting one of the other visibility options.',
'nextn-title' => 'Next $1 {{PLURAL:$1|result|results}}',
'shown-title' => 'Show $1 {{PLURAL:$1|result|results}} per page',
'viewprevnext' => 'View ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-exists' => "'''There is a page named \"[[:\$1]]\" on this wiki.''' {{PLURAL:$2|0=|See also the other search results found.}}",
-'searchmenu-new' => "'''Create the page \"[[:\$1]]\" on this wiki!''' {{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}",
+'searchmenu-exists' => "<strong>There is a page named \"[[:\$1]]\" on this wiki.</strong> {{PLURAL:$2|0=|See also the other search results found.}}",
+'searchmenu-new' => "<strong>Create the page \"[[:\$1]]\" on this wiki!</strong> {{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}",
'searchmenu-new-nocreate' => '', # do not translate or duplicate this message to other languages
'searchprofile-articles' => 'Content pages',
'searchprofile-project' => 'Help and Project pages',
'searcheverything-enable' => 'Search in all namespaces',
'searchrelated' => 'related',
'searchall' => 'all',
-'showingresults' => "Showing below up to {{PLURAL:$1|'''1''' result|'''$1''' results}} starting with #'''$2'''.",
-'showingresultsnum' => "Showing below {{PLURAL:$3|'''1''' result|'''$3''' results}} starting with #'''$2'''.",
-'showingresultsheader' => "{{PLURAL:$5|Result '''$1''' of '''$3'''|Results '''$1 - $2''' of '''$3'''}} for '''$4'''",
+'showingresults' => "Showing below up to {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> results}} starting with #<strong>$2</strong>.",
+'showingresultsnum' => "Showing below {{PLURAL:$3|<strong>1</strong> result|<strong>$3</strong> results}} starting with #<strong>$2</strong>.",
+'showingresultsheader' => "{{PLURAL:$5|Result <strong>$1</strong> of <strong>$3</strong>|Results <strong>$1 - $2</strong> of <strong>$3</strong>}} for <strong>$4</strong>",
'search-nonefound' => 'There were no results matching the query.',
'powersearch-legend' => 'Advanced search',
'powersearch-ns' => 'Search in namespaces:',
'userrights-lookup-user' => 'Manage user groups',
'userrights-user-editname' => 'Enter a username:',
'editusergroup' => 'Edit user groups',
-'editinguser' => "Changing user rights of user '''[[User:$1|$1]]''' $2",
+'editinguser' => "Changing user rights of user <strong>[[User:$1|$1]]</strong> $2",
'userrights-editusergroup' => 'Edit user groups',
'saveusergroups' => 'Save user groups',
'userrights-groupsmember' => 'Member of:',
'recentchanges-label-plusminus' => 'The page size changed by this number of bytes',
'recentchanges-legend-heading' => "'''Legend:'''",
'recentchanges-legend-newpage' => '(also see [[Special:NewPages|list of new pages]])',
-'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Below are the changes since '''$2''' (up to '''$1''' shown).",
+'recentchanges-legend-plusminus' => "(<em>±123</em>)",
+'rcnotefrom' => "Below are the changes since <strong>$2</strong> (up to <strong>$1</strong> shown).",
'rclistfrom' => 'Show new changes starting from $1',
'rcshowhideminor' => '$1 minor edits',
'rcshowhidebots' => '$1 bots',
'recentchangeslinked-toolbox' => 'Related changes',
'recentchangeslinked-title' => 'Changes related to "$1"',
'recentchangeslinked-summary' => "This is a list of changes made recently to pages linked from a specified page (or to members of a specified category).
-Pages on [[Special:Watchlist|your watchlist]] are '''bold'''.",
+Pages on [[Special:Watchlist|your watchlist]] are <strong>bold</strong>.",
'recentchangeslinked-page' => 'Page name:',
'recentchangeslinked-to' => 'Show changes to pages linked to the given page instead',
'upload_directory_read_only' => 'The upload directory ($1) is not writable by the webserver.',
'uploaderror' => 'Upload error',
'upload-summary' => '', # do not translate or duplicate this message to other languages
-'upload-recreate-warning' => "'''Warning: A file by that name has been deleted or moved.'''
+'upload-recreate-warning' => "<strong>Warning: A file by that name has been deleted or moved.</strong>
The deletion and move log for this page are provided here for convenience:",
'uploadtext' => "Use the form below to upload files.
To view or search previously uploaded files go to the [[Special:FileList|list of uploaded files]], (re)uploads are also logged in the [[Special:Log/upload|upload log]], deletions in the [[Special:Log/delete|deletion log]].
To include a file in a page, use a link in one of the following forms:
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with \"alt text\" as description
-* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> to use the full version of the file
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code></strong> to use a 200 pixel wide rendition in a box in the left margin with \"alt text\" as description
+* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> for directly linking to the file without displaying the file",
'upload-permitted' => 'Permitted file types: $1.',
'upload-preferred' => 'Preferred file types: $1.',
'upload-prohibited' => 'Prohibited file types: $1.',
'filetype-mime-mismatch' => 'File extension ".$1" does not match the detected MIME type of the file ($2).',
'filetype-badmime' => 'Files of the MIME type "$1" are not allowed to be uploaded.',
'filetype-bad-ie-mime' => 'Cannot upload this file because Internet Explorer would detect it as "$1", which is a disallowed and potentially dangerous file type.',
-'filetype-unwanted-type' => "'''\".\$1\"''' is an unwanted file type.
+'filetype-unwanted-type' => "<strong>\".\$1\"</strong> is an unwanted file type.
Preferred {{PLURAL:\$3|file type is|file types are}} \$2.",
-'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|is not a permitted file type|are not permitted file types}}.
+'filetype-banned-type' => '<strong>".$1"</strong> {{PLURAL:$4|is not a permitted file type|are not permitted file types}}.
Permitted {{PLURAL:$3|file type is|file types are}} $2.',
'filetype-missing' => 'The file has no extension (like ".jpg").',
'empty-file' => 'The file you submitted was empty.',
* Name of the uploading file: <strong>[[:$1]]</strong>
* Name of the existing file: <strong>[[:$2]]</strong>
Please choose a different name.',
-'fileexists-thumbnail-yes' => "The file seems to be an image of reduced size ''(thumbnail)''.
+'fileexists-thumbnail-yes' => "The file seems to be an image of reduced size <em>(thumbnail)</em>.
[[$1|thumb]]
Please check the file <strong>[[:$1]]</strong>.
If the checked file is the same image of original size it is not necessary to upload an extra thumbnail.",
'file-thumbnail-no' => "The filename begins with <strong>$1</strong>.
-It seems to be an image of reduced size ''(thumbnail)''.
+It seems to be an image of reduced size <em>(thumbnail)</em>.
If you have this image in full resolution upload this one, otherwise change the filename please.",
'fileexists-forbidden' => 'A file with this name already exists, and cannot be overwritten.
If you still want to upload your file, please go back and use a new name.
'watchthisupload' => 'Watch this file',
'filewasdeleted' => 'A file of this name has been previously uploaded and subsequently deleted.
You should check the $1 before proceeding to upload it again.',
-'filename-bad-prefix' => "The name of the file you are uploading begins with '''\"\$1\"''', which is a non-descriptive name typically assigned automatically by digital cameras.
+'filename-bad-prefix' => "The name of the file you are uploading begins with <strong>\"\$1\"</strong>, which is a non-descriptive name typically assigned automatically by digital cameras.
Please choose a more descriptive name for your file.",
'filename-prefix-blacklist' => ' #<!-- leave this line exactly as it is --> <pre>
# Syntax is as follows:
'backend-fail-read' => 'Could not read file "$1".',
'backend-fail-create' => 'Could not write file "$1".',
'backend-fail-maxsize' => 'Could not write file "$1" because it is larger than {{PLURAL:$2|one byte|$2 bytes}}.',
-'backend-fail-readonly' => 'The storage backend "$1" is currently read-only. The reason given is: "\'\'$2\'\'"',
+'backend-fail-readonly' => 'The storage backend "$1" is currently read-only. The reason given is: "<em>$2</em>"',
'backend-fail-synced' => 'The file "$1" is in an inconsistent state within the internal storage backends',
'backend-fail-connect' => 'Could not connect to storage backend "$1".',
'backend-fail-internal' => 'An unknown error occurred in storage backend "$1".',
# File reversion
'filerevert' => 'Revert $1',
'filerevert-legend' => 'Revert file',
-'filerevert-intro' => "You are about to revert the file '''[[Media:$1|$1]]''' to the [$4 version as of $3, $2].",
+'filerevert-intro' => "You are about to revert the file <strong>[[Media:$1|$1]]</strong> to the [$4 version as of $3, $2].",
'filerevert-comment' => 'Reason:',
'filerevert-defaultcomment' => 'Reverted to version as of $2, $1',
'filerevert-submit' => 'Revert',
-'filerevert-success' => "'''[[Media:$1|$1]]''' has been reverted to the [$4 version as of $3, $2].",
+'filerevert-success' => "<strong>[[Media:$1|$1]]</strong> has been reverted to the [$4 version as of $3, $2].",
'filerevert-badversion' => 'There is no previous local version of this file with the provided timestamp.',
# File deletion
'filedelete' => 'Delete $1',
'filedelete-legend' => 'Delete file',
-'filedelete-intro' => "You are about to delete the file '''[[Media:$1|$1]]''' along with all of its history.",
-'filedelete-intro-old' => "You are deleting the version of '''[[Media:$1|$1]]''' as of [$4 $3, $2].",
+'filedelete-intro' => "You are about to delete the file <strong>[[Media:$1|$1]]</strong> along with all of its history.",
+'filedelete-intro-old' => "You are deleting the version of <strong>[[Media:$1|$1]]</strong> as of [$4 $3, $2].",
'filedelete-comment' => 'Reason:',
'filedelete-submit' => 'Delete',
-'filedelete-success' => "'''$1''' has been deleted.",
-'filedelete-success-old' => "The version of '''[[Media:$1|$1]]''' as of $3, $2 has been deleted.",
-'filedelete-nofile' => "'''$1''' does not exist.",
-'filedelete-nofile-old' => "There is no archived version of '''$1''' with the specified attributes.",
+'filedelete-success' => "<strong>$1</strong> has been deleted.",
+'filedelete-success-old' => "The version of <strong>[[Media:$1|$1]]</strong> as of $3, $2 has been deleted.",
+'filedelete-nofile' => "<strong>$1</strong> does not exist.",
+'filedelete-nofile-old' => "There is no archived version of <strong>$1</strong> with the specified attributes.",
'filedelete-otherreason' => 'Other/additional reason:',
'filedelete-reason-otherlist' => 'Other reason',
'filedelete-reason-dropdown' => '*Common delete reasons
'notvisiblerev' => 'The last revision by a different user has been deleted',
'watchlist-details' => '{{PLURAL:$1|$1 page|$1 pages}} on your watchlist, not counting talk pages.',
'wlheader-enotif' => 'Email notification is enabled.',
-'wlheader-showupdated' => "Pages that have been changed since you last visited them are shown in '''bold'''.",
+'wlheader-showupdated' => "Pages that have been changed since you last visited them are shown in <strong>bold</strong>.",
'watchmethod-recent' => 'checking recent edits for watched pages',
'watchmethod-list' => 'checking watched pages for recent edits',
'watchlistcontains' => 'Your watchlist contains $1 {{PLURAL:$1|page|pages}}.',
'iteminvalidname' => 'Problem with item "$1", invalid name...',
-'wlnote' => "Below {{PLURAL:$1|is the last change|are the last '''$1''' changes}} in the last {{PLURAL:$2|hour|'''$2''' hours}}, as of $3, $4.",
+'wlnote2' => "Below are the changes in the last {{PLURAL:$1|hour|<strong>$1</strong> hours}}, as of $2, $3.",
'wlshowlast' => 'Show last $1 hours $2 days $3',
'watchlist-options' => 'Watchlist options',
'exblank' => 'page was empty',
'delete-confirm' => 'Delete "$1"',
'delete-legend' => 'Delete',
-'historywarning' => "'''Warning:''' The page you are about to delete has a history with approximately $1 {{PLURAL:$1|revision|revisions}}:",
+'historywarning' => "<strong>Warning:</strong> The page you are about to delete has a history with approximately $1 {{PLURAL:$1|revision|revisions}}:",
'confirmdeletetext' => 'You are about to delete a page along with all of its history.
Please confirm that you intend to do this, that you understand the consequences, and that you are doing this in accordance with [[{{MediaWiki:Policy-url}}|the policy]].',
'deleting-backlinks-warning' => "'''Warning:''' Other pages link to or transclude from the page you are about to delete.",
'protect_expiry_invalid' => 'Expiry time is invalid.',
'protect_expiry_old' => 'Expiry time is in the past.',
'protect-unchain-permissions' => 'Unlock further protect options',
-'protect-text' => "Here you may view and change the protection level for the page '''$1'''.",
+'protect-text' => "Here you may view and change the protection level for the page <strong>$1</strong>.",
'protect-locked-blocked' => "You cannot change protection levels while blocked.
-Here are the current settings for the page '''$1''':",
+Here are the current settings for the page <strong>$1</strong>:",
'protect-locked-dblock' => "Protection levels cannot be changed due to an active database lock.
-Here are the current settings for the page '''$1''':",
+Here are the current settings for the page <strong>$1</strong>:",
'protect-locked-access' => "Your account does not have permission to change page protection levels.
-Here are the current settings for the page '''$1''':",
+Here are the current settings for the page <strong>$1</strong>:",
'protect-cascadeon' => "This page is currently protected because it is included in the following {{PLURAL:$1|page, which has|pages, which have}} cascading protection turned on.
You can change this page's protection level, but it will not affect the cascading protection.",
'protect-default' => 'Allow all users',
'undelete' => 'View deleted pages',
'undelete-summary' => '', # do not translate or duplicate this message to other languages
'undeletepage' => 'View and restore deleted pages',
-'undeletepagetitle' => "'''The following consists of deleted revisions of [[:$1|$1]]'''.",
+'undeletepagetitle' => "<strong>The following consists of deleted revisions of [[:$1|$1]]</strong>.",
'viewdeletedpage' => 'View deleted pages',
'undeletepagetext' => 'The following {{PLURAL:$1|page has been deleted but is|$1 pages have been deleted but are}} still in the archive and can be restored.
The archive may be periodically cleaned out.',
'undelete-fieldset-title' => 'Restore revisions',
-'undeleteextrahelp' => "To restore the page's entire history, leave all checkboxes deselected and click '''''{{int:undeletebtn}}'''''.
-To perform a selective restoration, check the boxes corresponding to the revisions to be restored, and click '''''{{int:undeletebtn}}'''''.",
+'undeleteextrahelp' => "To restore the page's entire history, leave all checkboxes deselected and click <strong><em>{{int:undeletebtn}}</em></strong>.
+To perform a selective restoration, check the boxes corresponding to the revisions to be restored, and click <strong><em>{{int:undeletebtn}}</em></strong>.",
'undeleterevisions' => '$1 {{PLURAL:$1|revision|revisions}} archived',
'undeletehistory' => 'If you restore the page, all revisions will be restored to the history.
If a new page with the same name has been created since the deletion, the restored revisions will appear in the prior history.',
'undeletedfiles' => '{{PLURAL:$1|1 file|$1 files}} restored',
'cannotundelete' => 'Undelete failed:
$1',
-'undeletedpage' => "'''$1 has been restored'''
+'undeletedpage' => "<strong>$1 has been restored</strong>
Consult the [[Special:Log/delete|deletion log]] for a record of recent deletions and restorations.",
'undelete-header' => 'See [[Special:Log/delete|the deletion log]] for recently deleted pages.',
'whatlinkshere-title' => 'Pages that link to "$1"',
'whatlinkshere-summary' => '', # do not translate or duplicate this message to other languages
'whatlinkshere-page' => 'Page:',
-'linkshere' => "The following pages link to '''[[:$1]]''':",
-'nolinkshere' => "No pages link to '''[[:$1]]'''.",
-'nolinkshere-ns' => "No pages link to '''[[:$1]]''' in the chosen namespace.",
+'linkshere' => "The following pages link to <strong>[[:$1]]</strong>:",
+'nolinkshere' => "No pages link to <strong>[[:$1]]</strong>.",
+'nolinkshere-ns' => "No pages link to <strong>[[:$1]]</strong> in the chosen namespace.",
'isredirect' => 'redirect page',
'istemplate' => 'transclusion',
'isimage' => 'file link',
'contribslink' => 'contribs',
'emaillink' => 'send email',
'autoblocker' => 'Autoblocked because your IP address has been recently used by "[[User:$1|$1]]".
-The reason given for $1\'s block is "\'\'$2\'\'"',
+The reason given for $1\'s block is "<em>$2</em>"',
'blocklogpage' => 'Block log',
'blocklog-showlog' => 'This user has been blocked previously.
The block log is provided below for reference:',
If you choose not to, be sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].
You are responsible for making sure that links continue to point where they are supposed to go.
-Note that the page will '''not''' be moved if there is already a page at the new title, unless the latter is a redirect and has no past edit history.
+Note that the page will <strong>not</strong> be moved if there is already a page at the new title, unless the latter is a redirect and has no past edit history.
This means that you can rename a page back to where it was renamed from if you make a mistake, and you cannot overwrite an existing page.
-'''Warning!'''
+<strong>Warning!</strong>
This can be a drastic and unexpected change for a popular page;
please be sure you understand the consequences of this before proceeding.",
'movepagetext-noredirectfixer' => "Using the form below will rename a page, moving all of its history to the new name.
Be sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].
You are responsible for making sure that links continue to point where they are supposed to go.
-Note that the page will '''not''' be moved if there is already a page at the new title, unless it is a redirect and has no past edit history.
+Note that the page will <strong>not</strong> be moved if there is already a page at the new title, unless it is a redirect and has no past edit history.
This means that you can rename a page back to where it was renamed from if you make a mistake, and you cannot overwrite an existing page.
-'''Warning!'''
+<strong>Warning!</strong>
This can be a drastic and unexpected change for a popular page;
please be sure you understand the consequences of this before proceeding.",
-'movepagetalktext' => "The associated talk page will be automatically moved along with it '''unless:'''
+'movepagetalktext' => "The associated talk page will be automatically moved along with it <strong>unless:</strong>
*A non-empty talk page already exists under the new name, or
*You uncheck the box below.
In those cases, you will have to move or merge the page manually if desired.",
'movearticle' => 'Move page:',
-'moveuserpage-warning' => "'''Warning:''' You are about to move a user page. Please note that only the page will be moved and the user will ''not'' be renamed.",
+'moveuserpage-warning' => "<strong>Warning:</strong> You are about to move a user page. Please note that only the page will be moved and the user will <em>not</em> be renamed.",
'movenologintext' => 'You must be a registered user and [[Special:UserLogin|logged in]] to move a page.',
'movenotallowed' => 'You do not have permission to move pages.',
'movenotallowedfile' => 'You do not have permission to move files.',
'move-watch' => 'Watch source page and target page',
'movepagebtn' => 'Move page',
'pagemovedsub' => 'Move succeeded',
-'movepage-moved' => '\'\'\'"$1" has been moved to "$2"\'\'\'',
+'movepage-moved' => '<strong>"$1" has been moved to "$2"</strong>',
'movepage-moved-redirect' => 'A redirect has been created.',
'movepage-moved-noredirect' => 'The creation of a redirect has been suppressed.',
'articleexists' => 'A page of that name already exists, or the name you have chosen is not valid.
'imageinvalidfilename' => 'The target filename is invalid',
'fix-double-redirects' => 'Update any redirects that point to the original title',
'move-leave-redirect' => 'Leave a redirect behind',
-'protectedpagemovewarning' => "'''Warning:''' This page has been protected so that only users with administrator privileges can move it.
+'protectedpagemovewarning' => "<strong>Warning:</strong> This page has been protected so that only users with administrator privileges can move it.
The latest log entry is provided below for reference:",
-'semiprotectedpagemovewarning' => "'''Note:''' This page has been protected so that only registered users can move it.
+'semiprotectedpagemovewarning' => "<strong>Note:</strong> This page has been protected so that only registered users can move it.
The latest log entry is provided below for reference:",
'move-over-sharedrepo' => '== File exists ==
[[:$1]] exists on a shared repository. Moving a file to this title will override the shared file.',
'exportall' => 'Export all pages',
'exportcuronly' => 'Include only the current revision, not the full history',
'exportnohistory' => "----
-'''Note:''' Exporting the full history of pages through this form has been disabled due to performance reasons.",
+<strong>Note:</strong> Exporting the full history of pages through this form has been disabled due to performance reasons.",
'exportlistauthors' => 'Include a full list of contributors for each page',
'export-submit' => 'Export',
'export-addcattext' => 'Add pages from category:',
'allmessagescurrent' => 'Current message text',
'allmessagestext' => 'This is a list of system messages available in the MediaWiki namespace.
Please visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.',
-'allmessagesnotsupportedDB' => "This page cannot be used because '''\$wgUseDatabaseMessages''' has been disabled.",
+'allmessagesnotsupportedDB' => "This page cannot be used because <strong>\$wgUseDatabaseMessages</strong> has been disabled.",
'allmessages-filter-legend' => 'Filter',
'allmessages-filter' => 'Filter by customization state:',
'allmessages-filter-unmodified' => 'Unmodified',
'allmessages-prefix' => 'Filter by prefix:',
'allmessages-language' => 'Language:',
'allmessages-filter-submit' => 'Go',
+'allmessages-filter-translate' => 'Translate',
# Thumbnails
'thumbnail-more' => 'Enlarge',
A temporary folder is missing.',
'import-parse-failure' => 'XML import parse failure',
'import-noarticle' => 'No page to import!',
-'import-nonewrevisions' => 'All revisions were previously imported.',
+'import-nonewrevisions' => 'No revisions imported (all were either already present, or skipped due to errors).',
'xml-error-string' => '$1 at line $2, col $3 (byte $4): $5',
'import-upload' => 'Upload XML data',
'import-token-mismatch' => 'Loss of session data.
'import-error-special' => 'Page "$1" is not imported because it belongs to a special namespace that does not allow pages.',
'import-error-invalid' => 'Page "$1" is not imported because its name is invalid.',
'import-error-unserialize' => 'Revision $2 of page "$1" could not be unserialized. The revision was reported to use content model $3 serialized as $4.',
+'import-error-bad-location' => 'Revision $2 using content model $3 can not be stored on "$1" on this wiki, since that model is not supported on that page.',
'import-options-wrong' => 'Wrong {{PLURAL:$2|option|options}}: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'Given root page is an invalid title.',
'import-rootpage-nosubpage' => 'Namespace "$1" of the root page does not allow subpages.',
'accesskey-pt-watchlist' => 'l', # do not translate or duplicate this message to other languages
'accesskey-pt-mycontris' => 'y', # do not translate or duplicate this message to other languages
'accesskey-pt-login' => 'o', # do not translate or duplicate this message to other languages
-'accesskey-pt-anonlogin' => 'o', # do not translate or duplicate this message to other languages
'accesskey-pt-logout' => '', # do not translate or duplicate this message to other languages
'accesskey-ca-talk' => 't', # do not translate or duplicate this message to other languages
'accesskey-ca-edit' => 'e', # do not translate or duplicate this message to other languages
'tooltip-pt-watchlist' => 'A list of pages you are monitoring for changes',
'tooltip-pt-mycontris' => 'A list of your contributions',
'tooltip-pt-login' => 'You are encouraged to log in; however, it is not mandatory',
-'tooltip-pt-anonlogin' => 'You are encouraged to log in; however, it is not mandatory',
'tooltip-pt-logout' => 'Log out',
'tooltip-ca-talk' => 'Discussion about the content page',
'tooltip-ca-edit' => 'You can edit this page. Please use the preview button before saving',
'spam_blanking' => 'All revisions contained links to $1, blanking',
'spam_deleting' => 'All revisions contained links to $1, deleting',
'simpleantispam-label' => "Anti-spam check.
-Do '''NOT''' fill this in!",
+Do <strong>NOT</strong> fill this in!",
# Info page
'pageinfo-header' => '-', # do not translate or duplicate this message to other languages
'nextdiff' => 'Newer edit →',
# Media information
-'mediawarning' => "'''Warning:''' This file type may contain malicious code.
+'mediawarning' => "<strong>Warning:</strong> This file type may contain malicious code.
By executing it, your system may be compromised.",
-'imagemaxsize' => "Image size limit:<br />''(for file description pages)''",
+'imagemaxsize' => "Image size limit:<br /><em>(for file description pages)</em>",
'thumbsize' => 'Thumbnail size:',
'widthheight' => '$1 × $2', # only translate this message to other languages if you have to change it
'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|page|pages}}',
'file-info-png-looped' => 'looped',
'file-info-png-repeat' => 'played $1 {{PLURAL:$1|time|times}}',
'file-info-png-frames' => '$1 {{PLURAL:$1|frame|frames}}',
-'file-no-thumb-animation' => "'''Note: Due to technical limitations, thumbnails of this file will not be animated.'''",
-'file-no-thumb-animation-gif' => "'''Note: Due to technical limitations, thumbnails of high resolution GIF images such as this one will not be animated.'''",
+'file-no-thumb-animation' => "<strong>Note: Due to technical limitations, thumbnails of this file will not be animated.</strong>",
+'file-no-thumb-animation-gif' => "<strong>Note: Due to technical limitations, thumbnails of high resolution GIF images such as this one will not be animated.</strong>",
# Special:NewFiles
'newimages' => 'Gallery of new files',
-'imagelisttext' => "Below is a list of '''$1''' {{PLURAL:$1|file|files}} sorted $2.",
+'imagelisttext' => "Below is a list of <strong>$1</strong> {{PLURAL:$1|file|files}} sorted $2.",
'newimages-summary' => 'This special page shows the last uploaded files.',
'newimages-legend' => 'Filter',
'newimages-label' => 'Filename (or a part of it):',
* gpslatitude
* gpslongitude
* gpsaltitude',
-'metadata-langitem' => "'''$2:''' $1", # only translate this message to other languages if you have to change it
+'metadata-langitem' => "<strong>$2:</strong> $1", # only translate this message to other languages if you have to change it
'metadata-langitem-default' => '$1', # only translate this message to other languages if you have to change it
# Exif tags
'scarytranscludetoolong' => '[URL is too long]',
# Delete conflict
-'deletedwhileediting' => "'''Warning:''' This page was deleted after you started editing!",
+'deletedwhileediting' => "<strong>Warning:</strong> This page was deleted after you started editing!",
'confirmrecreate' => "User [[User:$1|$1]] ([[User talk:$1|talk]]) deleted this page after you started editing with reason:
-: ''$2''
+: <em>$2</em>
Please confirm that you really want to recreate this page.",
'confirmrecreate-noreason' => 'User [[User:$1|$1]] ([[User talk:$1|talk]]) deleted this page after you started editing. Please confirm that you really want to recreate this page.',
'recreate' => 'Recreate',
# Core parser functions
'unknown_extension_tag' => 'Unknown extension tag "$1"',
-'duplicate-defaultsort' => '\'\'\'Warning:\'\'\' Default sort key "$2" overrides earlier default sort key "$1".',
+'duplicate-defaultsort' => '<strong>Warning:</strong> Default sort key "$2" overrides earlier default sort key "$1".',
# Special:Version
'version' => 'Version',
'version-ext-colheader-license' => 'License',
'version-ext-colheader-description' => 'Description',
'version-ext-colheader-credits' => 'Authors',
-'version-poweredby-credits' => "This wiki is powered by '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
+'version-poweredby-credits' => "This wiki is powered by <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
'version-poweredby-others' => 'others',
'version-poweredby-translators' => 'translatewiki.net translators',
'version-credits-summary' => 'We would like to recognize the following persons for their contribution to [[Special:Version|MediaWiki]].',
'tog-numberheadings' => 'Aŭtomate numerigi sekciojn',
'tog-showtoolbar' => 'Montri redakto-breton (per JavaScript)',
'tog-editondblclick' => 'Redakti per duobla alklako (per JavaScript)',
-'tog-editsection' => 'Montri [redakti]-ligilojn por sekcioj',
'tog-editsectiononrightclick' => 'Ŝalti sekcian redaktadon per dekstra musklako de sekciaj titoloj (kun JavaScript)',
-'tog-showtoc' => 'Montri enhavliston (por paĝoj kun pli ol 3 sekcioj)',
'tog-rememberpassword' => 'Memori mian ensalutadon ĉe ĉi tiu retumilo (daŭrante maksimume $1 {{PLURAL:$1|tagon|tagojn}})',
'tog-watchcreations' => 'Aldoni miajn kreatajn paĝojn al mia atentaro',
'tog-watchdefault' => 'Aldoni al mia atentaro paĝojn redaktitajn de mi',
'watchmethod-list' => 'traserĉas priatentitajn',
'watchlistcontains' => 'Via atentaro enhavas $1 {{PLURAL:$1|paĝon|paĝojn}}.',
'iteminvalidname' => 'Ia eraro pri "$1", nevalida titolo...',
-'wlnote' => "Jen la {{PLURAL:$1|lasta redakto|lastaj '''$1''' redaktoj}} dum la {{PLURAL:$2|lasta horo|lastaj '''$2''' horoj}}, ekde $3, $4.",
'wlshowlast' => 'Montri el lastaj $1 horoj $2 tagoj $3',
'watchlist-options' => 'Opcioj por atentaro',
'tooltip-pt-watchlist' => 'Listo de paĝoj kies ŝanĝojn vi priatentas.',
'tooltip-pt-mycontris' => 'Listo de viaj kontribuoj',
'tooltip-pt-login' => 'Vi estas invitita ensaluti, tamen ne estas devige.',
-'tooltip-pt-anonlogin' => 'Vi estas invitita ensaluti, tamen ne estas devige.',
'tooltip-pt-logout' => 'Elsaluti',
'tooltip-ca-talk' => 'Diskuto pri la artikolo',
'tooltip-ca-edit' => 'Vi povas redakti tiun ĉi paĝon. Bv uzi la antaŭvidbutonon antaŭ ol konservi.',
'version-parser-function-hooks' => 'Hokoj de sintaksaj funkcioj',
'version-hook-name' => 'Nomo de hoko',
'version-hook-subscribedby' => 'Abonita de',
-'version-version' => '(Versio $1)',
+'version-version' => '($1)',
'version-license' => 'Permesilo de MediaWiki',
'version-poweredby-credits' => "Ĉi tiu vikio funkcias per '''[https://www.mediawiki.org/ MediaWiki]''', aŭtorrajto © 2001–$1 $2.",
'version-poweredby-others' => 'aliaj',
* @author Boivie
* @author Candalua
* @author Capmo
+ * @author Carlitosag
* @author Cerealito
* @author Ciencia Al Poder
* @author Clerc
* @author Salvador alc
* @author Sanbec
* @author Savh
+ * @author Sethladan
* @author Shirayuki
* @author Spacebirdy
* @author Stephensuleeman
'tog-numberheadings' => 'Numerar automáticamente los encabezados',
'tog-showtoolbar' => 'Mostrar la barra de edición',
'tog-editondblclick' => 'Editar las páginas al pulsar dos veces en ellos con el ratón',
-'tog-editsection' => 'Activar la edición de secciones mediante el enlace [editar]',
'tog-editsectiononrightclick' => 'Activar la edición de secciones pulsando el botón derecho en los títulos de secciones',
-'tog-showtoc' => 'Mostrar el índice (para páginas con más de 3 encabezados)',
'tog-rememberpassword' => 'Recordar mi nombre de usuario y contraseña entre sesiones en este navegador (por un máximo de $1 {{PLURAL:$1|día|días}})',
'tog-watchcreations' => 'Añadir las páginas que cree y los archivos que suba a mi lista de seguimento',
'tog-watchdefault' => 'Añadir las páginas y archivos que edite a mi lista de seguimiento',
'retypenew' => 'Confirmar la contraseña nueva:',
'resetpass_submit' => 'Establecer contraseña e iniciar sesión',
'changepassword-success' => 'La contraseña ha sido cambiada con éxito.',
+'changepassword-throttled' => 'Has intentado acceder demasiadas veces.
+Espera $1 antes de intentarlo de nuevo.',
'resetpass_forbidden' => 'No se pueden cambiar las contraseñas',
'resetpass-no-info' => 'Debes iniciar sesión para acceder directamente a esta página.',
'resetpass-submit-loggedin' => 'Cambiar contraseña',
'changeemail-password' => 'Tu contraseña en {{SITENAME}}:',
'changeemail-submit' => 'Cambiar correo electrónico',
'changeemail-cancel' => 'Cancelar',
+'changeemail-throttled' => 'Has intentado acceder demasiadas veces.
+Espera $1 antes de intentarlo de nuevo.',
# Special:ResetTokens
'resettokens' => 'Restablecer claves',
'search-result-score' => 'Relevancia: $1%',
'search-redirect' => '(redirige desde $1)',
'search-section' => '(sección $1)',
+'search-file-match' => '(coincide con el contenido del archivo)',
'search-suggest' => 'Quizás quieres buscar: $1',
'search-interwiki-caption' => 'Proyectos hermanos',
'search-interwiki-default' => 'Resultados de $1:',
'watchmethod-list' => 'revisando las páginas vigiladas en busca de cambios recientes',
'watchlistcontains' => 'Tu lista de seguimiento posee $1 {{PLURAL:$1|página|páginas}}.',
'iteminvalidname' => "Problema con el artículo '$1', nombre inválido...",
-'wlnote' => "A continuación {{PLURAL:$1|se muestra el último cambio|se muestran los últimos '''$1''' cambios}} en {{PLURAL:$2|la última hora|las últimas '''$2''' horas}} a fecha de $4 $3.",
'wlshowlast' => 'Ver los cambios de las últimas $1 horas, $2 días $3',
'watchlist-options' => 'Opciones de la lista de seguimiento',
'delete-edit-reasonlist' => 'Editar razones de borrado',
'delete-toobig' => 'Esta página tiene un historial muy grande, con más de $1 {{PLURAL:$1|revisión|revisiones}}. Borrar este tipo de páginas ha sido restringido para prevenir posibles problemas en {{SITENAME}}.',
'delete-warning-toobig' => 'Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}. Eliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}. Ten cuidado al borrar.',
-'deleting-backlinks-warning' => "'''Advertencia:''' Hay enlaces desde otras páginas a la página que estás a punto de borrar.",
+'deleting-backlinks-warning' => "'''Advertencia:''' Otras páginas están enlazadas o son inclusión desde la página que estás por eliminar.",
# Rollback
'rollback' => 'Revertir ediciones',
'range_block_disabled' => 'La facultad de administrador de crear bloqueos por rangos está deshabilitada.',
'ipb_expiry_invalid' => 'El tiempo de caducidad no es válido.',
'ipb_expiry_temp' => 'Los bloqueos a nombres de usuario ocultos deben ser permanentes.',
-'ipb_hide_invalid' => 'Incapaz de suprimir esta cuenta; puede tener muchas ediciones.',
+'ipb_hide_invalid' => 'No se puede suprimir esta cuenta; tiene más de {{PLURAL:$1|una edición|$1 ediciones}}.',
'ipb_already_blocked' => '"$1" ya se encuentra bloqueado.',
'ipb-needreblock' => '$1 ya está bloqueado. ¿Quieres cambiar el bloqueo?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Otro bloqueo|Otros bloqueos}}',
'allmessages-prefix' => 'Filtrar por prefijo:',
'allmessages-language' => 'Idioma:',
'allmessages-filter-submit' => 'Ir',
+'allmessages-filter-translate' => 'Traducir',
# Thumbnails
'thumbnail-more' => 'Aumentar',
'tooltip-pt-watchlist' => 'Lista de páginas cuyos cambios vigilas',
'tooltip-pt-mycontris' => 'Lista de tus contribuciones',
'tooltip-pt-login' => 'Te recomendamos iniciar sesión, sin embargo no es obligatorio',
-'tooltip-pt-anonlogin' => 'Te invitamos a registrarte, aunque no es obligatorio',
'tooltip-pt-logout' => 'Salir de la sesión',
'tooltip-ca-talk' => 'Discusión acerca del artículo',
'tooltip-ca-edit' => 'Puedes editar esta página. Utiliza el botón de previsualización antes de guardar',
'markaspatrolledtext' => 'Marcar este artículo como revisado',
'markedaspatrolled' => 'Marcado como revisado',
'markedaspatrolledtext' => 'La revisión seleccionada de [[:$1|$1]] ha sido marcada como revisada.',
-'rcpatroldisabled' => 'Revisión de los Cambios Recientes deshabilitada',
+'rcpatroldisabled' => 'Se ha desactivado la supervisión de cambios recientes',
'rcpatroldisabledtext' => 'La capacidad de revisar los Cambios Recientes está deshabilitada en este momento.',
'markedaspatrollederror' => 'No se puede marcar como patrullada',
'markedaspatrollederrortext' => 'Debes especificar una revisión para marcarla como patrullada.',
'version-parser-function-hooks' => 'Extensiones de funciones sintácticas',
'version-hook-name' => 'Nombre de la extensión',
'version-hook-subscribedby' => 'Suscrito por',
-'version-version' => '(Versión $1)',
+'version-version' => '($1)',
'version-license' => 'Licencia de MediaWiki',
'version-ext-license' => 'Licencia',
'version-ext-colheader-name' => 'Extensión',
'expand_templates_generate_rawhtml' => 'Mostrar HTML en crudo',
'expand_templates_preview' => 'Previsualización',
+# Unknown messages
+'uploadinvalidxml' => 'No se pudo analizar el XML del archivo cargado.',
);
'tog-numberheadings' => 'Pealkirjade automaatnummerdus',
'tog-showtoolbar' => 'Näita redigeerimise tööriistariba',
'tog-editondblclick' => 'Redigeeri lehekülgi topeltklõpsu peale',
-'tog-editsection' => 'Näita alaosade redigeerimise linke',
'tog-editsectiononrightclick' => 'Alusta alaosa redigeerimist paremklõpsuga alaosa pealkirjal',
-'tog-showtoc' => 'Näita sisukorda (lehtedel, millel on rohkem kui 3 pealkirja)',
'tog-rememberpassword' => 'Parooli meeldejätmine tulevasteks seanssideks (kuni $1 {{PLURAL:$1|päevaks|päevaks}})',
'tog-watchcreations' => 'Lisa jälgimisloendisse minu alustatud leheküljed ja minu üles laaditud failid',
'tog-watchdefault' => 'Lisa jälgimisloendisse minu muudetud leheküljed ja failid',
'badtitle' => 'Vigane pealkiri',
'badtitletext' => 'Soovitud lehekülje pealkiri oli vigane, tühi või teisest keeleversioonist või vikist valesti lingitud.
See võib sisaldada ühte või enamat märki, mida ei saa pealkirjades kasutada.',
-'perfcached' => 'Järgnevad andmed on puhverdatud ja ei pruugi olla kõige värskemad. Puhvris on saadaval kuni {{PLURAL:$1|üks tulemus|$1 tulemust}}.',
+'perfcached' => 'Järgmised andmed on puhverdatud ja ei pruugi olla kõige värskemad. Puhvris on saadaval kuni {{PLURAL:$1|üks tulemus|$1 tulemust}}.',
'perfcachedts' => 'Järgmised andmed on vahemälus. Viimane uuendamisaeg: $2, kell $3. Puhvris on saadaval kuni {{PLURAL:$4|üks tulemus|$4 tulemust}}.',
'querypage-no-updates' => 'Lehekülje uuendamine ei ole hetkel lubatud ning andmeid ei värskendata.',
'viewsource' => 'Vaata lähteteksti',
'gotaccount' => "Kui sul on juba konto, '''$1'''.",
'gotaccountlink' => 'logi sisse',
'userlogin-resetlink' => 'Kas oled unustanud oma sisselogimisandmed?',
-'userlogin-resetpassword-link' => 'Unustasid parooli?',
+'userlogin-resetpassword-link' => 'Kas unustasid parooli?',
'helplogin-url' => 'Help:Sisselogimine',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Sisselogimisabi]]',
'userlogin-loggedin' => 'Oled juba sisse logitud nimega {{GENDER:$1|$1}}.
Seetõttu ei saa seda IP-aadressi kasutades hetkel rohkem kontosid luua.',
'emailauthenticated' => 'Sinu e-posti aadressi kinnitamisaeg: $2 kell $3.',
'emailnotauthenticated' => 'Sinu e-posti aadress pole veel kinnitatud.
-Järgnevate funktsioonidega seotud e-kirju ei saadeta.',
-'noemailprefs' => 'Järgnevate võimaluste toimimiseks on vaja sisestada e-posti aadress.',
+Järgmiste funktsioonidega seotud e-kirju ei saadeta.',
+'noemailprefs' => 'Järgmiste võimaluste toimimiseks on vaja määrata e-posti aadress.',
'emailconfirmlink' => 'Kinnita oma e-posti aadress',
'invalidemailaddress' => 'E-posti aadress ei ole aktsepteeritav, sest see on vigaselt kirjutatud.
Ole hea ja sisesta õige e-posti aadress või jäta väli tühjaks.',
'resetpass_submit' => 'Sisesta parool ja logi sisse',
'changepassword-success' => 'Sinu parool on edukalt muudetud!
Sind logitakse nüüd sisse...',
+'changepassword-throttled' => 'Oled hiljuti proovinud liiga palju kordi sisse logida.
+Palun oota $1, enne kui uuesti proovid.',
'resetpass_forbidden' => 'Paroole ei saa muuta',
'resetpass-no-info' => 'Pead olema sisselogitud, et sellele lehele pääseda.',
'resetpass-submit-loggedin' => 'Muuda parool',
'changeemail-password' => 'Sinu parool {{GRAMMAR:inessive|{{SITENAME}}}}:',
'changeemail-submit' => 'Muuda e-posti aadress',
'changeemail-cancel' => 'Loobu',
+'changeemail-throttled' => 'Oled proovinud liiga palju kordi sisse logida.
+Palun oota $1, enne kui uuesti proovid.',
# Special:ResetTokens
'resettokens' => 'Lubade lähtestamine',
'cascadeprotectedwarning' => "'''Hoiatus:''' See lehekülg on nii lukustatud, et ainult administraatori õigustega kasutajad saavad seda redigeerida, sest lehekülg on osa {{PLURAL:$1|järgmisest|järgmisest}} kaskaadkaitsega {{PLURAL:$1|leheküljest|lehekülgedest}}:",
'titleprotectedwarning' => "'''Hoiatus: See lehekülg on nii lukustatud, et selle loomiseks on tarvis [[Special:ListGroupRights|eriõigusi]].'''
Allpool on toodud uusim logisissekanne:",
-'templatesused' => 'Sellel leheküljel on kasutusel {{PLURAL:$1|järgnev mall|järgnevad mallid}}:',
+'templatesused' => 'Sellel leheküljel on kasutusel {{PLURAL:$1|järgmine mall|järgmised mallid}}:',
'templatesusedpreview' => 'Eelvaates {{PLURAL:$1|kasutatav mall|kasutatavad mallid}}:',
'templatesusedsection' => 'Selles alaosas {{PLURAL:$1|kasutatav mall|kasutatavad mallid}}:',
'template-protected' => '(kaitstud)',
'sectioneditnotsupported-text' => 'Sellel leheküljel pole alaosa redigeerimine lubatud.',
'permissionserrors' => 'Loatõrge',
'permissionserrorstext' => 'Sul pole õigust seda teha {{PLURAL:$1|järgmisel põhjusel|järgmistel põhjustel}}:',
-'permissionserrorstext-withaction' => 'Sul pole lubatud {{lcfirst:$2}} {{PLURAL:$1|järgneval põhjusel|järgnevatel põhjustel}}:',
+'permissionserrorstext-withaction' => 'Sul pole lubatud {{lcfirst:$2}} {{PLURAL:$1|järgmisel põhjusel|järgmistel põhjustel}}:',
'recreate-moveddeleted-warn' => "'''Hoiatus: Lood uuesti lehekülge, mis on varem kustutatud.'''
Kaalu, kas lehekülje uuesti loomine on kohane.
'revdelete-text' => "'''Kustutatud redaktsioonid ja sündmused kajastuvad endiselt lehekülje ajaloos ja logides, kuid osa nende sisust pole avalikult nähtav.'''
{{GRAMMAR:genitive|{{SITENAME}}}} administraatorid saavad peidetud sisu siiski vaadata ning seda vajadusel selle liidese kaudu taastada, kui see pole just täiendavalt keelatud.",
'revdelete-confirm' => 'Kinnita, et soovid tõesti seda teha ning et saad aru tagajärgedest ja tegevus on kooskõlas [[{{MediaWiki:Policy-url}}|siinsete kokkulepetega]].',
-'revdelete-suppress-text' => "Andmed tuleks varjata '''ainult''' järgnevatel juhtudel:
-* Võimalik laim
-* Sobimatu isiklik teave
+'revdelete-suppress-text' => "Andmed tuleks varjata '''ainult''' järgmistel juhtudel:
+* võimalik laim
+* sobimatu isiklik teave
*: ''kodune aadress ja telefoninumber, isikukood jne''",
'revdelete-legend' => 'Nähtavuse piirangute seadmine',
'revdelete-hide-text' => 'Redaktsiooni tekst',
'upload-recreate-warning' => "'''Hoiatus: Sellise nimega fail on kustutatud või teisaldatud.'''
Selle lehe kustutamis- ja teisaldamislogi on kuvatud siin:",
-'uploadtext' => "Kasuta allpool olevat vormi failide üleslaadimiseks.
-Et näha või leida eelnevalt üles laaditud faile vaata [[Special:FileList|failide loendit]].
+'uploadtext' => "Kasuta allpool olevat vormi, et faile üles laadida.
+Et näha või leida varem üles laaditud faile, vaata [[Special:FileList|failide loendit]].
Üleslaadimiste ajalugu saab uurida [[Special:Log/upload|üleslaadimislogist]], kustutamiste ajalugu [[Special:Log/delete|kustutamislogist]].
-Faili lisamiseks artiklile kasuta linki ühel kujul järgnevatest.
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></code>''', et lisada täissuuruses pilt.
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|kirjeldus]]</nowiki></code>''', et lisada lehekülje vasakusse serva raamiga 200 piksli laiune pisipilt koos pildiallkirjaga (''kirjeldus'').
-* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></code>''', et linkida otse failile ilma seda kuvamata.",
+Et lisada fail artiklile, kasuta üht järgmistest süntaksitest:
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></code>''', et lisada täissuuruses pilt
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|kirjeldus]]</nowiki></code>''', et lisada lehekülje vasakusse serva raamiga 200 piksli laiune pisipilt koos pildiallkirjaga (''kirjeldus'')
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></code>''', et linkida otse failile ilma seda kuvamata",
'upload-permitted' => 'Lubatud failitüübid: $1.',
'upload-preferred' => 'Eelistatud failitüübid: $1.',
'upload-prohibited' => 'Keelatud failitüübid: $1.',
'fileexists-shared-forbidden' => 'Samanimeline fail on juba olemas jagatud meediavaramus.
Kui soovid siiski oma faili üles laadida, siis palun mine tagasi ja kasuta teist failinime.
[[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => 'See fail on {{PLURAL:$1|järgneva faili|järgnevate failide}} duplikaat:',
+'file-exists-duplicate' => 'See fail on {{PLURAL:$1|järgmise faili|järgmiste failide}} duplikaat:',
'file-deleted-duplicate' => 'Selle failiga ([[:$1]]) identne fail on hiljuti kustutatud.
Vaata selle faili kustutamise ajalugu enne jätkamist.',
'file-deleted-duplicate-notitle' => 'Selle failiga identne fail on varem kustutatud ja pealkiri on varjatud.
'filehist-missing' => 'Fail puudub',
'imagelinks' => 'Failikasutus',
'linkstoimage' => 'Sellele pildile {{PLURAL:$1|viitab järgmine lehekülg|viitavad järgmised leheküljed}}:',
-'linkstoimage-more' => 'Sellele failile viitab enam kui $1 {{PLURAL:$1|lehekülg|lehekülge}}.
-Järgnevas loetelus on kuvatud ainult {{PLURAL:$1|esimene viitav lehekülg|esimesed $1 viitavat lehekülge}}.
+'linkstoimage-more' => 'Sellele failile viitab enam kui {{PLURAL:$1|üks lehekülg|$1 lehekülge}}.
+Järgmises loendis on näidatud ainult {{PLURAL:$1|esimene viitav lehekülg|esimesed $1 viitavat lehekülge}}.
[[Special:WhatLinksHere/$2|Kogu loetelu]] on saadaval.',
'nolinkstoimage' => 'Sellele pildile ei viita ükski lehekülg.',
'morelinkstoimage' => 'Vaata [[Special:WhatLinksHere/$1|veel linke]], mis sellele failile viitavad.',
'linkstoimage-redirect' => '$1 (failiümbersuunamine) $2',
-'duplicatesoffile' => '{{PLURAL:$1|Järgnev fail|Järgnevad $1 faili}} on selle faili {{PLURAL:$1|duplikaat|duplikaadid}} ([[Special:FileDuplicateSearch/$2|üksikasjad]]):',
+'duplicatesoffile' => '{{PLURAL:$1|Järgmine fail|Järgmised $1 faili}} on selle faili {{PLURAL:$1|duplikaat|duplikaadid}} ([[Special:FileDuplicateSearch/$2|üksikasjad]]):',
'sharedupload' => 'See fail pärineb allikast $1 ning võib olla kasutusel ka teistes projektides.',
'sharedupload-desc-there' => 'See fail pärineb kesksest failivaramust $1. Palun vaata [$2 faili kirjelduse lehekülge], et saada rohkem teavet.',
'sharedupload-desc-here' => 'See on jagatud fail allikast $1 ja seda saab kasutada ka teistes projektides. Faili sealne [$2 kirjeldus] on kuvatud allpool.',
'ancientpages' => 'Vanimad leheküljed',
'move' => 'Teisalda',
'movethispage' => 'Muuda pealkirja',
-'unusedimagestext' => 'Järgnevad failid on olemas, aga pole ühelegi leheküljele lisatud.
+'unusedimagestext' => 'Järgmised failid on olemas, aga pole ühelegi leheküljele lisatud.
Pane tähele, et teised võrgukohad võivad viidata failile otselingiga ja seega võivad siin toodud failid olla ikkagi aktiivses kasutuses.',
'unusedcategoriestext' => 'Need kategooriad pole ühelgi leheküljel ega teises kategoorias kasutuses.',
'notargettitle' => 'Puudub sihtlehekülg',
'watchmethod-list' => 'jälgitavate lehekülgede viimased muudatused',
'watchlistcontains' => 'Sinu jälgimisloendis on $1 {{PLURAL:$1|lehekülg|lehekülge}}.',
'iteminvalidname' => "Probleem üksusega '$1'. Selle nimes on viga.",
-'wlnote' => "Allpool on {{PLURAL:$1|viimane muudatus|viimased '''$1''' muudatust}} viimase {{PLURAL:$2|tunni|'''$2''' tunni}} jooksul seisuga $3, $4.",
'wlshowlast' => 'Näita viimast $1 tundi $2 päeva. $3',
'watchlist-options' => 'Jälgimisloendi seaded',
Selle kustutamine on keelatud, et ära hoida ekslikku {{GRAMMAR:genitive|{{SITENAME}}}} töö häirimist.',
'delete-warning-toobig' => 'See lehekülg on pika redigeerimislooga – üle {{PLURAL:$1|ühe muudatuse|$1 muudatuse}}.
Ettevaatust, selle kustutamine võib esile kutsuda häireid {{GRAMMAR:genitive|{{SITENAME}}}} andmebaasi töös.',
-'deleting-backlinks-warning' => "'''Hoiatus:''' Teised leheküljed viitavad leheküljele, mida oled kustutamas.",
+'deleting-backlinks-warning' => "'''Hoiatus:''' Teised leheküljed viitavad leheküljele, mida oled kustutamas, või see lehekülg on kasutuses mallina.",
# Rollback
'rollback' => 'Tühista muudatused',
'undeletepage' => 'Kustutatud lehekülgede vaatamine ja taastamine',
'undeletepagetitle' => "'''Kustutatud redaktsioonid leheküljest [[:$1|$1]]'''.",
'viewdeletedpage' => 'Kustutatud lehekülgede vaatamine',
-'undeletepagetext' => '{{PLURAL:$1|Järgnev lehekülg on kustutatud|Järgnevad leheküljed on kustutatud}}, kuid arhiivis veel olemas ja taastatavad. Arhiivi sisu kustutatakse perioodiliselt.',
+'undeletepagetext' => '{{PLURAL:$1|Järgmine lehekülg|Järgmised leheküljed}} on kustutatud, kuid arhiivis veel olemas ja taastatavad.
+Arhiivi sisu võidakse perioodiliselt kustutada.',
'undelete-fieldset-title' => 'Redaktsioonide taastamine',
'undeleteextrahelp' => "Kogu lehe ja selle ajaloo taastamiseks jäta kõik linnukesed tühjaks ja vajuta '''''{{int:undeletebtn}}'''''.
Et taastada valikuliselt, tee linnukesed kastidesse, mida soovid taastada ja vajuta '''''{{int:undeletebtn}}'''''.",
'range_block_disabled' => 'Administraatori õigus blokeerida IP-aadresside vahemik on ära võetud.',
'ipb_expiry_invalid' => 'Vigane aegumise tähtaeg.',
'ipb_expiry_temp' => 'Peidetud kasutajanime blokeeringud peavad olema alalised.',
-'ipb_hide_invalid' => 'Selle konto varjamine ei õnnestunud. Sellelt võib olla tehtud liiga palju redigeerimisi.',
+'ipb_hide_invalid' => 'Seda kontot ei saa varjata, sest sellega on tehtud üle {{PLURAL:$1|ühe|$1}} muudatuse.',
'ipb_already_blocked' => '"$1" on juba blokeeritud.',
'ipb-needreblock' => '$1 on juba blokeeritud.
Kas soovid muuta blokeeringu sätteid?',
'tooltip-pt-watchlist' => 'Lehekülgede loend, mille muudatusi jälgid',
'tooltip-pt-mycontris' => 'Sinu kaastööde loend',
'tooltip-pt-login' => 'Me julgustame teid sisse logima, kuid see pole kohustuslik.',
-'tooltip-pt-anonlogin' => 'Me julgustame teid sisse logima, kuid see pole kohustuslik.',
'tooltip-pt-logout' => 'Logi välja',
'tooltip-ca-talk' => 'Selle artikli arutelu',
'tooltip-ca-edit' => 'Sa saad seda lehekülge muuta. Palun kasuta enne salvestamist eelvaadet.',
'spamprotectiontitle' => 'Spämmitõrjefilter',
'spamprotectiontext' => 'Rämpspostifilter oli lehekülje, mida sa salvestada tahtsid, blokeerinud.
See on ilmselt põhjustatud linkimisest mustas nimekirjas olevasse välisvõrgukohta.',
-'spamprotectionmatch' => 'Järgnev tekst vallandas meie rämpspostifiltri: $1',
+'spamprotectionmatch' => 'Järgmine tekst vallandas meie rämpspostifiltri: $1',
'spambot_username' => 'MediaWiki spämmieemaldus',
'spam_reverting' => 'Taastan viimase versiooni, mis ei sisalda linke aadressile $1.',
'spam_blanking' => 'Kõik versioonid sisaldasid linke veebilehele $1. Lehekülg tühjendatud.',
# Special:NewFiles
'newimages' => 'Uute failide galerii',
-'imagelisttext' => "
-Järgnevas loendis, mis on sorteeritud $2, on '''$1''' {{PLURAL:$1|fail|faili}}.",
+'imagelisttext' => "Allpool on {{PLURAL:$1|'''ühe''' fail|'''$1''' faili}} $2 järjestatud loend.",
'newimages-summary' => 'Sellel erilehel on viimati üles laaditud failid.',
'newimages-legend' => 'Filter',
'newimages-label' => 'Failinimi (või selle osa):',
'confirmemail_subject' => '{{GRAMMAR:genitive|{{SITENAME}}}} e-posti aadressi kinnitamine',
'confirmemail_body' => 'Keegi IP-aadressilt $1, ilmselt sa ise, registreeris selle e-posti aadressiga {{GRAMMAR:inessive|{{SITENAME}}}} konto "$2".
-Kinnitamaks, et see kasutajakonto tõepoolest kuulub sulle ning e-posti teenuste aktiveerimiseks, ava oma võrgulehitsejas järgnev link:
+Kinnitamaks, et see kasutajakonto tõepoolest kuulub sulle ning e-posti teenuste aktiveerimiseks, ava oma võrgulehitsejas järgmine link:
$3
-Kui see *pole* sinu loodud konto, ava järgnev link kinnituse tühistamiseks:
+Kui see *pole* sinu loodud konto, ava järgmine link kinnituse tühistamiseks:
$5
'confirmemail_body_changed' => 'Keegi IP-aadressilt $1, ilmselt sa ise,
muutis {{GRAMMAR:inessive|{{SITENAME}}}} konto "$2" e-posti aadressiks selle aadressi.
-Kinnitamaks, et see konto tõepoolest kuulub sulle ja e-posti teenuste taasaktiveerimiseks, ava oma veebilehitsejas järgnev link:
+Kinnitamaks, et see konto tõepoolest kuulub sulle ja e-posti teenuste taasaktiveerimiseks, ava oma veebilehitsejas järgmine link:
$3
-Kui see *pole* sinu konto, ava järgnev link
+Kui see *pole* sinu konto, ava järgmine link
kinnituse tühistamiseks:
$5
'version-parser-function-hooks' => 'Parserifunktsioonid',
'version-hook-name' => 'Haagi nimi',
'version-hook-subscribedby' => 'Tellijad',
-'version-version' => '(Versioon $1)',
+'version-version' => '($1)',
'version-license' => 'MediaWiki litsents',
'version-ext-license' => 'Litsents',
'version-ext-colheader-name' => 'Lisa',
# HTML forms
'htmlform-invalid-input' => 'Osaga sinu sisestatust on probleeme',
-'htmlform-select-badoption' => 'Antud number ei ole kõlbulik.',
+'htmlform-select-badoption' => 'Antud väärtus ei sobi.',
'htmlform-int-invalid' => 'Antud väärtus ei ole täisarv.',
'htmlform-float-invalid' => 'Määratud väärtus ei ole arvuline.',
'htmlform-int-toolow' => 'Antud suurus on väiksem kui minimaalne $1',
'tog-numberheadings' => 'Goiburukoak automatikoki zenbakitu',
'tog-showtoolbar' => 'Aldaketen tresna-barra erakutsi',
'tog-editondblclick' => 'Klik bikoitzaren bitartez orrialdeak aldatu',
-'tog-editsection' => 'Atalak [aldatu] loturen bitartez aldatzeko aukera gaitu',
'tog-editsectiononrightclick' => 'Atalen izenburuetan eskuin klik eginez aldatzea gaitu',
-'tog-showtoc' => 'Edukien taula erakutsi (3 goiburukotik gorako orrialdeentzako)',
'tog-rememberpassword' => 'Nire saioa ordenagailu honetan gorde ({{PLURAL:$1|egun baterako| $1 egunerako}} gehienez)',
'tog-watchcreations' => 'Sortzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
'tog-watchdefault' => 'Aldatzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
Ez du arrazoirik eman.',
'no-null-revision' => 'Ezin izan da "$1" orrialdearen berrikuspen huts bat sortu',
'badtitle' => 'Izenburu ezegokia',
-'badtitletext' => 'Eskatutako orrialde izenburua ez da baliozkoa, hutsik dago, edo gaizki lotutako hizkuntzen arteko lotura da. Baliteke izenburuetan erabili ezin den karaktereren bat izatea.',
+'badtitletext' => 'Eskatutako orri izenburua ez da baliozkoa, hutsik dago, edo gaizki lotutako hizkuntzen arteko lotura da. Baliteke izenburuetan erabili ezin den karaktereren bat edukitzea.',
'perfcached' => 'Hurrengo datuak katxean gordeta daude eta litekeena da guztiz eguneratuta ez egotea. Gehienez {{PLURAL:$1|emaitza 1 dago|$1 emaitza daude}} eskuragarri katxean.',
'perfcachedts' => 'Hurrengo datuak katxean daude, $1 eguneratu zen azkenekoz. {{PLURAL:$4|emaitza 1 dago|$4 emaitza daude}} eskuragarri katxean.',
'querypage-no-updates' => 'Orrialde honen berritzeak ez dira baimentzen. Hemen dagoen data ez da zuzenean berrituko.',
'last' => 'azkena',
'page_first' => 'lehena',
'page_last' => 'azkena',
-'histlegend' => 'Diff hautapena: hautatu alderatu nahi dituzun bi bertsioak eta beheko botoian klik egin.<br />
-Legenda: (orain) = oraingo bertsioarekiko ezberdintasuna,
-(azkena) = aurreko bertsioarekiko ezberdintasuna, t = aldaketa txikia.',
+'histlegend' => "Alderaketa hautatzea: marka itzazu alderatu nahi dituzun bi bertsioak, eta saka ezazu «Enter» edo klika ezazu beheko botoia.<br />
+Azalpenak: '''({{int:cur}})''' = oraingo bertsioarekiko aldeak,
+'''({{int:last}})''' = aurreko bertsioarekiko aldeak,
+'''{{int:minoreditletter}}''' = aldaketa txikia.",
'history-fieldset-title' => 'Historia erakutsi',
'history-show-deleted' => 'Ezabatuak soilik',
'histfirst' => 'zaharrena',
# Diffs
'history-title' => '«$1» orrialdearen historia berrikuspena',
'difference-title' => '«$1»: berrikuspenen arteko aldeak',
-'difference-title-multipage' => '"$1" eta "$2" orrialdeen arteko ezberditasunak',
+'difference-title-multipage' => '«$1» eta «$2» orrien arteko aldeak',
'difference-multipage' => '(Orrien arteko aldeak)',
'lineno' => '$1. lerroa:',
'compareselectedversions' => 'Hautatutako bertsioak alderatu',
'recentchangeslinked' => 'Lotutako orrietako aldaketak',
'recentchangeslinked-feed' => 'Lotutako orrietako aldaketak',
'recentchangeslinked-toolbox' => 'Lotutako orrietako aldaketak',
-'recentchangeslinked-title' => '"$1"(e)kin harremanetan dauden aldaketak',
+'recentchangeslinked-title' => '«$1»(e)kin harremanetan dauden aldaketak',
'recentchangeslinked-summary' => "Zerrenda honetan zehazturiko orrialde bati (edo kategoria berezi bateko azkeneko kideei) lotura duten orrietan eginiko azken aldaketak agertzen dira.
[[Special:Watchlist|Zurre jarraitze zerrenda]]n agertzen diren orrialdeak '''beltze'''z agertzen dira.",
'recentchangeslinked-page' => 'Orriaren izena:',
'allinnamespace' => 'Orrialde guztiak ($1 izen-tartea)',
'allpagessubmit' => 'Joan',
'allpagesprefix' => 'Aurrizki hau duten orrialdeak bistaratu:',
-'allpagesbadtitle' => 'Orrialdearen izena baliogabekoa da edo interwiki edo hizkuntzen arteko aurrizkia dauka. Izenburuetan erabili ezin daitezkeen karaktere bat edo gehiago izan ditzake.',
+'allpagesbadtitle' => 'Orriaren izena baliogabea da, edo interwiki edo hizkuntzen arteko aurrizkia dauka.
+Baliteke izenburuetan erabili ezin daitekeen karaktere bat edo gehiago edukitzea.',
'allpages-bad-ns' => '{{SITENAME}}(e)k ez dauka "$1" izeneko izen-tarterik.',
'allpages-hide-redirects' => 'Birzuzenketak ezkutatu',
'watchmethod-list' => 'jarraipen zerrendako orrialdeak aldaketa berrien bila aztertzen',
'watchlistcontains' => 'Zure jarraipen zerrendak {{PLURAL:$1|orrialde $1 du|$1 orrialde ditu}}.',
'iteminvalidname' => "Arazoa '$1' elementuarekin, baliogabeko izena...",
-'wlnote' => "Jarraian {{PLURAL:$2|ikus daiteke azken orduko|ikus daitezke azken '''$2''' orduetako}} azken {{PLURAL:$1|aldaketa|'''$1''' aldaketak}}, $3, $4 gisa.",
'wlshowlast' => 'Erakutsi azken $1 orduak $2 egunak $3',
'watchlist-options' => 'Jarraitze-zerrendaren aukerak',
'modifiedarticleprotection' => '"[[$1]]"(r)en babes maila aldatu da',
'unprotectedarticle' => '"[[$1]]"-(r)i babesa kendu zaio',
'movedarticleprotection' => 'babes hobespenak "[[$2]]"tik "[[$1]]"(e)ra mugitu dira',
-'protect-title' => '"$1" babesten',
+'protect-title' => '«$1» babesten',
'protect-title-notallowed' => '"$1"en babes maila ikusi',
'prot_1movedto2' => '$1 izenburua $2(r)engatik aldatu da',
'protect-badnamespace-title' => 'Izen-tarte ez babesgarria',
'importnotext' => 'Hutsik dago edo testurik gabe',
'importsuccess' => 'Inportazioa burutu da!',
'importhistoryconflict' => 'Gatazka sortzen ari den berrikuspen historia dago (baliteke orrialdea lehenago inportatu izana)',
-'importnosources' => 'Ez dago wikien arteko inportazio iturririk eta historialak zuzenean igotzea ezgaituta dago.',
+'importnosources' => 'Ez dago wikien arteko inportazio iturririk definituta, eta historialak zuzenean igotzea ezgaituta dago.',
'importnofile' => 'Ez da inportazio fitxategirik igo.',
'importuploaderrorsize' => 'Inportatutako artxiboaren igoera-porrota.
Artxiboa onartutako igoera-tamaina baino handiagoa da.',
'tooltip-pt-watchlist' => 'Jarraitzen dituzun orrialdeen zerrenda.',
'tooltip-pt-mycontris' => 'Nire ekarpenen zerrenda',
'tooltip-pt-login' => 'Izen ematera gonbidatzen zaitugu.',
-'tooltip-pt-anonlogin' => 'Izen ematera gonbidatzen zaitugu.',
'tooltip-pt-logout' => 'Saioa itxi',
'tooltip-ca-talk' => 'Artikuluari buruzko eztabaida',
'tooltip-ca-edit' => 'Artikulu hau aldatu dezakezu. Mesedez, aurrebista botoia erabil ezazu gorde baino lehen.',
# Special:SpecialPages
'specialpages' => 'Orri bereziak',
-'specialpages-note-top' => 'Legenda',
+'specialpages-note-top' => 'Azalpenak',
'specialpages-note' => '* Orri berezi arruntak.
* <strong class="mw-specialpagerestricted">Mugatutako orri bereziak.</strong>',
'specialpages-group-maintenance' => 'Mantentze-oharrak',
* @author Dalba
* @author E THP
* @author Ebraminio
+ * @author Fatemi127
* @author Goudarz
* @author Huji
* @author Ibrahim
'tog-numberheadings' => 'شمارهگذاری خودکار عنوانها',
'tog-showtoolbar' => 'نوار ابزار جعبهٔ ویرایش نمایش یابد',
'tog-editondblclick' => 'ویرایش صفحهها با دوکلیک (نیازمند جاوااسکریپت)',
-'tog-editsection' => 'ویرایش بخشها از طریق پیوندهای [ویرایش] فعال باشد',
'tog-editsectiononrightclick' => 'امکان ویرایش بخشها با کلیک راست روی عنوانهای بخش (نیازمند جاوااسکریپت)',
-'tog-showtoc' => 'فهرست مندرجات نمایش یابد (برای صفحههای دارای بیش از ۳ عنوان)',
'tog-rememberpassword' => 'گذرواژهٔ من (حداکثر $1 {{PLURAL:$1|روز|روز}}) در این مرورگر به خاطر سپرده شود',
'tog-watchcreations' => 'صفحههایی که میسازم و پروندههایی که بارگذاری میکنم به فهرست پیگیریهایم افزوده شود',
'tog-watchdefault' => 'صفحهها و پروندههایی که ویرایش میکنم به فهرست پیگیریهایم افزوده شود',
'retypenew' => 'گذرواژهٔ جدید را دوباره وارد کنید',
'resetpass_submit' => 'تنظیم گذرواژه و ورود به سامانه',
'changepassword-success' => 'گذرواژهٔ شما با موفقیت تغییر داده شد!',
+'changepassword-throttled' => 'شما به تازگی چندینبار برای ثبت ورود تلاش کردهاید.
+لطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.',
'resetpass_forbidden' => 'نمیتوان گذرواژهها را تغییر داد',
'resetpass-no-info' => 'برای دسترسی مستقیم به این صفحه شما باید به سامانه وارد شده باشید.',
'resetpass-submit-loggedin' => 'تغییر گذرواژه',
'changeemail-password' => ' {{SITENAME}} رمز عبور شما:',
'changeemail-submit' => 'تغییر رایانامه',
'changeemail-cancel' => 'انصراف',
+'changeemail-throttled' => 'شما به مراتب برای ورود تلاش کردهاید.
+لطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.',
# Special:ResetTokens
'resettokens' => 'بازنشانی شناسانندهها',
'watchmethod-list' => 'بررسی صفحههای مورد پیگیری برای ویرایشهای اخیر',
'watchlistcontains' => 'فهرست پیگیریهای شما حاوی $1 {{PLURAL:$1|صفحه|صفحه}} است.',
'iteminvalidname' => 'مشکل با مورد «$1»، نام نامعتبر است...',
-'wlnote' => 'در زیر {{PLURAL:$1|تغییری|$1 تغییری}} که در {{PLURAL:$2|ساعت|$2 ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4',
'wlshowlast' => 'نمایش آخرین $1 ساعت $2 روز $3',
'watchlist-options' => 'گزینههای پیگیری',
'range_block_disabled' => 'بستن یک بازه توسط مدیران غیر فعال است.',
'ipb_expiry_invalid' => 'زمان سرآمدن نامعتبر.',
'ipb_expiry_temp' => 'قطع دسترسی کاربرهای پهنان باید همیشگی باشد.',
-'ipb_hide_invalid' => 'Ù\86اتÙ\88اÙ\86 از Ù\81رÙ\88Ù\86شاÙ\86دÙ\86 اÛ\8cÙ\86 ØسابØ\9b شاÛ\8cد Ù\88Û\8cراÛ\8cØ´â\80\8cÙ\87اÛ\8c زÛ\8cادÛ\8c دارد.',
+'ipb_hide_invalid' => 'Ù\82ادر بÙ\87 سرکÙ\88ب اÛ\8cÙ\86 Øساب Ù\86Û\8cست; اÛ\8cÙ\86 بÛ\8cشتر از {{PLURAL:$1|Û\8cÚ© Ù\88Û\8cراÛ\8cØ´|$1 Ù\88Û\8cراÛ\8cØ´â\80\8cÙ\87ا}} دارد.',
'ipb_already_blocked' => '«$1» همین الان هم بستهاست',
'ipb-needreblock' => 'دسترسی $1 از قبل بسته است. آیا میخواهید تنظیمات آن را تغییر دهید؟',
'ipb-otherblocks-header' => 'سایر {{PLURAL:$1|قطع دسترسیها|قطع دسترسیها}}',
'allmessages-prefix' => 'پالودن بر اساس پسوند:',
'allmessages-language' => 'زبان:',
'allmessages-filter-submit' => 'برو',
+'allmessages-filter-translate' => 'ترجمه',
# Thumbnails
'thumbnail-more' => 'بزرگکردن',
'tooltip-pt-watchlist' => 'فهرست صفحههایی که شما تغییرات آنها را پیگیری میکنید',
'tooltip-pt-mycontris' => 'فهرست مشارکتهای شما',
'tooltip-pt-login' => 'توصیه میشود که به سامانه وارد شوید، گرچه اجباری نیست',
-'tooltip-pt-anonlogin' => 'توصیه میشود که به سامانه وارد شوید، لیکن اجباری نیست',
'tooltip-pt-logout' => 'خروج از سامانه',
'tooltip-ca-talk' => 'گفتگو پیرامون محتوای صفحه',
'tooltip-ca-edit' => 'شما میتوانید این صفحه را ویرایش کنید. لطفاً پیش از ذخیره از دکمهٔ پیشنمایش استفاده کنید.',
'expand_templates_preview' => 'پیشنمایش',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => 'XML در پروندهٔ بارگذاریشده نمیتواند تجزیه شود.',
);
'tog-numberheadings' => 'Numeroi otsikot automaattisesti',
'tog-showtoolbar' => 'Näytä työkalupalkki',
'tog-editondblclick' => 'Muokkaa sivuja kaksoisnapsautuksella',
-'tog-editsection' => 'Näytä muokkauslinkit jokaisen osion yläpuolella',
'tog-editsectiononrightclick' => 'Muokkaa osioita napsauttamalla osion otsikkoa hiiren oikealla painikkeella',
-'tog-showtoc' => 'Näytä sisällysluettelo (sivuilla, joilla on yli kolme otsikkoa)',
'tog-rememberpassword' => 'Muista kirjautuminen tässä selaimessa (enintään $1 {{PLURAL:$1|päivä|päivää}})',
'tog-watchcreations' => 'Lisää luomani sivut ja tallentamani tiedostot tarkkailulistalleni',
'tog-watchdefault' => 'Lisää muokkaamani sivut ja tiedostot tarkkailulistalleni',
'retypenew' => 'Uusi salasana uudelleen:',
'resetpass_submit' => 'Aseta salasana ja kirjaudu sisään',
'changepassword-success' => 'Salasanan vaihto onnistui.',
+'changepassword-throttled' => 'Olet tehnyt liian monta äskettäistä kirjautumisyritystä.
+Odota $1 ennen kuin yrität uudelleen.',
'resetpass_forbidden' => 'Salasanoja ei voi vaihtaa.',
'resetpass-no-info' => 'Et voi nähdä tätä sivua kirjautumatta sisään.',
'resetpass-submit-loggedin' => 'Muuta salasana',
'changeemail-password' => 'Salasanasi sivustolla {{SITENAME}}',
'changeemail-submit' => 'Muuta sähköpostiosoite',
'changeemail-cancel' => 'Peruuta',
+'changeemail-throttled' => 'Olet tehnyt liian monta kirjautumisyritystä.
+Odota $1 ennen kuin yrität uudelleen.',
# Special:ResetTokens
'resettokens' => 'Uudista avaimet',
'search-result-score' => 'Asiaankuuluvuus: $1%',
'search-redirect' => '(ohjaus $1)',
'search-section' => '(osio $1)',
+'search-file-match' => '(vastaa tiedoston sisältöä)',
'search-suggest' => 'Tarkoititko: $1',
'search-interwiki-caption' => 'Sisarprojektit',
'search-interwiki-default' => 'Tulokset osoitteesta $1:',
'watchmethod-list' => 'tarkistetaan tarkkailtujen sivujen tuoreimmat muutokset',
'watchlistcontains' => 'Tarkkailulistallasi on {{PLURAL:$1|yksi sivu|$1 sivua}}.',
'iteminvalidname' => 'Sivun $1 kanssa oli ongelmia. Sivun nimessä on vikaa.',
-'wlnote' => "Alla on {{PLURAL:$1|yksi muutos|'''$1''' muutosta}} viimeisen {{PLURAL:$2|tunnin|'''$2''' tunnin}} ajalta $3 kello $4 asti.",
'wlshowlast' => 'Näytä viimeiset $1 tuntia tai $2 päivää, $3',
'watchlist-options' => 'Tarkkailulistan asetukset',
'delete-edit-reasonlist' => 'Muokkaa poistosyitä',
'delete-toobig' => 'Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistamista on rajoitettu suorituskykysyistä.',
'delete-warning-toobig' => 'Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistaminen voi haitata sivuston suorituskykyä.',
-'deleting-backlinks-warning' => "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa linkkejä muilta sivuilta.",
+'deleting-backlinks-warning' => "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa linkkejä muilta sivuilta, tai sivu on sisällytetty muuhun sivuun.",
# Rollback
'rollback' => 'palauta aiempaan versioon',
'range_block_disabled' => 'Ylläpitäjien mahdollisuus asettaa avaruusestoja on poistettu käytöstä.',
'ipb_expiry_invalid' => 'Virheellinen päättymisaika.',
'ipb_expiry_temp' => 'Piilotettujen käyttäjätunnusten estojen tulee olla pysyviä.',
-'ipb_hide_invalid' => 'Tämän tunnuksen piilottaminen ei onnistu. Sillä saattaa olla liikaa muokkauksia.',
+'ipb_hide_invalid' => 'Tämän tunnuksen piilottaminen ei onnistu; sillä on enemmän kuin {{PLURAL:$1|yksi muokkaus|$1 muokkausta}}.',
'ipb_already_blocked' => '”$1” on jo estetty.',
'ipb-needreblock' => '$1 on jo estetty. Haluatko muuttaa eston asetuksia?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Muu esto|Muut estot}}',
'allmessages-prefix' => 'Suodata etuliitteellä',
'allmessages-language' => 'Kieli:',
'allmessages-filter-submit' => 'Siirry',
+'allmessages-filter-translate' => 'Käännä',
# Thumbnails
'thumbnail-more' => 'Suurenna',
'tooltip-pt-watchlist' => 'Lista sivuista, joiden muokkauksia tarkkailet',
'tooltip-pt-mycontris' => 'Lista omista muokkauksista',
'tooltip-pt-login' => 'Kirjaudu sisään tai luo tunnus',
-'tooltip-pt-anonlogin' => 'Kirjaudu sisään tai luo tunnus',
'tooltip-pt-logout' => 'Kirjaudu ulos',
'tooltip-ca-talk' => 'Keskustele sisällöstä',
'tooltip-ca-edit' => 'Muokkaa tätä sivua',
* @author Jean-Frédéric
* @author JeanVoisin
* @author Jens Liebenau
+ * @author Jul law
* @author Klutzy
* @author Korg
* @author Korrigan
'tog-numberheadings' => 'Numéroter automatiquement les titres de section',
'tog-showtoolbar' => "Montrer la barre d'outils de modification (nécessite JavaScript)",
'tog-editondblclick' => 'Modifier des pages sur double-clic (nécessite JavaScript)',
-'tog-editsection' => 'Activer les modifications de sections grâce aux liens « [modifier] »',
'tog-editsectiononrightclick' => 'Activer la modification de sections par clic droit sur les titres (nécessite JavaScript)',
-'tog-showtoc' => 'Afficher la table des matières (pour les pages ayant plus de 3 sections)',
'tog-rememberpassword' => 'Se souvenir de mon identification avec ce navigateur (au maximum $1 {{PLURAL:$1|jour|jours}})',
'tog-watchcreations' => "Ajouter les pages que je crée et les fichiers que j'importe à ma liste de suivi",
'tog-watchdefault' => 'Ajouter les pages et les fichiers que je modifie à ma liste de suivi',
'ok' => 'Valider',
'retrievedfrom' => 'Récupérée de « $1 »',
-'youhavenewmessages' => 'Vous avez $1 ($2).',
-'youhavenewmessagesfromusers' => "Vous avez $1 {{PLURAL:$3|d'un autre utilisateur|de $3 autres utilisateurs}} ($2).",
+'youhavenewmessages' => '{{PLURAL:$3|Vous avez}} $1 ($2).',
+'youhavenewmessagesfromusers' => "{{PLURAL:$4|Vous avez}} $1 {{PLURAL:$3|d'un autre utilisateur|de $3 autres utilisateurs}} ($2).",
'youhavenewmessagesmanyusers' => 'Vous avez $1 de nombreux utilisateurs ($2).',
'newmessageslinkplural' => '{{PLURAL:$1|un nouveau message|de nouveaux messages}}',
'newmessagesdifflinkplural' => '{{PLURAL:$1|dernière modification|dernières modifications}}',
'retypenew' => 'Confirmer le nouveau mot de passe :',
'resetpass_submit' => 'Changer le mot de passe et se connecter',
'changepassword-success' => 'Votre mot de passe a été changé avec succès !',
+'changepassword-throttled' => 'Vous avez fait trop de tentatives de connexion récemment.
+Veuillez attendre $1 avant de réessayer.',
'resetpass_forbidden' => 'Les mots de passe ne peuvent pas être changés',
'resetpass-no-info' => 'Vous devez être connecté(e) pour avoir accès à cette page.',
'resetpass-submit-loggedin' => 'Changer de mot de passe',
'changeemail-password' => 'Votre mot de passe sur {{SITENAME}} :',
'changeemail-submit' => 'Changer l’adresse de courriel',
'changeemail-cancel' => 'Annuler',
+'changeemail-throttled' => 'Vous avez fait trop de tentatives de connexion.
+Veuillez attendre $1 avant de réessayer.',
# Special:ResetTokens
'resettokens' => 'Réinitialiser les jetons',
'converter-manual-rule-error' => 'Erreur détectée dans la règle manuelle de conversion de langue',
# "Undo" feature
-'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 défaite. Veuillez vérifier les modifications ci-dessous, puis publier 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-norev' => 'La modification n’a pas pu être défaite parce qu’elle est inexistante ou qu’elle a été supprimée.',
'undo-summary' => 'Annulation des modifications $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussion]])',
'undo-summary-username-hidden' => 'Annuler la révision $1 par un utilisateur masqué',
'nextn-title' => '$1 {{PLURAL:$1|résultat suivant|résultats suivants}}',
'shown-title' => 'Afficher $1 résultat{{PLURAL:$1||s}} par page',
'viewprevnext' => 'Voir ($1 {{int:pipe-separator}} $2) ($3).',
-'searchmenu-exists' => "'''Il existe une page nommée « [[:$1]] » sur ce wiki'''",
-'searchmenu-new' => "'''Créer la page « [[:$1|$1]] » sur ce wiki !'''",
+'searchmenu-exists' => "'''Il existe une page nommée « [[:$1]] » sur ce wiki.''' {{PLURAL:$2|0=|Voyez également les autres résultats de votre recherche.}}",
+'searchmenu-new' => "'''Créer la page « [[:$1|$1]] » sur ce wiki !''' {{PLURAL:$2|0=|Voyez également la page trouvée avec votre recherche.|Voyez également les résultats de votre recherche.}}",
'searchprofile-articles' => 'Pages de contenu',
'searchprofile-project' => "Pages d'aide et de projet",
'searchprofile-images' => 'Multimédia',
'search-result-score' => 'Pertinence : $1%',
'search-redirect' => '(redirection depuis $1)',
'search-section' => '(section $1)',
+'search-file-match' => '(correspond au contenu du fichier)',
'search-suggest' => 'Essayez avec cette orthographe : $1',
'search-interwiki-caption' => 'Projets frères',
'search-interwiki-default' => 'Résultats sur $1 :',
'prefs-emailconfirm-label' => 'Confirmation du courriel :',
'youremail' => 'Courriel :',
'username' => "{{GENDER:$1|Nom d'utilisateur|Nom d'utilisatrice}} :",
-'uid' => "Numéro d'{{GENDER:$1|utilisateur|utilisatrice}}:",
+'uid' => 'Numéro d’{{GENDER:$1|utilisateur|utilisatrice}} :',
'prefs-memberingroups' => '{{GENDER:$2|Membre}} {{PLURAL:$1|du groupe|des groupes}}:',
'prefs-registration' => "Date d'inscription :",
'yourrealname' => 'Nom réel :',
'upload-tryagain' => 'Envoyer la description du fichier modifiée',
'uploadnologin' => 'Non connecté{{GENDER:||e|(e)}}',
'uploadnologintext' => 'Vous devez $1 pour importer des fichiers.',
-'upload_directory_missing' => "Le répertoire d'import de fichier ($1) est introuvable et n'a pas pu être créé par le serveur web.",
-'upload_directory_read_only' => "Le répertoire d'import de fichier ($1) n'est pas accessible en écriture depuis le serveur web.",
-'uploaderror' => "Erreur lors de l'import",
+'upload_directory_missing' => 'Le répertoire d’import de fichier ($1) est introuvable et n’a pas pu être créé par le serveur web.',
+'upload_directory_read_only' => 'Le répertoire d’import de fichier ($1) n’est pas accessible en écriture depuis le serveur web.',
+'uploaderror' => 'Erreur lors de l’import',
'upload-recreate-warning' => "'''Attention : Un fichier portant ce nom a été supprimé ou déplacé.'''
Le journal des suppressions et celui des déplacements de cette page sont affichés ici pour informations :",
'uploadtext' => "Utilisez ce formulaire pour importer des fichiers sur le serveur.
-Pour voir ou rechercher des images précédemment envoyées, consultez la [[Special:FileList|liste des images]]. L'import est aussi enregistrés dans le [[Special:Log/upload|journal d'import des fichiers]], et les suppressions dans le [[Special:Log/delete|journal des suppressions]].
+Pour voir ou rechercher des images précédemment envoyées, consultez la [[Special:FileList|liste des images]]. L’import est aussi enregistré dans le [[Special:Log/upload|journal d’import des fichiers]], et les suppressions dans le [[Special:Log/delete|journal des suppressions]].
Pour inclure un fichier dans une page, utilisez un lien de la forme :
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.jpg]]</nowiki></code>''', pour afficher le fichier en pleine résolution (dans le cas d'une image) ;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.jpg]]</nowiki></code>''', pour afficher le fichier en pleine résolution (dans le cas d’une image) ;
* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.png|200px|thumb|left|texte descriptif]]</nowiki></code>''' pour utiliser une miniature de 200 pixels de large dans une boîte à gauche avec « texte descriptif » comme description ;
-* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichier.ogg]]</nowiki></code>''' pour lier directement vers le fichier sans l'afficher.",
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichier.ogg]]</nowiki></code>''' pour lier directement vers le fichier sans l’afficher.",
'upload-permitted' => 'Formats de fichiers autorisés : $1.',
'upload-preferred' => 'Formats de fichiers préférés : $1.',
'upload-prohibited' => 'Formats de fichiers interdits : $1.',
-'uploadlog' => "Journal d'import de fichiers",
-'uploadlogpage' => "Journal d'import de fichiers",
+'uploadlog' => 'Journal d’import de fichiers',
+'uploadlogpage' => 'Journal d’import de fichiers',
'uploadlogpagetext' => 'Voici la liste des derniers fichiers importés sur le serveur.
Voyez la [[Special:NewFiles|galerie des nouvelles images]] pour une présentation plus visuelle.',
'filename' => 'Nom du fichier',
'hookaborted' => 'La modification que vous avez essayé de faire a été annulée par une extension.',
'illegal-filename' => "Le nom du fichier n'est pas autorisé.",
'overwrite' => "Écraser un fichier existant n'est pas autorisé.",
-'unknown-error' => "Une erreur inconnue s'est produite.",
+'unknown-error' => 'Une erreur inconnue s’est produite.',
'tmp-create-error' => 'Impossible de créer le fichier temporaire.',
'tmp-write-error' => "Erreur d'écriture du fichier temporaire.",
'large-file' => 'Les fichiers importés ne devraient pas dépasser $1 ; ce fichier fait $2.',
'savefile' => 'Sauvegarder le fichier',
'uploadedimage' => 'a importé « [[$1]] »',
'overwroteimage' => 'a importé une nouvelle version de « [[$1]] »',
-'uploaddisabled' => "Désolé, l'import de fichiers est désactivé.",
+'uploaddisabled' => 'Désolé, l’import de fichiers est désactivé.',
'copyuploaddisabled' => 'Import de fichier par URL désactivé.',
-'uploadfromurl-queued' => "Votre fichier a été mis dans la file d'attente.",
-'uploaddisabledtext' => "L'import de fichiers est désactivé sur ce wiki.",
+'uploadfromurl-queued' => 'Votre fichier a été mis dans la file d’attente.',
+'uploaddisabledtext' => 'L’import de fichiers est désactivé sur ce wiki.',
'php-uploaddisabledtext' => "L'import de fichiers a été désactivé dans PHP. Vérifiez l'option de configuration file_uploads.",
'uploadscripted' => 'Ce fichier contient du code HTML ou un script qui pourrait être interprété de façon incorrecte par un navigateur web.',
'uploadvirus' => 'Ce fichier contient un virus ! Pour plus de détails, consultez : $1',
-'uploadjava' => "C'est un fichier ZIP qui contient un fichier Java .class.
-Le téléchargement de fichiers Java n'est pas autorisé, car ils peuvent contourner des restrictions de sécurité.",
+'uploadjava' => 'C’est un fichier ZIP qui contient un fichier Java .class.
+Le téléchargement de fichiers Java n’est pas autorisé, car ils peuvent contourner certaines restrictions de sécurité.',
'upload-source' => 'Fichier source',
'sourcefilename' => 'Nom du fichier source :',
'sourceurl' => 'URL source :',
'destfilename' => 'Nom sous lequel le fichier sera enregistré :',
'upload-maxfilesize' => 'Taille maximale du fichier : $1',
'upload-description' => 'Description du fichier',
-'upload-options' => "Options d'import de fichiers",
+'upload-options' => 'Options d’import de fichiers',
'watchthisupload' => 'Suivre ce fichier',
'filewasdeleted' => "Un fichier avec ce nom a déjà été importé, puis supprimé.
Vous devriez vérifier le $1 avant de l'importer à nouveau.",
'upload-failure-msg' => 'Il y a eu un problème avec votre import depuis [$2] :
$1',
-'upload-warning-subj' => "Avertissement lors de l'import",
-'upload-warning-msg' => "Un problème est survenu lors de l'import depuis [$2]. Vous pouvez revenir au [[Special:Upload/stash/$1|formulaire d'import]] pour le résoudre.",
+'upload-warning-subj' => 'Avertissement lors de l’import',
+'upload-warning-msg' => 'Un problème est survenu lors de l’import depuis [$2]. Vous pouvez revenir au [[Special:Upload/stash/$1|formulaire d’import]] pour le résoudre.',
'upload-proto-error' => 'Protocole incorrect',
-'upload-proto-error-text' => "L'import requiert des URL commençant par <code>http://</code> ou <code>ftp://</code>.",
+'upload-proto-error-text' => 'L’import requiert des URL commençant par <code>http://</code> ou <code>ftp://</code>.',
'upload-file-error' => 'Erreur interne',
'upload-file-error-text' => 'Une erreur interne est survenue en voulant créer un fichier temporaire sur le serveur. Veuillez contacter un [[Special:ListUsers/sysop|administrateur]].',
-'upload-misc-error' => "Erreur d'import inconnue",
-'upload-misc-error-text' => "Une erreur inconnue est survenue pendant l'import.
-Veuillez vérifier que l'URL est valide et accessible, puis essayer à nouveau.
-Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]].",
-'upload-too-many-redirects' => "L'URL contient trop de redirections.",
+'upload-misc-error' => 'Erreur d’import inconnue',
+'upload-misc-error-text' => 'Une erreur inconnue est survenue pendant l’import.
+Veuillez vérifier que l’URL est valide et accessible, puis essayer à nouveau.
+Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]].',
+'upload-too-many-redirects' => 'L’URL contient trop de redirections.',
'upload-unknown-size' => 'Taille inconnue',
'upload-http-error' => 'Une erreur HTTP est survenue : $1',
-'upload-copy-upload-invalid-domain' => "La copie des téléchargements n'est pas disponible depuis ce domaine.",
+'upload-copy-upload-invalid-domain' => 'La copie des téléversements n’est pas disponible depuis ce domaine.',
# File backend
'backend-fail-stream' => 'Impossible de lire le fichier $1.',
Sa sécurité ne peut pas être correctement vérifiée.',
# Special:UploadStash
-'uploadstash' => "Cache d'import",
-'uploadstash-summary' => "Cette page donne accès aux fichiers qui sont importés (ou en cours d'importation), mais ne sont pas encore publiés dans le wiki. Ces fichiers ne sont pas encore visibles, sauf pour l'utilisateur qui les a importés.",
+'uploadstash' => 'Cache d’import',
+'uploadstash-summary' => 'Cette page donne accès aux fichiers qui sont importés (ou en cours d’importation), mais ne sont pas encore publiés dans le wiki. Ces fichiers ne sont pas encore visibles, sauf pour l’utilisateur qui les a importés.',
'uploadstash-clear' => 'Effacer les fichiers en cache',
-'uploadstash-nofiles' => "Vous n'avez pas de fichiers en cache d'import.",
-'uploadstash-badtoken' => "L'exécution de cette action a échoué, peut-être parce que vos informations d'identification ont expiré. Réessayez.",
-'uploadstash-errclear' => "L'effacement des fichiers a échoué.",
+'uploadstash-nofiles' => 'Vous n’avez pas de fichiers en cache d’import.',
+'uploadstash-badtoken' => 'L’exécution de cette action a échoué, peut-être parce que vos informations d’identification ont expiré. Réessayez.',
+'uploadstash-errclear' => 'La suppression des fichiers a échoué.',
'uploadstash-refresh' => 'Actualiser la liste des fichiers',
'invalid-chunk-offset' => 'Offset de segment non valide',
# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
'upload-curl-error6' => 'URL injoignable',
-'upload-curl-error6-text' => "L'URL fournie ne peut pas être atteinte. Veuillez vérifier que l'URL est correcte et que le site est en ligne.",
+'upload-curl-error6-text' => 'L’URL fournie ne peut pas être atteinte. Veuillez vérifier que l’URL est correcte et que le site est en ligne.',
'upload-curl-error28' => "Dépassement du délai lors de l'import",
'upload-curl-error28-text' => 'Le site a mis trop longtemps à répondre. Vérifiez que le site est en ligne, attendez un peu et réessayez. Vous pouvez aussi réessayer à une heure de moindre affluence.',
'download' => 'télécharger',
# Unwatched pages
-'unwatchedpages' => "Pages ne faisant partie d'aucune liste de suivi",
+'unwatchedpages' => 'Pages ne faisant partie d’aucune liste de suivi',
# List redirects
'listredirects' => 'Liste des redirections',
# Unused templates
'unusedtemplates' => 'Modèles inutilisés',
-'unusedtemplatestext' => "Cette page liste toutes les pages de l'espace de noms « {{ns:template}} » qui ne sont incluses dans aucune autre page.
-N'oubliez pas de vérifier s'il n'y a pas d'autres liens vers les modèles avant de les supprimer.",
+'unusedtemplatestext' => 'Cette page liste toutes les pages de l’espace de noms « {{ns:template}} » qui ne sont incluses dans aucune autre page.
+N’oubliez pas de vérifier s’il n’y a pas d’autres liens vers les modèles avant de les supprimer.',
'unusedtemplateswlh' => 'autres liens',
# Random page
'ancientpages' => 'Pages les plus anciennement modifiées',
'move' => 'Renommer',
'movethispage' => 'Renommer cette page',
-'unusedimagestext' => "Les fichiers suivants existent, mais ne sont inclus dans aucune page.
-Veuillez noter que d'autres sites peuvent avoir un lien direct vers un fichier, et donc qu'un fichier peut être listé ici alors qu'il est en réalité utilisé sur ces sites.",
+'unusedimagestext' => 'Les fichiers suivants existent, mais ne sont inclus dans aucune page.
+Veuillez noter que d’autres sites peuvent avoir un lien direct vers un fichier, et donc qu’un fichier peut être listé ici alors qu’il est en réalité utilisé sur ces sites.',
'unusedcategoriestext' => 'Les catégories suivantes existent mais aucune page ou catégorie ne les utilise.',
'notargettitle' => 'Pas de cible',
'notargettext' => "Vous n'avez pas indiqué une page ou un utilisateur sur lequel vous souhaitez effectuer cette action.",
'watchmethod-list' => 'vérification des pages suivies pour y trouver des modifications récentes',
'watchlistcontains' => 'Votre liste de suivi référence $1 page{{PLURAL:$1||s}}.',
'iteminvalidname' => "Problème avec l'élément « $1 » : le nom est invalide.",
-'wlnote' => "Ci-dessous {{PLURAL:$1|figure la dernière modification effectuée|figurent les '''$1''' dernières modifications effectuées}} durant {{PLURAL:$2|la dernière heure|les '''$2''' dernières heures}}, depuis $3, $4.",
+'wlnote2' => 'Ci-dessous les modifications dans {{PLURAL:$1|la dernière heure|les <strong>$1</strong> dernières heures}}, à partir de $2, $3.',
'wlshowlast' => 'Montrer les dernières $1 heures, les derniers $2 jours ou bien $3',
'watchlist-options' => 'Options de la liste de suivi',
'delete-warning-toobig' => "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.
La supprimer peut perturber le fonctionnement de la base de données de {{SITENAME}} ;
veuiller ne procéder qu'avec prudence.",
-'deleting-backlinks-warning' => "'''Attention :''' D’autres pages ont un lien vers la page que vous allez supprimer.",
+'deleting-backlinks-warning' => "'''Attention :''' D’autres pages ont un lien vers ou incorporent la page que vous allez supprimer.",
# Rollback
'rollback' => 'Révoquer les modifications',
'undeletepage' => 'Voir et restaurer des pages supprimées',
'undeletepagetitle' => "'''La liste suivante contient des versions supprimées de [[:$1|$1]]'''.",
'viewdeletedpage' => 'Voir les pages supprimées',
-'undeletepagetext' => "{{PLURAL:$1|La page suivante a été supprimée et se trouve|Les pages suivantes ont été supprimées et se trouvent}} dans la base de données archive, d'où {{PLURAL:$1|elle peut|elles peuvent}} encore être restaurée{{PLURAL:$1||s}}.
-L'archive peut être nettoyée périodiquement.",
+'undeletepagetext' => '{{PLURAL:$1|La page suivante a été supprimée et se trouve|Les pages suivantes ont été supprimées et se trouvent}} dans la base de données archive, d’où {{PLURAL:$1|elle peut|elles peuvent}} encore être restaurée{{PLURAL:$1||s}}.
+L’archive peut être nettoyée périodiquement.',
'undelete-fieldset-title' => 'Restaurer les versions',
-'undeleteextrahelp' => "Pour restaurer l'historique complet de cette page, laissez toutes les cases décochées et cliquez sur '''''Restaurer'''''.
+'undeleteextrahelp' => "Pour restaurer l’historique complet de cette page, laissez toutes les cases décochées et cliquez sur '''''Restaurer'''''.
Pour effectuer une restauration partielle, cochez les cases correspondant aux versions à rétablir, puis cliquez sur '''''Restaurer'''''.",
'undeleterevisions' => '$1 {{PLURAL:$1|version archivée|versions archivées}}',
-'undeletehistory' => "Si vous restaurez la page, toutes les versions seront replacées dans l'historique.
-Si une nouvelle page avec le même nom a été créée depuis la suppression, les versions restaurées apparaîtront dans l'historique antérieur et la version courante ne sera pas automatiquement remplacée.",
+'undeletehistory' => 'Si vous restaurez la page, toutes les versions seront replacées dans l’historique.
+Si une nouvelle page avec le même nom a été créée depuis la suppression, les versions restaurées apparaîtront dans l’historique antérieur et la version courante ne sera pas automatiquement remplacée.',
'undeleterevdel' => 'La restauration ne sera pas effectuée si, au final, la version la plus récente de la page ou du fichier reste partiellement supprimée.
Dans de tels cas, vous devez décocher ou démasquer les versions effacées les plus récentes (en tête de liste).',
-'undeletehistorynoadmin' => "Cette page a été supprimée.
-Le motif de la suppression est indiqué dans le résumé ci-dessous, avec les détails des utilisateurs qui l'ont modifié avant sa suppression.
-Le contenu effectif de ces versions supprimées n'est accessible qu'aux administrateurs.",
+'undeletehistorynoadmin' => 'Cette page a été supprimée.
+Le motif de la suppression est indiqué dans le résumé ci-dessous, avec les détails des utilisateurs qui ont modifié la page avant sa suppression.
+Le contenu effectif de ces versions supprimées n’est accessible qu’aux administrateurs.',
'undelete-revision' => 'Version supprimée de $1 (version du $4 à $5) par $3 :',
-'undeleterevision-missing' => "Version incorrecte ou manquante.
-Vous avez peut-être un mauvais lien, ou la version a pu être restaurée ou supprimée de l'archive.",
+'undeleterevision-missing' => 'Version incorrecte ou manquante.
+Vous avez peut-être un mauvais lien, ou la version a pu être restaurée ou supprimée de l’archive.',
'undelete-nodiff' => 'Aucune version précédente trouvée.',
'undeletebtn' => 'Restaurer',
'undeletelink' => 'visualiser/rétablir',
'undelete-search-box' => 'Rechercher des pages supprimées',
'undelete-search-prefix' => 'Montrer les pages commençant par :',
'undelete-search-submit' => 'Rechercher',
-'undelete-no-results' => "Aucune page correspondante n'a été trouvée dans les archives de suppression.",
+'undelete-no-results' => 'Aucune page correspondante n’a été trouvée dans les archives de suppression.',
'undelete-filename-mismatch' => 'Impossible de restaurer la version du fichier datée du $1 : le nom de fichier ne correspond pas.',
'undelete-bad-store-key' => 'Impossible de restaurer la version du fichier datée du $1 : le fichier était absent avant la suppression.',
-'undelete-cleanup-error' => "Erreur lors de la suppression du fichier d'archive inutilisé « $1 ».",
-'undelete-missing-filearchive' => "Impossible de restaurer le fichier d'archive avec l'identifiant $1 parce qu'il n'est pas dans la base de données.
-Il a peut-être déjà été restauré.",
-'undelete-error' => "Page d'erreur d'annulation",
+'undelete-cleanup-error' => 'Erreur lors de la suppression du fichier d’archive inutilisé « $1 ».',
+'undelete-missing-filearchive' => 'Impossible de restaurer le fichier d’archive avec l’identifiant $1 parce qu’il n’est pas dans la base de données.
+Il a peut-être déjà été restauré.',
+'undelete-error' => 'Page d’erreur d’annulation',
'undelete-error-short' => 'Erreur lors de la restauration du fichier : $1',
'undelete-error-long' => 'Des erreurs ont été rencontrées lors de la restauration du fichier :
# Block/unblock
'autoblockid' => 'Blocage automatique #$1',
'block' => 'Bloquer l’utilisateur',
-'unblock' => "Débloquer l'utilisateur",
+'unblock' => 'Débloquer l’utilisateur',
'blockip' => 'Bloquer l’utilisateur',
'blockip-legend' => 'Bloquer l’utilisateur',
'blockiptext' => 'Utilisez le formulaire ci-dessous pour bloquer les tentatives de modification faites à partir d’une adresse IP spécifique ou d’un nom d’utilisateur.
'ipb-blocklist' => 'Voir les blocages existants',
'ipb-blocklist-contribs' => 'Contributions pour $1',
'unblockip' => 'Débloquer un utilisateur ou une adresse IP',
-'unblockiptext' => "Utilisez le formulaire ci-dessous pour rétablir l'accès aux modifications depuis une adresse IP ou un nom d'utilisateur.",
+'unblockiptext' => 'Utilisez le formulaire ci-dessous pour redonner les droits d’écriture à une adresse IP ou un nom d’utilisateur.',
'ipusubmit' => 'Supprimer ce blocage',
'unblocked' => '[[User:$1|$1]] a été débloqué{{GENDER:$1||e|(e)}}',
'unblocked-range' => '$1 a été débloqué{{GENDER:$1||e|(e)}}',
'range_block_disabled' => 'Le droit administrateur de créer des blocages de plages IP est désactivé.',
'ipb_expiry_invalid' => "Durée d'expiration incorrecte.",
'ipb_expiry_temp' => "Les blocages de noms d'utilisateurs cachés doivent être permanents.",
-'ipb_hide_invalid' => 'Impossible de supprimer ce compte ; il semble avoir trop de modifications.',
+'ipb_hide_invalid' => 'Impossible de supprimer ce compte ; il semble avoir plus {{PLURAL:$1|d’une modification|de $1 modifications}}.',
'ipb_already_blocked' => '« $1 » est déjà bloqué',
'ipb-needreblock' => '$1 est déjà bloqué. Voulez-vous modifier les paramètres ?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Autre blocage|Autres blocages}}',
-'unblock-hideuser' => "Vous ne pouvez pas débloquer cet utilisateur, car son nom d'utilisateur a été masqué.",
+'unblock-hideuser' => 'Vous ne pouvez pas débloquer cet utilisateur, car son nom d’utilisateur a été masqué.',
'ipb_cant_unblock' => "Erreur : identifiant de blocage $1 non trouvé.
Il est possible qu'un déblocage ait déjà été effectué.",
'ipb_blocked_as_range' => "Erreur : l'adresse IP $1 n'est pas bloquée directement et ne peut donc pas être débloquée.
'unlockdb' => 'Déverrouiller la base de données',
'lockdbtext' => "Le verrouillage de la base de données empêchera tous les utilisateurs de modifier des pages, d'enregistrer leurs préférences, de modifier leur liste de suivi et d'effectuer toutes les autres opérations nécessitant des changements dans la base de données.
Veuillez confirmer que c'est bien là ce que vous voulez faire et que vous déverrouillerez la base dès que votre opération de maintenance sera terminée.",
-'unlockdbtext' => "Le déverrouillage de la base de données permettra à nouveau à tous les utilisateurs de modifier des pages, de changer leurs préférences, de modifier leur liste de suivi et d'effectuer les autres opérations nécessitant des changements dans la base de données.
-Veuillez confirmer que c'est bien là ce que vous voulez faire.",
+'unlockdbtext' => 'Le déverrouillage de la base de données permettra à nouveau à tous les utilisateurs de modifier des pages, de changer leurs préférences, de modifier leur liste de suivi et d’effectuer les autres opérations nécessitant des changements dans la base de données.
+Veuillez confirmer que c’est bien là ce que vous voulez faire.',
'lockconfirm' => 'Oui, je confirme que je souhaite verrouiller la base de données.',
'unlockconfirm' => 'Oui, je confirme que je souhaite déverrouiller la base de données.',
'lockbtn' => 'Verrouiller la base de données',
'allmessagesname' => 'Nom du message',
'allmessagesdefault' => 'Message par défaut',
'allmessagescurrent' => 'Message actuel',
-'allmessagestext' => "Ceci est la liste des messages disponibles dans l'espace MediaWiki.
-Veuillez visiter la [https://www.mediawiki.org/wiki/Localisation Localisation de MediaWiki] et [//translatewiki.net/ translatewiki.net] si vous désirez contribuer à la localisation générique de MediaWiki.",
+'allmessagestext' => 'Ceci est la liste des messages disponibles dans l’espace MediaWiki.
+Veuillez visiter la [https://www.mediawiki.org/wiki/Localisation Localisation de MediaWiki] et [//translatewiki.net/ translatewiki.net] si vous désirez contribuer à la localisation générique de MediaWiki.',
'allmessagesnotsupportedDB' => "Cette page '''{{ns:special}}:Allmessages''' n'est pas utilisable car '''\$wgUseDatabaseMessages''' a été désactivé.",
'allmessages-filter-legend' => 'Filtrer',
'allmessages-filter' => 'Filtrer par état de modification :',
'allmessages-prefix' => 'Filtrer par préfixe :',
'allmessages-language' => 'Langue :',
'allmessages-filter-submit' => 'Appliquer',
+'allmessages-filter-translate' => 'Traduire',
# Thumbnails
'thumbnail-more' => 'Agrandir',
'tooltip-pt-watchlist' => 'La liste des pages dont vous suivez les modifications',
'tooltip-pt-mycontris' => 'La liste de vos contributions',
'tooltip-pt-login' => "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier ; ce n'est cependant pas obligatoire.",
-'tooltip-pt-anonlogin' => "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier ; ce n'est cependant pas obligatoire.",
'tooltip-pt-logout' => 'Se déconnecter',
'tooltip-ca-talk' => 'Discussion au sujet de cette page de contenu',
'tooltip-ca-edit' => "Vous pouvez modifier cette page.
'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussion]])',
# Core parser functions
-'unknown_extension_tag' => "Balise d'extension « $1 » inconnue",
-'duplicate-defaultsort' => 'Attention : la clé de tri par défaut « $2 » écrase la précédente « $1 ».',
+'unknown_extension_tag' => 'Balise d’extension « $1 » inconnue',
+'duplicate-defaultsort' => 'Attention : la clé de tri par défaut « $2 » écrase la précédente clé « $1 ».',
# Special:Version
'version' => 'Version',
'version-version' => '(version $1)',
'version-license' => 'Licence MediaWiki',
'version-ext-license' => 'Licence',
+'version-ext-colheader-name' => 'Extension',
+'version-ext-colheader-version' => 'Version',
'version-ext-colheader-license' => 'Licence',
+'version-ext-colheader-description' => 'Description',
'version-ext-colheader-credits' => 'Auteurs',
'version-license-title' => 'Licence pour $1',
'version-license-not-found' => "Aucune information détaillée de la licence n'a été trouvée pour cette extension.",
'tog-numberheadings' => 'Numerotar ôtomaticament los titros de sèccion',
'tog-showtoolbar' => 'Montrar la bârra d’outils de changement (at fôta de JavaScript)',
'tog-editondblclick' => 'Changiér des pâges sur doblo-clic (at fôta de JavaScript)',
-'tog-editsection' => 'Activar lo changement de sèccions avouéc los lims « [changiér] »',
'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)',
-'tog-showtoc' => 'Montrar la trâbla de les matiéres (por les pâges qu’ant més de 3 sèccions)',
'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
'tog-watchcreations' => 'Apondre les pâges que fé et pués los fichiérs que tèlèchârjo a ma lista de siuvu',
'tog-watchdefault' => 'Apondre les pâges et los fichiérs que chanjo a ma lista de siuvu',
'tog-numberheadings' => 'Auerskraften automaatisk numeriare',
'tog-showtoolbar' => 'Werktjüch tu bewerkin wise',
'tog-editondblclick' => 'Sidjen mä dobelklik bewerke',
-'tog-editsection' => "Ferwisangen tu't bewerkin faan enkelt kirwer",
'tog-editsectiononrightclick' => 'Enkelt kirwer mä rochtsklik bewerke',
-'tog-showtoc' => 'Üüb sidjen mä muar üs trii auerskraften en indeks uunwise',
'tog-rememberpassword' => 'Üüb diheer reegner üüb düür uunmelde (maksimaal för $1 {{PLURAL:$1|dai|daar}})',
'tog-watchcreations' => "Salew maaget sidjen an huuchlooset datein leewen uun't uug behual",
'tog-watchdefault' => "Salew feranert sidjen an datein leewen uun't uug behual",
'tog-numberheadings' => 'Numerar automaticamente as cabeceiras',
'tog-showtoolbar' => 'Mostrar a barra de ferramentas de edición',
'tog-editondblclick' => 'Editar as páxinas logo de facer dobre clic',
-'tog-editsection' => 'Permitir a edición de seccións mediante as ligazóns "[editar]"',
'tog-editsectiononrightclick' => 'Permitir a edición de seccións premendo co botón dereito nos títulos das seccións',
-'tog-showtoc' => 'Mostrar o índice (para as páxinas con máis de tres cabeceiras)',
'tog-rememberpassword' => 'Lembrar o meu contrasinal neste navegador (ata $1 {{PLURAL:$1|día|días}})',
'tog-watchcreations' => 'Engadir as páxinas que cree e os ficheiros que cargue á miña lista de vixilancia',
'tog-watchdefault' => 'Engadir as páxinas e os ficheiros que edite á miña lista de vixilancia',
'retypenew' => 'Insira outra vez o novo contrasinal:',
'resetpass_submit' => 'Establecer o contrasinal e acceder ao sistema',
'changepassword-success' => 'O seu contrasinal modificouse correctamente!',
+'changepassword-throttled' => 'Fixo demasiados intentos de acceder ao sistema.
+Por favor, agarde $1 antes de probar outra vez.',
'resetpass_forbidden' => 'Non se poden mudar os contrasinais',
'resetpass-no-info' => 'Debe rexistrarse para acceder directamente a esta páxina.',
'resetpass-submit-loggedin' => 'Cambiar o contrasinal',
'changeemail-password' => 'O seu contrasinal en {{SITENAME}}:',
'changeemail-submit' => 'Cambiar o correo electrónico',
'changeemail-cancel' => 'Cancelar',
+'changeemail-throttled' => 'Fixo demasiados intentos de acceder ao sistema.
+Por favor, agarde $1 antes de probar outra vez.',
# Special:ResetTokens
'resettokens' => 'Restablecer os pases',
'editwarning-warning' => 'Deixar esta páxina pode causar a perda de calquera cambio feito.
Se accedeu ao sistema, pode desactivar esta mensaxe de advertencia na sección "Edición" das súas preferencias.',
'editpage-notsupportedcontentformat-title' => 'Formato de contido non admitido',
-'editpage-notsupportedcontentformat-text' => 'O formato de contido $1 non é compatible co modelo de contido $2.',
+'editpage-notsupportedcontentformat-text' => 'O formato de contido $1 non é compatible co modelo de contido $2.',
# Content models
'content-model-wikitext' => 'texto wiki',
'search-result-score' => 'Relevancia: $1%',
'search-redirect' => '(redirixido desde "$1")',
'search-section' => '(sección "$1")',
+'search-file-match' => '(coincide co contido do ficheiro)',
'search-suggest' => 'Quizais quixo dicir: $1',
'search-interwiki-caption' => 'Proxectos irmáns',
'search-interwiki-default' => 'Resultados en $1:',
[[File:$1|thumb|center|$1]]',
'file-exists-duplicate' => 'Este ficheiro é un duplicado {{PLURAL:$1|do seguinte|dos seguintes}}:',
'file-deleted-duplicate' => 'Un ficheiro idéntico a este ("[[:$1]]") foi borrado previamente. Debería comprobar o historial de borrados do ficheiro antes de proceder a cargalo de novo.',
-'file-deleted-duplicate-notitle' => 'Un ficheiro idéntico a este foi borrado con anterioridade, e o título foi suprimido. Debería contactar con alguén capaz de ver os datos de ficheiros borrados para que revise esta situación antes de voltar a subilo de novo.',
+'file-deleted-duplicate-notitle' => 'Un ficheiro idéntico a este foi borrado con anterioridade e o título foi suprimido.
+Debería contactar con alguén capaz de ver os datos de ficheiros borrados para que revise esta situación antes de subilo de novo.',
'uploadwarning' => 'Advertencia ao cargar o ficheiro',
'uploadwarning-text' => 'Por favor, modifique a descrición do ficheiro e inténteo de novo.',
'savefile' => 'Gardar o ficheiro',
'watchmethod-list' => 'comprobando as páxinas vixiadas na procura de edicións recentes',
'watchlistcontains' => 'A súa lista de vixilancia ten $1 {{PLURAL:$1|páxina|páxinas}}.',
'iteminvalidname' => 'Hai un problema co elemento "$1", nome non válido...',
-'wlnote' => "A continuación {{PLURAL:$1|está a última modificación|están as últimas '''$1''' modificacións}} {{PLURAL:$2|na última hora|nas últimas '''$2''' horas}} ata o $3 ás $4.",
+'wlnote2' => 'A continuación están as modificacións feitas {{PLURAL:$1|na última hora|nas últimas <strong>$1</strong> horas}}, ata o $2 ás $3.',
'wlshowlast' => 'Mostrar as últimas $1 horas, os últimos $2 días ou $3',
'watchlist-options' => 'Opcións de vixilancia',
'delete-warning-toobig' => 'Esta páxina conta cun historial de edicións longo, de máis {{PLURAL:$1|dunha revisión|de $1 revisións}}.
Ao eliminala pódense provocar problemas de funcionamento nas operacións da base de datos de {{SITENAME}};
proceda con coidado.',
-'deleting-backlinks-warning' => "'''Atención:''' Outras páxinas ligan á páxina que vostede quere borrar.",
+'deleting-backlinks-warning' => "'''Atención:''' Outras páxinas conteñen unha ligazón ou unha transclusión da páxina que está a piques de borrar.",
# Rollback
'rollback' => 'Reverter as edicións',
Olle a [[Special:BlockList|lista de bloqueos]] para revisalo.',
'ipb-blockingself' => 'Está a piques de se bloquear! Está seguro de querer facelo?',
'ipb-confirmhideuser' => 'Está a piques de bloquear un usuario coa opción "agochar o usuario" activada. Isto suprime o nome de usuario de todas as listas e entradas de rexistro. Está seguro de querer facelo?',
-'ipb-confirmaction' => 'Se está seguro de que quere facelo realmente, por favor marque o campo "{{int:ipb-confirm}}" abaixo.',
+'ipb-confirmaction' => 'Se está seguro de querer facelo, marque o campo "{{int:ipb-confirm}}" ao final.',
'ipb-edit-dropdown' => 'Editar os motivos de bloqueo',
'ipb-unblock-addr' => 'Desbloquear a $1',
'ipb-unblock' => 'Desbloquear un usuario ou enderezo IP',
'range_block_disabled' => 'A funcionalidade de administrador de crear rangos de bloqueos está deshabilitada.',
'ipb_expiry_invalid' => 'O tempo de duración non é válido.',
'ipb_expiry_temp' => 'Os bloqueos a nomes de usuario agochados deberían ser permanentes.',
-'ipb_hide_invalid' => 'Non se pode suprimir esta conta; se cadra, ten moitas edicións.',
+'ipb_hide_invalid' => 'Non se pode suprimir esta conta; ten máis {{PLURAL:$1|dunha edición|de $1 edicións}}.',
'ipb_already_blocked' => '"$1" xa está bloqueado',
'ipb-needreblock' => '$1 xa está bloqueado. Quere cambiar as configuracións?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Outro bloqueo|Outros bloqueos}}',
'allmessages-prefix' => 'Filtrar por prefixo:',
'allmessages-language' => 'Lingua:',
'allmessages-filter-submit' => 'Mostrar',
+'allmessages-filter-translate' => 'Traducir',
# Thumbnails
'thumbnail-more' => 'Ampliar',
'tooltip-pt-watchlist' => 'A lista de páxinas cuxas modificacións está a seguir',
'tooltip-pt-mycontris' => 'Lista das súas contribucións',
'tooltip-pt-login' => 'Recoméndaselle rexistrarse, se ben non é obrigatorio.',
-'tooltip-pt-anonlogin' => 'Recoméndaselle rexistrarse, se ben non é obrigatorio.',
'tooltip-pt-logout' => 'Saír ao anonimato',
'tooltip-ca-talk' => 'Conversa acerca do contido desta páxina',
'tooltip-ca-edit' => 'Pode modificar esta páxina; antes de gardala, por favor, utilice o botón de vista previa',
'api-error-overwrite' => 'Non está permitido sobrescribir un ficheiro existente.',
'api-error-stashfailed' => 'Erro interno: O servidor non puido almacenar o ficheiro temporal.',
'api-error-publishfailed' => 'Erro interno: O servidor non puido publicar o ficheiro temporal.',
-'api-error-stasherror' => 'Houbo un erro mentras se subía o ficheiro a stash.',
+'api-error-stasherror' => 'Houbo un erro ao subir o ficheiro ao depósito.',
'api-error-timeout' => 'O servidor non respondeu no tempo esperado.',
'api-error-unclassified' => 'Houbo un erro descoñecido.',
'api-error-unknown-code' => 'Erro descoñecido: "$1"',
'expand_templates_preview' => 'Vista previa',
# Unknown messages
-'uploadinvalidxml' => 'O XML do ficheiro cargado non pode ser interpretado.',
+'uploadinvalidxml' => 'Non se puido analizar o XML do ficheiro cargado.',
);
'tog-numberheadings' => 'Überschrifte outomatisch numeriere',
'tog-showtoolbar' => 'Wärchzyyglyscht zum Bearbeite aazeige',
'tog-editondblclick' => 'Syte ändere mit Doppelklick',
-'tog-editsection' => 'Links aazeige für ds Bearbeite vo einzelnen Absätz',
'tog-editsectiononrightclick' => 'Einzelni Absätz ändere mit Rächtsclick uf d Iberschrifte',
-'tog-showtoc' => 'Inhaltsverzeichnis aazeige bi Artikle mit meh als drei Überschrifte',
'tog-rememberpassword' => 'Mit däm Browser duurhaft aamälde (Maximal fir $1 {{PLURAL:$1|Tag|Täg}})',
'tog-watchcreations' => 'Sälber gmachti Sytene un uffegladeni Dateie automatisch beobachte',
'tog-watchdefault' => 'Sälber gändereti Syte un Dateie automatisch beobachte',
'youremail' => 'E-Mail-Adräss:',
'username' => '{{GENDER:$1|Benutzername}}:',
'uid' => '{{GENDER:$1|Benutzernummere}}:',
-'prefs-memberingroups' => '{{GENDER:$2|Mitglid}} vu dr {{PLURAL:$1|Benutzergruppe|Benutzergruppe}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Mitglid}} vu dr {{PLURAL:$1|Benutzergruppe}}:',
'prefs-registration' => 'Aamäldzyt:',
'yourrealname' => 'Echte Name:',
'yourlanguage' => 'Sproch:',
'gender-unknown' => 'Ich wett doderzue kei Aagab mache',
'gender-male' => 'Är schafft an Syte',
'gender-female' => 'Si schafft an Syte',
-'prefs-help-gender' => 'Optional: bruucht fir gschlächtsspezifischi Adrässierig dur d Software. Die Information isch effentlig.',
+'prefs-help-gender' => 'Optional: bruucht fir gschlächtsspezifischi Adrässierig dur d Software. Die Information isch effentlig.
+
+Des isch e frejwilligi Aagab. D Software brucht si go Di aarede un as Hiiwys fir anderi dur d Verwändig vum grammatische Gschlächt. Die Information isch effetli.',
'email' => 'E-Mail',
'prefs-help-realname' => '* <strong>Dyy ächte Name</strong> (optional): Wänn du wetsch, ass Dyyni Änderige uf Dii chenne zruckgfierd wäre.',
'prefs-help-email' => 'D Aagab vun ere E-Mail isch optional, macht aber s Zueschicke vun eme Ersatzpasswort meglig, wänn Du dyy Passwort vergässe hesch.',
'prefs-signature' => 'Unterschrift',
'prefs-dateformat' => 'Datumsformat',
'prefs-timeoffset' => 'Zytunterschid',
-'prefs-advancedediting' => 'Erwytereti Optione',
+'prefs-advancedediting' => 'Allgmeini Optione',
'prefs-advancedrc' => 'Erwytereti Optione',
'prefs-advancedrendering' => 'Erwytereti Optione',
'prefs-advancedsearchoptions' => 'Erwytereti Optione',
'userrights-no-interwiki' => 'Du hesch nit d Berächtigung, Benutzerrächt in andere Wiki z ändere.',
'userrights-nodatabase' => 'D Datebank $1 git s nit oder si isch nit lokal.',
'userrights-nologin' => 'Du muesch Di mit eme Ammanne-Benutzerkonto [[Special:UserLogin|aamälde]], zum Benutzerrächt z ändere.',
-'userrights-notallowed' => 'Du hesch nit d Berächtigung zum Benutzerrächt vergee.',
+'userrights-notallowed' => 'Du hesch nit d Berächtigung zum Benutzerrächt vergee oder ewägnee.',
'userrights-changeable-col' => 'Gruppezuegherigkeit, wu Du chasch ändere',
'userrights-unchangeable-col' => 'Gruppezuegherigkeit, wu Du nit chasch ändere',
'right-reupload-shared' => 'Lokals Iberschryybe vun ere Datei, wu in eme gmeinsam gnutzte Repositorium vorhanden isch',
'right-upload_by_url' => 'E Datei uffelade vun ere URL-Adräss',
'right-purge' => 'Sytecache lääre ohni Ruckfrog',
-'right-autoconfirmed' => 'Halbgschitzti Syte bearbeite',
+'right-autoconfirmed' => 'Kei Bschränkig dur IP-basierti Limit',
'right-bot' => 'Behandlig as automatische Prozess',
'right-nominornewtalk' => 'Chleini Bearbeitige an Diskussionssyte fiehre nit zuen ere „Neiji Nochrichte“-Aazeig',
'right-apihighlimits' => 'Hecheri Limit in API-Abfroge',
'right-ipblock-exempt' => 'Uusnahm vu IP-Sperrine, Autoblock und Rangesperre',
'right-proxyunbannable' => 'Uusnahm vu automatische Proxysperrine',
'right-unblockself' => 'Sich sälber entsperre',
-'right-protect' => 'Syteschutzstatus änderen un gschitzti Syte bearbeite',
+'right-protect' => 'Syteschutzstatus änderen un kaskadegschitzti Syte bearbeite',
'right-editprotected' => 'Gschitzti Syte bearbeite (ohni Kaskadeschutz)',
'right-editinterface' => 'Benutzerinterface bearbeite',
'right-editusercssjs' => 'Bearbeite vu CSS- und JS-Dateie vu andere Benutzer',
'recentchanges-legend' => 'Optione vu dr Aazeig',
'recentchanges-summary' => 'Uf däre Syte chasch di letschte Änderige in däm Wiki aaluege.',
'recentchanges-feed-description' => 'Di letschten Änderige vo {{SITENAME}} i däm Feed abonniere.',
-'recentchanges-label-newpage' => 'Die Bearbeitig het e neji Syte aagleit',
+'recentchanges-label-newpage' => 'Mit däre Bearbeitig isch e neji Syte aagleit wore',
'recentchanges-label-minor' => 'Des isch e chleini Änderig',
'recentchanges-label-bot' => 'Die Bearbeitig isch dur e Bott uusgfiert wore',
'recentchanges-label-unpatrolled' => 'Die Bearbeitig isch nonig vun eme Fäldhieter aagluegt wore',
'recentchanges-label-plusminus' => 'Di gänderet Sytegreßi (Aazahl in Byte)',
-'recentchanges-legend-newpage' => '$1 - neji Syte',
+'recentchanges-legend-newpage' => '(lueg au d [[Special:NewPages|Lischt vu neie Syte]])',
'rcnotefrom' => 'Des sin d Ändrige syter <b>$2</b> (bis zem <b>$1</b> zeigt).',
'rclistfrom' => '<small>Nöji Änderige ab $1 aazeige (UTC)</small>',
'rcshowhideminor' => 'Chlynigkeite $1',
'rcshowhidebots' => 'Bots $1',
-'rcshowhideliu' => 'Aagmoldene Benützer $1',
+'rcshowhideliu' => 'Regischtrierti Benutzer $1',
'rcshowhideanons' => 'Nid aagmäldete Benutzer $1',
'rcshowhidepatr' => 'Vum Fäldhieter aagluegti Änderige $1',
'rcshowhidemine' => 'Eigeni Änderige $1',
'backend-fail-notsame' => 'S git scho ne Datei $1, wu nit idäntisch isch.',
'backend-fail-invalidpath' => '$1 isch kei giltige Pfad zum Spychere.',
'backend-fail-delete' => 'D Datei $1 het nit glöscht werre kinne.',
+'backend-fail-describe' => 'D Metadate fir d Datei „$1“ hän nit chenne gänderet wäre.',
'backend-fail-alreadyexists' => 'D Datei „$1“ git s scho.',
'backend-fail-store' => 'D Datei $1 het nit chenne unter em Name $2 gspycheret wäre.',
'backend-fail-copy' => 'D Datei $1 het nit no $2 chenne kopiert wäre.',
'upload_source_file' => ' (e Datei uf Dyynem Computer)',
# Special:ListFiles
-'listfiles-summary' => 'Die Spezialsyte lischtet alli uffegladene Dateie uf. Wänn noch eme bstimmte Benutzer gfilteret wird, wäre nume die Dateie zeigt, wun er di letschte Version uffeglade het.',
+'listfiles-summary' => 'Die Spezialsyte lischtet alli uffegladene Dateie uf.',
'listfiles_search_for' => 'Suech noch Datei:',
'imgfile' => 'Datei',
'listfiles' => 'Lischte vo Bilder',
'statistics-users-active-desc' => 'Benutzer mit Bearbeitige {{PLURAL:$1|in dr letschte 24 Stund|in dr letschte $1 Täg}}',
'statistics-mostpopular' => 'Am meischte aagluegti Syte',
+'pageswithprop' => 'Syte mit ere Syteneigeschaft',
+'pageswithprop-legend' => 'Syte mit ere Syteneigeschaft',
+'pageswithprop-text' => 'Die Spezialsyte lischet Syten auf, wu ne bstimmti Syteneigeschaft bruche.',
+'pageswithprop-prop' => 'Eigeschaftsname:',
+'pageswithprop-submit' => 'Gang ane',
+
'doubleredirects' => 'Doppleti Wyterleitige (Redirects)',
'doubleredirectstext' => 'Die Lischt zeigt Wyterleitige, wu uf anderi Wyterleitige verwyyse.
In jedere Zyylete het s Link zue dr erschte un dr zwote Wyterleitig un s Ziil vu dr zwote Wyterleitig, wu normalerwys di gwinscht Ziilsyten isch. Do sott eigetli scho di erscht Wyterleitig druf zeige.
'linksearch-pat' => 'Suechmuschter:',
'linksearch-ns' => 'Namensruum:',
'linksearch-ok' => 'Sueche',
-'linksearch-text' => 'Die Spezialsyte macht d Suechi no Syte megli, wu s bstimmti Weblink din het. Doderby chenne Platzhalter wie zem Byschpel <code>*.byschpel.de</code> brucht wäre. S mueß zmindecht ei Top-Level-Domain, z. B. „*.org“. aagee wäre. <br />Unterstitzti Protokoll: <code>$1</code> (Standard isch http, wänn kei Protokoll aagee isch).',
+'linksearch-text' => 'Die Spezialsyte macht d Suechi no Syte megli, wu s bstimmti Weblink din het. Doderby chenne Platzhalter wie zem Byschpel <code>*.byschpel.de</code> brucht wäre. S mueß zmindecht ei Top-Level-Domain, z. B. „*.org“. aagee wäre. <br />{{PLURAL:$2|Unterstitzt Protokoll|Unterstitzti Protokoll}}: <code>$1</code> (Standard isch http, wänn kei Protokoll aagee isch.)',
'linksearch-line' => '$1 isch vo $2 verknüpft',
'linksearch-error' => 'Platzhalter chönne numme am Aafang verwändet werre.',
# Special:ActiveUsers
'activeusers' => 'Lischt vu dr aktive Benutzer',
'activeusers-intro' => 'Des isch e Lischt vu Benutzer, wu irgedebis bearbeitet hän {{PLURAL:$1|am letschte Tag|in dr letschte $1 Täg}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|Bearbeitig|Bearbeitige}} {{PLURAL:$3|am letschte Tag|in dr letschte $3 Täg}}',
+'activeusers-count' => '$1 {{PLURAL:$1|Aktion|Aktione}} {{PLURAL:$3|am letschte Tag|in dr letschte $3 Täg}}',
'activeusers-from' => 'Zeig Benutzer ab:',
'activeusers-hidebots' => 'Bötli uusblände',
'activeusers-hidesysops' => 'Ammanne (Administratore) uusblände',
'watchnologin' => 'Du bisch nit aagmäldet',
'watchnologintext' => 'Du muesch [[Special:UserLogin|aagmäldet]] syy, zum Dyyni Beobachtigssyte z bearbeite.',
'addwatch' => 'zue de Beobachtigslischte derzue tue',
-'addedwatchtext' => "D Syte \"[[:\$1]]\" stoht jetz uf Dyyre [[Special:Watchlist|Beobachtigslischt]].
-Neji Änderige an dr Syte oder dr Diskussionssyte drvo chasch jetz dert säh. Usserdem sin die Änderige uf dr [[Special:RecentChanges|letschte Änderige]] '''fett''' gschribe, ass De si schnäller findsch.
-
-Wänn Du d Syte speter wider vu dr Lischt witt stryyche, deno druck eifach uf „{{int:Unwatch}}“.",
+'addedwatchtext' => 'D Syte "[[:$1]]" stoht jetz uf Dyyre [[Special:Watchlist|Beobachtigslischt]].
+Neji Änderige an dr Syte oder dr Diskussionssyte drvo chasch jetz dert säh.',
'removewatch' => 'Us der Beobachtigsliste usegnuu',
'removedwatchtext' => 'D Syte «[[:$1]]» isch us dyre [[Special:Watchlist|Beobachtigsliste]] glösche worde.',
'watch' => 'Beobachte',
'watchmethod-list' => 'Iberpriefe vu dr Beobachtigslischt no letschte Bearbeitige',
'watchlistcontains' => 'In Dyynere Beobachtigslischt het s $1 {{PLURAL:$1|Syte|Syte}}.',
'iteminvalidname' => 'Probläm mit em Yytrag „$1“, uugiltige Name.',
-'wlnote' => "Do {{PLURAL:$1|chunnt di letscht Änderig|chemme di letschte '''$1''' Änderige}} vu dr letschte {{PLURAL:$2|Stund|'''$2''' Stunde}}. Stand: $3, $4 Uhr.",
'wlshowlast' => 'Zeig di letschte $1 Stunde $2 Tage $3',
'watchlist-options' => 'Aazeigoptione',
'enotif_mailer' => '{{SITENAME}} E-Mail-Benochrichtigungsdienscht',
'enotif_reset' => 'Alli Syte as aagluegt markiere',
'enotif_impersonal_salutation' => '{{SITENAME}}-Benutzer',
+'enotif_subject_deleted' => '{{SITENAME}}-Syte $1 isch vu {{GENDER:$2|$2}} glescht wore',
+'enotif_subject_created' => '{{SITENAME}}-Syte $1 isch vu {{GENDER:$2|$2}} aagleit wore',
+'enotif_subject_moved' => '{{SITENAME}}-Syte $1 isch vu {{GENDER:$2|$2}} verschobe wore',
+'enotif_subject_restored' => '{{SITENAME}}-Syte $1 isch vu {{GENDER:$2|$2}} widerhärgstellt wore',
+'enotif_subject_changed' => '{{SITENAME}}-Syte $1 isch vu {{GENDER:$2|$2}} gänderet',
+'enotif_body_intro_deleted' => 'D {{SITENAME}}-Syte $1 isch am $PAGEEDITDATE vu {{GENDER:$2|$2}} glescht wore. Lueg $3.',
+'enotif_body_intro_created' => 'D {{SITENAME}}-Syte $1 isch am $PAGEEDITDATE vu {{GENDER:$2|$2}} aagleit wore. Lueg $3 fir di aktuäll Version.',
+'enotif_body_intro_moved' => 'D {{SITENAME}}-Syte $1 isch am $PAGEEDITDATE vu {{GENDER:$2|$2}} verschobe wore. Lueg $3 fir di aktuäll Version.',
+'enotif_body_intro_restored' => 'D {{SITENAME}}-Syte $1 isch am $PAGEEDITDATE vu {{GENDER:$2|$2}} widerhärgstellt wore. Lueg $3 fir di aktuäll Version.',
+'enotif_body_intro_changed' => 'D {{SITENAME}}-Syte $1 isch am $PAGEEDITDATE vu {{GENDER:$2|$2}} verschobe wore. Lueg $3 fir di aktuäll Version.',
'enotif_lastvisited' => '$1 zeigt alli Änderige uf s Mol.',
'enotif_lastdiff' => 'Lueg $1 no däre Änderig.',
'enotif_anon_editor' => 'Anonyme Benutzer $1',
-'enotif_body' => 'Liebe/Liebi $WATCHINGUSERNAME,
-
-d {{SITENAME}}-Syte $PAGETITLE isch vum $PAGEEDITOR am $PAGEEDITDATE $CHANGEDORCREATED wore, di aktuell Version isch: $PAGETITLE_URL
-
+'enotif_body' => 'Sali $WATCHINGUSERNAME,
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
Zämmenfassig vum Autor: $PAGESUMMARY $PAGEMINOREDIT
+
Kontakt zum Autor:
Mail $PAGEEDITOR_EMAIL
Wiki $PAGEEDITOR_WIKI
-Es wird kei wyteri Nochricht iber Änderige gschickt, bis Du uf sälli Syte gohsch.
-Uf Dyyre Beobachtigssyte chasch d Beobachtigsmarker fir alli Syte zrucksetze, wu Du beobachte tuesch.
+Es wird kei wyteri Nochricht iber Änderige gschickt, bis Du uf sälli Syte gohsch un di aamäldsch. Uf Dyyre Beobachtigssyte chasch d Beobachtigsmarker fir alli Syte zrucksetze, wu Du beobachte tuesch.
Dyy fryndli {{SITENAME}}-Nochrichtesyschtem
'deleteotherreason' => 'Andere/zuesätzleche Grund:',
'deletereasonotherlist' => 'Andere Grund',
'deletereason-dropdown' => '* Allgmeini Leschgrind
+** Spam
** Wunsch vum Autor
** Urheberrächtsverletzig
-** Vandalismus',
+** Vandalismus
+** Defekti Wyterleitung',
'delete-edit-reasonlist' => 'Leschgrind bearbeite',
'delete-toobig' => 'Die Syte het e arg langi Versionsgschicht mit meh as $1 {{PLURAL:$1|Version|Versione}}. S Lesche vu sonige Syte isch yygschränkt wore go verhindere, ass dr Server vu {{SITENAME}} us Versäh zytwys iberlaschtet wird.',
'delete-warning-toobig' => 'Die Syte het e arg langi Versionsgschicht mit meh as $1 {{PLURAL:$1|Version|Versione}}. S Lesche cha dr Datebankbetriib vu {{SITENAME}} stere.',
Di letscht Änderig het [[User:$3|$3]] ([[User talk:$3|Diskussion]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) gmacht.',
'editcomment' => "D Änderigszämmefassig isch: „''$1''“.",
'revertpage' => 'Ruckgängig gmacht zue dr letschte Änderig vo [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussion]]) mit de letzte Version vo [[User:$1|$1]] widerhergstellt',
-'revertpage-nouser' => 'Bearbeitige ruckgängig gmacht vu (Benutzername uusegnuu), letschti Fassig vu [[User:$1|$1]] widerhärgstellt',
+'revertpage-nouser' => 'Bearbeitige ruckgängig gmacht vu (Benutzername uusegnuu), letschti Fassig vu {{GENDER:$1|[[User:$1|$1]]}} widerhärgstellt',
'rollback-success' => 'D Änderige vu $1 sin ruckgängig gmacht wore un di letscht Version vu $2 isch widerhärgstellt wore.',
# Edit tokens
'prot_1movedto2' => '[[$1]] isch uf [[$2]] verschobe worde.',
'protect-badnamespace-title' => 'Nit-schitzbare Namensruum',
'protect-badnamespace-text' => 'Syte in däm Namensruum chenne nit gschitzt wäre.',
+'protect-norestrictiontypes-text' => 'Die Syte cha nit gschitzt wäre, wel kei Bschränkigstype verfiegbar sin.',
+'protect-norestrictiontypes-title' => 'Nit schitzbari Syte',
'protect-legend' => 'Syteschutzstatus ändere',
'protectcomment' => 'Grund:',
'protectexpiry' => 'Gsperrt bis:',
'protect-cascadeon' => 'Die Syten isch gschützt, wil si {{PLURAL:$1|zur folgende Syte|zu de folgende Syte}} ghört, wo derfür e Kaskadesperrig gilt.
Der Schutzstatus vo dere Syte lat sech la ändere, aber das het kei Yfluss uf d Kaskadesperrig.',
'protect-default' => 'Alle Benutzer',
-'protect-fallback' => '«$1»-Berächtigung nötig',
-'protect-level-autoconfirmed' => 'Neji un nit regischtrierti Benutzer sperre',
-'protect-level-sysop' => 'Numme Ammanne',
+'protect-fallback' => 'Nume Benutzer mit dr „$1“-Berächtigung erlaube.',
+'protect-level-autoconfirmed' => 'Nume automatisch bstetigte Benutzer erlaube',
+'protect-level-sysop' => 'Numme Ammanne erlaube',
'protect-summary-cascade' => 'Kaskade',
'protect-expiring' => 'bis $1 (UTC)',
'protect-expiring-local' => 'bis $1',
'range_block_disabled' => 'D Megligkeit, ganzi Adrässryym z sperre, isch nit aktiviert.',
'ipb_expiry_invalid' => 'D Duur, wu yygee woren isch, isch nit giltig.',
'ipb_expiry_temp' => 'Versteckti Benutzername-Sperrine solle permanent syy.',
-'ipb_hide_invalid' => 'S isch nit megli des Benutzerkonto z unterdrucke; villicht het s viili Bearbeitige.',
+'ipb_hide_invalid' => 'S isch nit megli des Benutzerkonto z unterdrucke, wel s meh wie {{PLURAL:$1|ei Bearbeitig|$1 Bearbeitige}} ufwyst.',
'ipb_already_blocked' => '„$1“ isch scho gsperrt wore.',
'ipb-needreblock' => '{{GENDER:|De|D|}} „$1“ isch scho gsperrt. Mechtsch d Sperrparameter ändere?',
'ipb-otherblocks-header' => 'Anderi {{PLURAL:$1|Sperri|Sperrine}}',
# Move page
'move-page' => '„$1“ verschiebe',
'move-page-legend' => 'Artikel verschiebe',
-'movepagetext' => 'Mit däm Formular chasch du en Artikel verschiebe, u zwar mit syre komplette Versionsgschicht. Der alt Titel leitet zum nöie wyter, aber Links ufen alt Titel blyben unveränderet.',
+'movepagetext' => "Mit däm Formular chasch e Syte umnänne, indäm Du si mitsamt allne Versionen uf e neje Titel verschiebsch.
+Dr alt Titel wird derno zum eje wyterleite.
+Du chasch Wyterleitige, wu uf dr Originaltitel verwyse, automatisch korrigiere loo.
+Stell sicher, dass Du im Aaschluss alli [[Special:DoubleRedirects|dopplete]] oder [[Special:BrokenRedirects|defekte Wyterleitige]] iberpriefsch.
+Du bisch derfir verantwortlig, ass Link wyter uf s korräkt Ziil verwyse.
+
+D Syte wird '''nit''' verschobe, wänn s scho ne Syte mit em vorgsähne Titel git, usser s isch e Wyterleitig ohni Versionsgschicht.
+Des heißt, ass Du d Umnännig chasch ruckgängig mache, wänn e Fähler gmacht hesch. Du chasch dergege kei Syte, wu s scho git, iberschrybe.
+
+'''Warnig!'''
+D Verschiebig cha wyteri un nit erwarteti Folge fir vylmol bsuechti Syte haa.
+Du sottsch wäge däm d Konsequänze verstande haa, vorbe jetz wyter machsch.",
'movepagetext-noredirectfixer' => "Mit däm Formular unte chasch e Syte umnänne, indäm Du si mitsamt allene Versione uf e neje Titel verschiebsch.
Dr alt Titel leitet derno zum neje wyter.
Stell sicher, ass Du im Aaschluss alli [[Special:DoubleRedirects|dopplete]] oder [[Special:BrokenRedirects|kaputtige Wyterleitige]] iberpriefsch.
'import-error-interwiki' => 'D Syte „$1“ isch nit importiert wore, wel dr Name vun ere fir externi Link (Interwiki) reserviert isch.',
'import-error-special' => 'D Syte „$1“ isch nit importiert wore, wel si zuen eme bsundere Namensruum ghert, wu kei Syte megli sin.',
'import-error-invalid' => 'Syte „$1“ isch nit importiert wore, wel dr Name vun ere nit giltig isch.',
+'import-error-unserialize' => 'D Version $2 vu dr Syte „$1“ het nit chenne deserialisiert wäre. D Version isch fir d Verwändig vum Inhaltsmodäll $3 gmäldet wore, wu as $4 serialisiert isch.',
'import-options-wrong' => 'Falschi {{PLURAL:$2|Option|Optione}}: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'Dää Stammsytename isch nit giltig.',
'import-rootpage-nosubpage' => 'Im Namensruum „$1“ vu dr Stammsyte sin kei Untersyte erlaubt.',
'tooltip-pt-watchlist' => 'Lischte vo de beobachtete Syte.',
'tooltip-pt-mycontris' => 'Lischt vu Dyyne Byyträg',
'tooltip-pt-login' => 'Aamälde',
-'tooltip-pt-anonlogin' => 'Mir ermuntre dich zwar dass du dich miteme Benutzerkonto aamääldsch, es isch aber kei Pflicht!',
'tooltip-pt-logout' => 'Abmälde',
'tooltip-ca-talk' => 'Diskussion zum Artikelinhalt',
'tooltip-ca-edit' => 'Syte bearbeite. Bitte vor em Spychere d Vorschou aaluege.',
'pageinfo-length' => 'Sytelengi (in Byte)',
'pageinfo-article-id' => 'Syten-ID',
'pageinfo-language' => 'Syteninhaltssproch',
-'pageinfo-robot-policy' => 'Suechmaschinestatus',
-'pageinfo-robot-index' => 'Indexierbar',
-'pageinfo-robot-noindex' => 'Nit indexierbar',
+'pageinfo-robot-policy' => 'Indexierig dur Suechmaschine',
+'pageinfo-robot-index' => 'Erlaubt',
+'pageinfo-robot-noindex' => 'Nit erlaubt',
'pageinfo-views' => 'Aazahl Sytenufruef',
'pageinfo-watchers' => 'Aazahl vu Beobachter',
-'pageinfo-redirects-name' => 'Wyterleitige zue däre Syte',
+'pageinfo-few-watchers' => 'Weniger wie {{PLURAL:$1|ei|$1}} Beobachter',
+'pageinfo-redirects-name' => 'Zahl vu dr Wyterleitige zue däre Syte',
'pageinfo-subpages-name' => 'Untersyte vu däre Syte',
'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|Wyterleitig|Wyterleitige}}; $3 {{PLURAL:$3|anderi Syte}})',
'pageinfo-firstuser' => 'Aagleit vu',
'pageinfo-magic-words' => '{{PLURAL:$1|Magischs Wort|Magischi Werter}} ($1)',
'pageinfo-hidden-categories' => 'Versteckti {{PLURAL:$1|Kategori|Kategorie}} ($1)',
'pageinfo-templates' => 'Yybundeni {{PLURAL:$1|Vorlag|Vorlage}} ($1)',
+'pageinfo-transclusions' => 'Yybunden in {{PLURAL:$1|1 Syte|$1 Syte}}',
'pageinfo-toolboxlink' => 'Informatione zue dr Syte',
'pageinfo-redirectsto' => 'Weiterleitung nach',
'pageinfo-redirectsto-info' => 'Information',
'pageinfo-protect-cascading' => 'Syte mit Kaskadeschutz vu do',
'pageinfo-protect-cascading-yes' => 'Jo',
'pageinfo-protect-cascading-from' => 'Syte mit Kaskadeschutz vu',
+'pageinfo-category-info' => 'Kategoriinformatione',
+'pageinfo-category-pages' => 'Aazahl vu dr Syte',
+'pageinfo-category-subcats' => 'Aazahl vu dr Unterkategorie',
+'pageinfo-category-files' => 'Aazahl vu dr Dateie',
# Patrolling
'markaspatrolleddiff' => 'Als patrulyrt markyre',
'exif-compression-4' => 'CCITT Gruppe 4 Faxkodierig',
'exif-copyrighted-true' => 'Gschitzt',
-'exif-copyrighted-false' => 'Public Domain',
+'exif-copyrighted-false' => 'Urheberrächtsstatus nit feschtgleit',
'exif-unknowndate' => 'Nit bekannt Datum',
'exif-gpslongitude-w' => 'weschtl. Längi',
# Pseudotags used for GPSAltitudeRef
-'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|Meter|Meter}} iber em Meeresspiegel',
-'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|Meter|Meter}} unter em Meeresspiegel',
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|Meter}} iber em Meeresspiegel',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|Meter}} unter em Meeresspiegel',
'exif-gpsstatus-a' => 'Mässig lauft',
'exif-gpsstatus-v' => 'Interoperabilität vu Mässige',
'specialpages-group-highuse' => 'Syte wo oft bruucht werde',
'specialpages-group-pages' => 'Lischte vo Syte',
'specialpages-group-pagetools' => 'Sytewerchzüüg',
-'specialpages-group-wiki' => 'Syschtemdate un Wärchzüüg',
+'specialpages-group-wiki' => 'Date un Wärchzyyg',
'specialpages-group-redirects' => 'Spezialsyte wo wyterleite',
'specialpages-group-spam' => 'Spam-Wärchzüüg',
'expand_templates_generate_xml' => 'Zeig XML-Parser-Baum',
'expand_templates_preview' => 'Vorschou',
+# Unknown messages
+'uploadinvalidxml' => 'S XML in dr uffegladene Datei het nit chenne parst wäre.',
);
'tog-numberheadings' => 'મથાળાંઓને આપો-આપ ક્રમ (ઑટો નંબર) આપો',
'tog-showtoolbar' => 'ફેરફાર માટેની ટૂલબાર બતાવો',
'tog-editondblclick' => 'બે વખત ક્લિક કરી પાનાંઓમાં ફેરફાર કરો',
-'tog-editsection' => 'વિભાગોમાં [ફેરફાર કરો] કડી દ્વારા વિભાગીય ફેરફાર લાગુ કરો.',
'tog-editsectiononrightclick' => 'વિભાગના મથાળાં ને રાઇટ ક્લિક દ્વારા ફેરફાર કરવાની રીત અપનાવો.',
-'tog-showtoc' => 'અનુક્રમણિકા દર્શાવો (૩થી વધુ પેટા-મથાળા વાળા લેખો માટે)',
'tog-rememberpassword' => 'આ કમ્પ્યૂટર પર મારી લોગ-ઇન વિગતો યાદ રાખો (મહત્તમ $1 {{PLURAL:$1|દિવસ|દિવસો}} માટે)',
'tog-watchcreations' => 'મેં બનાવેલાં પાનાં અને અપલોડ કરેલી ફાઇલો મારી ધ્યાનસૂચિમાં ઉમેરો',
'tog-watchdefault' => 'હું ફેરફાર કરૂં તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
*
* @author Anson2812
* @author Dream hot
+ * @author EagerLin
* @author Hakka
* @author Jetlag
* @author Mnemonic kek
'tog-numberheadings' => '標題自動編號',
'tog-showtoolbar' => '展示編寫工具欄',
'tog-editondblclick' => '雙撳編寫頁面',
-'tog-editsection' => '允許通過點撳[編寫]鏈接編寫段落',
'tog-editsectiononrightclick' => '允許右撳標題編寫段落',
-'tog-showtoc' => '顯示目錄(針對一頁超過3隻標題嘅頁面)',
'tog-rememberpassword' => '在邇隻瀏覽器記下亻厓嘅登入狀態(最多$1日)',
'tog-watchcreations' => '加亻厓建立嘅頁面撈上傳嘅文件加入亻厓嘅監視列表',
'tog-watchdefault' => '將亻厓編寫嘅頁面撈檔案加入亻厓嘅監視列表',
'tog-watchmoves' => '將亻厓移動嘅頁面撈檔案加入亻厓嘅監視列表',
'tog-watchdeletion' => '加亻厓刪除嘅頁面撈文件入亻厓嘅監視列表',
-'tog-minordefault' => '默認標記全部編寫為細微修改',
+'tog-minordefault' => '默認標記全部編寫係細微修改',
'tog-previewontop' => '在編寫框上頭顯示預覽',
'tog-previewonfirst' => '第一擺編寫時顯示預覽',
'tog-enotifwatchlistpages' => '亻厓監視列表肚嘅頁面或文件有更動時,發電子郵件分亻厓',
'tog-enotifusertalkpages' => '亻厓嘅交流頁有更改時,發電子郵件分亻厓',
-'tog-enotifminoredits' => '頁面撈文件嘅細修改也發電子郵件分我',
+'tog-enotifminoredits' => '頁面撈文件个細修改也發電子郵件分我',
'tog-enotifrevealaddr' => '在通知電子郵件肚顯示亻厓嘅電子郵件地址',
'tog-shownumberswatching' => '展示監視中嘅使用人數目',
'tog-oldsig' => '現有簽名:',
'articlepage' => '查看內容頁面',
'talk' => '討論',
'views' => '查看數',
-'toolbox' => '工具箱',
+'toolbox' => 'Kûng-khí-siông',
'userpage' => '查看用戶頁面',
'projectpage' => '查看項目頁面',
'imagepage' => '查看文件頁面',
'youhavenewmessages' => '汝有$1($2)。',
'youhavenewmessagesfromusers' => '汝有來自{{PLURAL:$3|另一位用戶|$3位用戶}}嘅$1($2)。',
'youhavenewmessagesmanyusers' => '汝有來自多位用戶嘅$1( $2 )。',
-'newmessageslinkplural' => '{{PLURAL:$1|一條新信息|新信息}}',
-'newmessagesdifflinkplural' => '最新{{PLURAL:$1|更改|更改}}',
+'newmessageslinkplural' => '{{PLURAL:$1|yit-thiàu sîn sêu-sit|999=sîn sêu-sit}}',
+'newmessagesdifflinkplural' => 'chui-khiun{{PLURAL:$1|kiên-kói|kiên-kói}}',
'youhavenewmessagesmulti' => '汝在$1肚有新消息',
'editsection' => '編寫',
'editold' => '編寫',
'databaseerror' => '數據庫差錯',
'databaseerror-text' => '出現資料庫查詢錯誤。
邇可能表示軟件肚存在錯誤。',
+'databaseerror-textcl' => 'chṳ̂-liau-ku chhà-chhìm chho-ngu',
+'databaseerror-query' => 'chhà-chhìm:$1',
+'databaseerror-function' => 'kûng-nèn:$1',
+'databaseerror-error' => 'chho-ngu:$1',
'laggedslavemode' => "'''警告:'''頁面可能毋包含最近嘅更新。",
'readonly' => '數據庫分人鎖定',
'enterlockreason' => '請撳入禁止訪問原因, 包括估計重新開放嘅時間',
'cannotdelete-title' => '無辦法刪除頁面「$1」',
'delete-hook-aborted' => '刪除分勾仔中止。
其毋曾提供任何解釋。',
+'no-null-revision' => 'mò-fap chhóng-kien "$1" ya̍p-mien sîn-ke khûng-pa̍k siû-thin',
'badtitle' => '有錯嘅標題',
'badtitletext' => '所請求頁面嘅標題是無效嘅、毋存在嘅,跨語言或跨wiki鏈接嘅標題有錯。其可能包含一隻或還較多做毋得用於標題嘅字符。',
'perfcached' => '下列係緩存數據,因此可能毋係最新嘅。最多{{PLURAL:$1|單淨有1嘅結果|$1嘅結果}}可用。',
'rows' => '行数:',
'columns' => '列:',
'searchresultshead' => '搜尋',
-'resultsperpage' => '每頁顯示鏈接數:',
'stub-threshold' => '<a href="#" class="stub">短頁面鏈接</a>格式門檻值(字節):',
'recentchangesdays' => '最近更改肚嘅顯示日數:',
'recentchangescount' => 'Chui-khiûn kiên-kói chûng ke phiên-siá chúng-su:',
'watchmethod-list' => '檢查最近編寫嘅分監視頁面',
'watchlistcontains' => '汝嘅監視列表包含$1隻頁面。',
'iteminvalidname' => "頁面'$1'錯誤,無效命名...",
-'wlnote' => 'Yî-ha he chui-khiûn <b>$2</b> séu-sṳ̀ nui-ke chui-heu $1-chhṳ chin-siû.',
'wlshowlast' => '展示最近$1隻鐘頭,$2日或$3嘅更改。',
'watchlist-options' => '監視列表選項',
'block-log-flags-noautoblock' => '禁用自動查封',
'range_block_disabled' => '單淨管理員正做得創建禁止查封嘅範圍。',
'ipb_expiry_invalid' => '無效嘅終止時間。',
+'ipb_hide_invalid' => 'Put-tet yit-chak yung-fu; Kì yû chhêu-ko {{PLURAL:$1|$1}} chhṳ-su phiên-siá',
'ipb_already_blocked' => 'Yí-kîn fûng-só "$1"',
'ipb_cant_unblock' => '差錯: 尋毋到查封ID$1。可能已經解除封禁。',
'ip_range_invalid' => '無效嘅IP範圍。',
'tooltip-pt-watchlist' => '汝監視中頁面嘅更改列表',
'tooltip-pt-mycontris' => '汝嘅貢獻列表',
'tooltip-pt-login' => '建議汝登入,但係並非必須嘅',
-'tooltip-pt-anonlogin' => 'Kien-ngi ngì tên-ki, than-he pin-fî pit-sî.',
'tooltip-pt-logout' => '登出',
'tooltip-ca-talk' => '關於頁面正文嘅討論',
'tooltip-ca-edit' => '汝做得編寫邇頁,請在保存前用預覽撳掣。',
'tog-numberheadings' => 'מספור כותרות אוטומטי',
'tog-showtoolbar' => 'הצגת סרגל העריכה',
'tog-editondblclick' => 'עריכת דפים בלחיצה כפולה',
-'tog-editsection' => 'עריכת פסקאות באמצעות קישורי [עריכה]',
'tog-editsectiononrightclick' => 'עריכת פסקאות באמצעות לחיצה ימנית על כותרות הפסקאות',
-'tog-showtoc' => 'הצגת תוכן עניינים (עבור דפים עם יותר מ־3 כותרות)',
'tog-rememberpassword' => 'שמירת הכניסה שלי בדפדפן זה ({{PLURAL:$1|ליום אחד|ליומיים|ל־$1 ימים}} לכל היותר)',
'tog-watchcreations' => 'מעקב אחרי דפים שיצרתי וקבצים שהעליתי',
'tog-watchdefault' => 'מעקב אחרי דפים וקבצים שערכתי',
'autoblockedtext' => 'כתובת ה־IP שלכם נחסמה באופן אוטומטי כיוון שמשתמש אחר, שנחסם על־ידי $1, עשה בה שימוש.
הסיבה שניתנה לחסימה היא:
-:\'\'\'$2\'\'\'
+:<em>$2</em>
* תחילת החסימה: $8
* פקיעת החסימה: $6
'watchmethod-list' => 'בודק את העריכות האחרונות בדפים שברשימת המעקב',
'watchlistcontains' => 'רשימת המעקב כוללת {{PLURAL:$1|דף אחד|$1 דפים}}.',
'iteminvalidname' => 'בעיה עם $1, שם שגוי…',
-'wlnote' => "להלן {{PLURAL:$1|השינוי האחרון|'''$1''' השינויים האחרונים}} {{PLURAL:$2|בשעה האחרונה|בשעתיים האחרונות|ב־'''$2''' השעות האחרונות}}, עד $4, $3.",
'wlshowlast' => '(הצגת $1 שעות אחרונות | $2 ימים אחרונים | $3)',
'watchlist-options' => 'אפשרויות ברשימת המעקב',
'exblank' => 'הדף היה ריק',
'delete-confirm' => 'מחיקת $1',
'delete-legend' => 'מחיקה',
-'historywarning' => "'''אזהרה:''' לדף שאתם עומדים למחוק יש היסטוריית שינויים של בערך {{PLURAL:$1|גרסה אחת|$1 גרסאות}}:",
+'historywarning' => "'''אזהרה:''' לדף שאתם עומדים למחוק יש היסטוריית שינויים של {{PLURAL:$1|גרסה אחת|$1 גרסאות}}:",
'confirmdeletetext' => 'אתם עומדים למחוק דף יחד עם כל ההיסטוריה שלו.
אנא אשרו שזה אכן מה שאתם מתכוונים לעשות, שאתם מבינים את התוצאות של מעשה כזה, ושהמעשה מבוצע בהתאם ל[[{{MediaWiki:Policy-url}}|נוהלי האתר]].',
'range_block_disabled' => 'האפשרות לחסום טווח כתובות אינה פעילה.',
'ipb_expiry_invalid' => 'זמן פקיעת החסימה אינו תקין.',
'ipb_expiry_temp' => 'חסימות הכוללות הסתרת שם משתמש חייבות להיות לזמן בלתי מוגבל.',
-'ipb_hide_invalid' => 'לא ניתן להסתיר שם משתמש זה; ייתכן שבוצעו ממנו יותר מדי עריכות.',
+'ipb_hide_invalid' => 'לא ניתן להסתיר שם משתמש זה; {{PLURAL:$1|בוצעה ממנו יותר מעריכה אחת|בוצעו ממנו יותר מ֫־$1 עריכות}}.',
'ipb_already_blocked' => 'המשתמש "$1" כבר נחסם.',
'ipb-needreblock' => '$1 כבר נחסם. האם ברצונכם לשנות את הגדרות החסימה?',
'ipb-otherblocks-header' => '{{PLURAL:$1|חסימה אחרת|חסימות אחרות}}',
'tooltip-pt-watchlist' => 'רשימת הדפים שאתם עוקבים אחרי השינויים בהם',
'tooltip-pt-mycontris' => 'רשימת התרומות שלך',
'tooltip-pt-login' => 'מומלץ להירשם, אך אין חובה לעשות כן',
-'tooltip-pt-anonlogin' => 'מומלץ להירשם, אך אין חובה לעשות כן',
'tooltip-pt-logout' => 'יציאה מהחשבון',
'tooltip-ca-talk' => 'שיחה על דף זה',
'tooltip-ca-edit' => 'באפשרותכם לערוך דף זה. אנא השתמשו בלחצן "תצוגה מקדימה" לפני השמירה',
* @author Krinkle
* @author Kumar
* @author Mayur
+ * @author Nikhil.kawale
* @author Odisha1
* @author Omprakash
* @author Pulkitsingh01
* @author Shantanoo
* @author Shirayuki
* @author Shrish
+ * @author Shubhamkanodia
* @author Shyam
* @author Shyam123.ckp
* @author Siddhartha Ghai
'tog-numberheadings' => 'शीर्षक स्व-क्रमांकित करें',
'tog-showtoolbar' => 'सम्पादन औज़ारपट्टी दिखाएँ',
'tog-editondblclick' => 'दुगुने क्लिक पर पृष्ठ संपादित करें',
-'tog-editsection' => '[संपादित करें] कड़ियों द्वारा अनुभाग संपादन सक्षम करें',
'tog-editsectiononrightclick' => 'अनुभाग शीर्षक पर दायाँ क्लिक करने पर अनुभाग सम्पादित करें',
-'tog-showtoc' => 'अनुक्रम दर्शायें (जिन पृष्ठों पर तीन से अधिक अनुभाग हों)',
'tog-rememberpassword' => 'इस ब्राउज़र पर मेरा कूटशब्द (अधिकतम $1 {{PLURAL:$1|दिन|दिनों}} तक) याद रखें',
'tog-watchcreations' => 'मेरे द्वारा निर्मित पृष्ठों और मेरी अपलोड की फ़ाइलों को मेरी ध्यानसूची में जोड़ें',
'tog-watchdefault' => 'मेरे द्वारा सम्पादित पृष्ठों और फ़ाइलों को मेरी ध्यानसूची में जोड़ें',
'youhavenewmessages' => 'आपके लिए $1 हैं। ($2)',
'youhavenewmessagesfromusers' => 'आपके लिये {{PLURAL:$3|एक अन्य सदस्य|$3 अन्य सदस्यों}} के $1 हैं। ($2)',
'youhavenewmessagesmanyusers' => 'आपके लिये $1 हैं। ($2)',
-'newmessageslinkplural' => '{{PLURAL:$1|एक नया सन्देश|नये सन्देश}}',
-'newmessagesdifflinkplural' => '{{PLURAL:$1|पिछला|पिछले}} बदलाव',
+'newmessageslinkplural' => '{{PLURAL:$1|एक नया सन्देश|999=नये सन्देश}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|पिछला|999=पिछले}} बदलाव',
'youhavenewmessagesmulti' => '$1 पर आपके लिए नया संदेश है',
'editsection' => 'सम्पादन',
'editold' => 'सम्पादन',
'invalidtitle-knownnamespace' => '"$2" नामस्थान और "$3" नाम वाला गलत शीर्षक',
'invalidtitle-unknownnamespace' => 'अज्ञात नामस्थान संख्या $1 और नाम "$2" वाला गलत शीर्षक',
'exception-nologin' => 'लॉग इन नहीं किया है',
-'exception-nologin-text' => 'इस पृष्ठ अथवा कार्य के लिए आपको विकि में लॉग्ड इन होना आवश्यक है।',
+'exception-nologin-text' => 'इस पृष्ठ अथवा कार्य को सक्षम करने के लिए कृपया [[Special:Userlogin|लॉग इन]] करें।',
+'exception-nologin-text-manual' => 'इस पृष्ठ अथवा कार्य को सक्षम करने के लिए कृपया $1 करें।',
# Virus scanner
'virus-badscanner' => "गलत जमाव: अज्ञात वायरस जाँचक: ''$1''",
'gotaccount' => "पहले से आपका खाता है? '''$1''' करें।",
'gotaccountlink' => 'लॉग इन',
'userlogin-resetlink' => 'अपनी प्रवेश जानकारी भूल गए हैं?',
-'userlogin-resetpassword-link' => 'à¤\85पना à¤\95à¥\82à¤\9fशबà¥\8dद रà¥\80सà¥\87à¤\9f à¤\95रà¥\87à¤\82',
+'userlogin-resetpassword-link' => 'à¤\85पना पासवरà¥\8dड à¤à¥\82ल à¤\97à¤\8f?',
'helplogin-url' => 'Help:लॉगिंग इन',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|लॉग इन करने में सहायता]]',
+'userlogin-loggedin' => 'आप {{GENDER:$1|$1}} के रूप में पहले से लॉग्ड इन हैं।
+किसी अन्य सदस्य के रूप में लॉग इन करने के लिए निम्नलिखित फ़ॉर्म का प्रयोग करें।',
+'userlogin-createanother' => 'एक अन्य खाता खोलें',
'createacct-join' => 'अपनी जानकारी नीचे लिखें',
'createacct-another-join' => 'नए खाते की जानकारी नीचे प्रदान करें।',
'createacct-emailrequired' => 'ई-मेल पता',
'passwordtooshort' => 'आपका कूटशब्द कम से कम {{PLURAL:$1|1 अक्षर|$1 अक्षरों}} का होना चाहिये।',
'password-name-match' => 'आपका कूटशब्द आपके सदस्यनाम से भिन्न होना चाहिए।',
'password-login-forbidden' => 'इस सदस्यनाम और कूटशब्द का उपयोग वर्जित है।',
-'mailmypassword' => 'à¤\88-मà¥\87ल दà¥\8dवारा नया à¤\95à¥\82à¤\9fशबà¥\8dद à¤à¥\87à¤\9cें',
+'mailmypassword' => 'à¤\95à¥\82à¤\9fशबà¥\8dद पà¥\81नà¤\83सà¥\8dथापित à¤\95रें',
'passwordremindertitle' => '{{SITENAME}} के लिये नया अस्थायी कूटशब्द',
'passwordremindertext' => 'किसी ने (शायद आपने ही, $1 आइ॰पी पते से) {{SITENAME}} ($4) पर इस्तेमाल के लिये नया कूटशब्द मँगाया है। सदस्य "$2" के लिए एक अस्थायी कूटशब्द बना दिया गया है, और यह अभी "$3" है। यदि यह आपकी ही मंशा थी, तो अब आपको सत्रारंभ करके एक नया कूटशब्द चुनना होगा।
आपके अस्थायी कूटशब्द की अवधि {{PLURAL:$5|एक दिन|$5 दिनों}} में समाप्त हो जाएगी।
'passwordsent' => '"$1" के ई-मेल पते पर एक नया कूटशब्द भेज दिया गया है।
ई-मेल पाने बाद कृपया दुबारा लॉग इन करें।',
'blocked-mailpassword' => 'आपके आइ॰पी पते को सम्पादन करने से अवरुद्ध कर दिया गया है, और गलत इस्तेमाल रोकने के लिये कूटशब्द पुनः प्राप्ति की सुविधा इस आइ॰पी पर बंद कर दी गई है।',
-'eauthentsent' => 'दर्ज किये हुए ई-मेल पते पर एक सत्यापन ई-मेल भेजा गया है।
-à¤\86पà¤\95à¥\8b à¤\89स à¤\88-मà¥\87ल मà¥\87à¤\82 दियà¥\87 हà¥\81à¤\8f निरà¥\8dदà¥\87शà¥\8bà¤\82 à¤\95à¥\87 à¤\85नà¥\81सार à¤\95à¥\8dरियाà¤\8fà¤\81 à¤\95र à¤\95à¥\87 à¤\88-मà¥\87ल पतà¥\87 à¤\95ा सतà¥\8dयापन à¤\95रना हà¥\8bà¤\97ा, à¤\89सà¤\95à¥\87 पशà¥\8dà¤\9aात हà¥\80 यहाà¤\81 सà¥\87 à¤\95à¥\8bà¤\88 दà¥\82सरा à¤\88-मà¥\87ल à¤à¥\87à¤\9cा à¤\9cाà¤\8fà¤\97ा।',
+'eauthentsent' => 'दरà¥\8dà¤\9c à¤\95ियà¥\87 हà¥\81à¤\8f à¤\88-मà¥\87ल पतà¥\87 पर à¤\8fà¤\95 सतà¥\8dयापन à¤\88-मà¥\87ल à¤à¥\87à¤\9cा दिया à¤\97या हà¥\88।
+आपको उस ई-मेल में दिये हुए निर्देशों के अनुसार ई-मेल पते का सत्यापन करना होगा, उसके पश्चात ही यहाँ से कोई दूसरा ई-मेल भेजा जाएगा।',
'throttled-mailpassword' => 'पिछले {{PLURAL:$1|एक घंटे|$1 घंटों}} के दरमियान एक कूटशब्द स्मरण-पत्र भेजा जा चुका है।
दुरुपयोग से बचाव के लिए हर {{PLURAL:$1|एक घंटे|$1 घंटों}} में एक कूटशब्द स्मरण-पत्र ही भेजा जाता है।',
'mailerror' => 'ई-मेल भेजने में त्रुटि: $1',
'acct_creation_throttle_hit' => 'आपके आइ॰पी पते से आए आगंतुक पिछले चौबीस घंटों में इस विकि पर {{PLURAL:$1|एक खाता|$1 खाते}} बना चुके हैं, इस समयावधि में यही अधिकतम सीमा है।
अतः इस समय इस आइ॰पी पते का प्रयोग करने वाले आगंतुक और खाते नहीं खोल सकेंगे।',
-'emailauthenticated' => 'à¤\86पà¤\95à¥\87 à¤\88-मà¥\87ल पतà¥\87 à¤\95à¥\80 दिनाà¤\82à¤\95 $2 à¤\95à¥\8b $3 बà¤\9cà¥\87 पà¥\81षà¥\8dà¤\9fि हà¥\81à¤\88 थà¥\80।',
+'emailauthenticated' => 'à¤\86पà¤\95ा à¤\88-मà¥\87ल पता $2 à¤\95à¥\8b $3 बà¤\9cà¥\87 सतà¥\8dयापित à¤\95िया à¤\97या।',
'emailnotauthenticated' => 'आपके ई-मेल पते की पुष्टि नहीं हुई है।
नीचे दी किसी भी सुविधा के लिये आपको ई-मेल नहीं भेजा जाएगा।',
'noemailprefs' => 'इन सुविधाओं का प्रयोग करने के लिये अपनी वरीयताओं में ई-मेल पता दें।',
'retypenew' => 'नया कूटशब्द पुन: लिखें:',
'resetpass_submit' => 'कूटशब्द बनाएँ और लॉग इन करें',
'changepassword-success' => 'आपका कूटशब्द बदल दिया गया है!',
+'changepassword-throttled' => 'आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।
+पुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।',
'resetpass_forbidden' => 'कूटशब्द बदले नहीं जा सकते',
'resetpass-no-info' => 'इस पृष्ठ का सीधे प्रयोग करने के लिए आपको लॉग इन करना होगा।',
'resetpass-submit-loggedin' => 'कूटशब्द बदलें',
# Special:PasswordReset
'passwordreset' => 'कूटशब्द रीसेट',
'passwordreset-text-one' => 'अपना कूटशब्द रीसेट करने के लिए यह फ़ॉर्म भरें।',
-'passwordreset-text-many' => '{{PLURAL:$1|à¤\85पना à¤\95à¥\82à¤\9fशबà¥\8dद रà¥\80सà¥\87à¤\9f à¤\95रनà¥\87 à¤\95à¥\87 लिà¤\8f निमà¥\8dन मà¥\87à¤\82 सà¥\87 à¤\95à¥\8bà¤\88 à¤\8fà¤\95 भरें।}}',
+'passwordreset-text-many' => '{{PLURAL:$1|à¤\88मà¥\87ल à¤\95à¥\87 माधà¥\8dयम सà¥\87 à¤\8fà¤\95 à¤\85सà¥\8dथायà¥\80 पासवरà¥\8dड पà¥\8dरापà¥\8dत à¤\95रनà¥\87 à¤\95à¥\87 लिà¤\8f à¤\95à¥\8bà¤\88 à¤\8fà¤\95 डिबà¥\8dबा भरें।}}',
'passwordreset-legend' => 'कूटशब्द रीसेट करें',
'passwordreset-disabled' => 'कूटशब्द रीसेट करना इस विकी पर अक्षम है।',
'passwordreset-emaildisabled' => 'इस विकि पर ई-मेल सुविधा अक्षम कर दी गयी है।',
'changeemail-password' => 'आपका {{SITENAME}} पासवर्ड:',
'changeemail-submit' => 'ई-मेल बदलें',
'changeemail-cancel' => 'रद्द करें',
+'changeemail-throttled' => 'आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।
+पुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।',
# Special:ResetTokens
'resettokens' => 'टोकन रीसेट करें',
'content-not-allowed-here' => '[[$2]] पृष्ठ पर "$1" सामग्री मना है।',
'editwarning-warning' => 'इस पृष्ठ को छोड़ने पर आपके द्वारा किये गए कोई भी बदलाव गायब हो जाएँगे।
यदि आपने लॉग इन किया हुआ है तो आप इस सूचना का दिखना अपनी वरीयताओं के "संपादन" भाग में बंद कर सकते हैं।',
+'editpage-notsupportedcontentformat-title' => 'सामग्री स्वरूप समर्थित नहीं है',
+'editpage-notsupportedcontentformat-text' => '$1 सामग्री स्वरूप $2 सामग्री मॉडल द्वारा समर्थित नहीं है।',
# Content models
'content-model-wikitext' => 'विकिटेक्स्ट',
'cantcreateaccount-text' => "इस आइ॰पी पते ('''$1''') को खाता निर्मित करने से [[User:$3|$3]] ने प्रतिबंधित किया है।
इसके लिये $3 ने ''$2'' कारण दिया है।",
+'cantcreateaccount-range-text' => "'''\$1''' की श्रेणी में आने वाले आई॰पी पतों से, जिसमें आपका आई॰पी पता ('''\$4''') शामिल है, नए खातों की रचना [[User:\$3|\$3]] द्वारा अवरोधित की गयी है।
+
+\$3 द्वारा दिया गया कारण है: \"\$2\"",
# History pages
'viewpagelogs' => 'इस पृष्ठ का लॉग देखें',
'revdelete-text' => "'''हटाए गए अवतरण और इवेंट पृष्ठ इतिहास और लॉग में दिखेंगे, लेकिन उनकी कुछ सामग्री सार्वजनिक नहीं होगी।'''
{{SITENAME}} के अन्य प्रबंधक छिपी हुई सामग्री को देख पाएँगे, और इसी अंतरापृष्ठ के जरिए वे इसकी पुनर्स्थापना भी कर सकते हैं, बशर्ते कि अतिरिक्त प्रतिबंध न लगाए गए हों।",
'revdelete-confirm' => 'पुष्टि करें कि आप यह कार्य करना चाहते हैं, आप इसका परिणाम समझते हैं, और आप ये [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार कर रहे हैं।',
-'revdelete-suppress-text' => "छिपाने का प्रयोग '''केवल''' इन परिस्थितियों में होना चाहिए:
-* बदनाम à¤\95रनà¥\87 वालà¥\80 जानकारी
+'revdelete-suppress-text' => 'छिपाने का प्रयोग <strong>केवल</strong> इन परिस्थितियों में होना चाहिए:
+* सà¤\82à¤à¤¾à¤µà¤¿à¤¤ à¤\85पमानà¤\9cनà¤\95 जानकारी
* अनुपयुक्त निजी जानकारी
-*: ''घर के पते व दूरभाष, सामाजिक सुरक्षा क्रमांक आदि''",
+*: <em>घर के पते व दूरभाष, राष्ट्रीय पहचान क्रमांक आदि।</em>',
'revdelete-legend' => 'दृश्य प्रतिबंध निश्चित करें',
-'revdelete-hide-text' => 'à¤\85वरतण à¤\95ा पाठà¤\9bà¥\81पाà¤\8fà¤\81',
+'revdelete-hide-text' => 'à¤\85वरतण पाठ',
'revdelete-hide-image' => 'फ़ाइल का पाठ छुपाएँ',
'revdelete-hide-name' => 'क्रिया और लक्ष्य को छुपाएँ',
-'revdelete-hide-comment' => 'सà¤\82पादन à¤\9fिपà¥\8dपणà¥\80 à¤\9bà¥\81पाà¤\8fà¤\81',
-'revdelete-hide-user' => 'संपादक का सदस्यनाम/आइ॰पी छुपाएँ',
+'revdelete-hide-comment' => 'सà¤\82पादन साराà¤\82श',
+'revdelete-hide-user' => 'संपादक का सदस्यनाम/आइ॰पी॰ पता',
'revdelete-hide-restricted' => 'प्रबंधक सहित सभी सदस्यों से डाटा छुपाएँ',
'revdelete-radio-same' => '(बदलें नहीं)',
-'revdelete-radio-set' => 'हाà¤\81',
-'revdelete-radio-unset' => 'नहà¥\80à¤\82',
+'revdelete-radio-set' => 'à¤\9bिपा हà¥\81à¤\86',
+'revdelete-radio-unset' => 'दà¥\83शà¥\8dय',
'revdelete-suppress' => 'प्रबंधक सहित सभी सदस्यों से डाटा छुपाएँ',
'revdelete-unsuppress' => 'पुनर्स्थापित अवतरणों पर से प्रतिबन्ध हटाएँ',
'revdelete-log' => 'कारण:',
'search-result-score' => 'संबद्ध: $1%',
'search-redirect' => '($1 से पुनर्निर्देशित)',
'search-section' => '(अनुभाग $1)',
+'search-file-match' => '(फ़ाइल सामग्री से मेल खाता है)',
'search-suggest' => 'कहीं आपका मतलब $1 तो नहीं था?',
'search-interwiki-caption' => 'अन्य प्रकल्प',
'search-interwiki-default' => '$1 के परिणाम:',
'preferences' => 'मेरी वरीयताएँ',
'mypreferences' => 'पसंद',
'prefs-edits' => 'संपादन संख्या:',
+'prefsnologintext2' => 'अपनी वरीयताओं को बदलने के लिए कृपया $1 करें।',
'prefs-skin' => 'त्वचा',
'skin-preview' => 'झलक',
'datedefault' => 'खा़स पसंद नहीं',
'prefs-tokenwatchlist' => 'टोकन',
'prefs-diffs' => 'अंतर',
'prefs-help-prefershttps' => 'यह वरीयता आपके अगले लॉगिन पर प्रभावी होगी।',
+'prefs-tabs-navigation-hint' => 'सुझाव: आप टैब्स सूची में टैब्स के बीच आवागमन करने के लिए बाएँ और दाएँ तीर कुंजियों का उपयोग कर सकते हैं।',
# User preference: email validation using jQuery
'email-address-validity-valid' => 'ई-मेल पता वैध प्रतीत होता है',
'recentchanges-label-minor' => 'यह एक छोटा सम्पादन है',
'recentchanges-label-bot' => 'यह संपादन एक बॉट द्वारा किया गया था',
'recentchanges-label-unpatrolled' => 'यह संपादन अभी जाँचा नहीं गया है',
-'recentchanges-legend-newpage' => '$1 - नया पन्ना',
+'recentchanges-label-plusminus' => 'पृष्ठ आकार इस बाइट संख्या से बदला',
+'recentchanges-legend-heading' => "'''कुंजी:'''",
+'recentchanges-legend-newpage' => '([[विशेष:NewPages|नए पन्नों की सूची]] को भी देखें)',
'rcnotefrom' => "नीचे '''$2''' के बाद से ('''$1''' तक) हुए बदलाव दर्शाए गये हैं।",
'rclistfrom' => '$1 से नये बदलाव दिखाएँ',
'rcshowhideminor' => 'छोटे बदलाव $1',
'rcshowhidebots' => 'बॉट $1',
-'rcshowhideliu' => 'लॉग्ड इन सदस्यों के बदलाव $1',
+'rcshowhideliu' => '$1 पंजीकृत सदस्य',
'rcshowhideanons' => 'आइ॰पी सदस्यों के बदलाव $1',
'rcshowhidepatr' => 'परीक्षित सम्पादन $1',
'rcshowhidemine' => 'मेरे बदलाव $1',
'file-exists-duplicate' => 'यह फ़ाइल निम्नलिखित {{PLURAL:$1|फ़ाइल|फ़ाइलों}} की प्रति है:',
'file-deleted-duplicate' => 'इसी फ़ाइल ([[:$1]]) से हूबहू मेल खाती एक फ़ाइल पहले हटाई जा चुकी है।
इसे फिर से अपलोड करने से पहले आपको पुरानी फ़ाइल का हटाने के इतिहास देख लेना चाहिए।',
+'file-deleted-duplicate-notitle' => 'इससे पहले इस फ़ाइल के समान एक फ़ाइल को हटाया गया है, और शीर्षक छिपा दिया गया है।
+इसे फिर से अपलोड करने से पहले आप किसी ऐसे व्यक्ति से स्थिति की समीक्षा करने के लिए कहें जिसके पास छिपी फ़ाइल का डाटा देखने की क्षमता है।',
'uploadwarning' => 'अपलोड चेतावनी',
'uploadwarning-text' => 'फ़ाइल विवरण को संशोधित कर फिर कोशिश करें।',
'savefile' => 'फ़ाइल संजोयें',
'backend-fail-internal' => 'भंडारण बैकेंड "$1" में कोई अज्ञात त्रुटि उत्पन्न हुई।',
'backend-fail-contenttype' => '"$1" पर संजोने के लिये फ़ाइल का प्रकार नहीं निश्चित किया जा सका।',
'backend-fail-batchsize' => 'भंडारण बैकेंड को $1 फ़ाइल {{PLURAL:$1|कार्य}} दिये गए थे; सीमा {{PLURAL:$2|$2 कार्य|$2 कार्यों}} की है।',
+'backend-fail-usable' => 'फ़ाइल "$1" को पर्याप्त अनुमति या अनुपस्थित डायरेक्ट्रीज़/कंटेनरों के कारण पढ़ा या लिखा नहीं जा सका।',
# File journal errors
'filejournal-fail-dbconnect' => 'भंडारण बैकेंड "$1" के जर्नल डाटाबेस से सम्पर्क नहीं हो पाया।',
'lockmanager-fail-releaselock' => '"$1" के लिए लॉक हटाया नहीं जा सका।',
'lockmanager-fail-db-bucket' => 'बकेट $1 में आवश्यक संख्या में लॉक डाटाबेसों से सम्पर्क नहीं हो पाया।',
'lockmanager-fail-db-release' => 'डाटाबेस $1 से ताला हटाया नहीं जा सका।',
+'lockmanager-fail-svr-acquire' => 'सर्वर $1 पर तालों को प्राप्त नहीं किया जा सका।',
'lockmanager-fail-svr-release' => 'सर्वर $1 से टाला हटाया नहीं जा सका।',
# ZipDirectoryReader
'statistics-users-active-desc' => 'पिछले {{PLURAL:$1|एक दिन|$1 दिनों}} में कुछ गतिविधि रखने वाले सदस्य',
'statistics-mostpopular' => 'सबसे अधिक देखे गए पृष्ठ',
+'pageswithprop' => 'पृष्ठ जिनमें पृष्ठ गुण हैं',
+'pageswithprop-legend' => 'पृष्ठ जिनमें पृष्ठ गुण हैं',
+'pageswithprop-text' => 'यह पृष्ठ पृष्ठ गुण का उपयोग कर रहे पन्नों को सूचीबद्ध करता है।',
+'pageswithprop-prop' => 'गुण का नाम:',
+'pageswithprop-submit' => 'खोजें',
+
'doubleredirects' => 'दुगुने पुनर्निर्देश',
'doubleredirectstext' => 'यह पृष्ठ उन पृष्ठों की सूची देता है जो अन्य पुनर्निर्देशित पृष्ठों की ओर पुनर्निर्देशित हैं।
हर कतार में पहले और दूसरे पुनर्निर्देशन की कड़ियाँ, तथा दूसरे पुनर्निर्देशन का लक्ष्य भी है, आमतौर पर यही "वास्तविक" लक्ष्यित पृष्ठ होगा, और पहला पुनर्देशन वास्तव में इसी को लक्ष्यित होना चाहिए।
'watchmethod-list' => 'ध्यानसूची में दिये गये पृष्ठों में हाल में हुए बदलाव देख रहे हैं',
'watchlistcontains' => 'आपकी ध्यानसूची में $1 {{PLURAL:$1|पृष्ठ}} हैं।',
'iteminvalidname' => "'$1' के साथ समस्या, अवैध नाम...",
-'wlnote' => "$3 को $4 बजे तक पिछले '''$2''' {{PLURAL:$2|घंटे|घंटों}} में {{PLURAL:$1|हुआ एक|हुए '''$1'''}} परिवर्तन निम्न {{PLURAL:$1|है|हैं}}।",
'wlshowlast' => 'पिछले $1 घंटे $2 दिन $3 देखें',
'watchlist-options' => 'ध्यानसूची विकल्प',
'tooltip-pt-watchlist' => 'आपने ध्यान दिये हुए पन्नोंकी सूची',
'tooltip-pt-mycontris' => 'आपके योगदानों की सूची',
'tooltip-pt-login' => 'आपको सत्रारम्भ करने के लिए प्रोत्साहित किया जाता है; लेकिन यह अनिवार्य नहीं है',
-'tooltip-pt-anonlogin' => 'आप लॉग इन करें, जबकि यह अत्यावश्यक नहीं हैं।',
'tooltip-pt-logout' => 'सत्रांत',
'tooltip-ca-talk' => 'सामग्री पृष्ठ के बारे में वार्तालाप',
'tooltip-ca-edit' => 'आप यह पृष्ठ बदल सकते हैं।
'svg-long-desc' => 'SVG फ़ाईल, साधारणत: $1 × $2 पीक्सेल्स, फ़ाईलका आकार: $3',
'svg-long-desc-animated' => 'ऐनिमेटिड एस॰वी॰जी फ़ाइल, $1 × $2 पिक्सेल, फ़ाइल साइज़: $3',
'svg-long-error' => 'अमान्य एस॰वी॰जी फ़ाइल: $1',
-'show-big-image' => 'समà¥\8dपà¥\82रà¥\8dण रिà¤\9c़à¥\8bलà¥\8dयà¥\82शन',
+'show-big-image' => 'मà¥\82ल फ़ाà¤\87ल',
'show-big-image-preview' => 'इस पूर्वावलोकन का आकार: $1 ।',
'show-big-image-other' => 'अन्य {{PLURAL:$2| resolution|resolutions}}: $1 ।',
'show-big-image-size' => '$1 × $2 पिक्सेल',
'expand_templates_generate_xml' => 'XML का पार्स (parse) वृक्ष दर्शायें',
'expand_templates_preview' => 'झलक',
+# Unknown messages
+'uploadinvalidxml' => 'अपलोड की गई फ़ाइल में स्थित XML पार्स नहीं की जा सकी।',
);
'tog-numberheadings' => 'Sab heading ke apne se number karo',
'tog-showtoolbar' => 'Badle waala toolbar ke dekhao',
'tog-editondblclick' => 'Dugnaa click pe panna ke badlo',
-'tog-editsection' => '[Badlao] ke jorr se section ke badlao se enable karo',
'tog-editsectiononrightclick' => 'Bhaag ke title pe right click kare pe bhaag ke badle ke laabu karo',
-'tog-showtoc' => 'Dhyan suchi dekhao (uu panna khatir jon me tiin se jaada heading hai)',
'tog-rememberpassword' => 'Ii browser me (jaada se jaada $1 {{PLURAL:$1|din|din}}) talak hamaar login ke yaad rakho.',
'tog-watchcreations' => 'Hamaar banawa waala panna aur upload karaa gais file ke hamaar dhyaan suchi me jorro',
'tog-watchdefault' => 'Ham se badla gais panna aur file ke hamaar dhyaan suchi me jorro',
'rows' => 'Line:',
'columns' => 'Column:',
'searchresultshead' => 'Khojo',
-'resultsperpage' => 'Panna ke ketna dafe dekha gais hai:',
'stub-threshold' => 'Threshold ke khatir <a href="#" class="stub">stub link</a> formatting (bytes):',
'stub-threshold-disabled' => 'Band kar dewa gais hae',
'recentchangesdays' => 'Nawaa badlao me ketna roj dekhawa jaae:',
* @author Erythrii
* @author Jose77
* @author Kguirnela
+ * @author Midnight Gambler
* @author Oxyzen
* @author Tagimata
* @author Taylortheturtle
'tog-numberheadings' => 'Auto-numero heading',
'tog-showtoolbar' => 'Ipakita ang edit toolbar (nagakilanlan JavaScript)',
'tog-editondblclick' => 'Islan ang pahina kung i-doble klik mo (nagakilanlan JavaScript)',
-'tog-editsection' => 'Sugtan ang pag-ilis sang seksyon paagi sa [ilisan] nga mga tabid',
'tog-editsectiononrightclick' => 'Sugtan ang pag-ilis sang seksyon paagi sa pagtum-ok sang natoo sa mouse sa titulo sang seksyon (nagakinahanglan sang JavaScript)',
-'tog-showtoc' => 'Ipakita ang sinulatan sang nagabug-os (para sang mga panid nga may yara sang masobra sa 3 nga pangolohan)',
'tog-rememberpassword' => 'Dumdumon ang akon password sa sini nga brawser (para sa indi magsobra $1 {{PLURAL:$1|nga adlaw|nga mga adlaw}})',
'tog-watchcreations' => 'Magdugang sang mga panid nga akon buhaton kag mga hilera nga akon igapasaka sa akon mga ginabantayan',
'tog-watchdefault' => 'Idugang ang mga panid kag hilera nga akon ginbag-o sa akon mga ginabantayan',
'rows' => 'Mga linya:',
'columns' => 'Mga kulumna:',
'searchresultshead' => 'Pangita-a',
-'resultsperpage' => 'Mga pag-igu kada panid:',
'stub-threshold' => 'Suludlan sang <a href="#" class="stub">stub sang link</a> nga pagkay-o (bytes):',
'stub-threshold-disabled' => 'Gin-untat',
'recentchangesdays' => 'Adlaw nga nabilin sa pagpakita sang mga bag-o nga pag-ilis:',
'rc_categories_any' => 'Bisan ano',
'rc-change-size-new' => '$1 {{PLURAL:$1|byte|mga bytes}} despues sang pagbag-o',
'newsectionsummary' => '/* $1 */ bag-o nga seksyon',
-'rc-enhanced-expand' => 'Ipakita ang mga detalye (nagakilanlan sang JavaScript)',
+'rc-enhanced-expand' => 'Ipakita ang mga detalye',
'rc-enhanced-hide' => 'Tagu-on ang mga detalye',
'rc-old-title' => 'orihinal nga ginhimo bilang "$1"',
'contributions' => 'Mga kontribusyon sang {{GENDER:$1|naga-usar}}',
'contributions-title' => 'Mga Kontribusyon sang Naga-Usar para $1',
'mycontris' => 'Kontribusyon',
-'contribsub2' => 'Para $1 ($2)',
+'contribsub2' => 'Para {{GENDER:$3|$1}} ($2)',
'uctop' => '(ibabaw)',
'month' => 'Halin sa bulan (kag sang timprano):',
'year' => 'Halin sa tu-ig (kag sang timprano):',
'tooltip-pt-watchlist' => 'Ang lista sang mga pahina nga imo ginabantayan para bag-ohon',
'tooltip-pt-mycontris' => 'Lista sang imo kontribusyon',
'tooltip-pt-login' => 'Gina-abi-abi ikaw nga man magsulod paagi sa pag log-in, apang indi ini kinahanglan gid buhaton',
-'tooltip-pt-anonlogin' => 'Ginasuportahan ka nga magsulod, ugaling indi ini kinahanglan.',
'tooltip-pt-logout' => 'Mag guha',
'tooltip-ca-talk' => 'Paghisayranay nahanungod sini nga panid',
'tooltip-ca-edit' => 'Puede nimo islan ang unod sang sini nga panid. Palihog gamit sang preview button antes permanentehon ang gin ilisan.',
'tog-numberheadings' => 'Automatski označi naslove brojevima',
'tog-showtoolbar' => 'Prikaži traku s alatima za uređivanje (zahtijeva JavaScript)',
'tog-editondblclick' => 'Dvoklik otvara uređivanje stranice (JavaScript)',
-'tog-editsection' => 'Prikaži poveznice za uređivanje pojedinih odlomaka',
'tog-editsectiononrightclick' => 'Pritiskom na desnu tipku miša otvori uređivanje pojedinih odlomaka (JavaScript)',
-'tog-showtoc' => 'U člancima s više od tri odlomka prikaži tablicu sadržaja.',
'tog-rememberpassword' => 'Zapamti moju lozinku u ovom pregledniku (najduže $1 {{PLURAL:$1|dan|dana|dana}})',
'tog-watchcreations' => 'Dodaj članke koje kreiram na moj popis praćenja',
'tog-watchdefault' => 'Dodaj svaku stranicu koju uredim na moj popis praćenja',
'tog-numberheadings' => 'Nadpisma awtomatisce čisłować',
'tog-showtoolbar' => 'Wobdźěłowansku lajstu pokazać',
'tog-editondblclick' => 'Strony z dwójnym kliknjenjom wobdźěłować',
-'tog-editsection' => 'Wobdźěłowanje jednotliwych wotrězkow přez wotkazy [wobdźěłać] zmóžnić',
'tog-editsectiononrightclick' => 'Wobdźěłowanje wotrězkow přez kliknjenje z prawej tastu na nadpisma wotrězkow zmóžnić',
-'tog-showtoc' => 'Zapis wobsaha pokazać (za strony z wjace hač 3 nadpismami)',
'tog-rememberpassword' => 'Přizjewjenje na tutym wobhladowaku sej spomjatkować (za maksimalnje $1 {{PLURAL:$1|dźeń|dnjej|dny|dnjow}})',
'tog-watchcreations' => 'Strony, kotrež wutworjam a dataje, kotrež nahrawam, swojim wobkedźbowankam přidać',
'tog-watchdefault' => 'Strony a dataje, kotrež wobdźěłuju, swojim wobkedźbowankam přidać',
'retypenew' => 'Nowe hesło wospjetować:',
'resetpass_submit' => 'Hesło posrědkować a so přizjewić',
'changepassword-success' => 'Twoje hesło je so wuspěšnje změniło!',
+'changepassword-throttled' => 'Sy přehusto spytał so přizjewić. Počakaj prošu $1, prjedy hač hišće raz spytaš.',
'resetpass_forbidden' => 'Hesła njedadźa so změnić.',
'resetpass-no-info' => 'Dyrbiš so přizjewić, zo by direktny přistup na tutu stronu měł.',
'resetpass-submit-loggedin' => 'Hesło změnić',
'changeemail-password' => 'Twoje hesło za {{GRAMMAR:akuzatiw|{{SITENAME}}}}',
'changeemail-submit' => 'E-mejlowu adresu změnić',
'changeemail-cancel' => 'Přetorhnyć',
+'changeemail-throttled' => 'Sy přehusto spytał so přizjewić.
+Počakaj prošu $1, prjedy hač hišće raz spytaš.',
# Special:ResetTokens
'resettokens' => 'Tokeny wróćo stajić',
'watchmethod-list' => 'Wobkedźbowanki za aktualnymi změnami přepruwować',
'watchlistcontains' => 'Maš $1 {{PLURAL:$1|stronu|stronje|strony|stronow}} w swojich wobkedźbowankach.',
'iteminvalidname' => 'Problem ze zapiskom „$1“, njepłaćiwe mjeno.',
-'wlnote' => "Deleka {{PLURAL:$1|je poslednja změna|stej poslednjej '''$1''' změnje|su poslednje '''$1''' změny|je poslednich '''$1''' změnow}} za {{PLURAL:$2|poslednju hodźinu|poslednje '''$2''' hodźinje|poslednje '''$2''' hodźiny|poslednje '''$2''' hodźin}}, staw : $3, $4.",
'wlshowlast' => 'Poslednje $1 hodź. - $2 dnjow - $3 pokazać',
'watchlist-options' => 'Opcije wobkedźbowankow',
'range_block_disabled' => 'Kmanosć administratorow, cyłe wobłuki IP-adresow blokować, je znjemóžnjena.',
'ipb_expiry_invalid' => 'Čas spadnjenja je njepłaćiwy.',
'ipb_expiry_temp' => 'Blokowanja schowanych wužiwarskich mjenow maja permanentne być.',
-'ipb_hide_invalid' => 'Njeje móžno tute konto potłóčić; ma snano přewjele změnow.',
+'ipb_hide_invalid' => 'Njeje móžno tute konto potłóčić; ma přez {{PLURAL:$1|jednu změnu|$1 změnje|$1 změny|$1 změnow}}.',
'ipb_already_blocked' => 'Wužiwar „$1” je hižo zablokowany.',
'ipb-needreblock' => '$1 je hižo zablokowany. Chceš nastajenja změnić?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Druhe blokowanje|Druhej blokowani|Druhe blokowanja|Druhe blokowanja}}',
'tooltip-pt-watchlist' => 'lisćina stronow, kotrež wobkedźbuješ',
'tooltip-pt-mycontris' => 'Lisćina twojich přinoškow',
'tooltip-pt-login' => 'Móžeš so woměrje přizjewić, to pak zawjazowace njeje.',
-'tooltip-pt-anonlogin' => 'Móžeš so woměrje přizjewić, to pak zawjazowace njeje.',
'tooltip-pt-logout' => 'so wotzjewić',
'tooltip-ca-talk' => 'diskusija wo stronje',
'tooltip-ca-edit' => 'Móžeš stronu wobdźěłać. Prošu wužij tłóčku „Přehlad” do składowanja.',
'expand_templates_preview' => 'Přehlad',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => 'XML w nahratej dataji njeda so parsować.',
);
'tog-numberheadings' => 'Fejezetcímek automatikus számozása',
'tog-showtoolbar' => 'Szerkesztőeszközsor megjelenítése',
'tog-editondblclick' => 'A lapok szerkesztése dupla kattintásra',
-'tog-editsection' => '[szerkesztés] linkek az egyes szakaszok szerkesztéséhez',
'tog-editsectiononrightclick' => 'Szakaszok szerkesztése a szakaszcímre való jobb kattintással',
-'tog-showtoc' => 'Tartalomjegyzék megjelenítése a három fejezetnél többel rendelkező cikkeknél',
'tog-rememberpassword' => 'Emlékezzen rám ezzel a böngészővel (legfeljebb {{PLURAL:$1|egy|$1}} napig)',
'tog-watchcreations' => 'Az általam létrehozott lapok és feltöltött fájlok felvétele a figyelőlistámra',
'tog-watchdefault' => 'Az általam szerkesztett lapok és fájlok felvétele a figyelőlistámra',
'tog-numberheadings' => 'Ինքնաթվագրել վերնագրերը',
'tog-showtoolbar' => 'Ցույց տալ խմբագրումների գործիքների վահանակը',
'tog-editondblclick' => 'Խմբագրել էջերը կրկնակի մատնահարմամբ',
-'tog-editsection' => 'Ցույց տալ [խմբագրել] հղումը ամեն բաժնի համար',
'tog-editsectiononrightclick' => 'Խմբագրել բաժինները վերնագրի աջ մատնահարմամբ',
-'tog-showtoc' => 'Ցույց տալ բովանդակությունը (3 կամ ավել վերնագրեր ունեցող էջերի համար)',
'tog-rememberpassword' => 'Հիշել իմ մուտքագրված տվյալներն այս համակարգչում ($1 {{PLURAL:$1|օրից}} ոչ ավել ժամկետով)',
'tog-watchcreations' => 'Ավելացնել իմ ստեղծած էջերը և բեռնած նիշքերը հսկացանկին',
'tog-watchdefault' => 'Ավելացնել իմ խմբագրած էջերը և նիշքերը հսկացանկին',
'rows' => 'Տողեր`',
'columns' => 'Սյունակներ',
'searchresultshead' => 'Որոնում',
-'resultsperpage' => 'Արդյունքների քանակը մեկ էջում.',
'stub-threshold' => '<a href="#" class="stub">Պատառ հոդվածների հղումների</a> ձևավորման որոշման սահմանը.',
'recentchangesdays' => 'Վերջին փոփոխություններում ցուցադրվող օրերի թիվը՝',
'recentchangesdays-max' => '($1 {{PLURAL:$1|օրից|օրից}} ոչ ավել)',
'watchmethod-list' => 'հսկվող էջերի վերջին փոփոխությունները',
'watchlistcontains' => 'Ձեր հսկացանկում կա $1 {{PLURAL:$1|էջ|էջ}}։',
'iteminvalidname' => 'Խնդիր «$1» տարրի հետ, անթույլատրելի անվանում...',
-'wlnote' => "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում։",
'wlshowlast' => 'Ցուցադրել վերջին $1 ժամերը $2 օրերը $3',
'watchlist-options' => 'Հսկացանկի նախընտրություններ',
'tooltip-pt-watchlist' => 'Ձեր հսկողության տակ գտնվող էջերի ցանկը',
'tooltip-pt-mycontris' => 'Ձեր ներդրումների ցանկը',
'tooltip-pt-login' => 'Կոչ ենք անում մտնել համակարգ, սակայն դա պարտադիր չէ',
-'tooltip-pt-anonlogin' => 'Կոչ ենք ձեզ անում մուտք գործել համակարգ, սակայն դա պարտադիր չէ',
'tooltip-pt-logout' => 'Դուրս գալ համակարգից',
'tooltip-ca-talk' => 'Քննարկումներ այս էջի բովանդակության մասին',
'tooltip-ca-edit' => 'Դուք կարող էք խմբագրել այս էջը։ Խնդրում ենք օգտագործել նախադիտման կոճակը հիշելուց առաջ։',
# Special:Version
'version' => 'ՄեդիաՎիքի տարբերակը',
+'version-ext-license' => 'Լիցենզիա',
+'version-ext-colheader-name' => 'Ընդլայնում',
+'version-ext-colheader-version' => 'Տարբերակ',
+'version-ext-colheader-license' => 'Լիցենզիա',
+'version-license-title' => 'Լիցենզիա $1-ի համար',
'version-poweredby-credits' => "Այս վիքին աշխատում է '''[https://www.mediawiki.org/ MediaWiki]'''֊ով, copyright © 2001-$1 $2։",
# Special:FileDuplicateSearch
'tog-numberheadings' => 'Numerar titulos automaticamente',
'tog-showtoolbar' => 'Monstrar instrumentario de modification',
'tog-editondblclick' => 'Modificar paginas con duple clic',
-'tog-editsection' => 'Activar le modification de sectiones con ligamines "[modificar]"',
'tog-editsectiononrightclick' => 'Permitter modification de sectiones con clic-a-dextra sur titulos de section',
-'tog-showtoc' => 'Monstrar tabula de contento (in paginas con plus de 3 sectiones)',
'tog-rememberpassword' => 'Memorar mi contrasigno in iste navigator (pro un maximo de $1 {{PLURAL:$1|die|dies}})',
'tog-watchcreations' => 'Adder le paginas que io crea e le files que io incarga a mi observatorio',
'tog-watchdefault' => 'Adder le paginas e files que io modifica a mi observatorio',
'tog-numberheadings' => 'Beri nomor judul secara otomatis',
'tog-showtoolbar' => 'Tampilkan bilah alat penyuntingan',
'tog-editondblclick' => 'Sunting halaman dengan klik ganda',
-'tog-editsection' => 'Fungsikan penyuntingan subbagian melalui pranala [sunting]',
'tog-editsectiononrightclick' => 'Fungsikan penyuntingan bagian dengan mengeklik kanan pada judul bagian',
-'tog-showtoc' => 'Perlihatkan daftar isi (untuk halaman yang mempunyai lebih dari 3 subbagian)',
'tog-rememberpassword' => 'Ingat kata sandi saya di peramban ini (selama $1 {{PLURAL:$1|hari}})',
'tog-watchcreations' => 'Tambahkan halaman yang saya buat ke daftar pantauan',
'tog-watchdefault' => 'Tambahkan halaman yang saya sunting ke daftar pantauan',
'tog-numberheadings' => 'Automatiko a pabilangan dagiti paulo',
'tog-showtoolbar' => 'Ipakita ti baras ti ramit ti panag-urnos',
'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagpindut',
-'tog-editsection' => 'Pakabaelan ti panag-urnos ti paset babaen kadagiti silpo nga [urnosen]',
'tog-editsectiononrightclick' => 'Pakabaelan ti panag-urnos ti paset babaen ti kanawan a panagpindut kadagiti titulo ti paset',
-'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga adda ti ad-adu ngem dagiti 3 a paulo)',
'tog-rememberpassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (iti kapaut nga $1 {{PLURAL:$1|aldaw|al-aldaw}})',
'tog-watchcreations' => 'Agnayon kadagiti panid a pinartuatko ken papeles nga inkargak idiay listaan ti bambantayak',
'tog-watchdefault' => 'Agnayon kadagiti panid ken papeles nga inurnosko idiay listaan ti bambantayak',
'tog-numberheadings' => 'Númera fyrirsagnir sjálfkrafa',
'tog-showtoolbar' => 'Sýna breytingarverkfærastiku',
'tog-editondblclick' => 'Breyta síðum þegar tvísmellt er',
-'tog-editsection' => 'Virkja hlutabreytingu með [breyta] tenglum',
'tog-editsectiononrightclick' => 'Virkja hlutabreytingu með því að hægrismella á hlutafyrirsagnir',
-'tog-showtoc' => 'Sýna efnisyfirlit (fyrir síður með meira en 3 fyrirsagnir)',
'tog-rememberpassword' => 'Muna innskráninguna mína í þessum vafra (í allt að $1 {{PLURAL:$1|dag|daga}})',
'tog-watchcreations' => 'Bæta síðum sem ég bý til og skrám sem ég hleð inn á vaktlistann minn',
'tog-watchdefault' => 'Bæta síðum og skrám sem ég breyti á vaktlistann minn',
'hidden-category-category' => 'Faldir flokkar',
'category-subcat-count' => '{{PLURAL:$2|Þessi flokkur hefur einungis eftirfarandi undirflokk.|Þessi flokkur hefur eftirfarandi {{PLURAL:$1|undirflokk|$1 undirflokka}}, af alls $2.}}',
'category-subcat-count-limited' => 'Þessi flokkur hefur eftirfarandi {{PLURAL:$1|undirflokk|$1 undirflokka}}.',
-'category-article-count' => '{{PLURAL:$2|Þessi flokkur inniheldur aðeins eftirfarandi síðu.|Eftirfarandi {{PLURAL:$1|síða er|síður eru}} í þessum flokki, af alls $1.}}',
+'category-article-count' => 'Þessi flokkur inniheldur {{PLURAL:$1|$1 síðu|$1 síður}}, af alls {{PLURAL:$2|$2}}.',
'category-article-count-limited' => 'Eftirfarandi {{PLURAL:$1|síða er|$1 síður eru}} í þessum flokki.',
-'category-file-count' => '{{PLURAL:$2|Þessi flokkur inniheldur einungis eftirfarandi skrá.|Eftirfarandi {{PLURAL:$1|skrá er|$1 skrár eru}} í þessum flokki, af alls $2.}}',
+'category-file-count' => 'Þessi flokkur inniheldur {{PLURAL:$1|$1 skrá|$1 skrár}}, af alls {{PLURAL:$2|$2}}.',
'category-file-count-limited' => 'Eftirfarandi {{PLURAL:$1|skrá er|$1 skrár eru}} í þessum flokki.',
'listingcontinuesabbrev' => 'frh.',
'index-category' => 'Raðaðar skrár',
'noindex-category' => 'Óraðaðar skrár',
-'broken-file-category' => 'Síður með brotna myndatengla',
+'broken-file-category' => 'Síður með brotna skráartengla',
'about' => 'Um',
'article' => 'Efnissíða',
'delete' => 'Eyða',
'deletethispage' => 'Eyða þessari síðu',
'undeletethispage' => 'Endurvekja þessa síðu',
-'undelete_short' => 'Endurvekja {{PLURAL:$1|eina breytingu|$1 breytingar}}',
+'undelete_short' => 'Endurvekja {{PLURAL:$1|$1 breytingu|$1 breytingar}}',
'viewdeleted_short' => 'Skoða {{PLURAL:$1|eina eydda breytingu|$1 eyddar breytingar}}',
'protect' => 'Vernda',
'protect_change' => 'breyta',
'collapsible-expand' => 'Sýna',
'thisisdeleted' => 'Endurvekja eða skoða $1?',
'viewdeleted' => 'Skoða $1?',
-'restorelink' => '{{PLURAL:$1|eina eydda breytingu|$1 eyddar breytingar}}',
+'restorelink' => '$1 {{PLURAL:$1|eydd breyting|eyddar breytingar}}',
'feedlinks' => 'Streymi:',
'feed-invalid' => 'Röng tegund áskriftarstreymis.',
'feed-unavailable' => 'Samræmisstreymi eru ekki fáanlegt',
'throttled-mailpassword' => 'Tölvupóstur til að endursetja lykilorðið hefur þegar verið sent, innan við {{PLURAL:$1|síðasta klukkutímans|$1 síðustu klukkutímanna}}.
Til að koma í veg fyrir misnotkun, er aðeins einn tölvupóstur sendur {{PLURAL:$1|hvern klukkutíma|hverja $1 klukkutíma}}.',
'mailerror' => 'Upp kom villa við sendingu tölvupósts: $1',
-'acct_creation_throttle_hit' => 'Því miður, hafa verið búnir til {{PLURAL:$1|1 aðgang|$1 aðganga}} nýr aðgangar í dag sem er hámarksfjöldi nýskráninga á einum degi.
+'acct_creation_throttle_hit' => 'Því miður, hafa verið búnir til {{PLURAL:$1|$1 nýr aðgangur|$1 nýjir aðgangar}} í dag sem er hámarksfjöldi nýskráninga á einum degi.
Þú getur því miður ekki búið til nýjan aðgang frá þessari IP-tölu að svo stöddu.',
'emailauthenticated' => 'Netfang þitt var staðfest þann $2 klukkan $3.',
'emailnotauthenticated' => 'Tölvupóstfang þitt hefur ekki enn verið staðfest. Enginn póstur verður sendur af neinum af eftirfarandi eiginleikum.',
Ef þú vilt ekki að textanum verði breytt skaltu ekki senda hann inn hér.<br />
Þú lofar okkur einnig að þú hafir skrifað þetta sjálfur, að efnið sé í almannaeigu eða að það heyri undir frjálst leyfi. (sjá $1).
'''EKKI SENDA INN HÖFUNDARRÉTTARVARIÐ EFNI ÁN LEYFIS RÉTTHAFA!'''",
-'longpageerror' => "'''VILLA: Textinn sem þú sendir inn er $1 {{PLURAL:$1|kílóbæti|kílóbæti}} að lengd, en hámarkið er $2 {{PLURAL:$2|kílóbæti|kílóbæti}}. Ekki er hægt að vista textann.'''",
+'longpageerror' => "'''VILLA: Textinn sem þú sendir inn er $1 {{PLURAL:$1|kílóbæti}} að lengd, en hámarkið er $2 {{PLURAL:$2|kílóbæti}}. Ekki er hægt að vista textann.'''",
'readonlywarning' => "'''AÐVÖRUN: Gagnagrunninum hefur verið læst til að unnt sé að framkvæma viðhaldsaðgerðir, svo þú getur ekki vistað breytingar þínar núna.'''
Þú ættir að klippa og líma textann yfir í textaskjal til þess að geyma hann til seinni tíma.
'searcheverything-enable' => 'Leita í öllum nafnrýmum',
'searchrelated' => 'tengt',
'searchall' => 'öllum',
-'showingresults' => "Sýni {{PLURAL:$1|'''1''' niðurstöðu|'''$1''' niðurstöður}} frá og með #'''$2'''.",
+'showingresults' => 'Sýni <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} frá og með #<strong>$2</strong>.',
'showingresultsnum' => "Sýni {{PLURAL:$3|'''$3''' niðurstöðu|'''$3''' niðurstöður}} frá og með #<b>$2</b>.",
'showingresultsheader' => "{{PLURAL:$5|Niðurstaða '''$1''' af '''$3'''|Niðurstöður'''$1 - $2''' af '''$3'''}} fyrir '''$4'''",
'search-nonefound' => 'Engar niðurstöður pössuðu við fyrirspurnina.',
'watchmethod-list' => 'leita að breytingum í vöktuðum síðum',
'watchlistcontains' => 'Vaktlistinn þinn inniheldur {{PLURAL:$1|$1 síðu|$1 síður}}.',
'iteminvalidname' => 'Vandamál með „$1“, rangt nafn...',
-'wlnote' => "Hér fyrir neðan {{PLURAL:$1|er síðasta breyting|eru síðustu '''$1''' breytingar}} {{PLURAL:$2|síðastliðinn klukkutímann|síðastliðna '''$2''' klukkutímana}}, frá $3, $4.",
'wlshowlast' => 'Sýna síðustu $1 klukkutíma, $2 daga, $3',
'watchlist-options' => 'Vaktlistastillingar',
'tooltip-pt-watchlist' => 'Listi yfir síður sem þú fylgist með breytingum á',
'tooltip-pt-mycontris' => 'Listi yfir framlög þín',
'tooltip-pt-login' => 'Þú ert hvattur/hvött til að innskrá þig, það er hinsvegar ekki skylda.',
-'tooltip-pt-anonlogin' => 'Þú ert hvattur/hvött til að innskrá þig, það er hinsvegar ekki nauðsynlegt.',
'tooltip-pt-logout' => 'Útskráning',
'tooltip-ca-talk' => 'Spallsíða þessarar síðu',
'tooltip-ca-edit' => 'Þú getur breytt síðu þessari, vinsamlegast notaðu „forskoða“ hnappinn áður en þú vistar',
'notacceptable' => 'Wiki vefþjónninn getur ekki útvegað gögn á því formi sem biðlarinn þinn getur lesið.',
# Attribution
-'anonymous' => '{{PLURAL:$1|Óþekktur notandi|Óþekktir notendur}} á {{SITENAME}}',
+'anonymous' => '$1 {{PLURAL:$1|óþekktur notandi|óþekktir notendur}} á {{SITENAME}}',
'siteuser' => '{{SITENAME}} notandi $1',
'anonuser' => '{{SITENAME}} nafnlaus notandi $1',
'lastmodifiedatby' => 'Þessari síðu var síðast breytt $1 klukkan $2 af $3.',
# Special:NewFiles
'newimages' => 'Myndasafn nýlegra skráa',
-'imagelisttext' => 'Hér fyrir neðan er {{PLURAL:$1|einni skrá|$1 skrám}} raðað $2.',
+'imagelisttext' => 'Hér fyrir neðan er $1 {{PLURAL:$1|skrá|skrám}} raðað $2.',
'newimages-summary' => 'Þessi kerfissíða sýnir nýlega innhlaðnar skrár.',
'newimages-legend' => 'Sía',
'newimages-label' => 'Skráarnafn (eða hluti þess):',
'lag-warn-high' => 'Vegna mikils álags á vefþjónanna, kunna breytingar yngri en $1 {{PLURAL:$1|sekúnda|sekúndur}} ekki að vera á þessum lista.',
# Watchlist editor
-'watchlistedit-numitems' => 'Á vaktlista þínum {{PLURAL:$1|er 1 síða|eru $1 síður}}, að undanskildum spjallsíðum.',
+'watchlistedit-numitems' => 'Á vaktlista þínum {{PLURAL:$1|er $1 síða|eru $1 síður}}, að undanskildum spjallsíðum.',
'watchlistedit-noitems' => 'Vaktlistinn þinn inniheldur enga titla.',
'watchlistedit-normal-title' => 'Breyta vaktlistanum',
'watchlistedit-normal-legend' => 'Fjarlægja titla af vaktlistanum',
'watchlistedit-raw-titles' => 'Titlar:',
'watchlistedit-raw-submit' => 'Uppfæra vaktlistann',
'watchlistedit-raw-done' => 'Vaktlistinn þinn hefur verið uppfærður.',
-'watchlistedit-raw-added' => '{{PLURAL:$1|Einum titli|$1 titlum}} var bætt við:',
-'watchlistedit-raw-removed' => '{{PLURAL:$1|1 titill var fjarlægður|$1 titlar voru fjarlægðir}}:',
+'watchlistedit-raw-added' => '$1 {{PLURAL:$1|titli|titlum}} var bætt við:',
+'watchlistedit-raw-removed' => '$1 {{PLURAL:$1|titill var fjarlægður|titlar voru fjarlægðir}}:',
# Watchlist editing tools
'watchlisttools-view' => 'Sýna viðeigandi breytingar',
'tog-numberheadings' => 'Numerazione automatica dei titoli di sezione',
'tog-showtoolbar' => 'Mostra la barra degli strumenti di modifica',
'tog-editondblclick' => 'Modifica delle pagine tramite doppio clic',
-'tog-editsection' => 'Modifica delle sezioni tramite il collegamento [modifica]',
'tog-editsectiononrightclick' => 'Modifica delle sezioni tramite clic destro sul titolo',
-'tog-showtoc' => "Mostra l'indice (per le pagine con più di 3 sezioni)",
'tog-rememberpassword' => 'Ricorda la password su questo browser (per un massimo di $1 {{PLURAL:$1|giorno|giorni}})',
'tog-watchcreations' => 'Aggiungi le pagine create e i file caricati agli osservati speciali',
'tog-watchdefault' => 'Aggiungi le pagine e i file modificati agli osservati speciali',
'retypenew' => 'Riscrivi la nuova password:',
'resetpass_submit' => 'Imposta la password e accedi al sito',
'changepassword-success' => 'La password è stata modificata correttamente!',
+'changepassword-throttled' => 'Sono stati effettuati troppi tentativi di accesso in breve tempo.
+Attendi $1 e riprova in seguito.',
'resetpass_forbidden' => 'Non è possibile modificare le password',
'resetpass-no-info' => "Devi aver effettuato l'accesso per accedere a questa pagina direttamente.",
'resetpass-submit-loggedin' => 'Cambia password',
'changeemail-password' => 'La password su {{SITENAME}}:',
'changeemail-submit' => 'Modifica e-mail',
'changeemail-cancel' => 'Annulla',
+'changeemail-throttled' => 'Sono stati effettuati troppi tentativi di accesso.
+Attendi $1 e riprova in seguito.',
# Special:ResetTokens
'resettokens' => 'Reimposta token',
'search-result-score' => 'Rilevanza: $1%',
'search-redirect' => '(redirect $1)',
'search-section' => '(sezione $1)',
+'search-file-match' => '(corrispondenza nel contenuto del file)',
'search-suggest' => 'Forse cercavi: $1',
'search-interwiki-caption' => 'Progetti fratelli',
'search-interwiki-default' => 'Risultati da $1:',
'watchmethod-list' => 'controllo degli osservati speciali per modifiche recenti',
'watchlistcontains' => 'La lista degli osservati speciali contiene {{PLURAL:$1|una pagina|$1 pagine}}.',
'iteminvalidname' => "Problemi con la pagina '$1', nome non valido...",
-'wlnote' => "Di seguito {{PLURAL:$1|è elencata la modifica più recente apportata|sono elencate le '''$1''' modifiche più recenti apportate}} {{PLURAL:$2|nella scorsa ora|nelle scorse '''$2''' ore}}; i dati sono aggiornati alle $4 del $3.",
+'wlnote2' => "Di seguito le modifiche {{PLURAL:$1|nell'ultima ora|nelle ultime <strong>$1</strong> ore}}, da $2, $3.",
'wlshowlast' => 'Mostra le ultime $1 ore $2 giorni $3',
'watchlist-options' => 'Opzioni osservati speciali',
'delete-edit-reasonlist' => 'Modifica i motivi di cancellazione',
'delete-toobig' => 'La cronologia di questa pagina è molto lunga (oltre $1 {{PLURAL:$1|revisione|revisioni}}). La sua cancellazione è stata limitata per evitare di creare accidentalmente dei problemi di funzionamento al database di {{SITENAME}}.',
'delete-warning-toobig' => 'La cronologia di questa pagina è molto lunga (oltre $1 {{PLURAL:$1|revisione|revisioni}}). La sua cancellazione può creare dei problemi di funzionamento al database di {{SITENAME}}; procedere con cautela.',
-'deleting-backlinks-warning' => "'''Attenzione:''' altre pagine contengono collegamenti alla pagina che stai per cancellare.",
+'deleting-backlinks-warning' => "'''Attenzione:''' altre pagine contengono collegamenti o inclusioni alla pagina che stai per cancellare.",
# Rollback
'rollback' => 'Annulla le modifiche',
'range_block_disabled' => 'La possibilità di bloccare intervalli di indirizzi IP non è attiva al momento.',
'ipb_expiry_invalid' => 'Durata o scadenza del blocco non valida.',
'ipb_expiry_temp' => 'I blocchi dei nomi utenti nascosti dovrebbero essere infiniti',
-'ipb_hide_invalid' => "Impossibile cancellare l'account; potrebbe avere troppe modifiche.",
+'ipb_hide_invalid' => 'Impossibile sopprimere questa utenza; ha più di {{PLURAL:$1|una modifica|$1 modifiche}}.',
'ipb_already_blocked' => 'L\'utente "$1" è già bloccato',
'ipb-needreblock' => "L'utente $1 è già bloccato. Modificare le impostazioni?",
'ipb-otherblocks-header' => '{{PLURAL:$1|Altro blocco|Altri blocchi}}',
'allmessages-prefix' => 'Filtra per prefisso:',
'allmessages-language' => 'Lingua:',
'allmessages-filter-submit' => 'Vai',
+'allmessages-filter-translate' => 'Traduci',
# Thumbnails
'thumbnail-more' => 'Ingrandisci',
'tooltip-pt-watchlist' => 'La lista delle pagine che stai tenendo sotto osservazione',
'tooltip-pt-mycontris' => 'Elenco dei tuoi contributi',
'tooltip-pt-login' => 'La registrazione è consigliata, anche se non obbligatoria',
-'tooltip-pt-anonlogin' => 'La registrazione è consigliata, anche se non obbligatoria',
'tooltip-pt-logout' => 'Uscita (logout)',
'tooltip-ca-talk' => 'Vedi le discussioni relative a questa pagina',
'tooltip-ca-edit' => 'Puoi modificare questa pagina. Per favore usa il pulsante di anteprima prima di salvare',
'print.css' => "/* Gli stili CSS inseriti qui si applicano all'output in stampa */",
'noscript.css' => '/ * Gli stili CSS inseriti qui si applicano agli utenti che hanno JavaScript disabilitato * /',
'group-autoconfirmed.css' => '/ * Gli stili CSS inseriti qui si applicheranno solo ad utenti autoconvalidati * /',
+'group-user.css' => '/ * Gli stili CSS inseriti qui si applicheranno solo ad utenti registrati * /',
'group-bot.css' => '/ * Gli stili CSS inseriti qui si applicheranno solo ai bot * /',
'group-sysop.css' => '/ * Gli stili CSS inseriti qui si applicheranno solo agli amministratori/sysop * /',
'group-bureaucrat.css' => '/ * Gli stili CSS inseriti qui si applicheranno solo ai burocrati * /',
'modern.js' => '/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin Modern */',
'vector.js' => '/* Il codice JavaScript inserito qui viene caricato dagli utenti che usano la skin Vector */',
'group-autoconfirmed.js' => '/ * Il codice JavaScript inserito qui viene caricato solo per gli utenti autoconvalidati * /',
+'group-user.js' => '/ * Il codice JavaScript inserito qui viene caricato solo per gli utenti registrati * /',
'group-bot.js' => '/ * Il codice JavaScript inserito qui viene caricato solo per i bot * /',
'group-sysop.js' => '/ * Il codice JavaScript inserito qui viene caricato solo per gli amministratori/sysop * /',
'group-bureaucrat.js' => '/ * Il codice JavaScript inserito qui viene caricato solo per i burocrati * /',
'tog-numberheadings' => '見出しに番号を自動的に振る',
'tog-showtoolbar' => '編集用のツールバーを表示',
'tog-editondblclick' => 'ダブルクリックでページを編集',
-'tog-editsection' => '[編集]リンクから節を編集できるようにする',
'tog-editsectiononrightclick' => '節見出しの右クリックで節を編集できるようにする',
-'tog-showtoc' => '目次を表示 (ページに見出しが4つ以上ある場合)',
'tog-rememberpassword' => 'このブラウザーにログイン情報を保存 (最長 $1 {{PLURAL:$1|日|日間}})',
'tog-watchcreations' => '自分が作成したページやアップロードしたファイルをウォッチリストに追加',
'tog-watchdefault' => '自分が編集したページやファイルをウォッチリストに追加',
'category_header' => 'カテゴリ「$1」にあるページ',
'subcategories' => '下位カテゴリ',
'category-media-header' => 'カテゴリ「$1」にあるメディア',
-'category-empty' => "''このカテゴリには現在、ページやメディアが何もありません。''",
+'category-empty' => '<em>このカテゴリには現在、ページやメディアが何もありません。</em>',
'hidden-categories' => '{{PLURAL:$1|隠しカテゴリ}}',
'hidden-category-category' => '隠しカテゴリ',
'category-subcat-count' => '{{PLURAL:$2|このカテゴリには以下の下位カテゴリのみが含まれています。|このカテゴリには $2 下位カテゴリが含まれており、そのうち以下の {{PLURAL:$1|$1 下位カテゴリ}}を表示しています。}}',
'databaseerror-query' => 'クエリ: $1',
'databaseerror-function' => '関数: $1',
'databaseerror-error' => 'エラー: $1',
-'laggedslavemode' => "'''警告:''' ページに最新の編集が反映されていない可能性があります。",
+'laggedslavemode' => '<strong>警告:</strong> ページに最新の編集が反映されていない可能性があります。',
'readonly' => 'データベースがロックされています',
'enterlockreason' => 'ロックの理由とロック解除の予定を入力してください',
'readonlytext' => 'データベースは現在、新しいページの追加や編集を受け付けない「ロック状態」になっています。これはおそらくデータベースの定期メンテナンスのためで、メンテナンス終了後は正常な状態に復帰します。
少し時間をおいてからもう一度操作してください。',
'protectedpagetext' => 'このページは編集や他の操作ができないように保護されています。',
'viewsourcetext' => 'このページのソースの閲覧やコピーができます:',
-'viewyourtext' => "このページへの'''あなたの編集'''のソースの閲覧やコピーができます:",
+'viewyourtext' => 'このページへの<strong>あなたの編集</strong>のソースの閲覧やコピーができます:',
'protectedinterface' => 'このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。
すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/ translatewiki.net] を使用してください。',
-'editinginterface' => "'''警告:''' ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。
+'editinginterface' => '<strong>警告:</strong> ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。
このページを変更すると、このウィキの他の利用者のユーザーインターフェイスの外観に影響します。
-すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
+すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。',
'cascadeprotected' => 'このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}で読み込まれているため、編集できないように保護されています:
$2',
-'namespaceprotected' => "'''$1'''名前空間にあるページを編集する権限がありません。",
+'namespaceprotected' => '<strong>$1</strong>名前空間にあるページを編集する権限がありません。',
'customcssprotected' => 'この CSS ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。',
'customjsprotected' => 'この JavaScript ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。',
'mycustomcssprotected' => 'あなたには CSS ページを編集する権限がありません。',
'myprivateinfoprotected' => 'あなたには自身の非公開情報を編集する権限がありません。',
'mypreferencesprotected' => 'あなたには自身の個人設定を編集する権限がありません。',
'ns-specialprotected' => '特別ページは編集できません。',
-'titleprotected' => "[[User:$1|$1]]によりこのページ名を持つページの作成は保護されています。
-理由は「''$2''」です。",
+'titleprotected' => '[[User:$1|$1]]によりこのページ名を持つページの作成は保護されています。
+理由は「<em>$2</em>」です。',
'filereadonlyerror' => 'ファイルリポジトリ「$2」が読み取り専用の状態にあるため、ファイル「$1」を変更できません。
読み取り専用に設定した管理者からの説明:「$3」',
'exception-nologin-text-manual' => 'このページまたは操作にアクセスできるようにするには$1してください。',
# Virus scanner
-'virus-badscanner' => "環境設定が不適合です: 不明なウイルス対策ソフトウェア: ''$1''",
+'virus-badscanner' => '環境設定が不適合です: 不明なウイルス対策ソフトウェア: <em>$1</em>',
'virus-scanfailed' => 'スキャンに失敗しました (コード $1)',
'virus-unknownscanner' => '不明なウイルス対策ソフトウェア:',
# Login and logout pages
-'logouttext' => "'''ログアウトしました。'''
+'logouttext' => '<strong>ログアウトしました。</strong>
-ページによっては、ブラウザーのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。",
+ページによっては、ブラウザーのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。',
'welcomeuser' => 'ようこそ、$1さん!',
'welcomecreation-msg' => 'アカウントが作成されました。
お好みで[[Special:Preferences|{{SITENAME}}の個人設定]]を変更できます。',
'nocookiesforlogin' => '{{int:nocookieslogin}}',
'noname' => '利用者名を正しく指定していません。',
'loginsuccesstitle' => 'ログイン成功',
-'loginsuccess' => "'''{{SITENAME}}に「$1」としてログインしました。'''",
+'loginsuccess' => '<strong>{{SITENAME}}に「$1」としてログインしました。</strong>',
'nosuchuser' => '「$1」という名前の利用者は見当たりません。
利用者名では大文字と小文字を区別します。
綴りが正しいことを確認するか、[[Special:UserLogin/signup|新たにアカウントを作成]]してください。',
'retypenew' => '新しいパスワードを再入力:',
'resetpass_submit' => '再設定してログイン',
'changepassword-success' => 'パスワードを変更しました!',
+'changepassword-throttled' => '最近のログインの試行回数が多すぎます。
+$1待ってから再度試してください。',
'resetpass_forbidden' => 'パスワードは変更できません',
'resetpass-no-info' => 'このページに直接アクセスするためにはログインしている必要があります。',
'resetpass-submit-loggedin' => 'パスワードを変更',
'changeemail-password' => '{{SITENAME}}のパスワード:',
'changeemail-submit' => 'メールアドレスを変更',
'changeemail-cancel' => '中止',
+'changeemail-throttled' => 'ログインの試行回数が多すぎます。
+$1待ってから再度試してください。',
# Special:ResetTokens
'resettokens' => 'トークンの再設定',
'showpreview' => 'プレビューを表示',
'showlivepreview' => 'ライブプレビュー',
'showdiff' => '差分を表示',
-'anoneditwarning' => "'''警告:''' ログインしていません。
-編集すると、IPアドレスがこのページの編集履歴に記録されます。",
-'anonpreviewwarning' => "''ログインしていません。投稿を保存すると、ご使用中のIPアドレスがこのページの履歴に記録されます。''",
-'missingsummary' => "'''注意:''' 編集内容の要約が空欄です。
-「{{int:savearticle}}」をもう一度クリックすると、編集内容は要約なしで保存されます。",
+'anoneditwarning' => '<strong>警告:</strong> ログインしていません。
+編集すると、IPアドレスがこのページの編集履歴に記録されます。',
+'anonpreviewwarning' => '<em>ログインしていません。投稿を保存すると、ご使用中のIPアドレスがこのページの履歴に記録されます。</em>',
+'missingsummary' => '<strong>注意:</strong> 編集内容の要約が空欄です。
+「{{int:savearticle}}」をもう一度クリックすると、編集内容は要約なしで保存されます。',
'missingcommenttext' => '以下にコメントを入力してください。',
-'missingcommentheader' => "'''注意:''' このコメントに対する題名/見出しが空欄です。
-「{{int:savearticle}}」ボタンをもう一度押すと、空のまま編集が保存されます。",
+'missingcommentheader' => '<strong>注意:</strong> このコメントに対する題名/見出しが空欄です。
+「{{int:savearticle}}」ボタンをもう一度押すと、空のまま編集が保存されます。',
'summary-preview' => '要約のプレビュー:',
'subject-preview' => '題名/見出しのプレビュー:',
'blockedtitle' => '利用者はブロックされています',
-'blockedtext' => "'''この利用者名またはIPアドレスはブロックされています。'''
+'blockedtext' => '<strong>この利用者名またはIPアドレスはブロックされています。</strong>
ブロックは$1によって実施されました。
-ブロックの理由は ''$2'' です。
+ブロックの理由は <em>$2</em> です。
* ブロック開始日時: $8
* ブロック解除予定: $6
このブロックについて、$1もしくは他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]に問い合わせることができます。
ただし、[[Special:Preferences|個人設定]]で有効なメールアドレスが登録されていない場合、またはメール送信機能の使用がブロックされている場合、「この利用者にメールを送信」の機能は使えません。
現在ご使用中のIPアドレスは$3、このブロックIDは#$5です。
-お問い合わせの際には、上記の情報を必ず書いてください。",
-'autoblockedtext' => "このIPアドレスは、$1によりブロックされた利用者によって使用されたため、自動的にブロックされています。
+お問い合わせの際には、上記の情報を必ず書いてください。',
+'autoblockedtext' => 'このIPアドレスは、$1によりブロックされた利用者によって使用されたため、自動的にブロックされています。
理由は次の通りです。
-:''$2''
+:<em>$2</em>
* ブロック開始日時: $8
* ブロック解除予定: $6
ただし、[[Special:Preferences|個人設定]]に正しいメールアドレスが登録されていない場合、またはメール送信がブロックされている場合、「この利用者にメールを送信」機能を使用できないことに注意してください。
現在ご使用中のIPアドレスは$3 、このブロックIDは#$5です。
-お問い合わせの際は、上記の情報を必ず書いてください。",
+お問い合わせの際は、上記の情報を必ず書いてください。',
'blockednoreason' => '理由が設定されていません',
'whitelistedittext' => 'このページを編集するには$1してください。',
'confirmedittext' => 'ページの編集を始める前にメールアドレスの確認をする必要があります。
'loginreqlink' => 'ログイン',
'loginreqpagetext' => '他のページを閲覧するには$1してください。',
'accmailtitle' => 'パスワードをお送りしました',
-'accmailtext' => "[[User talk:$1|$1]]のために無作為に生成したパスワードを、$2に送信しました。パスワードは、ログインした際に''[[Special:ChangePassword|パスワード変更]]''ページで変更できます。",
+'accmailtext' => '[[User talk:$1|$1]]のために無作為に生成したパスワードを、$2に送信しました。パスワードは、ログインした際に<em>[[Special:ChangePassword|パスワード変更]]</em>ページで変更できます。',
'newarticle' => '(新)',
-'newarticletext' => "まだ存在しないページへのリンクをたどりました。
+'newarticletext' => 'まだ存在しないページへのリンクをたどりました。
このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプページ]]を参照してください)。
-誤ってこのページにたどり着いた場合には、ブラウザーの'''戻る'''ボタンで前のページに戻ってください。",
-'anontalkpagetext' => "----
-''このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。''
+誤ってこのページにたどり着いた場合には、ブラウザーの<strong>戻る</strong>ボタンで前のページに戻ってください。',
+'anontalkpagetext' => '----
+<em>このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。</em>
-匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。IP アドレスは複数の利用者で共有されている場合があります。もし、あなたが匿名利用者であり、自分に関係のないコメントが寄せられていると考えられる場合は、[[Special:UserLogin/signup|アカウントを作成する]]か[[Special:UserLogin|ログインして]]他の匿名利用者と間違えられないようにしてください。",
+匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。IP アドレスは複数の利用者で共有されている場合があります。もし、あなたが匿名利用者であり、自分に関係のないコメントが寄せられていると考えられる場合は、[[Special:UserLogin/signup|アカウントを作成する]]か[[Special:UserLogin|ログインして]]他の匿名利用者と間違えられないようにしてください。',
'noarticletext' => '現在このページには内容がありません。
他のページ内で[[Special:Search/{{PAGENAME}}|このページ名を検索]]、
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 関連する記録を検索]、
'userpage-userdoesnotexist-view' => '利用者アカウント「$1」は登録されていません。',
'blocked-notice-logextract' => 'この利用者は現在ブロックされています。
参考のために最新のブロック記録項目を以下に表示します:',
-'clearyourcache' => "'''注意:''' 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
-* '''Firefox / Safari:''' ''Shift'' を押しながら ''再読み込み'' をクリックするか、''Ctrl-F5'' または ''Ctrl-R'' を押してください (Mac では ''⌘-R'')
-* '''Google Chrome:''' ''Ctrl-Shift-R'' を押してください (Mac では ''⌘-Shift-R'')
-* '''Internet Explorer:''' ''Ctrl'' を押しながら ''最新の情報に更新'' をクリックするか、''Ctrl-F5'' を押してください
-* '''Opera:''' ''ツール → 設定'' からキャッシュをクリアしてください。",
-'usercssyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいCSSを試験できます。",
-'userjsyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいJavaScriptを試験できます。",
-'usercsspreview' => "'''利用者CSSをプレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'userjspreview' => "'''利用者JavaScriptを試験/プレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'sitecsspreview' => "'''ここでは、CSSをプレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'sitejspreview' => "'''ここでは、JavaScriptをプレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'userinvalidcssjstitle' => "'''警告:'''「$1」という外装はありません。
-カスタム .css/.js ページではページ名を小文字にしてください。例: {{ns:user}}:Hoge/Vector.css ではなく {{ns:user}}:Hoge/vector.css",
+'clearyourcache' => '<strong>注意:</strong> 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
+* <strong>Firefox / Safari:</strong> <em>Shift</em> を押しながら <em>再読み込み</em> をクリックするか、<em>Ctrl-F5</em> または <em>Ctrl-R</em> を押してください (Mac では <em>⌘-R</em>)
+* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> を押してください (Mac では <em>⌘-Shift-R</em>)
+* <strong>Internet Explorer:</strong> <em>Ctrl</em> を押しながら <em>最新の情報に更新</em> をクリックするか、<em>Ctrl-F5</em> を押してください
+* <strong>Opera:</strong> <em>ツール → 設定</em> からキャッシュをクリアしてください。',
+'usercssyoucanpreview' => '<strong>ヒント:</strong>「{{int:showpreview}}」ボタンを使うと、保存前に新しいCSSを試験できます。',
+'userjsyoucanpreview' => '<strong>ヒント:</strong>「{{int:showpreview}}」ボタンを使うと、保存前に新しいJavaScriptを試験できます。',
+'usercsspreview' => '<strong>利用者CSSをプレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'userjspreview' => '<strong>利用者JavaScriptを試験/プレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'sitecsspreview' => '<strong>ここでは、CSSをプレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'sitejspreview' => '<strong>ここでは、JavaScriptをプレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'userinvalidcssjstitle' => '<strong>警告:</strong>「$1」という外装はありません。
+カスタム .css/.js ページではページ名を小文字にしてください。例: {{ns:user}}:Hoge/Vector.css ではなく {{ns:user}}:Hoge/vector.css',
'updated' => '(更新)',
-'note' => "'''お知らせ:'''",
-'previewnote' => "'''これはプレビューです。'''
-変更内容はまだ保存されていません!",
+'note' => '<strong>お知らせ:</strong>',
+'previewnote' => '<strong>これはプレビューです。</strong>
+変更内容はまだ保存されていません!',
'continue-editing' => '編集を続行',
'previewconflict' => 'これは、上の編集エリアの文章を保存した場合にどう表示されるかを示すプレビューです。',
-'session_fail_preview' => "'''申し訳ありません! セッションデータが消失したため編集を処理できませんでした。'''
+'session_fail_preview' => '<strong>申し訳ありません! セッションデータが消失したため編集を処理できませんでした。</strong>
もう一度やり直してください。
-それでも失敗する場合、[[Special:UserLogout|ログアウト]]してからログインし直してください。",
-'session_fail_preview_html' => "'''申し訳ありません! セッション データが消失したため編集を処理できませんでした。'''
+それでも失敗する場合、[[Special:UserLogout|ログアウト]]してからログインし直してください。',
+'session_fail_preview_html' => '<strong>申し訳ありません! セッション データが消失したため編集を処理できませんでした。</strong>
-''{{SITENAME}}では生のHTMLが有効であり、JavaScriptでの攻撃を予防するためにプレビューを表示していません。''
+<em>{{SITENAME}}では生のHTMLが有効であり、JavaScriptでの攻撃を予防するためにプレビューを表示していません。</em>
-'''この編集が問題ない場合はもう一度保存してください。'''
-それでもうまくいかない場合は一度[[Special:UserLogout|ログアウト]]して、ログインし直してみてください。",
-'token_suffix_mismatch' => "'''ご使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。'''
+<strong>この編集が問題ない場合はもう一度保存してください。</strong>
+それでもうまくいかない場合は一度[[Special:UserLogout|ログアウト]]して、ログインし直してみてください。',
+'token_suffix_mismatch' => '<strong>ご使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。</strong>
ページ本文の破損を防ぐため、編集は反映されません。
-問題のある匿名プロキシ サービスを使用していると、これが発生する場合があります。",
-'edit_form_incomplete' => "'''編集フォームの一部がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。'''",
+問題のある匿名プロキシ サービスを使用していると、これが発生する場合があります。',
+'edit_form_incomplete' => '<strong>編集フォームの一部がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。</strong>',
'editing' => '「$1」を編集中',
'creating' => '「$1」を作成中',
'editingsection' => '「$1」を編集中 (節単位)',
'editingcomment' => '「$1」を編集中 (新しい節)',
'editconflict' => '編集競合: $1',
-'explainconflict' => "このページを編集し始めた後に、他の誰かがこのページを変更しました。
+'explainconflict' => 'このページを編集し始めた後に、他の誰かがこのページを変更しました。
上側のテキスト領域は現在の最新の状態です。
編集していた文章は下側のテキスト領域に示されています。
編集していた文章を、上側のテキスト領域の、既存の文章に組み込んでください。
-上側のテキスト領域の内容'''だけ'''が、「{{int:savearticle}}」をクリックした時に実際に保存されます。",
+上側のテキスト領域の内容<strong>だけ</strong>が、「{{int:savearticle}}」をクリックした時に実際に保存されます。',
'yourtext' => '編集中の文章',
'storedversion' => '保存された版',
-'nonunicodebrowser' => "'''警告: ご使用中のブラウザーは Unicode に未対応です。'''
-安全にページを編集する回避策を表示しています: 編集ボックス内の非 ASCII 文字を 16 進数コードで表現しています。",
-'editingold' => "'''警告: このページの古い版を編集しています。'''
-保存すると、この版以降になされた変更がすべて失われます。",
+'nonunicodebrowser' => '<strong>警告: ご使用中のブラウザーは Unicode に未対応です。</strong>
+安全にページを編集する回避策を表示しています: 編集ボックス内の非 ASCII 文字を 16 進数コードで表現しています。',
+'editingold' => '<strong>警告: このページの古い版を編集しています。</strong>
+保存すると、この版以降になされた変更がすべて失われます。',
'yourdiff' => '差分',
-'copyrightwarning' => "{{SITENAME}}への投稿は、すべて$2 (詳細は$1を参照) のもとで公開したと見なされることにご注意ください。
+'copyrightwarning' => '{{SITENAME}}への投稿は、すべて$2 (詳細は$1を参照) のもとで公開したと見なされることにご注意ください。
あなたが投稿したものを、他人がよって遠慮なく編集し、それを自由に配布するのを望まない場合は、ここには投稿しないでください。<br />
また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
-'''著作権保護されている作品を、許諾なしに投稿しないでください!'''",
-'copyrightwarning2' => "{{SITENAME}}へのすべての投稿は、他の利用者によって編集、変更、除去される場合があります。
+<strong>著作権保護されている作品を、許諾なしに投稿しないでください!</strong>',
+'copyrightwarning2' => '{{SITENAME}}へのすべての投稿は、他の利用者によって編集、変更、除去される場合があります。
あなたの投稿を、他人が遠慮なく編集するのを望まない場合は、ここには投稿しないでください。<br />
また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください (詳細は$1を参照)。
-'''著作権保護されている作品を、許諾なしに投稿してはいけません!'''",
-'longpageerror' => "'''エラー: 投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。'''
-この編集内容は保存できません。",
-'readonlywarning' => "'''警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。'''
+<strong>著作権保護されている作品を、許諾なしに投稿してはいけません!</strong>',
+'longpageerror' => '<strong>エラー: 投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。</strong>
+この編集内容は保存できません。',
+'readonlywarning' => '<strong>警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。</strong>
必要であれば文章をコピー&ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
-データベースをロックした管理者による説明は以下の通りです: $1",
-'protectedpagewarning' => "'''警告: このページは保護されているため、管理者権限を持つ利用者のみが編集できます。'''
-参考として以下に最後の記録を表示します:",
-'semiprotectedpagewarning' => "'''注意:''' このページは保護されているため、登録利用者のみが編集できます。
-参考として以下に最後の記録を表示します:",
-'cascadeprotectedwarning' => "'''警告:''' このページはカスケード保護されている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、管理者権限を持つ利用者のみが編集できるように保護されています:",
-'titleprotectedwarning' => "'''警告: このページは保護されているため、作成には[[Special:ListGroupRights|特定の権限]]が必要です。'''
-参考として以下に最後の記録を表示します:",
+データベースをロックした管理者による説明は以下の通りです: $1',
+'protectedpagewarning' => '<strong>警告: このページは保護されているため、管理者権限を持つ利用者のみが編集できます。</strong>
+参考として以下に最後の記録を表示します:',
+'semiprotectedpagewarning' => '<strong>注意:</strong> このページは保護されているため、登録利用者のみが編集できます。
+参考として以下に最後の記録を表示します:',
+'cascadeprotectedwarning' => '<strong>警告:</strong> このページはカスケード保護されている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、管理者権限を持つ利用者のみが編集できるように保護されています:',
+'titleprotectedwarning' => '<strong>警告: このページは保護されているため、作成には[[Special:ListGroupRights|特定の権限]]が必要です。</strong>
+参考として以下に最後の記録を表示します:',
'templatesused' => 'このページで使用されている{{PLURAL:$1|テンプレート}}:',
'templatesusedpreview' => 'このプレビューで使用されている{{PLURAL:$1|テンプレート}}:',
'templatesusedsection' => 'この節で使用されている{{PLURAL:$1|テンプレート}}:',
'permissionserrors' => '権限エラー',
'permissionserrorstext' => 'あなたにはこの操作を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
'permissionserrorstext-withaction' => 'あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
-'recreate-moveddeleted-warn' => "'''警告: 以前削除されたページを再作成しようとしています。'''
+'recreate-moveddeleted-warn' => '<strong>警告: 以前削除されたページを再作成しようとしています。</strong>
このページの編集を続行するのが適切かどうかご確認ください。
-参考までに、このページの削除と移動の記録を以下に示します:",
+参考までに、このページの削除と移動の記録を以下に示します:',
'moveddeleted-notice' => 'このページは削除されています。
参考のため、このページの削除と移動の記録を以下に表示します。',
'log-fulllog' => '完全な記録を閲覧',
'content-model-css' => 'CSS',
# Parser/template warnings
-'expensive-parserfunction-warning' => "'''警告:''' このページでは、高負荷なパーサー関数の呼び出し回数が多過ぎます。
+'expensive-parserfunction-warning' => '<strong>警告:</strong> このページでは、高負荷なパーサー関数の呼び出し回数が多過ぎます。
-{{PLURAL:$2|呼び出しを $2 回}}未満にしてください ({{PLURAL:$1|現在は $1 回}})。",
+{{PLURAL:$2|呼び出しを $2 回}}未満にしてください ({{PLURAL:$1|現在は $1 回}})。',
'expensive-parserfunction-category' => '高負荷な構文解析関数の呼び出しが多過ぎるページ',
-'post-expand-template-inclusion-warning' => "'''警告:''' テンプレートの読み込みサイズが大き過ぎます。
-いくつかのテンプレートは読み込まれません。",
+'post-expand-template-inclusion-warning' => '<strong>警告:</strong> テンプレートの読み込みサイズが大き過ぎます。
+いくつかのテンプレートは読み込まれません。',
'post-expand-template-inclusion-category' => 'テンプレート読み込みサイズが制限値を越えているページ',
-'post-expand-template-argument-warning' => "'''警告:''' このページは、展開後のサイズが大きすぎるテンプレート引数を少なくとも 1 つ含んでいます。
-これらの引数を省略しました。",
+'post-expand-template-argument-warning' => '<strong>警告:</strong> このページは、展開後のサイズが大きすぎるテンプレート引数を少なくとも 1 つ含んでいます。
+これらの引数を省略しました。',
'post-expand-template-argument-category' => '省略されたテンプレート引数を含むページ',
'parser-template-loop-warning' => 'テンプレートのループを検出しました: [[$1]]',
'parser-template-recursion-depth-warning' => 'テンプレートの再帰の深さ ($1) が上限を超えました',
# Account creation failure
'cantcreateaccounttitle' => 'アカウントを作成できません',
-'cantcreateaccount-text' => "この IP アドレス ('''$1''') からのアカウント作成は、[[User:$3|$3]] によってブロックされています。
+'cantcreateaccount-text' => 'この IP アドレス (<strong>$1</strong>) からのアカウント作成は、[[User:$3|$3]] によってブロックされています。
-$3 が示した理由: ''$2''",
+$3 が示した理由: <em>$2</em>',
'cantcreateaccount-range-text' => "この IP アドレス ('''$4''') を含む、IP アドレス範囲 '''$1''' からのアカウント作成は、[[User:$3|$3]] によってブロックされています。
$3 が示した理由: ''$2''",
'last' => '前',
'page_first' => '先頭',
'page_last' => '末尾',
-'histlegend' => "差分の選択: 比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。<br />
-凡例: '''({{int:cur}})'''=最新版との比較、'''({{int:last}})'''=直前の版との比較、'''{{int:minoreditletter}}'''=細部の編集",
+'histlegend' => '差分の選択: 比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。<br />
+凡例: <strong>({{int:cur}})</strong>=最新版との比較、<strong>({{int:last}})</strong>=直前の版との比較、<strong>{{int:minoreditletter}}</strong>=細部の編集',
'history-fieldset-title' => '履歴の閲覧',
'history-show-deleted' => '削除済みのみ',
'histfirst' => '最古',
'rev-deleted-user' => '(利用者名は除去されています)',
'rev-deleted-event' => '(記録は除去されています)',
'rev-deleted-user-contribs' => '[利用者名またはIPアドレスは除去されました - その編集は投稿記録で非表示にされています]',
-'rev-deleted-text-permission' => "この版は'''削除されています'''。
-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-deleted-text-unhide' => "この版は'''削除されています'''。
+'rev-deleted-text-permission' => 'この版は<strong>削除されています</strong>。
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-deleted-text-unhide' => 'この版は<strong>削除されています</strong>。
[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。
-このまま[$1 この版を閲覧]できます。",
-'rev-suppressed-text-unhide' => "この版は'''秘匿されています'''。
+このまま[$1 この版を閲覧]できます。',
+'rev-suppressed-text-unhide' => 'この版は<strong>秘匿されています</strong>。
[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。
-このまま[$1 この版を閲覧]できます。",
-'rev-deleted-text-view' => "この版は'''削除されています'''。
-内容を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-suppressed-text-view' => "この版は'''秘匿されています'''。
-内容を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。",
-'rev-deleted-no-diff' => "どちらかの版が'''削除されているため'''、差分表示できません。
-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-suppressed-no-diff' => "どちらかの版が'''削除されているため'''、差分表示できません。",
-'rev-deleted-unhide-diff' => "この差分の一方の版は'''削除されています'''。
+このまま[$1 この版を閲覧]できます。',
+'rev-deleted-text-view' => 'この版は<strong>削除されています</strong>。
+内容を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-suppressed-text-view' => 'この版は<strong>秘匿されています</strong>。
+内容を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。',
+'rev-deleted-no-diff' => 'どちらかの版が<strong>削除されているため</strong>、差分表示できません。
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-suppressed-no-diff' => 'どちらかの版が<strong>削除されているため</strong>、差分表示できません。',
+'rev-deleted-unhide-diff' => 'この差分の一方の版は<strong>削除されています</strong>。
[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。
-このまま[$1 この差分を閲覧]できます。",
-'rev-suppressed-unhide-diff' => "この差分の一方の版は'''秘匿されています'''。
+このまま[$1 この差分を閲覧]できます。',
+'rev-suppressed-unhide-diff' => 'この差分の一方の版は<strong>秘匿されています</strong>。
[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。
-このまま[$1 この差分を閲覧]できます。",
-'rev-deleted-diff-view' => "この差分の一方の版は'''削除されています'''。
-この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-suppressed-diff-view' => "この差分の一方の版は'''秘匿されています'''。
-この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。",
+このまま[$1 この差分を閲覧]できます。',
+'rev-deleted-diff-view' => 'この差分の一方の版は<strong>削除されています</strong>。
+この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-suppressed-diff-view' => 'この差分の一方の版は<strong>秘匿されています</strong>。
+この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。',
'rev-delundel' => '表示/非表示',
'rev-showdeleted' => '表示',
'revisiondelete' => '版の削除と復元',
'revdelete-no-file' => '指定されたファイルは存在しません。',
'revdelete-show-file-confirm' => 'ファイル「<nowiki>$1</nowiki>」の削除された$2$3の版を本当に閲覧しますか?',
'revdelete-show-file-submit' => 'はい',
-'revdelete-selected' => "'''[[:$1]] の{{PLURAL:$2|選択された版}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|選択された記録項目}}:'''",
-'revdelete-text' => "'''削除された版や記録項目は引き続きページの履歴や記録に表示されますが、一般利用者はその内容の一部を取得できなくなります。'''
-追加の制限がかけられない限り、{{SITENAME}}の他の管理者は同じインターフェイスを使って非表示の内容の取得や復元ができます。",
+'revdelete-selected' => '<strong>[[:$1]] の{{PLURAL:$2|選択された版}}:</strong>',
+'logdelete-selected' => '<strong>{{PLURAL:$1|選択された記録項目}}:</strong>',
+'revdelete-text' => '<strong>削除された版や記録項目は引き続きページの履歴や記録に表示されますが、一般利用者はその内容の一部を取得できなくなります。</strong>
+追加の制限がかけられない限り、{{SITENAME}}の他の管理者は同じインターフェイスを使って非表示の内容の取得や復元ができます。',
'revdelete-confirm' => 'この操作を行おうとしていること、その結果を理解していること、[[{{MediaWiki:Policy-url}}|方針]]に従っていること、を確認してください。',
-'revdelete-suppress-text' => "秘匿は、'''以下の場合に限って'''使用すべきです:
+'revdelete-suppress-text' => '秘匿は、<strong>以下の場合に限って</strong>使用すべきです:
* 名誉毀損のおそれがある記述
* 非公開個人情報
-*: ''自宅の住所、電話番号、個人を識別できる公的な番号など''",
+*: <em>自宅の住所、電話番号、個人を識別できる公的な番号など</em>',
'revdelete-legend' => '閲覧レベル制限を設定',
'revdelete-hide-text' => '版の本文',
'revdelete-hide-image' => 'ファイル内容を隠す',
'revdelete-unsuppress' => '復元版に対する制限を除去',
'revdelete-log' => '理由:',
'revdelete-submit' => '選択された{{PLURAL:$1|版}}に適用',
-'revdelete-success' => "'''版の閲覧レベルを更新しました。'''",
-'revdelete-failure' => "'''版の閲覧レベルを更新できませんでした:'''
-$1",
-'logdelete-success' => "'''記録の閲覧レベルを変更しました。'''",
-'logdelete-failure' => "'''記録の閲覧レベルを設定できませんでした。'''
-$1",
+'revdelete-success' => '<strong>版の閲覧レベルを更新しました。</strong>',
+'revdelete-failure' => '<strong>版の閲覧レベルを更新できませんでした:</strong>
+$1',
+'logdelete-success' => '<strong>記録の閲覧レベルを変更しました。</strong>',
+'logdelete-failure' => '<strong>記録の閲覧レベルを設定できませんでした。</strong>
+$1',
'revdel-restore' => '閲覧レベルを変更',
'pagehist' => 'ページの履歴',
'deletedhist' => '削除された履歴',
'revdelete-modify-no-access' => '$1$2の項目の修正に失敗しました: この項目には「制限付き」の印が付いています。
アクセス権限がありません。',
'revdelete-modify-missing' => '版 ID $1 の項目の変更に失敗しました: データベース内にありません!',
-'revdelete-no-change' => "'''警告:''' $1$2の項目には要求された閲覧レベルが既に設定されています。",
+'revdelete-no-change' => '<strong>警告:</strong> $1$2の項目には要求された閲覧レベルが既に設定されています。',
'revdelete-concurrent-change' => '$1$2の項目の変更に失敗しました: あなたが変更しようとしている間に、他の誰かが変更したようです。
記録を確認してください。',
'revdelete-only-restricted' => '$1$2の項目の版指定削除に失敗しました: 他の閲覧レベルの選択肢のうちどれかをさらに選択しなければ、管理者から項目を秘匿できません。',
'nextn-title' => '次の{{PLURAL:$1|$1件}}',
'shown-title' => 'ページあたり{{PLURAL:$1|$1件の結果}}を表示',
'viewprevnext' => '($1{{int:pipe-separator}}$2) ($3 件) を表示',
-'searchmenu-exists' => "'''このウィキには「[[:$1]]」という名前のページがあります。'''{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}",
-'searchmenu-new' => "'''このウィキでページ「[[:$1]]」を新規作成しましょう。'''{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}",
+'searchmenu-exists' => '<strong>このウィキには「[[:$1]]」という名前のページがあります。</strong>{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}',
+'searchmenu-new' => '<strong>このウィキでページ「[[:$1]]」を新規作成しましょう。</strong>{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}',
'searchprofile-articles' => '本文ページ',
'searchprofile-project' => 'ヘルプとプロジェクトページ',
'searchprofile-images' => 'マルチメディア',
'search-result-score' => '関連度: $1%',
'search-redirect' => '($1からのリダイレクト)',
'search-section' => '($1の節)',
+'search-file-match' => '(ファイルの内容との一致)',
'search-suggest' => 'もしかして: $1',
'search-interwiki-caption' => '姉妹プロジェクト',
'search-interwiki-default' => '$1の結果:',
'searcheverything-enable' => 'すべての名前空間を検索',
'searchrelated' => '関連',
'searchall' => 'すべて',
-'showingresults' => "'''$2''' 件目以降の最大 {{PLURAL:$1|'''$1''' 件の結果}}を表示しています。",
-'showingresultsnum' => "'''$2''' 件目以降の {{PLURAL:$3|'''$3''' 件の結果}}を表示しています。",
-'showingresultsheader' => "「'''$4'''」の検索結果 {{PLURAL:$5|'''$3''' 件中の '''$1''' 件目|'''$3''' 件中の '''$1''' 件目から '''$2''' 件目}}",
+'showingresults' => '<strong>$2</strong> 件目以降の最大 {{PLURAL:$1|<strong>$1</strong> 件の結果}}を表示しています。',
+'showingresultsnum' => '<strong>$2</strong> 件目以降の {{PLURAL:$3|<strong>$3</strong> 件の結果}}を表示しています。',
+'showingresultsheader' => '「<strong>$4</strong>」の検索結果 {{PLURAL:$5|<strong>$3</strong> 件中の <strong>$1</strong> 件目|<strong>$3</strong> 件中の <strong>$1</strong> 件目から <strong>$2</strong> 件目}}',
'search-nonefound' => '問い合わせに合致する検索結果はありませんでした。',
'powersearch-legend' => '高度な検索',
'powersearch-ns' => '名前空間を指定して検索:',
'userrights-lookup-user' => '利用者グループを管理',
'userrights-user-editname' => '利用者名を入力:',
'editusergroup' => '利用者グループを編集',
-'editinguser' => "利用者''' [[User:$1|$1]]''' $2 の権限を変更",
+'editinguser' => '利用者<strong> [[User:$1|$1]]</strong> $2 の権限を変更',
'userrights-editusergroup' => '利用者グループを編集',
'saveusergroups' => '利用者グループを保存',
'userrights-groupsmember' => '所属グループ:',
'recentchanges-label-plusminus' => 'ページ サイズの増減 (バイト単位)',
'recentchanges-legend-heading' => "'''凡例:'''",
'recentchanges-legend-newpage' => '([[Special:NewPages|新しいページ一覧]]も参照)',
-'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "以下は'''$2'''以降の更新です (最大 '''$1''' 件)。",
+'recentchanges-legend-plusminus' => '(<em>±123</em>)',
+'rcnotefrom' => '以下は<strong>$2</strong>以降の更新です (最大 <strong>$1</strong> 件)。',
'rclistfrom' => '$1以降の更新を表示する',
'rcshowhideminor' => '細部の編集を$1',
'rcshowhidebots' => 'ボットを$1',
'recentchangeslinked-feed' => '関連ページの更新状況',
'recentchangeslinked-toolbox' => '関連ページの更新状況',
'recentchangeslinked-title' => '「$1」と関連する変更',
-'recentchangeslinked-summary' => "これは指定したページからリンクされている (または指定したカテゴリに含まれている) ページの最近の変更の一覧です。
-[[Special:Watchlist|自分のウォッチリスト]]にあるページは'''太字'''で表示されます。",
+'recentchangeslinked-summary' => 'これは指定したページからリンクされている (または指定したカテゴリに含まれている) ページの最近の変更の一覧です。
+[[Special:Watchlist|自分のウォッチリスト]]にあるページは<strong>太字</strong>で表示されます。',
'recentchangeslinked-page' => 'ページ名:',
'recentchangeslinked-to' => 'このページへのリンク元での変更の表示に切り替え',
'upload_directory_missing' => 'アップロード先ディレクトリ ($1) が見つかりませんでした。ウェブ サーバーによる作成もできませんでした。',
'upload_directory_read_only' => 'アップロード先ディレクトリ ($1) には、ウェブサーバーが書き込めません。',
'uploaderror' => 'アップロードのエラー',
-'upload-recreate-warning' => "'''警告: その名前のファイルは、以前に削除または移動されています。'''
+'upload-recreate-warning' => '<strong>警告: その名前のファイルは、以前に削除または移動されています。</strong>
-参考のため、このページの削除と移動の記録を以下に示します:",
-'uploadtext' => "ファイルをアップロードするには、以下のフォームを使用してください。
+参考のため、このページの削除と移動の記録を以下に示します:',
+'uploadtext' => 'ファイルをアップロードするには、以下のフォームを使用してください。
以前にアップロードされたファイルの表示と検索には[[Special:FileList|{{int:listfiles}}]]を使用してください。(再) アップロードは[[Special:Log/upload|アップロード記録]]に、削除は[[Special:Log/delete|削除記録]]にも記録されます。
ページにファイルを入れるには、以下の書式のリンクを使用してください:
-* '''<code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></code>''' とすると、ファイルが完全なままで使用されます。
-* '''<code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></code>''' とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。
-* '''<code><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></code>''' とすると、ファイルを表示せずにそのファイルに直接リンクします。",
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></code></strong> とすると、ファイルが完全なままで使用されます。
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></code></strong> とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。
+* <strong><code><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></code></strong> とすると、ファイルを表示せずにそのファイルに直接リンクします。',
'upload-permitted' => '許可されているファイル形式: $1。',
'upload-preferred' => '推奨されているファイル形式: $1。',
'upload-prohibited' => '禁止されているファイル形式: $1。',
'filetype-mime-mismatch' => 'ファイルの拡張子「$1」がMIMEタイプ「$2」と一致しません。',
'filetype-badmime' => 'MIMEタイプ「$1」のファイルのアップロードは許可されていません。',
'filetype-bad-ie-mime' => '許可されていない潜在的危険性のあるファイル形式「$1」としてInternet Explorerに認識されてしまうため、このファイルをアップロードできません。',
-'filetype-unwanted-type' => "'''「.$1」'''は好ましくないファイル形式です。
-推奨される{{PLURAL:$3|ファイル形式}}は $2 です。",
-'filetype-banned-type' => "'''「.$1」''' は許可されていないファイル形式です{{PLURAL:$4|}}。
-許可されているファイル形式{{PLURAL:$3|}}は$2です。",
+'filetype-unwanted-type' => '<strong>「.$1」</strong>は好ましくないファイル形式です。
+推奨される{{PLURAL:$3|ファイル形式}}は $2 です。',
+'filetype-banned-type' => '<strong>「.$1」</strong> は許可されていないファイル形式です{{PLURAL:$4|}}。
+許可されているファイル形式{{PLURAL:$3|}}は$2です。',
'filetype-missing' => 'ファイル名に「.jpg」のような拡張子がありません。',
'empty-file' => '送信されたファイルは空でした。',
'file-too-large' => '送信されたファイルは大きすぎます。',
* アップロード中のファイルの名前: <strong>[[:$1]]</strong>
* 既存ファイルの名前: <strong>[[:$2]]</strong>
違う名前を選択してください。',
-'fileexists-thumbnail-yes' => "このファイルは元の画像から縮小されたもの ''(サムネイル)'' のようです。
+'fileexists-thumbnail-yes' => 'このファイルは元の画像から縮小されたもの <em>(サムネイル)</em> のようです。
[[$1|thumb]]
ファイル <strong>[[:$1]]</strong> を確認してください。
-確認したファイルが同じ画像の元のサイズの版の場合は、サムネイルを別途アップロードする必要はありません。",
-'file-thumbnail-no' => "ファイル名が <strong>$1</strong> で始まっています。
-他の画像から縮小されたもの ''(サムネイル)'' のようです。
-より高精細な画像をお持ちの場合はそれをアップロードしてください。お持ちではない場合はファイル名を変更してください。",
+確認したファイルが同じ画像の元のサイズの版の場合は、サムネイルを別途アップロードする必要はありません。',
+'file-thumbnail-no' => 'ファイル名が <strong>$1</strong> で始まっています。
+他の画像から縮小されたもの <em>(サムネイル)</em> のようです。
+より高精細な画像をお持ちの場合はそれをアップロードしてください。お持ちではない場合はファイル名を変更してください。',
'fileexists-forbidden' => 'この名前のファイルは既に存在しており、上書きできません。
アップロードを継続したい場合は、前のページに戻り、別のファイル名を使用してください。
[[File:$1|thumb|center|$1]]',
'watchthisupload' => 'このファイルをウォッチ',
'filewasdeleted' => 'この名前のファイルは一度アップロードされ、その後削除されています。
再度アップロードする前に$1を確認してください。',
-'filename-bad-prefix' => "アップロードしようとしているファイルの名前が'''「$1」'''から始まっていますが、これはデジタルカメラによって自動的に付与されるような具体性を欠いた名前です。
-ファイルの内容をより具体的に説明する名前を使用してください。",
+'filename-bad-prefix' => 'アップロードしようとしているファイルの名前が<strong>「$1」</strong>から始まっていますが、これはデジタルカメラによって自動的に付与されるような具体性を欠いた名前です。
+ファイルの内容をより具体的に説明する名前を使用してください。',
'filename-prefix-blacklist' => ' #<!-- この行はそのままにしておいてください --> <pre>
# 構文は以下の通り:
# * "#" 記号から行末まではすべてがコメント
'backend-fail-read' => 'ファイル「$1」から読み取れませんでした。',
'backend-fail-create' => 'ファイル「$1」に書き込めませんでした。',
'backend-fail-maxsize' => 'サイズが {{PLURAL:$2|$2 バイト}}を超えているため、ファイル「$1」に書き込めませんでした。',
-'backend-fail-readonly' => "ストレージバックエンド「$1」は現在読み取り専用です。理由:「''$2''」",
+'backend-fail-readonly' => 'ストレージバックエンド「$1」は現在読み取り専用です。理由:「<em>$2</em>」',
'backend-fail-synced' => 'ファイル「$1」は、ストレージバックエンド内部で不一致の状態にあります',
'backend-fail-connect' => 'ストレージバックエンド「$1」に接続できませんでした。',
'backend-fail-internal' => 'ストレージバックエンド「$1」内で不明なエラーが発生しました。',
# File reversion
'filerevert' => '$1を差し戻す',
'filerevert-legend' => 'ファイルを差し戻す',
-'filerevert-intro' => "ファイル'''[[Media:$1|$1]]'''を[$4 $2$3版]に差し戻そうとしています。",
+'filerevert-intro' => 'ファイル<strong>[[Media:$1|$1]]</strong>を[$4 $2$3版]に差し戻そうとしています。',
'filerevert-comment' => '理由:',
'filerevert-defaultcomment' => '$1$2の版へ差し戻し',
'filerevert-submit' => '差し戻す',
-'filerevert-success' => "'''[[Media:$1|$1]]'''は[$4 $2$3の版]に差し戻されました。",
+'filerevert-success' => '<strong>[[Media:$1|$1]]</strong>は[$4 $2$3の版]に差し戻されました。',
'filerevert-badversion' => 'このファイルに指定された時刻印を持つ過去の版はありません。',
# File deletion
'filedelete' => '$1の削除',
'filedelete-legend' => 'ファイルの削除',
-'filedelete-intro' => "'''[[Media:$1|$1]]'''をすべての履歴とともに削除しようとしています。",
-'filedelete-intro-old' => "'''[[Media:$1|$1]]'''の[$4 $2$3の版]を削除しようとしています。",
+'filedelete-intro' => '<strong>[[Media:$1|$1]]</strong>をすべての履歴とともに削除しようとしています。',
+'filedelete-intro-old' => '<strong>[[Media:$1|$1]]</strong>の[$4 $2$3の版]を削除しようとしています。',
'filedelete-comment' => '理由:',
'filedelete-submit' => '削除',
-'filedelete-success' => "'''$1''' を削除しました。",
-'filedelete-success-old' => "'''[[Media:$1|$1]]'''の$2$3の版を削除しました。",
-'filedelete-nofile' => "'''$1'''は存在しません。",
-'filedelete-nofile-old' => "指定された属性を持つ'''$1'''の古い版は存在しません。",
+'filedelete-success' => '<strong>$1</strong> を削除しました。',
+'filedelete-success-old' => '<strong>[[Media:$1|$1]]</strong>の$2$3の版を削除しました。',
+'filedelete-nofile' => '<strong>$1</strong>は存在しません。',
+'filedelete-nofile-old' => '指定された属性を持つ<strong>$1</strong>の古い版は存在しません。',
'filedelete-otherreason' => '他の、または追加の理由:',
'filedelete-reason-otherlist' => 'その他の理由',
'filedelete-reason-dropdown' => '*よくある削除理由
'notvisiblerev' => '別の利用者による最終版は削除されました',
'watchlist-details' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています (トークページを除く)。',
'wlheader-enotif' => 'メール通知が有効になっています。',
-'wlheader-showupdated' => "最終訪問以降に変更されたページは、'''太字'''で表示されます。",
+'wlheader-showupdated' => '最終訪問以降に変更されたページは、<strong>太字</strong>で表示されます。',
'watchmethod-recent' => '最近の更新内のウォッチされているページを確認中',
'watchmethod-list' => 'ウォッチされているページ内の最近の更新を確認中',
'watchlistcontains' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています。',
'iteminvalidname' => '項目「$1」には問題があります。名前が無効です...',
-'wlnote' => "$3 $4 までの{{PLURAL:$2|'''$2'''時間}}になされた{{PLURAL:$1|'''$1'''件の変更}}は以下の通りです。",
+'wlnote2' => '以下は $2 $3 までの {{PLURAL:$1|<strong>$1</strong> 時間}}でなされた変更です。',
'wlshowlast' => '次の期間で表示: $1時間、$2日間、$3',
'watchlist-options' => 'ウォッチリストのオプション',
'exblank' => '白紙ページ',
'delete-confirm' => '「$1」の削除',
'delete-legend' => '削除',
-'historywarning' => "'''警告:''' 削除しようとしているページには、約$1版の履歴があります:",
+'historywarning' => '<strong>警告:</strong> 削除しようとしているページには、約$1版の履歴があります:',
'confirmdeletetext' => 'ページをすべての履歴とともに削除しようとしています。
本当にこの操作を行いたいか、操作の結果を理解しているか、およびこの操作が[[{{MediaWiki:Policy-url}}|方針]]に従っているかどうか、確認してください。',
'actioncomplete' => '操作を完了しました',
'delete-warning-toobig' => 'このページには、 $1版を超える編集履歴があります。
削除すると、{{SITENAME}}のデータベース処理に大きな負荷がかかります。
十分に注意してください。',
-'deleting-backlinks-warning' => "'''警告:''' 削除しようとしているページは、他のページからリンクされています。",
+'deleting-backlinks-warning' => "'''è¦å\91\8a:''' å\89\8aé\99¤ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\81¯ã\80\81ä»\96ã\81®ã\83\9aã\83¼ã\82¸ã\81\8bã\82\89ã\83ªã\83³ã\82¯ã\81¾ã\81\9fã\81¯å\8f\82ç\85§èªã\81¿è¾¼ã\81¿ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82",
# Rollback
'rollback' => '編集を巻き戻し',
'protect_expiry_invalid' => '有効期間が正しくありません。',
'protect_expiry_old' => '有効期限が過去の時刻です。',
'protect-unchain-permissions' => '追加保護オプションをロック解除',
-'protect-text' => "ここでは、ページ '''$1''' に対する保護レベルの表示と操作ができます。",
-'protect-locked-blocked' => "ブロックされている間は、保護レベルを変更できません。
-ページ '''$1''' の現在の状態は以下の通りです:",
-'protect-locked-dblock' => "データベースのロックが有効なため、保護レベルを変更できません。
-ページ '''$1''' の現在の状態は以下の通りです:",
-'protect-locked-access' => "アカウントに、ページの保護レベルを変更する権限がありません。
-ページ '''$1''' の現在の状態は以下の通りです:",
+'protect-text' => 'ここでは、ページ <strong>$1</strong> に対する保護レベルの表示と操作ができます。',
+'protect-locked-blocked' => 'ブロックされている間は、保護レベルを変更できません。
+ページ <strong>$1</strong> の現在の状態は以下の通りです:',
+'protect-locked-dblock' => 'データベースのロックが有効なため、保護レベルを変更できません。
+ページ <strong>$1</strong> の現在の状態は以下の通りです:',
+'protect-locked-access' => 'アカウントに、ページの保護レベルを変更する権限がありません。
+ページ <strong>$1</strong> の現在の状態は以下の通りです:',
'protect-cascadeon' => 'このページは現在、カスケード保護が有効になっている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、保護されています。
このページの保護レベルを変更できますが、カスケード保護には影響しません。',
'protect-default' => 'すべての利用者に許可',
# Undelete
'undelete' => '削除されたページを表示',
'undeletepage' => '削除されたページの表示と復元',
-'undeletepagetitle' => "'''以下は[[:$1|$1]]の削除された版です'''。",
+'undeletepagetitle' => '<strong>以下は[[:$1|$1]]の削除された版です</strong>。',
'viewdeletedpage' => '削除されたページを表示',
'undeletepagetext' => '以下の{{PLURAL:$1|削除されたページ| $1 件の削除されたページ}}は、保存版に残っているため復元できます。
保存版は定期的に消去される可能性があります。',
'undelete-fieldset-title' => '削除された版の復元',
-'undeleteextrahelp' => "すべての版を復元する場合は、どのボックスにもチェックを入れていない状態で'''''{{int:undeletebtn}}'''''をクリックしてください。
-特定の版を復元する場合は、復元する版のボックスにチェックを入れた状態で'''''{{int:undeletebtn}}'''''をクリックしてください。",
+'undeleteextrahelp' => 'すべての版を復元する場合は、どのボックスにもチェックを入れていない状態で<strong><em>{{int:undeletebtn}}</em></strong>をクリックしてください。
+特定の版を復元する場合は、復元する版のボックスにチェックを入れた状態で<strong><em>{{int:undeletebtn}}</em></strong>をクリックしてください。',
'undeleterevisions' => '保存版に$1{{PLURAL:$1|版}}あります',
'undeletehistory' => 'ページを復元すると、すべての版が履歴に復元されます。
削除後に同じ名前で新しいページが作成されている場合、復元された版はそれに先行する履歴として表示されます。',
'undeletedfiles' => '{{PLURAL:$1|$1ファイル}}を復元しました',
'cannotundelete' => '復元に失敗しました:
$1',
-'undeletedpage' => "'''$1を復元しました。'''
+'undeletedpage' => '<strong>$1を復元しました。</strong>
-最近の削除と復元の記録については[[Special:Log/delete|削除記録]]を参照してください。",
+最近の削除と復元の記録については[[Special:Log/delete|削除記録]]を参照してください。',
'undelete-header' => '最近削除されたページは[[Special:Log/delete|削除記録]]で確認できます。',
'undelete-search-title' => '削除されたページの検索',
'undelete-search-box' => '削除されたページの検索',
'whatlinkshere' => 'リンク元',
'whatlinkshere-title' => '「$1」へリンクしているページ',
'whatlinkshere-page' => 'ページ:',
-'linkshere' => "以下のページが、'''[[:$1]]''' にリンクしています:",
-'nolinkshere' => "'''[[:$1]]''' にリンクしているページはありません。",
-'nolinkshere-ns' => "指定した名前空間内に、'''[[:$1]]''' にリンクしているページはありません。",
+'linkshere' => '以下のページが、<strong>[[:$1]]</strong> にリンクしています:',
+'nolinkshere' => '<strong>[[:$1]]</strong> にリンクしているページはありません。',
+'nolinkshere-ns' => '指定した名前空間内に、<strong>[[:$1]]</strong> にリンクしているページはありません。',
'isredirect' => '転送ページ',
'istemplate' => '参照読み込み',
'isimage' => 'ファイルへのリンク',
'change-blocklink' => '設定を変更',
'contribslink' => '投稿記録',
'emaillink' => 'メールを送信',
-'autoblocker' => "この IP アドレスを「[[User:$1|$1]]」が最近使用したため、自動ブロックされています。
-$1 のブロックの理由は「''$2''」です。",
+'autoblocker' => 'この IP アドレスを「[[User:$1|$1]]」が最近使用したため、自動ブロックされています。
+$1 のブロックの理由は「<em>$2</em>」です。',
'blocklogpage' => 'ブロック記録',
'blocklog-showlog' => 'この利用者は以前にブロックされたことがあります。
参考のため、ブロック記録を以下に示します:',
'range_block_disabled' => '範囲ブロックを作成する管理者機能は無効化されています。',
'ipb_expiry_invalid' => '有効期限が無効です。',
'ipb_expiry_temp' => '利用者名秘匿のブロックは、無期限ブロックになります。',
-'ipb_hide_invalid' => 'このアカウントを秘匿できません。編集回数が非常に多いためだと思われます。',
+'ipb_hide_invalid' => 'このアカウントを秘匿できません。編集回数が{{PLURAL:$1|$1回}}を超えています。',
'ipb_already_blocked' => '「$1」は既にブロックされています。',
'ipb-needreblock' => '$1 は既にブロックされています。設定を変更しますか?',
'ipb-otherblocks-header' => 'その他の{{PLURAL:$1|ブロック}}',
# Move page
'move-page' => '「$1」の移動',
'move-page-legend' => 'ページの移動',
-'movepagetext' => "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
+'movepagetext' => '下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
移動元のページは移動先への転送ページになります。
移動元のページへの転送ページを自動的に修正できます。
[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。
リンクを正しく維持するのは移動した人の責任です。
-移動先のページが既に存在する場合は、その移動先が転送ページであり、かつ過去の版を持たない場合以外は移動'''できません'''。
+移動先のページが既に存在する場合は、その移動先が転送ページであり、かつ過去の版を持たない場合以外は移動<strong>できません</strong>。
つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
-'''注意!'''
+<strong>注意!</strong>
よく閲覧されるページや、他の多くのページからリンクされているページを移動すると予期しない結果が起こるかもしれません。
-ページの移動に伴う影響をよく考えてから踏み切るようにしてください。",
-'movepagetext-noredirectfixer' => "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
+ページの移動に伴う影響をよく考えてから踏み切るようにしてください。',
+'movepagetext-noredirectfixer' => '下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
移動元のページは移動先への転送ページになります。
自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。
つながるべき場所にリンクがつながるよう維持するのは移動した人の責任です。
-移動先が既に存在する場合は、そのページが転送ページであり、かつ過去の版を持たない場合を除いて移動'''できません'''。
+移動先が既に存在する場合は、そのページが転送ページであり、かつ過去の版を持たない場合を除いて移動<strong>できません</strong>。
つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
-'''警告!'''
+<strong>警告!</strong>
多く閲覧されるページや多くリンクされているページを移動すると、予期しない大きな変化が起こるかもしれないことにご注意ください。
-ページの移動に伴う影響をよく考えてから移動してください。",
-'movepagetalktext' => "関連付けられたトークページも一緒に、自動的に移動されます。ただし、'''以下の場合を除きます:'''
+ページの移動に伴う影響をよく考えてから移動してください。',
+'movepagetalktext' => '関連付けられたトークページも一緒に、自動的に移動されます。ただし、<strong>以下の場合を除きます:</strong>
* 移動先に、空ではないトークページが既に存在する場合
* 下のボックスのチェックを消した場合
-これらの場合、必要に応じて、トークページを移動または統合する必要があります。",
+これらの場合、必要に応じて、トークページを移動または統合する必要があります。',
'movearticle' => '移動するページ:',
-'moveuserpage-warning' => "'''警告:''' 利用者ページを移動しようとしています。この操作ではページのみが移動され、利用者名は''変更されない''点に注意してください。",
+'moveuserpage-warning' => '<strong>警告:</strong> 利用者ページを移動しようとしています。この操作ではページのみが移動され、利用者名は<em>変更されない</em>点に注意してください。',
'movenologintext' => 'ページを移動するためには、登録利用者でありかつ、[[Special:UserLogin|ログイン]]している必要があります。',
'movenotallowed' => 'ページを移動する権限がありません。',
'movenotallowedfile' => 'ファイルを移動する権限がありません。',
'move-watch' => '移動元と移動先ページをウォッチ',
'movepagebtn' => 'ページを移動',
'pagemovedsub' => '移動に成功しました',
-'movepage-moved' => "'''「$1」は「$2」へ移動されました'''",
+'movepage-moved' => '<strong>「$1」は「$2」へ移動されました</strong>',
'movepage-moved-redirect' => '転送ページを作成しました。',
'movepage-moved-noredirect' => '転送ページは作成されませんでした。',
'articleexists' => '指定された移動先には既にページが存在するか、名前が不適切です。
'imageinvalidfilename' => '対象ファイル名が無効です',
'fix-double-redirects' => 'このページへのリダイレクトがあればそのリダイレクトを修正',
'move-leave-redirect' => '移動元に転送ページを作成する',
-'protectedpagemovewarning' => "'''警告:''' このページは保護されているため、管理者権限を持つ利用者のみが移動できます。
-参考として以下に最後の記録を表示します:",
-'semiprotectedpagemovewarning' => "'''注意:''' このページは保護されているため、登録利用者のみが移動できます。
-参考として以下に最後の記録を表示します:",
+'protectedpagemovewarning' => '<strong>警告:</strong> このページは保護されているため、管理者権限を持つ利用者のみが移動できます。
+参考として以下に最後の記録を表示します:',
+'semiprotectedpagemovewarning' => '<strong>注意:</strong> このページは保護されているため、登録利用者のみが移動できます。
+参考として以下に最後の記録を表示します:',
'move-over-sharedrepo' => '== ファイルが存在します ==
[[:$1]]は共有リポジトリ上に存在します。ファイルをこの名前に移動すると共有ファイルを上書きします。',
'file-exists-sharedrepo' => '選ばれたファイル名は既に共有リポジトリ上で使用されています。
後者の場合ではリンクの形で使うこともできます。例えば、[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]はページ「[[{{MediaWiki:Mainpage}}]]」が対象になります。',
'exportall' => 'すべてのページを書き出し',
'exportcuronly' => '完全な履歴は含めず、最新版のみを含める',
-'exportnohistory' => "----
-'''注意:''' 処理能力上の理由により、このフォームによるページの完全な履歴の書き出しは無効化されています。",
+'exportnohistory' => '----
+<strong>注意:</strong> 処理能力上の理由により、このフォームによるページの完全な履歴の書き出しは無効化されています。',
'exportlistauthors' => '各ページの投稿者の完全な一覧を含める',
'export-submit' => '書き出し',
'export-addcattext' => '指定したカテゴリ内のページを追加:',
'allmessagescurrent' => '現在のメッセージ文',
'allmessagestext' => 'これは MediaWiki 名前空間で利用できるシステム メッセージの一覧です。
MediaWiki 全般のローカライズ (地域化) に貢献したい場合は、[https://www.mediawiki.org/wiki/Localisation/ja MediaWiki のローカライズ]や [//translatewiki.net?setlang=ja translatewiki.net] をご覧ください。',
-'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages'''が無効のため、このページを使用できません。",
+'allmessagesnotsupportedDB' => '<strong>$wgUseDatabaseMessages</strong>が無効のため、このページを使用できません。',
'allmessages-filter-legend' => '絞り込み',
'allmessages-filter' => '変更状態により絞り込む:',
'allmessages-filter-unmodified' => '変更なし',
'allmessages-prefix' => '名前の先頭部分で絞り込む:',
'allmessages-language' => '言語:',
'allmessages-filter-submit' => '表示',
+'allmessages-filter-translate' => '翻訳',
# Thumbnails
'thumbnail-more' => '拡大',
'tooltip-pt-watchlist' => '変更をウォッチしているページの一覧',
'tooltip-pt-mycontris' => '自分の投稿の一覧',
'tooltip-pt-login' => 'ログインすることを推奨します。ただし、必須ではありません。',
-'tooltip-pt-anonlogin' => 'ログインすることを推奨します。ただし、必須ではありません。',
'tooltip-pt-logout' => 'ログアウト',
'tooltip-ca-talk' => '本文ページについての議論',
'tooltip-ca-edit' => 'このページを編集できます。保存前にプレビューボタンを使用してください。',
'spam_reverting' => '$1へのリンクを含まない最新の版に差し戻し',
'spam_blanking' => 'すべての版が$1へのリンクを含んでいます。白紙化します。',
'spam_deleting' => 'すべての版が$1へのリンクを含んでいます。削除します。',
-'simpleantispam-label' => "スパム攻撃防止用のチェックです。
-ここに値を決して入力'''しない'''でください。",
+'simpleantispam-label' => 'スパム攻撃防止用のチェックです。
+ここに値を決して入力<strong>しない</strong>でください。',
# Info page
'pageinfo-title' => '「$1」の情報',
'nextdiff' => '新しい編集→',
# Media information
-'mediawarning' => "'''警告:''' この種類のファイルは、悪意があるコードを含んでいる可能性があります。
-実行するとシステムが危険にさらされるおそれがあります。",
-'imagemaxsize' => "画像のサイズ制限: <br />''(ファイルページに対する)''",
+'mediawarning' => '<strong>警告:</strong> この種類のファイルは、悪意があるコードを含んでいる可能性があります。
+実行するとシステムが危険にさらされるおそれがあります。',
+'imagemaxsize' => '画像のサイズ制限: <br /><em>(ファイルページに対する)</em>',
'thumbsize' => 'サムネイルの大きさ:',
'widthheight' => '$1 × $2',
'widthheightpage' => '$1 × $2、$3 {{PLURAL:$3|ページ}}',
'file-info-png-looped' => '繰り返し',
'file-info-png-repeat' => '$1 {{PLURAL:$1|回再生しました}}',
'file-info-png-frames' => '$1 {{PLURAL:$1|フレーム}}',
-'file-no-thumb-animation' => "'''注意: 技術的な制限により、このファイルのサムネイルはアニメーションされません。'''",
-'file-no-thumb-animation-gif' => "'''注意: 技術的な制限により、この画像のような高解像度の GIF 画像の、サムネイルはアニメーションされません。'''",
+'file-no-thumb-animation' => '<strong>注意: 技術的な制限により、このファイルのサムネイルはアニメーションされません。</strong>',
+'file-no-thumb-animation-gif' => '<strong>注意: 技術的な制限により、この画像のような高解像度の GIF 画像の、サムネイルはアニメーションされません。</strong>',
# Special:NewFiles
'newimages' => '新しいファイルのギャラリー',
-'imagelisttext' => "以下は、'''$1'''{{PLURAL:$1|ファイル}}の$2で並べ替えた一覧です。",
+'imagelisttext' => '以下は、<strong>$1</strong>{{PLURAL:$1|ファイル}}の$2で並べ替えた一覧です。',
'newimages-summary' => 'この特別ページでは、最近アップロードされたファイルを表示します。',
'newimages-legend' => '絞り込み',
'newimages-label' => 'ファイル名 (またはその一部):',
'scarytranscludetoolong' => '[URLが長すぎます]',
# Delete conflict
-'deletedwhileediting' => "'''警告:''' このページが、編集開始後に削除されました!",
-'confirmrecreate' => "あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを以下の理由で削除しました:
-: ''$2''
-このままこのページを本当に再作成していいか確認してください。",
+'deletedwhileediting' => '<strong>警告:</strong> このページが、編集開始後に削除されました!',
+'confirmrecreate' => 'あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを以下の理由で削除しました:
+: <em>$2</em>
+このままこのページを本当に再作成していいか確認してください。',
'confirmrecreate-noreason' => 'あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを削除しました。このページを本当に再作成していいかご確認ください。',
'recreate' => '再作成する',
# Core parser functions
'unknown_extension_tag' => '不明な拡張機能タグ「$1」です',
-'duplicate-defaultsort' => "'''警告:''' 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。",
+'duplicate-defaultsort' => '<strong>警告:</strong> 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。',
# Special:Version
'version' => 'バージョン情報',
'version-license-not-found' => 'この拡張機能には詳細なライセンス情報がありません。',
'version-credits-title' => '$1 への貢献者情報',
'version-credits-not-found' => 'この拡張機能には詳細な貢献者情報がありません。',
-'version-poweredby-credits' => "このウィキは、'''[https://www.mediawiki.org/ MediaWiki]''' (copyright © 2001-$1 $2) で動作しています。",
+'version-poweredby-credits' => 'このウィキは、<strong>[https://www.mediawiki.org/ MediaWiki]</strong> (copyright © 2001-$1 $2) で動作しています。',
'version-poweredby-others' => 'その他',
'version-poweredby-translators' => 'translatewiki.net の翻訳者たち',
'version-credits-summary' => '[[Special:Version|MediaWiki]] に貢献した以下の人たちに感謝します。',
'tog-numberheadings' => 'Wènèhana nomer judul secara otomatis',
'tog-showtoolbar' => 'Tuduhna <em>toolbar</em> (batang piranti) panyuntingan (mbutuhaké JavaScript)',
'tog-editondblclick' => 'Sunting kaca nganggo klik ping loro (mbutuhaké JavaScript)',
-'tog-editsection' => 'Fungsèkna panyuntingan sub-bagian ngliwati pranala [sunting]',
'tog-editsectiononrightclick' => 'Fungsèkna panyuntingan sub-bagian mawa klik-tengen ing judul bagian (mbutuhaké JavaScript)',
-'tog-showtoc' => 'Tuduhna daftar isi (kanggo kaca sing nduwé luwih saka 3 sub-bagian)',
'tog-rememberpassword' => 'Émut tembung sandi kula ing peramban punika (salebeting $1 {{PLURAL:$1|dinten|dinten}})',
'tog-watchcreations' => 'Tambahaké kaca sing tak gawé lan berkas sing tak unggah nèng daptar pangawasan',
'tog-watchdefault' => 'Tambahaké kaca lan berkas sing tak sunting nèng daptar pangawasan',
'tog-numberheadings' => 'ავტომატურად დანომრე ქვესათაურები',
'tog-showtoolbar' => 'რედაქტირების პანელის ჩვენება',
'tog-editondblclick' => 'გვერდების რედაქტირება ორმაგი დაწკაპუნებით',
-'tog-editsection' => 'სექციის რედაქტირების ნებართვა [რედაქტირებული] ბმულების გავლით',
'tog-editsectiononrightclick' => 'სექციის რედაქტირების ნებართვა სათაურებზე მარჯვენა ღილაკზე დაჭერით',
-'tog-showtoc' => 'აჩვენე სარჩევი (სამ ქვესათაურზე მეტის მქონე გვერდებისთვის)',
'tog-rememberpassword' => 'დამიმახსოვრე ამ კომპიუტერზე (მაქსიმუმ $1 {{PLURAL:$1|დღე|დღე}})',
'tog-watchcreations' => 'დაამატე ჩემი კონტროლის სიას ჩემს მიერ შექმნილი გვერდები და ატვირთული ფაილები',
'tog-watchdefault' => 'დაამატე ჩემი კონტროლის სიას ჩემს მიერ რედაქტირებული გვერდები და ფაილები',
'tog-numberheadings' => 'Izwal ɣur-sen imḍanen mebla ma serseɣ-iten',
'tog-showtoolbar' => 'Ssken tafeggagt n ifecka n ubeddel',
'tog-editondblclick' => 'Beddel isebtar mi wekkiɣ snat n tikwal',
-'tog-editsection' => 'Eǧǧ abeddel n umur s yizdayen [beddel]',
'tog-editsectiononrightclick' => 'Ssermed abeddel n tigezmi s ukliki ayeffus ɣef izwal',
-'tog-showtoc' => 'Ssken agbur (i isebtar i yesɛan kter n 3 izwalen)',
'tog-rememberpassword' => 'Cfu ɣef yisem n umseqdac inu di uselkim-agi (i afellay n $1 {{PLURAL:$1|ass|ussan}})',
'tog-watchcreations' => 'Rnu isebtar i xelqeɣ deg wumuɣ n uɛessi inu',
'tog-watchdefault' => 'Rnu isebtar i ttbeddileɣ deg wumuɣ n uɛessi inu',
'retypenew' => 'Ɛiwed ssekcem n tbaḍnit amaynut:',
'resetpass_submit' => 'Eg awal n tbaḍnit u kcem',
'changepassword-success' => 'Awal n uɛaddi yettubeddel s lerbaḥ !',
+'changepassword-throttled' => 'Tɛerdeḍ ad qqeneḍ aṭas tiqwal deg dqiqat agi iɛddan.
+Ilaq ad rǧuḍ $1 uqbel ad ɛerdeḍ tikkelt nniḍen.',
'resetpass_forbidden' => 'Ur zemreḍ ara ad beddeleḍ awalen n uɛaddi',
'resetpass-no-info' => 'Ilaq ad qqeneḍ iwakken ad ẓṛeḍ asebter agi.',
'resetpass-submit-loggedin' => 'Beddel awal n uɛaddi',
'changeemail-password' => 'Awal-ik/im n uɛaddi ɣef {{SITENAME}} :',
'changeemail-submit' => 'Beddel tansa e-mail',
'changeemail-cancel' => 'Semmewet',
+'changeemail-throttled' => 'Tɛerdeḍ ad qqeneḍ aṭas tiqwal.
+Ilaq ad rǧuḍ $1 uqbel ad ɛerdeḍ tikkelt nniḍen.',
# Special:ResetTokens
'resettokens' => 'Wennez tiddas',
'search-result-score' => 'Taflest : $1%',
'search-redirect' => '(asemmimeḍ $1)',
'search-section' => '(tigezmi $1)',
+'search-file-match' => '(yzega i ugbur n ufaylu)',
'search-suggest' => 'D awal $1 i tnadiḍ ?',
'search-interwiki-caption' => 'Isenfaren atmaten',
'search-interwiki-default' => 'Igemmaḍ ɣef $1 :',
'watchmethod-list' => 'yessenqed isebtar i ttɛassaɣ i ibeddlen imaynuten',
'watchlistcontains' => 'Umuɣ n uɛessi inek ɣur-s $1 n {{PLURAL:$1|usebter|isebtar}}.',
'iteminvalidname' => "Agnu akk d uferdis '$1', isem mačči ṣaḥiḥ...",
-'wlnote' => "Ddaw agi {{PLURAL:$1|yella abeddel aneggaru|llan '''$1''' ibeddilen ineggura}} n {{PLURAL:$2|usrag aneggaru|'''$2''' isragen ineggura}}, seg $3 af $4.",
+'wlnote2' => 'Ddaw agi ibeddilen deg {{PLURAL:$1|asrag aneggaru|<strong>$1</strong> isragen ineggura}}, seg $2, $3.',
'wlshowlast' => 'Ssken $1 n swayeɛ $2 n wussan neɣ $3 ineggura',
'watchlist-options' => 'Tifranin n umuɣ n uɛessi',
'delete-warning-toobig' => 'Asebtar agi yesɛa amezruy axatar n ibeddilen, ugaren $1 {{PLURAL:$1|lqem|ileqman}}.
Tukksa-s tezmer ad terwi tiddit n taffa n isefka n {{SITENAME}} ;
ilaq ad seqdeceḍ s-leɛqel.',
-'deleting-backlinks-warning' => "'''Ɣur-wet :''' Isebtar nniḍen sɛant azday ɣer asebtar i tebɣiḍ ad kkeseḍ.",
+'deleting-backlinks-warning' => "'''Ɣur-wet :''' Isebtar nniḍen sɛan azday ɣer asebtar i tebɣiḍ ad ekkeseḍ.",
# Rollback
'rollback' => 'Semmet ibeddilen',
'blocklog-showsuppresslog' => 'Amseqdac agi, yetseweḥel dɣa yeweffer uqbel. Ad affeḍ aɣmis n tukksiwin ddaw-agi :',
'blocklogentry' => 'yesewḥel [[$1]] ; alama : $2 $3',
'reblock-logentry' => 'yebeddel iɣewwaren n usewḥel n [[$1]] s tasewtit ar $2 $3',
+'blocklogtext' => 'Wagi d-aɣmis n tigawin n usewḥel d aksusewḥel n imseqdacen.
+Tansiwin IP yestsuwḥelen s-uwurman ulac-itent deg umuɣ agi.
+Ẓer [[Special:BlockList|umuɣ n isewḥal]] iwakken ad ẓṛeḍ iḍeggiren d isewḥal yellan tura.',
'unblocklogentry' => 'yekkes asewḥel n $1',
'block-log-flags-anononly' => 'Imseqdacen udrigen kan',
'block-log-flags-nocreate' => 'asnulfu n umiḍan yessegdel',
'range_block_disabled' => 'Azref n unedbal i usnulfu n isewḥal n tagrummiwin IP yensa.',
'ipb_expiry_invalid' => 'Tanzagt n tasewti ur teɣbel ara.',
'ipb_expiry_temp' => 'Isewḥal n isemawen n imseqdacen yeffren ilaq ad illin d-imeɣlalen.',
-'ipb_hide_invalid' => 'Ulamek an ekkes amiḍan agi ; yesɛa aṭas ibeddilen.',
+'ipb_hide_invalid' => 'Ulamek an ekkes amiḍan agi ; yesɛa ugar n {{PLURAL:$1|yiwen abeddel|$1 ibeddilen}}.',
'ipb_already_blocked' => '« $1 » yesewḥel yakan',
'ipb-needreblock' => '« $1 » yesewḥel yakan. Tebɣiḍ ad beddeleḍ iɣewwaren ?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Asewḥel nniḍen|Isewḥelen nniḍen}}',
'ipb_blocked_as_range' => 'Tuccḍa : tansa IP $1 ur t-uwḥel ara srid dɣa ulamek an ekkes asewḥel.
Lamaɛna tezga deg tagrumma $2 i nezmer an ekkes asewḥel.',
'ip_range_invalid' => 'Tagrumma IP artameɣtut',
+'ip_range_toolarge' => 'Isewḥal n tagrummiwin i ugaren /$1 ur sɛan ara assireg.',
+'proxyblocker' => 'Amsewḥel n proxy',
'proxyblockreason' => 'Tansa n IP inek teɛkel axaṭer nettat "open proxy". G leɛnayek, meslay akk d provider inek.',
'sorbsreason' => 'Tansa IP inek/inem tella deg yiwen umuɣ am "open proxy" deg DNSBL yettuseqdac deg {{SITENAME}}.',
'sorbs_create_account_reason' => 'Tansa IP inek/inem tella deg yiwen umuɣ am "open proxy" deg DNSBL yettuseqdac deg {{SITENAME}}.
Ur tezmireḍ ara ad snulfuḍ amiḍan.',
'xffblockreason' => 'Yiwet tansa IP deg tasenṭit X-Forwarded-For header, tin inek/inem neɣ tin n uqeddac proxy i tseqeddeceḍ ,tesewḥel. Taɣzint n usewḥel amezrwaru : $1',
+'cant-see-hidden-user' => "Amseqdac i tebɣiḍ ad sewḥeleḍ yetsewḥel yakan dɣa yetweffer. Imi ur tesɛiḍ ara azref ''hideuser'', ur tzemreḍ ara ad ẓṛeḍ neɣ ad beddeleḍ asewḥel n umseqdac agi.",
+'ipbblocked' => 'Ur tzemreḍ ada ad sewḥeleḍ neɣ ad aksewḥeleḍ imseqdacen nniḍen, acku ula d-kečč/kem tsewḥeleḍ.',
+'ipbnounblockself' => 'Ur tesɛiḍ ara assireg ad aksewḥeleḍ iman-ik/im.',
# Developer tools
'lockdb' => 'Sekker database',
'unlockconfirm' => 'Ih, bɣiɣ ad ekkeseɣ aksskeṛeɣ taffa n isefka.',
'lockbtn' => 'Sekker taffa n isefka',
'unlockbtn' => 'Kkes aseḍru n taffa n isefka',
+'locknoconfirm' => 'Ur d-sekcemeḍ ara amidag deg tanaka n aragag.',
'lockdbsuccesssub' => 'Askaṛ n taffa n isefka yetwexddem',
'unlockdbsuccesssub' => 'Asewḥel n taffa n isefka yetwekkes',
+'lockdbsuccesstext' => 'Taffa n isefka teskeṛ.<br />
+Ur tettu ara ad ekkeseḍ [[Special:UnlockDB|askaṛ]] ma tfukeḍ tamhelt inek/inem n ibeddi.',
'unlockdbsuccesstext' => 'Askaṛ n taffa n isefka yetwekkes.',
'lockfilenotwritable' => 'Ur tzemreḍ ara ad aruḍ deg ufaylu n uskaṛ n taffa n isefka.
Ma tebɣiḍ ad sewḥeleḍ neɣ ad ekkseḍ asewḥel ɣef taffa n isefka, ilaq aqeddac web ad yezmer ad yaru deg ufaylu agi.',
+'databasenotlocked' => 'Taffa n isefka ur tesɛa ara askar.',
'lockedbyandtime' => '(sɣur $1 ass n $2 af $3)',
# Move page
'move-page' => 'Beddel isem n $1',
'move-page-legend' => 'Smimeḍ asebter',
-'movepagetext' => "Seqdec tiferkit ddaw agi iwakken ad beddeleḍ isem n usebter, s usiweḍ n akkw amezruy is ɣer isem amaynut. Azwel aqbur ad yuɣal d asebter n usemmime ɣer azwel amaynut. Tzemreḍ ad mucceḍeḍ s uwurman isemmimen amiran i sweṛen ɣer azwel amezwaru. Ma ur tebɣiḍ ara at sexdemeḍ wagi, ilaq ad selkeneḍ akkw [[Special:DoubleRedirects|Asemmimeḍ yeḍran snat tikwal]] naɣ [[Special:BrokenRedirects|asmmimeḍ yerẓan]]. Ilaq ad sɛuḍ talkint belli izdayen tsweṛen ɣer aserken is.
+'movepagetext' => "Seqdec tiferkit ddaw agi iwakken ad beddeleḍ isem n usebter, s usiweḍ n akkw umezruy-is ɣer isem amaynut. Azwel aqbur ad yuɣal d asebter n usemmime ɣer azwel amaynut. Tzemreḍ ad mucceḍeḍ s uwurman isemmimen imiranen i sweṛen ɣer azwel amezwaru. Ma ur tebɣiḍ ara at sexdemeḍ wagi, ilaq ad selkeneḍ akkw [[Special:DoubleRedirects|Asemmimeḍ yeḍran snat tikwal]] neɣ [[Special:BrokenRedirects|asmmimeḍ yerẓan]]. Ilaq ad sɛuḍ talkint belli izdayen tsweṛen ɣer aserken is.
-Abeddel n isem ur yezmer ara ad yilli ma yella yakan asebter s isem agi, ḥaca ma ulac amezruy deg-es.
+Abeddel n isem <strong>ur</strong> yezmer <strong>ara</strong> ad yilli ma yella yakan asebter s isem agi, ḥaca ma ulac amezruy deg-es. Waya yetɛemmed an beddel isem n usebtar ɣer addud ines amezwaru ma tiggit d tuccḍit, dɣa ulamek an mzey yiwen asebtar yellan.
+
+'''Ɣur-wet !'''
+Wagi yezmer ad yexdem abeddel ameqqṛan i asebter s aṭas timerziwin ; ilaq ad fehmeḍ uqbel ad beddeleḍ asebter.",
+'movepagetext-noredirectfixer' => "Seqdec tiferkit ddaw agi iwakken ad beddeleḍ isem n usebter, s usiweḍ n akkw amezruy is ɣer isem amaynut. Azwel aqbur ad yuɣal d asebter n usemmime ɣer azwel amaynut.
+Ilaq ad selkeneḍ akkw [[Special:DoubleRedirects|Asemmimeḍ yeḍran snat tikwal]] naɣ [[Special:BrokenRedirects|asmmimeḍ yerẓan]].
+Ilaq ad sɛuḍ talkint belli izdayen tsweṛen ɣer aserken is.
+
+Abeddel n isem ur yezmer ara ad yilli ma yella yakan asebter s isem agi, ḥaca ma ulac amezruy deg-es dɣa yuɣal d-asebtar n usemmim. Waya yetɛemmed an beddel isem n usebtar ɣer addud ines amezwaru ma tiggit d tuccḍit, dɣa ulamek an mzey yiwen asebtar yellan.
'''Ɣur-wet !'''
Wagi yezmer ad yexdem abeddel ameqqṛan i asebter s aṭas timerziwin ; ilaq ad fehmeḍ uqbel ad beddeleḍ asebter.",
Lukan akka, yessefk a t-tedmeḍ weḥdek.",
'movearticle' => 'Smimeḍ asebter',
+'moveuserpage-warning' => "'''Ɣur-wet !''' Atan ad beddeleḍ isem n usebtar n umseqdac. Ilaq ad fehmeḍ, isem n usebtar ad yetbeddel, maca isem n umseqdac '''ur''' d-yetbeddel '''ara'''.",
'movenologintext' => 'Yessefk ad tesɛuḍ isem n wemseqdac u [[Special:UserLogin|tkecmeḍ]]
iwakken ad tesmimḍeḍ asebter.',
'movenotallowed' => 'Ur tesɛiḍ ara turagt ad beddeleḍ isem n isebtar.',
+'movenotallowedfile' => 'Ur tesɛiḍ ara turagt ad beddeleḍ isem n ifuyla.',
'cant-move-user-page' => 'Ur tesɛiḍ ara turagt ad beddeleḍ isem n isebtar igejdanen n imseqdacen',
+'cant-move-to-user-page' => 'Ur tesɛid ara assireg iwakken ad beddeleḍ isem n usebtar ɣer asebtar n umseqdac (haca ma d-adu-asebtar).',
'newtitle' => 'Ar azwel amaynut',
'move-watch' => 'Ɛass asebter-agi',
'movepagebtn' => 'Smimeḍ asebter',
'pagemovedsub' => 'Asemmimeḍ yekfa',
+'movepage-moved' => "'''« $1 » yetwabeddel isem ar « $2 »'''",
+'movepage-moved-redirect' => 'Abeddel n isem seg isem aqbur yetxelqed.',
+'movepage-moved-noredirect' => 'Asnulfu n ubeddel n isem seg isem aqbur yetsemmet.',
'articleexists' => 'Yella yagi yisem am wagi, neɣ
isem ayen textareḍ mačči d ṣaḥiḥ.
Xtar yiwen nniḍen.',
+'cantmove-titleprotected' => 'Ur tzemreḍ ara ad ssiweḍeḍ asebtar ɣer amkan agi acku asnulfu n usebtar s uzwel agi amaynut yetweḥrez',
'movetalk' => 'Smimeḍ asebter n umyannan (n umagrad-nni)',
'move-subpages' => 'Beddel isem n adu-isebtar (alma d $1 {{PLURAL:$1|asebtar|isebtar}})',
'move-talk-subpages' => 'Beddel adu-isebtar n usebtar n amyannan (alma d $1 isebtar)',
+'movepage-page-exists' => 'Asebtar $1 yella yakan dɣa ur nezmer ara at n-mzey s uwurman.',
+'movepage-page-moved' => 'Asebtar $1 yetwabeddel isem-is ar $2.',
+'movepage-page-unmoved' => 'Asebtar $1 ur nezmer ara an beddel isem-is ar $2.',
+'movepage-max-pages' => 'Afellay n $1 {{PLURAL:$1|asebtar|isebtar}} s isem ibeddelen yetwuɛa dɣa tura ur d-yetilli ara abeddel n isem s-uwurman.',
'movelogpage' => 'Aɣmis n usemmimeḍ',
'movelogpagetext' => 'Akessar yella wumuɣ n isebtar yettusmimeḍen.',
'movesubpage' => '{{PLURAL:$1|Adu-asebtar|Adu-isebtar}}',
'delete_and_move_confirm' => 'Ih, mḥu asebter',
'delete_and_move_reason' => 'Asebter yemḥa iwakken yeqqim-d wemkan i usmimeḍ seg "[[$1]]"',
'selfmove' => 'Izwal amezwaru d uneggaru kif-kif; ur yezmir ara ad yesmimeḍ asebter ɣur iman-is.',
+'immobile-source-namespace' => 'Ur tzemreḍ ara ad beddeleḍ isem n isebtar deg tallunt n isemawen « $1 »',
+'immobile-target-namespace' => 'Ur tzemreḍ ara ad beddeleḍ isem n isebtar ɣer tallunt n isemawen « $1 »',
'immobile-target-namespace-iw' => 'Izdayen interwiki mačči d iswi ameɣtu i imussa.',
+'immobile-source-page' => 'Ulamek ad beddeleḍ isem n usebtar agi.',
+'immobile-target-page' => 'Ur tzemreḍ ara ad beddeleḍ isem n usebtar ɣer azwel agi.',
+'bad-target-model' => 'Aserken i tebɣiḍ yetseqdac talɣa nniḍen n ugbur. Ulamek an beddel seg $1 ɣer $2.',
+'imagenocrossnamespace' => 'Ulamek an beddeleḍ isem n ufaylu ɣer tallunt n isemawen nniḍen wala afaylu',
+'nonfile-cannot-move-to-file' => 'Ulamek an beddeleḍ ayen nniḍen wala afaylu ɣer tallunt n isemawen n ufaylu',
+'imagetypemismatch' => 'Asiɣzef amaynut n ufaylu agi ur yaɛdil ara s tawsit ines.',
+'imageinvalidfilename' => 'Isem n ufaylu iswi ur yaɛdil ara',
+'fix-double-redirects' => 'Mucceḍ inegzumen yetruḥun ɣer azwel amezwaru',
+'move-leave-redirect' => 'Eǧǧ anegzum ɣer azwel amaynut',
+'protectedpagemovewarning' => "'''ƔUR-WET :''' Asebter-agi yettwaḥrez iwakken imseqdacen kan yesɛan izerfan n unedbal ad zemren ad beddlen isem-is.
+Asekcem aneggaru n uɣmis yella ddaw-agi :",
+'semiprotectedpagemovewarning' => "'''Tamawt :''' Asebter-agi yettwaḥrez iwakken imseqdacen kan yesɛan amiḍan kan i zemren ad beddlen isem-is.
+Asekcem aneggaru n uɣmis yella ddaw-agi :",
+'move-over-sharedrepo' => '== Afaylu yella yakan ==
+[[:$1]] yella yakan ɣef azadur anmili. Abeddel n isem n ufaylu agi ad yarreẓ azday ɣer ufaylu seg azadur anmili.',
+'file-exists-sharedrepo' => 'Isem agi yetseqdac yakan sɣur afaylu ɣef azadur anmili.
+Xtir isem nniḍen.',
# Export
'export' => 'Ssufeɣ isebtar',
+'exportall' => 'Ssufeɣ akkw isebtar',
'exportcuronly' => 'Ssekcem tasiwelt n tura kan, mačči akk amezruy-is',
'export-submit' => 'Ssufeɣ',
'export-addcattext' => 'Rnu isebtar seg taggayt:',
Ẓeṛ [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] dɣa [//translatewiki.net translatewiki.net] ma tebɣiḍ ad ɛiweneḍ i usideg imcettel n MediaWiki.',
'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' ut yezmir ara ad yettuseqdac axaṭer '''\$wgUseDatabaseMessages''' yettwakkes.",
'allmessages-filter-legend' => 'Tastayt',
+'allmessages-filter' => 'Ṣeffi s addad n ubeddil :',
'allmessages-filter-unmodified' => 'Ur yebeqqeḍ ara',
'allmessages-filter-all' => 'Akkw',
'allmessages-filter-modified' => 'Yebeddel',
'allmessages-prefix' => 'Tastayt s adat :',
'allmessages-language' => 'Tutlayt :',
'allmessages-filter-submit' => 'Ruḥ',
+'allmessages-filter-translate' => 'Ssuqqel',
# Thumbnails
'thumbnail-more' => 'Ssemɣer',
'thumbnail_error_remote' => 'Izen n tuccḍa n $1 :
$2',
'djvu_page_error' => 'Asebter DjVu yeffeɣ seg tilisa',
+'djvu_no_xml' => 'Ulamek an err XML i ufaylu DjVu',
+'thumbnail-temp-create' => 'Ulamek ad nesnulfu afaylu n tignit akudan',
+'thumbnail-dest-create' => 'Ulamek an kles tignit ɣef aserken',
+'thumbnail_invalid_params' => 'Iɣewwaren n tignit ur ɣeblen ara',
+'thumbnail_dest_directory' => 'Ulamek ad nesnulfu akaram n userken',
+'thumbnail_image-type' => 'Tawsit n tugna ur teɣbel ara',
+'thumbnail_gd-library' => 'Tawila tagermazt n tamkarḍit GD : ulac tasɣent $1',
+'thumbnail_image-missing' => 'Afaylu agi ulac-it : $1',
# Special:Import
'import' => 'Ssekcem isebtar',
'importinterwiki' => 'Assekcem n transwiki',
'import-interwiki-source' => 'Wiki d usebtar n taɣbalut',
'import-interwiki-history' => 'Xdem alsaru n akk tisiwal umezruy n usebter-agi',
+'import-interwiki-templates' => 'Sekcem akkw talɣiwin',
'import-interwiki-submit' => 'Ssekcem',
'import-interwiki-namespace' => 'Azen isebtar ar isem n taɣult:',
+'import-interwiki-rootpage' => 'Asebtar azaṛ n userken (axetṛan) :',
'import-upload-filename' => 'Isem n ufaylu :',
'import-comment' => 'Awennit :',
'importstart' => 'Asekcem n isebtar...',
'import-revision-count' => '$1 {{PLURAL:$1|tasiwelt|tisiwal}}',
'importnopages' => 'Ulac isebtar iwakken ad ttussekcmen.',
+'imported-log-entries' => '$1 {{PLURAL:$1|anekcum|inekcumen}} n uɣmis yekteren.',
'importfailed' => 'Asekcem yexser: $1',
'importunknownsource' => 'Anaw n uɣbalu n usekcem mačči d mechur',
'importcantopen' => 'Ur yezmir ara ad yexdem asekcem n ufaylu',
'importhistoryconflict' => 'Amennuɣ ger tisiwal n umezruy (ahat asebter-agi yettwazen yagi)',
'importnosources' => 'Asekcam n transwiki ur yexdim ara u amezruy n usekcam yettwakkes.',
'importnofile' => 'ulaḥedd afaylu usekcam ur yettwazen.',
+'import-noarticle' => 'Ulac isebtar ad nekter.',
+'import-nonewrevisions' => 'Akkw ileqman tetwaketren yakan.',
+'import-error-edit' => 'Asebtar « $1 » ur d-yekter ara acku ur tesɛiḍ ara turagt iwakken at beddeleḍ.',
+'import-error-create' => 'Asebtar « $1 » ur d-yekter ara acku ur tesɛiḍ ara turagt iwakken at snulfuḍ.',
+'import-error-interwiki' => 'Asebtar « $1 » ur d-yekter ara acku isem-is yettwaṭṭef i uzday yeffɣen (interwiki).',
+'import-error-special' => 'Asebtar « $1 » ur d-yekter ara acku yeqqen s tallunt n isemawen uslig ur yebɣan ara isebtar.',
+'import-error-invalid' => 'Asebtar « $1 » ur d-yekter ara acku isem-is ur yeɣbel ara.',
+'import-options-wrong' => 'Yir {{PLURAL:$2|afran|ifranen}} : <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'Asebtar aẓar id efkeḍ d-azwel ur ɣblen ara.',
'import-rootpage-nosubpage' => 'Tallunt n isemawen « $1 » n usebtar aẓar ur yeqbel ara adu-isebtar.',
'tooltip-pt-watchlist' => 'Umuɣ n uɛessi n isebtar i ttɛessaɣ',
'tooltip-pt-mycontris' => 'Umuɣ n tikkin inu',
'tooltip-pt-login' => 'Lukan tkecmeḍ xir, meɛna am tebɣiḍ.',
-'tooltip-pt-anonlogin' => 'Lukan tkecmeḍ xir, meɛna am tebɣiḍ.',
'tooltip-pt-logout' => 'Ffeɣ',
'tooltip-ca-talk' => 'Amyannan ɣef wayen yella deg usebter',
'tooltip-ca-edit' => 'Tzemreḍ ad tbeddleḍ asebter-agi. Sseqdec pre-timeẓriwt qbel.',
'pageinfo-few-watchers' => 'Kkes-as $1 {{PLURAL:$1|amanay|imanayen}}',
'pageinfo-redirects-name' => 'Amḍan n izdayen ɣer asebtar agi',
'pageinfo-subpages-name' => 'Adu-isebtar n usebter agi',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|anegzum|inegzumen}}; $3 {{PLURAL:$3|ur-anegzum|ur-inegzumen}})',
'pageinfo-firstuser' => 'Ameslal n usebtar',
'pageinfo-firsttime' => 'Azmez n usnulfu n usebtar',
'pageinfo-lastuser' => 'Atekki aneggaru',
'pageinfo-magic-words' => '{{PLURAL:$1|Awal n tiḥḥerga|Awalen n tiḥḥerga}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Taggayt yeffren|Taggayin yeffren}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Talɣa i seddan|Talɣiwin i seddan}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Asebtar|Isebtar}} ayyes tesekcem ($1)',
'pageinfo-toolboxlink' => 'Tilɣa ɣef usebtar',
'pageinfo-redirectsto' => 'Ceggaɛ ɣer',
'pageinfo-redirectsto-info' => 'tiɣa',
'exif-datetimereleased' => 'Tuffɣa ass n',
'exif-originaltransmissionref' => 'Tangalt n usideg n tuzzna tamezwarut',
'exif-identifier' => 'Asulay',
+'exif-lens' => 'Tilintit yetseqdacen',
+'exif-serialnumber' => 'Uṭṭun n umazrar n timseknewt',
+'exif-cameraownername' => 'Amli n timseknewt',
'exif-label' => 'Aglam',
+'exif-datetimemetadata' => 'Azmez n abeddil aneggaru n adferisefka',
+'exif-nickname' => 'Isem aralɣawi n tugna',
+'exif-rating' => 'Tazmilt (ɣef 5)',
+'exif-rightscertificate' => 'Aselkin n usefrek n izerfan',
+'exif-copyrighted' => 'Aẓayer n uzref n umeskar',
+'exif-copyrightowner' => 'Amaway n uzref n umeskar',
+'exif-usageterms' => 'Tawtilt n usseqdec',
+'exif-webstatement' => 'Taseɣrut n copyright askar uqqin',
+'exif-originaldocumentid' => 'ID awḥid n taftart taneṣlit',
+'exif-licenseurl' => 'URL n turagt',
+'exif-morepermissionsurl' => 'Tilɣa ɣef turagin timlellayin',
+'exif-attributionurl' => 'Deg alsasseqdec n tawuri agi, ilaq ad qqeneḍ ar',
+'exif-preferredattributionname' => 'Deg alsasseqdec n tawuri agi, ilaq ad snemmer',
+'exif-pngfilecomment' => 'Awennit n ufaylu PNG',
+'exif-disclaimer' => 'Ur-tamasit',
+'exif-contentwarning' => 'Alɣu ɣef ugbur',
+'exif-intellectualgenre' => 'Tawsit n uferdis',
+'exif-subjectnewscode' => 'Angal n usentel',
+'exif-scenecode' => 'Angal n usayes IPTC',
+'exif-event' => 'Tadyant yetsnazelen',
+'exif-organisationinimage' => 'Tuddsa yetsnazelen',
+'exif-personinimage' => 'Aterras yetsnazelen',
+'exif-originalimageheight' => 'Tafelleyt n tugna uqbel att ili tetwalssurret',
+'exif-originalimagewidth' => 'Tehri n tugna uqbel att ili tetwalssurret',
+
+# Exif attributes
+'exif-compression-2' => 'CCITT Agraw 3 Teɣzef n usettengel Huffman yetbeddlen n tasekta 1',
+'exif-compression-3' => 'CCITT Agraw 3 asettengel n fax',
+'exif-compression-4' => 'CCITT Agraw 4 asettengel n fax',
'exif-copyrighted-true' => 'Ddaw azref n umeskar',
'exif-copyrighted-false' => 'Addad n izerfan n umeskar ur yesbadu ara',
# Flash modes
'exif-flash-fired-0' => 'Lebṛaq ur yendeḥ ara',
'exif-flash-fired-1' => 'Lebṛaq yendeḥ',
+'exif-flash-return-0' => 'ula d yiwen n strub ur d-yerra ara tasɣent n tifin',
+'exif-flash-return-2' => 'strub ur-d i t-aff ara tafat id yuɣalen',
+'exif-flash-return-3' => 'strub yuffad tuqqla n tafat',
'exif-flash-mode-1' => 'Tafat n lebaq yuwren',
'exif-flash-mode-2' => 'Tukksa n lebaq yuwren',
'exif-flash-mode-3' => 'askar awurman',
'exif-subjectdistancerange-0' => 'Warisem',
'exif-subjectdistancerange-1' => 'Amɣer',
+'exif-subjectdistancerange-2' => 'Imeẓri iqerrben',
+'exif-subjectdistancerange-3' => 'Imeẓri ibɛeden',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'Agafa',
+'exif-gpslatitude-s' => 'Anẓul',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'Agmuḍ',
+'exif-gpslongitude-w' => 'Amalu',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|lmitra}} nnig aswir n ilel',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|lmitra}} ddaw aswir n ilel',
+
+'exif-gpsstatus-a' => 'Akat imir',
+'exif-gpsstatus-v' => 'Agertiddit n akat',
+
+'exif-gpsmeasuremode-2' => 'Akat s 2 tisektiwin',
+'exif-gpsmeasuremode-3' => 'Akat s 3 tisektiwin',
# Pseudotags used for GPSSpeedRef
'exif-gpsspeed-k' => 'Kilometr deg ssaɛa',
'exif-urgency-normal' => 'Alugen ($1)',
'exif-urgency-low' => 'Anammum ($1)',
'exif-urgency-high' => 'Afella ($1)',
+'exif-urgency-other' => 'Lḥir id yefka amseqdac ($1)',
# 'all' in various places, this might be different for inflected languages
'watchlistall2' => 'akk',
$5
Angal n usentem-agi ad yemmut ass $4.',
+'confirmemail_invalidated' => 'Aragag n tansa email yettusemmet',
+'invalidateemail' => 'Semmet aragag n tansa email',
# Scary transclusion
'scarytranscludedisabled' => '[Yettwakkes assekcam n isebtar seg wiki tiyaḍ]',
'scarytranscludefailed' => '[Ur yezmir ara a d-yawi talɣa n $1]',
+'scarytranscludefailed-httpstatus' => '[Abrir n tiririt n talɣa i $1 : HTTP $2]',
'scarytranscludetoolong' => '[URL agi uffay aṭas]',
# Delete conflict
# action=watch/unwatch
'confirm-watch-button' => 'Seɣbel',
+'confirm-watch-top' => 'Rnu asebter-agi i wumuɣ n uɛessi inek ?',
'confirm-unwatch-button' => 'Seɣbel',
+'confirm-unwatch-top' => 'Ekkes asebter-agi seg wumuɣ n uɛessi inek ?',
# Multipage image navigation
'imgmultipageprev' => '← asebter ssabeq',
'imgmultipagenext' => 'asebter ameḍfir →',
'imgmultigo' => 'Ruḥ!',
+'imgmultigoto' => 'Ruḥ ar usebtar $1',
+
+# Language selector for translatable SVGs
+'img-lang-default' => '(tutlayt s lexṣas)',
+'img-lang-info' => 'Beqqeḍ tugna agi s $1 $2.',
+'img-lang-go' => 'Ruḥ',
# Table pager
'ascending_abbrev' => 'asawen',
'table_pager_first' => 'Asebtar amezwaru',
'table_pager_last' => 'Asebtar aneggaru',
'table_pager_limit' => 'Ssken $1 n yiferdas di mkul asebtar',
+'table_pager_limit_label' => 'Agemmuḍ deg usebtar :',
'table_pager_limit_submit' => 'Ruḥ',
'table_pager_empty' => 'Ulac igmad',
'watchlistedit-raw-title' => 'Beddel umuɣ n uɛessi (raw)',
'watchlistedit-raw-legend' => 'Beddel umuɣ n uɛessi (raw)',
'watchlistedit-raw-titles' => 'Izwal:',
+'watchlistedit-raw-submit' => 'Amucceḍ n umuɣ n uɛassi',
'watchlistedit-raw-done' => 'Umuɣ n uɛessi inek yettubeddel.',
'watchlistedit-raw-added' => '{{PLURAL:$1|1 wezwel |$1 yizwal}} nnernan:',
'watchlistedit-raw-removed' => '{{PLURAL:$1|1 wezwel yettwakkes|$1 yizwal ttwakksen}}:',
'watchlisttools-edit' => 'Ẓer u beddel umuɣ n uɛessi',
'watchlisttools-raw' => 'Beddel umuɣ n uɛessi (raw)',
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|amyannan]])',
+
# Core parser functions
'unknown_extension_tag' => 'Ticṛeṭ n usiɣzef « $1 » warisem',
'duplicate-defaultsort' => 'Ɣur-wet : tasarut n ufran m-ulac « $2 » atsefεej tasarut n uqbel « $1 ».',
# Special:Version
'version' => 'Lqem',
+'version-extensions' => 'Isiɣzaf i serkeben',
'version-specialpages' => 'isebtar usligen',
+'version-parserhooks' => 'Imguden n umsisleḍ n taseddast',
+'version-variables' => 'Imuttiyen',
+'version-antispam' => 'Aḥezzeb n spam',
+'version-skins' => 'Igelman',
+'version-other' => 'Nniḍen',
+'version-mediahandlers' => 'Amsqerdec n imediaten',
+'version-hooks' => 'Imguden',
+'version-parser-extensiontags' => 'Ticraḍ yeẓẓlen n umsisleḍ n taseddast',
+'version-parser-function-hooks' => 'Tiseɣnin yeẓẓlen n umsisleḍ n taseddast',
+'version-hook-name' => 'Isem n umgud',
+'version-hook-subscribedby' => 'Imeltaɣen :',
+'version-version' => '(lqem $1)',
+'version-license' => 'Turagt MediaWiki',
+'version-ext-license' => 'Turagt',
+'version-ext-colheader-name' => 'Asiɣzef',
+'version-ext-colheader-version' => 'Lqem',
+'version-ext-colheader-license' => 'Turagt',
+'version-ext-colheader-description' => 'Aglam',
+'version-ext-colheader-credits' => 'Imeskaren',
+'version-license-title' => 'Turagt i $1',
+'version-credits-title' => 'Isnemmiren i $1',
+'version-poweredby-credits' => "Wiki agi yetelḥu s '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
+'version-poweredby-others' => 'nniḍen',
+'version-poweredby-translators' => 'imsuqqlen n translatewiki.net',
+'version-credits-summary' => 'Nebɣa an snemmer imdanen agi i uttekki nsen ar [[Special:Version|MediaWiki]].',
'version-software' => 'Iseɣẓanen i serkeben',
'version-software-product' => 'Afaris',
'version-software-version' => 'Lqem',
'redirect-lookup' => 'Anadi :',
'redirect-value' => 'Azal :',
'redirect-user' => 'ID n umseqdac',
+'redirect-page' => 'Uṭṭun n usebter',
'redirect-revision' => 'Tacaggart n usebtar',
'redirect-file' => 'Isem n ufaylu',
'redirect-not-exists' => 'Azal ulac-it',
# Special:SpecialPages
'specialpages' => 'isebtar usligen',
+'specialpages-note-top' => 'Aglam',
'specialpages-group-maintenance' => 'Iṛabulen n ibeddi',
'specialpages-group-other' => 'Isebtar usligen nniḍen',
'specialpages-group-login' => 'Asulu / assiggez',
'dberr-info-hidden' => '(Ulamek an qqen ar uqeddac n taffa n isefka)',
# HTML forms
+'htmlform-select-badoption' => 'Azal id efkeḍ mačči d taxtiṛit i ɣeblen.',
+'htmlform-int-invalid' => 'Azal id efkeḍ mačči d amḍan ummid.',
+'htmlform-float-invalid' => 'Azal id efkeḍ mačči d amḍan.',
+'htmlform-int-toolow' => 'Azal id efkeḍ d-amectuḥ ugar adday n $1',
+'htmlform-int-toohigh' => 'Azal id efkiḍ yugar afellay n $1',
+'htmlform-required' => 'Ilaq azal agi',
'htmlform-submit' => 'Ssumer',
'htmlform-reset' => 'Ekkes ibeddilen',
'htmlform-selectorother-other' => 'Nniḍen',
'feedback-adding' => 'Rnud iwenniten inek/inem ar usebter...',
'feedback-error1' => 'Tuccḍa : Agmuḍ n API ur yetwaɛqel ara',
'feedback-error3' => 'Tuccḍa : Ulac tamrarut n API',
+'feedback-close' => 'D ayen',
+
+# Search suggestions
+'searchsuggest-search' => 'Nadi',
# API errors
'api-error-badtoken' => 'Tuccḍa tagensit : yir « tiddest ».',
'duration-centuries' => '$1 {{PLURAL:$1|timiḍi|timiḍa}}',
'duration-millennia' => '$1 {{PLURAL:$1|agimseggwas|agimseggwasen}}',
+# Limit report
+'limitreport-cputime-value' => '$1 {{PLURAL:$1|tasint|tisinin}}',
+'limitreport-walltime-value' => '$1 {{PLURAL:$1|tasint|tisinin}}',
+
+# Special:ExpandTemplates
+'expand_templates_preview' => 'Azaraskan',
+
# Unknown messages
'uploadinvalidxml' => 'XML deg ufaylu yekteren ur d-yetwesleḍ ara.',
);
$messages = array(
# User preference toggles
-'tog-underline' => 'Bınê girey de xete bıonce:',
-'tog-justify' => 'Paragrafu ayar ke',
+'tog-underline' => 'Bınê gırey de xete bonce:',
+'tog-justify' => 'Paragrafu eyar ke',
'tog-hideminor' => 'Vurnayisunê senıku pela vurnayisunê peyênu de wedare',
'tog-hidepatrolled' => 'Vurnayisunê qontrolkerdu pela vurnayisê peyêni de wedare',
'tog-newpageshidepatrolled' => 'Pelunê qontrolkerdu lista pelunê newu de wedare',
-'tog-extendwatchlist' => 'Lista şêrkerdene hira bıke ke vurnayişi pêro bıasê, teyna tewr peyêni nê',
-'tog-usenewrc' => 'Pele be vurnayisunê grube de vurnayisê peyêni u lista şêrkerdişi (JavaScript lazımo)',
+'tog-extendwatchlist' => 'Lista şêrkerdene hira bıke ke vurnayişi pêro basê, teyna tewr peyêni nê',
+'tog-usenewrc' => 'Vurnayisê ke pela vurnayisunê peyênun u lista şêrkerdişi derê inu grube ke.',
'tog-numberheadings' => 'Sernustu be ho numra cı sane',
'tog-showtoolbar' => 'Gozagunê hacetunê vurnayişi bıasne (JavaScript lazımo)',
'tog-editondblclick' => 'Pê dı rey teqnayene pele sero bıguriye (JavaScript lazımo)',
-'tog-editsection' => 'Vurnayena qısımi ebe gireyunê [bıvurne] ra feal ke',
'tog-editsectiononrightclick' => 'Qısımu be teqnayena serrêze ra ebe gozaga raste bıvurne (JavaScript lazımo)',
-'tog-showtoc' => 'Tablowê tedeestewu bıasne (de pelunê be hirê sernustu ra jêdêri de)',
'tog-rememberpassword' => 'Parola mı nê cıcêrawoği de bia ho viri (serba tewr jêde $1 {{PLURAL:$1|roze|rozu}}).',
'tog-watchcreations' => 'Pelê ke mı afernê u dosyê ke mı bar kerdê lista mına şêrkerdişi ke',
'tog-watchdefault' => 'Pel u dosyê ke mı vurnê lista mına şêrkerdişi ke',
'tog-shownumberswatching' => 'Amorê karberunê şêrkerdoğu bıasne',
'tog-oldsig' => 'İmza mewcude:',
'tog-fancysig' => 'İmza rê mamelê wikimeqaley bıke (bê girewo otomatik)',
-'tog-uselivepreview' => 'Verqayto cande bıgurene (JavaScript) (hona cerrebnayene dero)',
+'tog-uselivepreview' => 'Verqayto cınde bıgurene (cerrebane)',
'tog-forceeditsummary' => 'Mı ke xulasa kerde cı vira, hay be mı ser de',
'tog-watchlisthideown' => 'Vurnayisunê mı lista mına şêrkerdişi de wedare',
'tog-watchlisthidebots' => 'Vurnayisunê boti lista mına şêrkerdişi de wedare',
'tooltip-pt-watchlist' => 'Lista pelunê ke to guretê şêrkerdene',
'tooltip-pt-mycontris' => 'Lista iştıraqunê sıma',
'tooltip-pt-login' => 'Serba cıkotene sıma rê sılaiya; hama, na zeruriye niya',
-'tooltip-pt-anonlogin' => 'Serba cıkotene sıma rê sılaiya, hama na zeruriye niya.',
'tooltip-pt-logout' => 'Veciye',
'tooltip-ca-talk' => 'Pela tedeesteu sero hurênais',
'tooltip-ca-edit' => 'Tı şikina na pele bıvurnê.
'tog-numberheadings' => 'Мазмұн тақырыптарын автоматты нөмірлеу',
'tog-showtoolbar' => 'Өңдеу құралдарын көрсету',
'tog-editondblclick' => 'Қос шерту арқылы бетті өңдеу',
-'tog-editsection' => 'Бөлімдерді [өңдеу] сілтемесімен өңдеуін қос',
'tog-editsectiononrightclick' => 'Бөлім тақырыбын оң нұқумен бөлім өңдеуін қосу',
-'tog-showtoc' => 'Мазмұнын көрсету (3-тен астам бөлімі болған жағдайда ғана)',
'tog-rememberpassword' => 'Тіркелгімді осы браузерде ұмытпа (ең көбі $1 {{PLURAL:$1|күн|күн}})',
'tog-watchcreations' => 'Мен бастаған беттерді бақылау тізіміне қос',
'tog-watchdefault' => 'Мен өңдеген беттерді бақылау тізіміне қос',
'watchmethod-list' => 'жуықтағы өзгерістер үшін бақылаулы беттерді тексеру',
'watchlistcontains' => 'Бақылау тізіміңізде $1 бет бар.',
'iteminvalidname' => "'$1' данада ақау бар — жарамсыз атау…",
-'wlnote' => "Төменде $3, $4 кезіне дейінгі соңғы {{PLURAL:$2|сағатта|'''$2''' сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы '''$1''' өзгеріс}} көрсетіледі.",
'wlshowlast' => 'Соңғы $1 сағаттағы, $2 күндегі, $3 болған өзгерісті көрсету',
'watchlist-options' => 'Бақылау тізімінің баптаулары',
Ал мақаланың атауын өзгертем деп мағлұматын қолмен көшіруге болмайды, себебі беттің түзету тарихын өшіреді.",
'movearticle' => 'Ағымдағы бет атауы:',
+'moveuserpage-warning' => '<strong>Ескерту:</strong> Сіз қатысушы бетін жылжытпақшысыз. Назар аударыңыз, қатысушы беті ғана жылжытылуы мүмкін және қатысушы аты <em>өзгертілмейді</em>.',
'movenologintext' => 'Бетті жылжыту үшін тіркелген болуыңыз және [[{{#special:UserLogin}}|кіруіңіз]] жөн.',
'movenotallowed' => '{{SITENAME}} жобасында беттерді жылжытуға рұқсатыңыз жоқ.',
'newtitle' => 'Жаңа бет атауы:',
'imagetypemismatch' => 'Файлдың жаңа кеңейтімі бұның түріне сәйкес емес',
'imageinvalidfilename' => 'Файл атауы жарамсыз',
'move-leave-redirect' => 'Ескі бетте айдату сілтемесін қалдыру',
+'protectedpagemovewarning' => '<strong>Ескерту:</strong> Бұл бет қорғалғандықтан бұны тек әкімшілер ғана атауын өзгерте алады.
+Төменде ең соңғы журнал жазбасы көрсетілген:',
'semiprotectedpagemovewarning' => "'''Ескерту:''' Бұл бет жылжытудан қорғалған оны тек тіркелген қатысушылар ғана жылжытыта алады.
Төменде ең соңғы журнал енгізілімі көрсетілген:",
'tooltip-pt-watchlist' => 'Өзгерістерін бақылап тұрған беттер тізімім.',
'tooltip-pt-mycontris' => 'Өңдеулеріңіздің тізімі',
'tooltip-pt-login' => 'Кіруіңізді ұсынамыз, ол міндетті емес.',
-'tooltip-pt-anonlogin' => 'Кіруіңізді ұсынамыз, бірақ, ол міндетті емес.',
'tooltip-pt-logout' => 'Шығу',
'tooltip-ca-talk' => 'Мағлұмат бетті талқылау',
'tooltip-ca-edit' => 'Бұл бетті өңдей аласыз. Сақтаудың алдында «Қарап шығу» батырмасын нұқыңыз.',
'tog-numberheadings' => 'ដាក់លេខចំណងជើងរងដោយស្វ័យប្រវត្តិ',
'tog-showtoolbar' => 'បង្ហាញរបារឧបករណ៍កែប្រែ',
'tog-editondblclick' => 'កែប្រែទំព័រដោយចុចពីរដងជាប់គ្នា',
-'tog-editsection' => 'អនុញ្ញាតអោយកែប្រែផ្នែកណាមួយតាមរយៈតំណភ្ជាប់ [កែប្រែ]',
'tog-editsectiononrightclick' => 'អនុញ្ញាតអោយកែប្រែផ្នែកណាមួយ ដោយចុចកណ្តុរស្ដាំលើចំណងជើងរបស់វា',
-'tog-showtoc' => 'បង្ហាញតារាងមាតិកា (សម្រាប់ទំព័រដែលមានចំណងជើងរងលើសពី៣)',
'tog-rememberpassword' => 'ចងចាំការកត់ឈ្មោះចូលរបស់ខ្ញុំលើកុំព្យូទ័រនេះ (សំរាប់រយៈពេលយ៉ាងយូរ$1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}})',
'tog-watchcreations' => 'បន្ថែមទំព័រទាំងឡាយដែលខ្ញុំបង្កើតទៅបញ្ជីតាមដានរបស់ខ្ញុំ',
'tog-watchdefault' => 'បន្ថែមទំព័រទាំងឡាយដែលខ្ញុំកែប្រែទៅបញ្ជីតាមដានរបស់ខ្ញុំ',
អ្នកគួរតែសាកល្បងនៅពេលដែលវិបសាយនេះមិនសូវរវល់។',
-'license' => 'á\9e¢á\9e¶á\9e\87á\9f\92á\9e\89á\9e¶á\9e\94á\9f\90á\9e\8eá\9f\92á\9e\8e',
+'license' => 'អាជ្ញាបណ្ណ',
'license-header' => 'ការដាក់អាជ្ញាប័ណ្ណ',
'nolicense' => 'គ្មាន',
'license-nopreview' => '(មិនទាន់មានការបង្ហាញការមើលជាមុនទេ)',
'watchmethod-list' => 'ឆែកមើលទំព័រត្រូវបានតាមដានចំពោះកំណែប្រែថ្មីៗ',
'watchlistcontains' => 'បញ្ជីតាមដាន របស់អ្នក មាន $1 {{PLURAL:$1|ទំព័រ|ទំព័រ}}។',
'iteminvalidname' => "មានបញ្ហាជាមួយនឹង'$1'។ ឈ្មោះគឺមិនត្រឹមត្រូវ...",
-'wlnote' => "ខាងក្រោមនេះជា {{PLURAL:$1|បំលាស់ប្តូរចុងក្រោយ|'''$1'''បំលាស់ប្តូរចុងក្រោយ}}ក្នុងរយះពេល{{PLURAL:$2|'''$2'''ម៉ោង}}ចុងក្រោយ គិតចាប់ពី $3, $4។",
'wlshowlast' => 'បង្ហាញ $1ម៉ោងចុងក្រោយ $2ថ្ងៃចុងក្រោយ ឬ$3',
'watchlist-options' => 'ជម្រើសនានាក្នុងបញ្ជីតាមដាន',
'tooltip-pt-watchlist' => 'បញ្ជីនៃទំព័រដែលអ្នកកំពុងត្រួតពិនិត្យរកបន្លាស់ប្ដូរ',
'tooltip-pt-mycontris' => 'បញ្ជីនៃការរួមចំណែករបស់អ្នក',
'tooltip-pt-login' => 'អ្នកត្រូវបានលើកទឹកចិត្តឱ្យកត់ឈ្មោះចូល។ ប៉ុន្តែនេះមិនមែនជាការបង្ខំទេ។',
-'tooltip-pt-anonlogin' => 'អ្នកត្រូវបានលើកទឹកចិត្តឱ្យកត់ឈ្មោះចូល មិនមែនជាការបង្ខំទេ។',
'tooltip-pt-logout' => 'កត់ឈ្មោះចេញ',
'tooltip-ca-talk' => 'ការពិភាក្សាអំពីទំព័រខ្លឹមសារនេះ',
'tooltip-ca-edit' => "អ្នកអាចកែប្រែទំព័រនេះ ។ សូមប្រើប្រាស់ប៊ូតុង 'បង្ហាញការមើលមុន' មុននឹងរក្សាទុកវា ។",
'exif-copyrightowner' => 'ម្ចាស់កម្មសិទ្ធិបញ្ញា',
'exif-usageterms' => 'លក្ខខណ្ឌប្រើប្រាស់',
'exif-webstatement' => 'សេចក្ដីប្រកាសកម្មសិទ្ធបញ្ញាលើអ៊ីនធើណិត',
-'exif-licenseurl' => 'URL á\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e¢á\9e¶á\9e\87á\9f\92á\9e\89á\9e¶á\9e\94á\9e\8eá\9f\92á\9e\8cá\9e\80á\9e\98á\9f\92á\9e\98á\9e\9fá\9e·á\9e\91á\9f\92á\9e\92បញ្ញា',
-'exif-morepermissionsurl' => 'ព័ត៌មានអាជ្ញាបណ្ឌជំនួស',
+'exif-licenseurl' => 'URL á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bâ\80\8bá\9e¢á\9e¶á\9e\87á\9f\92á\9e\89á\9e¶á\9e\94á\9e\8eá\9f\92á\9e\8eâ\80\8bá\9e\80á\9e\98á\9f\92á\9e\98á\9e\9fá\9e·á\9e\91á\9f\92á\9e\92á\9e·â\80\8bបញ្ញា',
+'exif-morepermissionsurl' => 'ព័ត៌មានអាជ្ញាបណ្ណជំនួស',
'exif-attributionurl' => 'នៅពេលកែច្នៃស្នាដៃនេះយកទៅប្រើ សូមដាក់តំណភ្ជាប់ទៅ',
'exif-preferredattributionname' => 'នៅពេលកែច្នៃស្នាដៃនេះយកទៅប្រើ សូមថ្លែងអំណរគុណដល់ម្ចាស់ដើម',
'exif-pngfilecomment' => 'វិចារលើឯកសារ PNG',
'version-hook-name' => 'ឈ្មោះ Hook',
'version-hook-subscribedby' => 'បានជាវ ជាប្រចាំ ដោយ',
'version-version' => '(កំណែ $1)',
-'version-license' => 'អាជ្ញាបណ្ណ មេឌាវិគី',
+'version-license' => 'អាជ្ញាបណ្ណមេឌាវិគី',
'version-ext-license' => 'អាជ្ញាបណ្ណ',
'version-ext-colheader-version' => 'កំណែ',
'version-ext-colheader-license' => 'អាជ្ញាបណ្ណ',
'tog-hidepatrolled' => '최근 바뀜에서 검토한 편집을 숨기기',
'tog-newpageshidepatrolled' => '새 문서 목록에서 검토한 문서를 숨기기',
'tog-extendwatchlist' => '주시문서 목록에서 가장 최근의 편집만이 아닌 모든 편집을 보기',
-'tog-usenewrc' => 'ìµ\9cê·¼ ë°\94ë\80\9cê³¼ 주ì\8b\9c문ì\84\9c 목ë¡\9dì\97\90ì\84\9c 문서별 그룹 바뀜',
-'tog-numberheadings' => '머릿글 번호 매기기',
+'tog-usenewrc' => 'ìµ\9cê·¼ ë°\94ë\80\9cê³¼ 주ì\8b\9c문ì\84\9c 목ë¡\9dì\9d\98 문서별 그룹 바뀜',
+'tog-numberheadings' => '자동으로 머릿글 번호 매기기',
'tog-showtoolbar' => '편집에 툴바 보이기',
'tog-editondblclick' => '더블 클릭으로 문서 편집하기',
-'tog-editsection' => '[편집] 링크로 부분 편집하기',
'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 문단 편집하기 활성화',
-'tog-showtoc' => '문서의 목차 보여주기 (머릿글이 4개 이상인 경우)',
-'tog-rememberpassword' => '이 브라우저에서 로그인 상태를 저장하기 (최대 $1{{PLURAL:$1|일}})',
+'tog-rememberpassword' => '이 브라우저에 로그인 상태를 저장하기(최대 $1{{PLURAL:$1|일}})',
'tog-watchcreations' => '내가 만드는 문서와 내가 올린 파일을 주시문서 목록에 추가',
'tog-watchdefault' => '내가 편집하는 문서와 파일을 주시문서 목록에 추가',
'tog-watchmoves' => '내가 이동하는 문서와 파일을 주시문서 목록에 추가',
'tog-watchdeletion' => '내가 삭제하는 문서와 파일을 주시문서 목록에 추가',
-'tog-minordefault' => '사소한 편집을 기본적으로 선택하기',
-'tog-previewontop' => '편집 상자 앞에 미리 보기 보기',
-'tog-previewonfirst' => '처음 편집할 때 미리 보기 보기',
+'tog-minordefault' => '모든 편집에 기본적으로 사소한 편집을 표시',
+'tog-previewontop' => '편집 상자 앞에 미리 보기 보이기',
+'tog-previewonfirst' => '처음 편집할 때 미리 보기 보이기',
'tog-enotifwatchlistpages' => '주시문서 목록에 속한 문서나 파일이 바뀌면 이메일로 알림',
'tog-enotifusertalkpages' => '내 토론 문서가 바뀌면 이메일로 알림',
'tog-enotifminoredits' => '문서나 파일의 사소한 편집도 이메일로 알림',
'tog-enotifrevealaddr' => '알림 메일에 내 이메일 주소를 밝히기',
-'tog-shownumberswatching' => '주시 ì\82¬ì\9a©ì\9e\90 ì\88\98 보기',
+'tog-shownumberswatching' => '주시í\95\98ë\8a\94 ì\82¬ì\9a©ì\9e\90 ì\88\98 ë³´ì\9d´ê¸°',
'tog-oldsig' => '현재 서명:',
'tog-fancysig' => '서명을 위키텍스트로 취급 (자동으로 링크를 걸지 않음)',
'tog-uselivepreview' => '실시간 미리 보기 사용하기 (실험 기능)',
'tog-watchlisthidepatrolled' => '주시문서 목록에서 검토한 편집을 숨기기',
'tog-ccmeonemails' => '이메일을 보낼 때 내 이메일로 복사본을 보내기',
'tog-diffonly' => '편집 차이를 비교할 때 문서 내용을 보지 않기',
-'tog-showhiddencats' => '숨은 분류 보기',
+'tog-showhiddencats' => '숨은 분류 보이기',
'tog-noconvertlink' => '링크 제목 변환을 비활성화',
-'tog-norollbackdiff' => 'ë\90\98ë\8f\8c리기 í\9b\84 ì°¨ì\9d´ë¥¼ ë³´ì\9d´ì§\80 ì\95\8a기',
+'tog-norollbackdiff' => '되돌리기 후 차이를 보지 않기',
'tog-useeditwarning' => '바꾼 내용을 저장하지 않고 편집 페이지를 벗어날 때 알림',
'tog-prefershttps' => '로그인할 때 항상 보안 연결 사용',
'underline-always' => '항상',
-'underline-never' => '치지 않음',
-'underline-default' => '스킨 또는 브라우저 설정을 따르기',
+'underline-never' => '항상 치지 않기',
+'underline-default' => '스킨 또는 브라우저 기본 값을 따르기',
# Font style option in Special:Preferences
-'editfont-style' => '편집창의 글꼴:',
-'editfont-default' => '브라우저 설정을 따르기',
+'editfont-style' => '편집 창의 글꼴:',
+'editfont-default' => '브라우저 기본 값을 따르기',
'editfont-monospace' => '고정폭 글꼴',
-'editfont-sansserif' => '산세리프ì²´',
-'editfont-serif' => '세리프ì²´',
+'editfont-sansserif' => '산세리프 ê¸\80ê¼´',
+'editfont-serif' => '세리프 ê¸\80ê¼´',
# Dates
'sunday' => '일요일',
'listingcontinuesabbrev' => '(계속)',
'index-category' => '색인된 문서',
'noindex-category' => '색인에서 제외되는 문서',
-'broken-file-category' => '잘못된 파일 링크가 포함된 문서',
+'broken-file-category' => '깨진 파일 링크가 포함된 문서',
'about' => '소개',
'article' => '본문',
'morenotlisted' => '이 목록은 완성되지 않았습니다.',
'mypage' => '문서',
'mytalk' => '토론',
-'anontalk' => '익명 사용자 토론',
+'anontalk' => '익명 사용자와 토론',
'navigation' => '둘러보기',
'and' => ',',
'delete' => '삭제',
'deletethispage' => '이 문서 삭제하기',
'undeletethispage' => '이 문서를 되살리기',
-'undelete_short' => '{{PLURAL:$1|편집 $1개}} 되살리기',
-'viewdeleted_short' => '{{PLURAL:$1|삭제된 편집 $1개}} 보기',
+'undelete_short' => '{{PLURAL:$1|편집}} $1개 되살리기',
+'viewdeleted_short' => '{{PLURAL:$1|삭제된 편집}} $1개 보기',
'protect' => '보호',
'protect_change' => '보호 수준 바꾸기',
'protectthispage' => '이 문서 보호하기',
'jumpto' => '이동:',
'jumptonavigation' => '둘러보기',
'jumptosearch' => '검색',
-'view-pool-error' => '서버가 과부하에 걸렸습니다.
+'view-pool-error' => '현재 서버에 과부하가 걸렸습니다.
너무 많은 사용자가 이 문서를 보려고 하고 있습니다.
이 문서를 다시 열기 전에 잠시만 기다려주세요.
$1',
'pool-timeout' => '잠금 대기 중 타임아웃',
-'pool-queuefull' => '풀 큐가 가득 찼습니다',
+'pool-queuefull' => '풀 대기열이 가득 찼습니다',
'pool-errorunknown' => '알 수 없는 오류',
# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
'privacypage' => 'Project:개인 정보 정책',
'badaccess' => '권한 오류',
-'badaccess-group0' => 'ì\9a\94ì²í\95\9c ë\8f\99ì\9e\91을 실행할 권한이 없습니다.',
-'badaccess-groups' => 'ì\9a\94ì²í\95\9c ë\8f\99ì\9e\91은 {{PLURAL:$2|다음|다음 중 하나의}} 권한을 가진 사용자에게만 가능합니다: $1',
+'badaccess-group0' => 'ì\9a\94ì²í\95\9c ëª\85ë ¹을 실행할 권한이 없습니다.',
+'badaccess-groups' => 'ì\9a\94ì²í\95\9c ëª\85ë ¹은 {{PLURAL:$2|다음|다음 중 하나의}} 권한을 가진 사용자에게만 가능합니다: $1',
'versionrequired' => '미디어위키 $1 버전 필요',
'versionrequiredtext' => '이 문서를 사용하려면 $1 버전 미디어위키가 필요합니다.
'ok' => '확인',
'retrievedfrom' => '원본 주소 "$1"',
-'youhavenewmessages' => '다른 사용자가 남긴 $1가 있습니다. ($2)',
-'youhavenewmessagesfromusers' => '{{PLURAL:$3|다른 사용자가|사용자 $3명이}} 남긴 $1가 있습니다. ($2)',
-'youhavenewmessagesmanyusers' => '여러 사용자가 남긴 $1가 있습니다. ($2)',
+'youhavenewmessages' => '다른 사용자가 $1를 {{PLURAL:$3|남겼습니다}}. ($2)',
+'youhavenewmessagesfromusers' => '{{PLURAL:$3|다른 사용자가|사용자 $3명이}} $1를 {{PLURAL:$4|남겼습니다}}. ($2)',
+'youhavenewmessagesmanyusers' => '여러 사용자가 $1를 남겼습니다. ($2)',
'newmessageslinkplural' => '{{PLURAL:$1|새 메시지}}',
'newmessagesdifflinkplural' => '마지막으로 {{PLURAL:$1|바뀐 내용}}',
'youhavenewmessagesmulti' => '다른 사용자가 $1에 남긴 새 메시지가 있습니다',
'collapsible-expand' => '펼치기',
'thisisdeleted' => '$1 문서를 보거나 되살리겠습니까?',
'viewdeleted' => '$1 문서를 보겠습니까?',
-'restorelink' => '{{PLURAL:$1|삭제된 편집 $1개}}',
+'restorelink' => '{{PLURAL:$1|삭제된 편집}} $1개',
'feedlinks' => '피드:',
'feed-invalid' => '잘못된 구독 피드 방식입니다.',
-'feed-unavailable' => 'í\94¼ë\93\9c ì\84\9cë¹\84ì\8a¤ë\8a\94 ì \9cê³µí\95\98ì§\80 ì\95\8a습니다',
+'feed-unavailable' => 'í\94¼ë\93\9c ì\84\9cë¹\84ì\8a¤ë¥¼ ì\82¬ì\9a©í\95 ì\88\98 ì\97\86습니다',
'site-rss-feed' => '$1 RSS 피드',
'site-atom-feed' => '$1 Atom 피드',
'page-rss-feed' => '"$1" RSS 피드',
'nstab-category' => '분류',
# Main script and global functions
-'nosuchaction' => 'í\95´ë\8b¹í\95\98ë\8a\94 ë\8f\99ì\9e\91이 없습니다.',
-'nosuchactiontext' => 'URL로 요청한 동작이 잘못되었습니다.
+'nosuchaction' => 'í\95´ë\8b¹í\95\98ë\8a\94 ëª\85ë ¹이 없습니다.',
+'nosuchactiontext' => 'URL이 지정한 명령이 잘못되었습니다.
URL을 잘못 입력하였거나, 잘못된 링크를 따라갔을 수 있습니다.
{{SITENAME}}의 버그일 수도 있습니다.',
'nosuchspecialpage' => '해당하는 특수 문서가 없습니다.',
'error' => '오류',
'databaseerror' => '데이터베이스 오류',
'databaseerror-text' => '데이터베이스 쿼리에 오류가 발생했습니다.
-ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ì\9d\98 버그가 있을 수 있습니다.',
+ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ì\97\90 버그가 있을 수 있습니다.',
'databaseerror-textcl' => '데이터베이스 쿼리에 오류가 발생했습니다.',
'databaseerror-query' => '쿼리: $1',
'databaseerror-function' => '함수: $1',
'databaseerror-error' => '오류: $1',
-'laggedslavemode' => "'''ê²½ê³ :''' 문ì\84\9cê°\80 ìµ\9cê·¼ì\97\90 ë°\94ë\80\90 ë\82´ì\9a©ì\9d´ ì\95\84ë\8b\90 수도 있습니다.",
+'laggedslavemode' => "'''ê²½ê³ :''' 문ì\84\9cê°\80 ìµ\9cê·¼ì\97\90 ë°\94ë\80\90 ë\82´ì\9a©ì\9d\84 í\8f¬í\95¨í\95\98ì§\80 ì\95\8aì\9d\84 수도 있습니다.",
'readonly' => '데이터베이스 잠김',
'enterlockreason' => '데이터베이스를 잠그는 이유와 예상되는 기간을 적어 주세요.',
'readonlytext' => '데이터베이스가 잠겨 있어서 문서를 편집할 수 없습니다. 데이터베이스 관리가 끝난 후에는 정상으로 돌아올 것입니다.
'readonly_lag' => '슬레이브 데이터베이스가 마스터 서버의 자료를 새로 고치는 중입니다. 데이터베이스가 자동으로 잠겨 있습니다.',
'internalerror' => '내부 오류',
'internalerror_info' => '내부 오류: $1',
-'fileappenderrorread' => 'ë\82´ì\9a©ì\9d\84 ë\8d§ë¶\99ì\9d´ë\8b¤ê°\80 "$1" í\8c\8cì\9d¼ì\9d\84 ì\9d½ì\9d\84 ì\88\98 ì\97\86습니다.',
+'fileappenderrorread' => 'ë\82´ì\9a©ì\9d\84 ë\8d§ë¶\99ì\9d´ë\8a\94 ë\8f\84ì¤\91 "$1" í\8c\8cì\9d¼ì\9d\84 ì\9d½ì\9d\84 ì\88\98 ì\97\86ì\97\88습니다.',
'fileappenderror' => '"$1" 파일을 "$2"에 덧붙일 수 없습니다.',
'filecopyerror' => '"$1" 파일을 "$2"로 복사할 수 없습니다.',
'filerenameerror' => '"$1" 파일을 "$2"로 옮길 수 없습니다.',
'filedeleteerror' => '"$1" 파일을 삭제할 수 없습니다.',
'directorycreateerror' => '"$1" 디렉터리를 만들 수 없습니다.',
'filenotfound' => '"$1" 파일을 찾을 수 없습니다.',
-'fileexistserror' => '"$1" 파일이 이미 있어 여기에 쓸 수 없습니다.',
-'unexpected' => '예상되지 않은 값: "$1"="$2"',
+'fileexistserror' => '"$1" 파일이 이미 있어서 쓸 수 없습니다.',
+'unexpected' => '예기치 못한 값: "$1"="$2"',
'formerror' => '오류: 양식을 제출할 수 없습니다.',
-'badarticleerror' => '지금의 명령은 이 문서에서는 실행할 수 없습니다.',
+'badarticleerror' => '해당 명령은 이 문서에서 실행할 수 없습니다.',
'cannotdelete' => '"$1" 문서나 파일을 삭제할 수 없습니다.
이미 삭제되었을 수도 있습니다.',
'cannotdelete-title' => '"$1" 문서를 삭제할 수 없습니다.',
-'delete-hook-aborted' => 'í\9b\85ì\97\90 ì\9d\98í\95´ ì\82ì \9cê°\80 ì¤\91ë\8b¨ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.
+'delete-hook-aborted' => 'í\9b\85ì\9d´ ì\82ì \9c를 ì¤\91ë\8b¨í\96\88ì\8aµë\8b\88ë\8b¤.
아무런 설명도 주어지지 않았습니다.',
'no-null-revision' => '"$1" 문서에 대한 새 빈 판을 만들 수 없습니다',
'badtitle' => '잘못된 제목',
'badtitletext' => '요청한 문서 제목이 잘못되었거나, 비어있거나, 잘못된 인터위키 제목으로 링크했습니다.
문서 제목에 사용할 수 없는 문자를 사용했을 수 있습니다.',
-'perfcached' => '다음 자료는 캐시된 것이므로 현재 상황을 반영하지 않을 수 있습니다. 캐시에 최대 {{PLURAL:$1|결과 $1개}}가 있습니다.',
+'perfcached' => '다음 자료는 캐시된 것이므로 새로 바뀐 내용을 반영하지 못할 수도 있습니다. 캐시에 최대 {{PLURAL:$1|$1개의 결과}}가 있습니다.',
'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 새로 고쳐졌습니다. 캐시에 최대 {{PLURAL:$4|결과 $4개}}가 있습니다.',
'querypage-no-updates' => '이 문서의 새로 고침이 현재 비활성화되어 있습니다.
-ì\9e\90ë£\8cê°\80 ì\9e ì\8b\9c 새로 고치지 않을 것입니다.',
+ì\9d´ 문ì\84\9cì\9d\98 ì\9e\90ë£\8c를 ì\9e ì\8b\9c ë\8f\99ì\95\88 새로 고치지 않을 것입니다.',
'viewsource' => '원본 보기',
'viewsource-title' => '$1 문서 원본 보기',
'actionthrottled' => '동작 중지',
-'actionthrottledtext' => '스팸을 막기 위해 짧은 시간 안에 이 작업을 너무 많이 하는 것을 막고 있습니다.
+'actionthrottledtext' => '스팸을 막기 위해 짧은 시간 동안 이 작업을 너무 많이 수행하는 것을 막고 있습니다.
제한을 넘었으니 몇 분 뒤에 새로 시도하세요.',
-'protectedpagetext' => '이 문서는 편집하거나 다른 행동을 할 수 없도록 보호되어 있습니다.',
+'protectedpagetext' => '이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다.',
'viewsourcetext' => '문서의 원본을 보거나 복사할 수 있습니다:',
'viewyourtext' => "이 문서에 남긴 '''내 편집''' 내용을 보거나 복사할 수 있습니다:",
'protectedinterface' => '이 문서는 이 위키의 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다.
'invalidtitle-knownnamespace' => '제목 오류: "$2" 이름공간과 "$3" 텍스트',
'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 $1 이름공간 번호와, "$2" 텍스트',
'exception-nologin' => '로그인하지 않음',
-'exception-nologin-text' => '이 행동을 하거나 이 문서에 접근하려면 [[Special:Userlogin|로그인]]하십시오.',
-'exception-nologin-text-manual' => '이 문서에 접근하거나 이 행동을 하려면 $1하십시오.',
+'exception-nologin-text' => '이 문서에 접근하거나 이 명령을 수행하려면 [[Special:Userlogin|로그인]]하세요.',
+'exception-nologin-text-manual' => '이 문서에 접근하거나 이 명령을 수행하려면 $1하세요.',
# Virus scanner
'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: '''$1'''",
'virus-scanfailed' => '검사 실패 (코드 $1)',
-'virus-unknownscanner' => '알려지지 않은 백신:',
+'virus-unknownscanner' => '알 수 없는 백신 소프트웨어:',
# Login and logout pages
'logouttext' => "'''지금 로그아웃했습니다.'''
-브라우저 캐시를 지우지 않으면 일부 문서에서 로그인이 되어 있는 것처럼 보일 수 있다는 점을 참고하세요.",
-'welcomeuser' => '$1, 환영합니다!',
+브라우저 캐시를 지우지 않으면 일부 문서에서 로그인이 되어 있는 것처럼 보일 수 있습니다.",
+'welcomeuser' => '$1 님, 환영합니다!',
'welcomecreation-msg' => '계정이 만들어졌습니다.
[[Special:Preferences|{{SITENAME}} 사용자 환경 설정]]을 바꿀 수 있습니다.',
'yourname' => '사용자 이름:',
'userlogin-yourname' => '사용자 이름',
'userlogin-yourname-ph' => '사용자 이름을 입력하세요',
-'createacct-another-username-ph' => '사용자 이름(계정명)을 입력하세요',
+'createacct-another-username-ph' => '사용자 이름을 입력하세요',
'yourpassword' => '비밀번호:',
'userlogin-yourpassword' => '비밀번호',
'userlogin-yourpassword-ph' => '비밀번호를 입력하세요',
'userlogin-resetpassword-link' => '비밀번호를 잊으셨나요?',
'helplogin-url' => 'Help:로그인',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|로그인에 관한 도움말]]',
-'userlogin-loggedin' => 'ì\9d´ë¯¸ $1ë¡\9c ë¡\9cê·¸ì\9d¸ë\90\98ì\96´ ì\9e\88ì\8aµë\8b\88ë\8b¤. ì\95\84ë\9e\98ì\9d\98 ì\96\91ì\8b\9dì\9c¼ë¡\9c 다른 계정으로 로그인하세요.',
+'userlogin-loggedin' => 'ì\9d´ë¯¸ $1ë¡\9c ë¡\9cê·¸ì\9d¸ë\90\98ì\96´ ì\9e\88ì\8aµë\8b\88ë\8b¤. ì\95\84ë\9e\98ì\9d\98 ì\96\91ì\8b\9dì\9d\84 ì\82¬ì\9a©í\95\98ì\97¬ 다른 계정으로 로그인하세요.',
'userlogin-createanother' => '다른 계정 만들기',
'createacct-join' => '아래에 정보를 입력하세요.',
'createacct-another-join' => '아래에 새 계정의 정보를 입력하세요.',
'createacct-submit' => '계정 만들기',
'createacct-another-submit' => '다른 계정 만들기',
'createacct-benefit-heading' => '{{SITENAME}}(은)는 여러분과 같은 사람으로 이루어집니다.',
-'createacct-benefit-body1' => '{{PLURAL:$1|편집 수}}',
-'createacct-benefit-body2' => '{{PLURAL:$1|문서 수}}',
+'createacct-benefit-body1' => '{{PLURAL:$1|편집}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|문서}}',
'createacct-benefit-body3' => '최근 {{PLURAL:$1|기여자}}',
'badretype' => '입력한 비밀번호가 일치하지 않습니다.',
'userexists' => '입력하신 사용자 이름이 이미 등록되어 있습니다.
# Email sending
'php-mail-error-unknown' => 'PHP의 mail() 함수에서 알 수 없는 오류가 발생했습니다.',
-'user-mail-no-addy' => '받는이의 이메일 주소가 없으면 이메일을 보낼 수 없습니다.',
+'user-mail-no-addy' => '받는 이의 이메일 주소가 없으면 이메일을 보낼 수 없습니다.',
'user-mail-no-body' => '비어 있거나 지나치게 짧은 본문으로 이메일을 보내려고 했습니다.',
# Change password dialog
'retypenew' => '새 비밀번호 재입력:',
'resetpass_submit' => '비밀번호를 설정하고 로그인하기',
'changepassword-success' => '비밀번호가 성공적으로 바뀌었습니다!',
+'changepassword-throttled' => '로그인에 연속으로 실패하였습니다.
+$1 기다렸다가 다시 시도하세요.',
'resetpass_forbidden' => '비밀번호를 바꿀 수 없습니다',
'resetpass-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
'resetpass-submit-loggedin' => '비밀번호 바꾸기',
'passwordreset-capture' => '발송 결과 이메일을 보시겠습니까?',
'passwordreset-capture-help' => '이 상자에 체크하면 이메일이 발송된 즉시 임시 비밀번호가 담긴 이메일을 볼 수 있습니다.',
'passwordreset-email' => '이메일 주소:',
-'passwordreset-emailtitle' => '{{SITENAME}} 계정 자세한 정보',
+'passwordreset-emailtitle' => '{{SITENAME}} 계정에 대한 자세한 정보',
'passwordreset-emailtext-ip' => '$1 IP 주소를 사용하는 누군가가 아마 자신이 {{SITENAME}} ($4)의 비밀번호 재설정을 요청하였습니다.
이 이메일 주소와 연관된 {{PLURAL:$3|계정}}의 목록입니다:
'changeemail-password' => '{{SITENAME}} 비밀번호:',
'changeemail-submit' => '이메일 주소 바꾸기',
'changeemail-cancel' => '취소',
+'changeemail-throttled' => '로그인에 연속으로 너무 많이 실패하였습니다.
+$1 기다렸다가 다시 시도하세요.',
# Special:ResetTokens
'resettokens' => '토큰 재설정',
다시 \"{{int:savearticle}}\" 버튼을 클릭하면 글이 제목 없이 저장됩니다.",
'summary-preview' => '요약 미리 보기:',
'subject-preview' => '주제/제목 미리 보기:',
-'blockedtitle' => '차단됨',
+'blockedtitle' => 'ì\82¬ì\9a©ì\9e\90ê°\80 ì°¨ë\8b¨ë\90¨',
'blockedtext' => "'''사용자 계정 또는 IP 주소가 차단되었습니다.'''
차단한 사람은 $1입니다.
$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
-지금 당신의 IP 주소는 $3이고, 차단 ID는 #$5입니다.
+현재 당신의 IP 주소는 $3이고, 차단 ID는 #$5입니다.
문의할 때에 이 정보를 같이 알려주세요.",
'autoblockedtext' => '당신의 IP 주소는 $1 사용자가 차단한 사용자가 사용했던 IP이기 때문에 자동으로 차단되었습니다.
차단된 이유는 다음과 같습니다:
'loginreqlink' => '로그인',
'loginreqpagetext' => '다른 문서를 보기 위해서는 $1해야 합니다.',
'accmailtitle' => '비밀번호를 보냈습니다',
-'accmailtext' => '[[User talk:$1|$1]] 사용자의 비밀번호가 임의로 만들어져 $2(으)로 보냈습니다. 로그인하고 나서 [[Special:ChangePassword|비밀번호를 바꿀]] 수 있습니다.',
+'accmailtext' => '[[User talk:$1|$1]] 사용자의 비밀번호를 임의로 만들어 $2(으)로 보냈습니다. 로그인하고 나서 [[Special:ChangePassword|비밀번호를 바꿀]] 수 있습니다.',
'newarticle' => '(새 문서)',
'newarticletext' => "아직 없는 문서의 링크를 따라왔습니다.
새 문서를 만들려면 아래 상자에 내용을 입력하면 됩니다. (자세한 내용은 [[{{MediaWiki:Helppage}}|도움말 문서]]를 참고하세요)
'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 만드는 것은 제한되어 있습니다.
이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들]] 수 있습니다.',
'nocreate-loggedin' => '새 문서를 만들 권한이 없습니다.',
-'sectioneditnotsupported-title' => '부분 편집 지원 안됨',
+'sectioneditnotsupported-title' => '부분 편집 지원 안 됨',
'sectioneditnotsupported-text' => '이 문서에서는 문단 편집을 지원하지 않습니다.',
'permissionserrors' => '권한 오류',
'permissionserrorstext' => '해당 명령을 수행할 권한이 없습니다. 다음 {{PLURAL:$1|이유}}를 확인해보세요:',
이 인수는 생략했습니다.",
'post-expand-template-argument-category' => '생략된 틀 변수를 포함한 문서',
'parser-template-loop-warning' => '재귀적인 틀이 발견되었습니다: [[$1]]',
-'parser-template-recursion-depth-warning' => '틀 반복 횟수 제한을 초과함($1)',
+'parser-template-recursion-depth-warning' => '틀 반복 깊이 제한을 초과함 ($1)',
'language-converter-depth-warning' => '언어 변환기 실행 제한 초과($1)',
'node-count-exceeded-category' => '문서가 노드 횟수를 초과하였습니다.',
'node-count-exceeded-warning' => '문서가 노드 수를 초과하였습니다.',
'revdelete-legend' => '보이기 제한을 설정',
'revdelete-hide-text' => '판 내용',
'revdelete-hide-image' => '파일을 숨기기',
-'revdelete-hide-name' => '기록 내용과 대상을 숨기기',
+'revdelete-hide-name' => '명령 내용과 대상을 숨기기',
'revdelete-hide-comment' => '편집 요약',
'revdelete-hide-user' => '편집자의 사용자 이름/IP 주소',
'revdelete-hide-restricted' => '관리자도 보지 못하게 숨기기',
'revdelete-radio-same' => '(바꾸지 않음)',
'revdelete-radio-set' => '숨겨짐',
-'revdelete-radio-unset' => 'ë³´ì\97¬ì§\90',
+'revdelete-radio-unset' => 'ë³´ì\9e\84',
'revdelete-suppress' => '문서 내용을 관리자에게도 보이지 않게 숨기기',
'revdelete-unsuppress' => '되살린 판에 대한 제한을 해제',
'revdelete-log' => '이유:',
'powersearch-togglelabel' => '확인:',
'powersearch-toggleall' => '모두',
'powersearch-togglenone' => '모두 제외',
-'search-external' => '바깥 검색',
+'search-external' => '바깥에서 검색',
'searchdisabled' => '{{SITENAME}} 검색이 비활성화되어 있습니다.
검색이 작동하지 않는 동안에는 Google(구글)을 통해 검색할 수 있습니다.
검색 엔진의 내용은 최신이 아닐 수 있다는 점을 참고하세요.',
'prefsnologintext2' => '사용자 환경 설정을 설정하려면 $1하십시오.',
'prefs-skin' => '스킨',
'skin-preview' => '미리 보기',
-'datedefault' => '기본값',
+'datedefault' => '기본 값',
'prefs-beta' => '베타 기능',
'prefs-datetime' => '날짜와 시각',
'prefs-labs' => '실험 중인 기능',
'savedprefs' => '설정을 저장했습니다.',
'timezonelegend' => '시간대:',
'localtime' => '현지 시각:',
-'timezoneuseserverdefault' => '위키 기본값($1)을 사용',
+'timezoneuseserverdefault' => '위키 기본 값($1)을 사용',
'timezoneuseoffset' => '기타 (시차를 입력해주세요)',
'servertime' => '서버 시각:',
'guesstimezone' => '웹 브라우저 설정에서 가져오기',
'prefs-searchoptions' => '검색',
'prefs-namespaces' => '이름공간',
'defaultns' => '다음 이름공간에서 검색:',
-'default' => '기본값',
+'default' => '기본 값',
'prefs-files' => '파일',
'prefs-custom-css' => '사용자 CSS',
'prefs-custom-js' => '사용자 자바스크립트',
'prefs-common-css-js' => '모든 스킨에 대한 공통 CSS/자바스크립트:',
-'prefs-reset-intro' => '이 사이트의 기본값으로 환경 설정을 재설정할 수 있습니다.
+'prefs-reset-intro' => '이 사이트의 기본 값으로 환경 설정을 재설정할 수 있습니다.
재설정한 환경 설정은 되돌릴 수 없습니다.',
'prefs-emailconfirm-label' => '이메일 인증:',
'youremail' => '이메일:',
HTML 태그를 확인하세요.',
'badsiglength' => '서명이 너무 깁니다.
서명은 $1 {{PLURAL:$1|글자}}보다 짧아야 합니다.',
-'yourgender' => 'ì\96´ë\96»ê²\8c ì\84±ë³\84ì\9d\84 ì\95\8cë ¤ì£¼ê³ ì\8b¶ì\8aµ니까?',
+'yourgender' => 'ì\96´ë\96¤ ì\84±ë³\84ë¡\9c í\91\9cì\8b\9cë\90\98ë\8a\94 ê²\83ì\9d\84 ì\84 í\98¸í\95©니까?',
'gender-unknown' => '밝히고 싶지 않습니다.',
'gender-male' => '위키 문서를 편집하는 남자입니다',
'gender-female' => '위키 문서를 편집하는 여자입니다',
'prefs-displaywatchlist' => '보이기 설정',
'prefs-tokenwatchlist' => '토큰',
'prefs-diffs' => '차이',
-'prefs-help-prefershttps' => '이 사용자 환경 설정은 다음 로그인에 적용됩니다.',
+'prefs-help-prefershttps' => '이 사용자 환경 설정은 다음 로그인부터 적용됩니다.',
'prefs-tabs-navigation-hint' => '팁: 탭 목록에서 탭 사이를 둘러보려면 왼쪽과 오른쪽 화살표 키를 사용할 수 있습니다.',
# User preference: email validation using jQuery
'userrights-changeable-col' => '바꿀 수 있는 권한',
'userrights-unchangeable-col' => '바꿀 수 없는 권한',
'userrights-conflict' => '사용자 권한 바꾸기가 충돌합니다! 바뀜을 검토하고 확인하세요.',
-'userrights-removed-self' => 'ì\9e\90ì\8b ì\9d\98 ê¶\8cí\95\9cì\9d\84 ì\84±ê³µì \81ì\9c¼ë¡\9c ì \9cê±°했습니다. 따라서 더 이상 이 문서에 접근할 수 없습니다.',
+'userrights-removed-self' => 'ì\9e\90ì\8b ì\9d\98 ê¶\8cí\95\9cì\9d\84 ì \9cê±°í\95\98ë\8a\94 ë\8d° ì\84±ê³µ했습니다. 따라서 더 이상 이 문서에 접근할 수 없습니다.',
# Groups
'group' => '그룹:',
'right-createpage' => '문서 만들기 (토론 문서 제외)',
'right-createtalk' => '토론 문서 만들기',
'right-createaccount' => '새 계정 만들기',
-'right-minoredit' => '사소한 편집 사용 가능',
+'right-minoredit' => '사소한 편집으로 표시',
'right-move' => '문서 이동',
'right-move-subpages' => '문서와 하위 문서 이동하기',
'right-move-rootuserpages' => '최상위 사용자 문서 이동',
'right-movefile' => '파일 옮기기',
-'right-suppressredirect' => '문ì\84\9c ì\9d´ë\8f\99í\95 ë\95\8c ì\9d´ì \84 ì\9d´ë¦\84ì\9c¼ë¡\9c ë\90\9c ë\84\98겨주기를 ë\82¨ê¸°지 않기',
+'right-suppressredirect' => '문ì\84\9c ì\9d´ë\8f\99í\95 ë\95\8c ì\9d´ì \84 ì\9d´ë¦\84ì\9c¼ë¡\9c ë\90\9c ë\84\98겨주기를 ë§\8cë\93¤지 않기',
'right-upload' => '파일 올리기',
'right-reupload' => '이미 존재하는 파일을 다시 올리기',
'right-reupload-own' => '자신이 이미 올린 파일 덮어쓰기',
'right-writeapi' => 'API 작성',
'right-delete' => '문서 삭제',
'right-bigdelete' => '문서 역사가 긴 문서를 삭제',
-'right-deletelogentry' => '특정 기록 항목을 삭제하고 되살리기',
-'right-deleterevision' => '문서의 특정 판을 삭제하고 되살리기',
+'right-deletelogentry' => '특정 기록 항목을 삭제 및 되살리기',
+'right-deleterevision' => '문서의 특정 판을 삭제 및 되살리기',
'right-deletedhistory' => '삭제된 문서의 내용을 제외한 역사를 보기',
'right-deletedtext' => '삭제된 문서의 내용과 편집상의 차이를 보기',
'right-browsearchive' => '삭제된 문서 검색',
'right-undelete' => '삭제된 문서 되살리기',
-'right-suppressrevision' => '관리자도 보지 못하도록 숨겨진 판을 검토하고 되살리기',
+'right-suppressrevision' => '관리자가 보지 못하도록 숨겨진 판을 검토하고 되살리기',
'right-suppressionlog' => '숨겨진 기록을 보기',
-'right-block' => '다른 사용자를 편집을 못하도록 차단',
+'right-block' => '다른 사용자가 편집을 못하도록 차단',
'right-blockemail' => '다른 사용자가 이메일을 보내지 못하도록 차단',
'right-hideuser' => '사용자 이름을 차단하고 숨김',
'right-ipblock-exempt' => 'IP 차단, 자동 차단, 광역 차단을 무시',
'action-undelete' => '이 문서 되살리기',
'action-suppressrevision' => '이 숨겨진 판을 검토하고 되살릴',
'action-suppressionlog' => '비공개 기록 보기',
-'action-block' => '이 사용자를 편집하지 못하도록 차단',
+'action-block' => '이 사용자가 편집하지 못하도록 차단',
'action-protect' => '이 문서의 보호 설정을 바꾸기',
'action-rollback' => '특정 문서를 마지막으로 편집한 사용자의 모든 편집을 간편하게 되돌리기',
'action-import' => '다른 위키에서 문서 가져오기',
-'action-importupload' => 'í\8c\8cì\9d¼ ì\98¬ë¦¬ê¸°ë¥¼ í\86µí\95´ 문ì\84\9c를 ê°\80ì ¸ì\98¬',
+'action-importupload' => 'í\8c\8cì\9d¼ ì\98¬ë¦¬ê¸°ë¥¼ í\86µí\95´ 문ì\84\9c를 ê°\80ì ¸ì\98¤ê¸°',
'action-patrol' => '다른 사용자의 편집을 검토된 것으로 표시하기',
'action-autopatrol' => '자신의 편집을 검토된 것으로 표시할',
'action-unwatchedpages' => '주시되지 않은 문서 목록 보기',
문서에 파일을 넣으려면 아래 방법 중 하나를 사용하세요.
* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' 파일의 온전한 모양을 사용하고자 할 때
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200í\94½ì\85\80|ì\84¬ë\84¤ì\9d¼|ì\99¼ìª½|ì\84¤ëª\85]]</nowiki></code>''' í\8c\8cì\9d¼ì\9d\98 ë\84\93ì\9d´를 200픽셀로 하고 왼쪽 정렬하며 '설명' 이라는 주석을 파일 밑에 달 때
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200í\94½ì\85\80|ì\84¬ë\84¤ì\9d¼|ì\99¼ìª½|ì\84¤ëª\85]]</nowiki></code>''' í\8c\8cì\9d¼ì\9d\98 ë\84\88ë¹\84를 200픽셀로 하고 왼쪽 정렬하며 '설명' 이라는 주석을 파일 밑에 달 때
* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' 파일을 직접 보여주지 않고 파일로 바로 링크할 때",
'upload-permitted' => '허용하는 파일 확장자: $1',
'upload-preferred' => '권장하는 파일 확장자: $1',
'filename' => '파일 이름',
'filedesc' => '파일의 설명',
'fileuploadsummary' => '요약:',
-'filereuploadsummary' => '파일 바뀜에 대한 요약:',
+'filereuploadsummary' => '파일의 바뀜:',
'filestatus' => '저작권 상태:',
'filesource' => '출처:',
'uploadedfiles' => '파일 올리기',
'ignorewarning' => '경고를 무시하고 파일 저장',
'ignorewarnings' => '모든 경고 무시하기',
'minlength1' => '파일 이름은 적어도 1글자 이상이어야 합니다.',
-'illegalfilename' => 'í\8c\8cì\9d¼ ì\9d´ë¦\84 "$1"ì\97\90ë\8a\94 문ì\84\9c ì \9c목ì\9c¼ë¡\9c 허용되지 않는 글자가 포함되어 있습니다.
+'illegalfilename' => 'í\8c\8cì\9d¼ ì\9d´ë¦\84 "$1"ì\97\90ë\8a\94 문ì\84\9c ì \9c목ì\97\90 허용되지 않는 글자가 포함되어 있습니다.
이름을 바꾸어 다시 시도해 주세요.',
'filename-toolong' => '파일 이름은 240바이트를 넘을 수 없습니다.',
'badfilename' => '파일 이름이 "$1"로 바뀌었습니다.',
-'filetype-mime-mismatch' => '".$1" 파일 확장자와 이 파일의 MIME($2)가 일치하지 않습니다.',
-'filetype-badmime' => '"$1" MIME을 가진 파일은 올릴 수 없습니다.',
-'filetype-bad-ie-mime' => 'ì\9d¸í\84°ë\84· ì\9dµì\8a¤í\94\8cë¡\9cë\9f¬ê°\80 ì\9e ì\9e¬ì \81ì\9c¼ë¡\9c ì\9c\84í\97\98í\95\9c í\8c\8cì\9d¼ í\98\95ì\8b\9dì\9c¼ë¡\9c í\8c\90ë\8b¨ë\90\98ì\96´ ì\82¬ì\9a©ì\9d´ ê¸\88ì§\80ë\90\9c "$1"ë¡\9c ì\9d¸ì\8b\9dí\95 ì\88\98 ì\9e\88기 ë\95\8c문ì\97\90 ì\9d´ í\8c\8cì\9d¼ì\9d\84 ì\98¬ë¦´ ì\88\98 ì\97\86습니다.',
-'filetype-unwanted-type' => "'''\".\$1\"''' 확장자는 추천하지 않습니다.
-추천하는 {{PLURAL:\$3|파일 확장자}}는 \$2입니다.",
+'filetype-mime-mismatch' => '".$1" 파일 확장자와 이 파일의 MIME 형식($2)이 일치하지 않습니다.',
+'filetype-badmime' => '"$1" MIME 형식을 가진 파일은 올릴 수 없습니다.',
+'filetype-bad-ie-mime' => 'ì\9d´ í\8c\8cì\9d¼ì\9d\84 ì\98¬ë¦´ ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ì\9d¸í\84°ë\84· ì\9dµì\8a¤í\94\8cë¡\9cë\9f¬ê°\80 ì\9e ì\9e¬ì \81ì\9c¼ë¡\9c ì\9c\84í\97\98í\95\9c í\8c\8cì\9d¼ í\98\95ì\8b\9dì\9c¼ë¡\9c í\8c\90ë\8b¨í\95\98ì\97¬ ì\82¬ì\9a©ì\9d´ ê¸\88ì§\80ë\90\9c "$1"ë¡\9c ì\9d¸ì\8b\9dí\95 ì\88\98 ì\9e\88습니다.',
+'filetype-unwanted-type' => "'''\".\$1\"''' 확장자는 권장하지 않습니다.
+권장하는 {{PLURAL:\$3|파일 확장자}}는 \$2입니다.",
'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|형식의 파일은 올릴 수 없습니다}}.
$2 {{PLURAL:$3|형식만 사용할 수 있습니다}}.',
'filetype-missing' => '파일에 확장자(".jpg" 등)가 없습니다.',
'unknown-error' => '알 수 없는 오류가 발생했습니다.',
'tmp-create-error' => '임시 파일을 만들 수 없습니다.',
'tmp-write-error' => '임시 파일을 작성하는 데 오류가 발생했습니다.',
-'large-file' => '파일 크기는 $1을 넘지 않는 것을 추천합니다.
+'large-file' => '파일 크기는 $1을 넘지 않는 것을 권장합니다.
이 파일의 크기는 $2입니다.',
'largefileserver' => '이 파일의 크기가 서버에서 허용된 설정보다 큽니다.',
'emptyfile' => '올리려는 파일이 빈 파일입니다.
'overwroteimage' => '사용자가 "[[$1]]" 파일의 새 판을 올렸습니다.',
'uploaddisabled' => '올리기 비활성화됨',
'copyuploaddisabled' => 'URL로 파일 올리기가 비활성화되어 있습니다.',
-'uploadfromurl-queued' => '올리기 명령이 기록되었습니다.',
+'uploadfromurl-queued' => '올리기 명령이 대기열에 추가됐습니다.',
'uploaddisabledtext' => '파일 올리기 기능이 비활성화되어 있습니다.',
'php-uploaddisabledtext' => 'PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.',
'uploadscripted' => '이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.',
'uploadvirus' => '파일이 바이러스를 포함하고 있습니다!
자세한 설명: $1',
'uploadjava' => '이 ZIP 파일은 자바의 .class 파일을 포함하고 있습니다.
-보안을 위한 제한을 우회할 수 있기 때문에 자바 파일을 올리는 것이 허용되지 않습니다.',
+보안 규제를 우회할 수 있기 때문에 자바 파일을 올리는 것이 허용되지 않습니다.',
'upload-source' => '원본 파일',
'sourcefilename' => '원본 파일 이름:',
'sourceurl' => '출처 URL:',
'upload-misc-error-text' => '파일을 올리는 중 알 수 없는 오류가 발생했습니다.
URL이 올바르고 접근 가능한지를 확인하고 다시 시도하세요.
문제가 계속되면 [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
-'upload-too-many-redirects' => 'URL이 너무 많은 넘겨주기에 연결되어 있습니다.',
+'upload-too-many-redirects' => 'URL이 너무 많은 넘겨주기를 포함하고 있습니다.',
'upload-unknown-size' => '크기를 알 수 없음',
'upload-http-error' => 'HTTP 오류 발생: $1',
'upload-copy-upload-invalid-domain' => '이 도메인에 속하지 않는 웹사이트의 파일을 올릴 수 없습니다.',
'filerevert-defaultcomment' => '$1 $2 버전으로 되돌림',
'filerevert-submit' => '되돌리기',
'filerevert-success' => "'''[[Media:$1|$1]]''' 파일을 [$4 $2 $3 버전]으로 되돌렸습니다.",
-'filerevert-badversion' => '주ì\96´ì§\84 í\83\80ì\9e\84ì\8a¤í\83¬í\94\84를 가진 파일의 로컬 버전이 없습니다.',
+'filerevert-badversion' => 'ì\9e\85ë ¥ë\90\9c ì\8b\9cê°\84 기ë¡\9dì\9d\84 가진 파일의 로컬 버전이 없습니다.',
# File deletion
'filedelete' => '$1 삭제하기',
'mimesearch' => 'MIME 검색',
'mimesearch-summary' => 'MIME 유형에 해당하는 파일을 검색합니다.
다음 형태로 입력해주세요: 내용종류/하위종류, 예를 들어 <code>image/jpeg</code>',
-'mimetype' => 'MIME 종류:',
+'mimetype' => 'MIME 형식:',
'download' => '다운로드',
# Unwatched pages
'protectedtitlesempty' => '해당 조건에 맞는 만들기 금지 표제어가 없습니다.',
'listusers' => '사용자 목록',
'listusers-editsonly' => '기여가 있는 사용자만 보기',
-'listusers-creationsort' => '계정을 만든 날짜 순으로 정렬',
+'listusers-creationsort' => '계정을 만든 날짜순으로 정렬',
'listusers-desc' => '내림차순으로 정렬',
'usereditcount' => '{{PLURAL:$1|편집}} $1회',
'usercreated' => '$1 $2에 계정 {{GENDER:$3|만들어짐}}',
'listusers-blocked' => '(차단됨)',
# Special:ActiveUsers
-'activeusers' => '활동적인 사용자 목록',
+'activeusers' => '활동하는 사용자 목록',
'activeusers-intro' => '다음은 최근 $1{{PLURAL:$1|일}} 동안 활동한 사용자의 목록입니다.',
'activeusers-count' => '마지막 {{PLURAL:$3|$3일}} 사이의 {{PLURAL:$1|활동}} $1회',
'activeusers-from' => '다음으로 시작하는 사용자를 보기:',
'noemailtext' => '이 사용자는 올바른 이메일 주소를 입력하지 않았습니다.',
'nowikiemailtitle' => '이메일이 허용되지 않음',
'nowikiemailtext' => '이 사용자는 다른 사용자로부터의 이메일을 받지 않도록 설정하였습니다.',
-'emailnotarget' => '받는이로 없는 사용자를 지정하였거나 사용자 이름이 잘못되었습니다.',
+'emailnotarget' => '없는 사용자를 받는 이로 지정하였거나 사용자 이름이 잘못되었습니다.',
'emailtarget' => '수신자 사용자 이름 입력',
'emailusername' => '사용자 이름:',
'emailusernamesubmit' => '확인',
'watchmethod-list' => '최근 편집을 확인하고자 주시된 문서 확인',
'watchlistcontains' => '{{PLURAL:$1|문서 $1개}}를 주시하고 있습니다.',
'iteminvalidname' => "'$1' 항목에 문제가 발생했습니다. 이름이 잘못되었습니다...",
-'wlnote' => "다음은 최근 {{PLURAL:$2|'''$2'''시간}} 동안 {{PLURAL:$1|바뀐 문서 '''$1'''개 입니다}}. ($3 $4 기준)",
+'wlnote2' => '아래는 $2, $3 기준으로 지난 {{PLURAL:$1|hour|<strong>$1</strong> 시간}} 동안의 바뀜입니다.',
'wlshowlast' => '최근 $1시간 $2일 또는 $3 동안에 바뀐 문서 보기',
'watchlist-options' => '주시문서 목록 설정',
'delete-warning-toobig' => '이 문서에는 {{PLURAL:$1|편집 역사}}가 $1개 있습니다.
편집 역사가 긴 문서를 삭제하면 {{SITENAME}} 데이터베이스 동작에 큰 영향을 줄 수 있습니다.
주의해 주세요.',
-'deleting-backlinks-warning' => "'''경고:''' 삭제하려는 문서로 연결되거나 삽입된 다른 문서가 있습니다.",
+'deleting-backlinks-warning' => "'''경고:''' 삭제하려는 문서가 다른 문서에 연결되거나 삽입되어 있습니다.",
# Rollback
'rollback' => '편집 되돌리기',
'protect-expiring' => '$1 (UTC)에 만료',
'protect-expiring-local' => '$1에 해제',
'protect-expiry-indefinite' => '무기한',
-'protect-cascade' => '연쇄적 보호 - 이 문서에서 사용되는 다른 문서를 함께 보호합니다.',
+'protect-cascade' => '연쇄적 보호 - 이 문서가 포함하고 있는 다른 문서를 함께 보호합니다.',
'protect-cantedit' => '이 문서의 보호 설정을 바꿀 권한이 없습니다.',
'protect-othertime' => '다른 기간:',
'protect-othertime-op' => '다른 기간',
# Undelete
'undelete' => '삭제된 문서 보기',
'undeletepage' => '삭제된 문서를 보거나 되살리기',
-'undeletepagetitle' => "'''아래는 [[:$1|$1]]의 삭제된 판입니다'''.",
+'undeletepagetitle' => "'''아래는 [[:$1|$1]] 판의 삭제된 판입니다'''.",
'viewdeletedpage' => '삭제된 문서 보기',
'undeletepagetext' => '다음 {{PLURAL:$1|문서는 삭제되었지만|문서 $1개는 삭제되었지만}} 아직 보관되어 있고 되살릴 수 있습니다.
보관된 문서는 주기적으로 삭제될 것입니다.',
'range_block_disabled' => 'IP 범위 차단 기능이 비활성화되어 있습니다.',
'ipb_expiry_invalid' => '차단 기간이 잘못되었습니다.',
'ipb_expiry_temp' => '사용자 이름을 숨기는 차단은 반드시 무기한이어야 합니다.',
-'ipb_hide_invalid' => '해당 계정은 막을 수 없습니다. 기여량이 너무 많습니다.',
+'ipb_hide_invalid' => '해당 계정은 막을 수 없습니다. {{PLURAL:$1|1회|$1회}} 이상 편집했습니다.',
'ipb_already_blocked' => '"$1" 사용자는 이미 차단되었습니다',
'ipb-needreblock' => '$1 사용자는 이미 차단되었습니다. 차단 설정을 바꾸시겠습니까?',
'ipb-otherblocks-header' => '다른 {{PLURAL:$1|차단}} 기록',
'allmessages-prefix' => '접두어로 거르기:',
'allmessages-language' => '언어:',
'allmessages-filter-submit' => '보기',
+'allmessages-filter-translate' => '번역',
# Thumbnails
'thumbnail-more' => '실제 크기로',
'tooltip-pt-watchlist' => '주시문서에 대한 바뀜 목록',
'tooltip-pt-mycontris' => '내 기여의 목록',
'tooltip-pt-login' => '꼭 로그인해야 하는 것은 아니지만, 로그인을 권장합니다.',
-'tooltip-pt-anonlogin' => '꼭 필요한 것은 아니지만, 로그인을 하면 편리한 점이 많습니다.',
'tooltip-pt-logout' => '로그아웃',
'tooltip-ca-talk' => '문서의 내용에 대한 토론 문서',
'tooltip-ca-edit' => '문서를 편집할 수 있습니다. 저장하기 전에 미리 보기를 해주세요.',
# Special:NewFiles
'newimages' => '새 파일 목록',
-'imagelisttext' => "{{PLURAL:$1|파일}} '''$1'''개를 $2 순으로 정렬한 목록입니다.",
+'imagelisttext' => "{{PLURAL:$1|파일}} '''$1'''개를 $2순으로 정렬한 목록입니다.",
'newimages-summary' => '이 특수 문서는 최근에 올라온 파일을 나열하고 있습니다.',
'newimages-legend' => '필터',
'newimages-label' => '파일 이름 (또는 그 일부분):',
# Live preview
'livepreview-loading' => '불러오는 중...',
-'livepreview-ready' => '불러 오는 중... 준비!',
+'livepreview-ready' => '불러오는 중... 준비!',
'livepreview-failed' => '실시간 미리 보기 실패!
일반 미리 보기를 이용하세요.',
'livepreview-error' => '연결에 실패하였습니다: $1 "$2"
'version-ext-colheader-license' => '라이선스',
'version-ext-colheader-description' => '설명',
'version-ext-colheader-credits' => '저자',
-'version-license-title' => '$1 사용을 위한 라이센스',
+'version-license-title' => '$1용 라이센스',
'version-license-not-found' => '이 확장기능에 대한 라이선스 세부 정보가 없습니다.',
'version-credits-title' => '$1의 작성자',
'version-credits-not-found' => '이 확장기능에 대한 크레딧 세부 정보가 없습니다.',
#모든 정규 표현식은 이 줄 위에 넣어 주십시오. 그리고 이 줄은 그대로 두십시오.</pre>',
# Special:Tags
-'tags' => 'ì\9c í\9a¨í\95\9c 편집 태그',
+'tags' => 'ì\98¬ë°\94른 편집 태그',
'tag-filter' => '[[Special:Tags|태그]] 필터:',
'tag-filter-submit' => '필터',
'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|태그}}]]: $2)',
'expand_templates_preview' => '미리 보기',
# Unknown messages
-'uploadinvalidxml' => 'ì\9d´ ì\97\85ë¡\9cë\93\9c ë\90\9c í\8c\8cì\9d¼ì\9d\98 XML 구문ì\9d\80 분석할 수 없습니다.',
+'uploadinvalidxml' => 'ì\97\85ë¡\9cë\93\9cë\90\9c í\8c\8cì\9d¼ì\9d\98 XMLì\9d\98 구문ì\9d\84 분석할 수 없습니다.',
);
'tog-numberheadings' => 'Башлыкъланы (бёлюмлени атлары) автомат номерленсинле',
'tog-showtoolbar' => 'Тюрлендириу адыр панелни кёргюз',
'tog-editondblclick' => 'Эки басыу бла бетлени тюрлендир',
-'tog-editsection' => 'Хар бёлюмге «тюрлендир» джибериуню кёргюз',
'tog-editsectiononrightclick' => 'Бёлюмлени бёлюм башлыкъгъа басханлай тюрлендир',
-'tog-showtoc' => 'Башларын кёргюз (3-ден кёб бёлюм башлыгъы болгъан бетлеге)',
'tog-rememberpassword' => 'Бу браузерде мени тергеў джазыўуму сакъла (эм кёб: $1 {{PLURAL:$1|бир кюн|кюн}})',
'tog-watchcreations' => 'Мен къурагъан (башлагъан) бетлени эм мен джюклеген файлланы кёзюмде тургъан тизмеме къош',
'tog-watchdefault' => 'Мен тюрлендирген бетлени эм файлланы кёзюмде тургъан тизмеме къош',
'tog-numberheadings' => 'Dun de Üvverschrefte automatisch nummereere',
'tog-showtoolbar' => 'De Wärkzüchleß zom Ändere aanzeije',
'tog-editondblclick' => 'Sigge met Dubbel-Klicke ändere',
-'tog-editsection' => 'Maach [{{int:Editsection}}]-Links aan de Avschnedde dran',
'tog-editsectiononrightclick' => 'Afschnedde met Räächs-Klecke op de Üvverschrefte ändere',
-'tog-showtoc' => 'Zeich en Enhaldsüvversich bei Sigge met mieh wie drei Üvverschrefte dren',
'tog-rememberpassword' => 'Op Duur enlogge op dämm Kompjuter un för dää Brauser (hält {{PLURAL:$1|för eine Daach|bes op $1 Dääsch|bloß för hück}})',
'tog-watchcreations' => 'Donn Sigge beim neu Aanlääje automattesch för ming Oppaßlėß vörschlonn',
'tog-watchdefault' => 'Donn Sigge beim Ändere automattesch för ming Oppaßlėß vörschlonn',
'tog-numberheadings' => 'Numerotar otomatika mente los títolos de los kapítolos',
'tog-showtoolbar' => 'Amostrar el chibuk de aparatos',
'tog-editondblclick' => 'Trocar las hojas con doble klik',
-'tog-editsection' => 'Ofrir la possibilidad de trocar los kapítůlos con el atamiento [trocar]',
'tog-editsectiononrightclick' => 'Pueder trocar los kapítůlos, en pizando el botón derecho del ratón encima el títůlo',
-'tog-showtoc' => 'Àmostrar el cuadro de contènidos (para las hojas que tienen más de 3 títůlos de capítůlo)',
'tog-rememberpassword' => 'Acordarse de mi entrada en este navigador (a lo más muńcho $1 {{PLURAL:$1|día|días}})',
'tog-watchcreations' => 'Anyadir lad pajinas ke kree i archivos ke karge a mi lista',
'tog-watchdefault' => 'Anyadir pajinas i archivos ke edite a mi lista',
'fri' => 'Vie',
'sat' => 'Shab',
'january' => 'Jenero',
-'february' => 'Hevrero',
+'february' => 'Febrero',
'march' => 'Março',
-'april' => 'Avril',
+'april' => 'Abril',
'may_long' => 'Mayo',
'june' => 'Juño',
-'july' => 'Jullo',
+'july' => 'Julio',
'august' => 'Agosto',
'september' => 'Setiembre',
-'october' => 'Ochòvre',
+'october' => 'Ochobre',
'november' => 'Noviembre',
-'december' => 'Deziembre',
+'december' => 'Diziembre',
'january-gen' => 'Jenero',
'february-gen' => 'Hevrero',
'march-gen' => 'Março',
'otherlanguages' => 'En otras linguas',
'redirectedfrom' => '(Redirigido desde $1)',
'redirectpagesub' => 'Hoja redirigida',
-'lastmodifiedat' => 'Esta hoja fue trocada por la dal cavo vez el $1, a las $2.',
+'lastmodifiedat' => 'Esta hoja fue trocada por la vez dalcavo en el $1, a las $2.',
'viewcount' => 'Este pajina fue vijitado {{PLURAL:$1|una vez|$1 vezes}}.',
'protectedpage' => 'Hoja guardada',
'jumpto' => 'Saltar a:',
'readonlytext' => 'La base de datos esta blokeada a muevas entradas i otras modifikasyones,probablemente para mantenemento rutinas, Kuando akava se enkontra dispozible.
El administrador ke blokeo dio esta esplikasyon: $1',
-'missing-article' => 'La basa de dados no topó el teksto de la hoja llamada "$1" $2.
+'missing-article' => 'La basa de dados no topó el teksto de una hoja llamada "$1" $2.
-En lo mas muncho, esto se cavsa de un "dif" anakróniko u de un atamiento de la istoria de una hoja que se efaçó.
+En lo mas muncho esto passa por cavsa de un atamiento (link) istoriko a una hoja efaçada.
-Si esto no es el cavso, puede ser que topates una chincha en el lojikal.
-Alora, avisa un [[Special:ListUsers/sysop|administrador]] si puede ser, también escriviéndolo la URL.',
+Si esto no es el cavso, puede ser que topates una chincha (un yerro) en el lojikal (la proǵrama).
+Alora, házemos el plazer de avisar un [[Special:ListUsers/sysop|administrador]] y también escrivirlo la URL (el adresso). Mercí muncho.',
'missingarticle-rev' => '(nº. de revisión: $1)',
'missingarticle-diff' => '(Dif.: $1, $2)',
'readonly_lag' => 'La base de datos se a blokeado mientres los servidores se sinkronizan',
'searchprofile-articles-tooltip' => 'Buxcar en $1',
'searchprofile-project-tooltip' => 'Buxcar en $1',
'searchprofile-images-tooltip' => 'Buxcar dosyas',
-'searchprofile-everything-tooltip' => 'Bushkar en todo el kontenido (i mismo en las hojas de diskusyón)',
+'searchprofile-everything-tooltip' => 'Buxca en todo el contènido (y mismo en las hojas de diskusyón)',
'searchprofile-advanced-tooltip' => 'Buxcar en espacios de nombres particòlares',
'search-result-size' => '$1 ({{PLURAL:$2|1 biervo|$2 biervos}})',
'search-result-category-size' => '{{PLURAL:$1|1 miembro|$1 miembros}} ({{PLURAL:$2|1 basho-kateggoria|$2 basho-kateggoria}}, {{PLURAL:$3|1 dossia|$3 dossias}})',
# Recent changes linked
'recentchangeslinked' => 'Trocamientos conectados',
'recentchangeslinked-feed' => 'Trocamientos conectados',
-'recentchangeslinked-toolbox' => 'Trocamientos relatados',
+'recentchangeslinked-toolbox' => 'Trocamientos atados',
'recentchangeslinked-title' => 'Los trocamientos relacionados con "$1"',
'recentchangeslinked-summary' => "Esto es la lista de los trocamientos dalcavo de las hojas que relatan a una hoja particòlar (o de los miembros de la kategoría particòlar).
Las hojas en tu [[Special:Watchlist|lista de akavidamiento]] son '''reforçadas'''.",
** Redireksyon rota',
# Rollback
-'rollbacklink' => 'aboltar',
+'rollbacklink' => 'hazer aboltar',
# Protect
'protectlogpage' => 'Protecciones de las hojas',
'allmessages-filter-submit' => 'Ir',
# Thumbnails
-'thumbnail-more' => 'Engrandece',
+'thumbnail-more' => 'Engrandecer',
'thumbnail_error' => 'Yerro kriando la minyatura: $1',
# Special:Import
'tooltip-pt-login' => 'Te encorajamos de entrar ma no estás obligado',
'tooltip-pt-logout' => 'Sal de tu cuento',
'tooltip-ca-talk' => 'Diskusyón encima del artíkolo',
-'tooltip-ca-edit' => 'Puedes trocar esta hoja. Ma te rogamos para que eches una ojada (previsteo) antes de enrezhistrarla.',
+'tooltip-ca-edit' => 'Puedes trocar esta hoja. Ma te rogamos para que eches una ojada (previsteo) antes de enrejistrarla.',
'tooltip-ca-addsection' => 'Empeça a un muevo kapítolo',
'tooltip-ca-viewsource' => 'Esta hoja está guadrada.
Puedes ver su manadero',
'tooltip-n-randompage' => 'Carga una hoja por azardo',
'tooltip-n-help' => 'Ambézate y topa ayudo',
'tooltip-t-whatlinkshere' => 'Una lista de todas las hojas del viki que tienen atamientos a esta hoja',
-'tooltip-t-recentchangeslinked' => 'Los trocamientos dalcavo de las hojas atadas a ésta',
+'tooltip-t-recentchangeslinked' => 'Los trocamientos dalcavo de las hojas atadas a la ésta',
'tooltip-feed-rss' => 'Sindicación RSS de esta hoja',
'tooltip-feed-atom' => "Fuente de Atom d'esta hoja",
'tooltip-t-contributions' => 'Ver la lista de ajustamientos de este usuario',
'tooltip-diff' => 'Mostra los trocamientos que él/ella hizo en el texhto.',
'tooltip-compareselectedversions' => 'Ve las diferencias entre las dos versiones escogidas de esta hoja.',
'tooltip-watch' => 'Ajusta esta hoja a tu lista de escojidas',
-'tooltip-rollback' => '«Abolta» abolta todos los trocamientos del kullaneador dalcavo, sólo en klikando una vez.',
-'tooltip-undo' => '«Des-hazer» abolta este trocamiento y la avre en el modo de previsteo. Permete ajustar una razón en el somario.',
+'tooltip-rollback' => '«Hazer aboltar» haze aboltar todos los trocamientos del usador dalcavo, sólo en klikando una vez.',
+'tooltip-undo' => '«Des-hazer» abolta este trocamiento y lo avre en el modo de previsteo. Permete ajustar una razón en el somario.',
'tooltip-summary' => 'Entrar un somaryo kurto',
# Attribution
'tog-numberheadings' => 'Iwwerschrëften automatesch numeréieren',
'tog-showtoolbar' => 'Ännerungstoolbar weisen',
'tog-editondblclick' => 'Säite mat Duebelklick änneren',
-'tog-editsection' => "Linke fir d'Ännere vun eenzelnen Abschnitter weisen",
'tog-editsectiononrightclick' => 'Eenzel Abschnitter mat Rietsklick änneren',
-'tog-showtoc' => 'Inhaltsverzeechnes weise bei Säite mat méi wéi dräi Iwwerschrëften',
'tog-rememberpassword' => 'Meng Umeldung mat dësem Browser (fir maximal $1 {{PLURAL:$1|Dag|Deeg}}) verhalen',
'tog-watchcreations' => 'Säiten déi ech uleeën a Fichieren déi ech eroplueden op meng Iwwerwaachungslëscht derbäisetzen',
'tog-watchdefault' => 'Säiten a Fichieren déi ech änneren op meng Iwwerwaachungslëscht derbäisetzen',
'retypenew' => 'Neit Passwuert nach eemol antippen:',
'resetpass_submit' => 'Passwuert aginn an aloggen',
'changepassword-success' => 'Äert Passwuert gouf geännert!',
+'changepassword-throttled' => 'Dir hutt rezent zevill dacks versicht Iech anzeloggen.
+Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
'resetpass_forbidden' => 'Passwierder kënnen net geännert ginn.',
'resetpass-no-info' => 'Dir musst ageloggt sinn, fir direkt op dës Säit ze kommen.',
'resetpass-submit-loggedin' => 'Passwuert änneren',
'changeemail-password' => 'Äert {{SITENAME}}-Passwuert:',
'changeemail-submit' => 'Mailadress änneren',
'changeemail-cancel' => 'Ofbriechen',
+'changeemail-throttled' => 'Dir hutt zevill dacks versicht Iech anzeloggen.
+Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
# Special:ResetTokens
'resettokens' => 'Token zrécksetzen',
'content-not-allowed-here' => '"$1"-Inhalt ass op der Säit [[$2]] net erlaabt',
'editwarning-warning' => 'Wann Dir dës Säit verloosst kann dat dozou féieren datt Dir all Ännerungen, déi Dir gemaach hutt, verléiert.
Wann Dir ageloggt sidd, kënnt Dir dës Warnung an der Sektioun "Änneren" vun Ären Astellungen ausschalten.',
+'editpage-notsupportedcontentformat-title' => 'Format vum Inhalt gëtt net ënnerstëtzt',
'editpage-notsupportedcontentformat-text' => 'De Format vum Inhalt $1 gëtt net vum Modell vum Inhalt $2 ënnerstëtzt.',
# Content models
'watchmethod-list' => 'Iwwerwaachte Säite ginn op rezent Ännerungen iwwerpréift',
'watchlistcontains' => 'Op ärer Iwwerwaachungslëscht $1 {{PLURAL:$1|steet $1 Säit|stinn $1 Säiten}}.',
'iteminvalidname' => "Problem mam Element '$1', ongëltegen Numm ...",
-'wlnote' => "Hei {{PLURAL:$1|ass déi lescht Ännerung|sinn déi lescht '''$1''' Ännerunge}} vun {{PLURAL:$2|der leschter Stonn|de leschte(n) '''$2''' Stonnen}}, Stand: $3 ëm $4 Auer.",
'wlshowlast' => "D'Ännerunge vun de leschte(n) $1 Stonnen, $2 Deeg oder $3 (an de leschten 30 Deeg) weisen.",
'watchlist-options' => 'Optioune vun der Iwwerwaachungslëscht',
'delete-warning-toobig' => "Dës Säit huet eng laang Versiounsgeschicht, méi wéi $1 {{PLURAL:$1|Versioun|Versiounen}}.
D'Läschen dovu kann zu Stéierungen am Fonctionnement vun {{SITENAME}} féieren;
dës Aktioun soll mat Virsiicht gemaach ginn.",
-'deleting-backlinks-warning' => "'''Opgepasst:''' Aner Säite linken op d'Säit déi Dir am Gaang sidd ze läschen.",
+'deleting-backlinks-warning' => "'''Opgepasst:''' Aner Säite linken op déi Säit déi Dir am Gaang sidd ze läschen oder déi säit Déi Dir am Gaang sidd ze läschen ass an aner Säiten agebonn.",
# Rollback
'rollback' => 'Ännerungen zrécksetzen',
'range_block_disabled' => 'Dem Administrateur seng Fähegkeet fir ganz Adressberäicher ze spären ass ausser Kraaft.',
'ipb_expiry_invalid' => "D'Dauer déi Dir uginn hutt ass ongülteg.",
'ipb_expiry_temp' => 'Verstoppt Späre vu Benotzernimm solle permanent sinn.',
-'ipb_hide_invalid' => 'Dëse Benotzerkont kann net geläscht ginn; et ka sinn datt zevill Ännerunge vun deem Benotzer gemaach goufen.',
+'ipb_hide_invalid' => 'Dëse Benotzerkont kann net geläscht ginn; de Benotzer huet méi wéi {{PLURAL:$1|eng Ännerung|$1 Ännerunge}} gemaach.',
'ipb_already_blocked' => '"$1" ass scho gespaart.',
'ipb-needreblock' => "$1 ass scho gespaart. Wëllt Dir d'Parametere vun der Spär änneren?",
'ipb-otherblocks-header' => 'Aner {{PLURAL:$1|Spär|Spären}}',
'allmessages-prefix' => 'Nom Prefix filteren:',
'allmessages-language' => 'Sprooch:',
'allmessages-filter-submit' => 'Lass',
+'allmessages-filter-translate' => 'Iwwersetzen',
# Thumbnails
'thumbnail-more' => 'vergréisseren',
'tooltip-pt-watchlist' => 'Lëscht vu Säiten, bei deenen Dir op Ännerungen oppasst',
'tooltip-pt-mycontris' => 'Lëscht vun Äre Kontributiounen',
'tooltip-pt-login' => 'Sech umelle gëtt gäre gesinn, Dir musst et awer net maachen.',
-'tooltip-pt-anonlogin' => 'Et wier gutt, Dir géift Iech aloggen, och wann et keng Musse-Saach ass.',
'tooltip-pt-logout' => 'Ofmellen',
'tooltip-ca-talk' => 'Diskussioun iwwer de Säiteninhalt',
'tooltip-ca-edit' => 'Dës Säit ka geännert ginn. Maacht vun der Méiglechkeet Gebrauch fir ze "kucken ouni ofzespäicheren" a kuckt ob alles an der Rei ass ier der ofspäichert.',
'tog-numberheadings' => 'Köpkes automatisch nummere',
'tog-showtoolbar' => 'Laot edit toolbar zeen',
'tog-editondblclick' => "Bewirk pagina's bie 'ne dobbelklik (JavaScript)",
-'tog-editsection' => 'Bewirke van secties via [bewirke] links',
'tog-editsectiononrightclick' => "Secties bewirke mit 'ne rechtermoesklik op sectietitels (JavaScript nudig)",
-'tog-showtoc' => "Inhaudsopgaaf veur pagina's mit mie es 3 köpkes",
'tog-rememberpassword' => 'Mien wachwaord onthouwe veur later sessies (hoegstens $1 {{PLURAL:$1|daag|daag}})',
'tog-watchcreations' => "Volg autematis pagina's die ich aanmaak en bestenj die ich upload",
'tog-watchdefault' => "Voog pagina's em bestenj die se bewirks toe aan dien volglies",
'tog-numberheadings' => 'سربلگه خود شماره گر',
'tog-showtoolbar' => 'نوار اوزار ويرايشت نشون بيه',
'tog-editondblclick' => 'بلگيا نه وا دوبار پورنين ويرايشت بكيد',
-'tog-editsection' => 'ممكن بيئن ويرايشت بشخيا وا [ويرايشت]',
'tog-editsectiononrightclick' => 'بهر ویرایشت نه وا راس کلیک کردن د بهر عنوانیا فعال کو',
-'tog-showtoc' => 'چیا مئن جدول نشو بیه',
'tog-rememberpassword' => 'اومائن وا مئن منه د ای مرورگر د ویر داشتو(سی بیشترین$1{{PLURAL:$1|day|days}})',
'tog-watchcreations' => 'بلگیایی که مه راس کمه و فایلیایی که مه سوار کمه اضاف کو د سیل برگه مه',
'tog-watchdefault' => 'بلگیا و فایلایی که مه ویرایشت کمه اضاف کو د سیل برگم',
'category-article-count' => '{{جمی:$2|ای دسه شومل بلگه نهاییه .| {{جمی:$1| بلگه هئ|$1 بلگیا هئن}} د ای دسه, خارج د $2 کل.}}',
'category-article-count-limited' => 'نها {{جمی:$1|بلگه هئ|$1بلگیا هئن}} د دسه ایسنی .',
'category-file-count' => '{{جمی:$2|ای دسه فقط شامل فایل نهایی هئ file.| نهایی {{جمی:$1|فایل هئ|$1 فایلیا هئن}} د ای دسه, وه در د کل $2 .}}',
-'category-file-count-limited' => ' {{جمی:$1|فایل هئ|1$فایلیا هئن}}نهایی هان د دسه ایسنی.',
+'category-file-count-limited' => ' {{جمی:$1|[جانیا هئ|1$جانیایا هئن}}نهایی هان د دسه ایسنی.',
'listingcontinuesabbrev' => 'دماله',
'index-category' => 'بلگيا سيائه دار',
'noindex-category' => 'بلگيا بی سيائه',
'delete' => 'حذف كردن',
'deletethispage' => 'ای بلگه نه حذف بكيد',
'undeletethispage' => 'ای بلگه نه حذف نكيد',
-'undelete_short' => 'پاک نکو {{جمی:$1|یه گل ویرایشت|$1 ویرایشتیا}}',
+'undelete_short' => 'زنه کردن {{جمی:$1|یه گل ویرایشت|$1 ویرایشتیا}}',
'viewdeleted_short' => 'بوینیت {{[جمی:$1|یه گل ویرایشت پاک بیه|$1ویرایشتیا پاک بیه}}',
'protect' => 'حمايت بكيد',
'protect_change' => 'آلشت بكيد',
پاک بیئن و جمشت سی ای بلگه سی راحتی تو فراهم بیه:",
'moveddeleted-notice' => 'ای بلگه پاک بیه.
پاک بین و جمشت ای بلگه سی سرچشمه دئین فراهم بیه',
+'log-fulllog' => 'دیئن همه پهرستنومه یا',
'edit-conflict' => 'مخالفت نه ویرایشت بکید',
'postedit-confirmation' => 'ویرایشتتو ذخیره بی',
'edit-already-exists' => 'نبوئه یه گل بلگه تازه راس بکید.
# Revision deletion
'rev-deleted-comment' => '(ویرایشت چکسته جا وه جا بیه)',
'rev-deleted-user' => '(نوم کاروری جا وه جا بیه)',
+'rev-deleted-event' => '(انجوم گر پهرستنومه جا وه جا بیه)',
'rev-deleted-user-contribs' => '[نوم کاروری یا نشونی آی پی جا وه جا بیه - چیا قام بیه د ور هوم یاریانه ویرایشت بکید]',
'rev-delundel' => 'آلشت وضئيت ديئن',
'rev-showdeleted' => 'نشو دائن',
+'revisiondelete' => 'پاک کردن/زنه کردن وانئریا',
'revdelete-no-file' => 'فایل مشقص بیه وجود ناره.',
'revdelete-show-file-submit' => 'هری',
'revdelete-selected' => "'''{{جمی:$2|وانیری انتخاو بیه|وانیریا انتخاو بیه}} د[[:$1]]:'''",
'mergehistory-reason' => 'دليل:',
# Merge log
+'mergelog' => 'سریک سازی پهرستنومه',
'pagemerge-logentry' => ' [[$1]] وا [[$2]] سریک سازی بی (وانیریا که د $3 فره تر هئن)',
'revertmerge' => 'بی لوئه',
'searchprofile-everything-tooltip' => 'همه محتوا نه پی جوری كو (شاملا بلگيا چك چنه)',
'searchprofile-advanced-tooltip' => 'نوم جايا نوم ديار بگرد',
'search-result-size' => '$1 ({{جمی:$2|بی واچه يل|واچه تكی|واچه يل|$2 واچه يل|$2 واچه}})',
-'search-result-category-size' => '{{جمی:$1|1 اندوم|$1 اندومیا}} ({{جمی:$2|1 زیردسه|$2 زیردسه یا}}, {{جمی:$3|1 فایل|$3 فایلیا}}',
+'search-result-category-size' => '{{جمی:$1|1 اندوم|$1 اندومیا}} ({{جمی:$2|1 زیردسه|$2 زیردسه یا}}, {{جمی:$3|1 جانیا|$3 جانیایا}}',
'search-redirect' => '(ورگشتن $1)',
'search-section' => '(بشق $1)',
+'search-file-match' => '(یکی کردن مینونه جانیا)',
'search-suggest' => 'منظورت يه بی:$1',
'search-interwiki-caption' => 'پروجه یا خوئر',
'search-interwiki-default' => '$1 نتیجه یا:',
'stub-threshold-disabled' => 'د كار ونن',
'recentchangesdays' => 'روزیا آلشتیا تازه باو نه نشو بیه:',
'recentchangesdays-max' => 'فره ترین $1 {{جمی:$1|روز|روزیا}}',
+'prefs-help-recentchangescount' => 'یه شامل آلشتیا تازه،ویرگاریا بلگه و پهرستنومه یا هئ.',
'savedprefs' => 'ویجه گیا هنی تو ذخیره بیه.',
'timezonelegend' => 'وخت راساگه',
'localtime' => 'وخت ولاتی:',
'saveusergroups' => 'ذخیره کرد گرویا کاروری',
'userrights-groupsmember' => 'اندوم:',
'userrights-reason' => 'دليل:',
+'userrights-no-interwiki' => 'شما سی ویرایشت حقوق کارور د ویکی یا هنی دسرسی ناریت.',
'userrights-nodatabase' => 'پاگا دونسمنی $1 یا نیئش یا د ولاتنشین نئ.',
+'userrights-notallowed' => 'شما سی اضاف کردن حقوق کارور یا ورداشتنش دسرسی ناریت.',
'userrights-changeable-col' => 'گرویایی که شما تونیت ویرایشت بکید',
'userrights-unchangeable-col' => 'گرویایی که شما نتونیت ویرایشت بکید',
'group-sysop-member' => '{{جنس:$1|مدیر}}',
'group-bureaucrat-member' => '{{جنس:$1|بروکرات}}',
+'grouppage-user' => '{{ns:project}}:کاروریا',
+'grouppage-bot' => '{{ns:project}}:بوت یا',
+'grouppage-bureaucrat' => '{{ns:project}}:دیوونداریا',
+
# Rights
'right-read' => 'حنن بلگیا',
'right-edit' => 'ویرایشت بلگیا',
'right-delete' => 'بلگیا نه پاک کو',
'right-browsearchive' => 'بلگه یا پاک بیه نه پی جوری کو',
'right-undelete' => 'ای بلگه نه حذف نكيد',
+'right-suppressionlog' => 'دیئن پهرستنومه یا خصوصی',
'right-unblockself' => 'خوشه قلف نکید',
'right-editinterface' => 'راوط کارور نه ویرایشت کو',
'right-editusercssjs' => 'فایلیا جاوا اسکریپت و سی اس اس کاروریا هنی نه ویرایشت کو',
'right-viewmywatchlist' => 'سیل برگ خوتونه بوینیت',
'right-viewmyprivateinfo' => 'دونسمنیا شصقی خوتونه بوینیت(چی نشونی ایمیل،نوم راستکی)',
'right-editmyprivateinfo' => 'دونسمنیا شصقی خوتونه ویرایشت بکید(چی نشونی ایمیل،نوم راستکی)',
+'right-importupload' => 'دئن بلگه یا د یه گل جانیا سوار بیه',
'right-siteadmin' => 'پاگا دونسمنی نه قلف بکید یا نکید',
'right-sendemail' => 'سی کاروریا هنی ایمیل کل بکید',
'right-passwordreset' => 'پاسورد ایمیلیا د نو دئه بیه نه بوینیت',
# Special:Log/newusers
'newuserlogpage' => 'راس بیه وا کارور',
+'newuserlogpagetext' => 'یه پهرستنومه راس بیئن کارور هئ.',
+
+# User rights log
+'rightslogtext' => 'یه پهرستنومه آلشتیا حقوق کارور هئ.',
# Associated actions - in the sentence "You do not have permission to X"
'action-read' => 'ای بلگه نه بحون',
'action-deletedhistory' => 'ویرگار پاک بیه ای بلگه نه بوینیت',
'action-browsearchive' => 'بلگه یا پاک بیه نه پی جوری بکید',
'action-undelete' => 'ای بلگه نه پاک نکو',
+'action-suppressionlog' => 'ای پهرستنومه خصوصی نه بوینیت',
'action-block' => 'ای کارور نه د ویرایشت کردن منع کو',
+'action-protect' => 'ریترازیا حفاظت د ای بلگه نه آلشت بکید',
'action-import' => 'بلگه یا نه د ویکی هنی وارد بکید',
'action-importupload' => 'بلگه یا نه د فایل سوار بیه وارد بکید',
'action-siteadmin' => 'پاگا دونسمنی نه قلف بکید یا نکید',
# Upload
'upload' => 'بلم گير كردن فايلا',
'uploadbtn' => 'سوار کردن فایل',
+'reuploaddesc' => 'سوار کردن نه رد بکید و د ورئردیت جابلگ سوارکرد',
'uploadnologin' => 'وارد نبیه',
-'uploadnologintext' => 'لطفن $1 سی سوارکرد فایلیا.',
+'uploadnologintext' => 'لطفن $1 سی سوارکرد جانیایا.',
'uploaderror' => 'خطا د سوار کردن',
+'uploadlog' => 'پهرستنومه سوارکرد',
'uploadlogpage' => 'سوارکرد',
'filename' => 'نوم فایل',
'filedesc' => 'چكسته',
'fileuploadsummary' => 'چکسه',
'filereuploadsummary' => 'آلشتیا فایل:',
'filesource' => 'سرچشمه:',
-'uploadedfiles' => 'فایلیا سواربیه',
+'uploadedfiles' => 'جانیایا سواربیه',
+'badfilename' => 'نوم جانیا د "$1" آلشت بیه.',
'empty-file' => 'فایلی که دئی ته حالی بیه.',
'file-too-large' => 'فایلی که دئی ته فره گپ بی.',
'filename-tooshort' => 'نوم فایل فره کؤچکه.',
'illegal-filename' => 'نوم فایل اجاره ندئه بیه.',
-'unknown-error' => 'Û\8cÙ\87 Ú¯Ù\84 خطا Ù\86اشÙ\86اس ری ون کرده.',
-'savefile' => 'فایل نه ذخیره کو',
+'unknown-error' => 'Û\8cÙ\87 Ú¯Ù\84 خطا Ù\86ادÛ\8cار ری ون کرده.',
+'savefile' => 'جانیا نه ذخیره کو',
'uploadedimage' => 'سوارکرد"[[$1]]"',
+'overwroteimage' => 'یه گل نسقه تازه د "[[$1]]" سوار بیه',
'uploaddisabled' => 'سوار کردن د کار نئ.',
'copyuploaddisabled' => 'سوار کردن وا یو آر ال د کار نئ.',
'uploadfromurl-queued' => 'سوارکرد تو ها د گئ.',
'uploaddisabledtext' => 'سوار کرد فایلیا د کار نئ.',
'upload-source' => 'سرچشمه فایل',
-'sourcefilename' => 'سرچشمه نوم فایل:',
+'sourcefilename' => 'سرچشمه نوم جانیا:',
'sourceurl' => 'سرچشمه يو آر ال:',
'destfilename' => 'نوم فایل مقصد:',
-'watchthisupload' => 'ای فایل بوینیت',
+'watchthisupload' => 'ای جانیا نه بوینیت',
'upload-success-subj' => 'سوار کرد خوش سرانجوم',
+'upload-success-msg' => 'سوارکرد شما سی [$2] خوو بی.وه د ایچه هئش:[[:{{ns:file}}:$1]]',
'upload-failure-subj' => 'مشگل د سوارکردن',
+'upload-failure-msg' => 'یه گل مشلگل د سوارکردتو سی [$2] بی:$1',
'upload-proto-error' => 'پروتکل نادروس',
-'upload-file-error' => 'خطا داخلی',
+'upload-file-error' => 'خطا مینونه',
'upload-misc-error' => 'خطا سوار کرد ناشناخته',
'upload-unknown-size' => 'انازه نادیار',
+'upload-copy-upload-invalid-domain' => 'ورداشتن سوارکردیا د ای پوشگئر د دسرس نئ.',
# File backend
'backend-fail-notexists' => 'فایل $1 وجود ناره.',
+'backend-fail-delete' => 'نبوئه جانیا $1 پاک بوئه',
+'backend-fail-describe' => 'نبوئه گپ دونسمنیا سی جانیا"$1" آلشت بوئه.',
+'backend-fail-store' => 'نبوئه جانیا "$1" د "$2" امبار بوئه.',
+'backend-fail-move' => 'نبوئه جانیا "$1" د "$2" جا وه جا بوئه',
+'backend-fail-opentemp' => 'نبوئه جانیا موقتی وا بوئه.',
+'backend-fail-writetemp' => 'نبوئه د جانیا موقتی چی بنیسیت.',
+'backend-fail-read' => 'نبوئه جانیا"$1" حنه بوئه.',
+
+# Lock manager
+'lockmanager-fail-closelock' => 'نبوئه قلف جانیا سی "$1" بسه بوئه.',
+'lockmanager-fail-openlock' => 'نبوئه قلف جانیا سی "$1" وا بوئه.',
+
+# Special:UploadStash
+'uploadstash-refresh' => 'نومه گه جانیایا نه د نو تازه کو',
# img_auth script messages
'img-auth-accessdenied' => 'دسرسی منع بی',
'http-invalid-url' => 'یو آر ال نامعتور:$1',
'http-read-error' => 'خطا د حنن اچ تی تی پی.',
+# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error28' => 'تموم بیئن مئلت سی سوار کرد',
+
'license' => 'ليانس دار بيئن',
'license-header' => 'د شكل ليسانس دار بيئن',
'nolicense' => 'هیچی انتخاو نبیه',
'upload_source_file' => '(یه گل فایل د انجومیار تو)',
# Special:ListFiles
+'listfiles-summary' => 'ای بلگه یا ویجه همه جانیایا سوار بیه نه نشو می ئین.',
'listfiles_search_for' => 'پی جوری سی نوم رسانه:',
'imgfile' => 'فايل',
'listfiles' => 'نوم گه فایل',
'filehist-dimensions' => 'بعديا',
'filehist-filesize' => 'انازه فایل',
'filehist-comment' => 'نظر',
+'filehist-missing' => 'گم بیئن جانیا',
'imagelinks' => 'استفاده د فايل',
'linkstoimage' => 'دمال بيه {{PLURAL:$1|ديس ونيا بلگه|$1 ديس ون بلگيا}} دای فایل:',
'nolinkstoimage' => 'ایچه هیژ بلگه ای سی هوم پیوند بیئن وا ای فایل نی',
'morelinkstoimage' => ' [[ویجه:چه هوم پیوندی ها ایچه/$1|هوم پیوندیا هنی]]سی ای فایل بونیت.',
+'sharedupload' => 'ای جانیا که د $1 هئ شایت د پروجه یا هنی استفاده بیه.',
'sharedupload-desc-here' => 'فایلی که د $1 شایت د مئن پروجیا هنی استفاده بیه.
توضی دباره[$2 file description page] د هار نشو دئئه بیه',
'filepage-nofile' => 'چنو فایلی وا ای نوم نئ.',
+'uploadnewversion-linktext' => 'یه گل نسقه تازه د ای جانیا سوار بکید',
'shared-repo-from' => 'د $1',
# File reversion
'statistics-header-hooks' => 'آماریا هنی',
'statistics-articles' => 'بلگه یا مینونه',
'statistics-pages' => 'بلگیا',
+'statistics-files' => 'جانیا یا سوار بیه',
'statistics-views-total' => 'همه نه بوینیت',
'statistics-views-peredit' => 'هر ویرایشت نه بوینیت',
'statistics-users-active' => 'کاروریا کارکو',
'usercreated' => '{{جنسیت:$3|راس بیه}}د $1 at $2',
'newpages' => 'بلگيا نو',
'move' => 'جاوه جا بوئيت',
+'movethispage' => 'ای بگله نه جا وه جا كو',
'pager-newer-n' => '{{جمی:$1|وانها تر 1وانها تر $1}}',
'pager-older-n' => '{{جمی:$1|گپسالتر 1|گپسالتر $1}}',
# Special:Log
'log' => 'نیسنن رخ ونیا',
+'all-logs-page' => 'همه پهرستنومه یا عمومی',
# Special:AllPages
'allpages' => 'همه بلگيا',
$2',
'allarticles' => 'همه بلگيا',
'allpagessubmit' => 'رو',
+'allpagesbadtitle' => 'عنوان بلگه حاسته بیه معتور نی،یا یه گل مئن زونی یا مئن ویکی عنوان غلطه.
+یه شایت شومل یکی با یا بیشتر کاراکتریا نبوئه که سی ای موضوعیا استفاده بوئن',
# Special:Categories
'categories' => 'دسه يا',
# Special:LinkSearch
+'linksearch-ns' => 'نوم جا:',
'linksearch-line' => '$1 داره د $2 هوم پیوند بوئه',
# Special:ListGroupRights
'watchlist' => 'سیل برگ',
'mywatchlist' => 'سیل برگ',
'watchlistfor2' => 'سي $1 $2',
+'watchnologin' => 'وارد نبیه',
+'watchnologintext' => 'شما سی آلشت دئن سیل برگتو با [[ویجه:وامین اومائن کارور|وامین اومائه]]',
'watch' => 'سيل كردن',
'unwatch' => 'ديه نبيه',
'watchlist-details' => '{{جمی:$1|$1 بلگه|$1 بلگیا}} د سیل برگتو هیش بلگه قسه کردن نی .',
'actioncomplete' => 'عملكرد كامل بيه',
'actionfailed' => 'عملكرد شكست حرده',
'dellogpage' => 'لاگ پاك كردن',
+'deletionlog' => 'پهرستنومه پاک بیئن',
# Rollback
'rollbacklink' => 'ورگشتن',
+# Edit tokens
+'sessionfailure-title' => 'شکست حردن نشینگه',
+
# Protect
'protectlogpage' => 'حفاظت کردن',
'protectedarticle' => 'حفاظت بيه [[$1]]',
+'modifiedarticleprotection' => 'ریتراز حفاظت د "[[$1]]" آلشت بیه',
+'protect-title' => 'ریتراز حفاظت د "$1" آلشت بیه',
+'prot_1movedto2' => '[[$1]] د [[$2]] جا وه جا بی',
+'restriction-type' => 'دسرسی:',
+
+# Restrictions (nouns)
+'restriction-move' => 'جاوه جا بوئيت',
+'restriction-upload' => 'سوار کرد',
+
+# Restriction levels
+'restriction-level-all' => 'هر ریترازی',
# Undelete
'undeletelink' => 'بوين/دوواره آماده با',
'undeleteviewlink' => 'ديئن',
+'cannotundelete' => 'زنه کردن انجوم نبی:$1',
+'undelete-error-short' => 'خطا پاک نبیئن جانیا:$1',
# Namespace form on various pages
'namespace' => 'نوم جا:',
# Block/unblock
'ipboptions' => '2 ساعتیا:2 ساعت,1 رو:1 رو,3 روزا:3 رو,1 هفته:1 هفته,2 هفته یا:2 هفته,1 ما:1 ما,3 ما:3 میا,6 ما:6 مایا,1 سال:1سال,حد ناره:حد ناره',
'ipblocklist' => 'كاروريا منع بيه',
+'blocklist-nousertalk' => 'نبوئه بلگه چک چنه خوتونه ویرایشت بکید',
'blocklink' => 'بسته بوئه',
'unblocklink' => 'بی قطی',
'change-blocklink' => 'اجازه نديئن سی آلشت',
'blocklogpage' => 'قلف',
'blocklogentry' => ' [[$1]] وا یه گل وخت تموم بیئن $2 و $3 قلف بیه',
'block-log-flags-nocreate' => 'حساو راس کردن عاجز بیه.',
+'block-log-flags-nousertalk' => 'نبوئه بلگه چک چنه خوتونه ویرایشت بکید',
# Move page
+'move-page' => '$1 جا وه جا کو',
+'movenotallowed' => 'شما وه جا وه جا کردن بلگه دسرسی ناریت',
+'movenotallowedfile' => 'شما وه جا وه جا کردن جانیایا دسرسی ناریت',
+'movepagebtn' => 'بلگه جا وه جا کو',
'movelogpage' => 'جاوه جا کردن',
'revertmove' => 'لرستن',
+'delete_and_move' => 'پاک و جا وه جا بوئه',
# Export
'export' => 'وه صحرا ديئن بلگيا',
+'export-download' => 'ذخیره کردن جانیا',
# Namespace 8 related
'allmessagesname' => 'نوم',
'allmessagesdefault' => 'سفارشت متنی پيش فرض',
+'allmessages-language' => 'زون:',
+'allmessages-filter-submit' => 'رو',
# Thumbnails
'thumbnail-more' => 'گپ كردن',
+'filemissing' => 'گم بیئن جانیا',
'thumbnail_error' => 'خطا د راس بیئن بن کلئکی:$1',
+# Special:Import
+'import-upload-filename' => 'نوم جانیا:',
+'import-comment' => 'ویر و باور:',
+'importcantopen' => 'نبوئه جانیا دئه بیه نه وا بکید',
+'importnofile' => 'هیچ جانیا دئه بیه ای سوار نبیه.',
+'import-upload' => 'سوار کرد دونسمنیا ایکس ام ال',
+'import-token-mismatch' => 'کمبود د دونسمنیا نشینگه.
+لطفن هنی کوششت بکید.',
+
+# Import log
+'importlogpage' => 'پهرستنومه دئن',
+
# Tooltip help for the actions
'tooltip-pt-userpage' => 'بلگه كارورتو',
'tooltip-pt-mytalk' => 'بلگه قسه كردن شما',
'tooltip-diff' => 'آلشتیا نه که شما د ای متن راس کردیته نشو بیئه',
'tooltip-compareselectedversions' => 'فرخیا مینجا دو تا د دو بار دیئن ای بلگه نه بوینیت',
'tooltip-watch' => 'ای بلگه نه د سیل برگتو اضاف بکید',
+'tooltip-upload' => 'شرو د سوار کرد',
'tooltip-rollback' => '"ورگشتن" لرستن د حالت اول سی ای بلگه که سی يه كه هومياری نيايی اصلاح بيه وا يه پورنسن',
'tooltip-undo' => 'انجوم نگرتن ای ویرایشت ورگن و همه فرمیا ویرایشت تانه که حالت پیش سیل واکو.یه اجازه میئه سی اضاف کردن یه دلیل د چکسته.',
'tooltip-summary' => 'يه چكسته كؤچك وارد بكيد',
'interlanguage-link-title' => '$1-$2',
+# Info page
+'pageinfo-language' => 'بلگه مینونه زون',
+'pageinfo-category-files' => 'شماره جانیایا',
+
+# Patrol log
+'patrol-log-page' => 'پهرستنومه گشتن',
+
+# Image deletion
+'filedeleteerror-short' => 'خطا پاک نبیئن جانیا:$1',
+
# Browsing diffs
'previousdiff' => '← ويرايشت كۈهنه تر',
'nextdiff' => 'ويرايشت تازه تر',
'svg-long-desc' => 'اس وی جی فايل.نومنا $1 $2 پيكسل',
'show-big-image' => 'فایل اصلی',
+# Special:NewFiles
+'newimages' => 'عسگدونی جانیایا تازه',
+'newimages-summary' => 'ای بلگه یا ویجه همه جانیایا سوار بیه نه نشو می ئین.',
+'newimages-label' => 'نوم جانیا(یا بشقی د وه):',
+'sp-newimages-showfrom' => 'جانیایا تازه نه که $2 ، $2 شرو بینه نشو بیه',
+
# Bad image list
'bad_image_list' => 'دونسمنديانه وه ای شلگ وارد بكيت:
*جی پی اس گپ حالت
*جی پی اس همه حالت',
+# Exif tags
+'exif-datetime' => 'آلشت دئن وخت و دمون جانیا',
+'exif-usercomment' => 'ویر و باوریا کارور',
+'exif-relatedsoundfile' => 'جانیا دنگ دار مرتوط',
+'exif-filesource' => 'سرچشمه جانیا',
+'exif-jpegfilecomment' => 'ویر و باور فایل پی ان جی',
+'exif-languagecode' => 'زون',
+'exif-pngfilecomment' => 'ویر و باور فایل جی پی ان جی',
+'exif-giffilecomment' => 'ویر و باور فایل جی آی اف',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا',
+'exif-gpsaltitude-below-sealevel' => '$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا',
+
+'exif-gpsdop-good' => 'خو ($1)',
+
# 'all' in various places, this might be different for inflected languages
'watchlistall2' => 'همه شو',
'namespacesall' => 'همه شو',
'monthsall' => 'همه',
+# Multipage image navigation
+'imgmultigo' => 'رؤ!',
+
+# Language selector for translatable SVGs
+'img-lang-go' => 'رو',
+
+# Table pager
+'table_pager_limit_submit' => 'رو',
+
# Watchlist editing tools
'watchlisttools-view' => 'آلشتیا مرتوط نه بوینیت',
'watchlisttools-edit' => 'سیل برگ بوینیتو و ویرایشت بکید',
'version-ext-colheader-license' => 'ليسانس',
'version-ext-colheader-credits' => 'نیسنه یا',
+# Special:Redirect
+'redirect-submit' => 'رو',
+'redirect-file' => 'نوم جانیا',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch-filename' => 'نوم جانیا:',
+
# Special:SpecialPages
'specialpages' => 'بلگيا ويجه',
+'specialpages-group-changes' => 'آلشتیا تازه و پهرستنومه یا',
+'specialpages-group-media' => 'گزارشتیا رسانه و سوارکردیا',
# External image whitelist
'external_image_whitelist' => 'یه خط نه ول بکید چی وه<pre>',
# Special:Tags
'tag-filter' => 'فيلتر [[Special:Tags|Tag]]:',
+# API errors
+'api-error-badaccess-groups' => 'شما سی سوار کرد جانیایا د ای ویکی اجازه ناریت.',
+'api-error-copyuploaddisabled' => 'سوار کردن وا یو آر ال دی ای سرور غیرفعال بیه.',
+'api-error-filename-tooshort' => 'نوم جانیا فره کؤچکه.',
+'api-error-illegal-filename' => 'نوم جانیا اجازه دئه نئ.',
+'api-error-mustbeloggedin' => 'شما سی سوارکردن فایلیا با بیایت وامین',
+
+# Special:ExpandTemplates
+'expand_templates_remove_comments' => 'جا وه جا بیئن ویر و باوریا',
+
+# Unknown messages
+'uploadinvalidxml' => 'ایکس ام الی که سوار بیه نبوئه نوتیج با.',
);
'tog-numberheadings' => 'Automatiškai numeruoti skyrelius',
'tog-showtoolbar' => 'Rodyti redagavimo įrankinę (JavaScript)',
'tog-editondblclick' => 'Puslapių redagavimas dvigubu spustelėjimu (JavaScript)',
-'tog-editsection' => 'Įjungti skyrelių redagavimą naudojant nuorodas [taisyti]',
'tog-editsectiononrightclick' => 'Įjungti skyrelių redagavimą paspaudus skyrelio pavadinimą dešiniuoju pelės klavišu (JavaScript)',
-'tog-showtoc' => 'Rodyti turinį, jei puslapyje daugiau nei 3 skyreliai',
'tog-rememberpassword' => 'Prisiminti prisijungimo informaciją šioje naršyklėje (daugiausiai $1 {{PLURAL:$1|dieną|dienas|dienų}})',
'tog-watchcreations' => 'Pridėti puslapius, kuriuos aš sukuriu, į stebimų sąrašą',
'tog-watchdefault' => 'Pridėti puslapius, kuriuos aš redaguoju, į stebimų sąrašą',
'tog-numberheadings' => 'Automātiski numurēt virsrakstus',
'tog-showtoolbar' => 'Rādīt rediģēšanas rīkjoslu',
'tog-editondblclick' => 'Atvērt lapu rediģēšanai ar dubultklikšķi',
-'tog-editsection' => 'Rādīt sadaļām izmainīšanas saiti "[labot]"',
'tog-editsectiononrightclick' => "Atvērt sadaļas rediģēšanas lapu, uzklikšķinot ar labo peles pogu uz sadaļas virsraksta (izmanto ''JavaScript'')",
-'tog-showtoc' => 'Parādīt satura rādītāju (lapām, kurās ir vairāk par 3 virsrakstiem)',
'tog-rememberpassword' => 'Atcerēties manu lietotājvārdu pēc pārlūka aizvēršanas (ne vairāk kā $1 {{PLURAL:$1|diena|dienas}}).',
'tog-watchcreations' => 'Pievienot manis radītās lapas un manis augšuplādētos failus uzraugāmo lapu sarakstam',
'tog-watchdefault' => 'Pievienot manis izmainītās lapas un failus uzraugāmo lapu sarakstam',
'allmessages-prefix' => 'Filtrēt pēc prefiksa:',
'allmessages-language' => 'Valoda:',
'allmessages-filter-submit' => 'Parādīt',
+'allmessages-filter-translate' => 'Tulkot',
# Thumbnails
'thumbnail-more' => 'Palielināt',
'tooltip-pt-watchlist' => 'Tevis uzraudzītās lapas',
'tooltip-pt-mycontris' => 'Tavs devums',
'tooltip-pt-login' => 'Aicinām tevi ieiet {{grammar:lokatīvs|{{SITENAME}}}}, tomēr tas nav obligāti.',
-'tooltip-pt-anonlogin' => 'Aicinām tevi ieiet {{grammar:lokatīvs|{{SITENAME}}}}, tomēr tas nav obligāti.',
'tooltip-pt-logout' => 'Iziet',
'tooltip-ca-talk' => 'Diskusija par šī raksta lapu',
'tooltip-ca-edit' => 'Izmainīt šo lapu. Lūdzam izmantot pirmskatu pirms lapas saglabāšanas.',
'spamprotectionmatch' => 'Spama filtram radās iebildumi pret šo tekstu: $1',
'spambot_username' => 'MediaWiki surogātpasta tīrīšana',
'spam_reverting' => 'Atjauno iepriekšējo versiju, kas nesatur saiti uz $1',
-'simpleantispam-label' => "Pretspama pārbaude.
- '''NEAIZPILDĪT!'''",
+'simpleantispam-label' => 'Pretspama pārbaude.
+<strong>Neaizpildiet</strong> šo!',
# Info page
'pageinfo-title' => 'Informācija par "$1"',
'tog-numberheadings' => '生章數',
'tog-showtoolbar' => '多寶列見(JavaScript)',
'tog-editondblclick' => '纂頁雙擊(JavaScript)',
-'tog-editsection' => '纂段擊鏈',
'tog-editsectiononrightclick' => '纂段右擊標(JavaScript)',
-'tog-showtoc' => '四章見目',
'tog-rememberpassword' => '符節通越(達至$1日)',
'tog-watchcreations' => '哨己撰',
'tog-watchdefault' => '哨己纂',
'tog-numberheadings' => 'शीर्षक स्वयं-क्रमांकित करू',
'tog-showtoolbar' => 'संपादन ओजारपेटी देखाऊ (जावास्क्रीप्ट)',
'tog-editondblclick' => 'दू बेर क्लीक कए पन्ना संपादित करू (जावास्क्रीप्ट)',
-'tog-editsection' => '[संपादित करू] श्रृंखला द्वारा विभाग संपादनक आज्ञा दिअ',
'tog-editsectiononrightclick' => 'ऐ खण्डक सम्पादन खण्डक शीर्षकेँ दहिन क्लिक कऽ सम्भव (जावास्क्रिप्ट चाही)',
-'tog-showtoc' => 'अनुक्रम देखाऊ (जाहि पृष्ठ पर तीनसँ बेशी विभाग होए)',
'tog-rememberpassword' => 'ऐ गवेषकपर हमर कूटशब्द (बेशीसं बेशी $1 {{PLURAL:$1|दिन धरि| कएक दिन धरि}}) मोन राखू',
'tog-watchcreations' => 'हमर बनाओल पृष्ठ हमर साकांक्ष सूचीमे राखू',
'tog-watchdefault' => 'हमर संपादित पृष्ठ हमर साकांक्ष सूचीमे देखाऊ',
'tog-numberheadings' => 'Asio laharany ny lohateny',
'tog-showtoolbar' => 'Haneho ny toolbar fanovana',
'tog-editondblclick' => "Hanova pejy amin'ny alalan'ny tsindrim-boalavo roa misesy",
-'tog-editsection' => "Ataovy mety ny fanovana fizaràna amin'ny alalan'ny rohy [hanova]",
'tog-editsectiononrightclick' => "Hampiasa ny fanovana fizarana amin'ny tsindry havanana eo amin'ny lohatenim-pizarana.",
-'tog-showtoc' => "Asehoy ny fanoroan-takila (ho an'ny pejy misy lohateny mihoatra ny 3)",
'tog-rememberpassword' => "Tadidio ny tenimiafiko eto amin'ity solosaina ity (mandritry ny andro $1 fara-fahabetsany){{PLURAL:}}",
'tog-watchcreations' => 'Hanaraka ny pejy foronoko ary ny rakitra ampidiriko',
'tog-watchdefault' => 'Hanaraka ny pejy ary ny rakitra ovaiko',
'youhavenewmessages' => 'Manana $1 ($2).',
'youhavenewmessagesfromusers' => "Manana $1 avy amin'ny mpikambana {{PLURAL:$3|hafa|$3}} ($2).",
'youhavenewmessagesmanyusers' => "Manana $1 avy amin'ny mpikambana maro ($2).",
-'newmessageslinkplural' => '{{PLURAL:$1|hafatra iray|hafatra maro}}',
+'newmessageslinkplural' => '{{PLURAL:$1|hafatra iray |hafatra maro}} vaovao',
'newmessagesdifflinkplural' => 'fiovana {{PLURAL:$1|farany|999=farany}}',
'youhavenewmessagesmulti' => "Manana hafatra vaovao ianao eo amin'ny $1.",
'editsection' => 'hanova',
'badtitletext' => "Tsy mety io anaram-pejy nangatahinao io na tsy misy n'inon'inona na rohy dikan-teny vahiny misy diso tsipelina.",
'perfcached' => "Ao amin'ny voatakona ireo data manaraka ireo ary mety tsy voavao. $1{{PLURAL:}} ihany no isan'ireo zavatra voatahiry ao amin'ny voatakona",
'perfcachedts' => "Ao amin'ny voatakona (cache) ny data aseho, ary tamin'ny $1 izy no navaozina farany. $4{{PLURAL:}} no isan'ny valim-pikarohana ao amin'ilay voatakona.",
-'querypage-no-updates' => "Tsy nalefa ny ''mise à jour'' (update) hoan'ity pejy ity.
-Mety tsy misy fifandraisana amin'ny zavamisy ankehitriny ny zavamisy ao anatin'ity pejy ity..",
+'querypage-no-updates' => "Amin'izao fotoana izao dia tsy havaozina ny votoatin'ity pejy ity. Noho izany dia tsy mitaratra ny tena zava-misy ny votoatiny ato.",
'viewsource' => 'Hijery fango',
'viewsource-title' => "Hijery ny fangon'i $1",
'actionthrottled' => 'Tao voafetra',
'invalidtitle-knownnamespace' => 'Lohateny tsy miady amin\'ny fepetra miaraka amin\'ny anaram-balam-pejy "$2" ary soratra "$3"',
'invalidtitle-unknownnamespace' => 'Lohateny tsy ekena miaraka amin\'ny laharana anaran-tsehatra $1 ary soratra "$2"',
'exception-nologin' => 'Tsy tafiditra',
-'exception-nologin-text' => "Mila tafiditra eo amin'ilay wiki vao afaka manao ilay tao.",
+'exception-nologin-text' => '[[Special:Userlogin|Midira]] mba hahafahanao manao ilay asa na hahafahanao mijery ity pejy ity',
# Virus scanner
'virus-badscanner' => "Diso : Tsy fantatray ny mpitady virus ''$1''",
'gotaccount' => "Efa manana kaonty? '''$1'''.",
'gotaccountlink' => 'Midira',
'userlogin-resetlink' => "Adinonavo ve ny antsipihan'ny fidiranao ?",
-'userlogin-resetpassword-link' => 'Hamerina ny tenimiafinao',
+'userlogin-resetpassword-link' => 'Hadino ny tenimiafina?',
'helplogin-url' => 'Help:Fidirana',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Fanoroana mikasika ny fidirana]]',
'userlogin-createanother' => 'Hamorona kaonty hafa',
Farafahakeliny tokony hisy litera $1 ny tenimiafina.',
'password-name-match' => 'Tsy maintsy samihafa ny solonanaranao sy ny tenimiafinao tompoko.',
'password-login-forbidden' => 'Norarana ny fampiasana io anaram-pikambana ary io tenimiafina io.',
-'mailmypassword' => 'Alefaso imailaka ny tenimiafiko',
+'mailmypassword' => 'Hamerina ny tenimiafina',
'passwordremindertitle' => "Fampatsiahivana tenimiafina avy amin'i {{SITENAME}}",
'passwordremindertext' => 'Nisy olona, izay ianao ihany angamba, avy tamin\'ny adiresy IP $1, nangataka
ny handefasanay tenimiafina vaovao ho an\'ny sehatra {{SITENAME}} ao amin\'ny
'currentrev' => 'Votoatiny ankehitriny',
'currentrev-asof' => "Endrika tamin'ity $1 ity",
'revisionasof' => "Endrik'io pejy io tamin'ny $1",
-'revision-info' => "Santiônan'i $1 nataon'i $2",
-'previousrevision' => '←Votoatiny antitra kokoa',
-'nextrevision' => 'Fanovana vao haingana→',
-'currentrevisionlink' => 'Endrika-ny ankehitriny',
+'revision-info' => "Endrika tamin'ny $1 nataon'i $2",
+'previousrevision' => '← Endrika tranainy kokoa',
+'nextrevision' => 'Endrika vaovao kokoa →',
+'currentrevisionlink' => 'Endrika farany indrindra',
'cur' => 'ank',
'next' => 'manaraka',
'last' => 'farany',
'rev-deleted-user-contribs' => "[anaram-pikambana na adiresy IP voafafa - fanovana nasitria teo amin'ny fandraisan'anjara modification]",
'rev-deleted-text-permission' => "'''Voafafa''' ny santiônan'ity pejy ity.
Mety misy ny antsipirihany angamba ny [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAME}}}} laogy momban'ny famafàna pejy].",
-'rev-deleted-text-unhide' => "Ity santiônan'ity pejy ity dia '''voafafa'''.
+'rev-deleted-text-unhide' => "Ity versionan'ity pejy ity dia '''voafafa'''.
Hita ao amin'ny [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} laogim-pamafana] ny antsipirihany.
-Afaka [$1 mijery ilay santiôna] ianao raha tianao.",
-'rev-suppressed-text-unhide' => "'''Nofafana''' ity santiônam-pejy ity.
+Afaka [$1 mijery ilay versiona] ianao raha tianao.",
+'rev-suppressed-text-unhide' => "'''Nofafana''' ity versiom-pejy ity.
Azo jerena ao amin'ny [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} laogim-pamafana] ny antsipirihany.
Azonao [$1 jerena foana ilay santiôna] raha tianao.",
-'rev-deleted-text-view' => "'''Nofafana''' ity santiônam-pejy ity.
+'rev-deleted-text-view' => "'''Nofafana''' ity versiom-pejy ity.
Azonao jerena ity santiôna voafafa ity ; misy antsipirihany ao amin'ny [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} laogim-pamafana].",
-'rev-suppressed-text-view' => "'''Nofafana''' ity santiônam-pejy ity.
-Azonao jerena ilay santiôna voafafa ; ny antsipirihany dia ao amin'ny [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} laogim-pamafana].",
+'rev-suppressed-text-view' => "'''Nofafana''' ity versiom-pejy ity.
+Azonao jerena ilay versiona voafafa ; ny antsipirihany dia ao amin'ny [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} laogim-pamafana].",
'rev-deleted-no-diff' => "Tsy afaka mijery anio diff io ianao satria misy santôna '''voafafa''' ao aminy.
Mety any amin'ny [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAME}}}} laogy momban'ny famafàna pejy] ny antsipirihany.",
'rev-suppressed-no-diff' => "Tsy azo jerenao io diff io satria '''voafafa''' ny iraika amin'ny reviziônany.",
'rev-deleted-unhide-diff' => "Nisy '''voafafa''' ny iraika amin'ny reviziôna an'ity diff ity.
Ny antsipirihany dia mety hita ao amin'ny [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} laogin'ny famafana].
[$1 Azonao jerena foana ilay diff] raha tianao.",
-'rev-suppressed-unhide-diff' => "Nisy '''voafafa''' ny iraika amin'ny santiôna an'ity diff ity.
+'rev-suppressed-unhide-diff' => "Nisy '''voafafa''' ny iraika amin'ny versiona an'ity diff ity.
Ny antsipirihany dia mety hita ao amin'ny [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} laogin'ny famafana].
[$1 Azonao jerena foana ilay diff] raha tianao.",
'rev-deleted-diff-view' => "Nisy '''voafafa''' ny iraika amin'ny reviziôna an'ity diff ity.
Azonao jerena ilay diff ; ao amin'ny [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tatitry ny famafana] ny antsipirihany.",
'rev-delundel' => 'aseho/asitrika',
'rev-showdeleted' => 'aseho',
-'revisiondelete' => 'Hamafa na hamerina santiôna',
-'revdelete-nooldid-title' => 'Santiôna tanjona tsy mameno fetra.',
-'revdelete-nooldid-text' => 'Tsy voalazanao ny santiôna tanjona hanaovana ity tao ity,
+'revisiondelete' => 'Hamafa na hamerina versiona',
+'revdelete-nooldid-title' => 'versiona tanjona tsy azo ekena.',
+'revdelete-nooldid-text' => 'Tsy voalazanao ny versiona tanjona hanaovana ity tao ity,
tsy misy ilay izy, na ny santiôna ankehitriny no andramana asitrika.',
'revdelete-no-file' => 'Tsy misy ilay rakitra hofafàna.',
'revdelete-show-file-confirm' => "Tapa-kevitra hamafa ny ''revision''-n'i rakitra <nowiki>$1</nowiki> tamin'ny $2 tamin'ny $3 ve ianao ?",
'revdelete-show-file-submit' => 'Eny',
'revdelete-selected' => "'''{{PLURAL:$2|Votoatiny nosafidiana|Votoatiny nosafidiana}}n'i '''[[:$1]]''' :'''",
'logdelete-selected' => "'''{{PLURAL:$1||}}Laogy voafidy :'''",
-'revdelete-text' => "'''Mbola ao amin'ny laogy ny santiôna voafafa, fa tsy afaka jeren'ny vahoaka ny lahatsoratra ao aminy.'''
-Afaka mijery ny lahatsoratra nasitrika sy mamerina azy ny mpandrindra hafa ny {{SITENAME}} amin'ity interface ity, raha tsy misy \"restriction\" hafa koa.",
+'revdelete-text' => "'''Mbola ho ao amin'ny laogim-pejy ary ao amin'ny logy ny versiona ary zava-nitranga voaesotra, fa tsy ho hitan'ny mason'ny vahoaka ny votoatin'izy ireo.'''
+Mbola afaka jeren'ireo mpandrindran'i {{SITENAME}} foana ny votoatiny voafina ary azony atao ho hitan'ny vahoaka indray ilay izy amin'ny alalan'ity pejy fanaovan-tsafidy ity, raha tsy misy fepetra apetraka.",
'revdelete-confirm' => 'Amafiso eto ny hevitrao raha hanao io ianao, raha azonao sary an-tsaina ny mety ho vokany, ary raha araka ny [[{{MediaWiki:Policy-url}}|fepetra mihatra]] ny zavatra ataonao.',
'revdelete-suppress-text' => "Ny famafàna pejy dia ampiasaina rehefa :
* Misy information tsy sarababem-bahoaka tsy metimety
'revdelete-radio-set' => 'Eny',
'revdelete-radio-unset' => 'Tsia',
'revdelete-suppress' => "Manitrika ny votoatiny ho an'ny mpandrindra",
-'revdelete-unsuppress' => "Hanala ny fepetra eo amin'ny santiôna naverina",
+'revdelete-unsuppress' => "Hanala ny fepetra eo amin'ny versiona naverina",
'revdelete-log' => 'Antony :',
-'revdelete-submit' => "Ahàtra amin'ny santiôna nofidiana {{PLURAL:$1}}",
-'revdelete-success' => "'''Voaova soa aman-tsara ny fahitana ny santiôna.'''",
-'revdelete-failure' => "'''Ny fisehon'ity santiôna ity dia tsy afaka natao update'''
+'revdelete-submit' => "Hampiharina amin'ny versiona nofidiana {{PLURAL:$1}}",
+'revdelete-success' => "'''Voaova soa aman-tsara ny fahitana ny versiona.'''",
+'revdelete-failure' => "'''Ny fisehon'ity versiona ity dia tsy afaka natao update'''
$1",
'logdelete-success' => "'''Voaova soa aman-tsara ny fisehon'ny tatitr’asa.'''",
'logdelete-failure' => "'''Tsy afaka novaina ny fisehon'ny tatitr’asa'''
'mergehistory-go' => 'Hijery ny fanovàna mety hatsonika',
'mergehistory-submit' => 'atsonika ny version',
'mergehistory-empty' => 'tsy misy version azo hatambarana',
-'mergehistory-success' => "$3 version{{PLURAL:$3||s}} de [[:$1]] fusionnée{{PLURAL:$3||s}} dans [[:$2]].
-
-$3 santiôna{{PLURAL:}} natsonika tamin'ny [[:$2]]",
+'mergehistory-success' => "{{PLURAL:$3|}}Versiona $3 an'i [[:$1]] no natsonika tamin'ny [[:$2]]",
'mergehistory-fail' => "Tsy afaka manatambatra ny tantara(n'asa). Avereno checheo ny pejy sy ny daty.",
'mergehistory-no-source' => "Tsy misy ny pejy avy amin'ny $1.",
'mergehistory-no-destination' => 'Tsy misy ilay pejy tanjona $1.',
# Diffs
'history-title' => "Tantaran'ny endrik'i « $1 »",
-'difference-title' => "$1 : Fahasamihafan'ny santiôna roa",
+'difference-title' => "$1 : Fahasamihafan'ny versiona roa",
'difference-title-multipage' => 'Fahasamihafan\'ny pejy "$1" ary "$2"',
'difference-multipage' => "(Fahasamihafan'ny pejy)",
-'lineno' => 'Andalana $1:',
+'lineno' => 'Andalana faha-$1:',
'compareselectedversions' => 'Ampitahao ireo version voafidy',
-'showhideselectedversions' => 'Aseho/asitrika ireo ny santiôna nofidiana',
+'showhideselectedversions' => 'Aseho/asitrika ireo ny versiona voasafidy',
'editundo' => 'esory',
'diff-empty' => '(Tsy misy mahasamihafa)',
'diff-multi' => "({{PLURAL:$1|Famerenana tokana|Famerenana $1}} nataon'ny {{PLURAL:$2|mpikambana iray|mpikambana $2}} tsy miseho)",
'right-deletelogentry' => "Hamafa ary hamerina iditra manokana ao amin'ny laogy.",
'right-deleterevision' => 'Mamafa ny version manokana-na pejy iray',
'right-deletedhistory' => 'Mijery ny tantaram-pejy voafafa fa tsy lahatsorany',
-'right-deletedtext' => "Mijery ny lahatsoratra voafafa sy ny fampitahana anelanelan'ny santiôna voafafa",
+'right-deletedtext' => "Mijery ny lahatsoratra voafafa sy ny fampitahana anelanelan'ny versiona voafafa",
'right-browsearchive' => 'Mitady pejy voafafa',
'right-undelete' => 'Mamerina pejy voafafa',
'right-suppressrevision' => "Mandinika sy mamerina ny version asitrika amin'ny mpandrindra",
'uploadwarning-text' => "Ovay ny fanoritan' ilay rakitra ary andrao fanindroany.",
'savefile' => 'Tehirizo ny rakitra',
'uploadedimage' => 'tonga ny rakitra"[[$1]]"',
-'overwroteimage' => "nampiditra santiôna vaovao an'ny « [[$1]] »",
+'overwroteimage' => 'nampiditra versiona vaovao ny «[[$1]]»',
'uploaddisabled' => 'Miala tsiny! Tsy azo atao ny mandefa rakitra.',
'copyuploaddisabled' => "Tsy alefa ny fandefasan-drakitra amin'ny alalan'ny URL.",
'uploadfromurl-queued' => 'Ao am-piandrasana ny fandefasan-drakitrao.',
'filerevert-defaultcomment' => "Voaverina ny santiônan'ny $1 tamin'ny $2",
'filerevert-submit' => 'Hamerina',
'filerevert-success' => "Naverina tamin' [$4 ny santiôn'ny $2 tamin'ny $3] i '''[[Media:$1|$1]]'''",
-'filerevert-badversion' => "An-toerana, tsy misy santiôna nialoha io rakitra io miankina amin'ny daty voatoro.",
+'filerevert-badversion' => "An-toerana, tsy misy versiona nialoha io rakitra io miankina amin'ny daty voatoro.",
# File deletion
'filedelete' => 'Hamafa $1',
'filedelete-legend' => 'Fafao ilay rakitra',
'filedelete-intro' => "Ampamafana ny rakitra '''[[Media:$1|$1]]''' ianao miaraka amin'ny tantarany rehetra.",
-'filedelete-intro-old' => "Am-pamafana ny santiôna '''[[Media:$1|$1]]''' tamin'ny [$4 $2 tamin'ny $3] ianao.",
+'filedelete-intro-old' => "Am-pamafana ny versiona '''[[Media:$1|$1]]''' tamin'ny [$4 $2 tamin'ny $3] ianao.",
'filedelete-comment' => 'Antony :',
'filedelete-submit' => 'Hamafa',
'filedelete-success' => "voafafa '''$1'''.",
'filedelete-success-old' => "Voafafa ny santiônan'ny '''[[Media:$1|$1]]''' tamin'ny $2 tamin'ny $3.",
'filedelete-nofile' => "Tsy misy '''$1'''.",
-'filedelete-nofile-old' => "Tsy nisy santiôna voatahirin'i '''$1''' miaraka amin'ny mahasamihafa naseho.",
+'filedelete-nofile-old' => "Tsy nisy versiona voatahirin'i '''$1''' miaraka amin'ny mahasamihafa naseho.",
'filedelete-otherreason' => 'Antony fanampiny :',
'filedelete-reason-otherlist' => 'Antony hafa',
'filedelete-reason-dropdown' => '* Antom-pamafàna rakitra miasa matetika
'unwatch' => 'Aza arahana intsony',
'unwatchthispage' => 'Aza arahana intsony',
'notanarticle' => 'Tsy votoatim-pejy ity pejy ity',
-'notvisiblerev' => 'Voafafa ilay santiôna',
+'notvisiblerev' => 'Voafafa ilay versiona farany nataom-pikambana hafa',
'watchlist-details' => "Pejy $1{{PLURAL:}} ao amin'ny lisitry ny pejy arahanao, tsy isaina ny pejin-dresaka.",
'wlheader-enotif' => "Alefa ny fampilazana amin'ny mailaka.",
'wlheader-showupdated' => "Aseho '''sorabaventy''' ny pejy niova taorian'ny famangianao azy farany.",
'watchmethod-list' => 'fanamarinana ny pejy arahana hahitana fiovana vao haingana',
'watchlistcontains' => "Ao amin'ny pejy arahanao dia ahitana pejy $1{{PLURAL:}}.",
'iteminvalidname' => "Olana amin'ny zavatra « $1 » : tsy ara-dalàna ny anarana...",
-'wlnote' => "Eo ambany dia ahitana ny {{PLURAL:$1|fiovana farany indrindra|ny fiovana ''$1'' farany}} natao tanatin'ny adin'ny {{PLURAL:$2|iray|'''$2'''}}, nanomboka ny $3, $4.",
'wlshowlast' => 'Haneho ny $1 ora farany, ny $2 andro farany na $3',
'watchlist-options' => 'Safidy ny lisitry ny pejy arahana',
** Tsi-fanajana ny zom-pamorona
** Fandotoana",
'delete-edit-reasonlist' => 'Hanova ny antony amafana pejy',
-'delete-toobig' => 'Ity pejy ity dia manana tantaram-panovana be, mihoatra ny santiôna {{PLURAL:$1}} $1.
-Ny famafana ireo pejy ireto dia voafetra mba tsy hikorontana {{SITENAME}}.',
+'delete-toobig' => "Ity pejy ity dia manana tantaram-panovana lava be, izany hoe manana versiona {{PLURAL:$1}} $1.
+Noferana mba tsy hikorontana ny fandehanan'i {{SITENAME}} ny famafana ireo pejy ireo.{{PLURAL:$1|}}",
'delete-warning-toobig' => "Lava be mihitsy ny tantaram-piovan'ity pejy ity, mihoatra santiôna $1{{PLURAL:}}.
Mety hitondra fikorontanana ao amin'ny banky angon'i {{SITENAME}} ny famafana azy ;
ataovy am-pitandremana ity tao ity.",
# Undelete
'undelete' => 'Jereo ny pejy voafafa',
'undeletepage' => 'Hijery sy hamerina ny pejy efa voafafa',
-'undeletepagetitle' => "'''Ahitana ny santiôna voafafan'i [[:$1|$1]] ity lisitra manaraka.'''",
+'undeletepagetitle' => "'''Ahitana ny versiona voafafan'i [[:$1|$1]] ity lisitra manaraka.'''",
'viewdeletedpage' => 'Hijery ny pejy efa nofafana',
'undeletepagetext' => "Ireto pejy ireto dia efa voafafa nefa mbola voatahiry ao amin'ny tahiry ihany,
ary mbola afaka averina, mandra-pifafan'ny tahiry. Mety ho voafafa matetitetika
ihany ny tahiry {{PLURAL:$1}}.",
-'undelete-fieldset-title' => 'Hamerina ny santiôna',
+'undelete-fieldset-title' => 'Hamerina versiona',
'undeleterevisions' => "{{PLURAL:$1|fanovana|fanovana}} $1 voatahiry any amin'ny arsiva",
'undeletehistory' => "
Raha averinao ity pejy ity dia hiverina hiaraka aminy koa ny tantaran'ny
noforonina taorian'ny namafana azy, dia hitambatra amin'ny tantaran'io
pejy vaovao io ny tantaran'ity pejy voafafa ity, fa tsy ho voafafa akory.",
'undeletehistorynoadmin' => "Efa voafafa io lahatsoratra io. Ny antony namafana azy dia io miseho ambangovangony eo ambany eo io, miaraka amin'ny fampahalalana antsipirihany momba ny mpikambana nikitika io pejy io talohan'ny namafana azy. Ny votoatin'ny pejy izay efa nofafana ireo dia ny mpitantana ihany no afaka mahita azy ankehitriny.",
-'undelete-revision' => "Santiôna voafafa an'i $1 (santiôna tamin'ny $4 tamin'ny $5) nataon'i $3 :",
-'undeleterevision-missing' => "Santiôna diso na tsy misy.
+'undelete-revision' => "Versiona voafafa an'i $1 (versiona tamin'ny $4 tamin'ny $5) nataon'i $3:",
+'undeleterevision-missing' => "Versiona diso na tsy misy.
Mety rohy tsy izy no anananao, na mety voafafa na naverina tamin'ny tahiry ilay santiôna.",
-'undelete-nodiff' => 'Tsy nahitana santiôna nialoha.',
+'undelete-nodiff' => 'Tsy nahitana versiona nialoha.',
'undeletebtn' => 'Avereno!',
'undeletelink' => 'Topi-maso/averina',
'undeleteviewlink' => 'hijery',
'undelete-error-long' => 'Nisy tsi-fetezana nitranga teo am-pamerenana ilay rakitra :
$1',
-'undelete-show-file-confirm' => "Tapa-kevitra ny hamafa ny santiôna voafafan'ny rakitra <nowiki>$1</nowiki> tamin'ny $2 tamin'ny $3 ve ianao ?",
+'undelete-show-file-confirm' => "Tapa-kevitra ny hamafa ny versiona voafafan'ny rakitra <nowiki>$1</nowiki> tamin'ny $2 tamin'ny $3 ve ianao ?",
'undelete-show-file-submit' => 'Eny',
# Namespace form on various pages
'contributions' => "Fandraisan'anjaran'ny mpikambana{{GENDER:$1}}",
'contributions-title' => "Fandraisan'anjaran'i $1",
'mycontris' => "Fandraisan'anjara",
-'contribsub2' => "Ho an'ny $1 ($2)",
+'contribsub2' => "Ho an'i {{GENDER:$3|$1}} ($2)",
'nocontribs' => "Tsy misy fanovana mifanaraka amin'ireo critères ireo.",
'uctop' => '(ankehitriny)',
'month' => "Tamin'ny volana (sy teo aloha) :",
'import-upload-filename' => 'Anaran-drakitra :',
'import-comment' => 'Resaka :',
'importstart' => 'Am-pampidirana ny pejy…',
-'import-revision-count' => '$1 santiôna{{PLURAL:$1||}}',
+'import-revision-count' => 'Versiona $1{{PLURAL:$1||}}',
'importnopages' => 'Tsy misy pejy ho ampidirana.',
'importfailed' => "Tsy fetezan' ilay fampidirana : <nowiki>$1</nowiki>",
'importunknownsource' => "Karazana tsy fantatra an'ilay fango ho ampidirina",
Tsy hita ny rakitra miserana.',
'import-parse-failure' => 'Tsy fetezana teo am-pandinihana ny XML ho ampidirina',
'import-noarticle' => 'Tsy misy pejy ho ampidirina !',
-'import-nonewrevisions' => 'Efa nampidirina taloha daholo ny santiôna rehetra.',
+'import-nonewrevisions' => 'Efa nampidirina taloha daholo ny versiona rehetra.',
'xml-error-string' => "$1 eo amin'ny andininy faha $2, tsanganana faha $3 (oktety $4) : $5",
'import-upload' => 'Fandrefasana data XML',
'import-token-mismatch' => 'Very ny fampahalalàna momba ny kaonty.
'tooltip-pt-watchlist' => 'Ny lisitra ny pejy arahanao-maso',
'tooltip-pt-mycontris' => "Lisitra ny fandraisan'anjaranao",
'tooltip-pt-login' => 'Tsara aminao no miditra na misoratra anarana, fa tsy voatery ianao.',
-'tooltip-pt-anonlogin' => 'Tsara aminao no miditra na misoratra anarana, fa tsy voatery ianao.',
'tooltip-pt-logout' => 'Hidio',
'tooltip-ca-talk' => 'resaka momba io takelaka io',
'tooltip-ca-edit' => "Azonao atao no manova n'ity pejy ity.
'spamprotectiontext' => "Voasakan'ny sivana mpiaro amin'ny spam ny pejy saika hotahirizinao. Mety ho anton'izany ny fisian'ny rohy mankany amin'ny sehatra ivelan'ity wiki ity.",
'spamprotectionmatch' => "Izao teny izao: $1 ; no nanaitra ny sivana mpiaro amin'ny spam",
'spambot_username' => "Fanadiovana ny spam amin'i MediaWiki.",
-'spam_reverting' => "Famerenana an'ilay santiôna farany tsy misy ny rohy mankany amin'ny $1",
-'spam_blanking' => "Voafotsy ny santiôna misy ny rohy mankany amin'ny $1",
+'spam_reverting' => "Famerenana an'ilay versiona farany tsy misy ny rohy mankany amin'ny $1",
+'spam_blanking' => "Voafotsy ny versiona misy ny rohy mankany amin'ny $1",
# Info page
'pageinfo-title' => 'Fampahalalana ho an\'i "$1"',
'markaspatrolleddiff' => 'Marihana ho voamarina',
'markaspatrolledtext' => 'Marihana ho hita sy voatsara',
'markedaspatrolled' => 'Voamarina',
-'markedaspatrolledtext' => "Ny santiôna voafidy an'ny [[:$1]] dia voamarika ho voamarina.",
+'markedaspatrolledtext' => "Nomarihana ho voamarina ny versiona voafidy an'ny [[:$1]].",
'rcpatroldisabled' => "Tsy nalefa ny fanamarinana ao amin'ny fiovana farany.",
'rcpatroldisabledtext' => 'Tsy atao ankehitriny ny fanamarinana ny pejy novaina farany.',
'markedaspatrollederror' => 'Tsy afaka marihana ho voamarina',
# Patrol log
'patrol-log-page' => "Laogin'ny fanovana voamarina",
'patrol-log-header' => "Ity dia laogy mikasikan'ny fanovana voamarina.",
-'log-show-hide-patrol' => "$1 ny laogy mikasikan'ny santiôna voamarina",
+'log-show-hide-patrol' => "$1 ny laogy mikasikan'ny versiona voamarina",
# Image deletion
'deletedrevision' => "Fanovana an'i $1 taloha voafafa.",
'filedelete-archive-read-only' => "Ny petra-drakitra fitehirizana « $1 » dia tsy afaka ovain'ny lohamilina.",
# Browsing diffs
-'previousdiff' => '← Ilay fampitahana teo arina',
-'nextdiff' => 'fampitahana manaraka →',
+'previousdiff' => '← Fiovana taloha',
+'nextdiff' => 'Fiovana manaraka →',
# Media information
'mediawarning' => "'''Fampitandremana''': Mety misy renifango manao ratsy io karazan-drakitra io.
'file-nohires' => 'Tsy misy sary lehiba noho io.',
'svg-long-desc' => 'rakitra SVG, habe $1 × $2 teboka, habe : $3',
'svg-long-error' => 'Rakitra SVG tsy ekena : $1',
-'show-big-image' => "Hijery ny tena haben'ny sary",
+'show-big-image' => 'Rakitra niaviana',
'show-big-image-preview' => "Haben'ny topi-maso: $1.",
'show-big-image-other' => 'Habe hafa: $1{{PLURAL:$2}}',
'show-big-image-size' => '$1 × $2 teboka',
'exif-software' => 'Rindrankajy nampiasaina',
'exif-artist' => 'Mpaka azy',
'exif-copyright' => 'Mpanana ilay copyright',
-'exif-exifversion' => 'Santiôna EXIF',
-'exif-flashpixversion' => 'Santiôna FlashPix',
+'exif-exifversion' => 'Versiona EXIF',
+'exif-flashpixversion' => 'Versiona FlashPix',
'exif-colorspace' => 'Valan-doko',
'exif-pixelydimension' => 'Haavon-tsary',
'exif-pixelxdimension' => 'Halala-tsary',
'duplicate-defaultsort' => '\'\'\'Tandremo\'\'\' : manitsaka ny sort key taloha "$1" ilay sort key ankehitriny "$2".',
# Special:Version
-'version' => 'Santiôna',
+'version' => 'Versiona',
'version-extensions' => 'Fanitarana nampidirina',
'version-specialpages' => 'Pejy manokana',
'version-variables' => 'Miova',
'version-poweredby-others' => 'hafa',
'version-software' => 'Rindrankahy voapetraka',
'version-software-product' => 'Vokatra',
-'version-software-version' => 'Santiôna',
+'version-software-version' => 'Versiona',
# Special:FileDuplicateSearch
'fileduplicatesearch' => 'Hitady rakitra mitovy endrika',
'comparepages' => 'Hampitaha pejy',
'compare-page1' => 'Pejy 1',
'compare-page2' => 'Pejy 2',
-'compare-rev1' => 'Santiôna 1',
-'compare-rev2' => 'Santiôna 2',
+'compare-rev1' => 'Versiona 1',
+'compare-rev2' => 'Versiona 2',
'compare-submit' => 'Ampitahao',
# Database error messages
'tog-numberheadings' => 'Нумерирај ги заглавијата',
'tog-showtoolbar' => 'Прикажи алатник за уредување',
'tog-editondblclick' => 'Уредување на страници при двоен стисок',
-'tog-editsection' => 'Овозможи уредување на заглавија преку врските [уреди]',
'tog-editsectiononrightclick' => 'Уредување на заглавија со десно копче од глушецот на нивниот наслов',
-'tog-showtoc' => 'Покажи содржина (за страници со повеќе од 3 заглавија)',
'tog-rememberpassword' => 'Запомни ме на овој прелистувач (највеќе до $1 {{PLURAL:$1|ден|дена}})',
'tog-watchcreations' => 'Додавај ги страниците што ги создавам и податотеките што ги подигам во списокот на набљудувања',
'tog-watchdefault' => 'Додавај ги страниците и податотеките што ги уредувам во списокот на набљудувања',
'retypenew' => 'Повторете ја новата лозинка:',
'resetpass_submit' => 'Поставете лозинка и најавете се',
'changepassword-success' => 'Вашата лозинка е успешно сменета!',
+'changepassword-throttled' => 'Имате премногу обиди за најава за кратко време.
+Почекајте $1 пред да се обидете повторно.',
'resetpass_forbidden' => 'Лозинките не може да се менуваат',
'resetpass-no-info' => 'Мора да сте најавени ако сакате да имате директен пристап до оваа страница.',
'resetpass-submit-loggedin' => 'Смени лозинка',
'changeemail-password' => 'Вашата лозинка на {{SITENAME}}:',
'changeemail-submit' => 'Смени е-пошта',
'changeemail-cancel' => 'Откажи',
+'changeemail-throttled' => 'Имате премногу обиди за најава за кратко време.
+Почекајте $1 пред да се обидете повторно.',
# Special:ResetTokens
'resettokens' => 'Врати одново шифри',
'template-semiprotected' => '(полузаштитен)',
'hiddencategories' => 'Оваа страница припаѓа на {{PLURAL:$1|1 скриена категорија|$1 скриени категории}}:',
'edittools' => '<!-- Овој текст ќе се прикаже под обрасците за уредување и подигање. -->',
+'edittools-upload' => '-',
'nocreatetext' => '{{SITENAME}} ја има ограничено можноста за создавање нови страници.
Можете да се вратите назад и да уредувате постоечка страница или [[Special:UserLogin|најавете се или создајте нова корисничка сметка]].',
'nocreate-loggedin' => 'Немате дозвола да создавате нови страници.',
'watchmethod-list' => 'Проверерка на набљудуваните страници во скорешните уредувања',
'watchlistcontains' => 'Вашиот список на набљудувања содржи $1 {{PLURAL:$1|страница|страници}}.',
'iteminvalidname' => "Проблем со елементот '$1', неважечко име...",
-'wlnote' => "Подолу {{PLURAL:$1|е прикажана последната промена|се прикажани последните '''$1''' промени}} во {{PLURAL:$2|последниов час|последниве '''$2''' часа}}, заклучно со $3, $4 ч.",
+'wlnote2' => 'Подолу се прикажани промените направени во {{PLURAL:$1|последниов час|последните <strong>$1</strong> часа}}, согласно $2, $3.',
'wlshowlast' => 'Прикажи ги последните $1 часа, $2 дена, $3',
'watchlist-options' => 'Поставки за список на набљудувања',
'range_block_disabled' => 'Администраторската можност да блокираат IP групи е исклучена.',
'ipb_expiry_invalid' => 'Погрешен рок на истекување.',
'ipb_expiry_temp' => 'Скриените блокирања на корисникот мора да бидат перманентни.',
-'ipb_hide_invalid' => 'Ð\9eваа Ñ\81меÑ\82ка не може да Ñ\81е поÑ\82иÑ\81не; можеби има пÑ\80емногÑ\83 Ñ\83Ñ\80едÑ\83ваÑ\9aа.',
+'ipb_hide_invalid' => 'Ð\9eваа Ñ\81меÑ\82ка не може да Ñ\81е поÑ\82иÑ\81не; има {{PLURAL:$1|повеÑ\9cе од едно Ñ\83Ñ\80едÑ\83ваÑ\9aе|пÑ\80екÑ\83 $1 Ñ\83Ñ\80едÑ\83ваÑ\9aа}}..',
'ipb_already_blocked' => '„$1“ е веќе блокиран',
'ipb-needreblock' => '$1 е веќе блокиран. Дали сакате да направите промена?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Друго блокирање|Други блокирања}}',
'allmessages-prefix' => 'Филтрирај по префикс:',
'allmessages-language' => 'Јазик:',
'allmessages-filter-submit' => 'Оди',
+'allmessages-filter-translate' => 'Преведување',
# Thumbnails
'thumbnail-more' => 'Зголеми',
'tooltip-pt-watchlist' => 'Список на страници кои сте избрале да ги набљудувате.',
'tooltip-pt-mycontris' => 'Список на ваши придонеси',
'tooltip-pt-login' => 'Ви препорачуваме да се најавите, иако тоа не е задолжително.',
-'tooltip-pt-anonlogin' => 'Ви препорачуваме да се најавите, иако тоа не е задолжително.',
'tooltip-pt-logout' => 'Одјавете се',
'tooltip-ca-talk' => 'Разговор за страницата',
'tooltip-ca-edit' => 'Можете да ја уредите оваа страница. Ве молиме користете го копчето за преглед пред зачувување.',
'print.css' => '/* Тука поставениот CSS ќе се применува во верзијата за печатење */',
'noscript.css' => '/* Тука поставениот CSS се однесува на корисниците што имаат оневозможено JavaScript */',
'group-autoconfirmed.css' => '/* Тука поставениот CSS ќе се применува само на автопотврдените корисници */',
+'group-user.css' => '/* Тука поставениот CSS ќе се применува само врз регистрираните корисници */',
'group-bot.css' => '/* Тука поставениот CSS ќе се применува само врз ботовите */',
'group-sysop.css' => '/* Тука поставениот CSS ќе се применува само врз системските оператори */',
'group-bureaucrat.css' => '/* Тука поставениот CSS ќе се применува само врз бирократите */',
'modern.js' => '/* Било која Јава скрипта поставена овде ќе биде вчитана за сите корисници што го користат рувото Современо */',
'vector.js' => '/* Тука поставениот JavaScript ќе им се вчитува на корисниците што го користат рувото „Векторско“ */',
'group-autoconfirmed.js' => '/* Тука поставениот JavaScript ќе им се вчитува само на автопотврдените корисници */',
+'group-user.js' => '/* Тука поставениот JavaScript ќе им се вчитува само на регистрираните корисници */',
'group-bot.js' => '/* Тука поставениот JavaScript ќе им се вчитува само на ботовите */',
'group-sysop.js' => '/* Тука поставениот JavaScript ќе им се вчитува само на системските оператори */',
'group-bureaucrat.js' => '/* Тука поставениот JavaScript ќе им се вчитува само на бирократите */',
# Multipage image navigation
'imgmultipageprev' => '← претходна страница',
'imgmultipagenext' => 'следна страница →',
-'imgmultigo' => 'Оди!',
+'imgmultigo' => 'Отвори',
'imgmultigoto' => 'Оди на страница $1',
# Language selector for translatable SVGs
'version-variables' => 'Променливи',
'version-antispam' => 'Спречување на спам',
'version-skins' => 'Рува',
+'version-api' => 'Прилози',
'version-other' => 'Друго',
'version-mediahandlers' => 'Ракувачи со мултимедијални содржини',
'version-hooks' => 'Куки',
'tog-numberheadings' => 'ഉപവിഭാഗങ്ങൾക്ക് ക്രമസംഖ്യ കൊടുക്കുക',
'tog-showtoolbar' => 'തിരുത്തൽ റ്റൂൾബാർ പ്രദർശിപ്പിക്കുക',
'tog-editondblclick' => 'താളുകളിൽ ഇരട്ട ക്ലിക്ക് ചെയ്യുമ്പോൾ തിരുത്താനനുവദിക്കുക',
-'tog-editsection' => '[തിരുത്തുക] എന്ന കണ്ണിയുപയോഗിച്ച് ഉപവിഭാഗങ്ങൾ തിരുത്താനനുവദിക്കുക',
'tog-editsectiononrightclick' => 'ഉപവിഭാഗങ്ങളുടെ തലക്കെട്ടിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുന്നതു വഴി തിരുത്താനനുവദിക്കുക',
-'tog-showtoc' => 'ഉള്ളടക്കപ്പട്ടിക പ്രദർശിപ്പിക്കുക (മൂന്നിൽ കൂടുതൽ ഉപശീർഷകങ്ങളുള്ള താളുകൾക്കു മാത്രം)',
'tog-rememberpassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
'tog-watchcreations' => 'ഞാൻ സൃഷ്ടിക്കുന്ന താളുകളും ഞാൻ അപ്ലോഡ് ചെയ്യുന്ന പ്രമാണങ്ങളും ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
'tog-watchdefault' => 'ഞാൻ തിരുത്തുന്ന താളുകളും പ്രമാണങ്ങളും ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
'retypenew' => 'പുതിയ രഹസ്യവാക്ക് ഉറപ്പിക്കുക:',
'resetpass_submit' => 'രഹസ്യവാക്ക് സജ്ജീകരിച്ചശേഷം ലോഗിൻ ചെയ്യുക',
'changepassword-success' => 'താങ്കളുടെ രഹസ്യവാക്ക് വിജയകരമായി മാറ്റിയിരിക്കുന്നു!',
+'changepassword-throttled' => 'കുറഞ്ഞ സമയത്തിനുള്ളിൽ താങ്കൾ നിരവധി തവണ പ്രവേശിക്കാൻ ശ്രമിച്ചിരിക്കുന്നു.
+വീണ്ടും ശ്രമിക്കുന്നതിനു മുമ്പ് ദയവായി $1 കാത്തിരിക്കുക.',
'resetpass_forbidden' => 'രഹസ്യവാക്കുകൾ മാറ്റുന്നത് അനുവദിക്കുന്നില്ല',
'resetpass-no-info' => 'ഈ താൾ നേരിട്ടു കാണുന്നതിന് താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കണം.',
'resetpass-submit-loggedin' => 'രഹസ്യവാക്ക് മാറ്റുക',
'changeemail-password' => 'താങ്കളുടെ {{SITENAME}} രഹസ്യവാക്ക്:',
'changeemail-submit' => 'ഇമെയിലിൽ മാറ്റംവരുത്തുക',
'changeemail-cancel' => 'റദ്ദാക്കുക',
+'changeemail-throttled' => 'താങ്കൾ നിരവധി തവണ പ്രവേശിക്കാൻ ശ്രമിച്ചിരിക്കുന്നു.
+വീണ്ടും ശ്രമിക്കുന്നതിനു മുമ്പ് ദയവായി $1 കാത്തിരിക്കുക.',
# Special:ResetTokens
'resettokens' => 'ചീട്ടുകൾ പുനഃസജ്ജീകരിക്കുക',
'content-not-allowed-here' => '"$1" ഉള്ളടക്കം [[$2]] താളിൽ അനുവദിക്കുന്നില്ല',
'editwarning-warning' => 'ഈ താളിൽ നിന്നും പോകുന്നത് താങ്കൾ വരുത്തിയ മാറ്റങ്ങൾ നഷ്ടപ്പെടാൻ ഇടയാക്കും.
താങ്കൾ ലോഗിൻ ചെയ്തിട്ടുണ്ടെങ്കിൽ, താങ്കളുടെ ക്രമീകരണങ്ങളിൽ "തിരുത്തൽ" എന്ന ഭാഗത്ത് ചെന്ന് ഈ അറിയിപ്പ് പ്രദർശിപ്പിക്കുന്നത് ഒഴിവാക്കാവുന്നതാണ്.',
+'editpage-notsupportedcontentformat-title' => 'ഉള്ളടക്ക ഫോർമാറ്റ് പിന്തുണയ്ക്കുന്നില്ല',
+'editpage-notsupportedcontentformat-text' => 'ഉള്ളടക്കത്തിന്റെ ഫോർമാറ്റ് ആയ $1 ഉള്ളടക്ക രീതിയായ $2 പിന്തുണയ്ക്കുന്നില്ല.',
# Content models
'content-model-wikitext' => 'വിക്കിഎഴുത്ത്',
'search-result-score' => 'സാംഗത്യം: $1%',
'search-redirect' => '(തിരിച്ചുവിടൽ താൾ $1)',
'search-section' => '(വിഭാഗം $1)',
+'search-file-match' => '(പ്രമാണ ഉള്ളടക്കവുമായി ഒത്തുപോകുന്നുണ്ട്)',
'search-suggest' => 'താങ്കൾ ഉദ്ദേശിച്ചത് $1 എന്നാണോ',
'search-interwiki-caption' => 'സഹോദര സംരംഭങ്ങൾ',
'search-interwiki-default' => '$1 ഫലങ്ങൾ:',
'watchmethod-list' => 'ശ്രദ്ധിക്കുന്ന താളുകളിലെ പുതിയ മാറ്റങ്ങൾ പരിശോധിക്കുന്നു',
'watchlistcontains' => 'താങ്കൾ {{PLURAL:$1|താൾ|താളുകൾ}} ശ്രദ്ധിക്കുന്നുണ്ട്.',
'iteminvalidname' => "ഇനം '$1' ൽ പിഴവ്, അസാധുവായ പേര്...",
-'wlnote' => "$3, $4-നു കഴിഞ്ഞ {{PLURAL:$2|മണിക്കൂറിൽ|'''$2''' മണിക്കൂറിൽ}} നടന്ന {{PLURAL:$1|ഒരു പുതിയ മാറ്റം|'''$1''' പുതിയ മാറ്റങ്ങൾ}} താഴെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.",
+'wlnote2' => '$2, $3-നു കഴിഞ്ഞ {{PLURAL:$1|ഒരു മണിക്കൂറിലെ|<strong>$1</strong> മണിക്കൂറുകളിലെ}} മാറ്റങ്ങൾ താഴെക്കൊടുത്തിരിക്കുന്നു.',
'wlshowlast' => 'ഒടുവിലത്തെ $1 മണിക്കൂറുകൾ $2 ദിനങ്ങൾ, $3 പ്രദർശിപ്പിക്കുക',
'watchlist-options' => 'ശ്രദ്ധിക്കുന്ന താളുകളുടെ സജ്ജീകരണങ്ങൾ',
'range_block_disabled' => 'സിസോപ്പിനു റേഞ്ച് ബ്ലോക്കു ചെയ്യാനുള്ള സൗകര്യം ദുർബലപ്പെടുത്തുക.',
'ipb_expiry_invalid' => 'കാലാവധി സമയം അസാധുവാണ്.',
'ipb_expiry_temp' => 'മറയ്ക്കപ്പെട്ട ഉപയോക്തൃനാമങ്ങളിലുള്ള തടയൽ സ്ഥിരമായിരിക്കണം.',
-'ipb_hide_invalid' => 'ഈ അംഗത്വം ഒതുക്കാൻ കഴിയില്ല; അതിന് വളരെയധികം തിരുത്തലുകൾ ഉണ്ട്.',
+'ipb_hide_invalid' => 'ഈ അംഗത്വം ഒതുക്കാൻ കഴിയില്ല; അതിന് {{PLURAL:$1|ഒരു തിരുത്ത്|$1 തിരുത്തുകൾ}} ഉണ്ട്.',
'ipb_already_blocked' => '"$1" ഇതിനകം തന്നെ തടയപ്പെട്ടിരിക്കുന്നു.',
'ipb-needreblock' => '$1 നിലവിൽ തടയപ്പെട്ടതാണ്.<br />
താങ്കൾ സജ്ജീകരണത്തിൽ മാറ്റം വരുത്തുവാൻ ഉദ്ദേശിക്കുന്നുണ്ടോ?',
'allmessages-prefix' => 'പൂർവ്വപദത്തിനനുസരിച്ച് തിരഞ്ഞുവെയ്ക്കുക:',
'allmessages-language' => 'ഭാഷ:',
'allmessages-filter-submit' => 'പോകൂ',
+'allmessages-filter-translate' => 'പരിഭാഷപ്പെടുത്തുക',
# Thumbnails
'thumbnail-more' => 'വലുതാക്കി കാണിക്കുക',
'tooltip-pt-watchlist' => 'താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളിലെ മാറ്റങ്ങൾ',
'tooltip-pt-mycontris' => 'താങ്കളുടെ സേവനങ്ങളുടെ പട്ടിക',
'tooltip-pt-login' => 'ലോഗിൻ ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു; പക്ഷേ നിർബന്ധമല്ല',
-'tooltip-pt-anonlogin' => 'ലോഗിൻ ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു; പക്ഷേ നിർബന്ധമല്ല',
'tooltip-pt-logout' => 'ലോഗൗട്ട് ചെയ്യാനുള്ള കണ്ണി',
'tooltip-ca-talk' => 'വിവരദായക താളിനെക്കുറിച്ചുള്ള ചർച്ച',
'tooltip-ca-edit' => 'താങ്കൾക്ക് ഈ താൾ തിരുത്താവുന്നതാണ്. തിരുത്തിയ താൾ സേവ് ചെയ്യൂന്നതിനു മുൻപ് പ്രിവ്യൂ കാണുക.',
'tog-numberheadings' => 'Гарчигуудыг автоматаар дэс дугаарлах',
'tog-showtoolbar' => 'Засварлах түүлбарыг үзүүлэх (ЖаваСкрипт)',
'tog-editondblclick' => 'Хоёр удаа дараад хуудсыг засварлах (ЖаваСкрипт)',
-'tog-editsection' => '[Засварлах] линкээр хэсгийг засварладаг болгох',
'tog-editsectiononrightclick' => 'Хэсгийн гарчиг дээр баруун товчлуураар дарж засварладаг болгох (ЖаваСкрипт)',
-'tog-showtoc' => 'Агуулгын хүснэгтийг үзүүлэх (3-с илүү хэсэгтэй хуудсуудад)',
'tog-rememberpassword' => 'Энэхүү хөтөч дээрх нэвтрэлтийг санах (хамгийн ихдээ $1 {{PLURAL:$1|өдрийн|өдрийн}} турш)',
'tog-watchcreations' => 'Миний үүсгэсэн хуудсуудыг хянах жагсаалтанд оруулах',
'tog-watchdefault' => 'Миний засварласан хуудсуудыг хянах жагсаалтанд оруулах',
'tog-numberheadings' => 'शीर्षके स्वयंक्रमांकित करा',
'tog-showtoolbar' => 'संपादन साधनपट्टी दाखवा',
'tog-editondblclick' => 'दुबार-टिचकुन पान संपादित करा',
-'tog-editsection' => '[संपादन] दुव्यामार्फत विभाग संपादन करणे शक्य करा',
'tog-editsectiononrightclick' => 'विभाग शीर्षकावर उजव्या क्लिकने टिचकुन संपादन करणे शक्य करा',
-'tog-showtoc' => 'अनुक्रमणिका दाखवा(पानात ३ पेक्षा जास्त शीर्षके असल्यास)',
'tog-rememberpassword' => 'माझा सनोंदप्रवेश (लॉग-ईन) या न्याहाळकावर लक्षात ठेवा (जास्तीत जास्त $1 {{PLURAL:$1|दिवसासाठी|दिवसांसाठी}})',
'tog-watchcreations' => 'मी तयार केलेली पाने आणि चढविलेल्या संचिका माझ्या निरीक्षणसूचीत टाका',
'tog-watchdefault' => 'मी संपादित केलेली पाने आणि संचिका माझ्या निरीक्षणसूचीत टाका',
'watchmethod-list' => 'अलीकडील बदलांकरिता पहाऱ्यातील पानांचा तपास',
'watchlistcontains' => 'तुमचा $1 {{PLURAL:$1|पानावर|पानांवर}} पहारा आहे.',
'iteminvalidname' => "'$1'या बाबीसाठी समस्या, अवैध नाव...",
-'wlnote' => "खाली $3, $4 पर्यंतचे गेल्या {{PLURAL:$2| '''१''' तासातील|'''$2''' तासातील}} {{PLURAL:$1|शेवटचा बदल दिला आहे|शेवटाचे '''$1'''बदल दिले आहेत}}.",
'wlshowlast' => 'मागील $1 तास $2 दिवस $3 पहा',
'watchlist-options' => 'पहाऱ्याच्या सूचीचे पर्याय',
'delete-edit-reasonlist' => 'वगळण्याची कारणे संपादित करा',
'delete-toobig' => 'या पानाला, $1 {{PLURAL:$1|आवृत्ती|आवृत्त्यां}}मुळे तयार झालेला खूप मोठा संपादन इतिहास आहे. {{SITENAME}} वर आकस्मिक होणारी उलथापालथ वाचविण्यासाठी, अश्या पानांचे वगळणे प्रतिबंधित केल्या गेले आहे.',
'delete-warning-toobig' => 'या पानाला, $1 {{PLURAL:$1|आवृत्ती|आवृत्त्यां}}मुळे तयार झालेला खूप मोठा संपादन इतिहास आहे.त्याचे वगळण्याने {{SITENAME}} वर डाटाबेसच्या क्रियांची उलथापालथ होऊ शकते; सावधगिरीने पुढे जा.',
-'deleting-backlinks-warning' => "'''ईशारा:'''आपण वगळत असणाऱ्या पानास इतर पानांचे दुवे आहेत.",
+'deleting-backlinks-warning' => "'''ईशारा:''' आपण वगळत असणाऱ्या पानास दुसरी पाने जोडलेली किंवा आंतरविन्यासित आहेत.",
# Rollback
'rollback' => 'बदल वेगात माघारी न्या',
'range_block_disabled' => 'प्रचालकांची पल्ला बंधने घालण्याची क्षमता अनुपलब्ध केली आहे.',
'ipb_expiry_invalid' => 'अयोग्य समाप्ती काळ.',
'ipb_expiry_temp' => 'लपविलेले सदस्यनाम प्रतिबंधन कायमस्वरूपी असले पाहिजे.',
-'ipb_hide_invalid' => 'हà¥\87 à¤\96ात दाबणà¥\8dयासाठà¥\80 à¤\85समरà¥\8dथ; तà¥\8dयानà¥\87 à¤\85नà¥\87à¤\95 सà¤\82पादनà¥\87 à¤\95à¥\87लà¥\87लà¥\80 à¤\85सà¥\82 शà¤\95तात.',
+'ipb_hide_invalid' => 'हà¥\87 à¤\96ात दाबणà¥\8dयासाठà¥\80 à¤\85समरà¥\8dथ; तà¥\8dयात {{PLURAL:$1|à¤\8fà¤\95 सà¤\82पादन à¤\86हà¥\87|$1 सà¤\82पादनà¥\87 à¤\86हà¥\87त}}.',
'ipb_already_blocked' => '"$1" आधीच अवरूद्ध केलेले आहे.',
'ipb-needreblock' => '$1 आधीच प्रतिबंधित आहे . तुम्हाला त्याची सेटींग्स बदलण्याची इच्छा आहे का ?',
'ipb-otherblocks-header' => '{{PLURAL:$1|दुसरे प्रतिबंधन|इतर प्रतिबंधने}}',
'allmessages-prefix' => 'उपसर्गाने गाळा:',
'allmessages-language' => 'भाषा:',
'allmessages-filter-submit' => 'चला',
+'allmessages-filter-translate' => 'भाषांतर करा',
# Thumbnails
'thumbnail-more' => 'मोठे करा',
'tooltip-pt-watchlist' => 'तुम्ही पहारा दिलेल्या पानांची यादी',
'tooltip-pt-mycontris' => 'तुमच्या योगदानांची यादी',
'tooltip-pt-login' => 'आपणांस सदस्यत्व घेण्याची विनंती करण्यात येत आहे. सदस्यत्व घेणे अनिवार्य नाही.',
-'tooltip-pt-anonlogin' => 'आपण खात्यात दाखल व्हावे या करिता प्रोत्साहन देतो, अर्थात ते अत्यावश्यक नाही.',
'tooltip-pt-logout' => 'सनोंद निर्गम',
'tooltip-ca-talk' => 'आशय पानाबद्दलच्या चर्चा',
'tooltip-ca-edit' => 'तुम्ही हे पान बद्लू शकता. कृपया जतन करण्यापूर्वी झलक कळ वापरून पहा.',
* @author Kurniasan
* @author Meno25
* @author Putera Luqman Tunku Andre
+ * @author SNN95
* @author Urhixidur
* @author Yosri
* @author Zamwan
$messages = array(
# User preference toggles
-'tog-underline' => 'Gariskan pautan:',
+'tog-underline' => 'Garis bawah pautan:',
'tog-justify' => 'Laraskan perenggan',
'tog-hideminor' => 'Sembunyikan suntingan kecil dalam laman perubahan terkini',
'tog-hidepatrolled' => 'Sorokkan suntingan yang telah dironda daripada senarai perubahan terkini',
'tog-numberheadings' => 'Nomborkan tajuk secara automatik',
'tog-showtoolbar' => 'Tunjukkan palang sunting (perlukan JavaScript)',
'tog-editondblclick' => 'Dwiklik untuk sunting laman (JavaScript)',
-'tog-editsection' => 'Bolehkan penyuntingan bahagian melalui pautan [sunting]',
'tog-editsectiononrightclick' => 'Bolehkan penyuntingan bahagian dengan mengklik kanan pada tajuk bahagian',
-'tog-showtoc' => 'Tunjukkan isi kandungan (bagi rencana yang melebihi 3 tajuk)',
'tog-rememberpassword' => 'Ingat log masuk saya di pelayar ini (tidak melebihi $1 {{PLURAL:$1|hari|hari}})',
'tog-watchcreations' => 'Tambahkan laman yang saya buat dan fail yang saya muat naik ke dalam senarai pantau',
'tog-watchdefault' => 'Tambahkan laman dan fail yang saya sunting ke dalam senarai pantau',
'content-not-allowed-here' => 'Kandungan "$1" tidak dibenarkan di halaman [[$2]]',
'editwarning-warning' => 'Meninggalkan laman ini mungkin akan menyebabkan sebarang perubahan yang telah anda lakukan hilang.
Jika anda sudah log masuk, anda boleh melumpuhkan amaran ini di bahagian "Menyunting" dalam keutamaan anda.',
+'editpage-notsupportedcontentformat-title' => 'Format kandungan tidak disokong',
+'editpage-notsupportedcontentformat-text' => 'Format kandungan $1 tidak disokong oleh model kandungan $2.',
# Content models
'content-model-wikitext' => 'wikiteks',
'search-result-score' => 'Kaitan: $1%',
'search-redirect' => '(pelencongan $1)',
'search-section' => '(bahagian $1)',
+'search-file-match' => '(sepadan dengan kandungan fail)',
'search-suggest' => 'Maksud anda, $1?',
'search-interwiki-caption' => 'Projek-projek lain',
'search-interwiki-default' => 'Keputusan daripada $1:',
'fileexists-shared-forbidden' => 'Sebuah fail dengan nama ini telah pun wujud dalam gedung fail kongsi. Jika anda masih mahu memuat naik fail ini, sila kembali ke borang muat naik dan gunakan nama lain. [[File:$1|thumb|center|$1]]',
'file-exists-duplicate' => 'Fail ini adalah salinan bagi {{PLURAL:$1|fail|fail-fail}} berikut:',
'file-deleted-duplicate' => 'Sebuah fail yang serupa dengan fail ini ([[:$1]]) telah pun dihapuskan sebelum ini. Anda seharusnya memeriksa sejarah penghapusan fail itu terlebih dahulu sebelum memuat naiknya sekali lagi.',
+'file-deleted-duplicate-notitle' => 'Satu fail yang seiras dengan fail ini telah dihapuskan dahulu, maka judulnya telah disekat. Anda harus meminta sesiapa yang boleh melihat data fail yang disekat untuk meneliti situasinya sebelum cuba memuat naiknya semula.',
'uploadwarning' => 'Amaran muat naik',
'uploadwarning-text' => 'Sila ubah keterangan fail di bawah dan cuba lagi.',
'savefile' => 'Simpan fail',
'protectedpages' => 'Laman dilindungi',
'protectedpages-indef' => 'Perlindungan tanpa had sahaja',
'protectedpages-cascade' => 'Perlindungan separa sahaja',
+'protectedpages-noredirect' => 'Sorokkan lencongan',
'protectedpagesempty' => 'Tiada laman yang dilindungi dengan kriteria ini.',
'protectedtitles' => 'Tajuk dilindungi',
'protectedtitlesempty' => 'Tiada tajuk yang dilindungi yang sepadan dengan kriteria yang diberikan.',
'watchmethod-list' => 'menyemak suntingan terkini pada laman-laman yang dipantau',
'watchlistcontains' => 'Terdapat $1 laman dalam senarai pantau anda.',
'iteminvalidname' => "Terdapat masalah dengan item '$1', nama tidak sah...",
-'wlnote' => "Berikut ialah {{PLURAL:$1|perubahan|'''$1''' perubahan}} yang terkini dalam {{PLURAL:$2|sejam|'''$2''' jam}} yang lalu, tepat pada $3, $4.",
'wlshowlast' => 'Tunjukkan $1 jam / $2 hari yang lalu / $3.',
'watchlist-options' => 'Pilihan senarai pantau',
'delete-edit-reasonlist' => 'Ubah sebab-sebab hapus',
'delete-toobig' => 'Laman ini mempunyai sejarah yang besar, iaitu melebihi $1 jumlah semakan. Oleh itu, laman ini dilindungi daripada dihapuskan untuk mengelak kerosakan di {{SITENAME}} yang tidak disengajakan.',
'delete-warning-toobig' => 'Laman ini mempunyai sejarah yang besar, iaitu melebihi $1 jumlah semakan. Menghapuskannya boleh mengganggu perjalanan pangkalan data {{SITENAME}}. Sila berhati-hati.',
-'deleting-backlinks-warning' => "'''Amaran:''' Terdapat halaman-halaman lain yang berpaut pada halaman yang hendak anda hapus itu.",
+'deleting-backlinks-warning' => "'''Amaran:''' Terdapat halaman-halaman lain yang berpaut atau bertransklusi dengan halaman yang hendak anda hapus itu.",
# Rollback
'rollback' => 'Undurkan suntingan.',
<br />Sila lihat [[Special:BlockList|senarai sekatan]] untuk menyemak sekatan.',
'ipb-blockingself' => 'Anda akan menyekat diri sendiri! Pastikah anda mahu berbuat demikian?',
'ipb-confirmhideuser' => 'Anda akan menyekat seorang pengguna yang menghidupkan "sorokkan pengguna". Ini akan menindaskan nama pengguna itu di semua senarai dan entri log. Pastikah anda mahu berbuat demikian?',
+'ipb-confirmaction' => 'Jika anda benar-benar ingin melakukannya, sila tanda ruangan "{{int:ipb-confirm}}" di bawah.',
'ipb-edit-dropdown' => 'Sunting sebab sekatan',
'ipb-unblock-addr' => 'Nyahsekat $1',
'ipb-unblock' => 'Nyahsekat nama pengguna atau alamat IP',
'range_block_disabled' => 'Kebolehan penyelia untuk membuat sekatan julat dimatikan.',
'ipb_expiry_invalid' => 'Waktu tamat tidak sah.',
'ipb_expiry_temp' => 'Sekatan nama pengguna terselindung sepatutnya kekal.',
-'ipb_hide_invalid' => 'Tidak dapat menahan akaun ini; ia mungkin mempunyai terlalu banyak suntingan.',
+'ipb_hide_invalid' => 'Akaun ini tidak dapat disekat kerana mempunyai lebih daripada $1 suntingan.',
'ipb_already_blocked' => '"$1" sudah disekat',
'ipb-needreblock' => '$1 telah pun disekat Adakah anda mahu menukar tetapan sekatan pengguna ini?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Sekatan|Sekatan-sekatan}} lain',
'tooltip-pt-watchlist' => 'Senarai laman yang anda pantau',
'tooltip-pt-mycontris' => 'Senarai sumbangan anda',
'tooltip-pt-login' => 'Walaupun tidak wajib, anda digalakkan supaya log masuk.',
-'tooltip-pt-anonlogin' => 'Walaupun tidak wajib, anda digalakkan supaya log masuk.',
'tooltip-pt-logout' => 'Log keluar',
'tooltip-ca-talk' => 'Perbincangan mengenai laman kandungan',
'tooltip-ca-edit' => "Anda boleh menyunting laman ini. Sila tekan butang 'pralihat' terlebih dahulu sebelum menyimpan.",
'version-hook-name' => 'Nama penyangkuk',
'version-hook-subscribedby' => 'Dilanggan oleh',
'version-version' => '(Versi $1)',
-'version-license' => 'Lesen',
+'version-license' => 'Lesen MediaWiki',
+'version-ext-license' => 'Lesen',
+'version-ext-colheader-name' => 'Sambungan',
+'version-ext-colheader-version' => 'Versi',
+'version-ext-colheader-license' => 'Lesen',
+'version-ext-colheader-description' => 'Keterangan',
+'version-ext-colheader-credits' => 'Pengarang',
+'version-license-title' => 'Lesen untuk $1',
+'version-license-not-found' => 'Tidak terdapat maklumat lesen yang terperinci untuk sambungan ini.',
+'version-credits-title' => 'Kredit untuk$1',
+'version-credits-not-found' => 'Tidak terdapat maklumat penghargaan yang terperinci untuk sambungan ini.',
'version-poweredby-credits' => "Wiki ini dikuasakan oleh '''[https://www.mediawiki.org/ MediaWiki]''', hak cipta © 2001-$1 $2.",
'version-poweredby-others' => 'penyumbang-penyumbang lain',
'version-poweredby-translators' => 'para penterjemah translatewiki.net',
'api-error-overwrite' => 'Menulis ganti fail yang telah wujud adalah tidak dibenarkan.',
'api-error-stashfailed' => 'Ralat dalaman: pelayan tidak dapat menyimpan fail sementara.',
'api-error-publishfailed' => 'Ralat dalaman: Pelayan tidak dapat menerbitkan fail sementara.',
+'api-error-stasherror' => 'Terdapat ralat ketika menyimpan fail yang dimuat naik.',
'api-error-timeout' => 'Pelayan tidak bergerak balas dalam tempoh yang diharapkan.',
'api-error-unclassified' => 'Berlakunya ralat yang tidak diketahui',
'api-error-unknown-code' => 'Ralat tidak diketahui: "$1"',
'expand_templates_generate_rawhtml' => 'Paparkan HTML mentah',
'expand_templates_preview' => 'Pralihat',
+# Unknown messages
+'uploadinvalidxml' => 'XML dalam fail yang dimuat naik ini tidak dapat dihuraikan.',
);
'tog-numberheadings' => 'Numerazzjoni awtomatika tat-titli tas-sezzjonijiet',
'tog-showtoolbar' => 'Uri l-kolonna tal-għodda għall-immodifikar (bżonn tal-JavaScript)',
'tog-editondblclick' => "Immodifika l-paġni permezz ta' klikk doppju (bżonn tal-JavaScript)",
-'tog-editsection' => 'L-immodifikar tas-sezzjonijiet permezz tal-ħolqa [editja]',
'tog-editsectiononrightclick' => "L-immodifikar ta' sezzjonijiet bi klikk lemini fuq it-titli tas-sezzjonijiet (bżonn tal-JavaScript)",
-'tog-showtoc' => "Uri l-werrej (għal paġni b'iktar minn 3 sezzjonijiet)",
'tog-rememberpassword' => "Ftakar il-login tiegħi fuq dan il-browżer (għal massimu ta' {{PLURAL:$1|ġurnata|$1 ġurnata}})",
'tog-watchcreations' => "Żid il-paġni li noħloq u l-fajls li ntella' fil-lista ta' osservazzjoni tiegħi",
'tog-watchdefault' => "Żid il-paġni u l-fajls li nimmodifika fil-lista ta' osservazzjoni personali",
'tog-numberheadings' => 'Autonummerer overskrifter',
'tog-showtoolbar' => 'Vis verktøylinje',
'tog-editondblclick' => 'Rediger sider ved å dobbeltklikke',
-'tog-editsection' => 'Rediger avsnitt ved hjelp av [rediger]-lenke',
'tog-editsectiononrightclick' => 'Rediger avsnitt ved å høyreklikke på avsnittsoverskrift',
-'tog-showtoc' => 'Vis innholdsfortegnelse (for sider med flere enn tre avsnitt)',
'tog-rememberpassword' => 'Husk meg i denne nettleseren (i høyst $1 {{PLURAL:$1|dag|dager}})',
'tog-watchcreations' => 'Legg til sider jeg oppretter og filer jeg laster opp i min overvåkingsliste',
'tog-watchdefault' => 'Legg til sider og filer jeg endrer på i min overvåkingsliste',
'retypenew' => 'Gjenta nytt passord:',
'resetpass_submit' => 'Angi passord og logg inn',
'changepassword-success' => 'Passordet ditt ble korrekt endret!',
+'changepassword-throttled' => 'Du har foretatt for mange nylige innloggingsforsøk.
+Vær vennlig å vente $1 før du prøver igjen.',
'resetpass_forbidden' => 'Passord kan ikke endres',
'resetpass-no-info' => 'Du må være logget inn for å gå til denne siden direkte',
'resetpass-submit-loggedin' => 'Endre passord',
'changeemail-password' => 'Ditt passord på {{SITENAME}}:',
'changeemail-submit' => 'Endre e-post',
'changeemail-cancel' => 'Avbryt',
+'changeemail-throttled' => 'Du har foretatt for mange innloggingsforsøk. Vær vennlig å vente $1 før du prøver igjen.',
# Special:ResetTokens
'resettokens' => 'Nullstill merker',
'search-result-score' => 'Relevans: $1 %',
'search-redirect' => '(omdirigering $1)',
'search-section' => '(avsnitt $1)',
+'search-file-match' => '(matcher filinnhold)',
'search-suggest' => 'Mente du: $1',
'search-interwiki-caption' => 'Søsterprosjekter',
'search-interwiki-default' => '$1-resultater:',
'watchmethod-list' => 'sjekker siste endringer for sider i overvåkningslisten',
'watchlistcontains' => 'Overvåkningslisten inneholder $1 {{PLURAL:$1|side|sider}}.',
'iteminvalidname' => 'Problem med «$1», ugyldig navn …',
-'wlnote' => "Nedenfor er {{PLURAL:$1|den siste endringen|de siste '''$1''' endringene}} {{PLURAL:$2|den siste timen|de siste '''$2''' timene}}, fra den $3, kl. $4",
+'wlnote2' => 'Nedenfor er endringene {{PLURAL:$1|den siste timen|de siste <strong>$1</strong> timene}}, per $2 $3.',
'wlshowlast' => 'Vis siste $1 timer $2 dager $3',
'watchlist-options' => 'Alternativ for overvåkningslisten',
'delete-edit-reasonlist' => 'Rediger begrunnelser for sletting',
'delete-toobig' => 'Denne siden har en stor redigeringshistorikk, med over {{PLURAL:$1|$1 revisjon|$1 revisjoner}}. Muligheten til å slette slike sider er begrenset for å unngå utilsiktet forstyrring av {{SITENAME}}.',
'delete-warning-toobig' => 'Denne siden har en stor redigeringshistorikk, med over {{PLURAL:$1|$1 revisjon|$1 revisjoner}}. Sletting av denne siden kan forstyrre databasen til {{SITENAME}}; vær varsom.',
-'deleting-backlinks-warning' => "'''Advarsel:''' Andre sider har lenker til den siden du skal til å slette.",
+'deleting-backlinks-warning' => "'''Advarsel:''' Andre sider linker til eller inkluderer siden du er i ferd med å slette.",
# Rollback
'rollback' => 'Fjern redigeringer',
'range_block_disabled' => 'Muligheten til å blokkere flere IP-adresser om gangen er slått av.',
'ipb_expiry_invalid' => 'Ugyldig utløpstid.',
'ipb_expiry_temp' => 'For å skjule brukernavnet må blokkeringen være permanent.',
-'ipb_hide_invalid' => 'Kan ikke skjule denne kontoen. Den kan ha for mange redigeringer.',
+'ipb_hide_invalid' => 'Denne kontoen kan ikke skjules; den har mer enn {{PLURAL:$1|én redigering|$1 redigeringer}}.',
'ipb_already_blocked' => '«$1» er allerede blokkert',
'ipb-needreblock' => '$1 er blokkert fra før. Vil du endre innstillingene?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Annen blokkering|Andre blokkeringer}}',
'allmessages-prefix' => 'Filtrer etter prefiks:',
'allmessages-language' => 'Språk:',
'allmessages-filter-submit' => 'Gå',
+'allmessages-filter-translate' => 'Oversett',
# Thumbnails
'thumbnail-more' => 'Forstørr',
'tooltip-pt-watchlist' => 'Liste over sider du overvåker for endringer.',
'tooltip-pt-mycontris' => 'Liste over dine bidrag',
'tooltip-pt-login' => 'Du oppfordres til å logge inn, men det er ikke obligatorisk',
-'tooltip-pt-anonlogin' => 'Du oppfordres til å logge inn, men det er ikke obligatorisk.',
'tooltip-pt-logout' => 'Logg ut',
'tooltip-ca-talk' => 'Diskusjon om innholdssiden',
'tooltip-ca-edit' => 'Du kan redigere denne siden. Vennligst bruk forhåndsvisningsknappen før du lagrer.',
'tog-numberheadings' => 'Överschrieven automatsch nummereern',
'tog-showtoolbar' => 'Editeer-Warktüüchlist wiesen',
'tog-editondblclick' => 'Sieden mit Dubbelklick ännern (JavaScript)',
-'tog-editsection' => 'Links för dat Ännern vun en Afsatz wiesen',
'tog-editsectiononrightclick' => 'En Afsatz mit en Rechtsklick ännern (Javascript)',
-'tog-showtoc' => "Wiesen vun'n Inholtsverteken bi Sieten mit mehr as dree Överschriften",
'tog-rememberpassword' => 'Duersam inloggen (för maximaal $1 {{PLURAL:$1|Dag|Daag}})',
'tog-watchcreations' => 'Nee schrevene Sieden op miene Oppasslist setten',
'tog-watchdefault' => 'Op ne’e un ännerte Sieden oppassen',
'tog-numberheadings' => 'Koppen vanzelf nummeren',
'tog-showtoolbar' => 'Laot de warkbalke zien',
'tog-editondblclick' => 'Mit dubbelklik bewarken',
-'tog-editsection' => 'Mit bewarkgedeelten',
'tog-editsectiononrightclick' => 'Bewarken van deelziejen meugelik maken mit n rechtermuusklik op n tussenkop',
-'tog-showtoc' => 'Samenvatting laoten zien van de zaken die an bod koemen (mit meer as dree onderwarpen)',
'tog-rememberpassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
'tog-watchcreations' => "Spul wa'k anmake op mien volglieste zetten",
'tog-watchdefault' => "Spul wa'k bewarke op mien volglieste zetten",
* @author Kaganer
* @author Krish Dulal
* @author Lkhatiwada
+ * @author Nirmal Dulal
* @author RajeshPandey
* @author Reedy
* @author ne.wikipedia.org sysops
'tog-numberheadings' => 'शीर्षकहरुलाई स्वत:अङ्कित गर्नुहोस्',
'tog-showtoolbar' => 'सम्पादन औजारबट्टा देखाउने',
'tog-editondblclick' => 'दोहोरो क्लिकमा पृष्ठ सम्पादन गर्ने',
-'tog-editsection' => '[सम्पादन] सम्बन्ध मार्फत हुने खण्ड सम्पादनलाई सक्षम पार्ने',
'tog-editsectiononrightclick' => 'शीर्षकमा दाहिने क्लिकद्वारा खण्ड सम्पादन सक्षम पार्ने',
-'tog-showtoc' => 'सामग्री तालिका हेर्ने (तीन भन्दा बढी शीर्षक भएमा)',
'tog-rememberpassword' => 'यस ब्राउजरमा मेरो प्रवेशलाई सम्झनुहोस् (अधिकतम $1 {{PLURAL:$1|दिन|दिनहरु}} सम्म)',
'tog-watchcreations' => 'मेरो निगरानी सूचीमा मैले सृजना गरेको पृष्ठ र अपलोड जोड्ने',
'tog-watchdefault' => 'मैले सम्पादन गरेको पृष्ठ र फाइल निगरानी सूचीमा थप्ने',
'category-file-count' => '{{PLURAL:$2|यो श्रेणीमा निम्न फाइल मात्र छ ।|निम्न श्रेणीमा {{PLURAL:$1|फाइल|$1 फाइलहरु}} , कुल $2 मध्ये रहेको ।}}',
'category-file-count-limited' => 'निम्न {{PLURAL:$1|फाइल|$1 फाइलहरु}} यस श्रेणीमा रहेको ।',
'listingcontinuesabbrev' => 'निरन्तरता...',
-'index-category' => 'à¤\95à¥\8dरमाà¤\99à¥\8dà¤\95ित पà¥\83षà¥\8dठहरà¥\81',
-'noindex-category' => 'à¤\95à¥\8dरमाà¤\82à¤\95न नà¤\97रिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81',
+'index-category' => 'à¤\95à¥\8dरमाà¤\99à¥\8dà¤\95ित पà¥\83षà¥\8dठहरà¥\82',
+'noindex-category' => 'à¤\95à¥\8dरमाà¤\82à¤\95न नà¤\97रिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82',
'broken-file-category' => 'टुटेको फाइल लिंकसितको पृष्ठ',
'about' => 'बारेमा',
'''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
'userjspreview' => "'''याद राख्नुहोस तपाईँले आफ्नो प्रयोगकर्ता JavaScript को पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''
'''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
-'sitecsspreview' => "'''याद राख्नुहोस तपाईँले केवल वैश्विक CSS. को पूर्वावलोकन मात्र अवलोकन गर्नु भएको छ। '''
-'''यसलाà¤\87 à¤\85हिलà¥\87 सम्म संग्रह गरिएको छैन!'''",
+'sitecsspreview' => "'''याद राख्नुहोस् तपाईँले केवल विश्वव्यापी CSS. को पूर्वावलोकन मात्र अवलोकन गर्नुभएको छ। '''
+'''यसलाà¤\88 à¤\85हिलà¥\87सम्म संग्रह गरिएको छैन!'''",
'sitejspreview' => "याद राख्नुहोस तपाईँले केवल JavaScript code को पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''
'''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
'userinvalidcssjstitle' => "'''चेतावनी:''' यहाँ कुनैपनि \"\$1\" नामको स्कीन छैन ।
'post-expand-template-inclusion-category' => 'पृष्ठहरु जहाँ समेटिएको टेम्पलेट आकार हुनुपर्ने भन्दा बढि छ ।',
'post-expand-template-argument-warning' => "'''चेतावनी:''' यो पृष्ठकमा कम्तिमा एक टेम्प्लेट मान रहेको छ जसको धेरै ठूलो बढोत्तरी आकार रहेको छ।
यस्ता मानहरु हटाइएका छन् ।",
-'post-expand-template-argument-category' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा ढाà¤\81à¤\9aाहरà¥\81सà¤\81à¤\97 समà¥\8dबनà¥\8dध रहà¥\87à¤\95ा पà¥\83षà¥\8dठहरà¥\81',
+'post-expand-template-argument-category' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा ढाà¤\81à¤\9aाहरà¥\82सà¤\81à¤\97 समà¥\8dबनà¥\8dध रहà¥\87à¤\95ा पà¥\83षà¥\8dठहरà¥\82',
'parser-template-loop-warning' => 'ढाँचागत ग़ाँठो पर्यो : [[$1]]',
'parser-template-recursion-depth-warning' => 'ढाँचा पुन:चक्र गहिराई सिमा ($1) भन्दा बढि भयो',
'language-converter-depth-warning' => 'भाषा परिवर्तनकर्ता गहिराई ($1) नाघेको छ',
'search-section' => '(खण्ड $1)',
'search-suggest' => 'के तपाईको खोजाई : $1 हो?',
'search-interwiki-caption' => 'भगिनी आयोजना',
-'search-interwiki-default' => '$1 नतिà¤\9cाहरà¥\81:',
+'search-interwiki-default' => '$1 नतिà¤\9cाहरà¥\82:',
'search-interwiki-more' => '(अझै)',
'search-relatedarticle' => 'सम्बन्धित',
'searcheverything-enable' => 'सबै नेमस्पेसेजहरुमा खोज्नुहोस्',
'searchrelated' => 'सम्बन्धित',
'searchall' => 'सबै',
-'showingresults' => "दà¥\87à¤\96ाà¤\89दà¥\88 {{PLURAL:$1|'''१''' नतिà¤\9cा|'''$1''' नतिà¤\9cाहरà¥\81 }} , #'''$2''' बाट सुरुहुने ।",
+'showingresults' => "दà¥\87à¤\96ाà¤\89à¤\81दà¥\88 {{PLURAL:$1|'''१''' नतिà¤\9cा|'''$1''' नतिà¤\9cाहरà¥\82 }} , #'''$2''' बाट सुरुहुने ।",
'showingresultsnum' => "तल देखाउदै {{PLURAL:$3|'''१''' नतिजा|'''$3''' नतिजाहरु }}, #'''$2''' बाट सुरुहुने ।",
'showingresultsheader' => "{{PLURAL:$5|नतिजा '''$1''' को '''$3'''|नतिजाहरु '''$1 - $2''' को'''$3'''}} ,'''$4''' को लागि",
'search-nonefound' => 'तपाईँको क्वेरीसँग मेल खाने नतिजाहरू भेटिएनन्',
याद गर्नुहोस् उनीहरुको {{SITENAME}}को सूची सामग्री पुरानो भएको हुनसक्छ ।',
# Preferences page
-'preferences' => 'रà¥\8bà¤\9cाà¤\88हरू',
+'preferences' => 'रà¥\8bà¤\9cाà¤\87हरू',
'mypreferences' => 'प्राथमिकताहरु',
'prefs-edits' => 'सम्पादन संख्या:',
'prefs-skin' => 'काँचुली',
'prefs-watchlist-edits-max' => 'उच्चतम संख्या : १०००',
'prefs-watchlist-token' => 'अवलोकन सूची टोकन:',
'prefs-misc' => 'साधारण',
-'prefs-resetpass' => 'प्रवेशशव्द परिवर्रतन',
+'prefs-resetpass' => 'प्रवेश शब्द परिवर्तन',
'prefs-changeemail' => 'इमेल परिवर्तन गर्ने',
'prefs-setemail' => 'इमेल ठेगाना प्रविष्ट गर्ने',
'prefs-email' => 'इमेल विकल्पहरु',
'right-createtalk' => 'छलफल पृष्ठ सृजना गर्नुहोस्',
'right-createaccount' => 'नयाँ प्रयोगकर्ता खाता सृजना गर्नुहोस्।',
'right-minoredit' => 'सम्पादनलाई सामान्य चिनो लगाउने',
-'right-move' => 'पà¥\83षà¥\8dठहरà¥\81 सार्ने',
+'right-move' => 'पà¥\83षà¥\8dठहरà¥\82 सार्ने',
'right-move-subpages' => 'तिनीहरुको सह-पृष्ठसहित पृष्ठहरु सार्ने',
'right-move-rootuserpages' => 'मूल(root) प्रयोगकर्ताको पृष्ठहरु सार्ने',
'right-movefile' => 'फाइलहरु सार्ने',
'right-bot' => 'स्वाचालित कार्यको रुपमा व्यवहार गर्ने',
'right-apihighlimits' => 'API खोजको लागि उच्च सीमा प्रयोग गर्नुहोस्',
'right-writeapi' => 'लेखन API प्रयोग गर्ने',
-'right-delete' => 'पà¥\83षà¥\8dठहरà¥\81 मेट्ने',
+'right-delete' => 'पà¥\83षà¥\8dठहरà¥\82 मेट्ने',
'right-bigdelete' => 'लामो इतिहासहरु भएको पृष्ठहरु मेट्ने',
'right-deleterevision' => 'खुलाइएको पृष्ठहरु मेटाउने र मेटाएको रद्द गर्ने',
'right-deletedhistory' => 'मेटाइएको इतिहास प्रविष्टीहरु हेर्ने, तिनीहरुसँग सम्बद्ध पाठ बिना',
'right-deletedtext' => 'मेटाइएका संशोधन बीचका मेटाइएका पाठ र परिवर्तनहरु हेर्ने',
-'right-browsearchive' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81 खोज्ने',
+'right-browsearchive' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82 खोज्ने',
'right-undelete' => 'मेटेको पृष्ठ फिर्तागर्ने',
'right-suppressrevision' => 'प्रबन्धकहरुबाट लुकाइएको पुनरावलोकनहरु पूर्वालोकन गर्ने र पुरानो स्थितिमा फर्काउने',
'right-suppressionlog' => 'व्यक्तिगत लगहरु हेर्ने',
'action-minoredit' => 'यस सम्पादनलाई साधारणको रुपमा चिनो लगाउने',
'action-move' => 'यो पृष्ठलाई सर्ने',
'action-move-subpages' => 'यो पृष्ठ र यसका सह पृष्ठहरुलाई सर्ने',
-'action-move-rootuserpages' => 'मà¥\82ल पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता पà¥\83षà¥\8dठहरà¥\81 सार्ने',
+'action-move-rootuserpages' => 'मà¥\82ल पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता पà¥\83षà¥\8dठहरà¥\82 सार्ने',
'action-movefile' => 'यो फाइल सार्ने',
'action-upload' => 'यो फाइल अपलोड गर्ने',
'action-reupload' => 'रहिआएको फाइल अधिलेखन गर्ने',
'action-delete' => 'यो पृष्ठ मेट्ने',
'action-deleterevision' => 'यो पुनरावलोकन मेट्ने',
'action-deletedhistory' => 'यो पृष्ठको मेटाइएको इतिहास हेर्ने',
-'action-browsearchive' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81 खोज्ने',
+'action-browsearchive' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82 खोज्ने',
'action-undelete' => 'यो पृष्ठ लाइ पुन:स्थापना गर्ने',
'action-suppressrevision' => 'यो लुकाइएको पुनरावलोकनको पुर्वालोकन गर्ने र पुनरावृत्ति गर्ने',
'action-suppressionlog' => 'यो व्यक्तिगत लग हेर्ने',
'download' => 'डाउनलोड',
# Unwatched pages
-'unwatchedpages' => 'धà¥\8dयान नदिà¤\87à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81',
+'unwatchedpages' => 'धà¥\8dयान नदिà¤\87à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82',
# List redirects
'listredirects' => 'अनुप्रेषित सूची',
'statistics-header-pages' => 'पृष्ठहरुको तथ्याङ्क',
'statistics-header-edits' => 'सम्पादनहरुको तथ्याङ्क',
'statistics-header-views' => 'तथ्याङ्क देखाउनुहोस्',
-'statistics-header-users' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता तथà¥\8dयाà¤\99à¥\8dà¤\95हरà¥\81',
+'statistics-header-users' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता तथà¥\8dयाà¤\99à¥\8dà¤\95हरà¥\82',
'statistics-header-hooks' => 'अन्य तथ्याङ्कहरु',
'statistics-articles' => 'सामग्री पृष्ठहरू',
-'statistics-pages' => 'पà¥\83षà¥\8dठहरà¥\81',
-'statistics-pages-desc' => 'विà¤\95िà¤\95ा सबà¥\88 पà¥\83षà¥\8dठहरà¥\81 , वारà¥\8dतापà¤\95ा पà¥\83षà¥\8dठहरà¥\81 समà¥\87त , रिडाà¤\87रà¥\87à¤\95à¥\8dà¤\9f , इत्यादि ।',
+'statistics-pages' => 'पà¥\83षà¥\8dठहरà¥\82',
+'statistics-pages-desc' => 'विà¤\95िà¤\95ा सबà¥\88 पà¥\83षà¥\8dठहरà¥\82, वारà¥\8dतापà¤\95ा पà¥\83षà¥\8dठहरà¥\82समà¥\87त, रिडाà¤\87रà¥\87à¤\95à¥\8dà¤\9f, इत्यादि ।',
'statistics-files' => 'उर्ध्वभरण गरिएका फाइलहरु',
'statistics-edits' => '{{SITENAME}} स्थापना भए देखिको पृष्ठ सम्पादन',
'statistics-edits-average' => 'प्रतिपृष्ठ औसत सम्पादन',
'brokenredirects-edit' => 'सम्पादन',
'brokenredirects-delete' => 'मेट्ने',
-'withoutinterwiki' => 'à¤à¤¾à¤·à¤¾ नà¤à¤\8fà¤\95à¥\8b पà¥\83षà¥\8dठहरà¥\81',
+'withoutinterwiki' => 'à¤à¤¾à¤·à¤¾ नà¤à¤\8fà¤\95à¥\8b पà¥\83षà¥\8dठहरà¥\82',
'withoutinterwiki-summary' => 'यी पानाहरूले अन्य भाषाका संस्करणहरूमा संबन्ध राखेका छैनन्:',
'withoutinterwiki-legend' => 'पहिले आउने',
'withoutinterwiki-submit' => 'देखाउने',
-'fewestrevisions' => 'थà¥\8bरà¥\88 पà¥\81नरावलà¥\8bà¤\95न à¤à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81',
+'fewestrevisions' => 'थà¥\8bरà¥\88 पà¥\81नरावलà¥\8bà¤\95न à¤à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82',
# Miscellaneous special pages
'nbytes' => '$1 {{PLURAL:$1|बाइट|बाइटहरू}}',
'ntransclusions' => '$1 {{PLURAL:$1पृष्ठमा प्रयोग गरिएको|पृष्ठहरुमा प्रयोग गरिएका}}',
'specialpage-empty' => 'यो पृष्ठ खाली छ।',
'lonelypages' => 'अनाथ पृष्ठहरू',
-'uncategorizedpages' => 'शà¥\8dरà¥\87णà¥\80à¤\95रण नà¤à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81',
+'uncategorizedpages' => 'शà¥\8dरà¥\87णà¥\80à¤\95रण नà¤à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82',
'uncategorizedcategories' => 'श्रेणीकरण नभएका श्रेणीहरू',
'uncategorizedimages' => 'श्रेणीकरण नभएका फाइलहरु',
'uncategorizedtemplates' => 'श्रेणीकरण नभएका टेम्प्लेटहरु',
'mostrevisions' => 'सबैभन्दा बढी संशोधित लेखहरू',
'prefixindex' => 'प्रिफिक्स सहितका पृष्ठहरु',
'shortpages' => 'छोटा पृष्ठहरू',
-'longpages' => 'लामà¥\8b पà¥\83षà¥\8dठहरà¥\81',
-'deadendpages' => 'हदà¥\88-à¤\85नà¥\8dतà¤\95ि पà¥\83षà¥\8dठहरà¥\81',
+'longpages' => 'लामा पà¥\83षà¥\8dठहरà¥\82',
+'deadendpages' => 'मà¥\8dयाद सà¤\95िà¥\87à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82',
'deadendpagestext' => 'निम्न पृष्ठहरु {{SITENAME}}मा रहेका अरु पृष्ठहरुसँग जोडिदैनन् ।',
'protectedpages' => 'संरक्षित पृष्ठहरू',
'protectedpages-indef' => 'नखुलेको सुरक्षा मात्र',
'nextpage' => 'अर्को पृष्ठ ($1)',
'prevpage' => 'पहिलो पृष्ठ ($1)',
'allpagesfrom' => 'यहाँदेखि शुरु हुने पृष्ठहरू देखाउनुहोस्:',
-'allpagesto' => 'निमà¥\8dनमा à¤\85नà¥\8dतहà¥\81नà¥\87 पà¥\83षà¥\8dठहरà¥\81 देखाउने:',
+'allpagesto' => 'निमà¥\8dनमा à¤\85नà¥\8dतहà¥\81नà¥\87 पà¥\83षà¥\8dठहरà¥\82 देखाउने:',
'allarticles' => 'सबै लेखहरू',
-'allinnamespace' => 'सबà¥\88 पà¥\83षà¥\8dठहरà¥\81 ($1 नेमस्पेस)',
+'allinnamespace' => 'सबà¥\88 पà¥\83षà¥\8dठहरà¥\82 ($1 नेमस्पेस)',
'allpagessubmit' => 'जाने',
'allpagesprefix' => 'यी सुरुका अक्षरसहितका पृष्ठहरु हेर्ने:',
'allpagesbadtitle' => 'दिएको पृष्ठ शीर्षक अमान्य, खाली वा गलत रुपमा अन्तर भाषा वा अन्तर विकी सम्बन्ध गरिएको थियो।
'emailpage' => 'प्रयोगकर्तालाई इमेल गर्नुहोस्',
'usermailererror' => 'मेल अब्जेक्टले देखाएको त्रुटि:',
'defemailsubject' => '{{SITENAME}} प्रयपोगकर्ता "$1" बाट इमेल',
-'usermaildisabled' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤\88-मेल निरस्त गरिएको',
+'usermaildisabled' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤\87मेल निरस्त गरिएको',
'usermaildisabledtext' => 'यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न',
'noemailtitle' => 'ईमेल ठेगाना नभएको',
'noemailtext' => 'प्रयोगकर्ताले सही ई-मेल ठेगाना दर्शाएको छैन।',
'watchmethod-list' => 'सम्पदान गरिएका निगरानी सुचीमा रहेका पृष्ठहरुको सम्पादन जाँच्दै',
'watchlistcontains' => 'तपाईको निगरानी सुचीमा $1 {{PLURAL:$1|पृष्ठ|पृष्ठहरु}}रहेका छन् ।',
'iteminvalidname' => "वस्तु '$1'मा समस्या , अमान्य नाम...",
-'wlnote' => "$3 र $4 अनुसार विगत {{PLURAL:$2|घण्टामा|'''$2''' घण्टाहरुमा}} {{PLURAL:$1|गरिएको अन्तिम परिवर्तन तल दिइएकोछ|गरिएका अन्तिम '''$1''' परिवर्तनहरु तल दिइएका छन्}}।",
'wlshowlast' => 'पछिल्ला $2 दिनहरूका $3 $1 घण्टाहरूका देखाउनुहोस्',
'watchlist-options' => 'निगरानि सूची विकल्प',
'restriction-level-all' => 'कुनै स्तर',
# Undelete
-'undelete' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81 हà¥\87रà¥\8dनà¥\81हà¥\8bस',
+'undelete' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82 हà¥\87रà¥\8dनà¥\81हà¥\8bसà¥\8d',
'undeletepage' => 'मेटाइएका पृष्ठहरु हेर्ने अनि पुनर्स्थापित गर्ने',
'undeletepagetitle' => "'''[[:$1|$1]]का मेटाइएका पुनरावलोकनहरु यसभित्र छन् '''।",
'viewdeletedpage' => 'मेटिएका पृष्ठहरू हेर्नुहोस्',
'undeletedpage' => "'''$1लाई पूर्वावस्थामा ल्याइयो'''
भर्खरै मेटाइएको रिकर्डहरु र पुनर्स्थापनाहरु हेर्न [[Special:Log/delete|मेटाइएको लग]]मा जानुहोस्।",
'undelete-header' => 'भर्खर मेटिएका पृष्ठहरु हेर्न [[Special:Log/delete|मेटाइएका लग]]मा जानुहोस्।',
-'undelete-search-title' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81 à¤\96à¥\8bà¤\9cà¥\8dनà¥\81हà¥\8bस',
-'undelete-search-box' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81 à¤\96à¥\8bà¤\9cà¥\8dनà¥\81हà¥\8bस',
+'undelete-search-title' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82 à¤\96à¥\8bà¤\9cà¥\8dनà¥\81हà¥\8bसà¥\8d',
+'undelete-search-box' => 'मà¥\87à¤\9fिà¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82 à¤\96à¥\8bà¤\9cà¥\8dनà¥\81हà¥\8bसà¥\8d',
'undelete-search-prefix' => 'बाट सुरु हुने पृष्ठहरु देखाउनुहोस :',
'undelete-search-submit' => 'खोजी गर्नुहोस्',
'undelete-no-results' => 'मेटिएका पृष्ठहरुको अभिलेखमा कुनै पनि मिल्दो पृष्ठहरु भेटिएन ।',
'move-leave-redirect' => 'अनुप्रेषण (redirect) छोडिराख्ने',
# Export
-'export' => 'पà¥\83षà¥\8dठहरà¥\81 पठाà¤\87ने',
-'exportall' => 'सबà¥\88 पà¥\83षà¥\8dठहरà¥\81 निर्यात गर्ने',
+'export' => 'पà¥\83षà¥\8dठहरà¥\82 निरà¥\8dयात à¤\97रà¥\8dने',
+'exportall' => 'सबà¥\88 पà¥\83षà¥\8dठहरà¥\82 निर्यात गर्ने',
'exportcuronly' => 'हालको संस्करण मात्र थप्ने ,पूरा इतिहास हैन',
'export-submit' => 'निर्यात',
'export-addcattext' => 'श्रेणीबाट पृष्ठ थप्ने :',
'tooltip-pt-watchlist' => 'पृष्ठहरूको सूची जसका परिवर्तनहरूलाई तपाईँले निगरानी गरिरहनु भएको छ',
'tooltip-pt-mycontris' => 'तपाईको योगदानको सूची',
'tooltip-pt-login' => 'तपाईँलाई प्रवेशगर्न सुझाव दिइन्छ ; तर यो जरुरी भने छैन',
-'tooltip-pt-anonlogin' => 'तपाईँलाई लग-इन गर्न प्रोत्साहन गरिन्छ, तर यो अनिवार्य चाँही होइन।',
'tooltip-pt-logout' => 'निर्गमन (लग आउट) गर्नुहोस्',
'tooltip-ca-talk' => 'सामग्री पृष्ठबारेमा छलफल',
'tooltip-ca-edit' => 'तपाईँले यो पृष्ठ सम्पादन गर्न सक्नुहुन्छ ।
* <span class="mw-specialpagerestricted">निषेधित विशेष पृष्ठहरु।</span>
* <span class="mw-specialpagecached">क्याश गरिएका विशेष पृष्ठहरु (अध्यावधिक नहुन सक्छ)।</span>',
'specialpages-group-maintenance' => 'मर्मत प्रतिवेदनहरु',
-'specialpages-group-other' => 'à¤\85रà¥\81 विशà¥\87ष पà¥\83षà¥\8dठहरà¥\81',
+'specialpages-group-other' => 'à¤\85रà¥\82 विशà¥\87ष पà¥\83षà¥\8dठहरà¥\82',
'specialpages-group-login' => 'प्रवेशगर्नुहोस/खाता शृजना गर्नुहोस',
'specialpages-group-changes' => 'भर्खरैका परिवर्तन र लगहरु',
'specialpages-group-media' => 'मेडिया प्रतिवेदन र उर्ध्वभरणहरु',
'specialpages-group-users' => 'प्रयोगकर्ता र अधिकारहरु',
-'specialpages-group-highuse' => 'à¤\89à¤\9aà¥\8dà¤\9a पà¥\8dरयà¥\8bà¤\97 à¤à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\81',
+'specialpages-group-highuse' => 'à¤\89à¤\9aà¥\8dà¤\9a पà¥\8dरयà¥\8bà¤\97 à¤à¤\8fà¤\95ा पà¥\83षà¥\8dठहरà¥\82',
'specialpages-group-pages' => 'पृष्ठहरूको सूची:',
'specialpages-group-pagetools' => 'पृष्ठ उपकरणहरू',
'specialpages-group-wiki' => 'विकि डाटा र औजारहरु',
'specialpages-group-redirects' => 'विशेष पृष्ठमा पठाउने',
-'specialpages-group-spam' => 'सà¥\8dपाम à¤\89पà¤\95रणहरà¥\81',
+'specialpages-group-spam' => 'सà¥\8dपाम à¤\89पà¤\95रणहरà¥\82',
# Special:BlankPage
-'blankpage' => 'à¤\96ालà¥\80 पà¥\83षà¥\8dठहरà¥\81',
+'blankpage' => 'à¤\96ालà¥\80 पà¥\83षà¥\8dठहरà¥\82',
'intentionallyblankpage' => 'यो पृष्ठ जानी जानी खाली राखिएको हो ।',
# External image whitelist
'tags-hitcount' => '$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरु}}',
# Special:ComparePages
-'comparepages' => 'पà¥\83षà¥\8dठहरà¥\81 दाज्ने',
+'comparepages' => 'पà¥\83षà¥\8dठहरà¥\82 दाà¤\81ज्ने',
'compare-page1' => 'पृष्ठ 1',
'compare-page2' => 'पृष्ठ 2',
'compare-rev1' => 'संशोधन 1',
* @file
*
* @author Annabel
+ * @author Arent
* @author AvatarTeam
* @author B4bol4t
* @author Basvb
'tog-numberheadings' => 'Koppen automatisch nummeren',
'tog-showtoolbar' => 'Bewerkingswerkbalk weergeven',
'tog-editondblclick' => 'Dubbelklikken voor bewerken',
-'tog-editsection' => 'Bewerken van deelpagina’s mogelijk maken via [bewerken]-koppelingen',
'tog-editsectiononrightclick' => 'Bewerken van deelpagina’s mogelijk maken met een rechtermuisklik op een tussenkop',
-'tog-showtoc' => 'Inhoudsopgave weergeven (voor pagina’s met minstens 3 tussenkoppen)',
'tog-rememberpassword' => 'Aanmeldgegevens onthouden (maximaal $1 {{PLURAL:$1|dag|dagen}})',
'tog-watchcreations' => "Pagina's die ik aanmaak en bestanden die ik upload automatisch volgen",
'tog-watchdefault' => 'Pagina’s en bestanden die ik bewerk automatisch volgen',
'retypenew' => 'Herhaling nieuwe wachtwoord:',
'resetpass_submit' => 'Wachtwoord instellen en aanmelden',
'changepassword-success' => 'Uw wachtwoord is gewijzigd.',
+'changepassword-throttled' => 'U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.
+Wacht alstublieft $1 voordat u het opnieuw probeert.',
'resetpass_forbidden' => 'Wachtwoorden kunnen niet gewijzigd worden',
'resetpass-no-info' => 'U dient aangemeld zijn voordat u deze pagina kunt gebruiken.',
'resetpass-submit-loggedin' => 'Wachtwoord wijzigen',
'changeemail-password' => 'Uw wachtwoord voor {{SITENAME}}:',
'changeemail-submit' => 'E-mailadres wijzigen',
'changeemail-cancel' => 'Annuleren',
+'changeemail-throttled' => 'U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.
+Wacht alstublieft $1 voordat u het opnieuw probeert.',
# Special:ResetTokens
'resettokens' => 'Tokens opnieuw instellen',
'search-result-score' => 'Relevantie: $1%',
'search-redirect' => '(doorverwijzing $1)',
'search-section' => '(subkop $1)',
+'search-file-match' => '(komt overeen met de inhoud van het bestand)',
'search-suggest' => 'Bedoelde u: $1',
'search-interwiki-caption' => 'Zusterprojecten',
'search-interwiki-default' => '$1 resultaten:',
'watchmethod-list' => "controleer pagina's op volglijst op wijzigingen",
'watchlistcontains' => "Er {{PLURAL:$1|staat één pagina|staan $1 pagina's}} op uw volglijst.",
'iteminvalidname' => "Probleem met object '$1', ongeldige naam…",
-'wlnote' => 'Hieronder {{PLURAL:$1|staat de laaste wijziging|staan de laatste $1 wijzigingen}} in {{PLURAL:$2|het laatste uur|de laatste $2 uur}} per $3 om $4.',
'wlshowlast' => 'Laatste $1 uur, $2 dagen bekijken ($3)',
'watchlist-options' => 'Opties voor volglijst',
'delete-warning-toobig' => 'Deze pagina heeft een lange bewerkingsgeschiedenis, meer dan $1 {{PLURAL:$1|versie|versies}}.
Het verwijderen van deze pagina kan de werking van de database van {{SITENAME}} verstoren.
Wees voorzichtig.',
-'deleting-backlinks-warning' => "'''Waarschuwing:''' andere pagina's verwijzen naar de pagina die u wilt verwijderen.",
+'deleting-backlinks-warning' => "'''Waarschuwing:''' andere pagina's gebruiken of verwijzen naar de pagina die u wilt verwijderen.",
# Rollback
'rollback' => 'Wijzigingen ongedaan maken',
'range_block_disabled' => 'De mogelijkheid voor beheerders om een groep IP-adressen te blokkeren is uitgeschakeld.',
'ipb_expiry_invalid' => 'Ongeldige duur.',
'ipb_expiry_temp' => 'Blokkades voor verborgen gebruikers moeten permanent zijn.',
-'ipb_hide_invalid' => 'Het is niet mogelijk deze gebruiker te verbergen; mogelijk heeft deze te veel bewerkingen gemaakt.',
+'ipb_hide_invalid' => 'Het is niet mogelijk deze gebruiker te verbergen; deze heeft meer dan {{PLURAL:$1|een bewerking|$1 bewerkingen}} gedaan.',
'ipb_already_blocked' => '"$1" is al geblokkeerd',
'ipb-needreblock' => '$1 is al geblokkeerd.
Wilt u de instellingen wijzigen?',
'allmessages-prefix' => 'Filteren op voorvoegsel:',
'allmessages-language' => 'Taal:',
'allmessages-filter-submit' => 'OK',
+'allmessages-filter-translate' => 'Vertalen',
# Thumbnails
'thumbnail-more' => 'Vergroten',
'tooltip-pt-watchlist' => "Overzicht van pagina's die u volgt",
'tooltip-pt-mycontris' => 'Overzicht van uw bijdragen',
'tooltip-pt-login' => 'U wordt van harte uitgenodigd om u aan te melden als gebruiker, maar dit is niet verplicht',
-'tooltip-pt-anonlogin' => 'U wordt van harte uitgenodigd om u aan te melden als gebruiker, maar dit is niet verplicht',
'tooltip-pt-logout' => 'Afmelden',
'tooltip-ca-talk' => 'Overleg over deze pagina',
'tooltip-ca-edit' => 'U kunt deze pagina bewerken. Gebruik de knop "Bewerking ter controle bekijken" voordat u de pagina opslaat',
'expand_templates_generate_rawhtml' => 'Ruwe HTML weergeven',
'expand_templates_preview' => 'Voorvertoning',
+# Unknown messages
+'uploadinvalidxml' => 'De XML in het geüploade bestand kon niet worden geparst.',
);
'tog-numberheadings' => 'Vis nummererte overskrifter',
'tog-showtoolbar' => 'Vis endringsverktøyline',
'tog-editondblclick' => 'Endre sider med dobbeltklikk',
-'tog-editsection' => 'Endre avsnitt ved hjelp av [endre]-lenkje',
'tog-editsectiononrightclick' => 'Endre avsnitt ved å høgreklikke på avsnittsoverskrifter',
-'tog-showtoc' => 'Vis innhaldsliste (for sider med meir enn tre bolkar)',
'tog-rememberpassword' => 'Hugs innlogginga mi med denne nettlesaren (for høgst {{PLURAL:$1|éin dag|$1 dagar}})',
'tog-watchcreations' => 'Legg til sidene eg opprettar og filene eg lastar opp på overvakingslista mi',
'tog-watchdefault' => 'Legg til sidene og filene eg endrar på overvakingslista mi',
'tog-numberheadings' => 'Numerotar automaticament los títols',
'tog-showtoolbar' => 'Far veire la barra de menú',
'tog-editondblclick' => 'Modificar las paginas amb un clic doble',
-'tog-editsection' => 'Modificar una seccion via los ligams [modificar]',
'tog-editsectiononrightclick' => 'Modificar una seccion en fasent un clic drech suls títols de seccion',
-'tog-showtoc' => "Afichar l'ensenhador (per las paginas de mai de 3 seccions)",
'tog-rememberpassword' => 'Se remembrar de mon senhal sus aqueste ordinator (al mai $1 {{PLURAL:$1|jorn|jorns}})',
'tog-watchcreations' => "Apondre las paginas que creï e los fichièrs qu'impòrti a ma lista de seguiment",
'tog-watchdefault' => "Apondre las paginas que modifiqui e los fichièrs qu'impòrti a ma lista de seguiment",
'tog-hidepatrolled' => 'ନଗଦ ବଦଳରେ ଥିବା ଜଗାହୋଇଥିବା ବଦଳ ସବୁକୁ ଲୁଚାଇବେ',
'tog-newpageshidepatrolled' => 'ନୂଆ ପୃଷ୍ଠାତାଲିକାରୁ ଜଗାହୋଇଥିବା ବଦଳସବୁକୁ ଲୁଚାଇବେ',
'tog-extendwatchlist' => 'କେବଳ ନଗଦ ନୁହେଁ, ସବୁଯାକ ବଦଳକୁ ଦେଖାଇବା ନିମନ୍ତେ ଦେଖଣାତାଲିକାକୁ ବଢ଼ାଇବେ',
-'tog-usenewrc' => 'ନଗଦ ବଦଳରେ ପୃଷ୍ଠା ଅନୁଯାୟୀ ଗୋଷ୍ଠୀ ବଦଳ ଏବଂ ଦେଖଣା (ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା)',
+'tog-usenewrc' => 'ନଗଦ ବଦଳରେ ପୃଷ୍ଠା ଅନୁଯାୟୀ ଗୋଷ୍ଠୀ ବଦଳ ଏବଂ ଦେଖଣା',
'tog-numberheadings' => 'ଆପେଆପେ-ସଂଖ୍ୟାର ନାମଗୁଡ଼ିକ',
-'tog-showtoolbar' => 'ସମ୍ପାଦନା ଟୁଲବାର ଦେଖାଇବେ (ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା)',
-'tog-editondblclick' => 'ଦୁଇଥର କ୍ଲିକରେ ପୃଷ୍ଠା ବଦଳାଇବେ (ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା)',
-'tog-editsection' => '[ବଦଳାଇବେ] ଲିଙ୍କରେ ବିଭାଗର ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ',
-'tog-editsectiononrightclick' => 'ବିଭାଗ ନାମରେ ଡାହାଣ କ୍ଲିକ କରି ବିଭାଗ ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ (ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା)',
-'tog-showtoc' => 'ସୂଚୀପତ୍ର ଦେଖାଇବେ (୩ରୁ ଅଧିକ ମୁଖ୍ୟ ନାମ ଥିଲେ)',
+'tog-showtoolbar' => 'ସମ୍ପାଦନା ଟୁଲବାର ଦେଖାଇବେ',
+'tog-editondblclick' => 'ଦୁଇଥର କ୍ଲିକରେ ପୃଷ୍ଠା ବଦଳାଇବେ',
+'tog-editsectiononrightclick' => 'ବିଭାଗ ନାମରେ ଡାହାଣ କ୍ଲିକ କରି ବିଭାଗ ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ',
'tog-rememberpassword' => 'ଏହି ବ୍ରାଉଜରରେ (ସର୍ବାଧିକ $1 {{PLURAL:$1|day|ଦିନ}}) ପାଇଁ ମୋ ଲଗ-ଇନ ମନେରଖିଥିବେ',
'tog-watchcreations' => 'ମୋ ତିଆରି ପୃଷ୍ଠାସବୁକୁ ଏବଂ ମୋ ଅପଲୋଡ଼ଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
'tog-watchdefault' => 'ମୁଁ ବଦଳେଇଥିବା ପୃଷ୍ଠା ଏବଂ ଫାଇଲଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
'tog-shownumberswatching' => 'ଦେଖୁଥିବା ବ୍ୟବହାରକାରୀଙ୍କ ସଂଖ୍ୟା ଦେଖାନ୍ତୁ',
'tog-oldsig' => 'ଏବେକାର ଦସ୍ତଖତ:',
'tog-fancysig' => 'ଦସ୍ତଖତକୁ ଉଇକିଟେକ୍ସଟ ଭାବରେ ଗଣିବେ (ଆପେଆପେ ଥିବା ଲିଙ୍କ ବିନା)',
-'tog-uselivepreview' => 'ସାଥà\87 ସାଥà\87 à¬\9aାଲିଥିବା ଦà\87à¬\96ଣା ବà\8dà\9fବହାର à¬\95ରିବà\87 (à¬\9cାà¬à¬¾à¬¸à\8dà¬\95à\8dରିପà\8dà¬\9f ଲà\8bଡ଼ା)',
+'tog-uselivepreview' => 'ସାଥà\87 ସାଥà\87 à¬\9aାଲିଥିବା ଦà\87à¬\96ଣା ବà\8dà\9fବହାର à¬\95ରିବà\87 (ପରà\80à¬\95à\8dଷାରà\87 à¬\85à¬\9bି)',
'tog-forceeditsummary' => 'ଖାଲି ସମ୍ପାଦନା ସାରକଥାକୁ ଯିବା ବେଳେ ମୋତେ ଜଣାଇବେ',
'tog-watchlisthideown' => 'ମୋ ଦେଖଣା ତାଲିକାରେ ମୋ ନିଜର ସମ୍ପାଦନାଗୁଡ଼ିକ ଲୁଚାଇବେ',
'tog-watchlisthidebots' => 'ଦେଖଣା ତାଲିକାରେ ବଟ ଦେଇ ବଦଳ ଗୁଡ଼ିକ ଲୁଚାଇବେ',
'tog-showhiddencats' => 'ଲୁଚାଯାଇଥିବା ଶ୍ରେଣୀଗୁଡ଼ିକ ଦେଖାଇବେ',
'tog-norollbackdiff' => 'ରୋଲବ୍ୟାକ କଲାପରେ ତୁଳନା ଦେଖାନ୍ତୁ ନାହିଁ',
'tog-useeditwarning' => 'ଯେତେବେଳେ ମୁଁ ଗୋଟିଏ ସାଇତାଯାଇନଥିବା ପୃଷ୍ଠାକୁ ବନ୍ଦ କରିଦିଏ ମୋତେ ଚେତାବନୀ ଦେବେ',
+'tog-prefershttps' => 'ଲଗ ଇନ କଲାପରେ ସର୍ବଦା ସୁରକ୍ଷିତ କନେକ୍ସନ ବ୍ୟବହାର କରିବେ',
'underline-always' => 'ସବୁବେଳେ',
'underline-never' => 'କେବେନୁହେଁ',
'newwindow' => '(ଏହା ନୂଆ ଉଇଣ୍ଡୋରେ ଖୋଲିବ)',
'cancel' => 'ନାକଚ',
'moredotdotdot' => 'ଅଧିକ...',
-'morenotlisted' => 'à¬\85ଧିà¬\95 à¬\95ିà¬\9bି ତାଲିà¬\95ାରà\87 ନାହିà¬\81...',
+'morenotlisted' => 'à¬\8fହା ପà\81ରା ହà\8bà¬\87 ନାହିà¬\81',
'mypage' => 'ପୃଷ୍ଠା',
'mytalk' => 'ଆଲୋଚନା',
'anontalk' => 'ଏହି IP address ଉପରେ ଆଲୋଚନା',
'create-this-page' => 'ଏହି ପୃଷ୍ଠା ତିଆରି କରିବେ',
'delete' => 'ଲିଭାଇବେ',
'deletethispage' => 'ଏହି ପୃଷ୍ଠାଟି ଲିଭାଇବେ',
+'undeletethispage' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ଲିଭାଇବେ ନାହିଁ',
'undelete_short' => '{{PLURAL:$1|ଗୋଟିଏ ବଦଳ|$1ଟି ବଦଳ}} ଯାହା ଲିଭାସରିଛି ତାହାକୁ ପଛକୁ ଫେରାଇଦେବା',
'viewdeleted_short' => '{{PLURAL:$1|ଗୋଟିଏ ଲିଭାଯାଇଥିବା ବଦଳ|$1ଟି ଲିଭାଯାଇଥିବା ବଦଳ}} ଦେଖାଇବେ',
'protect' => 'କିଳିବେ',
'prefs-email' => 'ଇ-ମେଲ ବିକଳ୍ପମାନ',
'prefs-rendering' => 'ଦେଖଣା',
'saveprefs' => 'ସାଇତିବେ [Save]',
-'restoreprefs' => 'ଆପେଆପେ ଥିବା ମୂଳ ସଜାଣିକୁ ଫେରିଯିବେ',
+'restoreprefs' => '(ସମସ୍ତ ସ୍ଥାନରେ) ଆରମ୍ଭରୁ ଥିବା ମୂଳ ସଜାଣିକୁ ଫେରିଯିବେ',
'prefs-editing' => 'ସମ୍ପାଦନା',
'rows' => 'ଧାଡ଼ି:',
'columns' => 'ସ୍ତମ୍ଭସବୁ:',
'watchmethod-list' => 'ନଗଦ ବଦଳ ନିମନ୍ତେ ଦେଖାଯାଇଥିବା ପୃଷ୍ଠାମାନ ପରଖୁଛୁଁ',
'watchlistcontains' => 'ଆପଣଙ୍କ ଦେଖଣାତାଲିକାରେ $1 {{PLURAL:$1|ଗୋଟି ପୃଷ୍ଠା|ଗୋଟି ପୃଷ୍ଠା}} ରହିଅଛି ।',
'iteminvalidname' => "'$1' ଯୋଗୁଁ କିଛି ଅସୁବିଧା ହେଉଅଛି, ଭୁଲ ନାମ...",
-'wlnote' => "$3, $4 ସୁଦ୍ଧା ବିଗତ {{PLURAL:$2|ଘଣ୍ଟେ ଭିତରେ|'''$2''' ଘଣ୍ଟା ଭିତରେ}} ଘଟିଥିବା {{PLURAL:$1|ଶେଷ ବଦଳଟି ଅଛି|ଶେଷ '''$1''' ଟି ବଦଳ}} ତଳେ ଦିଆଯାଇଛି ।",
'wlshowlast' => 'ଶେଷ $1 ଘଣ୍ଟା $2 ଦିନ $3 ଦେଖାଇବେ',
'watchlist-options' => 'ଦେଖଣା ବିକଳ୍ପସବୁ',
'tooltip-pt-watchlist' => 'ବଦଳ ପାଇଁ ଆପଣ ଦେଖାଶୁଣା କରୁଥିବା ପୃଷ୍ଠାଗୁଡ଼ିକର ତାଲିକା',
'tooltip-pt-mycontris' => 'ଆପଣଙ୍କ ଅବଦାନ',
'tooltip-pt-login' => 'ଆପଣଙ୍କୁ ଲଗ-ଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
-'tooltip-pt-anonlogin' => 'ଆପଣଙ୍କୁ ଲଗଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
'tooltip-pt-logout' => 'ଲଗଆଉଟ',
'tooltip-ca-talk' => 'ଏହି ପୃଷ୍ଠାଟି ଉପରେ ଆଲୋଚନା',
'tooltip-ca-edit' => 'ଆପଣ ଏହି ପୃଷ୍ଠାଟିରେ ଅଦଳ ବଦଳ କରିପାରିବେ, ତେବେ ସାଇତିବା ଆଗରୁ ଦେଖଣା ଦେଖନ୍ତୁ ।',
'category-empty' => '"Die Sachgrubb hodd kä Said odda Medje."',
'hidden-categories' => '{{PLURAL:$1|Vaschdegldi Sachgrubb|Vaschdeglde Sachgrubbe}}',
'hidden-category-category' => 'Verschdegelde Grubbe',
-'category-subcat-count' => '{{PLURAL:$2|Die Sachgrubb hod die Unnagrubb.|Die Sachgrubb hod {{PLURAL:$1|Unnagrubb|$1 Unnagrubbe}}, vun gsomd $2.}}',
+'category-subcat-count' => '{{PLURAL:$2|Die Sachgrubb hodd die Unnagrubb.|Die Sachgrubb hodd {{PLURAL:$1|Unnagrubb|$1 Unnagrubbe}}, vun gsomd $2.}}',
'category-subcat-count-limited' => 'Die Sachgrubb hod die {{PLURAL:$1|Unagrubb|$1 Unagrubbe}}.',
-'category-article-count' => '{{PLURAL:$2|Indɐ Sachgrubb hodds die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gibbds inde Sachgrubb, vun gsomd $2.}}',
+'category-article-count' => '{{PLURAL:$2|Die Sachgrubb hodd bloß die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gibbds inde Sachgrubb, vun gsomd $2.}}',
'category-article-count-limited' => 'Die {{PLURAL:$1|Said|$1 Saide}} hodds inde Sachgrubb.',
'category-file-count' => "{{PLURAL:$2|Die Sachgrubb hodd ä Said.|Die {{PLURAL:$1|Said isch änni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
'category-file-count-limited' => 'Die {{PLURAL:$1|Dadai|$1 Dadije}} hodds inde Sachgrubb.',
'yourname' => 'Middawaidanõme:',
'yourpassword' => 'Kennword:',
'yourpasswordagain' => 'Kennword nomol oigewe:',
-'remembermypassword' => 'Moi Kennword uffm Rechna merge (hegschdns fa $1 {{PLURAL:$1|Daach|Daach}})',
+'remembermypassword' => 'Moi Kennword uffm Brausa merge (hegschdns fa $1 {{PLURAL:$1|Daach|Daach}})',
'login' => 'Õmelde',
'nav-login-createaccount' => 'Õmelde / Kondo õleesche',
'loginprompt' => 'Cookies mugschd fa {{SITENAME}} schun õhawe.',
'passwordtooshort' => 'Kennword muss {{PLURAL:$1|1 Zaische|$1 Zaische}} hawe.',
'password-name-match' => 'Doi Kennword deaf nedd so heese wie du.',
'password-login-forbidden' => 'De Nõme uns Kennword sinn fabode.',
-'mailmypassword' => 'Naijs Kennword iwwa E-Mail schigge',
+'mailmypassword' => 'Kennword zriggsedze',
'accountcreated' => 'Kondo õgleeschd',
'login-abort-generic' => 'Hodd nedd gklabbd - Abgbroche',
'loginlanguagelabel' => 'Schbrooch: $1',
'compareselectedversions' => 'Ausgawe midnonna vaglaische',
'showhideselectedversions' => 'Zaisch/Vaschdeggl gwehldi Ausgawe',
'editundo' => 'zriggnemme',
+'diff-multi' => '({{PLURAL:$1|Ä dzwische lischndi Ännarung|$1 dzwische lischende Ännarunge}} by {{PLURAL:$2|än Middawaida|$2 Middawaida}} nedd gzaischd)',
# Search results
'searchresults' => 'Eagewnis nochgugge',
'notextmatches' => 'Kä Iwwaoinschdimmunge midm Tegschd',
'prevn' => 'ledschda {{PLURAL:$1|$1}}',
'nextn' => 'negschd {{PLURAL:$1|$1}}',
-'prevn-title' => 'Frijari $1 {{PLURAL:$1|Eagewnis|Eagewnis}}',
-'nextn-title' => 'Negschdi $1 {{PLURAL:$1|Eagewnis|Eagewnis}}',
+'prevn-title' => 'Frijari $1 {{PLURAL:$1|Eagewniss|Eagewnisse}}',
+'nextn-title' => 'Negschdi $1 {{PLURAL:$1|Eagewniss|Eagewnisse}}',
'shown-title' => 'Zaisch $1 {{PLURAL:$1|Eagewnis}} bro Said',
'viewprevnext' => 'Gugg ($1 {{int:pipe-separator}} $2) ($3)',
'searchmenu-exists' => "'''Dohods ä Said \"[[:\$1]]\".'''",
'rclistfrom' => 'Zaisch die ledschde Ännarunge ab $1',
'rcshowhideminor' => 'Glenni Ännarunge $1',
'rcshowhidebots' => 'Bots $1',
-'rcshowhideliu' => 'Õgmelda Middawaida $1',
+'rcshowhideliu' => 'Õgmelde Middawaida $1',
'rcshowhideanons' => 'Ned õgmelda Middawaida $1',
'rcshowhidepatr' => '$1 iwabriefde Ännarunge',
'rcshowhidemine' => 'Moi Beawaidunge $1',
'boteditletter' => 'B',
'rc_categories' => 'Oigschrengd uff Sachgrubbe (abgdeeld middm "|")',
'rc_categories_any' => 'Ebbes',
-'rc-enhanced-expand' => 'Änzlhaide zaische (dozu brauchds JavaScript)',
+'rc-enhanced-expand' => 'Änzlhaide zaische',
'rc-enhanced-hide' => 'Õgawe vaschdeggle',
# Recent changes linked
'contributions' => '{{GENDER:$1|Wassa gemachd hodd}}',
'contributions-title' => 'Middawaidabaidräsch vun $1',
'mycontris' => 'Baidräsch',
-'contribsub2' => 'Fa $1 ($2)',
+'contribsub2' => 'Fa {{GENDER:$3|$1}} ($2)',
'uctop' => '(geschewedisch)',
'month' => 'än Monad (un frieja):',
'year' => 'Abm Johr (un frieja):',
'file-info-size' => '$1 × $2 Pixels, Dadaigreß: $3, MIME-Type: $4',
'file-nohires' => 'Ke heheri Ufflesung vafieschba.',
'svg-long-desc' => 'SVG-Datei, Grundgreß $1 × $2 Pixels, Dadaigreß: $3',
-'show-big-image' => 'Volli Ufflesung',
+'show-big-image' => 'Uaschbringlischi Dadai',
# Special:NewFiles
'showhidebots' => '(Bots $1)',
'specialpages-group-pagetools' => 'Wergzaisch fa Saide',
'specialpages-group-wiki' => 'Daade un Wergzaisch',
+# External image whitelist
+'external_image_whitelist' => " #Loss die Zail wiese isch.<pre>
+#Geb unne Deel vunde regulere Ausdrigg (de Deel zwischede //) oi.
+#Die werren midde URLs vun aissare Bilda vaglische.
+#Die wu passen werren gzaischd un schunschd sieschdn n'Ling'g.
+#Zaile, wu midd # ofongen sinnen Kommenda.
+#Glä- odda Großschraiwung isch do egal.
+
+#Deel vun regulere Ausdrigg nochde Zeil oidrache. Loss die Zail do uuvaännad.</pre>",
+
# Special:Tags
'tag-filter' => '[[Special:Tags|Bschildarungs]]-Filda:',
'tags-edit' => 'bearwaide',
* @author Stlmch
* @author Stv
* @author Szczepan1990
+ * @author Tar Lócesilion
* @author Timpul
* @author ToSter
* @author Tsca
'tog-numberheadings' => 'Automatyczna numeracja nagłówków',
'tog-showtoolbar' => 'Pokaż pasek narzędzi',
'tog-editondblclick' => 'Podwójne kliknięcie rozpoczyna edycję',
-'tog-editsection' => 'Możliwość edycji poszczególnych sekcji strony (link [edytuj])',
'tog-editsectiononrightclick' => 'Kliknięcie prawym klawiszem myszy na tytule sekcji rozpoczyna jej edycję',
-'tog-showtoc' => 'Pokazuj spis treści (na stronach z więcej niż 3 nagłówkami)',
'tog-rememberpassword' => 'Zapamiętaj moje hasło w przeglądarce (maksymalnie przez $1 {{PLURAL:$1|dzień|dni}})',
'tog-watchcreations' => 'Dodawaj do obserwowanych tworzone przeze mnie strony oraz wgrywane przeze mnie pliki',
'tog-watchdefault' => 'Dodawaj do obserwowanych strony i pliki, które edytuję',
'retypenew' => 'Powtórz nowe hasło',
'resetpass_submit' => 'Ustaw hasło i zaloguj się',
'changepassword-success' => 'Twoje hasło zostało pomyślnie zmienione!',
+'changepassword-throttled' => 'Ostatnio zbyt wiele razy próbowałeś zalogować się na to konto.
+Odczekaj $1, zanim ponowisz próbę.',
'resetpass_forbidden' => 'Hasła nie mogą zostać zmienione',
'resetpass-no-info' => 'Musisz być zalogowany, by uzyskać bezpośredni dostęp do tej strony.',
'resetpass-submit-loggedin' => 'Zmień hasło',
'changeemail-password' => 'Twoje hasło:',
'changeemail-submit' => 'Zapisz nowy',
'changeemail-cancel' => 'Anuluj',
+'changeemail-throttled' => 'Zbyt wiele razy próbowałeś zalogować się na to konto.
+Odczekaj $1, zanim ponowisz próbę.',
# Special:ResetTokens
'resettokens' => 'Resetuj tokeny',
'content-not-allowed-here' => 'Zawartość tego typu ($1) nie jest dozwolona na stronie [[$2]]',
'editwarning-warning' => 'Opuszczenie tej strony może spowodować utratę wprowadzonych przez Ciebie zmian.
Jeśli jesteś zalogowany możesz wyłączyć wyświetlanie tego ostrzeżenia w zakładce Edycja w swoich preferencjach.',
+'editpage-notsupportedcontentformat-title' => 'Nieobsługiwany format zawartości',
# Content models
'content-model-wikitext' => 'wikitekst',
'rev-suppressed-no-diff' => "Nie można wyświetlić różnic, ponieważ jedna z wersji została '''usunięta'''.",
'rev-deleted-unhide-diff' => "Jedna z porównywanych wersji została '''usunięta'''.
Szczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze usunięć].
-Jeśli chcesz możesz [$1 obejrzeć porównanie wersji].",
+Jeśli chcesz, możesz [$1 obejrzeć porównanie wersji].",
'rev-suppressed-unhide-diff' => "Jedna z porównywanych wersji została '''ukryta'''.
Szczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rejestrze ukrywania].
Jeśli chcesz możesz [$1 obejrzeć porównanie wersji].",
* Ujawnienie danych osobowych
*: ''adres domowy, numer telefonu, numer PESEL itp''",
'revdelete-legend' => 'Ustaw ograniczenia widoczności',
-'revdelete-hide-text' => 'Ukryj tekst wersji',
+'revdelete-hide-text' => 'Tekst wersji',
'revdelete-hide-image' => 'Ukryj zawartość pliku',
'revdelete-hide-name' => 'Ukryj akcję i cel',
-'revdelete-hide-comment' => 'Ukryj komentarz edycji',
-'revdelete-hide-user' => 'Ukryj nazwę użytkownika/adres IP',
+'revdelete-hide-comment' => 'Opis zmian',
+'revdelete-hide-user' => 'Nazwa użytkownika/adres IP',
'revdelete-hide-restricted' => 'Ukryj informacje przed administratorami tak samo jak przed innymi',
'revdelete-radio-same' => '(bez zmian)',
'revdelete-radio-set' => 'Ukryty',
'userrights-nodatabase' => 'Baza danych $1 nie istnieje lub nie jest lokalna.',
'userrights-nologin' => 'Musisz [[Special:UserLogin|zalogować się]] na konto administratora, by nadawać uprawnienia użytkownikom.',
'userrights-notallowed' => 'Nie jesteś upoważniony do nadawania i odbierania uprawnień użytkownikom.',
-'userrights-changeable-col' => 'Grupy, które możesz wybrać',
-'userrights-unchangeable-col' => 'Grupy, których nie możesz wybrać',
+'userrights-changeable-col' => 'Grupy, które możesz wybrać:',
+'userrights-unchangeable-col' => 'Grupy, których nie możesz wybrać:',
'userrights-conflict' => 'Konflikt zmiany uprawnień użytkownika! Proszę sprawdzić i potwierdzić swoje zmiany.',
'userrights-removed-self' => 'Pomyślnie odebrałeś sobie uprawnienia. W związku z tym nie masz już dostępu do tej strony.',
'right-editusercssjs' => 'Edycja plików CSS i JS innych użytkowników',
'right-editusercss' => 'Edycja plików CSS innych użytkowników',
'right-edituserjs' => 'Edycja plików JS innych użytkowników',
-'right-editmyusercss' => 'Edytuj własne pliki CSS',
-'right-editmyuserjs' => 'Edytuj własne pliki JavaScript',
+'right-editmyusercss' => 'Edycja swoich plików CSS',
+'right-editmyuserjs' => 'Edycja swoich plików JavaScript',
'right-viewmywatchlist' => 'Podgląd swojej listy obserwowanych stron',
'right-editmywatchlist' => 'Edycja swojej listy obserwowanych stron. Niektóre akcje mogą dodawać strony do obserwowanych bez tego uprawnienia.',
'right-viewmyprivateinfo' => 'Podgląd swoich prywatnych danych (np. adres e-mail, prawdziwe imię i nazwisko)',
'right-rollback' => 'Szybkie wycofanie zmian wprowadzonych przez użytkownika, który jako ostatni edytował jakąś stronę',
'right-markbotedits' => 'Oznaczanie rewertu jako edycji bota',
'right-noratelimit' => 'Brak ograniczeń przepustowości',
-'right-import' => 'Import stron z innych wiki',
-'right-importupload' => 'Import stron poprzez przesłanie pliku',
+'right-import' => 'Importowanie stron z innych wiki',
+'right-importupload' => 'Importowanie stron poprzez przesłanie pliku',
'right-patrol' => 'Oznaczanie edycji jako „sprawdzone”',
'right-autopatrol' => 'Automatyczne oznaczanie własnych edycji jako „sprawdzone”',
'right-patrolmarks' => 'Podgląd znaczników patrolowania ostatnich zmian – oznaczania jako „sprawdzone”',
'watchmethod-list' => 'poszukiwanie obserwowanych stron wśród ostatnich zmian',
'watchlistcontains' => 'Na liście obserwowanych przez Ciebie stron {{PLURAL:$1|znajduje się 1 pozycja|znajdują się $1 pozycje|znajduje się $1 pozycji}}.',
'iteminvalidname' => 'Problem z pozycją „$1” – niepoprawna nazwa...',
-'wlnote' => "Poniżej pokazano {{PLURAL:$1|zmianę wykonaną|'''$1''' zmiany wykonane|'''$1''' zmian wykonanych}} w ciągu {{PLURAL:$2|ostatniej godziny|ostatnich '''$2''' godzin}}, licząc od $4 dnia $3.",
'wlshowlast' => 'Pokaż ostatnie $1 godzin, $2 dni ($3)',
'watchlist-options' => 'Opcje obserwowanych',
'restriction-level-all' => 'dowolny stopień',
# Undelete
-'undelete' => 'Odtwórz usuniętą stronę',
+'undelete' => 'Przeglądanie usuniętych stron',
'undeletepage' => 'Odtwarzanie usuniętych stron',
'undeletepagetitle' => "'''Poniżej znajdują się usunięte wersje strony [[:$1]]'''.",
'viewdeletedpage' => 'Zobacz usunięte wersje',
'range_block_disabled' => 'Możliwość blokowania zakresu adresów IP została wyłączona.',
'ipb_expiry_invalid' => 'Błędny czas wygaśnięcia blokady.',
'ipb_expiry_temp' => 'Ukryte blokowanie nazwy użytkownika należy wykonać trwale.',
-'ipb_hide_invalid' => 'Ukrycie konta tego użytkownika nie jest możliwe, prawdopodobnie wykonał on zbyt wiele edycji.',
+'ipb_hide_invalid' => 'Ukrycie konta tego użytkownika nie jest możliwe, wykonał on więcej niż {{PLURAL:$1|jedną edycję|$1 edycje|$1 edycji}}.',
'ipb_already_blocked' => '„$1” jest już zablokowany',
'ipb-needreblock' => '$1 jest już zablokowany. Czy chcesz zmienić ustawienia blokady?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Inna blokada|Inne blokady}}',
'allmessages-prefix' => 'Tytuły rozpoczynające się od',
'allmessages-language' => 'Język:',
'allmessages-filter-submit' => 'Pokaż',
+'allmessages-filter-translate' => 'Przetłumacz',
# Thumbnails
'thumbnail-more' => 'Powiększ',
'tooltip-pt-watchlist' => 'Lista stron obserwowanych przez Ciebie',
'tooltip-pt-mycontris' => 'Lista moich edycji',
'tooltip-pt-login' => 'Zachęcamy do zalogowania się, choć nie jest to obowiązkowe.',
-'tooltip-pt-anonlogin' => 'Zachęcamy do zalogowania się, choć nie jest to obowiązkowe',
'tooltip-pt-logout' => 'Wyloguj',
'tooltip-ca-talk' => 'Dyskusja o zawartości tej strony',
'tooltip-ca-edit' => 'Możesz edytować tę stronę. Przed zapisaniem zmian użyj przycisku podgląd.',
'version-ext-colheader-license' => 'Licencja',
'version-ext-colheader-description' => 'Opis',
'version-ext-colheader-credits' => 'Autorzy',
+'version-license-title' => 'Licencja dla $1',
'version-license-not-found' => 'Nie znaleziono szczegółowych informacji licencyjnych dla tego rozszerzenia.',
+'version-credits-title' => 'Lista autorów dla $1',
+'version-credits-not-found' => 'Dla tego rozszerzenia nie ma szczegółowych informacji o autorach.',
'version-poweredby-credits' => "Ta wiki korzysta z oprogramowania '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001‐$1 $2.",
'version-poweredby-others' => 'inni',
'version-poweredby-translators' => 'tłumacze translatewiki.net',
'expand_templates_generate_rawhtml' => 'Pokaż surowy HTML',
'expand_templates_preview' => 'Podgląd',
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
);
'tog-numberheadings' => 'Tìtoj ëd paràgraf<br />che as nùmero daspërlor',
'tog-showtoolbar' => "Smon-e la bara dj'utiss ëd modìfica",
'tog-editondblclick' => 'Dobia sgnacà për modifiché la pàgina',
-'tog-editsection' => "Abilité le modìfiche ëd session con j'anliure [modifiché]",
'tog-editsectiononrightclick' => 'Abilité la modìfica dle session ën sgnacand-je ansima ai tìtoj col tast drit dël rat',
-'tog-showtoc' => "Smon-e la tàula dij contnù (për le pàgine che l'han pì che 3 session)",
'tog-rememberpassword' => "Visesse ëd mia ciav ansima a 's navigador (për al pi $1 {{PLURAL:$1|di}})",
'tog-watchcreations' => "Gionté le pàgine che i creo mi e j'archivi che i cario mi a la lista ëd lòn che im ten-o sot-euj",
'tog-watchdefault' => "Gionté le pàgine e j'archivi che i modìfico mi a la lista dle ròbe ch'i ten-o sot-euj",
'retypenew' => 'Che a scriva torna soa neuva ciav:',
'resetpass_submit' => 'Argistré la ciav e rintré ant ël sistema',
'changepassword-success' => "Soa ciav a l'é stàita modificà sensa problema!",
+'changepassword-throttled' => "A l'ha fàit tròpi tentativ recent d'intré ant ël sistema.
+Për piasì, ch'a speta $1 prima ëd prové torna.",
'resetpass_forbidden' => 'Le ciav as peulo pa cambiesse',
'resetpass-no-info' => 'A dev esse rintrà ant ël sustema për acede diretament a sta pàgina.',
'resetpass-submit-loggedin' => "Cangé 'd ciav",
'changeemail-password' => 'Soa ciav su {{SITENAME}}:',
'changeemail-submit' => "Cangé l'adrëssa ëd pòsta eletrònica",
'changeemail-cancel' => 'Anulé',
+'changeemail-throttled' => "A l'ha fàit tròpi tentativ ëd rintré ant ël sistema.
+Për piasì, ch'a speta $1 prima ëd prové torna.",
# Special:ResetTokens
'resettokens' => 'Riamposté ij geton',
'watchmethod-list' => 'contròl ëd le pàgine che as ten sot-euj për vëdde se a-i sio staje dle modìfiche recente',
'watchlistcontains' => "Soa lista dla ròba ch'as ten sot-euj a l'ha andrinta {{PLURAL:$1|na pàgina|$1 pàgine}}.",
'iteminvalidname' => "Problema con l'element '$1', nòm nen vàlid...",
-'wlnote' => "Ambelessì sota a-i {{PLURAL:$1|é l'ùltima modìfica|son j'ùltime '''$1''' modìfiche}} ant {{PLURAL:$2|l'ùltima ora|j'ùltime '''$2''' ore}}, a parte da $3, $4.",
+'wlnote2' => "Sì-sota a-i son le modìfiche {{PLURAL:$1|ant l'ùltima ora|ant j'ùltime <strong>$1</strong> ore}}, a parte da $2, $3.",
'wlshowlast' => "Smon-e j'ùltime $1 ore $2 dì $3",
'watchlist-options' => "Opsion ëd la lista dla ròba ch'as ten sot-euj",
'range_block_disabled' => "La possibilità che n'aministrator a fasa dij blocagi a ragg a l'é disabilità.",
'ipb_expiry_invalid' => 'Temp dë scadensa nen bon.',
'ipb_expiry_temp' => 'Ij blocagi djë stranòm ëstërmà a devo esse përmanent.',
-'ipb_hide_invalid' => 'Impossìbil scancelé ës cont; a podrìa avèj tròpe modìfiche.',
+'ipb_hide_invalid' => "Impossìbil scancelé ës cont; a l'ha pi ëd {{PLURAL:$1|na modìfica|$1 modìfiche}}.",
'ipb_already_blocked' => "«$1» a l'é già blocà",
'ipb-needreblock' => "$1 a l'é già blocà. Veul-lo cambié j'ampostassion?",
'ipb-otherblocks-header' => '{{PLURAL:$1|Àutr|Àutri}} blocagi',
'allmessages-prefix' => 'Filtré për prefiss:',
'allmessages-language' => 'Lenga:',
'allmessages-filter-submit' => 'Apliché',
+'allmessages-filter-translate' => 'Volté',
# Thumbnails
'thumbnail-more' => 'Slarghé',
'tooltip-pt-watchlist' => 'Lista dle pàgine che chiel as ten sot euj.',
'tooltip-pt-mycontris' => 'Lista ëd soe contribussion',
'tooltip-pt-login' => "Un a l'é nen obligà a rintré ant al sistema, ma se a lo fa a l'é mej",
-'tooltip-pt-anonlogin' => "Un a l'é nen obligà a rintré ant al sistema, ma se a lo fa a l'é mej",
'tooltip-pt-logout' => 'Seurte da',
'tooltip-ca-talk' => 'Discussion ansima a sta pàgina ëd contnù.',
'tooltip-ca-edit' => 'A peul modifiché sa pàgina-sì. Për piasì, che as fasa na preuva anans che salvé.',
'expand_templates_preview' => 'Preuva',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => "L'XML ant l'archivi carià a l'ha nen podù esse analisà.",
);
'tog-numberheadings' => 'آپ نمبر دین والیاں سرخیاں',
'tog-showtoolbar' => 'ایڈٹ ٹولبار وکھاؤ',
'tog-editondblclick' => 'صفیاں تے ڈبل کلک کرن تے تبدیلیاں لیاؤ',
-'tog-editsection' => 'سیکشن ایڈیٹنگ جوڑاں نال بناؤ',
'tog-editsectiononrightclick' => 'سیکشن سرخی تے تبدیلی لیاؤ سجی کلک نال',
-'tog-showtoc' => 'آرٹیکل دی لسٹ دسو (3 توں چوکھیاں سرخیاں والے صفیاں دی)',
'tog-rememberpassword' => 'اس براؤزر تے میرا ورتن ناں یاد رکھو ($1 {{PLURAL:$1|دن|دناں}} واسطے)',
'tog-watchcreations' => 'جیہڑے صفے میں بناندا واں اوہ میری اکھ تھلے لسٹ چ کر دیو',
'tog-watchdefault' => 'جیہڑے صفے میں لکھداں اوہ میری اکھ تھلے لسٹ چ کر دیو',
'tog-numberheadings' => 'Autōmatiska galwasrīndan nummerinsna',
'tog-showtoolbar' => 'Waidinnais sawinzlin stēisan pagaptin (JavaScript)',
'tog-editondblclick' => 'Redigīs pāusans pra dwigubban pellis gnesnan (JavaScript)',
-'tog-editsection' => 'Ermazīnginais redigīsnan stēisan pāusas sekciōnin pra "[redigīs]" autengīnsenin',
'tog-editsectiononrightclick' => 'Ermazīnginais redigīsnan stēisan pāusas sekciōnin pra tikrōman pellis knuppas gnesnan na tenesses tītelin',
-'tog-showtoc' => 'Waidinnais ēnturas listin (en pāusamans sen tūls nikāi 3 galwasrīndans)',
'tog-rememberpassword' => 'Pamēnais enēisenes infōrmaciōnins en šismu kōmputerin (per maksimum of $1 {{PLURAL:$1|deinā|dēinans}})',
'tog-watchcreations' => 'Preidāis pāusans kawīdans as teīke prei majjan listin stēisan nadirītan',
'tog-watchdefault' => 'Preidāis pāusans kawīdans as redigijja prei majjan listin stēisan nadirītan',
* @author Indech
* @author Jens Liebenau
* @author Jorge Morais
+ * @author Josep Maria 15.
* @author Kaganer
* @author Leonardo.stabile
* @author Lijealso
'tog-numberheadings' => 'Auto-numerar cabeçalhos',
'tog-showtoolbar' => 'Mostrar barra de edição',
'tog-editondblclick' => 'Editar páginas quando houver um clique duplo',
-'tog-editsection' => 'Possibilitar a edição de secções com links [editar]',
'tog-editsectiononrightclick' => 'Possibilitar a edição de seções por clique com o botão direito no título da seção',
-'tog-showtoc' => 'Mostrar índice (para páginas com mais de três seções)',
'tog-rememberpassword' => 'Recordar os meus dados neste browser (no máximo, durante $1 {{PLURAL:$1|dia|dias}})',
'tog-watchcreations' => 'Adicionar as páginas e ficheiros que eu criar às minhas páginas vigiadas',
'tog-watchdefault' => 'Adicionar as páginas e ficheiros que eu editar às minhas páginas vigiadas',
'content-not-allowed-here' => 'Conteúdo do tipo "$1" não é permitido na página [[$2]]',
'editwarning-warning' => 'Sair desta página fará com que você perca quaisquer alterações feitas por você.
Se você se autenticou, pode desabilitar este aviso na seção "Edição" das suas preferências.',
+'editpage-notsupportedcontentformat-title' => 'Formato de conteúdo não suportado',
# Content models
'content-model-wikitext' => 'wikitexto',
'enhancedrc-history' => 'histórico',
'recentchanges' => 'Mudanças recentes',
'recentchanges-legend' => 'Opções das mudanças recentes',
-'recentchanges-summary' => 'Acompanhe nesta página as mudanças mais recentes da wiki.',
+'recentchanges-summary' => 'Acompanha nesta página as mudanças mais recentes desta wiki.',
'recentchanges-noresult' => 'Nenhuma alteração correspondente a esses critérios foi realizada durante o período selecionado.',
'recentchanges-feed-description' => "Acompanhe neste ''feed'' as mudanças mais recentes da wiki.",
'recentchanges-label-newpage' => 'Esta edição criou uma nova página',
'randompage-nopages' => 'Não há páginas {{PLURAL:$2|no seguinte espaço nominal|nos seguintes espaços nominais}}: $1.',
# Random page in category
+'randomincategory-invalidcategory' => '"$1" não é um nome de categoria válido',
'randomincategory-nopages' => 'Não há páginas na categoria [[:Category:$1|$1]].',
'randomincategory-selectcategory' => 'Obter página aleatória da categoria: $1 $2',
'randomincategory-selectcategory-submit' => 'Ir',
'protectedpages' => 'Páginas protegidas',
'protectedpages-indef' => 'Apenas proteções indefinidas',
'protectedpages-cascade' => 'Apenas proteções em cascata',
+'protectedpages-noredirect' => 'Esconder redirecionamentos',
'protectedpagesempty' => 'Neste momento, nenhuma das páginas está protegida com estes parâmetros.',
'protectedtitles' => 'Títulos protegidos',
'protectedtitlesempty' => 'Neste momento, nenhum dos títulos está protegido com estes parâmetros.',
'watchmethod-list' => 'a procurar mudanças recentes nas páginas vigiadas',
'watchlistcontains' => 'A sua lista de páginas vigiadas contém $1 {{PLURAL:$1|página|páginas}}.',
'iteminvalidname' => "Problema com item '$1', nome inválido...",
-'wlnote' => "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas '''$1''' alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas '''$2''' horas}} até $3, $4.",
'wlshowlast' => 'Ver últimas $1 horas $2 dias $3',
'watchlist-options' => 'Opções da lista de páginas vigiadas',
'range_block_disabled' => 'A funcionalidade de administrador para o bloqueio de gamas de IPs está desativada.',
'ipb_expiry_invalid' => 'Tempo de expiração inválido.',
'ipb_expiry_temp' => 'Bloqueios com nome de utilizador ocultado devem ser permanentes.',
-'ipb_hide_invalid' => 'Não foi possível suprimir esta conta; ela poderá ter demasiadas edições.',
+'ipb_hide_invalid' => 'Não foi possível suprimir esta conta; ela possui mais de {{PLURAL:$1|uma edição|$1 edições}}.',
'ipb_already_blocked' => '"$1" já se encontra bloqueado',
'ipb-needreblock' => '$1 já se encontra bloqueado. Deseja alterar as configurações?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Outro bloqueio|Outros bloqueios}}',
'tooltip-pt-watchlist' => 'Lista de mudanças nas páginas que está a vigiar',
'tooltip-pt-mycontris' => 'Lista das suas contribuições',
'tooltip-pt-login' => 'É encorajado a autenticar-se, apesar de não ser obrigatório.',
-'tooltip-pt-anonlogin' => 'É encorajado a autenticar-se, apesar de não ser obrigatório.',
'tooltip-pt-logout' => 'Terminar esta sessão na wiki',
'tooltip-ca-talk' => 'Discussão sobre o conteúdo da página',
'tooltip-ca-edit' => 'Pode editar esta página.
'version-hook-name' => 'Nome do hook',
'version-hook-subscribedby' => 'Subscrito por',
'version-version' => '(Versão $1)',
-'version-license' => 'Licença',
+'version-license' => 'Licença do MediaWiki',
+'version-credits-not-found' => 'Nenhuma informação detalhada acerca dos créditos foi encontrada para esta extensão.',
'version-poweredby-credits' => "Esta é uma wiki '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
'version-poweredby-others' => 'outros',
'version-credits-summary' => 'Gostaríamos de reconhecer as seguintes pessoas pela sua contribuição para o [[Special:Version|MediaWiki]].',
'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
'limitreport-templateargumentsize' => 'Tamanho dos argumentos da predefinição',
'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
+'limitreport-expensivefunctioncount' => 'Número de funções do analisador custosas',
# Special:ExpandTemplates
'expandtemplates' => 'Expandir predefinições',
'tog-numberheadings' => 'Auto-numerar cabeçalhos',
'tog-showtoolbar' => 'Mostrar barra de ferramentas de edição',
'tog-editondblclick' => 'Editar páginas quando houver clique duplo',
-'tog-editsection' => 'Ativar a edição de seções com links [editar]',
'tog-editsectiononrightclick' => 'Habilitar edição de seção por clique com o botão direito no título da seção (requer JavaScript)',
-'tog-showtoc' => 'Mostrar Tabela de Conteúdos (para páginas com mais de três cabeçalhos)',
'tog-rememberpassword' => 'Recordar meus dados de acesso neste navegador (por no máximo $1 {{PLURAL:$1|dia|dias}})',
'tog-watchcreations' => 'Adicionar as páginas e arquivos que eu criar à minha lista de páginas vigiadas',
'tog-watchdefault' => 'Adicionar as páginas e arquivos que eu editar à minha lista de páginas vigiadas',
'watchmethod-list' => 'verificando páginas vigiadas para edições recentes',
'watchlistcontains' => 'Sua lista de páginas vigiadas contém $1 {{PLURAL:$1|página|páginas}}.',
'iteminvalidname' => "Problema com item '$1', nome inválido...",
-'wlnote' => "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas '''$1''' alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas '''$2''' horas}} a partir de $3, $4.",
'wlshowlast' => 'Ver últimas $1 horas $2 dias $3',
'watchlist-options' => 'Opções da lista de páginas vigiadas',
'tooltip-pt-watchlist' => 'Lista de alterações nas páginas que você está monitorando',
'tooltip-pt-mycontris' => 'Listagem de suas contribuições',
'tooltip-pt-login' => 'Você é encorajado a autenticar-se, apesar disso não ser obrigatório.',
-'tooltip-pt-anonlogin' => 'Você é encorajado a autenticar-se, apesar disso não ser obrigatório.',
'tooltip-pt-logout' => 'Sair',
'tooltip-ca-talk' => 'Discussão sobre o conteúdo da página',
'tooltip-ca-edit' => 'Você pode editar esta página. Use o botão "Mostrar previsão" antes de salvar.',
'limitreport-templateargumentsize' => 'Argumento do tamanho da predefinição',
'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|byte|bytes}}',
'limitreport-expansiondepth' => 'Máxima profundidade de expansão',
-'limitreport-expensivefunctioncount' => 'Conta da função expansiva do analizador',
+'limitreport-expensivefunctioncount' => 'Número de funções do analisador custosas',
# Special:ExpandTemplates
'expandtemplates' => 'Expandir predefinições',
This is the toolbar: [[Image:Toolbar.png]]",
'tog-editondblclick' => "{{Gender}}
[[Special:Preferences]], tab 'Edit'. Offers user to open edit page on double click.",
-'tog-editsection' => "[[Special:Preferences]], tab 'Edit'. Offers user to add links in sub headings for editing sections. {{Gender}}",
'tog-editsectiononrightclick' => "{{Gender}}
[[Special:Preferences]], tab 'Edit'. Offers user to edit a section by clicking on a section title.",
-'tog-showtoc' => "[[Special:Preferences]], tab 'Misc'.
-Offers user to show a table of contents automatically if a page has more than 3 headings (= 4 or more headings).",
'tog-rememberpassword' => "{{Gender}}
[[Special:Preferences]], tab 'User profile', section 'Change password'. Offers user remember login details.
Parameters:
* {{msg-mw|Youhavenewmessages}}',
'newmessageslinkplural' => "This is the first link displayed in an orange rectangle when a user gets a message on their talk page.
-Used as <code>$1</code> in messages {{msg-mw|youhavenewmessagesfromusers}}, {{msg-mw|youhavenewmessagesmanyusers}}, {{msg-mw|youhavenewmessages}}.
-
+Used as <code>$1</code> in the following messages:
+* {{msg-mw|youhavenewmessagesfromusers}}
+* {{msg-mw|youhavenewmessagesmanyusers}}
+* {{msg-mw|youhavenewmessages}}.
Parameters:
* $1 - 1 or 999:
** 1 - if there was '''one''' new edit since the last time the user has seen their talk page
* $3 - a password (randomly generated)
* $4 - a URL to the wiki ('<' + server name + script name + '>')
* $5 - (Unused) number of days to password expiry date",
-'login-throttled' => 'Error message shown at [[Special:UserLogin]] after the user has tried to login with incorrect password too many times; also used by [[Special:ChangeEmail]] and [[Special:ChangePassword]].
+'login-throttled' => 'Error message shown at [[Special:UserLogin]] after the user has tried to login with incorrect password too many times.
The user has to wait a certain time before trying to log in again.
This is a protection against robots trying to find the password by trying lots of them.
The number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].
-This message is used in html.',
+This message is used in html.
+{{identical|Login throttled}}',
'login-abort-generic' => 'The generic unsuccessful login message is used unless otherwise specified by hook writers',
'loginlanguagelabel' => 'Used on [[Special:UserLogin]] if $wgLoginLanguageSelector is true. Parameters:
* $1 - a pipe-separated list built from the names that appear in the message {{msg-mw|Loginlanguagelinks}}.
'resetpass_header' => 'Header on box on special page [[Special:ChangePassword]].
{{Identical|Reset password}}',
-'oldpassword' => "Used on the 'User profile' tab of 'my preferences'. This is the text next to an entry box for the old password in the 'change password' section.",
+'oldpassword' => "Used on the 'User profile' tab of 'my preferences'. This is the text next to an entry box for the old password in the 'change password' section.
+{{Identical|Old password}}",
'newpassword' => '{{Identical|New password}}',
'retypenew' => "Appears on the 'User profile' tab of the 'Preferences' special page in the 'Change password' section. It appears next to the text box for entering the new password a second time.",
'resetpass_submit' => 'Submit button on [[Special:ChangePassword]]',
'changepassword-success' => 'Used in [[Special:ChangePassword]].',
+'changepassword-throttled' => 'Error message shown at [[Special:ChangePassword]] after the user has tried to login with incorrect password too many times.
+
+The user has to wait a certain time before trying to log in again.
+
+Parameters:
+* $1 - the time to wait before the next login attempt. Automatically formatted using the following duration messages:
+** {{msg-mw|Duration-millennia}}
+** {{msg-mw|Duration-centuries}}
+** {{msg-mw|Duration-decades}}
+** {{msg-mw|Duration-years}}
+** {{msg-mw|Duration-weeks}}
+** {{msg-mw|Duration-days}}
+** {{msg-mw|Duration-hours}}
+** {{msg-mw|Duration-minutes}}
+** {{msg-mw|Duration-seconds}}
+
+This is a protection against robots trying to find the password by trying lots of them.
+The number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].
+This message is used in html.
+
+See also:
+* {{msg-mw|Changeemail-throttled}}',
'resetpass_forbidden' => "Used as error message in changing password. Maybe the external auth plugin won't allow local password changes.",
'resetpass-no-info' => 'Error message for [[Special:ChangePassword]].
'changeemail-cancel' => 'Cancel button on [[Special:ChangeEmail]]
{{Identical|Cancel}}',
+'changeemail-throttled' => 'Error message shown at [[Special:ChangeEmail]] after the user has tried to login with incorrect password too many times.
+
+The user has to wait a certain time before trying to log in again.
+
+Parameters:
+* $1 - the time to wait before the next login attempt. Automatically formatted using the following duration messages:
+** {{msg-mw|Duration-millennia}}
+** {{msg-mw|Duration-centuries}}
+** {{msg-mw|Duration-decades}}
+** {{msg-mw|Duration-years}}
+** {{msg-mw|Duration-weeks}}
+** {{msg-mw|Duration-days}}
+** {{msg-mw|Duration-hours}}
+** {{msg-mw|Duration-minutes}}
+** {{msg-mw|Duration-seconds}}
+
+This is a protection against robots trying to find the password by trying lots of them.
+The number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].
+This message is used in html.
+
+See also:
+* {{msg-mw|Changepassword-throttled}}',
# Special:ResetTokens
'resettokens' => '{{doc-special|ResetTokens}}
'recentchanges-legend-heading' => 'Used as a heading for legend box on [[Special:RecentChanges]] and [[Special:Watchlist]].
{{Identical|Legend}}',
'recentchanges-legend-newpage' => 'Used as legend in [[Special:RecentChanges]]. Preceded by {{msg-mw|Recentchanges-label-newpage}}.',
-'recentchanges-legend-plusminus' => 'A plus/minus sign with a number for the legend.',
+'recentchanges-legend-plusminus' => '{{optional}}
+A plus/minus sign with a number for the legend.',
'rcnotefrom' => 'This message is displayed at [[Special:RecentChanges]] when viewing recentchanges from some specific time.
The corresponding message is {{msg-mw|Rclistfrom}} (without split of date and time, [[bugzilla:19104|Bug 19104]]).
* {{msg-mw|Watchlist-details}}',
'iteminvalidname' => 'Parameters:
* $1 - item name',
-'wlnote' => 'Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.
+'wlnote2' => 'Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.
Parameters:
-* $1 - the number of changes shown
-* $2 - the number of hours for which the changes are shown
-* $3 - a date alone
-* $4 - a time alone',
+* $1 - the number of hours for which the changes are shown
+* $2 - a date alone
+* $3 - a time alone
+See also:
+* {{msg-mw|Wlnote}}',
'wlshowlast' => 'Appears on [[Special:Watchlist]]. Parameters:
* $1 - a choice of different numbers of hours ("1 | 2 | 6 | 12")
* $2 - a choice of different numbers of days ("1 | 3 | 7")
'allmessages-filter-submit' => 'Used on [[Special:Allmessages]].
{{Identical|Go}}',
+'allmessages-filter-translate' => 'Used on [[Special:Allmessages]]. Label for a link to translatewiki.net for a message to translate.
+{{Identical|Translate}}',
# Thumbnails
'thumbnail-more' => '[[Image:Yes.png|thumb|This:]]
* {{msg-mw|Accesskey-pt-mycontris}}
* {{msg-mw|Tooltip-pt-mycontris}}',
'tooltip-pt-login' => "Tooltip shown when hovering over the link 'Log in / create account' in the upper right corner show on all pages while not logged in.",
-'tooltip-pt-anonlogin' => 'Used as tooltip for link {{msg-mw|Login}} in your personal toolbox (upper right side).
-
-See also:
-* {{msg-mw|Login}}
-* {{msg-mw|Accesskey-pt-anonlogin}}
-* {{msg-mw|Tooltip-pt-anonlogin}}',
'tooltip-pt-logout' => 'Tooltip shown when hovering over the {{msg-mw|Logout}} link in your personal toolbox (upper right side).
See also:
# Skin names
'skinname-cologneblue' => '{{optional}}',
'skinname-monobook' => '{{optional}}',
-'skinname-modern' => '{{optional}}',
+'skinname-modern' => '{{optional}}
+{{Identical|Modern}}',
'skinname-vector' => '{{optional}}',
# Patrolling
'percent' => '{{optional}}',
'parentheses' => '{{optional}}',
'brackets' => '{{Optional}}',
-'quotation-marks' => 'Quotation marks, for quoting, sometimes titles etc., depending on the language.
+'quotation-marks' => '{{optional}}
+
+Quotation marks, for quoting, sometimes titles etc., depending on the language.
See: [[w:Non-English usage of quotation marks|Non-English usage of quotation marks on Wikipedia]].
'expand_templates_preview' => '{{Identical|Preview}}',
# Unknown messages
+'createaccount-hook-aborted' => 'Placeholder message to return with API errors on account create; passes through the message from a hook {{notranslate}}',
'uploadinvalidxml' => 'Error message displayed when the uploaded file contains XML that cannot be properly parsed and checked.',
);
'tog-numberheadings' => "Uma siq'ikunata kikinmanta yupay",
'tog-showtoolbar' => "Llamk'apuna sillwita rikuchiy",
'tog-editondblclick' => "P'anqakunata llamk'apuy iskaylla ñit'iywan",
-'tog-editsection' => "Rakirilla llamk'apuyta saqillay [qillqay] t'inkiwan",
'tog-editsectiononrightclick' => "Rakirilla llamk'apuyta saqillay paña butunta rakirip sutinpi ñit'ispa",
-'tog-showtoc' => "Yuyarina wachuchasqata rikuchiy (kimsamanta aswan uma siq'iyuq p'anqakunapaq)",
'tog-rememberpassword' => "Ruraqpa sutiyta yaykuna rimaytapas yuyaykuy kay llika wamp'unapi ({{PLURAL:$1|huk p'unchawkama|$1 p'unchawkama}})",
'tog-watchcreations' => "Qallarisqay p'anqakunata churkusqay willañiqikunatapas watiqay",
'tog-watchdefault' => "Hukchasqay p'anqakunata willañiqikunatapas watiqay",
'tog-numberheadings' => 'Numerar automaticamain ils titels',
'tog-showtoolbar' => "Mussar la trav d'utensils per modifitgar",
'tog-editondblclick' => 'Modifitgar paginas cun in clic dubel',
-'tog-editsection' => 'Mussar colliaziuns [modifitgar] per modifitgar singulas secziuns',
'tog-editsectiononrightclick' => 'Activar la pussaivladad da modifitgar secziuns cun in clic dretg sin il titel',
-'tog-showtoc' => 'Mussar ina tabla da cuntegn sin paginas cun dapli che trais tetels',
'tog-rememberpassword' => "S'annunziar permanantamain cun quest navigatur (per maximalmain $1 {{PLURAL:$1|di|dis}})",
'tog-watchcreations' => "Agiuntar paginas ch'jeu creesch e datotecas ch'jau transferesch a la glista d'observaziun",
'tog-watchdefault' => "Agiuntar paginas e datotecas ch'jau modifitgesch a la glista d'observaziun",
'tog-numberheadings' => 'Numerotează automat secțiunile',
'tog-showtoolbar' => 'Afișează bara de unelte pentru modificare',
'tog-editondblclick' => 'Modifică paginile prin dublu clic',
-'tog-editsection' => 'Activează modificarea secțiunilor prin legăturile [modifică]',
'tog-editsectiononrightclick' => 'Activează modificarea secţiunilor prin clic dreapta pe titlul secțiunii',
-'tog-showtoc' => 'Arată cuprinsul (pentru paginile cu mai mult de 3 paragrafe cu titlu)',
'tog-rememberpassword' => 'Autentificare automată de la acest navigator (expiră după $1 {{PLURAL:$1|zi|zile|de zile}})',
'tog-watchcreations' => 'Adaugă paginile pe care le creez și fișierele pe care le încarc la lista mea de pagini urmărite',
'tog-watchdefault' => 'Adaugă paginile și fișierele pe care le modific la lista mea de urmărire',
'retypenew' => 'Reintroduceți noua parolă:',
'resetpass_submit' => 'Setează parola și autentifică',
'changepassword-success' => 'Parola dumneavoastră a fost schimbată cu succes!',
+'changepassword-throttled' => 'Ați avut prea multe încercări recente de a vă autentifica.
+Vă rugăm să așteptați $1 până să reîncercați.',
'resetpass_forbidden' => 'Parolele nu pot fi schimbate.',
'resetpass-no-info' => 'Trebuie să fiți autentificat pentru a accesa această pagină direct.',
'resetpass-submit-loggedin' => 'Modifică parola',
'changeemail-password' => 'Parola dumneavoastră la {{SITENAME}}:',
'changeemail-submit' => 'Modifică adresa de e-mail',
'changeemail-cancel' => 'Revocare',
+'changeemail-throttled' => 'Ați avut prea multe încercări de a vă autentifica.
+Vă rugăm să așteptați $1 până să reîncercați.',
# Special:ResetTokens
'resettokens' => 'Resetare jetoane',
'watchmethod-list' => 'căutarea paginilor urmărite pentru schimbări recente',
'watchlistcontains' => 'Lista de pagini urmărite conține $1 {{PLURAL:$1|element|elemente|de elemente}}.',
'iteminvalidname' => "E o problemă cu elementul '$1', numele este invalid...",
-'wlnote' => "Mai jos se află {{PLURAL:$1|ultima schimbare|ultimele $1 schimbări|ultimele $1 de schimbări}} din {{PLURAL:$2|ultima oră|ultimele '''$2''' ore|ultimele '''$2''' de ore}}, așa cum era situația la $3, $4.",
+'wlnote2' => 'Mai jos se află schimbările din {{PLURAL:$1|ultima oră|ultimele <strong>$1</strong> ore|ultimele <strong>$1</strong> de ore}}, așa cum era situația la $2, $3.',
'wlshowlast' => 'Arată ultimele $1 ore $2 zile $3',
'watchlist-options' => 'Opțiuni listă de pagini urmărite',
'range_block_disabled' => 'Abilitatea dezvoltatorilor de a bloca serii de adrese este dezactivată.',
'ipb_expiry_invalid' => 'Dată de expirare invalidă.',
'ipb_expiry_temp' => 'Blocarea numelor de utilizator ascunse trebuie să fie permanentă.',
-'ipb_hide_invalid' => 'Imposibil de a suprima acest cont; acesta poate avea prea multe modificări.',
+'ipb_hide_invalid' => 'Imposibil de suprimat acest cont; acesta are mai mult de {{PLURAL:$1|o modificare|$1 modificări|$1 de modificări}}.',
'ipb_already_blocked' => '„$1” este deja blocat',
'ipb-needreblock' => '$1 este deja blocat. Doriți să modificați parametrii?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Altă blocare|Alte blocări}}',
'allmessages-prefix' => 'Filtru după prefix:',
'allmessages-language' => 'Limbă:',
'allmessages-filter-submit' => 'Du-te',
+'allmessages-filter-translate' => 'Traducere',
# Thumbnails
'thumbnail-more' => 'Extindere',
'tooltip-pt-watchlist' => 'Lista paginilor pe care le monitorizați',
'tooltip-pt-mycontris' => 'Listă de contribuții',
'tooltip-pt-login' => 'Sunteți încurajat să vă autentificați, deși acest lucru nu este obligatoriu.',
-'tooltip-pt-anonlogin' => 'Sunteți încurajat să vă autentificați, deși acest lucru nu este obligatoriu.',
'tooltip-pt-logout' => 'Închideți sesiunea de lucru',
'tooltip-ca-talk' => 'Discuții despre această pagină',
'tooltip-ca-edit' => 'Puteți modifica această pagină. Înainte de a o salva vă rugăm s-o previzualizați.',
'tog-numberheadings' => 'Testate auto-numerate',
'tog-showtoolbar' => "Fà vedè 'a barra de le cangiaminde",
'tog-editondblclick' => "Cange le pàggene cu 'nu doppie clic",
-'tog-editsection' => "Abbilite le cangiaminde d'a sezione ausanne le collagaminde [cange]",
'tog-editsectiononrightclick' => "Abbilite le cangiaminde d'a sezione ausanne 'u pulsande destre d'u sciorge cazzanne sus a 'u titole",
-'tog-showtoc' => "Fa vedè 'a tabbelle de le condenute (pe le pàggene cu cchiù de 3 testate)",
'tog-rememberpassword' => "Arrecuèrdete 'u nome mije sus a stu browser (pe 'nu massime de $1 {{PLURAL:$1|sciurne}})",
'tog-watchcreations' => "Mitte le pàggene ca je agghie ccrejate jndr'à le pàggene condrollate",
'tog-watchdefault' => "Mitte le pàggene ca je agghie cangiate jndr'à le pàggene condrollate",
'articlepage' => "Vide 'a pàgene de le condenute",
'talk' => "'Ngazzaminde",
'views' => 'Visite',
-'toolbox' => 'Cascette de le struminde',
+'toolbox' => 'Struminde',
'userpage' => "Vide a pàgene de l'utende",
'projectpage' => 'Vide a pàgene de le pruggette',
'imagepage' => 'Vide a pàgene de le file',
'invalidtitle-knownnamespace' => 'Titole invalide cu \'u namespace "$2" e teste "$3"',
'invalidtitle-unknownnamespace' => 'Titele invalide cu numere de namespace scanusciute $1 e teste "$2"',
'exception-nologin' => 'Non ge sì collegate',
-'exception-nologin-text' => "Sta pàgene o azione richiede ca a trasè jndr'à sta uicchi.",
+'exception-nologin-text' => "Pe piacere [[Special:Userlogin|tràse]] pe avè l'accesse a sta pàgene o a sta azione.",
# Virus scanner
'virus-badscanner' => "Configurazione ca fece schife: Virus scanner scanusciute: ''$1''",
'gotaccount' => "Tine già 'nu cunde? '''$1'''.",
'gotaccountlink' => 'Tràse',
'userlogin-resetlink' => "T'è scurdate le dettaglie pe trasè?",
-'userlogin-resetpassword-link' => "Azzere 'a passuord toje",
+'userlogin-resetpassword-link' => "T'è scurdate 'a passuord toje?",
'helplogin-url' => 'Help:Trasenne',
'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Aijute cu 'a trasute]]",
+'userlogin-loggedin' => "Tu ste jndre ggià cumme a {{GENDER:$1|$1}}.
+Ause 'u module aqquà sotte pe trasè cumme a 'n'otre utende.",
+'userlogin-createanother' => "Ccreje 'n'otre cunde",
'createacct-join' => "Mitte le 'mbormaziune tune aqquà sotte.",
'createacct-another-join' => "Mitte le 'mbormaziune d'u cunde nuève aqquà sotte.",
'createacct-emailrequired' => 'Indirizze email',
'passwordtooshort' => 'Le password onne a essere almene {{PLURAL:$1|1 carattere|$1 carattere}}.',
'password-name-match' => "'A password toje adda essere diverse da 'u nome utende tue.",
'password-login-forbidden' => "L'ause de stu nome utende e passuord onne state vietate.",
-'mailmypassword' => 'Passuord nova pe e-mail',
+'mailmypassword' => "Azzere 'a passuord",
'passwordremindertitle' => 'Passuord temboranea nova pe {{SITENAME}}',
'passwordremindertext' => "Quacchedune (pò essere tu, da quiste indirizze IP \$1) ha cerchete 'na nova password pe {{SITENAME}} (\$4).
'Na password temboranea pe l'utende \"\$2\" ha state ccrejete e ha state 'mbostete a \"\$3\".
'passwordsent' => "'Na nova passuord ha state mannete a l'indirizze e-mail reggistrete pe \"\$1\".
Pe piacere, colleghete n'otra vota quanne l'è ricevute.",
'blocked-mailpassword' => "L'indirizze IP tue jè blocchete pe le cangiaminde e accussì tu non ge puè ausà 'a funzione de recupere d'a password pe prevenìe l'abbuse.",
-'eauthentsent' => "'N'e-mail de conferme ha state mannete a l'indirizze ca tu è ditte.
-Apprime ca otre e-mail avènene mannete a 'u cunde tue, tu ha seguì le 'struzione ca stonne jndr'à l'e-mail, pe confermà l'iscrizione.",
+'eauthentsent' => "'N'e-mail de conferme ha state mannate a l'indirizze ca tu è ditte.
+Apprime ca otre e-mail avènene mannate a 'u cunde tune, tu ha seguì le 'struzione ca stonne jndr'à l'e-mail, pe confermà ca 'u cunde jè une de le tune.",
'throttled-mailpassword' => "'Nu arrecordatore de passuord ha stete già mannate jndr'à {{PLURAL:$1|l'urtema ore|l'urteme $1 ore}}.
Pe prevenì l'abbuse, sulamende 'nu arrecordatore de passuord avene mannate ogne {{PLURAL:$1|ore|$1 ore}}.",
'mailerror' => "Errore mannanne 'a mail: $1",
'acct_creation_throttle_hit' => "Le visitature de sta Uicchi ca stonne ausene stu indirizze IP onne ccrejete {{PLURAL:$1|'nu cunde utende|$1 cunde utinde}} jndr'à l'urteme giurne, e onne raggiunde 'u numere massime ca se pò fà jndr'à stu periode.
'U resultete jè ca le visitature ca stonne ausene stu indirizze IP non ge ponne ccrejà otre cunde utinde nuève jndr'à stu mumende.",
-'emailauthenticated' => "L'indirizze e-mail ca ne date ha state autendichete 'u sciurne $2 a le $3.",
-'emailnotauthenticated' => "L'indirizze e-mail tue non g'a state angore autendichete.
-Nisciuna mail t'avène mannete pe tutte le seguende dettaglie.",
+'emailauthenticated' => "L'indirizze e-mail ca ne date ha state confermate 'u sciurne $2 a le $3.",
+'emailnotauthenticated' => "L'indirizze e-mail tune non g'a state angore confermate.
+Nisciuna mail t'avène mannate pe tutte le seguende dettaglie.",
'noemailprefs' => "Specifiche 'n'indirizze e-mail pe ste dettaglie ca onne essere fatiete.",
'emailconfirmlink' => "Conferme l'indirizze e-mail tue",
'invalidemailaddress' => "L'indirizze e-mail non ge pò essere accettete cumme l'è scritte purcè tène 'nu formete invalide.
# Special:PasswordReset
'passwordreset' => "Azzere 'a passuord",
'passwordreset-text-one' => "Comblete stu module pe azzerà 'a passuord toje.",
-'passwordreset-text-many' => "{{PLURAL:$1|Inghie une de le cambe de date pe azzerà 'a passuord toje.}}",
+'passwordreset-text-many' => "{{PLURAL:$1|Inghie une de le cambe pe azzerà 'a passuord toje.}}",
'passwordreset-legend' => "Azzere 'a passuord",
'passwordreset-disabled' => "'U reset de le passuord ha state desabbilitate sus a sta uicchi.",
'passwordreset-emaildisabled' => "Le funziune de l'email onne state disabbilitate sus a sta uicchi.",
Otre amministrature sus a {{SITENAME}}ponne angore trasè jndr'à 'u condenute scunnute e 'u ponne scangellà 'n'otra vote ausanne st'inderfacce, senze 'mbostà otre restriziune.",
'revdelete-confirm' => 'Pe piacere conferme ca tu vuè ccu face sta cose, ce tu è capite le conseguenze e ce quidde ca ste face jè in accorde cu le [[{{MediaWiki:Policy-url}}|reghele]] de Uicchipèdie.',
'revdelete-suppress-text' => "'A soppressione adda essere ausate '''sulamende''' jndr'à le case seguende:
+* 'Mbormaziune potenzialmende offenzive
* Date personale inopportune
-*: ''indirizze, numere de telefono, codice fiscale, ecc.''",
+*: ''indirizze, numere de telefono, codece fiscale, ecc.''",
'revdelete-legend' => "'Mboste le restriziune sus 'a visibbilità",
-'revdelete-hide-text' => "Scunne 'u teste d'a revisione",
+'revdelete-hide-text' => "Teste d'a revisione",
'revdelete-hide-image' => "Scunne 'u codenute d'u fail",
'revdelete-hide-name' => 'Scunne azione e obbiettive',
-'revdelete-hide-comment' => 'Scunne le commende de le cangiaminde',
-'revdelete-hide-user' => "Scunne 'u nome utende/IP de quidde ca ha fatte 'u cangiamende",
+'revdelete-hide-comment' => "Cange 'u riepiloghe",
+'revdelete-hide-user' => "Nome utende/IP de quidde ca ha fatte 'u cangiamende",
'revdelete-hide-restricted' => "Live le date da l'amministratore cumme pe l'otre utinde",
'revdelete-radio-same' => '(non scè cangianne)',
-'revdelete-radio-set' => 'Sine',
-'revdelete-radio-unset' => 'None',
+'revdelete-radio-set' => 'Scunnute',
+'revdelete-radio-unset' => 'Visibbile',
'revdelete-suppress' => "Live le date da l'amministrature cumme pe l'otre",
'revdelete-unsuppress' => 'Live le restriziune sus a le revisiune repristinate',
'revdelete-log' => 'Mutive:',
'action-block' => "blocche st'utende pe le cangiaminde",
'action-protect' => "cange 'u levèlle de protezzione pe sta pàgene",
'action-rollback' => "Annulle velocemende le cangiaminde de l'urteme utende ca ha cangiate 'na pàgena particolare",
-'action-import' => "'mborte sta pàgene da n'otra Uicchi",
-'action-importupload' => "'mborte sta pàgene da 'nu carecamende de 'nu file",
+'action-import' => "'mborte le pàggene da n'otra Uicchi",
+'action-importupload' => "'mborte le pàggene da 'nu carecamende de 'nu file",
'action-patrol' => "signe l'otre cangiaminde cumme condrollate",
'action-autopatrol' => 'signà le cangiaminde tue cumme condrollate',
'action-unwatchedpages' => "vide 'a liste de le pàggene ca non ge sonde condrollete",
'recentchanges-label-minor' => "Quiste ète 'nu cangiamende stuèdeche",
'recentchanges-label-bot' => "Stu cangiamende ha state fatte da 'nu bot",
'recentchanges-label-unpatrolled' => "Stu cangiamende non g'à state angore condrollate",
-'recentchanges-legend-newpage' => '$1 - pàgena nove',
+'recentchanges-legend-newpage' => "('ndruche pure [[Special:NewPages|elenghe de le pàggene nuève]])",
'rcnotefrom' => "Sotte stonne le cangiaminde da '''$2''' (fine a '''$1''' mustrete).",
'rclistfrom' => 'Fà vedè le urteme cangiaminde partenne da $1',
'rcshowhideminor' => '$1 cangiaminde stuèdeche',
'rcshowhidebots' => '$1 bot',
-'rcshowhideliu' => '$1 utende reggistrete',
+'rcshowhideliu' => '$1 utinde reggistrate',
'rcshowhideanons' => '$1 utende scanusciute',
'rcshowhidepatr' => '$1 cangiaminde condrollete',
'rcshowhidemine' => '$1 cangiaminde mie',
'listusers' => "Liste de l'utende",
'listusers-editsonly' => "Fà vedè sulamende l'utinde cu cangiaminde fatte",
'listusers-creationsort' => 'Arrenghete pe date de ccreazione',
+'listusers-desc' => "Arranghe jndr'à 'n'ordine ca scenne",
'usereditcount' => '$1 {{PLURAL:$1|cangiamende|cangiaminde}}',
'usercreated' => "{{GENDER:$3|Ccrejate}} 'u $1 a le ore $2",
'newpages' => 'Pàggene nuève',
'watchmethod-list' => 'stoche a condrolle le pàggene condrollete pe le urteme cangiaminde',
'watchlistcontains' => "'A liste de le pàggene condrollete toje condene $1 {{PLURAL:$1|pàgene|pàggene}}.",
'iteminvalidname' => "Probbleme cu 'a vosce '$1', nome invalide...",
-'wlnote' => "Aqquà sotte {{PLURAL:$1|ste l'urteme cangiamende|stonne l'urteme '''$1''' cangiaminde}} jndr'à {{PLURAL:$2|l'urtema ore|l'urteme '''$2''' ore}}, jndr'à $3, $4.",
'wlshowlast' => "Vide l'urteme $1 ore $2 sciurne $3",
'watchlist-options' => "Opzione d'a liste de le pàggene condrollete",
Riepileghe de le cangiaminde: \$PAGESUMMARY \$PAGEMINOREDIT
-Condatte l'editore:
+Condatte 'u cangiatore:
mail: \$PAGEEDITOR_EMAIL
uicchi: \$PAGEEDITOR_WIKI
Non ge stonne otre notifiche ce tu face otre attivitate senze ca tu visite sta pàgene.
-Tu puè pure azzerà 'a spunde de le notifiche pe tutte le pàggene condrollate jndr'à lista toje.
+Tu puè pure azzerà 'a spunde de le notifiche pe tutte le pàggene condrollate jndr'à l'elenghe tune.
- Statte Bbuene, 'u sisteme de notificaziune de {{SITENAME}}
+Statte Bbuene, 'u sisteme de notificaziune de {{SITENAME}}
--
Pe cangià le 'mbostaziune de notifeche de l'email toje, vè vide
Pe cangià le 'mbostaziune de l'elenghe de le pàggene condrollate tune, vè vide
{{canonicalurl:{{#special:EditWatchlist}}}}
-Pe scangellà 'a pàgene da 'a liste de le pàggene condrollate, vè vide
+Pe scangellà 'a pàgene da l'elenghe de le pàggene condrollate, vè vide
\$UNWATCHURL
Segnalaziune e otre assistenze:
'deleteotherreason' => 'Otre mutive de cchiù:',
'deletereasonotherlist' => 'Otre mutive',
'deletereason-dropdown' => "*Mutive comune de scangellaminde
-** Richieste de l'autore
+** Rummate
+** Vandalisme
** Violazione d'u Copyright
-** Vandalisme",
+** Richieste de l'autore
+** Redirezionamende scuasciate",
'delete-edit-reasonlist' => 'Mutive de scangellazione de le cangiaminde',
'delete-toobig' => "Sta pàgene tène 'na storie de cangiaminde troppe longhe, sus a $1 {{PLURAL:$1|revisione|revisiune}}.
'U scangellamende de stuèzze de pàgene avène ristrette pe prevenì 'ngasinaminde accidentale de {{SITENAME}}.",
L'urteme cangiamende d'a pàgene ere de [[User:$3|$3]] ([[User talk:$3|'Ngazzaminde]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
'editcomment' => "'U riepileghe d'u cangiamende ere: \"''\$1''\".",
'revertpage' => "Cangiaminde annullate da [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) a l'urtema versione da [[User:$1|$1]]",
-'revertpage-nouser' => "Le cangiaminde annullate da (nome utende luate) a l'urtema revisione da [[User:$1|$1]]",
+'revertpage-nouser' => "Le cangiaminde annullate da 'n'utende scunnute a l'urtema revisione da {{GENDER:$1|[[User:$1|$1]]}}",
'rollback-success' => "Cangiaminde annullate da $1;
turnate rete a l'urtema versione da $2.",
'contributions' => "Condrebbute de l'{{GENDER:$1|utende}}",
'contributions-title' => "Condrebbute de l'utende pe $1",
'mycontris' => 'Condrebbute mie',
-'contribsub2' => 'Pe $1 ($2)',
+'contribsub2' => 'Pe {{GENDER:$3|$1}} ($2)',
'nocontribs' => 'Nisciune cangiamende ha state acchiate cu ste criterie.',
'uctop' => '(de mò)',
'month' => "Da 'u mese (e cchiù recende):",
'range_block_disabled' => "L'abbilità de le amministrature de ccrejà blocche a indervalle jè disabbilitate.",
'ipb_expiry_invalid' => "L'orarije de scadenze non g'è valide.",
'ipb_expiry_temp' => "Le blocche sus a le nome de l'utinde scunnute onna essere permanende.",
-'ipb_hide_invalid' => 'Non ge se pò scangellà stu cunde utende; tène troppe cangiaminde.',
+'ipb_hide_invalid' => "Non ge se pò scangellà stu cunde utende; tène cchiù de troppe {{PLURAL:$1|'nu cangiamede|$1 cangiaminde}}.",
'ipb_already_blocked' => '"$1" jè ggià blocchete',
'ipb-needreblock' => "$1 ha state già blocchete. Vuè cu cange le 'mbostaziune?",
'ipb-otherblocks-header' => 'Otre {{PLURAL:$1|blocche|blocche}}',
'allmessages-prefix' => 'Filtrate pe prefisse:',
'allmessages-language' => 'Lènga:',
'allmessages-filter-submit' => 'Veje',
+'allmessages-filter-translate' => 'Traduce',
# Thumbnails
'thumbnail-more' => 'Allarije',
'tooltip-pt-watchlist' => "'A liste de le pàggene ca ste condrolle pe le camgiaminde",
'tooltip-pt-mycontris' => 'Liste de le condrebbute mie',
'tooltip-pt-login' => "Tu si 'ncoraggiete a cullegarte, jidde non g'è 'n'obblighe.",
-'tooltip-pt-anonlogin' => "Tu si 'ncoraggiete a cullegarte; però non g'è 'n'obblighe.",
'tooltip-pt-logout' => 'Isse',
'tooltip-ca-talk' => "'Ngazzaminde sus 'a pàgene de le condenute",
'tooltip-ca-edit' => "Tu puè cangià sta pàgene.
Permette de aggiungere 'nu mutive jndr'à 'u riepileghe",
'tooltip-preferences-save' => 'Reggistre le preferenze',
'tooltip-summary' => "Mitte 'nu riepileghe piccinne",
+'interlanguage-link-title' => '$1 - $2',
# Stylesheets
'common.css' => "/* 'U CSS ca se iacchie aqquà avène applicate a tutte le masckere */",
'svg-long-desc' => "Fail SVG, nominalmende sonde $1 × $2 pixel, dimenzione d'u fail: $3",
'svg-long-desc-animated' => "File SVG animate, nominalmende sonde $1 × $2 pixel, dimenzione d'u file: $3",
'svg-long-error' => 'File SVG invalide: $1',
-'show-big-image' => 'Risoluzione chiena chiena',
+'show-big-image' => 'File origgenale',
'show-big-image-preview' => 'Dimenziune de sta andeprime: $1.',
'show-big-image-other' => 'Otre {{PLURAL:$2|resoluzione|resoluziune}}: $1.',
'show-big-image-size' => '$1 x $2 pixel',
'seconds' => '{{PLURAL:$1|seconde|seconde}}',
'minutes' => '{{PLURAL:$1|$1 minute|$1 minute}}',
'hours' => '{{PLURAL:$1|$1ore|$1 ore}}',
-'days' => '{{PLURAL:$1|$1 sciurne|$1 sciurne}}',
+'days' => '{{PLURAL:$1|$1 sciurne}}',
'weeks' => '{{PLURAL:$1|$1 sumàne}}',
'months' => '{{PLURAL:$1|$1 mese|$1 mise}}',
'years' => '{{PLURAL:$1|$1 anne}}',
'imgmultigo' => 'Veje!',
'imgmultigoto' => "Veje 'a pàgene $1",
+# Language selector for translatable SVGs
+'img-lang-go' => 'Véje',
+
# Table pager
'ascending_abbrev' => 'asc',
'descending_abbrev' => 'desc',
'version-version' => '(Versione $1)',
'version-svn-revision' => '(r$2)',
'version-license' => 'Licenze',
+'version-ext-license' => 'Licenze',
+'version-ext-colheader-name' => 'Estenzione',
+'version-ext-colheader-version' => 'Versione',
+'version-ext-colheader-license' => 'Licenze',
+'version-ext-colheader-description' => 'Descrizione',
+'version-ext-colheader-credits' => 'Auture',
+'version-license-title' => 'Licenziate pe $1',
'version-poweredby-credits' => "Sta Uicchi jè fatte da '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
'version-poweredby-others' => 'otre',
'version-poweredby-translators' => 'tradutture de translatewiki.net',
# Special:Redirect
'redirect' => "Redirette da 'u file, utende o ID d'a revisione",
'redirect-legend' => "Redirette a 'nu file o 'na pàgene",
-'redirect-summary' => "Sta pàgena speciale redirezione a 'nu file (date 'u nome d'u file), 'na pàgene (fate 'n'ID de revisione), o 'na pàgene utende (date 'n'ID numeriche de l'utende).",
+'redirect-summary' => "Sta pàgena speciale redirezione a 'nu file (date 'u nome d'u file), 'na pàgene (date 'n'ID de revisione), o 'na pàgene utende (date 'n'ID numeriche de l'utende). Ause: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
'redirect-submit' => 'Véje',
'redirect-lookup' => 'Mappature:',
'redirect-value' => 'Valore:',
'redirect-user' => "ID de l'utende",
+'redirect-page' => "ID d'a pàgene",
'redirect-revision' => "Revisione d'a pàgene",
'redirect-file' => "Nome d'u file",
'redirect-not-exists' => 'Valore non acchiate',
# Special:SpecialPages
'specialpages' => 'Pàggene speciele',
+'specialpages-note-top' => 'Leggende',
'specialpages-note' => '* Pàggene speciale normale.
-* <span class="mw-specialpagerestricted">Pàggene speciale cu le restriziune.</span>
-* <span class="mw-specialpagecached">Pàggene speciale in memorie cache (ponne essere vecchie).</span>',
+* <span class="mw-specialpagerestricted">Pàggene speciale cu le restriziune.</span>',
'specialpages-group-maintenance' => "Report d'a manutenzione",
'specialpages-group-other' => 'Otre pàggene speciele',
'specialpages-group-login' => 'Tràse / Reggistrate',
'tags-tag' => "Nome d'u tag",
'tags-display-header' => "Accumme parene sus 'a liste de le cangiaminde",
'tags-description-header' => "Descriziona comblete d'u significhete",
+'tags-active-header' => 'Attive?',
'tags-hitcount-header' => 'Cangiaminde taggate',
+'tags-active-yes' => 'Sìne',
+'tags-active-no' => 'None',
'tags-edit' => 'cange',
'tags-hitcount' => '$1 {{PLURAL:$1|cangiamende|cangiaminde}}',
# Durations
'duration-seconds' => '{{PLURAL:$1|seconde|seconde}}',
'duration-minutes' => '{{PLURAL:$1|minute|minute}}',
-'duration-hours' => '{{PLURAL:$1|ore|ore}}',
+'duration-hours' => '$1 {{PLURAL:$1|ore}}',
'duration-days' => '$1 {{PLURAL:$1|sciurne|sciurne}}',
-'duration-weeks' => '{{PLURAL:$1|sumàne|sumàne}}',
-'duration-years' => '{{PLURAL:$1|anne|anne}}',
+'duration-weeks' => '$1 {{PLURAL:$1|sumàne}}',
+'duration-years' => '$1 {{PLURAL:$1|anne}}',
'duration-decades' => '$1 {{PLURAL:$1|decade|decade}}',
'duration-centuries' => '$1 {{PLURAL:$1|sechele|sechele}}',
'duration-millennia' => '$1 {{PLURAL:$1|millennie|millennie}}',
'expand_templates_generate_xml' => "Fà vedè l'arvule de l'analisi XML",
'expand_templates_preview' => 'Andeprime',
+# Unknown messages
+'uploadinvalidxml' => "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
);
'tog-numberheadings' => 'Автоматически нумеровать заголовки',
'tog-showtoolbar' => 'Показывать верхнюю панель инструментов при редактировании',
'tog-editondblclick' => 'Править страницы по двойному щелчку',
-'tog-editsection' => 'Показывать ссылку «править» для каждой секции',
'tog-editsectiononrightclick' => 'Править секции при правом щелчке мышью на заголовке',
-'tog-showtoc' => 'Показывать оглавление (для страниц более чем с 3 заголовками)',
'tog-rememberpassword' => 'Помнить мою учётную запись в этом браузере (не более $1 {{PLURAL:$1|дня|дней}})',
'tog-watchcreations' => 'Добавлять в список наблюдения созданные мной страницы и загруженные мной файлы',
'tog-watchdefault' => 'Добавлять в список наблюдения изменённые мной страницы и описания файлов',
'yourname' => 'Имя учётной записи:',
'userlogin-yourname' => 'Имя учётной записи',
'userlogin-yourname-ph' => 'Введите имя вашей учётной записи',
-'createacct-another-username-ph' => 'Введите имя вашей учётной записи',
+'createacct-another-username-ph' => 'Введите имя учётной записи',
'yourpassword' => 'Пароль:',
'userlogin-yourpassword' => 'Пароль',
'userlogin-yourpassword-ph' => 'Введите свой пароль',
'helplogin-url' => 'Help:Представление системе',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помощь со входом в систему]]',
'userlogin-loggedin' => 'Вы уже вошли как {{GENDER:$1|$1}}.
-Ð\98Ñ\81полÑ\8cзÑ\83йÑ\82е Ñ\84оÑ\80мÑ\83 ниже, Ñ\87Ñ\82обÑ\8b войÑ\82и под дÑ\80Ñ\83гим полÑ\8cзоваÑ\82елем.',
+Ð\98Ñ\81полÑ\8cзÑ\83йÑ\82е Ñ\84оÑ\80мÑ\83 ниже, Ñ\87Ñ\82обÑ\8b войÑ\82и под дÑ\80Ñ\83гой Ñ\83Ñ\87Ñ\91Ñ\82ной запиÑ\81Ñ\8cÑ\8e.',
'userlogin-createanother' => 'Создать другую учётную запись',
'createacct-join' => 'Введите свои данные ниже.',
'createacct-another-join' => 'Введите данные новой учётной записи ниже.',
'createacct-emailoptional' => 'Адрес электронной почты (необязательно)',
'createacct-email-ph' => 'Введите свой адрес электронной почты',
'createacct-another-email-ph' => 'Введите адрес электронной почты',
-'createaccountmail' => 'Ð\98Ñ\81полÑ\8cзоваÑ\82Ñ\8c Ñ\81генеÑ\80иÑ\80ованнÑ\8bй Ñ\81лÑ\83Ñ\87айнÑ\8bм обÑ\80азом вÑ\80еменнÑ\8bй паÑ\80олÑ\8c и вÑ\8bÑ\81лаÑ\82Ñ\8c мне его на Ñ\83казаннÑ\8bй адÑ\80еÑ\81 Ñ\8dлекÑ\82Ñ\80онной поÑ\87Ñ\82Ñ\8b',
+'createaccountmail' => 'Использовать сгенерированный случайным образом временный пароль и выслать его на указанный адрес электронной почты',
'createacct-realname' => 'Настоящее имя (необязательно)',
'createaccountreason' => 'Причина:',
'createacct-reason' => 'Причина',
'retypenew' => 'Повторите ввод нового пароля:',
'resetpass_submit' => 'Установить пароль и представиться',
'changepassword-success' => 'Ваш пароль был успешно изменён!',
+'changepassword-throttled' => 'Вы сделали слишком много попыток представиться системе.
+Пожалуйста, подождите $1 перед тем, как попробовать снова.',
'resetpass_forbidden' => 'Пароль не может быть изменён',
'resetpass-no-info' => 'Чтобы обращаться непосредственно к этой странице, вам следует представиться системе.',
'resetpass-submit-loggedin' => 'Изменить пароль',
'changeemail-password' => 'Ваш пароль для проекта «{{SITENAME}}»:',
'changeemail-submit' => 'Изменить адрес',
'changeemail-cancel' => 'Отмена',
+'changeemail-throttled' => 'Вы сделали слишком много попыток представиться системе.
+Пожалуйста, подождите $1 перед тем, как попробовать снова.',
# Special:ResetTokens
'resettokens' => 'Сбросить токены',
'watchmethod-list' => 'просмотр наблюдаемых страниц для последних изменений',
'watchlistcontains' => 'Ваш список наблюдения содержит $1 {{PLURAL:$1|страница|страниц|страницы}}.',
'iteminvalidname' => 'Проблема с элементом «$1», недопустимое название…',
-'wlnote' => "Ниже {{PLURAL:$1|показано $1 последнее изменение|показаны $1 последних изменений|показаны $1 последние изменения|1=показано последнее изменение}} за {{PLURAL:$2|'''$2''' последний час|последние '''$2''' часов|последние '''$2''' часа|1=последний час}}, по состоянию на $3 $4.",
+'wlnote2' => 'Ниже приведены изменения за {{PLURAL:$1|последний час|последние <strong>$1</strong> часов|последние <strong>$1</strong> часа}} на $2 $3.',
'wlshowlast' => 'Показать за последние $1 часов $2 дней $3',
'watchlist-options' => 'Настройки списка наблюдения',
'delete-warning-toobig' => 'У этой страницы очень длинная история изменений, более $1 {{PLURAL:$1|версии|версий}}.
Её удаление может привести к нарушению нормальной работы базы данных сайта «{{SITENAME}}»;
действуйте с осторожностью.',
-'deleting-backlinks-warning' => "'''Ð\9fÑ\80едÑ\83пÑ\80еждение.''' Ð\9dекоÑ\82оÑ\80Ñ\8bе дÑ\80Ñ\83гие Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ñ\81Ñ\81Ñ\8bлаÑ\8eÑ\82Ñ\81Ñ\8f на даннÑ\83Ñ\8e Ñ\83далÑ\8fемÑ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.",
+'deleting-backlinks-warning' => "'''Ð\9fÑ\80едÑ\83пÑ\80еждение.''' Ð\94Ñ\80Ñ\83гие Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ñ\81Ñ\81Ñ\8bлаÑ\8eÑ\82Ñ\81Ñ\8f или Ñ\81одеÑ\80жаÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, коÑ\82оÑ\80Ñ\83Ñ\8e вÑ\8b Ñ\81обиÑ\80аеÑ\82еÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c.",
# Rollback
'rollback' => 'Откатить изменения',
'range_block_disabled' => 'Администраторам запрещено блокировать диапазоны.',
'ipb_expiry_invalid' => 'Недопустимый период действия.',
'ipb_expiry_temp' => 'Блокировки с сокрытием имени участника должны быть бессрочными.',
-'ipb_hide_invalid' => 'Ð\9dевозможно Ñ\81кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\83Ñ\87Ñ\91Ñ\82нÑ\83Ñ\8e запиÑ\81Ñ\8c, возможно, Ñ\81 неÑ\91 Ñ\81делано Ñ\81лиÑ\88ком много пÑ\80авок.',
+'ipb_hide_invalid' => 'Ð\9dевозможно Ñ\81кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 Ñ\83Ñ\87Ñ\91Ñ\82нÑ\83Ñ\8e запиÑ\81Ñ\8c, Ñ\81 неÑ\91 Ñ\81делано более {{PLURAL:$1|одной пÑ\80авки|$1 пÑ\80авок}}.',
'ipb_already_blocked' => '«$1» уже заблокирован.',
'ipb-needreblock' => '$1 уже {{GENDER:$1|заблокирован|заблокирована}}. Хотите изменить параметры блокировки?',
'ipb-otherblocks-header' => '{{PLURAL:$1|1=Другая блокировка|Другие блокировки}}',
'allmessages-prefix' => 'Фильтр по префиксу:',
'allmessages-language' => 'Язык:',
'allmessages-filter-submit' => 'Перейти',
+'allmessages-filter-translate' => 'Перевести',
# Thumbnails
'thumbnail-more' => 'Увеличить',
'tooltip-pt-watchlist' => 'Список страниц, изменения в которых вы отслеживаете',
'tooltip-pt-mycontris' => 'Список ваших правок',
'tooltip-pt-login' => 'Здесь можно зарегистрироваться в системе, но это необязательно.',
-'tooltip-pt-anonlogin' => 'Здесь можно зарегистрироваться в системе, но это необязательно.',
'tooltip-pt-logout' => 'Завершить сеанс работы',
'tooltip-ca-talk' => 'Обсуждение основной страницы',
'tooltip-ca-edit' => 'Вы можете редактировать эту страницу. Перед тем, как записать свои изменения, воспользуйтесь, пожалуйста, кнопкой предварительного просмотра.',
'tog-numberheadings' => 'Автоматічно чісловати надписы',
'tog-showtoolbar' => 'Вказати панел інштрументів',
'tog-editondblclick' => 'Едітовати двоїтым кликом',
-'tog-editsection' => 'Дозволити едітованя секції сторінкы через одказ [едіт.]',
'tog-editsectiononrightclick' => 'Дозволити едітованя секції сторінкы через кликаня правов клапков мышкы на надписы сторінок',
-'tog-showtoc' => 'Вказовати обсяг (на сторінках з веце як трёма надписами)',
'tog-rememberpassword' => 'Запамнятати моє приголошіня на тім переглядачу (максімално $1 {{PLURAL:$1|день|днів}})',
'tog-watchcreations' => 'Придавати сторінкы створены мнов тай файлы мнов наладованы до мого списку слїдованых',
'tog-watchdefault' => 'Придавати мнов едітованы сторінкы і файлы до списку слїдованых',
'tog-numberheadings' => 'शीर्षकान् स्वयमेव सक्रमांकीकरोतु।',
'tog-showtoolbar' => 'सम्पादन-उपकरण-पट्टिका दर्श्यताम् (जावालिपिः अपेक्ष्यते)',
'tog-editondblclick' => 'द्विक्लिक्कारेण पृष्ठानि सम्पाद्यन्ताम् (जावालिपिः अपेक्ष्यते)',
-'tog-editsection' => '[संपादयतु़] इति संबंधनद्वारा विभाग-संपादनं समर्थयतु।',
'tog-editsectiononrightclick' => 'विभागशीर्षकाणामुपरि दक्षिणक्लिक्करणेन विभागसम्पादनं समर्थ्यताम् (जावालिपिः अपेक्ष्यते)।',
-'tog-showtoc' => 'विषयानुक्रमणिका दर्श्यताम् (त्र्यधिकशीर्षकयुतेषु पृष्ठेषु)।',
'tog-rememberpassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})',
'tog-watchcreations' => 'मया रचितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
'tog-watchdefault' => 'मया सम्पादितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
'tog-numberheadings' => 'Бас тыллары нүөмэрдээ',
'tog-showtoolbar' => 'Көннөрүү үстүрүмүөннэрин көрдөр',
'tog-editondblclick' => 'Хоһулатан иккитэ баттаан сирэйи уларытыы',
-'tog-editsection' => '[Көннөрүү] диэн ыйынньыгынан сиэксийэны көннөрүү',
'tog-editsectiononrightclick' => 'Сиэксийэ баһыгар уҥа тимэҕинэн баттаан сиэксийэни көннөрүү',
-'tog-showtoc' => 'Иһинээҕитин көрдөр (ыстатыйа үстэн ордук бас тыллаах буоллаҕына)',
'tog-rememberpassword' => 'Миигин бу браузерга сигээ ($1 {{PLURAL:$1|күн|күнтэн ордуга суох}})',
'tog-watchcreations' => 'Суруйбут ыстатыйаларбын уонна укпут билэлэрбин кэтээн көрүүгэ киллэрэн ис',
'tog-watchdefault' => 'Уларыппыт сирэйдэрбин уонна билэлэрбин кэтээн көрүү тиһигэр киллэрэн ис',
'tog-numberheadings' => 'Nummirazzioni automàtica dî tìtuli di paràgrafu',
'tog-showtoolbar' => 'Ammustra la barra dî strumenta pi lu canciamentu',
'tog-editondblclick' => "Duppiu click pi canciari l'artìculu (richiedi Javascript)",
-'tog-editsection' => 'Abbìlita lu canciamentu dî sezzioni tràmiti lu culligamentu [cancia]',
'tog-editsectiononrightclick' => 'Abbìlita lu canciamentu dî sezzioni tràmiti duppiu click supra lu tìtulu dâ sezzioni (richiedi Javascript)',
-'tog-showtoc' => "Ammustra l'ìndici (pi artìculi cu cchiù di 3 sezzioni)",
'tog-rememberpassword' => 'Arricorda la password supra stu navigaturi (pi ô massimu $1 {{PLURAL:$1|jornu|jorna}})',
'tog-watchcreations' => "Agghiunci li pàggini criati a l'ossirvati spiciali",
'tog-watchdefault' => "Agghiunci li pàggini canciati a l'ossirvati spiciali",
* @file
*
* @author Kaganer
+ * @author Kolega2357
* @author Nemo bis
* @author OC Ripper
* @author לערי ריינהארט
'tog-numberheadings' => 'Automatski numeriši podnaslove',
'tog-showtoolbar' => 'Pokaži alatnu traku (potreban JavaScript)',
'tog-editondblclick' => 'Izmijeni stranice dvostrukim klikom (potreban JavaScript)',
-'tog-editsection' => 'Omogući uređivanje sekcija preko [uredi] linkova',
'tog-editsectiononrightclick' => 'Uključite uređivanje odjeljka sa pritiskom na desno dugme miša u naslovu odjeljka (JavaScript)',
-'tog-showtoc' => 'Prikaži sadržaj (u svim stranicama sa više od tri podnaslova)',
'tog-rememberpassword' => 'Upamti moju prijavu za ovaj preglednik (za maksimum od $1 {{PLURAL:$1|dan|dana}})',
'tog-watchcreations' => 'Dodaj stranice koje sam stvorio i dadtoteke koje sam poslao u moj spisak praćenih stranica',
'tog-watchdefault' => 'Dodaj stranice i datoteke koje izmijenim u spisak praćenja',
'editfont-serif' => 'Slova serif',
# Dates
-'sunday' => 'nedjelja',
-'monday' => 'ponedjeljak',
-'tuesday' => 'utorak',
-'wednesday' => 'srijeda',
-'thursday' => 'Ä\8detvrtak',
-'friday' => 'petak',
-'saturday' => 'subota',
-'sun' => 'Ned',
-'mon' => 'Pon',
-'tue' => 'Uto',
-'wed' => 'Sri',
-'thu' => 'Čet',
-'fri' => 'Pet',
-'sat' => 'Sub',
-'january' => 'januar',
-'february' => 'februar',
-'march' => 'mart',
-'april' => 'april',
-'may_long' => 'maj',
-'june' => 'jun',
-'july' => 'jul',
-'august' => 'august',
-'september' => 'septembar',
-'october' => 'oktobar',
+'sunday' => 'Nedjelja/Недеља',
+'monday' => 'Ponedjeljak / Понедељак',
+'tuesday' => 'Utorak/Уторак',
+'wednesday' => 'Srijeda/Среда',
+'thursday' => 'Ä\8cetvrtak/ЧеÑ\82вÑ\80Ñ\82ак',
+'friday' => 'Petak/Петак',
+'saturday' => 'Subota/Субота',
+'sun' => 'ned-нед',
+'mon' => 'pon-пон',
+'tue' => 'uto-уто',
+'wed' => 'sri-сре',
+'thu' => 'чет-čet',
+'fri' => 'pet-пет',
+'sat' => 'sub-суб',
+'january' => 'januar-сијечањ',
+'february' => 'februar-вељача',
+'march' => 'mart-ожујак',
+'april' => 'april-травањ',
+'may_long' => 'maj-свибањ',
+'june' => 'jun-липањ',
+'july' => 'jul-српањ',
+'august' => 'avgust-коловоз',
+'september' => 'septembar-рујан',
+'october' => 'oktobar-листопад',
'november' => 'novembar',
-'december' => 'decembar',
-'january-gen' => 'januar',
-'february-gen' => 'februar',
-'march-gen' => 'mart',
-'april-gen' => 'april',
-'may-gen' => 'maj',
-'june-gen' => 'jun',
-'july-gen' => 'jul',
-'august-gen' => 'august',
-'september-gen' => 'septembar',
-'october-gen' => 'oktobar',
+'december' => 'decembar-просинац',
+'january-gen' => 'januara-сијечња',
+'february-gen' => 'februara-вељаче',
+'march-gen' => 'marta-ожујка',
+'april-gen' => 'aprila-травња',
+'may-gen' => 'маја-свибња',
+'june-gen' => 'junа-липња',
+'july-gen' => 'jula-српња',
+'august-gen' => 'augusta-коловоза',
+'september-gen' => 'septembra-рујна',
+'october-gen' => 'oktobra-листопада',
'november-gen' => 'novembar',
-'december-gen' => 'decembar',
-'jan' => 'jan',
-'feb' => 'feb',
-'mar' => 'mar',
-'apr' => 'apr',
-'may' => 'maj',
-'jun' => 'jun',
-'jul' => 'jul',
-'aug' => 'aug',
-'sep' => 'sep',
-'oct' => 'okt',
+'december-gen' => 'decembra-просинца',
+'jan' => 'jan-сиј',
+'feb' => 'feb-вељ',
+'mar' => 'mar-ожу',
+'apr' => 'apr-тра',
+'may' => 'maj-сви',
+'jun' => 'jun-лип',
+'jul' => 'jul-срп',
+'aug' => 'aug-кол',
+'sep' => 'sep-руј',
+'oct' => 'okt-лис',
'nov' => 'nov',
-'dec' => 'dec',
+'dec' => 'dec-про',
'january-date' => '$1. januar',
'february-date' => '$1. februar',
'march-date' => '$1. mart',
'about' => 'O...',
'article' => 'Stranica sadržaja (članak)',
'newwindow' => '(otvara se u novom prozoru)',
-'cancel' => 'Poništi',
+'cancel' => 'Odustani - Одустани',
'moredotdotdot' => 'Još...',
'morenotlisted' => 'Više nije prikazano...',
-'mypage' => 'Stranica',
-'mytalk' => 'Razgovor',
+'mypage' => 'Moja stranica',
+'mytalk' => 'Moj razgovor / Мој разговор',
'anontalk' => 'Razgovor za ovu IP adresu',
-'navigation' => 'Navigacija',
-'and' => ' i',
+'navigation' => 'Navigacija - Навигација',
+'and' => 'i/и',
# Cologne Blue skin
'qbfind' => 'Pronađite',
-'qbbrowse' => 'Prelistajte',
+'qbbrowse' => 'Pregledaj - Прегледај',
'qbedit' => 'Uredi',
'qbpageoptions' => 'Opcije stranice',
'qbmyoptions' => 'Moje opcije',
'variants' => 'Varijante',
'navigation-heading' => 'Navigacijski meni',
-'errorpagetitle' => 'Greška',
+'errorpagetitle' => 'Greška - Грешка',
'returnto' => 'Povratak na $1.',
'tagline' => 'Izvor: {{SITENAME}}',
-'help' => 'Pomoć',
-'search' => 'Pretraga',
+'help' => 'Pomoć / Помоћ',
+'search' => 'Traži / Тражи',
'searchbutton' => 'Traži',
-'go' => 'Idi',
+'go' => 'Idi / Иди',
'searcharticle' => 'Idi',
'history' => 'Historija stranice',
'history_short' => 'Historija',
'updatedmarker' => 'promjene od moje zadnje posjete',
-'printableversion' => 'Verzija za ispis',
+'printableversion' => 'Za štampanje / За штампање',
'permalink' => 'Trajni link',
'print' => 'Štampa',
'view' => 'Vidi',
-'edit' => 'Uredi',
+'edit' => 'Uredi / Уреди',
'create' => 'Napravi',
'editthispage' => 'Uredite ovu stranicu',
'create-this-page' => 'Stvori ovu stranicu',
-'delete' => 'Obriši',
+'delete' => 'Obrisati - Обрисати',
'deletethispage' => 'Obriši ovu stranicu',
'undeletethispage' => 'Vrati ovu stranicu',
'undelete_short' => 'Vrati obrisanih {{PLURAL:$1|$1 izmjenu|$1 izmjene|$1 izmjena}}',
'viewdeleted_short' => 'Pogledaj {{PLURAL:$1|jednu obrisanu izmjenu|$1 obrisane izmjene|$1 obrisanih izmjena}}',
-'protect' => 'Zaštiti',
+'protect' => 'Zaštiti / Заштити',
'protect_change' => 'promijeni',
'protectthispage' => 'Zaštiti ovu stranicu',
'unprotect' => 'Promijeni zaštitu',
'unprotectthispage' => 'Promijeni zaštitu za ovu stranicu',
-'newpage' => 'Nova stranica',
-'talkpage' => 'Razgovaraj o ovoj stranici',
+'newpage' => 'Nova stranica / Нова страница',
+'talkpage' => 'Razgovaraj o ovoj stranici - Разговарај о овој страници',
'talkpagelinktext' => 'Razgovor',
'specialpage' => 'Posebna stranica',
'personaltools' => 'Lični alati',
-'postcomment' => 'Nova sekcija',
+'postcomment' => 'Pošaljite komentar - Пошаљите коментар',
'articlepage' => 'Pogledaj stranicu sa sadržajem (članak)',
-'talk' => 'Razgovor',
+'talk' => 'Razgovor / Разговор',
'views' => 'Pregledi',
-'toolbox' => 'Traka sa alatima',
+'toolbox' => 'Alatke / Алатке',
'userpage' => 'Pogledajte korisničku stranicu',
'projectpage' => 'Pogledajte stranicu projekta',
'imagepage' => 'Vidi stranicu datoteke/fajla',
'viewhelppage' => 'Pogledajte stranicu za pomoć',
'categorypage' => 'Pogledajte stranicu kategorije',
'viewtalkpage' => 'Pogledajte raspravu',
-'otherlanguages' => 'Na drugim jezicima',
+'otherlanguages' => 'Drugi jezici / Други језици',
'redirectedfrom' => '(Preusmjereno sa $1)',
'redirectpagesub' => 'Preusmjeri stranicu',
'lastmodifiedat' => 'Ova stranica je posljednji put izmijenjena $1, $2.',
# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
'aboutsite' => 'O projektu {{SITENAME}}',
'aboutpage' => 'Project:O_projektu_{{SITENAME}}',
-'copyright' => 'Sadržaj je dostupan pod $1.',
+'copyright' => 'Pod licencom / Под лиценцом: $1.',
'copyrightpage' => '{{ns:project}}:Autorska_prava',
'currentevents' => 'Trenutni događaji',
'currentevents-url' => 'Project:Novosti',
'disclaimerpage' => 'Project:Uslovi korištenja, pravne napomene i odricanje odgovornosti',
'edithelp' => 'Pomoć pri uređivanju',
'helppage' => 'Help:Sadržaj',
-'mainpage' => 'Glavna strana',
-'mainpage-description' => 'Glavna strana',
+'mainpage' => 'Glavna stranica / Главна страница',
+'mainpage-description' => 'Glavna stranica / Главна страница',
'policy-url' => 'Project:Pravila',
'portal' => 'Portal zajednice',
'portal-url' => 'Project:Portal_zajednice',
'ok' => 'da',
'retrievedfrom' => 'Dobavljeno iz "$1"',
-'youhavenewmessages' => 'Imate $1 ($2).',
+'youhavenewmessages' => 'Imate / Имате $1 ($2).',
'youhavenewmessagesfromusers' => 'Imate $1 od {{PLURAL:$3|drugog korisnika|$3 korisnika|$3 korisnika}} ($2).',
'youhavenewmessagesmanyusers' => 'Imate $1 od mnogo korisnika ($2).',
'newmessageslinkplural' => '{{PLURAL:$1|novu poruku|$1 nove poruke|$1 novih poruka}}',
'editlink' => 'uredi',
'viewsourcelink' => 'pogledaj kod',
'editsectionhint' => 'Uredi sekciju: $1',
-'toc' => 'Sadržaj',
-'showtoc' => 'prikaži',
-'hidetoc' => 'sakrij',
+'toc' => 'Sadržaj / Садржај',
+'showtoc' => 'prikaži / прикажи',
+'hidetoc' => 'sakrij - сакриј',
'collapsible-collapse' => 'Sakrij',
'collapsible-expand' => 'Proširi',
'thisisdeleted' => 'Pogledaj ili vrati $1?',
'sort-ascending' => 'Poredaj rastuće',
# Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Stranica',
-'nstab-user' => 'Korisnička stranica',
+'nstab-main' => 'Članak / Чланак',
+'nstab-user' => 'Korisnik / Корисник',
'nstab-media' => 'Mediji',
'nstab-special' => 'Posebna stranica',
'nstab-project' => 'Stranica projekta',
'nstab-image' => 'Datoteka',
-'nstab-mediawiki' => 'Poruka',
-'nstab-template' => 'Šablon',
-'nstab-help' => 'Stranica pomoći',
-'nstab-category' => 'Kategorija',
+'nstab-mediawiki' => 'Poruka / Порука',
+'nstab-template' => 'Šablon / Шаблон',
+'nstab-help' => 'Pomoć / Помоћ',
+'nstab-category' => 'Kategorija / Категорија',
# Main script and global functions
'nosuchaction' => 'Nema takve akcije',
Lista valjanih posebnih stranica se može naći na [[Special:SpecialPages|{{int:specialpages}}]].',
# General errors
-'error' => 'Greška',
+'error' => 'Greška - Грешка',
'databaseerror' => 'Greška u bazi podataka',
'laggedslavemode' => "'''Upozorenje''': Stranica ne mora sadržavati posljednja ažuriranja.",
'readonly' => 'Baza podataka je zaključana',
U slučaju da se ne radi o gore navedenom, moguće je da ste pronašli grešku u programu.
Molimo Vas da ovo prijavite [[Special:ListUsers/sysop|administratoru]] sa navođenjem tačne adrese stranice',
'missingarticle-rev' => '(izmjena#: $1)',
-'missingarticle-diff' => '(Razl: $1, $2)',
+'missingarticle-diff' => '(razlika: $1, $2)',
'readonly_lag' => 'Baza podataka je zaključana dok se sekundarne baze podataka na serveru ne sastave sa glavnom.',
'internalerror' => 'Interna pogreška',
'internalerror_info' => 'Interna greška: $1',
'welcomeuser' => 'Dobro došli, $1!',
'welcomecreation-msg' => 'Vaš korisnički račun je napravljen.
Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].',
-'yourname' => 'Korisničko ime:',
+'yourname' => 'Vaše korisničko ime / Ваше корисничко име',
'userlogin-yourname' => 'Korisničko ime',
'userlogin-yourname-ph' => 'Unesite svoje korisničko ime',
'createacct-another-username-ph' => 'Unesi korisničko ime',
-'yourpassword' => 'Lozinka/zaporka:',
+'yourpassword' => 'Vaša šifra / Ваша шифра:',
'userlogin-yourpassword' => 'Lozinka/zaporka',
'userlogin-yourpassword-ph' => 'Unesite svoju lozinku/zaporku',
'createacct-yourpassword-ph' => 'Unesite lozinku/zaporku',
-'yourpasswordagain' => 'Ponovno utipkajte lozinku/zaporku:',
+'yourpasswordagain' => 'Ponovo upišite šifru / Поново упишите шифру',
'createacct-yourpasswordagain' => 'Potvrdite lozinku/zaporku',
'createacct-yourpasswordagain-ph' => 'Unesite lozinku/zaporku ponovno',
'remembermypassword' => 'Upamti moju lozinku na ovom kompjuteru (za maksimum od $1 {{PLURAL:$1|dan|dana}})',
'yourdomainname' => 'Vaš domen:',
'password-change-forbidden' => 'Ne možete da promenite lozinku na ovom vikiju.',
'externaldberror' => 'Došlo je do greške pri vanjskoj autorizaciji baze podataka ili vam nije dopušteno osvježavanje Vašeg vanjskog korisničkog računa.',
-'login' => 'Prijavi se',
+'login' => 'Prijavi me - Пријави ме',
'nav-login-createaccount' => 'Prijavi se / Registruj se',
'loginprompt' => "Morate imati kolačiće ('''cookies''') omogućene da biste se prijavili na {{SITENAME}}.",
'userlogin' => 'Prijavi se / stvori korisnički račun',
'userloginnocreate' => 'Prijavi se',
-'logout' => 'Odjavi me',
-'userlogout' => 'Odjava',
+'logout' => 'Odjavi se - Одјави се',
+'userlogout' => 'Odjavi se / Одјави се',
'notloggedin' => 'Niste prijavljeni',
'userlogin-noaccount' => 'Nemate račun?',
'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
'nologin' => "Nemate korisničko ime? '''$1'''.",
'nologinlink' => 'Otvorite račun',
-'createaccount' => 'Napravi korisnički račun',
+'createaccount' => 'Napraviti novi nalog / Направити нови налог',
'gotaccount' => "Imate račun? '''$1'''.",
-'gotaccountlink' => 'Prijavi se',
+'gotaccountlink' => 'Prijavite se / Пријавите се',
'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
'userlogin-resetpassword-link' => 'Resetirajte svoju lozinku/zaporku',
'helplogin-url' => 'Help:Logiranje',
Provjerite da li su cookies omogućeni, ponovo učitajte ovu stranicu i pokušajte ponovo.',
'noname' => 'Niste izabrali ispravno korisničko ime.',
'loginsuccesstitle' => 'Prijavljivanje uspješno',
-'loginsuccess' => "'''Sad ste prijavljeni na {{SITENAME}} kao \"\$1\".'''",
+'loginsuccess' => 'Trenutno ste prijavljeni na {{SITENAME}} kao "$1".',
'nosuchuser' => 'Ne postoji korisnik sa imenom "$1".
Korisnička imena razlikuju velika i mala slova.
Provjerite vaše kucanje ili [[Special:UserLogin/signup|napravite novi korisnički račun]].',
Provjerite da li ste dobro ukucali.',
'nouserspecified' => 'Morate izabrati korisničko ime.',
'login-userblocked' => 'Ovaj korisnik je blokiran. Prijava nije dozvoljena.',
-'wrongpassword' => 'Unijeli ste neispravnu šifru.
-Molimo Vas da pokušate ponovno.',
+'wrongpassword' => 'Šifra koju ste uneli je neodgovarajuće. Molimo, upišite je ponovo.
+
+Шифра коју сте унели је неодговарајућа. Молимо, упишите је поново.',
'wrongpasswordempty' => 'Unesena šifra je bila prazna.
Molimo Vas da pokušate ponovno.',
'passwordtooshort' => 'Lozinka mora imati najmanje {{PLURAL:$1|1 znak|$1 znakova}}.',
Molimo vas da unesete ispravnu adresu ili ostavite prazno polje.',
'cannotchangeemail' => 'Na ovom wikiju ne možete promeniti e-mail adresu računa.',
'emaildisabled' => 'Ova web-stranica ne može da šalje e-poruke.',
-'accountcreated' => 'Korisnički račun je napravljen',
-'accountcreatedtext' => 'Korisnički račun za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|razgovor]]) je napravljen.',
+'accountcreated' => 'Korisnički nalog kreiran / Кориснички налог креиран',
+'accountcreatedtext' => 'Korisnički račun za $1 je kreiran. Кориснички налог за $1 је креиран.',
'createaccount-title' => 'Pravljenje korisničkog računa za {{SITENAME}}',
'createaccount-text' => 'Neko je napravio korisnički račun za vašu e-mail adresu na {{SITENAME}} ($4) sa imenom "$2", i sa šifrom "$3".
Trebali biste se prijaviti i promjeniti šifru.
# Edit pages
'summary' => 'Sažetak:',
'subject' => 'Tema/naslov:',
-'minoredit' => 'Ovo je manja izmjena',
-'watchthis' => 'Prati ovu stranicu',
-'savearticle' => 'Snimi stranicu',
-'preview' => 'Pretpregled',
-'showpreview' => 'Prikaži izgled',
+'minoredit' => 'Mala izmjena - Мала измена',
+'watchthis' => 'Prati / Прати',
+'savearticle' => 'Sačuvaj - Сачувај',
+'preview' => 'Pretpregled / Претпреглед',
+'showpreview' => 'Pretpregled - Претпреглед',
'showlivepreview' => 'Pretpregled uživo',
-'showdiff' => 'Prikaži izmjene',
+'showdiff' => 'Prikaži izmjene - Прикажи измене',
'anoneditwarning' => "'''Upozorenje:''' Niste prijavljeni.
Vaša IP adresa će biti zabilježena u historiji ove stranice.",
'anonpreviewwarning' => "''Niste prijavljeni. Vaša IP adresa će biti zabilježena u historiji ove stranice.''",
'nosuchsectiontitle' => 'Ne mogu pronaći sekciju',
'nosuchsectiontext' => 'Pokušali ste uređivati sekciju koja ne postoji.
Možda je premještena ili obrisana dok ste pregledavali stranicu.',
-'loginreqtitle' => 'Potrebno je prijavljivanje',
+'loginreqtitle' => 'Potrebno je da se [[{{ns:-1}}:Userlogin|prijavite]]',
'loginreqlink' => 'prijavi se',
'loginreqpagetext' => 'Morate $1 da bi ste vidjeli druge stranice.',
-'accmailtitle' => 'Lozinka poslana.',
-'accmailtext' => "Nasumično odabrana lozinka za nalog [[User talk:$1|$1]] je poslata na adresu $2.
+'accmailtitle' => 'Šifra je poslana!
+
-Lozinka za ovaj novi račun može biti promijenjena na stranici ''[[Special:ChangePassword|izmjene šifre]]'' nakon prijave.",
+Шифра је послата!',
+'accmailtext' => "Šifra za nalog '$1' je poslana na adresu $2.
+
+
+Шифра за налог '$1' је послата на адресу $2.",
'newarticle' => '(Novi)',
'newarticletext' => "Preko linka ste došli na stranicu koja još uvijek ne postoji.
* Ako želite stvoriti stranicu, počnite tipkati u okviru dolje (v. [[{{MediaWiki:Helppage}}|stranicu za pomoć]] za više informacija).
'''Još uvijek nije snimljen!'''",
'sitejspreview' => "'''Zapamtite ovo je samo izgled ovog koda JavaScripte.'''
'''Još uvijek nije snimljen!'''",
-'userinvalidcssjstitle' => "'''Upozorenje:''' Ne postoji interfejs (skin) pod imenom \"\$1\".
-Ne zaboravite da imena stranica s .css i .js kodom počinju malim slovom, npr. {{ns:user}}:Foo/vector.css, a ne {{ns:user}}:Foo/Vector.css.",
+'userinvalidcssjstitle' => "'''Upozorenje:''' Nema skina pod imenom \"\$1\".
+Upamtite da korisničke .css i .js stranice koriste naslov s malim slovom, npr. {{ns:user}}:Foo/monobook.css umjesto {{ns:user}}:Foo/Monobook.css.",
'updated' => '(Osvježeno)',
'note' => "'''Napomena:'''",
'previewnote' => "'''Ne zaboravite da je ovo samo pregled'''
Vaše izmjene su prikazane u donjem tekstu.
Moraćete da unesete svoje promjene u postojeći tekst.
'''Samo''' tekst u gornjem tekstualnom polju će biti snimljen kad pritisnete \"{{int:savearticle}}\".",
-'yourtext' => 'Vaš tekst',
+'yourtext' => 'Vaš tekst / Ваш текст',
'storedversion' => 'Uskladištena verzija',
'nonunicodebrowser' => "'''UPOZORENJE: Vaš preglednik ne podržava Unicode zapis znakova.
Molimo Vas promijenite ga prije sljedećeg uređivanja članaka. Znakovi koji nisu po ASCII standardu će se u prozoru za izmjene pojaviti kao heksadecimalni kodovi.'''",
'editingold' => "'''PAŽNJA: Vi mijenjate stariju reviziju ove stranice.
Ako je snimite, sve promjene učinjene od ove revizije će biti izgubljene.'''",
-'yourdiff' => 'Razlike',
+'yourdiff' => 'Razlike / Разлике',
'copyrightwarning' => "Molimo da uzmete u obzir kako se smatra da su svi doprinosi u {{SITENAME}} izdani pod $2 (v. $1 za detalje).
Ukoliko ne želite da vaše pisanje bude nemilosrdno uređivano i redistribuirano po tuđoj volji, onda ga nemojte ovdje objavljivati.<br />
Također obećavate kako ste ga napisali sami ili kopirali iz izvora u javnoj domeni ili sličnog slobodnog izvora.
'''NE ŠALJITE DJELA ZAŠTIĆENA AUTORSKIM PRAVOM BEZ DOZVOLE!'''",
'longpageerror' => "'''Greška: tekst koji ste uneli je veličine {{PLURAL:$1|jedan kilobajt|$1 kilobajta|$1 kilobajta}}, što je veće od {{PLURAL:$2|dozvoljenog jednog kilobajta|dozvoljena $2 kilobajta|dozvoljenih $2 kilobajta}}.'''
Stranica ne može biti sačuvana.",
-'readonlywarning' => "'''PAŽNJA: Baza je zaključana zbog održavanja, tako da nećete moći da sačuvate svoje izmjene za sada.'''
-Možda želite da kopirate i nalijepite tekst u tekst editor i sačuvate ga za kasnije.
-
-Administrator koji je zaključao bazu je naveo slijedeće objašnjenje: $1",
+'readonlywarning' => "<font color=\"#FF0000\">'''PAŽNJA:'''</font> Baza je upravo zaključana zbog održavanja,
+tako da nećete moći da snimite svoje izmene upravo sada. Možda želite da iskopirate i nalepite
+tekst u tekst editor i snimite ga za kasnije.
+<br>
+<font color=\"#FF0000\">'''ПАЖЊА:'''</font> База је управо закључана због одржавања,
+тако да нећете моћи да снимите своје измене управо сада. Можда желите да ископирате и налепите
+текст у текст едитор и снимите га за касније.",
'protectedpagewarning' => "'''PAŽNJA: Ova stranica je zaključana tako da samo korisnici sa administratorskim privilegijama mogu da je mijenjaju.'''
Posljednja stavka u registru je prikazana ispod kao referenca:",
'semiprotectedpagewarning' => "'''Pažnja:''' Ova stranica je zaključana tako da je samo registrovani korisnici mogu uređivati.
'nextrevision' => 'Novija izmjena →',
'currentrevisionlink' => 'Trenutna verzija',
'cur' => 'tren',
-'next' => 'slijed',
-'last' => 'preth',
+'next' => 'sljed - след',
+'last' => 'preth - претх',
'page_first' => 'prva',
'page_last' => 'zadnja',
'histlegend' => "Odabir razlika: označite radio dugme verzija za usporedbu i pritisnite enter ili dugme na dnu.<br />
'revdelete-hide-image' => 'Sakrij sadržaj datoteke',
'revdelete-hide-name' => 'Sakrij akciju i cilj',
'revdelete-hide-comment' => 'Sakrij izmjene komentara',
-'revdelete-hide-user' => 'Sakrij korisničko ime urednika/IP',
+'revdelete-hide-user' => 'Sakrij korisničko ime / IP adresu korisnika koji je uređivao stranicu',
'revdelete-hide-restricted' => 'Ograniči podatke za administratore kao i za druge korisnike',
'revdelete-radio-same' => '(ne mijenjaj)',
'revdelete-radio-set' => 'Da',
'lineno' => 'Linija $1:',
'compareselectedversions' => 'Uporedite označene verzije',
'showhideselectedversions' => 'Pokaži/sakrij odabrane verzije',
-'editundo' => 'ukloni ovu izmjenu',
+'editundo' => 'ukloni ovu izmjenu - уклони ову измену',
'diff-empty' => '(nema razlike)',
'diff-multi' => '({{PLURAL:$1|Nije prikazana jedna međuverzija|Nisu prikazane $1 međuverzije|Nije prikazano $1 međuverzija}}) od strane {{PLURAL:$2|korisnika|korisnika}}',
'diff-multi-manyusers' => '({{PLURAL:$1|Nije prikazana jedna međuverzija|Nisu prikazane $1 međuverzije|Nije prikazano $1 međuverzija}}) od strane {{PLURAL:$2|korisnika|korisnika}}',
'textmatches' => 'Tekst stranice odgovara',
'notextmatches' => 'Tekst stranice ne odgovara',
'prevn' => 'prethodna {{PLURAL:$1|$1}}',
-'nextn' => 'sljedećih {{PLURAL:$1|$1}}',
+'nextn' => 'sljedećih - следећих $1',
'prevn-title' => '{{PLURAL:$1|Prethodni $1 rezultat|Prethodna $1 rezultata|Prethodnih $1 rezultata}}',
'nextn-title' => '{{PLURAL:$1|Slijedeći $1 rezultat|Slijedeća $1 rezultata|Slijedećih $1 rezultata}}',
'shown-title' => 'Pokaži $1 {{PLURAL:$1|rezultat|rezultata}} po stranici',
'search-error' => 'Dogodila se pogreška prilikom pretraživanja: $1',
# Preferences page
-'preferences' => 'Postavke',
-'mypreferences' => 'Postavke',
+'preferences' => 'Postavke / Подешавања',
+'mypreferences' => 'Moje postavke / Моја подешавања',
'prefs-edits' => 'Broj izmjena:',
'prefs-skin' => 'Izgled (skin)',
'skin-preview' => 'Pretpregled',
'prefs-user-pages' => 'Korisničke stranice',
'prefs-personal' => 'Korisnički profil',
'prefs-rc' => 'Podešavanje nedavnih izmjena',
-'prefs-watchlist' => 'Praćene stranice',
+'prefs-watchlist' => 'Praćene stranice / Списак надгледања',
'prefs-watchlist-days' => 'Broj dana za prikaz u spisku praćenja:',
'prefs-watchlist-days-max' => '(najviše $1 {{PLURAL:$1|dan|dana}})',
'prefs-watchlist-edits' => 'Najveći broj izmjena za prikaz u proširenom spisku praćenja:',
'prefs-watchlist-edits-max' => 'Maksimalni broj: 1000',
'prefs-watchlist-token' => 'Token spiska za praćenje:',
-'prefs-misc' => 'Ostala podešavanja',
+'prefs-misc' => 'Razno / Разно',
'prefs-resetpass' => 'Promijeni lozinku',
'prefs-changeemail' => 'Promijeni E-mail',
'prefs-setemail' => 'Postavite E-mail adresu',
'recentchangescount' => 'Broj uređivanja za prikaz po pretpostavkama:',
'prefs-help-recentchangescount' => 'Ovo uključuje nedavne izmjene, historije stranice i registre.',
'savedprefs' => 'Vaša postavke su snimljene.',
-'timezonelegend' => 'Vremenska zona:',
+'timezonelegend' => 'Vremenska zona / Временска зона',
'localtime' => 'Lokalno vrijeme:',
'timezoneuseserverdefault' => 'Koristi postavke wikija ($1)',
'timezoneuseoffset' => 'Ostalo (odredi odstupanje)',
'prefs-reset-intro' => 'Možete koristiti ovu stranicu da poništite Vaše postavke na ovom sajtu na pretpostavljene vrijednosti.
Ovo se ne može vratiti unazad.',
'prefs-emailconfirm-label' => 'E-mail potvrda:',
-'youremail' => 'E-mail:',
+'youremail' => 'Vaša e-pošta / Ваша е-пошта*',
'username' => 'Ime {{GENDER:$1|korisnika|korisnice}}:',
'uid' => '{{GENDER:$1|Korisnički}} ID:',
'prefs-memberingroups' => '{{GENDER:$2|Korisnik|Korisnica}} je član {{PLURAL:$1|grupe|grupâ}}:',
'prefs-registration' => 'Vrijeme registracije:',
-'yourrealname' => 'Vaše pravo ime:',
-'yourlanguage' => 'Jezik:',
+'yourrealname' => 'Vaše ime / Ваше име*',
+'yourlanguage' => 'Jezik interfejsa / Језик интерфејса',
'yourvariant' => 'Varijanta jezika:',
'prefs-help-variant' => 'Željena varijanta ili pravopis za prikaz stranica sa sadržajem ovog vikija.',
-'yournick' => 'Nadimak (za potpise):',
+'yournick' => 'Vaš nadimak (za potpise) / Ваш надимак (за потписе)',
'prefs-help-signature' => 'Komentari na stranicama za razgovor trebaju biti potpisani sa "<nowiki>~~~~</nowiki>" koje će biti pretvoreno u vaš potpis i vrijeme.',
'badsig' => 'Loš sirovi potpis.
Provjerite HTML tagove.',
'email' => 'E-mail',
'prefs-help-realname' => 'Pravo ime nije obavezno.
Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
-'prefs-help-email' => 'E-mail adresa je opcionalna, ali Vam omogućava da Vam se pošalje nova šifra u slučaju da je izgubite ili zaboravite.',
+'prefs-help-email' => '* E-mail (nije obavezno): omogućuje drugima da Vas kontaktiraju na korisničkoj strani ili strani za razgovor bez javnog pokazivanja Vaše elektronske adrese. Ako zaboravite šifru možemo Vam na ovu adresu poslati novu, privremenu. <br/>
+
+* Е-пошта (није обавезно): Омогућује другима да Вас контактирају на корисничкој страни или страни за разговор без јавног показивања Ваше електронске адресе. Ако заборавите шифру, можемо Вам на ову адресу послати нову, привремену.',
'prefs-help-email-others' => 'Također možete da odaberete da vas drugi kontaktiraju putem vaše korisničke stranice ili stranice za razgovor bez otkrivanja vašeg identiteta.',
'prefs-help-email-required' => 'Neophodno je navesti e-mail adresu.',
'prefs-info' => 'Osnovne informacije',
'userrights' => 'Postavke korisničkih prava',
'userrights-lookup-user' => 'Menadžment korisničkih prava',
'userrights-user-editname' => 'Unesi korisničko ime:',
-'editusergroup' => 'Uredi korisničke grupe',
+'editusergroup' => 'Menjaj Grupe Korisnika',
'editinguser' => "Mijenjate korisnička prava {{GENDER:$1|korisnika|korisnice|korisnika}} '''[[User:$1|$1]]''' $2",
'userrights-editusergroup' => 'Uredi korisničke grupe',
'saveusergroups' => 'Snimi korisničke grupe',
'group-sysop' => 'Administratori',
'group-bureaucrat' => 'Birokrati',
'group-suppress' => 'Nadzornici',
-'group-all' => '(sve)',
+'group-all' => '(svi)',
'group-user-member' => '{{GENDER:$1|korisnik|korisnica|korisnik}}',
'group-autoconfirmed-member' => '{{GENDER:$1|automatski potvrđen korisnik|automatski potvrđena korisnica|automatski potvrđen korisnik}}',
'newuserlogpagetext' => 'Ovo je evidencija registracije novih korisnika.',
# User rights log
-'rightslog' => 'Registar korisničkih prava',
+'rightslog' => 'Evidencija korisničkih prava',
'rightslogtext' => 'Ovo je evidencija izmjene korisničkih prava.',
# Associated actions - in the sentence "You do not have permission to X"
# Recent changes
'nchanges' => '$1 {{PLURAL:$1|izmjena|izmjene|izmjena}}',
-'recentchanges' => 'Nedavne izmjene',
+'recentchanges' => 'Nedavne izmjene / Скорашње измене',
'recentchanges-legend' => 'Postavke za Nedavne promjene',
'recentchanges-summary' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
'recentchanges-noresult' => 'Bez promjena tokom cijelog perioda koji ispunjava ove kriterije.',
'recentchanges-label-unpatrolled' => 'Ova izmjena još nije patrolirana',
'recentchanges-legend-newpage' => '$1 - nova stranica',
'rcnotefrom' => "Ispod {{PLURAL:$1|je '''$1''' izmjena|su '''$1''' zadnje izmjene|su '''$1''' zadnjih izmjena}} u {{PLURAL:$2|posljednjem '''$2''' danu|posljednja '''$2''' dana|posljednjih '''$2''' dana}}, od $4, $5.",
-'rclistfrom' => 'Prikaži nove izmjene počevši od $1',
-'rcshowhideminor' => '$1 male izmjene',
-'rcshowhidebots' => '$1 botove',
+'rclistfrom' => 'Prikaži nove poruke od / Прикажи нове поруке од $1',
+'rcshowhideminor' => '$1 male izmjene / мале измене',
+'rcshowhidebots' => '$1 botove / ботове',
'rcshowhideliu' => '$1 prijavljene korisnike',
-'rcshowhideanons' => '$1 anonimne korisnike',
-'rcshowhidepatr' => '$1 patrolirane izmjene',
-'rcshowhidemine' => '$1 moje izmjene',
-'rclinks' => 'Prikaži najskorijih $1 izmjena u posljednjih $2 dana<br />$3',
+'rcshowhideanons' => '$1 anonimne / анонимне',
+'rcshowhidepatr' => '$1 označene / означене',
+'rcshowhidemine' => '$1 vlastite izmjene / сопствене измене',
+'rclinks' => '<br>
+Prikaži zadnjih / Прикажи последњих $1 promjena / промена<br>
+u zadnjih / у последњних $2 dana / дана<br />
+<br>
+$3
+<br>',
'diff' => 'razl',
'hist' => 'hist',
'hide' => 'Sakrij',
-'show' => 'Prikaži',
-'minoreditletter' => 'm',
+'show' => 'prikaži / прикажи',
+'minoreditletter' => 'm/м',
'newpageletter' => 'N',
'boteditletter' => 'b',
'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|korisnik|korisnika}} koji pregledaju]',
'rc-old-title' => 'prvobitno kreirano kao "$1"',
# Recent changes linked
-'recentchangeslinked' => 'Srodne izmjene',
+'recentchangeslinked' => 'Srodne izmjene / Сродне измене',
'recentchangeslinked-feed' => 'Srodne izmjene',
'recentchangeslinked-toolbox' => 'Srodne izmjene',
'recentchangeslinked-title' => 'Srodne promjene sa "$1"',
'uploadlogpage' => 'Registar postavljanja',
'uploadlogpagetext' => 'Ispod je popis najnovijih postavljanja datoteka.
Vidi [[Special:NewFiles|galeriju novih datoteka]] za slikovitiji pregled.',
-'filename' => 'Ime datoteke',
-'filedesc' => 'Sažetak',
-'fileuploadsummary' => 'Sažetak:',
+'filename' => 'Ime fajla / Име датотеке',
+'filedesc' => 'Sažetak - Сажетак',
+'fileuploadsummary' => 'Sažetak / Сажетак:',
'filereuploadsummary' => 'Izmjene datoteke:',
'filestatus' => 'Status autorskih prava:',
-'filesource' => 'Izvor:',
+'filesource' => 'Izvor / Извор',
'uploadedfiles' => 'Postavljene datoteke',
'ignorewarning' => 'Zanemari upozorenja i sačuvaj datoteku',
'ignorewarnings' => 'Zanemari sva upozorenja',
Molimo provjerite da li je stranica postavljena, malo pričekajte i pokušajte ponovno.
Možda možete pokušati kada bude manje opterećenje.',
-'license' => 'Licenca:',
+'license' => 'Licenca - Лиценца',
'license-header' => 'Licenciranje',
'nolicense' => 'Ništa nije odabrano',
'license-nopreview' => '(Pregled nije dostupan)',
'unusedtemplateswlh' => 'ostali linkovi',
# Random page
-'randompage' => 'Slučajna stranica',
+'randompage' => 'Slučajna stranica / Случајна страница',
'randompage-nopages' => 'Nema stranica u {{PLURAL:$2|slijedećem imenskom prostoru|slijedećim imenskim prostorima}}: "$1".',
# Random redirect
-'randomredirect' => 'Slučajno preusmjerenje',
+'randomredirect' => 'Slučajno preusmjerenje / Случајно преусмјерење',
'randomredirect-nopages' => 'Nema preusmjerenja u imenskom prostoru "$1".',
# Statistics
-'statistics' => 'Statistike',
+'statistics' => 'Statistike / Статистике',
'statistics-header-pages' => 'Statistike stranice',
'statistics-header-edits' => 'Statistike izmjena',
'statistics-header-views' => 'Statistike pregleda',
'specialpage-empty' => 'Ne postoje rezultati za ovaj izvještaj.',
'lonelypages' => 'Stranice - siročići',
'lonelypagestext' => 'Slijedeće stranice nemaju linkove na ostalim stranicama na ovoj {{SITENAME}}.',
-'uncategorizedpages' => 'Nekategorisane stranice',
-'uncategorizedcategories' => 'Nekategorisane kategorije',
+'uncategorizedpages' => 'Nekategorisane stranice / Некатегорисане странице',
+'uncategorizedcategories' => 'Nekategorisane kategorije / Некатегорисане категорије',
'uncategorizedimages' => 'Slike bez kategorije',
'uncategorizedtemplates' => 'Šabloni bez kategorije',
'unusedcategories' => 'Neiskorištene kategorije',
'unusedimages' => 'Neupotrebljene datoteke',
'popularpages' => 'Popularne stranice',
'wantedcategories' => 'Tražene kategorije',
-'wantedpages' => 'Tražene stranice',
+'wantedpages' => 'Tražene stranice / Тражене странице',
'wantedpages-badtitle' => 'Nevaljan naslov u setu rezultata: $1',
'wantedfiles' => 'Tražene datoteke',
'wantedfiletext-cat' => 'Sledeće datoteke se koriste, ali ne postoje. Datoteke iz drugih spremnika mogu biti navedene iako ne postoje. Takve datoteke će biti <del>izbačene</del> sa spiska. Pored toga, stranice koje sadrže nepostojeće datoteke se nalaze [[:$1|ovde]].',
'wantedfiletext-nocat' => 'Sledeće datoteke se koriste, ali ne postoje. Datoteke iz drugih spremnika mogu biti navedene iako ne postoje. Takve datoteke će biti <del>izbačene</del> sa spiska.',
'wantedtemplates' => 'Potrebni šabloni',
-'mostlinked' => 'Stranice sa najviše linkova',
-'mostlinkedcategories' => 'Kategorije sa najviše linkova',
+'mostlinked' => 'Najviše povezanih sa člancima / Највише повезаних са чланцима',
+'mostlinkedcategories' => 'Najviše povezanih sa kategorijama / Највише повезаних са категоријама',
'mostlinkedtemplates' => 'Šabloni sa najviše linkova',
'mostcategories' => 'Stranice sa najviše kategorija',
-'mostimages' => 'Datoteke sa najviše linkova',
+'mostimages' => 'Najviše povezanih sa slikama / Највише повезаних са сликама',
'mostinterwikis' => 'Stranice s najviše međuwiki poveznica',
'mostrevisions' => 'Stranice sa najviše izmjena',
'prefixindex' => 'Sve stranice sa prefiksom',
'prefixindex-namespace' => 'Sve stranice s predmetkom (imenski prostor $1)',
'shortpages' => 'Kratke stranice',
-'longpages' => 'Dugačke stranice',
-'deadendpages' => 'Stranice bez internih linkova',
+'longpages' => 'Duge stranice / Дуге странице',
+'deadendpages' => 'Članci bez internih linkova / Чланци без интерних линкова',
'deadendpagestext' => 'Slijedeće stranice nisu povezane s drugim stranicama na {{SITENAME}}.',
-'protectedpages' => 'Zaštićene stranice',
+'protectedpages' => 'Zaštićene stranice / Заштићене странице',
'protectedpages-indef' => 'Samo neograničena zaštićenja',
'protectedpages-cascade' => 'Samo prenosive zaštite',
'protectedpagesempty' => 'Trenutno nijedna stranica nije zaštićena s ovim parametrima.',
'listusers-creationsort' => 'Sortiraj po datumu pravljenja',
'usereditcount' => '$1 {{PLURAL:$1|izmjena|izmjene}}',
'usercreated' => '{{GENDER:$3|je napravio|je napravila|je napravio}} dana $1 u $2',
-'newpages' => 'Nove stranice',
+'newpages' => 'Nove stranice / Нове странице',
'newpages-username' => 'Korisničko ime:',
-'ancientpages' => 'Najstarije stranice',
+'ancientpages' => 'Najstarije stranice / Најстарије странице',
'move' => 'Premjesti',
'movethispage' => 'Premjesti ovu stranicu',
'unusedimagestext' => 'Slijedeće datoteke postoje ali nisu uključene ni u jednu stranicu.
# Special:Log
'specialloguserlabel' => 'Izvršilac:',
'speciallogtitlelabel' => 'Cilj (naslov ili korisnik):',
-'log' => 'Registri',
-'all-logs-page' => 'Svi javni registri',
+'log' => 'Evidencije',
+'all-logs-page' => 'Sve evidencije - Све евиденције',
'alllogstext' => 'Zajednički prikaz svih dostupnih evidencija sa {{SITENAME}}.
Možete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena ili promjenjenog članka (razlikovati velika slova).',
'logempty' => 'Ne postoji takav zapis.',
'showhideselectedlogentries' => 'Prikaži/sakrij izabrane zapise u evidenciji',
# Special:AllPages
-'allpages' => 'Sve stranice',
+'allpages' => 'Sve stranice / Све странице',
'alphaindexline' => '$1 do $2',
'nextpage' => 'Sljedeća strana ($1)',
'prevpage' => 'Prethodna stranica ($1)',
'allpagesfrom' => 'Prikaži stranice koje počinju od:',
'allpagesto' => 'Pokaži stranice koje završavaju na:',
-'allarticles' => 'Sve stranice',
+'allarticles' => 'Svi članci / Сви чланци',
'allinnamespace' => 'Sve stranice (imenski prostor $1)',
-'allpagessubmit' => 'Idi',
+'allpagessubmit' => 'Idi / Иди',
'allpagesprefix' => 'Prikaži stranice sa prefiksom:',
'allpagesbadtitle' => 'Dati naziv stranice je nepravilan ili ima međujezički ili interwiki prefiks.
Možda sadrži jedan ili više znakova koji se ne mogu koristiti u naslovima.',
# Special:ListUsers
'listusersfrom' => 'Prikaži korisnike počev od:',
-'listusers-submit' => 'Pokaži',
+'listusers-submit' => 'Prikaži - Прикажи',
'listusers-noresult' => 'Nije pronađen korisnik.',
'listusers-blocked' => '(blokiran)',
'emailsubject' => 'Tema:',
'emailmessage' => 'Poruka:',
'emailsend' => 'Pošalji',
-'emailccme' => 'Pošalji mi kopiju moje poruke.',
+'emailccme' => 'Pošalji mi e-mailom kopiju moje poruke.',
'emailccsubject' => 'Kopiranje Vaše poruke za $1: $2',
'emailsent' => 'E-mail poruka poslata',
'emailsenttext' => 'Vaša poruka je poslata e-poštom.',
'usermessage-editor' => 'Sistem za poruke',
# Watchlist
-'watchlist' => 'Spisak praćenja',
-'mywatchlist' => 'Spisak praćenja',
+'watchlist' => 'Spisak praćenja / Списак праћења',
+'mywatchlist' => 'Moj popis praćenja / Списак надгледања',
'watchlistfor2' => 'Za $1 $2',
'nowatchlist' => 'Nemate ništa na svom spisku praćenih članaka.',
'watchlistanontext' => 'Molimo da $1 da možete vidjeti ili urediti stavke na Vašem spisku praćenja.',
-'watchnologin' => 'Niste prijavljeni',
-'watchnologintext' => 'Morate biti [[Special:UserLogin|prijavljeni]] da bi ste mijenjali spisak praćenih članaka.',
+'watchnologin' => 'Niste logovani / Нисте логовани',
+'watchnologintext' => 'Morate da budete [[Special:Userlogin|prijavljeni]] da biste sređivali spisak praćenja.',
'addwatch' => 'Dodaj u popis praćenja',
'addedwatchtext' => 'Stranica "[[:$1]]" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]].
Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde.',
'removewatch' => 'Ukloni sa spiska praćenja',
'removedwatchtext' => 'Stranica "[[:$1]]" je uklonjena s [[Special:Watchlist|vaše liste praćenja]].',
-'watch' => 'Prati',
-'watchthispage' => 'Prati ovu stranicu',
+'watch' => 'Prati / Прати',
+'watchthispage' => 'Prati / Прати',
'unwatch' => 'Prekini praćenje',
'unwatchthispage' => 'Ukinite praćenje',
'notanarticle' => 'Nije članak',
'watchmethod-list' => 'provjerava se da li ima nedavnih izmjena u praćenim stranicama',
'watchlistcontains' => 'Vaš spisak praćenih članaka sadrži $1 {{PLURAL:$1|stranicu|stranica}}.',
'iteminvalidname' => "Problem sa '$1', neispravno ime...",
-'wlnote' => "Ispod {{PLURAL:$1|je posljednja izmjena|su posljednje '''$1''' izmjene|je posljednjih '''$1''' izmjena}} u {{PLURAL:$2|prethodnom satu|prethodna '''$2''' sata|prethodnih '''$2''' sati}}, zaključno sa $3, $4.",
'wlshowlast' => 'Prikaži posljednjih $1 sati $2 dana $3',
'watchlist-options' => 'Opcije liste praćenja',
# Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Pratim…',
+'watching' => 'Pratim... / Додавање на списак надгледања...',
'unwatching' => 'Ne pratim…',
'watcherrortext' => 'Desila se greška pri promjeni postavki vašeg spiska praćenja za "$1".',
Povratne informacije i daljnja pomoć:
{{canonicalurl:{{MediaWiki:Helppage}}}}',
-'created' => 'napravljena',
+'created' => 'Napravljen - Направљен',
'changed' => 'promijenjena',
# Delete
'deletepage' => 'Izbrišite stranicu',
-'confirm' => 'Potvrdite',
+'confirm' => 'Potvrdi / Потврди',
'excontent' => "sadržaj je bio: '$1'",
'excontentauthor' => "sadržaj je bio: '$1' (i jedini korisnik koji je mijenjao bio je '[[Special:Contributions/$2|$2]]')",
'exbeforeblank' => "sadržaj prije brisanja je bio: '$1'",
'historywarning' => "'''Upozorenje''': Stranica koju želite da obrišete ima historiju sa otprilike $1 {{PLURAL:$1|revizijom|revizije|revizija}}:",
'confirmdeletetext' => 'Upravo ćete obrisati stranicu sa svom njenom historijom.
Molimo da potvrdite da ćete to učiniti, da razumijete posljedice te da to činite u skladu sa [[{{MediaWiki:Policy-url}}|pravilima]].',
-'actioncomplete' => 'Akcija završena',
+'actioncomplete' => 'Akcija završena
+
+Акција завршена',
'actionfailed' => 'Akcija nije uspjela',
'deletedtext' => '"$1" je obrisan/a.
V. $2 za registar nedavnih brisanja.',
-'dellogpage' => 'Registar brisanja',
+'dellogpage' => 'Evidencija brisanja',
'dellogpagetext' => 'Ispod je spisak najskorijih brisanja.',
-'deletionlog' => 'registar brisanja',
+'deletionlog' => 'Evidencija brisanja',
'reverted' => 'Vraćeno na prijašnju reviziju',
'deletecomment' => 'Razlog:',
'deleteotherreason' => 'Ostali/dodatni razlog/zi:',
'undeletedrevisions' => '{{PLURAL:$1|$1 revizija vraćena|$1 revizije vraćene|$1 revizija vraćeno}}',
'undeletedrevisions-files' => '{{PLURAL:$1|1 revizija|$1 revizije|$1 revizija}} i {{PLURAL:$2|1 datoteka|$2 datoteke|$2 datoteka}} vraćeno',
'undeletedfiles' => '{{PLURAL:$1|1 datoteka vraćena|$1 datoteke vraćene|$1 datoteka vraćeno}}',
-'cannotundelete' => 'Vraćanje nije uspelo:
-$1',
+'cannotundelete' => 'Vraćanje nije uspelo; moguće je da je neko drugi vratio stranu pre vas.',
'undeletedpage' => "'''$1 je vraćena'''
Provjerite [[Special:Log/delete|evidenciju brisanja]] za zapise najskorijih brisanja i vraćanja.",
'undelete-show-file-submit' => 'Da',
# Namespace form on various pages
-'namespace' => 'Imenski prostor:',
+'namespace' => 'Imenski prostor - Именски простор:',
'invert' => 'Sve osim odabranog',
'tooltip-invert' => 'Označite ovu kutiju za sakrivanje promjena na stranicama u odabranom imenskom prostoru (i povezanim imenskim prostorima ako je označeno)',
'namespace_association' => 'Povezan imenski prostor',
'blanknamespace' => '(Glavno)',
# Contributions
-'contributions' => 'Doprinosi {{GENDER:|korisnika|korisnice|korisnika}} $1',
+'contributions' => 'Doprinosi korisnika / Доприноси корисника',
'contributions-title' => 'Korisnički doprinosi od $1',
-'mycontris' => 'Doprinosi',
+'mycontris' => 'Doprinosi / Доприноси',
'contribsub2' => 'Za $1 ($2)',
'nocontribs' => 'Nisu nađene promjene koje zadovoljavaju ove uslove.',
'uctop' => '(trenutno)',
'sp-contributions-submit' => 'Traži',
# What links here
-'whatlinkshere' => 'Šta je povezano ovdje',
-'whatlinkshere-title' => 'Stranice koje vode na "$1"',
+'whatlinkshere' => 'Što vodi ovdje / Шта води овде',
+'whatlinkshere-title' => 'Stranice koje vode / Странице које воде до $1',
'whatlinkshere-page' => 'Stranica:',
'linkshere' => "Sljedeće stranice vode na '''[[:$1]]''':",
'nolinkshere' => "Nema linkova na '''[[:$1]]'''.",
'ipb-disableusertalk' => 'Onemogući ovog korisnika da uređuje svoju vlastitu stranicu za razgovor dok je blokiran',
'ipb-change-block' => 'Ponovno blokiraj korisnika sa ovim postavkama',
'ipb-confirm' => 'Potvrdite blokiranje',
-'badipaddress' => 'Nevaljana IP adresa',
+'badipaddress' => 'Neodgovarajuća IP adresa / Неодговарајућа ИП адреса',
'blockipsuccesssub' => 'Blokiranje je uspjelo',
'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] je {{GENDER:$1|blokiran|blokirana|blokiran}}.<br />
Blokiranja možete da pogledate [[Special:BlockList|ovde]].',
'ipb-unblock' => 'Deblokiraj korisničko ime ili IP adresu',
'ipb-blocklist' => 'Vidi postojeće blokade',
'ipb-blocklist-contribs' => 'Doprinosi za $1',
-'unblockip' => 'Odblokiraj korisnika',
+'unblockip' => 'Odblokiraj korisnika / Одблокирај корисника',
'unblockiptext' => 'Upotrebite donji upitnik da bi ste vratili pravo pisanja ranije blokiranoj IP adresi ili korisničkom imenu.',
'ipusubmit' => 'Ukloni ovu blokadu',
'unblocked' => '[[User:$1|$1]] je deblokiran',
'ipblocklist-empty' => 'Spisak blokiranja je prazan.',
'ipblocklist-no-results' => 'Tražena IP adresa ili korisničko ime nisu blokirani.',
'blocklink' => 'blokirajte',
-'unblocklink' => 'deblokiraj',
+'unblocklink' => 'Odblokiraj / Одблокирај',
'change-blocklink' => 'promijeni blokadu',
'contribslink' => 'doprinosi',
'emaillink' => 'pošalji e-mail',
-'autoblocker' => 'Automatski ste blokirani jer dijelite IP adresu sa "[[User:$1|$1]]".
-Razlog za blokiranje je korisnika $1 je: \'\'$2\'\'',
-'blocklogpage' => 'Registar blokiranja',
+'autoblocker' => 'Automatski ste blokirani jer je vašu IP adresu nedavno koristio "[[User:$1|$1]]". Razlog za blokiranje $1 je: "\'\'\'$2\'\'\'"',
+'blocklogpage' => 'Evidencija blokiranja',
'blocklog-showlog' => 'Ovaj korisnik je ranije blokiran.
Evidencija blokiranja je prikazana ispod kao referenca:',
'blocklog-showsuppresslog' => 'Ovaj korisnik je ranije blokiran i sakriven.
'blocklogtext' => 'Ovo je historija akcija blokiranja i deblokiranja korisnika.
Automatski blokirane IP adrese nisu navedene ovdje.
Pogledajte [[Special:BlockList|spisak blokiranja]] za spisak trenutnih zabrana i blokiranja.',
-'unblocklogentry' => 'deblokiran $1',
+'unblocklogentry' => 'Odblokiran / Одблокиран "$1"',
'block-log-flags-anononly' => 'samo anonimni korisnici',
'block-log-flags-nocreate' => 'pravljenje računa onemogućeno',
'block-log-flags-noautoblock' => 'automatsko blokiranje onemogućeno',
*Odznačite donju kutiju.
U tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.",
-'movearticle' => 'Premjestite stranicu:',
+'movearticle' => 'Premjesti stranicu – Премјести страницу',
'moveuserpage-warning' => "'''Upozorenje:''' Premještate korisničku stranicu. Molimo da zapamtite da će se samo stranica premjestiti a korisnik se ''neće'' preimenovati.",
'movenologintext' => 'Morate biti registrovani korisnik i [[Special:UserLogin|prijavljeni]] da biste premjestili stranicu.',
'movenotallowed' => 'Nemate dopuštenje za premještanje stranica.',
'movenotallowedfile' => 'Nemate dopuštenja da premještate datoteke.',
'cant-move-user-page' => 'Nemate dopuštenje da premještate korisničke stranice (osim podstranica).',
'cant-move-to-user-page' => 'Nemate dopuštenje da premjestite stranicu na korisničku stranicu (osim na korisničku podstranicu).',
-'newtitle' => 'novi naslov:',
-'move-watch' => 'Prati ovu stranicu',
-'movepagebtn' => 'premjestite stranicu',
+'newtitle' => 'Novi naziv - Нови назив',
+'move-watch' => 'Prati ovu stranicu - Прати ову страницу',
+'movepagebtn' => 'Premjesti stranicu – Премјести страницу',
'pagemovedsub' => 'Premještanje uspjelo',
'movepage-moved' => '\'\'\'"$1" je premještena na "$2"\'\'\'',
'movepage-moved-redirect' => 'Preusmjerenje je napravljeno.',
'articleexists' => 'Stranica pod tim imenom već postoji, ili je ime koje ste izabrali neispravno.
Molimo Vas da izaberete drugo ime.',
'cantmove-titleprotected' => 'Ne možete premjestiti stranicu na ovu lokaciju, jer je novi naslov zaštićen od pravljenja',
-'movetalk' => 'Premjestite pridruženu stranicu za razgovor',
+'movetalk' => 'Premjesti i stranicu za diskusiju zajedno sa člankom (ukoliko nije prazna).',
'move-subpages' => 'Premjesti sve podstranice (do $1)',
'move-talk-subpages' => 'Premjesti podstranice stranica za razgovor (do $1)',
'movepage-page-exists' => 'Stranica $1 već postoji i ne može biti automatski zamijenjena.',
'movepage-page-moved' => 'Stranica $1 je premještena na $2.',
'movepage-page-unmoved' => 'Stranica $1 ne može biti premještena na $2.',
'movepage-max-pages' => 'Maksimum od $1 {{PLURAL:$1|stranice|stranice|stranica}} je premješteno i više nije moguće premjestiti automatski.',
-'movelogpage' => 'Registar premještanja',
+'movelogpage' => 'Evidencija premještanja',
'movelogpagetext' => 'Ispod je spisak stranica koje su premještene.',
'movesubpage' => '{{PLURAL:$1|Podstranica|Podstranice}}',
'movesubpagetext' => 'Ova stranica ima $1 {{PLURAL:$1|podstranicu|podstranice|podstranica}} prikazanih ispod.',
'movenosubpage' => 'Ova stranica nema podstranica.',
'movereason' => 'Razlog:',
-'revertmove' => 'vrati',
+'revertmove' => 'vrati - врати',
'delete_and_move' => 'Brisanje i premještanje',
'delete_and_move_text' => '==Brisanje neophodno==
Odredišna stranica "[[:$1]]" već postoji.
Da li je želite obrisati kako bi ste mogli izvršiti premještanje?',
-'delete_and_move_confirm' => 'Da, obriši stranicu',
+'delete_and_move_confirm' => 'Da, izbriši stranicu - Да, избриши страницу',
'delete_and_move_reason' => 'Obrisano da se oslobodi mjesto za premještanje iz „[[$1]]“',
'selfmove' => 'Izvorni i ciljani naziv su isti; strana ne može da se premjesti preko same sebe.',
'immobile-source-namespace' => 'Ne mogu premjestiti stranice u imenski prostor "$1"',
'exportnohistory' => "----
'''Pažnja:''' Izvoz cjelokupne historije stranica preko ovog obrasca je onemogućeno iz tehničkih razloga.",
'exportlistauthors' => 'Uključi cjelokupni popis doprinosilaca za svaku stranicu',
-'export-submit' => 'Izvezi',
+'export-submit' => 'Izvezi / Извези',
'export-addcattext' => 'Dodaj stranice iz kategorije:',
'export-addcat' => 'Dodaj',
'export-addnstext' => 'Dodaj stranice iz imenskog prostora:',
'export-pagelinks' => 'Uključi povezane stranice do dubine od:',
# Namespace 8 related
-'allmessages' => 'Sistemske poruke',
+'allmessages' => 'Sistemske poruke / Системске поруке',
'allmessagesname' => 'Naziv',
'allmessagesdefault' => 'Uobičajeni tekst',
'allmessagescurrent' => 'Trenutni tekst',
'allmessages-prefix' => 'Filter po prefiksu:',
'allmessages-language' => 'Jezik:',
'allmessages-filter-submit' => 'Idi',
+'allmessages-filter-translate' => 'Prevedi',
# Thumbnails
'thumbnail-more' => 'Uvećaj',
'import-interwiki-source' => 'Izvorna wiki/stranica:',
'import-interwiki-history' => 'Kopiraj sve verzije historije za ovu stranicu',
'import-interwiki-templates' => 'Uključi sve šablone',
-'import-interwiki-submit' => 'Uvoz',
+'import-interwiki-submit' => 'Uvezi - Увези',
'import-interwiki-namespace' => 'Odredišni imenski prostor:',
'import-interwiki-rootpage' => 'Odredišna osnovna stranica (neobavezno):',
'import-upload-filename' => 'Naziv datoteke:',
'tooltip-pt-watchlist' => 'Spisak stranica koje pratite radi izmjena',
'tooltip-pt-mycontris' => 'Spisak vaših doprinosa',
'tooltip-pt-login' => 'Predlažem da se prijavite; međutim, to nije obavezno',
-'tooltip-pt-anonlogin' => 'Predlažemo da se prijavite, ali nije obavezno.',
'tooltip-pt-logout' => 'Odjava sa projekta {{SITENAME}}',
'tooltip-ca-talk' => 'Razgovor o sadržaju stranice',
'tooltip-ca-edit' => 'Možete da uređujete ovu stranicu.
'tooltip-ca-move' => 'Premjesti ovu stranicu',
'tooltip-ca-watch' => 'Dodajte ovu stranicu na Vaš spisak praćenja',
'tooltip-ca-unwatch' => 'Izbrišite ovu stranicu sa spiska praćenja',
-'tooltip-search' => 'Pretraži ovaj wiki',
+'tooltip-search' => 'Traži ovaj Wiki / Тражи овај Вики [alt-f]',
'tooltip-search-go' => 'Idi na stranicu s upravo ovakvim imenom ako postoji',
'tooltip-search-fulltext' => 'Pretraga stranica sa ovim tekstom',
'tooltip-p-logo' => 'Posjetite glavnu stranicu',
'tooltip-ca-nstab-help' => 'Pogledajte stranicu za pomoć',
'tooltip-ca-nstab-category' => 'Pogledajte stranicu kategorije',
'tooltip-minoredit' => 'Označite ovo kao manju izmjenu',
-'tooltip-save' => 'Snimite vaše izmjene',
+'tooltip-save' => 'Snimi izmjene - Сними измјене [alt-s]',
'tooltip-preview' => 'Prethodni pregled stranice, molimo koristiti prije snimanja!',
'tooltip-diff' => 'Prikaz izmjena koje ste napravili u tekstu',
'tooltip-compareselectedversions' => 'Pogledajte pazlike između dvije selektovane verzije ove stranice.',
-'tooltip-watch' => 'Dodajte ovu stranicu na Vaš spisak praćenja',
+'tooltip-watch' => 'Postavite ovu stranicu na Vaš spisak praćenja / Поставите ову страницу на Ваш списак праћења [alt-w]',
'tooltip-watchlistedit-normal-submit' => 'Ukloni naslove',
'tooltip-watchlistedit-raw-submit' => 'Ažuriraj spisak praćenja',
'tooltip-recreate' => 'Ponovno pravljenje stranice iako je već brisana',
'file-no-thumb-animation-gif' => "'''Napomena: zbog tehničkih ograničenja, minijature GIF slika visoke rezolucije kao što je ova neće se animirati.'''",
# Special:NewFiles
-'newimages' => 'Galerija novih slika',
+'newimages' => 'Galerija novih fajlova / Галерија нових фајлова',
'imagelisttext' => "Ispod je spisak od '''$1''' {{PLURAL:$1|datoteke|datoteke|datoteka}} poredanih $2.",
'newimages-summary' => 'Ova posebna stranica prikazuje posljednje postavljene datoteke.',
'newimages-legend' => 'Filter',
'newimages-label' => 'Ime datoteke (ili dio imena):',
'showhidebots' => '($1 botove)',
'noimages' => 'Ništa za prikazati.',
-'ilsubmit' => 'Traži',
+'ilsubmit' => 'Traži / Тражи',
'bydate' => 'po datumu',
'sp-newimages-showfrom' => 'Prikaz novih datoteka počev od $2, $1',
'exif-spectralsensitivity' => 'Spektralna osjetljivost',
'exif-isospeedratings' => 'Rejting ISO brzine',
'exif-shutterspeedvalue' => 'Brzina APEX okidača',
-'exif-aperturevalue' => 'APEX otvor',
+'exif-aperturevalue' => 'Otvor blende',
'exif-brightnessvalue' => 'APEX osvijetljenost',
'exif-exposurebiasvalue' => 'Kompozicija ekspozicije',
'exif-maxaperturevalue' => 'Najveći broj otvora blende',
'fileduplicatesearch-noresults' => 'Nije pronađena datoteka sa imenom "$1".',
# Special:SpecialPages
-'specialpages' => 'Posebne stranice',
+'specialpages' => 'Posebno / Посебно',
'specialpages-note' => '* Normalne posebne stranice.
* <span class="mw-specialpagerestricted">Ograničene posebne stranice.</span>
* <span class="mw-specialpagecached">Keširane posebne stranice (mogu biti zastarjele).</span>',
-'specialpages-group-maintenance' => 'Izvještaji za održavanje',
-'specialpages-group-other' => 'Ostale posebne stranice',
-'specialpages-group-login' => 'Prijava / Otvaranje računa',
-'specialpages-group-changes' => 'Nedavne izmjene i registri',
-'specialpages-group-media' => 'Mediji i postavljanje datoteka',
-'specialpages-group-users' => 'Korisnici i korisnička prava',
-'specialpages-group-highuse' => 'Često korištene stranice',
+'specialpages-group-maintenance' => 'Izvještaji o održavanju / Извјештаји о одржавању',
+'specialpages-group-other' => 'Ostale posebne stranice - Остале посебне странице',
+'specialpages-group-login' => 'Prijava / Пријава',
+'specialpages-group-changes' => 'Nedavne izmjene i evidencije / registri - Недавне измене и евиденције / регистри',
+'specialpages-group-media' => 'Multimedijalne datoteke \\ fajlovi i njihovo postavljanje / Мултимедијалне датотеке \\ фајлови и њихово постављање',
+'specialpages-group-users' => 'Korisnici i njihova prava / Корисници и њихова права',
+'specialpages-group-highuse' => 'Najčešće korištene stranice / Најчешће кориштене странице',
'specialpages-group-pages' => 'Spiskovi stranica',
'specialpages-group-pagetools' => 'Alati za stranice',
'specialpages-group-wiki' => 'Podaci i alati',
-'specialpages-group-redirects' => 'Preusmjeravanje posebnih stranica',
+'specialpages-group-redirects' => 'Posebne stranice za preusmjeravanje / Посебне стране за преусмеравање',
'specialpages-group-spam' => 'Spam alati',
# Special:BlankPage
# Image rotation
'rotate-comment' => 'Slika rotirana za $1 {{PLURAL:$1|stepeni}} u smjeru kazaljke na satu',
+# Special:ExpandTemplates
+'expand_templates_input' => 'Unos - Унос',
+
);
'tog-numberheadings' => 'ශීර්ෂ-නාම ස්වයංක්රීයව අංකනය කරන්න',
'tog-showtoolbar' => 'සංස්කරණ මෙවලම්තීරුව පෙන්වන්න',
'tog-editondblclick' => 'ද්විත්ව-ක්ලික් කිරීම මගින් පිටු සංස්කරණය අරඹන්න',
-'tog-editsection' => '[සංස්කරණ] සබැඳියාවන් මගින් ඡේද සංස්කරණය සක්රීය කරන්න',
'tog-editsectiononrightclick' => 'ඡේද ශීර්ෂ මත දකුණු-ක්ලික් කිරීමෙන් ඡේද සංස්කරණය සක්රීය කරන්න (ජාවාස්ක්රිප්ට්)',
-'tog-showtoc' => 'පටුන පෙන්වන්න ( තුනකට වඩා වැඩියෙන් ශීර්ෂ-නාම අඩංගු පිටු සඳහා)',
'tog-rememberpassword' => 'මගේ ප්රවිෂ්ටය මෙම ගවේශකයෙහි උපරිම ලෙස {{PLURAL:$1|දිනයක්|දින $1ක්}} මතක තබා ගන්න',
'tog-watchcreations' => 'මම තනන පිටු හා මම උඩුගත කරන ගොනු මාගේ මුරලැයිස්තුවට එක් කරන්න',
'tog-watchdefault' => 'මම සංස්කරණය කරන පිටු හා ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න',
'tog-numberheadings' => 'Automaticky číslovať nadpisy',
'tog-showtoolbar' => 'Zobraziť panel nástrojov úprav',
'tog-editondblclick' => 'Upravovať stránky po dvojitom kliknutí',
-'tog-editsection' => 'Umožniť upravovanie sekcie prostredníctvom odkazov [upraviť]',
'tog-editsectiononrightclick' => 'Umožniť upravovanie sekcie pravým kliknutím na nadpisy sekcií',
-'tog-showtoc' => 'Zobrazovať tabuľku s obsahom (pre stránky s viac ako 3 nadpismi)',
'tog-rememberpassword' => 'Zapamätať si prihlásenie na tomto počítači (najviac $1 {{PLURAL:$1|deň|dni|dní}})',
'tog-watchcreations' => 'Pridávať stránky, ktoré vytvorím a súbory, ktoré nahrám medzi sledované',
'tog-watchdefault' => 'Pridávať stránky a súbory, ktoré upravím medzi sledované',
'tog-numberheadings' => 'Samodejno številči poglavja',
'tog-showtoolbar' => 'Prikaži urejevalno orodno vrstico',
'tog-editondblclick' => 'Omogoči urejanje strani z dvojnim klikom',
-'tog-editsection' => 'Omogoči urejanje delov prek povezav [{{int:editsection}}]',
'tog-editsectiononrightclick' => 'Omogoči urejanje razdelkov z desnim klikanjem njihovih naslovov',
-'tog-showtoc' => 'Prikaži vsebino (strani z več kot tremi naslovi)',
'tog-rememberpassword' => 'Zapomni si me v tem brskalniku (za največ $1 {{PLURAL:$1|dan|dneva|dni}})',
'tog-watchcreations' => 'Vse ustvarjene strani in moje naložene datoteke dodaj na spisek nadzorov',
'tog-watchdefault' => 'Dodaj na spisek nadzorov vse članke in datoteke, ki sem jih spremenil/-a',
'tog-numberheadings' => 'Numëro automatikish titujt',
'tog-showtoolbar' => 'Trego mjetet e redaktimit (kërkon JavaScript)',
'tog-editondblclick' => 'Redakto faqet me dopio-klik (kërkon JavaScript)',
-'tog-editsection' => 'Lejo redaktimin e seksioneve me anë të lidhjeve [redakto]',
'tog-editsectiononrightclick' => 'Lejo redaktimin e seksioneve duke klikuar me të djathtën mbi titullin e seksionit (kërkon JavaScript)',
-'tog-showtoc' => 'Trego tabelën e përmbajtjes (për faqet me më shume se 3 tituj)',
'tog-rememberpassword' => 'Mbaj mend fjalëkalimin tim në këtë shfletues (më së shumti për $1 {{PLURAL:$1|ditë|ditë}})',
'tog-watchcreations' => 'Shtoi faqet e krijuara dhe skedat e ngarkuara prej meje tek lista e faqeve nën mbikqyrje',
'tog-watchdefault' => 'Shto faqet dhe skedat e redaktuara prej meje tek lista e faqeve nën mbikqyrje',
'tog-numberheadings' => 'Самостално нумериши поднаслове',
'tog-showtoolbar' => 'Прикажи траку с алаткама за уређивање',
'tog-editondblclick' => 'Уређивање страница двоструким кликом',
-'tog-editsection' => 'Везе за уређивање појединачних одељака',
'tog-editsectiononrightclick' => 'Уређивање одељака десним кликом на њихове наслове',
-'tog-showtoc' => 'Прикажи садржај страница које имају више од три поднаслова',
-'tog-rememberpassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана|дана}})',
+'tog-rememberpassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана}})',
'tog-watchcreations' => 'Додај странице које направим и датотеке које пошаљем у списак надгледања',
'tog-watchdefault' => 'Додај странице и датотеке које изменим у списак надгледања',
'tog-watchmoves' => 'Додај странице и датотеке које преместим у списак надгледања',
'invalidtitle-unknownnamespace' => 'Неисправан наслов с именским простором бр. $1 и текстом „$2“',
'exception-nologin' => 'Нисте пријављени',
'exception-nologin-text' => '[[Special:Userlogin|Пријавите се]] да бисте приступили овој страници или радњи.',
+'exception-nologin-text-manual' => 'Морате бити $1 да бисте приступили овој страници или радњи.',
# Virus scanner
'virus-badscanner' => "Неисправна поставка: непознати скенер за вирусе: ''$1''",
'yourpasswordagain' => 'Потврда лозинке:',
'createacct-yourpasswordagain' => 'Потврдите лозинку',
'createacct-yourpasswordagain-ph' => 'Унесите лозинку још једном',
-'remembermypassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана|дана}})',
+'remembermypassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана}})',
'userlogin-remembermypassword' => 'Остави ме пријављеног/у',
'userlogin-signwithsecure' => 'Користите сигурну конекцију',
'yourdomainname' => 'Домен:',
'passwordreset-email' => 'Е-адреса:',
'passwordreset-emailtitle' => 'Детаљи налога на викију {{SITENAME}}',
'passwordreset-emailtext-ip' => 'Неко, вероватно Ви, са ИП адресе $1 је затражио нову лозинку на викију {{SITENAME}} ($4).
-Следећи {{PLURAL:$3|1=кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:
+Следећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:
$2
-{{PLURAL:$3|1=Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|1=један дан|$5 дана}}.
+{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.
Пријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку и наставите користити стару лозинку.',
-'passwordreset-emailtext-user' => '{{GENDER:$1|Корисник|Корисница|Корисник}} је затражио подсетник о подацима за пријаву на викију {{SITENAME}} ($4).
-Следећи {{PLURAL:$3|1=кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:
+'passwordreset-emailtext-user' => '{{GENDER:$1|Корисник је затражио|Корисница је затражила}} подсетник о подацима за пријаву на викију {{SITENAME}} ($4).
+Следећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:
$2
-{{PLURAL:$3|1=Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана|$5 дана}}.
+{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.
Пријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.',
'passwordreset-emailelement' => 'Корисничко име: $1
Привремена лозинка: $2',
Последња ставка у историји је приказана испод:",
'semiprotectedpagewarning' => "'''Напомена:''' ова страница је заштићена, тако да само регистровани корисници могу да је уређују.
Последњи запис у дневнику је приказан испод:",
-'cascadeprotectedwarning' => "<div style=\"background: #FFBDBD; border: 1px solid #BB7979; color: #000000; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; clear: both;\">'''Упозорење:''' Ова страница је заштићена тако да је могу уређивати само администратори, јер је она укључена у {{PLURAL:\$1|1=следећу страницу која је|следеће странице које су}} заштићене „преносивом“ заштитом:</div>",
+'cascadeprotectedwarning' => "<div style=\"background: #FFBDBD; border: 1px solid #BB7979; color: #000000; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; clear: both;\">'''Упозорење:''' Ова страница је заштићена тако да је могу уређивати само администратори, јер је она укључена у {{PLURAL:\$1|следећу страницу која је|следеће странице које су}} заштићене „преносивом“ заштитом:</div>",
'titleprotectedwarning' => "'''Упозорење: ова страница је заштићена тако да је могу направити само корисници [[Special:ListGroupRights|с одређеним правима]].'''",
-'templatesused' => '{{PLURAL:$1|1=Шаблон|Шаблони}} на овој страници:',
-'templatesusedpreview' => '{{PLURAL:$1|1=Шаблон|Шаблони}} у овом прегледу:',
-'templatesusedsection' => '{{PLURAL:$1|1=Шаблон|Шаблони}} у овом одељку:',
+'templatesused' => '{{PLURAL:$1|Шаблон|Шаблони}} на овој страници:',
+'templatesusedpreview' => '{{PLURAL:$1|Шаблон|Шаблони}} у овом прегледу:',
+'templatesusedsection' => '{{PLURAL:$1|Шаблон|Шаблони}} у овом одељку:',
'template-protected' => '(заштићен)',
'template-semiprotected' => '(полузаштићен)',
'hiddencategories' => 'Ова страница је члан {{PLURAL:$1|једне скривене категорије|$1 скривене категорије|$1 скривених категорија}}:',
'sectioneditnotsupported-title' => 'Уређивање одељка није подржано',
'sectioneditnotsupported-text' => 'Уређивање одељка није подржано на овој страници.',
'permissionserrors' => 'Грешка у дозволи',
-'permissionserrorstext' => 'Немате овлашћење за ту радњу из {{PLURAL:$1|1=следећег|следећих}} разлога:',
-'permissionserrorstext-withaction' => 'Немате дозволу за $2 из {{PLURAL:$1|1=следећег|следећих}} разлога:',
+'permissionserrorstext' => 'Немате овлашћење за ту радњу из {{PLURAL:$1|следећег|следећих}} разлога:',
+'permissionserrorstext-withaction' => 'Немате дозволу за $2 из {{PLURAL:$1|следећег|следећих}} разлога:',
'recreate-moveddeleted-warn' => "'''Упозорење: поново правите страницу која је претходно обрисана.'''
Размотрите да ли је прикладно да наставите с уређивањем ове странице.
'revdelete-no-file' => 'Тражена датотека не постоји.',
'revdelete-show-file-confirm' => 'Желите ли да видите обрисану измену датотеке „<nowiki>$1</nowiki>“ од $2; $3?',
'revdelete-show-file-submit' => 'Да',
-'revdelete-selected' => "'''{{PLURAL:$2|1=Изабрана измена|Изабране измене}} странице '''[[:$1]]''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|1=Изабрана ставка у историји|Изабране ставке у историји}}:'''",
+'revdelete-selected' => "'''{{PLURAL:$2|Изабрана измена|Изабране измене}} странице [[:$1]]'''",
+'logdelete-selected' => "'''{{PLURAL:$1|Изабрана ставка у историји|Изабране ставке у историји}}:'''",
'revdelete-text' => "'''Обрисане измене ће и даље бити приказане у историји страница и записима, али делови њиховог садржаја неће бити доступни јавности.'''
Други администратори на овом викију ће и даље имати приступ сакривеном садржају, а они ће тај садржај моћи да врате путем овог сучеља, осим ако нису постављена додатна ограничења.",
'revdelete-confirm' => 'Потврдите да намеравате ово урадити, да разумете последице и да то чините у складу с [[{{MediaWiki:Policy-url}}|правилима]].',
'revdelete-hide-text' => 'Текст ревизије',
'revdelete-hide-image' => 'Сакриј садржај датотеке',
'revdelete-hide-name' => 'Сакриј радњу и одредиште',
-'revdelete-hide-comment' => 'сакриј опис измене',
+'revdelete-hide-comment' => 'Опис измене',
'revdelete-hide-user' => 'Кориснчко име уредника/ИП адреса',
'revdelete-hide-restricted' => 'Сакриј податке од администратора и других корисника',
'revdelete-radio-same' => '(не мењај)',
'revdelete-suppress' => 'Сакриј податке од администратора и других корисника',
'revdelete-unsuppress' => 'Уклони ограничења на враћеним изменама',
'revdelete-log' => 'Разлог:',
-'revdelete-submit' => 'Примени на {{PLURAL:$1|1=изабрану измену|изабране измене}}',
+'revdelete-submit' => 'Примени на {{PLURAL:$1|изабрану измену|изабране измене}}',
'revdelete-success' => "'''Видљивост измене је ажурирана.'''",
'revdelete-failure' => "'''Не могу да ажурирам видљивост измене:'''
$1",
'searchall' => 'све',
'showingresults' => "Испод {{PLURAL:$1|је приказан '''1''' резултат|су приказана '''$1''' резултата|је приказано '''$1''' резултата}} почев од броја '''$2'''.",
'showingresultsnum' => "Испод {{PLURAL:$3|је приказан '''1''' резултат|су приказана '''$3''' резултата|је приказано '''$3''' резултата}} почев од броја '''$2'''.",
-'showingresultsheader' => "{{PLURAL:$5|1=Резултат '''$1''' од '''$3'''|Резултата '''$1 – $2''' од '''$3'''}} за '''$4'''",
+'showingresultsheader' => "{{PLURAL:$5|Резултат '''$1''' од '''$3'''|Резултата '''$1 – $2''' од '''$3'''}} за '''$4'''",
'search-nonefound' => 'Нема поклапања.',
'powersearch-legend' => 'Напредна претрага',
'powersearch-ns' => 'Тражи у следећим именским просторима:',
'preferences' => 'Подешавања',
'mypreferences' => 'Подешавања',
'prefs-edits' => 'Број измена:',
+'prefsnologintext2' => 'Морате бити $1 да бисте мењали своја подешавања.',
'prefs-skin' => 'Тема',
'skin-preview' => 'Прегледај',
'datedefault' => 'Свеједно',
'youremail' => 'Е-адреса:',
'username' => '{{GENDER:$1|Корисничко име}}:',
'uid' => '{{GENDER:$1|Кориснички}} ID:',
-'prefs-memberingroups' => '{{GENDER:$2|Корисник|Корисница}} је члан {{PLURAL:$1|1=групе|група}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Корисник|Корисница}} је члан {{PLURAL:$1|групе|група}}:',
'prefs-memberingroups-type' => '$1',
'prefs-registration' => 'Време уписа:',
'prefs-registration-date-time' => '$1',
'filetype-badmime' => 'Датотеке MIME типа „$1“ није дозвољено слати.',
'filetype-bad-ie-mime' => 'Ова датотека се не може послати зато што би је Интернет експлорер уочио као „$1“, а то је забрањена и опасна врста датотеке.',
'filetype-unwanted-type' => '„.$1“ је непожељна врста датотеке.
-{{PLURAL:$3|1=Пожељна врста датотеке је|Пожељне врсте датотека су}} $2.',
-'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|1=је забрањена врста датотеке|су забрањене врсте датотека}}.
-{{PLURAL:$3|1=Дозвољена врста датотеке је|Дозвољене врсте датотека су}} $2.',
+{{PLURAL:$3|Пожељна врста датотеке је|Пожељне врсте датотека су}} $2.',
+'filetype-banned-type' => "'''„.$1“''' {{PLURAL:$4|је забрањена врста датотеке|су забрањене врсте датотека}}.
+{{PLURAL:$3|Дозвољена врста датотеке је|Дозвољене врсте датотека су}} $2.",
'filetype-missing' => 'Ова датотека нема екстензију.',
'empty-file' => 'Послата датотека је празна.',
'file-too-large' => 'Послата датотека је превелика.',
'fileexists-forbidden' => 'Датотека с овим називом већ постоји и не може се заменити.
Ако и даље желите да пошаљете датотеку, вратите се и изаберите други назив.
[[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Датотека с овим називом већ постоји у заједничком складишту.
+'fileexists-shared-forbidden' => 'Датотека с овим називом већ постоји у заједничкој остави.
Вратите се и пошаљите датотеку с другим називом.
[[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => 'Ово је дупликат {{PLURAL:$1|1=следеће датотеке|следећих датотека}}:',
+'file-exists-duplicate' => 'Ово је дупликат {{PLURAL:$1|следеће датотеке|следећих датотека}}:',
'file-deleted-duplicate' => 'Датотека истоветна овој ([[:$1]]) је претходно обрисана.
Погледајте историју брисања пре поновног слања.',
'uploadwarning' => 'Упозорење при отпремању',
# Random page
'randompage' => 'Случајна страница',
-'randompage-nopages' => 'Нема страница у {{PLURAL:$2|1=следећем именском простору|следећим именским просторима}}: $1.',
+'randompage-nopages' => 'Нема страница у {{PLURAL:$2|следећем именском простору|следећим именским просторима}}: $1.',
# Random page in category
'randomincategory' => 'Случајна страница у категорији',
'nopagetitle' => 'Не постоји таква страница',
'nopagetext' => 'Тражена страница не постоји.',
'pager-newer-n' => '{{PLURAL:$1|новији 1|новија $1|новијих $1}}',
-'pager-older-n' => '{{PLURAL:$1|1=старији 1|старијих $1}}',
+'pager-older-n' => '{{PLURAL:$1|старији 1|старијих $1}}',
'suppress' => 'Надзор',
'querypage-disabled' => 'Ова посебна страница је онемогућена ради побољшања перформанси.',
# Special:Categories
'categories' => 'Категоријe',
-'categoriespagetext' => '{{PLURAL:$1|1=Следећа категорија садржи|Следеће категорије садрже}} странице или датотеке.
+'categoriespagetext' => '{{PLURAL:$1|Следећа категорија садржи|Следеће категорије садрже}} странице или датотеке.
[[Special:UnusedCategories|Некоришћене категорије]] нису приказане овде.
Погледајте и [[Special:WantedCategories|тражене категорије]].',
'categoriesfrom' => 'Прикажи категорије почев од:',
'linksearch-ok' => 'Претражи',
'linksearch-text' => 'Могу се користити џокери попут „*.wikipedia.org“.
Потребан је највиши домен, као „*.org“.<br />
-{{PLURAL:$2|1=Подржан протокол|Подржани протоколи}}: <code>$1</code> (задаје http:// ако не наведете протокол).',
+{{PLURAL:$2|Подржан протокол|Подржани протоколи}}: <code>$1</code> (задаје http:// ако не наведете протокол).',
'linksearch-line' => '$1 веза у $2',
'linksearch-error' => 'Џокери се могу појавити само на почетку адресе.',
'listgrouprights-members' => '(списак чланова)',
'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
-'listgrouprights-addgroup' => 'додаје {{PLURAL:$2|1=следећу групу|следеће групе}}: $1',
-'listgrouprights-removegroup' => 'брише {{PLURAL:$2|1=следећу групу|следеће групе}}: $1',
+'listgrouprights-addgroup' => 'додаје {{PLURAL:$2|следећу групу|следеће групе}}: $1',
+'listgrouprights-removegroup' => 'брише {{PLURAL:$2|следећу групу|следеће групе}}: $1',
'listgrouprights-addgroup-all' => 'додавање свих група',
'listgrouprights-removegroup-all' => 'брисање свих група',
-'listgrouprights-addgroup-self' => 'додавање {{PLURAL:$2|1=групе|група}} на свој налог: $1',
-'listgrouprights-removegroup-self' => 'уклањање {{PLURAL:$2|1=групе|група}} са свог налога: $1',
+'listgrouprights-addgroup-self' => 'додавање {{PLURAL:$2|групе|група}} на свој налог: $1',
+'listgrouprights-removegroup-self' => 'уклањање {{PLURAL:$2|групе|група}} са свог налога: $1',
'listgrouprights-addgroup-self-all' => 'Додај све групе на сопствени налог',
'listgrouprights-removegroup-self-all' => 'Уклони све групе са сопственог налога',
'watchmethod-list' => 'проверава се да ли има скорашњих измена у надгледаним страницама',
'watchlistcontains' => 'Ваш списак надгледања садржи $1 {{PLURAL:$1|страницу|странице|страница}}.',
'iteminvalidname' => 'Проблем са ставком „$1“. Неисправан назив.',
-'wlnote' => "Испод {{PLURAL:$1|је последња измена|су последње '''$1''' измене|је последњих '''$1''' измена}} у {{PLURAL:$2|претходном сату|претходна '''$2''' сата|претходних '''$2''' сати}}, закључно са $3, $4.",
'wlshowlast' => 'Прикажи последњих $1 сати, $2 дана, $3',
'watchlist-options' => 'Поставке списка надгледања',
'alreadyrolled' => 'Враћање последње измене странице [[:$1]] од стране {{GENDER:$2|корисника|кориснице|корисника}} [[User:$2|$2]] ([[User talk:$2|разговор]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); неко други је већ изменио или вратио страницу.
Последњу измену је {{GENDER:$3|направио|направила|направио}} [[User:$3|$3]] ([[User talk:$3|разговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
-'editcomment' => "Опис измене: \"''\$1''\".",
+'editcomment' => "Опис измене: „''$1''“.",
'revertpage' => 'Враћене измене [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]]) на последњу измену корисника [[User:$1|$1]]',
'revertpage-nouser' => 'Враћене су измене скривеног корисника на последњу измену {{GENDER:$1|корисника|кориснице}} [[User:$1|$1]]',
'rollback-success' => 'Враћене су измене {{GENDER:$1|корисника|кориснице}} $1
Погледајте [[Special:ProtectedPages|списак заштићених страница]] за више детаља.',
'protectedarticle' => '{{GENDER:|је заштитио|је заштитила}} „[[$1]]“',
'modifiedarticleprotection' => '{{GENDER:|је променио|је променила|је променио}} степен заштите за „[[$1]]“',
-'unprotectedarticle' => 'Ñ\83клоÑ\9aена заÑ\88Ñ\82иÑ\82а са странице „[[$1]]“',
+'unprotectedarticle' => 'Ñ\98е Ñ\81кинÑ\83о заÑ\88Ñ\82иÑ\82Ñ\83 са странице „[[$1]]“',
'movedarticleprotection' => '{{GENDER:|је преместио|је преместила|је преместио}} поставке заштите са „[[$2]]“ на „[[$1]]“',
'protect-title' => 'Степен заштите за „$1“',
'protect-title-notallowed' => 'Преглед степена заштите за „$1“',
Ово су поставке странице '''$1''':",
'protect-locked-access' => "Немате овлашћења за мењање степена заштите странице.
Ово су тренутне поставке странице '''$1''':",
-'protect-cascadeon' => 'Ова страница је тренутно заштићена јер се налази на {{PLURAL:$1|1=страници која има|страницама које имају}} преносиву заштиту.
+'protect-cascadeon' => 'Ова страница је тренутно заштићена јер се налази на {{PLURAL:$1|страници која има|страницама које имају}} преносиву заштиту.
Можете да промените степен заштите, али то неће утицати на преносиву заштиту.',
'protect-default' => 'Дозволи свим корисницима',
'protect-fallback' => 'Дозвољено само корисницима са дозволом „$1“',
'isredirect' => 'преусмерење',
'istemplate' => 'укључивање',
'isimage' => 'веза до датотеке',
-'whatlinkshere-prev' => '{{PLURAL:$1|1=претходни|претходних $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|1=следећи|следећих $1}}',
+'whatlinkshere-prev' => '{{PLURAL:$1|претходни|претходних $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|следећи|следећих $1}}',
'whatlinkshere-links' => '← везе',
'whatlinkshere-hideredirs' => '$1 преусмерења',
'whatlinkshere-hidetrans' => '$1 укључивања',
'blocklist-reason' => 'Разлог',
'ipblocklist-submit' => 'Претражи',
'ipblocklist-localblock' => 'Локално блокирање',
-'ipblocklist-otherblocks' => '{{PLURAL:$1|1=Друго блокирање|Друга блокирања}}',
+'ipblocklist-otherblocks' => '{{PLURAL:$1|Друго блокирање|Друга блокирања}}',
'infiniteblock' => 'трајно',
'expiringblock' => 'истиче дана $1 у $2',
'anononlyblock' => 'само анонимни',
'change-blocklink' => 'промени блокирање',
'contribslink' => 'доприноси',
'emaillink' => 'пошаљи е-поруку',
-'autoblocker' => 'Аутоматски сте блокирани јер делите ИП адресу с {{GENDER:$1|корисником|корисницом}} [[User:$1|$1]].
+'autoblocker' => 'Аутоматски сте блокирани јер делите ИП адресу с корисником/цом [[User:$1|$1]].
Разлог блокирања: „$2“',
'blocklogpage' => 'Дневник блокирања',
'blocklog-showlog' => '{{GENDER:$1|Овај корисник је раније блокиран|Ова корисница је раније блокирана|Овај корисник је раније блокиран}}.
'ipb_hide_invalid' => 'Не могу да потиснем овај налог. Можда има превише измена.',
'ipb_already_blocked' => '„$1“ је већ блокиран',
'ipb-needreblock' => '$1 је већ блокиран. Желите ли да промените подешавања?',
-'ipb-otherblocks-header' => '{{PLURAL:$1|1=Друга блокада|Друге блокаде}}',
+'ipb-otherblocks-header' => '{{PLURAL:$1|Друга блокада|Друге блокаде}}',
'unblock-hideuser' => 'Не можете деблокирати овог корисника јер је његово корисничко име сакривено.',
'ipb_cant_unblock' => 'Грешка: блокада $1 не постоји. Можда је корисник деблокиран.',
'ipb_blocked_as_range' => 'Грешка: ИП адреса $1 није директно блокирана и не може да се деблокира.
'movepage-max-pages' => 'Највише $1 {{PLURAL:$1|страница је премештена|странице су премештене|страница је премештено}}, и више не може да буде аутоматски премештено.',
'movelogpage' => 'Дневник премештања',
'movelogpagetext' => 'Испод се налази списак премештања страница.',
-'movesubpage' => '{{PLURAL:$1|1=Подстраница|Подстранице}}',
+'movesubpage' => '{{PLURAL:$1|Подстраница|Подстранице}}',
'movesubpagetext' => 'Ова страница има $1 {{PLURAL:$1|подстраницу приказану|подстранице приказане|подстраница приказаних}} испод.',
'movenosubpage' => 'Ова страница нема подстрана.',
'movereason' => 'Разлог:',
'import-error-special' => 'Не могу да увезем страницу „$1“ јер она припада посебном именском простору које не прихвата странице.',
'import-error-invalid' => 'Не могу да увезем страницу „$1“ јер је њен назив неисправан.',
'import-error-unserialize' => 'Верзија $2 странице $1 не може бити прочитана/увезена. Записано је да верзија користи $3 тип садржаја у $4 формату.',
-'import-options-wrong' => '{{PLURAL:$2|1=Погрешна опција|Погрешне опције}}: <nowiki>$1</nowiki>',
+'import-options-wrong' => '{{PLURAL:$2|Погрешна опција|Погрешне опције}}: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'Наведена основна страница има неисправан наслов.',
'import-rootpage-nosubpage' => 'Именски простор „$1“ основне странице не дозвољава подстранице.',
'tooltip-pt-watchlist' => 'Списак страница које надгледате',
'tooltip-pt-mycontris' => 'Списак ваших доприноса',
'tooltip-pt-login' => 'Препоручујемо вам да се пријавите, иако то није обавезно.',
-'tooltip-pt-anonlogin' => 'Препоручујемо вам да се пријавите, иако то није обавезно.',
'tooltip-pt-logout' => 'Одјавите се',
'tooltip-ca-talk' => 'Разговор о страници са садржајем',
'tooltip-ca-edit' => 'Можете да уређујете ову страницу. Користите претпреглед пре снимања',
'notacceptable' => 'Сервер не може да направи податке у формату погодном за ваш клијент.',
# Attribution
-'anonymous' => 'Анонимни {{PLURAL:$1|1=корисник|корисници}} на пројекту {{SITENAME}}',
+'anonymous' => 'Анонимни {{PLURAL:$1|корисник|корисници}} на пројекту {{SITENAME}}',
'siteuser' => '{{SITENAME}} корисник $1',
'anonuser' => '{{SITENAME}} анониман корисник $1',
'lastmodifiedatby' => 'Ову страницу је последњи пут {{GENDER:$4|изменио|изменила|изменио}} $3, $1 у $2.',
-'othercontribs' => 'Засновано на раду корисникâ $1.',
+'othercontribs' => 'Засновано на раду корисника $1.',
'others' => 'други',
-'siteusers' => '{{PLURAL:$2|1=корисник|корисници}} на пројекту {{SITENAME}} $1',
-'anonusers' => '{{PLURAL:$2|1=анониман корисник|анонимни корисници}} на пројекту {{SITENAME}} $1',
+'siteusers' => '{{PLURAL:$2|корисник|корисници}} на пројекту {{SITENAME}} $1',
+'anonusers' => '{{PLURAL:$2|анониман корисник|анонимни корисници}} на пројекту {{SITENAME}} $1',
'creditspage' => 'Аутори странице',
'nocredits' => 'Не постоје подаци о аутору ове странице.',
'pageinfo-robot-noindex' => 'Није дозвољено',
'pageinfo-views' => 'Број прегледа',
'pageinfo-watchers' => 'Број надгледача страница',
-'pageinfo-few-watchers' => 'Мање од $1 {{PLURAL:$1|1=пратиоца|пратилаца}}',
+'pageinfo-few-watchers' => 'Мање од $1 {{PLURAL:$1|пратиоца|пратилаца}}',
'pageinfo-redirects-name' => 'Број преусмерења на ову страницу',
'pageinfo-subpages-name' => 'Подстранице ове странице',
'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|преусмерење|преусмерења|преусмерења}}; $3 {{PLURAL:$3|непреусмерење|непреусмерења|непреусмерења}})',
'pageinfo-authors' => 'Број засебних аутора',
'pageinfo-recent-edits' => 'Број скорашњих измена (у последњих $1)',
'pageinfo-recent-authors' => 'Број скорашњих засебних аутора',
-'pageinfo-magic-words' => '{{PLURAL:$1|1=Магична реч|Магичне речи}} ($1)',
-'pageinfo-hidden-categories' => '{{PLURAL:$1|1=Сакривена категорија|Сакривене категорије}} ($1)',
-'pageinfo-templates' => '{{PLURAL:$1|1=Укључени шаблон|Укључени шаблони}} ($1)',
-'pageinfo-transclusions' => '{{PLURAL:$1|1=Страница|Странице}} укључене у ($1)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Магична реч|Магичне речи}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Сакривена категорија|Сакривене категорије}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Укључени шаблон|Укључени шаблони}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Страница|Странице}} укључене у ($1)',
'pageinfo-toolboxlink' => 'Подаци о страници',
'pageinfo-redirectsto' => 'Преусмерава на',
'pageinfo-redirectsto-info' => 'подаци',
'svg-long-error' => 'Неисправна SVG датотека: $1',
'show-big-image' => 'Пуна величина',
'show-big-image-preview' => 'Величина овог приказа: $1.',
-'show-big-image-other' => '{{PLURAL:$2|1=Друга резолуција|Друге резолуције}}: $1.',
+'show-big-image-other' => '{{PLURAL:$2|Друга резолуција|Друге резолуције}}: $1.',
'show-big-image-size' => '$1 × $2 пиксела',
'file-info-gif-looped' => 'петља',
'file-info-gif-frames' => '$1 {{PLURAL:$1|кадар|кадра|кадрова}}',
'hours' => '{{PLURAL:$1|$1 сат|$1 сата|$1 сати}}',
'days' => '{{PLURAL:$1|$1 дан|$1 дана|$1 дана}}',
'weeks' => '{{PLURAL:$1|$1 седмица}}',
-'months' => '{{PLURAL:$1|1=$1 месец|$1 месеци}}',
-'years' => '{{PLURAL:$1|1=$1 година|$1 године}}',
+'months' => '{{PLURAL:$1|$1 месец|$1 месеци}}',
+'years' => '{{PLURAL:$1|$1 година|$1 године}}',
'ago' => 'пре $1',
'just-now' => 'управо сад',
# Human-readable timestamps
-'hours-ago' => 'Пре $1 {{PLURAL:$1|1=сат|сати}}',
-'minutes-ago' => 'Пре $1 {{PLURAL:$1|1=минут|минута}}',
-'seconds-ago' => 'Пре $1 {{PLURAL:$1|1=секунда|секунди}}',
+'hours-ago' => 'Пре $1 {{PLURAL:$1|сат|сата|сати}}',
+'minutes-ago' => 'Пре $1 {{PLURAL:$1|минут|минута}}',
+'seconds-ago' => 'Пре $1 {{PLURAL:$1|секунда|секунди}}',
'monday-at' => 'Понедељак у $1',
'tuesday-at' => 'Уторак у $1',
'wednesday-at' => 'Среда у $1',
# Friendlier slave lag warnings
'lag-warn-normal' => 'Измене новије од $1 {{PLURAL:$1|секунде|секунде|секунди}} неће бити приказане.',
-'lag-warn-high' => 'Због преоптерећења базе података, измене новије од $1 {{PLURAL:$1|1=секунда|секунде}} неће бити приказане.',
+'lag-warn-high' => 'Због преоптерећења базе података, измене новије од $1 {{PLURAL:$1|секунда|секунде}} неће бити приказане.',
# Watchlist editor
'watchlistedit-numitems' => 'Ваш списак надгледања садржи {{PLURAL:$1|један наслов|$1 наслова|$1 наслова}}, без страница за разговор.',
'watchlistedit-raw-submit' => 'Ажурирај списак',
'watchlistedit-raw-done' => 'Ваш списак надгледања је ажуриран.',
'watchlistedit-raw-added' => '{{PLURAL:$1|Додат је један наслов|Додата су $1 наслова|Додато је $1 наслова}}:',
-'watchlistedit-raw-removed' => '{{PLURAL:$1|Уклоњен је један наслов|Уклоњена су $1 наслова|Уклоњено је $1 наслова}}:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 наслов је уклоњен|Уклоњена су $1 наслова|Уклоњено је $1 наслова}}:',
# Watchlist editing tools
'watchlisttools-view' => 'прикажи сродне измене',
'tags' => 'Важеће ознаке измена',
'tag-filter' => 'Филтер за [[Special:Tags|ознаке]]:',
'tag-filter-submit' => 'Филтрирај',
-'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|1=Ознака|Ознаке}}]]: $2)',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Ознака|Ознаке}}]]: $2)',
'tags-title' => 'Ознаке',
'tags-intro' => 'На овој страници је наведен списак ознака с којима програм може да означи измене и његово значење.',
'tags-tag' => 'Назив ознаке',
# New logging system
'logentry-delete-delete' => '$1 је {{GENDER:$2|обрисао|обрисала}} страницу $3',
'logentry-delete-restore' => '$1 је {{GENDER:$2|вратио|вратила}} страницу $3',
-'logentry-delete-event' => '$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|1=догађаја|$5 догађаја}} у дневнику на $3: $4',
-'logentry-delete-revision' => '$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|1=измене|$5 измена}} на страници $3: $4',
+'logentry-delete-event' => '$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|догађаја|$5 догађаја}} у дневнику на $3: $4',
+'logentry-delete-revision' => '$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|измене|$5 измена}} на страници $3: $4',
'logentry-delete-event-legacy' => '$1 је {{GENDER:$2|променио|променила}} видљивост догађаја у дневнику на $3',
'logentry-delete-revision-legacy' => '$1 је {{GENDER:$2|променио|променила}} видљивост измена на страници $3',
'logentry-suppress-delete' => '$1 је {{GENDER:$2|потиснуо|потиснула}} страницу $3',
-'logentry-suppress-event' => '$1 је тајно {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|1=догађаја|$5 догађаја}} у дневнику на $3: $4',
-'logentry-suppress-revision' => '$1 је тајно {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|1=измене|$5 измена}} на страници $3: $4',
+'logentry-suppress-event' => '$1 је тајно {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|догађаја|$5 догађаја}} у дневнику на $3: $4',
+'logentry-suppress-revision' => '$1 је тајно {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|измене|$5 измена}} на страници $3: $4',
'logentry-suppress-event-legacy' => '$1 је потајно {{GENDER:$2|променио|променила}} видљивост догађаја у дневнику на $3',
'logentry-suppress-revision-legacy' => '$1 је тајно {{GENDER:$2|променио|променила}} видљивост измена на страници $3',
'revdelete-content-hid' => 'садржај је сакривен',
'api-error-badaccess-groups' => 'Није вам дозвољено да отпремате датотеке на овај вики.',
'api-error-badtoken' => 'Унутрашња грешка: неисправан жетон.',
'api-error-copyuploaddisabled' => 'Отпремање путем адресе је онемогућено на овом серверу.',
-'api-error-duplicate' => 'Већ {{PLURAL:$1|1=постоји [$2 друга датотека]|постоје [$2 друге датотеке]}} с истим садржајем.',
-'api-error-duplicate-archive' => '{{PLURAL:$1|1=Постојала је [$2 друга датотека]|Постојале су [$2 друге датотеке]}} с истим садржајем, али {{PLURAL:$1|1=је обрисана|су обрисане}}.',
-'api-error-duplicate-archive-popup-title' => '{{PLURAL:$1|1=Дуплирана датотека која је већ обрисана|Дуплиране датотеке које су већ обрисане}}',
-'api-error-duplicate-popup-title' => '{{PLURAL:$1|1=Дуплирана датотека|Дуплиране датотеке}}',
+'api-error-duplicate' => 'Већ {{PLURAL:$1|постоји [$2 друга датотека]|постоје [$2 друге датотеке]}} с истим садржајем.',
+'api-error-duplicate-archive' => '{{PLURAL:$1|Постојала је [$2 друга датотека]|Постојале су [$2 друге датотеке]}} с истим садржајем, али {{PLURAL:$1|је обрисана|су обрисане}}.',
+'api-error-duplicate-archive-popup-title' => '{{PLURAL:$1|Дуплирана датотека која је већ обрисана|Дуплиране датотеке које су већ обрисане}}',
+'api-error-duplicate-popup-title' => '{{PLURAL:$1|Дуплирана датотека|Дуплиране датотеке}}',
'api-error-empty-file' => 'Послата датотека је празна.',
'api-error-emptypage' => 'Стварање нових празних страница није дозвољено.',
'api-error-fetchfileerror' => 'Унутрашња грешка: дошло је до грешке при добављању датотеке.',
'api-error-file-too-large' => 'Послата датотека је превелика.',
'api-error-filename-tooshort' => 'Назив датотеке је прекратак.',
'api-error-filetype-banned' => 'Ова врста датотеке је забрањена.',
-'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|1=је забрањена врста датотеке|су забрањене врсте датотека}}. {{PLURAL:$3|1=Дозвољена је|Дозвољене су}} $2.',
+'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|је забрањена врста датотеке|су забрањене врсте датотека}}. {{PLURAL:$3|Дозвољена је|Дозвољене су}} $2.',
'api-error-filetype-missing' => 'Датотеци недостаје наставак.',
'api-error-hookaborted' => 'Измена је одбачена од куке за проширења.',
'api-error-http' => 'Унутрашња грешка: не могу да се повежем са сервером.',
'rotate-comment' => 'Слика је ротирана у смеру казаљке на сату за {{PLURAL:$1|степени}}',
# Limit report
-'limitreport-walltime-value' => '$1 {{PLURAL:$1|1=секунда|секунди}}',
+'limitreport-walltime-value' => '$1 {{PLURAL:$1|секунда|секунди}}',
'limitreport-postexpandincludesize-value' => '$1/$2 бајтова',
'limitreport-templateargumentsize-value' => '$1/$2 бајтова',
'tog-numberheadings' => 'Samostalno numeriši podnaslove',
'tog-showtoolbar' => 'Prikaži traku s alatkama za uređivanje',
'tog-editondblclick' => 'Uređivanje stranica dvostrukim klikom',
-'tog-editsection' => 'Veze za uređivanje pojedinačnih odeljaka',
'tog-editsectiononrightclick' => 'Uređivanje odeljaka desnim klikom na njihove naslove',
-'tog-showtoc' => 'Prikaži sadržaj stranica koje imaju više od tri podnaslova',
-'tog-rememberpassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|1=dan|dana}})',
+'tog-rememberpassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|dan|dana}})',
'tog-watchcreations' => 'Dodaj stranice koje napravim i datoteke koje pošaljem u spisak nadgledanja',
'tog-watchdefault' => 'Dodaj stranice i datoteke koje izmenim u spisak nadgledanja',
'tog-watchmoves' => 'Dodaj stranice i datoteke koje premestim u spisak nadgledanja',
'yourpasswordagain' => 'Potvrda lozinke:',
'createacct-yourpasswordagain' => 'Potvrdite lozinku',
'createacct-yourpasswordagain-ph' => 'Unesite lozinku još jednom',
-'remembermypassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|dan|dana|dana}})',
+'remembermypassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|dan|dana}})',
'userlogin-remembermypassword' => 'Ostavi me prijavljenog/u',
'userlogin-signwithsecure' => 'Koristite sigurnu konekciju',
'yourdomainname' => 'Domen:',
'passwordreset-capture-help' => 'Ako označite ovu kućicu, e-poruka s privremenom lozinkom će biti prikazana i poslata korisniku.',
'passwordreset-email' => 'E-adresa:',
'passwordreset-emailtitle' => 'Detalji naloga na vikiju {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Neko, verovatno vi, sa IP adrese $1 je zatražio novu lozinku na vikiju {{SITENAME}} ($4).
-Sledeći {{PLURAL:$3|1=korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom e-adresom:
+'passwordreset-emailtext-ip' => 'Neko, verovatno Vi, sa IP adrese $1 je zatražio novu lozinku na vikiju {{SITENAME}} ($4).
+Sledeći {{PLURAL:$3|korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom e-adresom:
$2
-{{PLURAL:$3|1=Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana|$5 dana}}.
-Prijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku.',
-'passwordreset-emailtext-user' => '{{GENDER:$1|Korisnik|Korisnica|Korisnik}} $1 je zatražio podsetnik o podacima za prijavu na vikiju {{SITENAME}} ($4).
-Sledeći {{PLURAL:$3|1=korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom e-adresom:
+{{PLURAL:$3|Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana}}.
+Prijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku i nastavite koristiti staru lozinku.',
+'passwordreset-emailtext-user' => '{{GENDER:$1|Korisnik je zatražio|Korisnica je zatražila}} podsetnik o podacima za prijavu na vikiju {{SITENAME}} ($4).
+Sledeći {{PLURAL:$3|korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom e-adresom:
$2
-{{PLURAL:$3|1=Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana|$5 dana}}.
+{{PLURAL:$3|Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana}}.
Prijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku.',
'passwordreset-emailelement' => 'Korisničko ime: $1
Privremena lozinka: $2',
Poslednja stavka u istoriji je prikazana ispod:",
'semiprotectedpagewarning' => "'''Napomena:''' ova stranica je zaštićena, tako da samo registrovani korisnici mogu da je uređuju.
Poslednji zapis u dnevniku je prikazan ispod:",
-'cascadeprotectedwarning' => "<div style=\"background: #FFBDBD; border: 1px solid #BB7979; color: #000000; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; clear: both;\">'''Upozorenje:''' Ova stranica je zaštićena tako da je mogu uređivati samo administratori, jer je ona uključena u {{PLURAL:\$1|1=sledeću stranicu koja je|sledeće stranice koje su}} zaštićene „prenosivom“ zaštitom:</div>",
+'cascadeprotectedwarning' => "<div style=\"background: #FFBDBD; border: 1px solid #BB7979; color: #000000; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; clear: both;\">'''Upozorenje:''' Ova stranica je zaštićena tako da je mogu uređivati samo administratori, jer je ona uključena u {{PLURAL:\$1|sledeću stranicu koja je|sledeće stranice koje su}} zaštićene „prenosivom“ zaštitom:</div>",
'titleprotectedwarning' => "'''Upozorenje: ova stranica je zaštićena tako da je mogu napraviti samo korisnici [[Special:ListGroupRights|s određenim pravima]].'''",
-'templatesused' => '{{PLURAL:$1|1=Šablon|Šabloni}} na ovoj stranici:',
-'templatesusedpreview' => '{{PLURAL:$1|1=Šablon|Šabloni}} u ovom pregledu:',
-'templatesusedsection' => '{{PLURAL:$1|1=Šablon|Šabloni}} u ovom odeljku:',
+'templatesused' => '{{PLURAL:$1|Šablon|Šabloni}} na ovoj stranici:',
+'templatesusedpreview' => '{{PLURAL:$1|Šablon|Šabloni}} u ovom pregledu:',
+'templatesusedsection' => '{{PLURAL:$1|Šablon|Šabloni}} u ovom odeljku:',
'template-protected' => '(zaštićen)',
'template-semiprotected' => '(poluzaštićen)',
'hiddencategories' => 'Ova stranica je član {{PLURAL:$1|jedne skrivene kategorije|$1 skrivene kategorije|$1 skrivenih kategorija}}:',
'sectioneditnotsupported-title' => 'Uređivanje odeljka nije podržano',
'sectioneditnotsupported-text' => 'Uređivanje odeljka nije podržano na ovoj stranici.',
'permissionserrors' => 'Greška u dozvoli',
-'permissionserrorstext' => 'Nemate ovlašćenje za tu radnju iz {{PLURAL:$1|1=sledećeg|sledećih}} razloga:',
-'permissionserrorstext-withaction' => 'Nemate dozvolu za $2 iz {{PLURAL:$1|1=sledećeg|sledećih}} razloga:',
+'permissionserrorstext' => 'Nemate ovlašćenje za tu radnju iz {{PLURAL:$1|sledećeg|sledećih}} razloga:',
+'permissionserrorstext-withaction' => 'Nemate dozvolu za $2 iz {{PLURAL:$1|sledećeg|sledećih}} razloga:',
'recreate-moveddeleted-warn' => "'''Upozorenje: ponovo pravite stranicu koja je prethodno obrisana.'''
Razmotrite da li je prikladno da nastavite s uređivanjem ove stranice.
'revdelete-no-file' => 'Tražena datoteka ne postoji.',
'revdelete-show-file-confirm' => 'Želite li da vidite obrisanu izmenu datoteke „<nowiki>$1</nowiki>“ od $2; $3?',
'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|1=Izabrana izmena|Izabrane izmene}} stranice '''[[:$1]]''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|1=Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:'''",
+'revdelete-selected' => "'''{{PLURAL:$2|Izabrana izmena|Izabrane izmene}} stranice [[:$1]]'''",
+'logdelete-selected' => "'''{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:'''",
'revdelete-text' => "'''Obrisane izmene će i dalje biti prikazane u istoriji stranica i zapisima, ali delovi njihovog sadržaja neće biti dostupni javnosti.'''
Drugi administratori na ovom vikiju će i dalje imati pristup sakrivenom sadržaju, a oni će taj sadržaj moći da vrate putem ovog sučelja, osim ako nisu postavljena dodatna ograničenja.",
'revdelete-confirm' => 'Potvrdite da nameravate ovo uraditi, da razumete posledice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
'revdelete-hide-text' => 'sakrij tekst izmene',
'revdelete-hide-image' => 'Sakrij sadržaj datoteke',
'revdelete-hide-name' => 'Sakrij radnju i odredište',
-'revdelete-hide-comment' => 'sakrij opis izmene',
+'revdelete-hide-comment' => 'Opis izmene',
'revdelete-hide-user' => 'sakrij ime uređivača',
'revdelete-hide-restricted' => 'Sakrij podatke od administratora i drugih korisnika',
'revdelete-radio-same' => '(ne menjaj)',
'revdelete-suppress' => 'Sakrij podatke od administratora i drugih korisnika',
'revdelete-unsuppress' => 'Ukloni ograničenja na vraćenim izmenama',
'revdelete-log' => 'Razlog:',
-'revdelete-submit' => 'Primeni na {{PLURAL:$1|1=izabranu izmenu|izabrane izmene}}',
+'revdelete-submit' => 'Primeni na {{PLURAL:$1|izabranu izmenu|izabrane izmene}}',
'revdelete-success' => "'''Vidljivost izmene je ažurirana.'''",
'revdelete-failure' => "'''Ne mogu da ažuriram vidljivost izmene:'''
$1",
'youremail' => 'E-adresa:',
'username' => '{{GENDER:$1|Korisničko ime}}:',
'uid' => '{{GENDER:$1|Korisnički}} ID:',
-'prefs-memberingroups' => '{{GENDER:$2|Korisnik|Korisnica}} je član {{PLURAL:$1|1=grupe|grupa}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Korisnik|Korisnica}} je član {{PLURAL:$1|grupe|grupa}}:',
'prefs-memberingroups-type' => '$1',
'prefs-registration' => 'Vreme upisa:',
'prefs-registration-date-time' => '$1',
'filetype-badmime' => 'Datoteke MIME tipa „$1“ nije dozvoljeno slati.',
'filetype-bad-ie-mime' => 'Ova datoteka se ne može poslati zato što bi je Internet eksplorer uočio kao „$1“, a to je zabranjena i opasna vrsta datoteke.',
'filetype-unwanted-type' => '„.$1“ je nepoželjna vrsta datoteke.
-{{PLURAL:$3|1=Poželjna vrsta datoteke je|Poželjne vrste datoteka su}} $2.',
-'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|1=je zabranjena vrsta datoteke|su zabranjene vrste datoteka}}.
-{{PLURAL:$3|1=Dozvoljena vrsta datoteke je|Dozvoljene vrste datoteka su}} $2.',
+{{PLURAL:$3|Poželjna vrsta datoteke je|Poželjne vrste datoteka su}} $2.',
+'filetype-banned-type' => "'''„.$1“''' {{PLURAL:$4|je zabranjena vrsta datoteke|su zabranjene vrste datoteka}}.
+{{PLURAL:$3|Dozvoljena vrsta datoteke je|Dozvoljene vrste datoteka su}} $2.",
'filetype-missing' => 'Ova datoteka nema ekstenziju.',
'empty-file' => 'Poslata datoteka je prazna.',
'file-too-large' => 'Poslata datoteka je prevelika.',
'fileexists-forbidden' => 'Datoteka s ovim nazivom već postoji i ne može se zameniti.
Ako i dalje želite da pošaljete datoteku, vratite se i izaberite drugi naziv.
[[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Datoteka s ovim nazivom već postoji u zajedničkom skladištu.
+'fileexists-shared-forbidden' => 'Datoteka s ovim nazivom već postoji u zajedničkoj ostavi.
Vratite se i pošaljite datoteku s drugim nazivom.
[[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => 'Ovo je duplikat {{PLURAL:$1|1=sledeće datoteke|sledećih datoteka}}:',
+'file-exists-duplicate' => 'Ovo je duplikat {{PLURAL:$1|sledeće datoteke|sledećih datoteka}}:',
'file-deleted-duplicate' => 'Datoteka istovetna ovoj ([[:$1]]) je prethodno obrisana.
Pogledajte istoriju brisanja pre ponovnog slanja.',
'uploadwarning' => 'Upozorenje pri otpremanju',
# Random page
'randompage' => 'Slučajna stranica',
-'randompage-nopages' => 'Nema stranica u {{PLURAL:$2|1=sledećem imenskom prostoru|sledećim imenskim prostorima}}: $1.',
+'randompage-nopages' => 'Nema stranica u {{PLURAL:$2|sledećem imenskom prostoru|sledećim imenskim prostorima}}: $1.',
# Random redirect
'randomredirect' => 'Slučajno preusmerenje',
'nopagetitle' => 'Ne postoji takva stranica',
'nopagetext' => 'Tražena stranica ne postoji.',
'pager-newer-n' => '{{PLURAL:$1|noviji 1|novija $1|novijih $1}}',
-'pager-older-n' => '{{PLURAL:$1|1=stariji 1|starijih $1}}',
+'pager-older-n' => '{{PLURAL:$1|stariji 1|starijih $1}}',
'suppress' => 'Nadzor',
'querypage-disabled' => 'Ova posebna stranica je onemogućena radi poboljšanja performansi.',
# Special:Categories
'categories' => 'Kategorije',
-'categoriespagetext' => '{{PLURAL:$1|1=Sledeća kategorija sadrži|Sledeće kategorije sadrže}} stranice ili datoteke.
+'categoriespagetext' => '{{PLURAL:$1|Sledeća kategorija sadrži|Sledeće kategorije sadrže}} stranice ili datoteke.
[[Special:UnusedCategories|Nekorišćene kategorije]] nisu prikazane ovde.
Pogledajte i [[Special:WantedCategories|tražene kategorije]].',
'categoriesfrom' => 'Prikaži kategorije počev od:',
'linksearch-ok' => 'Pretraži',
'linksearch-text' => 'Mogu se koristiti džokeri poput „*.wikipedia.org“.
Potreban je najviši domen, kao „*.org“.<br />
-{{PLURAL:$2|1=Podržan protokol|Podržani protokoli}}: <code>$1</code> (zadaje http:// ako ne navedete protokol).',
+{{PLURAL:$2|Podržan protokol|Podržani protokoli}}: <code>$1</code> (zadaje http:// ako ne navedete protokol).',
'linksearch-line' => '$1 veza u $2',
'linksearch-error' => 'Džokeri se mogu pojaviti samo na početku adrese.',
'listgrouprights-members' => '(spisak članova)',
'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
-'listgrouprights-addgroup' => 'dodaje {{PLURAL:$2|1=sledeću grupu|sledeće grupe}}: $1',
-'listgrouprights-removegroup' => 'briše {{PLURAL:$2|1=sledeću grupu|sledeće grupe}}: $1',
+'listgrouprights-addgroup' => 'dodaje {{PLURAL:$2|sledeću grupu|sledeće grupe}}: $1',
+'listgrouprights-removegroup' => 'briše {{PLURAL:$2|sledeću grupu|sledeće grupe}}: $1',
'listgrouprights-addgroup-all' => 'dodavanje svih grupa',
'listgrouprights-removegroup-all' => 'brisanje svih grupa',
-'listgrouprights-addgroup-self' => 'dodavanje {{PLURAL:$2|1=grupe|grupa}} na svoj nalog: $1',
-'listgrouprights-removegroup-self' => 'uklanjanje {{PLURAL:$2|1=grupe|grupa}} sa svog naloga: $1',
+'listgrouprights-addgroup-self' => 'dodavanje {{PLURAL:$2|grupe|grupa}} na svoj nalog: $1',
+'listgrouprights-removegroup-self' => 'uklanjanje {{PLURAL:$2|grupe|grupa}} sa svog naloga: $1',
'listgrouprights-addgroup-self-all' => 'Dodaj sve grupe na sopstveni nalog',
'listgrouprights-removegroup-self-all' => 'Ukloni sve grupe sa sopstvenog naloga',
'watchmethod-list' => 'proverava se da li ima skorašnjih izmena u nadgledanim stranicama',
'watchlistcontains' => 'Vaš spisak nadgledanja sadrži $1 {{PLURAL:$1|stranicu|stranice|stranica}}.',
'iteminvalidname' => 'Problem sa stavkom „$1“. Neispravan naziv.',
-'wlnote' => "Ispod {{PLURAL:$1|je poslednja izmena|su poslednje '''$1''' izmene|je poslednjih '''$1''' izmena}} u {{PLURAL:$2|prethodnom satu|prethodna '''$2''' sata|prethodnih '''$2''' sati}}, zaključno sa $3, $4.",
'wlshowlast' => 'Prikaži poslednjih $1 sati, $2 dana, $3',
'watchlist-options' => 'Postavke spiska nadgledanja',
'alreadyrolled' => 'Vraćanje poslednje izmene stranice [[:$1]] od strane {{GENDER:$2|korisnika|korisnice|korisnika}} [[User:$2|$2]] ([[User talk:$2|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); neko drugi je već izmenio ili vratio stranicu.
Poslednju izmenu je {{GENDER:$3|napravio|napravila|napravio}} [[User:$3|$3]] ([[User talk:$3|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
-'editcomment' => "Opis izmene: \"''\$1''\".",
+'editcomment' => "Opis izmene: „''$1''“.",
'revertpage' => 'Vraćene izmene [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na poslednju izmenu korisnika [[User:$1|$1]]',
'revertpage-nouser' => 'Vraćene su izmene skrivenog korisnika na poslednju izmenu {{GENDER:$1|korisnika|korisnice}} [[User:$1|$1]]',
'rollback-success' => 'Vraćene su izmene {{GENDER:$1|korisnika|korisnice}} $1
Pogledajte [[Special:ProtectedPages|spisak zaštićenih stranica]] za više detalja.',
'protectedarticle' => '{{GENDER:|je zaštitio|je zaštitila}} „[[$1]]“',
'modifiedarticleprotection' => '{{GENDER:|je promenio|je promenila|je promenio}} stepen zaštite za „[[$1]]“',
-'unprotectedarticle' => 'uklonjena zaštita sa stranice „[[$1]]“',
+'unprotectedarticle' => 'je skinuo zaštitu sa stranice „[[$1]]“',
'movedarticleprotection' => '{{GENDER:|je premestio|je premestila|je premestio}} postavke zaštite sa „[[$2]]“ na „[[$1]]“',
'protect-title' => 'Stepen zaštite za „$1“',
'protect-title-notallowed' => 'Pregled stepena zaštite za „$1“',
Ovo su postavke stranice '''$1''':",
'protect-locked-access' => "Nemate ovlašćenja za menjanje stepena zaštite stranice.
Ovo su trenutne postavke stranice '''$1''':",
-'protect-cascadeon' => 'Ova stranica je trenutno zaštićena jer se nalazi na {{PLURAL:$1|1=stranici koja ima|stranicama koje imaju}} prenosivu zaštitu.
+'protect-cascadeon' => 'Ova stranica je trenutno zaštićena jer se nalazi na {{PLURAL:$1|stranici koja ima|stranicama koje imaju}} prenosivu zaštitu.
Možete da promenite stepen zaštite, ali to neće uticati na prenosivu zaštitu.',
'protect-default' => 'Dozvoli svim korisnicima',
'protect-fallback' => 'Dozvoljeno samo korisnicima sa dozvolom „$1“',
'isredirect' => 'preusmerenje',
'istemplate' => 'uključivanje',
'isimage' => 'veza ka datoteci',
-'whatlinkshere-prev' => '{{PLURAL:$1|1=prethodni|prethodnih $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|1=sledeći|sledećih $1}}',
+'whatlinkshere-prev' => '{{PLURAL:$1|prethodni|prethodnih $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|sledeći|sledećih $1}}',
'whatlinkshere-links' => '← veze',
'whatlinkshere-hideredirs' => '$1 preusmerenja',
'whatlinkshere-hidetrans' => '$1 uključivanja',
'blocklist-reason' => 'Razlog',
'ipblocklist-submit' => 'Pretraži',
'ipblocklist-localblock' => 'Lokalno blokiranje',
-'ipblocklist-otherblocks' => '{{PLURAL:$1|1=Drugo blokiranje|Druga blokiranja}}',
+'ipblocklist-otherblocks' => '{{PLURAL:$1|Drugo blokiranje|Druga blokiranja}}',
'infiniteblock' => 'trajno',
'expiringblock' => 'ističe dana $1 u $2',
'anononlyblock' => 'samo anonimni',
'change-blocklink' => 'promeni blokiranje',
'contribslink' => 'doprinosi',
'emaillink' => 'pošalji e-poruku',
-'autoblocker' => 'Automatski ste blokirani jer delite IP adresu s {{GENDER:$1|korisnikom|korisnicom}} [[User:$1|$1]].
+'autoblocker' => 'Automatski ste blokirani jer delite IP adresu s korisnikom/com [[User:$1|$1]].
Razlog blokiranja: „$2“',
'blocklogpage' => 'Dnevnik blokiranja',
'blocklog-showlog' => '{{GENDER:$1|Ovaj korisnik je ranije blokiran|Ova korisnica je ranije blokirana|Ovaj korisnik je ranije blokiran}}.
'ipb_hide_invalid' => 'Ne mogu da potisnem ovaj nalog. Možda ima previše izmena.',
'ipb_already_blocked' => '„$1“ je već blokiran',
'ipb-needreblock' => '$1 je već blokiran. Želite li da promenite podešavanja?',
-'ipb-otherblocks-header' => '{{PLURAL:$1|1=Druga blokada|Druge blokade}}',
+'ipb-otherblocks-header' => '{{PLURAL:$1|Druga blokada|Druge blokade}}',
'unblock-hideuser' => 'Ne možete deblokirati ovog korisnika jer je njegovo korisničko ime sakriveno.',
'ipb_cant_unblock' => 'Greška: blokada $1 ne postoji. Možda je korisnik deblokiran.',
'ipb_blocked_as_range' => 'Greška: IP adresa $1 nije direktno blokirana i ne može da se deblokira.
'movepage-max-pages' => 'Najviše $1 {{PLURAL:$1|stranica je premeštena|stranice su premeštene|stranica je premešteno}}, i više ne može da bude automatski premešteno.',
'movelogpage' => 'Dnevnik premeštanja',
'movelogpagetext' => 'Ispod se nalazi spisak premeštanja stranica.',
-'movesubpage' => '{{PLURAL:$1|1=Podstranica|Podstranice}}',
+'movesubpage' => '{{PLURAL:$1|Podstranica|Podstranice}}',
'movesubpagetext' => 'Ova stranica ima $1 {{PLURAL:$1|podstranicu prikazanu|podstranice prikazane|podstranica prikazanih}} ispod.',
'movenosubpage' => 'Ova stranica nema podstrana.',
'movereason' => 'Razlog:',
'import-error-interwiki' => 'Ne mogu da uvezem stranicu „$1“ jer je njen naziv rezervisan za spoljno povezivanje (međuviki).',
'import-error-special' => 'Ne mogu da uvezem stranicu „$1“ jer ona pripada posebnom imenskom prostoru koje ne prihvata stranice.',
'import-error-invalid' => 'Ne mogu da uvezem stranicu „$1“ jer je njen naziv neispravan.',
-'import-options-wrong' => '{{PLURAL:$2|1=Pogrešna opcija|Pogrešne opcije}}: <nowiki>$1</nowiki>',
+'import-options-wrong' => '{{PLURAL:$2|Pogrešna opcija|Pogrešne opcije}}: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'Navedena osnovna stranica ima neispravan naslov.',
'import-rootpage-nosubpage' => 'Imenski prostor „$1“ osnovne stranice ne dozvoljava podstranice.',
'tooltip-pt-watchlist' => 'Spisak stranica koje nadgledate',
'tooltip-pt-mycontris' => 'Spisak vaših doprinosa',
'tooltip-pt-login' => 'Preporučujemo vam da se prijavite, iako to nije obavezno.',
-'tooltip-pt-anonlogin' => 'Preporučujemo vam da se prijavite, iako to nije obavezno.',
'tooltip-pt-logout' => 'Odjavite se',
'tooltip-ca-talk' => 'Razgovor o stranici sa sadržajem',
'tooltip-ca-edit' => 'Možete da uređujete ovu stranicu. Koristite pretpregled pre snimanja',
'notacceptable' => 'Server ne može da napravi podatke u formatu pogodnom za vaš klijent.',
# Attribution
-'anonymous' => 'Anonimni {{PLURAL:$1|1=korisnik|korisnici}} na projektu {{SITENAME}}',
+'anonymous' => 'Anonimni {{PLURAL:$1|korisnik|korisnici}} na projektu {{SITENAME}}',
'siteuser' => '{{SITENAME}} korisnik $1',
'anonuser' => '{{SITENAME}} anoniman korisnik $1',
'lastmodifiedatby' => 'Ovu stranicu je poslednji put {{GENDER:$4|izmenio|izmenila|izmenio}} $3, $1 u $2.',
-'othercontribs' => 'Zasnovano na radu korisnikâ $1.',
+'othercontribs' => 'Zasnovano na radu korisnika $1.',
'others' => 'drugi',
-'siteusers' => '{{PLURAL:$2|1=korisnik|korisnici}} na projektu {{SITENAME}} $1',
-'anonusers' => '{{PLURAL:$2|1=anoniman korisnik|anonimni korisnici}} na projektu {{SITENAME}} $1',
+'siteusers' => '{{PLURAL:$2|korisnik|korisnici}} na projektu {{SITENAME}} $1',
+'anonusers' => '{{PLURAL:$2|anoniman korisnik|anonimni korisnici}} na projektu {{SITENAME}} $1',
'creditspage' => 'Autori stranice',
'nocredits' => 'Ne postoje podaci o autoru ove stranice.',
'pageinfo-robot-noindex' => 'Nije dozvoljeno',
'pageinfo-views' => 'Broj pregleda',
'pageinfo-watchers' => 'Broj nadgledača stranica',
-'pageinfo-few-watchers' => 'Manje od $1 {{PLURAL:$1|1=pratioca|pratilaca}}',
+'pageinfo-few-watchers' => 'Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}',
'pageinfo-redirects-name' => 'Broj preusmerenja na ovu stranicu',
'pageinfo-subpages-name' => 'Podstranice ove stranice',
'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|preusmerenje|preusmerenja|preusmerenja}}; $3 {{PLURAL:$3|nepreusmerenje|nepreusmerenja|nepreusmerenja}})',
'pageinfo-authors' => 'Broj zasebnih autora',
'pageinfo-recent-edits' => 'Broj skorašnjih izmena (u poslednjih $1)',
'pageinfo-recent-authors' => 'Broj skorašnjih zasebnih autora',
-'pageinfo-magic-words' => '{{PLURAL:$1|1=Magična reč|Magične reči}} ($1)',
-'pageinfo-hidden-categories' => '{{PLURAL:$1|1=Sakrivena kategorija|Sakrivene kategorije}} ($1)',
-'pageinfo-templates' => '{{PLURAL:$1|1=Uključeni šablon|Uključeni šabloni}} ($1)',
-'pageinfo-transclusions' => '{{PLURAL:$1|1=Stranica|Stranice}} uključene u ($1)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magična reč|Magične reči}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Stranica|Stranice}} uključene u ($1)',
'pageinfo-toolboxlink' => 'Podaci o stranici',
'pageinfo-redirectsto' => 'Preusmerava na',
'pageinfo-redirectsto-info' => 'podaci',
'svg-long-error' => 'Neispravna SVG datoteka: $1',
'show-big-image' => 'Puna veličina',
'show-big-image-preview' => 'Veličina ovog prikaza: $1.',
-'show-big-image-other' => '{{PLURAL:$2|1=Druga rezolucija|Druge rezolucije}}: $1.',
+'show-big-image-other' => '{{PLURAL:$2|Druga rezolucija|Druge rezolucije}}: $1.',
'show-big-image-size' => '$1 × $2 piksela',
'file-info-gif-looped' => 'petlja',
'file-info-gif-frames' => '$1 {{PLURAL:$1|kadar|kadra|kadrova}}',
'minutes' => '{{PLURAL:$1|$1 minut|$1 minuta|$1 minuta}}',
'hours' => '{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}',
'days' => '{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}',
+'years' => '{{PLURAL:$1|$1 godina|$1 godine}}',
'ago' => 'pre $1',
'just-now' => 'upravo sad',
+# Human-readable timestamps
+'minutes-ago' => 'Pre $1 {{PLURAL:$1|minut|minuta}}',
+
# Bad image list
'bad_image_list' => 'Format je sledeći:
# Friendlier slave lag warnings
'lag-warn-normal' => 'Izmene novije od $1 {{PLURAL:$1|sekunde|sekunde|sekundi}} neće biti prikazane.',
-'lag-warn-high' => 'Zbog preopterećenja baze podataka, izmene novije od $1 {{PLURAL:$1|sekunde|sekunde|sekundi}} neće biti prikazane.',
+'lag-warn-high' => 'Zbog preopterećenja baze podataka, izmene novije od $1 {{PLURAL:$1|sekunde|sekundi}} neće biti prikazane.',
# Watchlist editor
'watchlistedit-numitems' => 'Vaš spisak nadgledanja sadrži {{PLURAL:$1|jedan naslov|$1 naslova|$1 naslova}}, bez stranica za razgovor.',
'watchlistedit-raw-submit' => 'Ažuriraj spisak',
'watchlistedit-raw-done' => 'Vaš spisak nadgledanja je ažuriran.',
'watchlistedit-raw-added' => '{{PLURAL:$1|Dodat je jedan naslov|Dodata su $1 naslova|Dodato je $1 naslova}}:',
-'watchlistedit-raw-removed' => '{{PLURAL:$1|Uklonjen je jedan naslov|Uklonjena su $1 naslova|Uklonjeno je $1 naslova}}:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 naslov je uklonjen|Uklonjena su $1 naslova|Uklonjeno je $1 naslova}}:',
# Watchlist editing tools
'watchlisttools-view' => 'prikaži srodne izmene',
'tags' => 'Važeće oznake izmena',
'tag-filter' => 'Filter za [[Special:Tags|oznake]]:',
'tag-filter-submit' => 'Filtriraj',
-'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|1=Oznaka|Oznake}}]]: $2)',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Oznaka|Oznake}}]]: $2)',
'tags-title' => 'Oznake',
'tags-intro' => 'Na ovoj stranici je naveden spisak oznaka s kojima program može da označi izmene i njegovo značenje.',
'tags-tag' => 'Naziv oznake',
# New logging system
'logentry-delete-delete' => '$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3',
'logentry-delete-restore' => '$1 je {{GENDER:$2|vratio|vratila}} stranicu $3',
-'logentry-delete-event' => '$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=događaja|$5 daogađaja}} u dnevniku na $3: $4',
-'logentry-delete-revision' => '$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=izmene|$5 izmena}} na stranici $3: $4',
+'logentry-delete-event' => '$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|događaja|$5 daogađaja}} u dnevniku na $3: $4',
+'logentry-delete-revision' => '$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|izmene|$5 izmena}} na stranici $3: $4',
'logentry-delete-event-legacy' => '$1 je {{GENDER:$2|promenio|promenila}} vidljivost događaja u dnevniku na $3',
'logentry-delete-revision-legacy' => '$1 je {{GENDER:$2|promenio|promenila}} vidljivost izmena na stranici $3',
'logentry-suppress-delete' => '$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3',
-'logentry-suppress-event' => '$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=događaja|$5 događaja}} u dnevniku na $3: $4',
-'logentry-suppress-revision' => '$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=izmene|$5 izmena}} na stranici $3: $4',
+'logentry-suppress-event' => '$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u dnevniku na $3: $4',
+'logentry-suppress-revision' => '$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|izmene|$5 izmena}} na stranici $3: $4',
'logentry-suppress-event-legacy' => '$1 је tajno {{GENDER:$2|promenio|promenila}} vidljivost događaj u dnevniku na $3',
'logentry-suppress-revision-legacy' => '$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost izmena na stranici $3',
'revdelete-content-hid' => 'sadržaj je sakriven',
'api-error-badaccess-groups' => 'Nije vam dozvoljeno da otpremate datoteke na ovaj viki.',
'api-error-badtoken' => 'Unutrašnja greška: neispravan žeton.',
'api-error-copyuploaddisabled' => 'Otpremanje putem adrese je onemogućeno na ovom serveru.',
-'api-error-duplicate' => 'Već {{PLURAL:$1|1=postoji [$2 druga datoteka]|postoje [$2 druge datoteke]}} s istim sadržajem.',
-'api-error-duplicate-archive' => '{{PLURAL:$1|1=Postojala je [$2 druga datoteka]|Postojale su [$2 druge datoteke]}} s istim sadržajem, ali {{PLURAL:$1|1=je obrisana|su obrisane}}.',
-'api-error-duplicate-archive-popup-title' => '{{PLURAL:$1|1=Duplirana datoteka koja je već obrisana|Duplirane datoteke koje su već obrisane}}',
-'api-error-duplicate-popup-title' => '{{PLURAL:$1|1=Duplirana datoteka|Duplirane datoteke}}',
+'api-error-duplicate' => 'Već {{PLURAL:$1|postoji [$2 druga datoteka]|postoje [$2 druge datoteke]}} s istim sadržajem.',
+'api-error-duplicate-archive' => '{{PLURAL:$1|Postojala je [$2 druga datoteka]|Postojale su [$2 druge datoteke]}} s istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.',
+'api-error-duplicate-archive-popup-title' => '{{PLURAL:$1|Duplirana datoteka koja je već obrisana|Duplirane datoteke koje su već obrisane}}',
+'api-error-duplicate-popup-title' => '{{PLURAL:$1|Duplirana datoteka|Duplirane datoteke}}',
'api-error-empty-file' => 'Poslata datoteka je prazna.',
'api-error-emptypage' => 'Stvaranje novih praznih stranica nije dozvoljeno.',
'api-error-fetchfileerror' => 'Unutrašnja greška: došlo je do greške pri dobavljanju datoteke.',
'api-error-file-too-large' => 'Poslata datoteka je prevelika.',
'api-error-filename-tooshort' => 'Naziv datoteke je prekratak.',
'api-error-filetype-banned' => 'Ova vrsta datoteke je zabranjena.',
-'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|1=je zabranjena vrsta datoteke|su zabranjene vrste datoteka}}. {{PLURAL:$3|1=Dozvoljena je|Dozvoljene su}} $2.',
+'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|je zabranjena vrsta datoteke|su zabranjene vrste datoteka}}. {{PLURAL:$3|Dozvoljena je|Dozvoljene su}} $2.',
'api-error-filetype-missing' => 'Datoteci nedostaje nastavak.',
'api-error-hookaborted' => 'Izmena je odbačena od kuke za proširenja.',
'api-error-http' => 'Unutrašnja greška: ne mogu da se povežem sa serverom.',
'tog-numberheadings' => 'Uurskrifte automatisk nuumerierje',
'tog-showtoolbar' => 'Beoarbaidengs-Reewen anwiese',
'tog-editondblclick' => 'Sieden mäd Dubbeldklik beoarbaidje (JavaScript)',
-'tog-editsection' => 'Links toun Beoarbaidjen fon eenpelde Ousatse anwiese',
'tog-editsectiononrightclick' => 'Eenpelde Ousatse mäd Gjuchtsklik beoarbaidje (JavaScript)',
-'tog-showtoc' => 'Anwiesen fon n Inhooldsferteeknis bie Artikkele mäd moor as 3 Uurskrifte',
'tog-rememberpassword' => 'Mäd dissen Browser duurhaft ounmälded blieuwe (Maximoal foar $1 {{PLURAL:$1|Dai|Deege}})',
'tog-watchcreations' => 'Aal do sälwen näi anlaide Sieden beooboachtje',
'tog-watchdefault' => 'Aal do sälwen annerde Sieden beooboachtje',
'tog-numberheadings' => 'Automatisk numrerade rubriker',
'tog-showtoolbar' => 'Visa redigeringsverktygsraden',
'tog-editondblclick' => 'Redigera sidor med dubbelklick',
-'tog-editsection' => 'Aktivera redigering av avsnitt genom [redigera]-länkar',
'tog-editsectiononrightclick' => 'Aktivera redigering av avsnitt genom högerklick på underrubriker',
-'tog-showtoc' => 'Visa innehållsförteckning (för sidor med minst fyra rubriker)',
'tog-rememberpassword' => 'Kom ihåg min inloggning på den här webbläsaren (i maximalt $1 {{PLURAL:$1|dygn|dygn}})',
'tog-watchcreations' => 'Lägg till sidor jag skapar och filer jag laddar upp till min bevakningslista',
'tog-watchdefault' => 'Lägg till sidor och filer jag redigerar i min bevakningslista',
'retypenew' => 'Upprepa det nya lösenordet:',
'resetpass_submit' => 'Ange lösenord och logga in',
'changepassword-success' => 'Ditt lösenord har ändrats!',
+'changepassword-throttled' => 'Du har gjort för många misslyckade inloggningsförsök.
+Vänta $1 innan du försöker igen.',
'resetpass_forbidden' => 'Lösenord kan inte ändras',
'resetpass-no-info' => 'Du måste vara inloggad för att komma åt den här sidan direkt.',
'resetpass-submit-loggedin' => 'Ändra lösenord',
'changeemail-password' => 'Ditt lösenord till {{SITENAME}}:',
'changeemail-submit' => 'Ändra e-post',
'changeemail-cancel' => 'Avbryt',
+'changeemail-throttled' => 'Du har gjort för många inloggningsförsök.
+Vänta $1 innan du försöker igen.',
# Special:ResetTokens
'resettokens' => 'Återställ nycklar',
'content-not-allowed-here' => 'innehåll av "$1" är inte tillåtet på sidan [[$2]]',
'editwarning-warning' => 'Om du lämnar den här sidan kommer du att förlora alla ändringar du har gjort.
Om du är inloggad kan du slå av den här varningen under "Redigering" i dina inställningar.',
-'editpage-notsupportedcontentformat-title' => 'Innehållsformat som inte stöds',
+'editpage-notsupportedcontentformat-title' => 'Innehållsformat stöds inte',
'editpage-notsupportedcontentformat-text' => 'Innehållsformatet $1 stöds inte av innehållsmodellen $2.',
# Content models
'search-result-score' => 'Relevans: $1%',
'search-redirect' => '(omdirigering $1)',
'search-section' => '(avsnitt $1)',
+'search-file-match' => '(överensstämmer filens innehåll)',
'search-suggest' => 'Menade du: $1',
'search-interwiki-caption' => 'Systerprojekt',
'search-interwiki-default' => 'Resultat i $1:',
'upload-file-error-text' => 'Ett internt fel inträffade när en temporär fil skulle skapas på servern. Kontakta en [[Special:ListUsers/sysop|administratör]].',
'upload-misc-error' => 'Okänt uppladdningsfel',
'upload-misc-error-text' => 'Ett okänt fel inträffade under uppladdningen.
-Kontrollera att URL:en giltig och försök igen.
+Kontrollera att URL:en giltig och tillgänglig och försök igen.
Om problemet kvarstår, kontakta en [[Special:ListUsers/sysop|administratör]].',
'upload-too-many-redirects' => 'URL-en innehöll för många omdirigeringar',
'upload-unknown-size' => 'Okänd storlek',
# File backend
'backend-fail-stream' => 'Kunde inte strömma filen $1.',
-'backend-fail-backup' => 'Kunde inte säkerhetskopiera filen $1.',
+'backend-fail-backup' => "Kunde inte säkerhetskopiera filen ''$1''.",
'backend-fail-notexists' => 'Filen $1 finns inte.',
'backend-fail-hashes' => 'Kunde inte att hämta filhash för jämförelse.',
-'backend-fail-notsame' => 'En icke-identisk fil redan finns på $1.',
+'backend-fail-notsame' => "En icke-identisk fil finns redan på ''$1''.",
'backend-fail-invalidpath' => '$1 är inte en giltig sökväg för att spara.',
-'backend-fail-delete' => 'Kunde inte radera filen $1.',
+'backend-fail-delete' => "Kunde inte radera filen ''$1''.",
'backend-fail-describe' => 'Kunde inte att ändra metadata för filen "$1".',
-'backend-fail-alreadyexists' => 'Filen $1 finns redan.',
-'backend-fail-store' => 'Kunde inte spara filen $1 vid $2.',
-'backend-fail-copy' => 'Det gick inte att kopiera filen $1 till $2.',
-'backend-fail-move' => 'Kunde inte flytta filen $1 till $2.',
+'backend-fail-alreadyexists' => "Filen ''$1'' finns redan.",
+'backend-fail-store' => "Kunde inte spara filen ''$1'' vid ''$2''.",
+'backend-fail-copy' => 'Det gick inte att kopiera filen "$1" till "$2".',
+'backend-fail-move' => 'Kunde inte flytta filen "$1" till "$2".',
'backend-fail-opentemp' => 'Kunde inte öppna temporär fil.',
'backend-fail-writetemp' => 'Kunde inte skriva till temporär fil.',
'backend-fail-closetemp' => 'Kunde inte stänga temporär fil.',
-'backend-fail-read' => 'Kunde inte läsa filen $1.',
+'backend-fail-read' => "Kunde inte läsa filen ''$1''.",
'backend-fail-create' => 'Kunde inte skapa filen $1.',
'backend-fail-maxsize' => 'Kunde inte skapa filen $1 eftersom den är större än {{PLURAL:$2|en byte|$2 bytes}}.',
'backend-fail-readonly' => 'Lagringssystemet "$1" är för närvarande skrivskyddad. Den angivna anledningen är: "$2"',
'http-invalid-scheme' => 'URLer med "$1"-formen stöds inte',
'http-request-error' => 'HTTP-begäran misslyckades på grund av okänt fel.',
'http-read-error' => 'HTTP-läsfel.',
-'http-timed-out' => 'Time out för HTTP-begäran.',
+'http-timed-out' => 'HTTP-begäran avbröts.',
'http-curl-error' => 'Fel vid hämtning av URL: $1',
'http-bad-status' => 'Det uppstod ett problem under HTTP-begäran: $1 $2',
'filehist-missing' => 'Fil saknas',
'imagelinks' => 'Filanvändning',
'linkstoimage' => 'Följande {{PLURAL:$1|sida|$1 sidor}} länkar till den här filen:',
-'linkstoimage-more' => 'Mer är {{PLURAL:$1|en sida|$1 sidor}} länkar till den här filen.
+'linkstoimage-more' => 'Mer änr {{PLURAL:$1|en sida|$1 sidor}} länkar till den här filen.
Följande lista visar bara {{PLURAL:$1|den första sidan|de $1 första sidorna}} som länkar till filen.
Det finns en [[Special:WhatLinksHere/$2|fullständig lista]].',
'nolinkstoimage' => 'Inga sidor länkar till den här filen.',
'sharedupload-desc-there' => 'Den här filen är från $1 och kan användas av andra projekt.
Var god se [$2 filbeskrivningssidan] för mer information.',
'sharedupload-desc-here' => 'Den här filen är från $1 och kan användas av andra projekt.
-Beskrivningen på dess [$2 filbeskrivningssida] visas nedan.',
+Beskrivningen på dess [$2 filbeskrivningssida] där visas nedan.',
'sharedupload-desc-edit' => 'Denna fil är från $1 och kan användas av andra projekt.
Kanske vill du redigera beskrivningen på dess [$2 filbeskrivningssida] där.',
'sharedupload-desc-create' => 'Denna fil är från $1 och kan användas av andra projekt.
** Upphovsrättsbrott
** Dubblettfil',
'filedelete-edit-reasonlist' => 'Redigera anledningar för radering',
-'filedelete-maintenance' => 'Radering och återställning av filer tillfälligt avaktiverat under underhåll.',
+'filedelete-maintenance' => 'Radering och återställning av filer har tillfälligt avaktiverats under underhåll.',
'filedelete-maintenance-title' => 'Kan inte radera filen',
# MIME search
# Random page in category
'randomincategory' => 'Slumpsida i kategori',
'randomincategory-invalidcategory' => '"$1" är inte ett giltigt kategorinamn.',
-'randomincategory-nopages' => 'Det finns inga sidor i [[:Category:$1]].',
+'randomincategory-nopages' => 'Det finns inga sidor i kategorin [[:Category:$1]].',
'randomincategory-selectcategory' => 'Få slumpsida från kategori: $1 $2.',
'randomincategory-selectcategory-submit' => 'Gå',
# Random redirect
-'randomredirect' => 'Slumpvald omdirigering',
+'randomredirect' => 'Slumpmässig omdirigering',
'randomredirect-nopages' => 'Det finns inte några omdirigeringar i namnrymden "$1".',
# Statistics
'double-redirect-fixer' => 'Omdirigeringsrättaren',
'brokenredirects' => 'Trasiga omdirigeringar',
-'brokenredirectstext' => 'Följande omdirigerar länkar till ej existerande sidor:',
+'brokenredirectstext' => 'Följande omdirigeringar länkar till ej existerande sidor:',
'brokenredirects-edit' => 'redigera',
'brokenredirects-delete' => 'radera',
# Miscellaneous special pages
'nbytes' => '$1 {{PLURAL:$1|byte|byte}}',
'ncategories' => '$1 {{PLURAL:$1|kategori|kategorier}}',
-'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki}}',
'nlinks' => '$1 {{PLURAL:$1|länk|länkar}}',
'nmembers' => '$1 {{PLURAL:$1|medlem|medlemmar}}',
'nmemberschanged' => '$1 → $2 {{PLURAL:$2|medlem|medlemmar}}',
'uncategorizedcategories' => 'Ej kategoriserade kategorier',
'uncategorizedimages' => 'Ej kategoriserade filer',
'uncategorizedtemplates' => 'Ej kategoriserade mallar',
-'unusedcategories' => 'Tomma kategorier',
+'unusedcategories' => 'Oanvända kategorier',
'unusedimages' => 'Oanvända filer',
'popularpages' => 'Populära sidor',
'wantedcategories' => 'Önskade kategorier',
'wantedtemplates' => 'Önskade mallar',
'mostlinked' => 'Sidor med flest länkar till sig',
'mostlinkedcategories' => 'Kategorier med flest länkar till sig',
-'mostlinkedtemplates' => 'Mest använda mallar',
+'mostlinkedtemplates' => 'Mallar med flest länkar till sig',
'mostcategories' => 'Sidor med flest kategorier',
'mostimages' => 'Filer med flest länkar till sig',
'mostinterwikis' => 'Sidor med flest interwikis',
'move' => 'Flytta',
'movethispage' => 'Flytta denna sida',
'unusedimagestext' => 'Följande filer existerar men är inte inlagda i någon sida.
-Lägg märke till att andra webbplatser kan länka till en fil med en direkt URL. Filer kan därför användas aktivt trots att de listas här.',
+Observera att andra webbplatser kan länka direkt till en fil med en URL. Filer kan därför användas aktivt trots att de listas här.',
'unusedcategoriestext' => 'Följande kategorier finns men innehåller inga sidor eller underkategorier.',
'notargettitle' => 'Inget mål',
'notargettext' => 'Du har inte angivit någon sida eller användare att utföra denna funktion på.',
# Book sources
'booksources' => 'Bokkällor',
'booksources-search-legend' => 'Sök efter bokkällor',
-'booksources-go' => 'Sök',
+'booksources-go' => 'Gå',
'booksources-text' => 'Nedan följer en lista över länkar till webbplatser som säljer nya och begagnade böcker, och som kanske har ytterligare information om de böcker du söker.',
'booksources-invalid-isbn' => 'Det angivna ISBN-numret verkar inte vara giltigt. Kontrollera källan för eventuella fel.',
'activeusers-intro' => 'Detta är en lista på användare som har haft någon form av aktivitet inom de senaste $1 {{PLURAL:$1|dygnet|dygnen}}.',
'activeusers-count' => '$1 {{PLURAL:$1|handling|handlingar}} {{PLURAL:$3|det senaste dygnet|de senaste $3 dygnen}}',
'activeusers-from' => 'Visa användare från och med:',
-'activeusers-hidebots' => 'Göm botar',
+'activeusers-hidebots' => 'Dölj botar',
'activeusers-hidesysops' => 'Dölj administratörer',
'activeusers-noresult' => 'Inga användare funna.',
'listgrouprights-rights' => 'Behörigheter',
'listgrouprights-helppage' => 'Help:Gruppbehörigheter',
'listgrouprights-members' => '(lista över medlemmar)',
-'listgrouprights-addgroup' => 'Kan lägga till {{PLURAL:$2|gruppen|grupperna}}: $1',
-'listgrouprights-removegroup' => 'Kan ta bort {{PLURAL:$2|gruppen|grupperna}}: $1',
-'listgrouprights-addgroup-all' => 'Kan lägga till alla användargrupper',
-'listgrouprights-removegroup-all' => 'Kan ta bort alla användargrupper',
-'listgrouprights-addgroup-self' => 'Kan lägga till {{PLURAL:$2|gruppen|grupperna}} till sitt eget konto: $1',
-'listgrouprights-removegroup-self' => 'Kan ta bort {{PLURAL:$2|gruppen|grupperna}} från sitt eget konto: $1',
-'listgrouprights-addgroup-self-all' => 'Kan lägga till alla grupperna till sitt eget konto',
-'listgrouprights-removegroup-self-all' => 'Kan ta bort alla grupperna från sitt eget konto',
+'listgrouprights-addgroup' => 'Lägg till {{PLURAL:$2|gruppen|grupperna}}: $1',
+'listgrouprights-removegroup' => 'Ta bort {{PLURAL:$2|gruppen|grupperna}}: $1',
+'listgrouprights-addgroup-all' => 'Lägg till alla användargrupper',
+'listgrouprights-removegroup-all' => 'Ta bort alla användargrupper',
+'listgrouprights-addgroup-self' => 'Lägg till {{PLURAL:$2|gruppen|grupperna}} på eget konto: $1',
+'listgrouprights-removegroup-self' => 'Ta bort {{PLURAL:$2|gruppen|grupperna}} från eget konto: $1',
+'listgrouprights-addgroup-self-all' => 'Lägg till alla grupperna till eget konto',
+'listgrouprights-removegroup-self-all' => 'Ta bort alla grupperna från eget konto',
# Email user
'mailnologin' => 'Ingen adress att skicka till',
Den e-postadress du har angivit i [[Special:Preferences|dina användarinställningar]] kommer att visas som "Från"-adress i meddelandet, så att mottagaren har möjlighet att svara direkt till dig.',
'usermailererror' => 'Fel i hanteringen av mail:',
'defemailsubject' => '{{SITENAME}} e-post från användare "$1"',
-'usermaildisabled' => 'Användar-epost avaktiverat',
+'usermaildisabled' => 'Användar-e-post avaktiverat',
'usermaildisabledtext' => 'Du kan inte skicka e-post till andra användare på den här wikin',
'noemailtitle' => 'Ingen e-postadress',
'noemailtext' => 'Den här användaren har inte angivit en giltig e-postadress.',
'emailccsubject' => 'Kopia av ditt meddelande till $1: $2',
'emailsent' => 'E-post har nu skickats',
'emailsenttext' => 'Ditt e-postmeddelande har skickats',
-'emailuserfooter' => 'Detta e-brev skickades av $1 till $2 genom "Skicka e-post"-funktionen på {{SITENAME}}.',
+'emailuserfooter' => 'Denna e-post skickades av $1 till $2 genom "Skicka e-post"-funktionen på {{SITENAME}}.',
# User Messenger
'usermessage-summary' => 'Lämnar systemmeddelande.',
'watchmethod-recent' => 'letar efter bevakade sidor bland senaste ändringar',
'watchmethod-list' => 'letar efter nyligen gjorda ändringar bland bevakade sidor',
'watchlistcontains' => 'Din bevakningslista innehåller $1 {{PLURAL:$1|sida|sidor}}.',
-'iteminvalidname' => "Problem med sidan '$1', ogiltigt namn...",
-'wlnote' => "Nedan finns {{PLURAL:$1|den senaste ändringen|de senaste '''$1''' ändringarna}} under {{PLURAL:$2|den senaste timmen|de senaste '''$2''' timmarna}} från den $3, kl. $4.",
+'iteminvalidname' => "Problem med ''$1'', ogiltigt namn...",
'wlshowlast' => 'Visa senaste $1 timmarna $2 dygnen $3',
'watchlist-options' => 'Alternativ för bevakningslistan',
# Displayed when you click the "watch" button and it is in the process of watching
'watching' => 'Bevakar...',
'unwatching' => 'Avbevakar...',
-'watcherrortext' => 'Ett fel inträffade när du ändrade dina bevakningsinställningarna för " $1 ".',
+'watcherrortext' => 'Ett fel inträffade när du ändrade dina bevakningsinställningarna för "$1".',
'enotif_mailer' => '{{SITENAME}}s system för att få meddelanden om förändringar per e-post',
'enotif_reset' => 'Markera alla sidor som besökta',
'changed' => 'ändrad',
# Delete
-'deletepage' => 'Ta bort sida',
+'deletepage' => 'Radera sida',
'confirm' => 'Bekräfta',
-'excontent' => "Före radering: '$1'",
-'excontentauthor' => "innehållet var: '$1' (den enda som skrivit var '[[Special:Contributions/$2|$2]]')",
-'exbeforeblank' => "innehåll före tömning var: '$1'",
+'excontent' => 'Före radering: "$1"',
+'excontentauthor' => 'innehållet var: "$1" (den enda som skrivit var "[[Special:Contributions/$2|$2]]")',
+'exbeforeblank' => 'innehåll före tömning var: "$1"',
'exblank' => 'sidan var tom',
'delete-confirm' => 'Radera "$1"',
'delete-legend' => 'Radera',
Se $2 för noteringar om de senaste raderingarna.',
'dellogpage' => 'Raderingslogg',
'dellogpagetext' => 'Nedan listas de senaste raderingarna.',
-'deletionlog' => 'raderingsloggen',
+'deletionlog' => 'raderingslogg',
'reverted' => 'Återgått till tidigare version',
'deletecomment' => 'Anledning:',
'deleteotherreason' => 'Annan/ytterligare anledning:',
# Rollback
'rollback' => 'Rulla tillbaka ändringar',
-'rollback_short' => 'Återställning',
+'rollback_short' => 'Tillbakarullning',
'rollbacklink' => 'rulla tillbaka',
'rollbacklinkcount' => 'rulla tillbaka $1 {{PLURAL:$1|redigering|redigeringar}}',
'rollbacklinkcount-morethan' => 'rulla tillbaka mer än $1 {{PLURAL:$1|redigering|redigeringar}}',
'protectlogpage' => 'Skrivskyddslogg',
'protectlogtext' => 'Detta är en lista över applicerande och borttagande av skrivskydd.
Se [[Special:ProtectedPages|listan över skyddade sidor]] för listan över aktiva sidskydd.',
-'protectedarticle' => 'skyddade [[$1]]',
+'protectedarticle' => 'skrivskyddade [[$1]]',
'modifiedarticleprotection' => 'ändrade skyddsnivån för "[[$1]]"',
-'unprotectedarticle' => 'tog bort skydd från "[[$1]]"',
-'movedarticleprotection' => 'flyttade skyddsinställningar från "[[$2]]" till "[[$1]]"',
-'protect-title' => 'Skyddsinställningar för "$1"',
+'unprotectedarticle' => 'tog bort skrivskydd från "[[$1]]"',
+'movedarticleprotection' => 'flyttade skrivskyddsinställningar från "[[$2]]" till "[[$1]]"',
+'protect-title' => 'Ändra skrivskyddsnivå för "$1"',
'protect-title-notallowed' => 'Visa skyddsnivån för "$1"',
-'prot_1movedto2' => 'flyttade [[$1]] till [[$2]]',
+'prot_1movedto2' => '[[$1]] flyttades till [[$2]]',
'protect-badnamespace-title' => 'Namnrymd som inte kan skrivskyddas',
'protect-badnamespace-text' => 'Sidor i den här namnrymden kan inte skrivskyddas.',
-'protect-norestrictiontypes-text' => 'Denna sida kan inte skyddas eftersom det inte finns några begränsningstyper tillgängliga.',
-'protect-norestrictiontypes-title' => 'Oskyddbar sida',
+'protect-norestrictiontypes-text' => 'Denna sida kan inte skrivskyddas eftersom det inte finns några begränsningstyper tillgängliga.',
+'protect-norestrictiontypes-title' => 'Sidan kan inte skrivskyddas',
'protect-legend' => 'Bekräfta skrivskydd av sida',
'protectcomment' => 'Anledning:',
'protectexpiry' => 'Varaktighet:',
'protect_expiry_invalid' => 'Ogiltig varaktighetstid.',
-'protect_expiry_old' => 'Den angivna varaktighetentiden har redan passerats.',
-'protect-unchain-permissions' => 'Lås upp fler skyddsalternativ',
-'protect-text' => "Här kan du se och ändra skyddsnivån av sidan '''$1'''.",
-'protect-locked-blocked' => "Du kan inte ändra sidors skydd medan du är blockerad.
-Här kan du se gällande skyddsinställninger för sidan '''$1''':",
+'protect_expiry_old' => 'Den angivna varaktighetstiden har redan passerats.',
+'protect-unchain-permissions' => 'Lås upp fler skrivskyddsalternativ',
+'protect-text' => "Här kan du se och ändra skrivskyddsnivån av sidan '''$1'''.",
+'protect-locked-blocked' => "Du kan inte ändra sidors skrivskydd medan du är blockerad.
+Här kan du se gällande skrivskyddsinställninger för sidan '''$1''':",
'protect-locked-dblock' => "Skrivskydd kan inte ändras då databasen är låst.
Nuvarande skrivskyddsinställning för sidan '''$1''' är:",
'protect-locked-access' => "Ditt konto har inte behörighet att ändra skrivskydd på sidor.
'protect-level-sysop' => 'Enbart administratörer',
'protect-summary-cascade' => 'kaskaderande',
'protect-expiring' => 'upphör den $1 (UTC)',
-'protect-expiring-local' => 'löper ut $1',
+'protect-expiring-local' => 'upphör $1',
'protect-expiry-indefinite' => 'på obestämd tid',
'protect-cascade' => 'Skydda sidor som är inkluderade i den här sidan (kaskaderande skydd)',
-'protect-cantedit' => 'Du kan inte ändra skyddsnivån för den här sidan, eftersom du inte har behörighet att redigera den.',
+'protect-cantedit' => 'Du kan inte ändra skrivskyddsnivån för den här sidan, eftersom du inte har behörighet att redigera den.',
'protect-othertime' => 'Annan tidsperiod:',
'protect-othertime-op' => 'annan tidsperiod',
'protect-existing-expiry' => 'Gällande varaktighet: $2, kl. $3',
** Upprepad spam
** Redigeringskrig
** Sida med många besökare',
-'protect-edit-reasonlist' => 'Redigera skyddsanledningar',
+'protect-edit-reasonlist' => 'Redigera skrivskyddsanledningar',
'protect-expiry-options' => '1 timme:1 hour,1 dygn:1 day,1 vecka:1 week,2 veckor:2 weeks,1 månad:1 month,3 månader:3 months,6 månader:6 months,1 år:1 year,oändlig:infinite',
'restriction-type' => 'Typ av skydd:',
'restriction-level' => 'Skyddsnivå:',
'pagesize' => '(byte)',
# Restrictions (nouns)
-'restriction-edit' => 'Redigering',
-'restriction-move' => 'Flyttning',
+'restriction-edit' => 'Redigera',
+'restriction-move' => 'Flytta',
'restriction-create' => 'Skapa sidan',
-'restriction-upload' => 'Uppladdning',
+'restriction-upload' => 'Ladda upp',
# Restriction levels
'restriction-level-sysop' => 'helt låst',
# Undelete
'undelete' => 'Visa raderade sidor',
-'undeletepage' => 'Visa och återställ borttagna sidor',
+'undeletepage' => 'Visa och återställ raderade sidor',
'undeletepagetitle' => "'''Härunder visas en lista över raderade versioner av [[:$1|$1]]'''.",
'viewdeletedpage' => 'Visa raderade sidor',
'undeletepagetext' => 'Följande {{PLURAL:$1|sida har blivit raderad|$1 sidor har blivit raderade}} men finns fortfarande i arkivet och kan återställas.
'tooltip-pt-preferences' => 'Dina inställningar',
'tooltip-pt-watchlist' => 'Listan över sidor du bevakar för ändringar',
'tooltip-pt-mycontris' => 'Lista över dina bidrag',
-'tooltip-pt-login' => 'Du får gärna logga in, men det är inte nödvändigt',
-'tooltip-pt-anonlogin' => 'Du får gärna logga in, men det är inte nödvändigt',
+'tooltip-pt-login' => 'Du uppmuntras att logga in, men det är inte nödvändigt',
'tooltip-pt-logout' => 'Logga ut',
'tooltip-ca-talk' => 'Diskussion om innehållssidan',
'tooltip-ca-edit' => 'Du kan redigera den här sidan.
'expand_templates_generate_rawhtml' => 'Visa rå HTML',
'expand_templates_preview' => 'Förhandsvisning',
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
+'uploadinvalidxml' => 'XML-koden i den uppladdade filen kunde inte tolkas.',
);
'tog-numberheadings' => 'Automatyczno numeracyjo titlůw',
'tog-showtoolbar' => 'Pokoż gurt werkcojgůw (JavaScript)',
'tog-editondblclick' => 'Edycyjo napoczynajům dwa klikńyńća (JavaScript)',
-'tog-editsection' => 'Kożdo tajla zajty sprowjano uosobno',
'tog-editsectiononrightclick' => 'Klikńyńće prawym kneflym myszy na titlu tajli<br />napoczyno jigo sprowjańy(JavaScript)',
-'tog-showtoc' => 'Pokoż spis treśći (na zajtach, kere majům wjyncyj kej trzi tajle)',
'tog-rememberpassword' => 'Pamjyntej můj ausdruk na tym kůmputrze (nojdalij bez $1 {{PLURAL:$1|dźyń|dńůw}})',
'tog-watchcreations' => 'Dowům pozůr na zajty, kere żech naszkryfloł',
'tog-watchdefault' => 'Dowům pozůr na zajty, kere żech sprowjoł',
'tog-numberheadings' => 'தலைப்புகளுக்கு தானியங்கி இலக்கமிடு',
'tog-showtoolbar' => 'கருவிப்பட்டையைக் காட்டு',
'tog-editondblclick' => 'இரட்டைச் சொடுக்கில் பக்கங்களைத் தொகு',
-'tog-editsection' => '(தொகு) இணைப்புகளின் வழியாக பிரிவுத் தொகுத்தலை செயலாக்கவும்',
'tog-editsectiononrightclick' => 'பிரிவுத் தலைப்பின் மீது வலச் சொடுக்குவதன் மூலம் பகுதித் தொகுப்பை செயலாக்கவும்',
-'tog-showtoc' => 'பொருளடக்க பட்டியலைக் காண்பி (மூன்றுக்கு மேற்பட்ட தலைப்புகளையுடைய கட்டுரைகளுக்கு)',
'tog-rememberpassword' => 'எனது புகுபதிகை பற்றிய விவரங்களை இவ்வுலாவியில் (மிக அதிகமாக $1 {{PLURAL:$1|நாள்|நாட்கள்}}) வரை நினைவில் வைத்திருக்கவும்.',
'tog-watchcreations' => 'நான் உருவாக்கும் பக்கங்கள் மற்றும் பதிவேற்றும் கோப்புகளை எனது கவனிப்புப் பட்டியலில் சேர்க்கவும்.',
'tog-watchdefault' => 'நான் தொகுக்கும் பக்கங்கள் மற்றும் கோப்புகளை என் கவனிப்புப் பட்டியலில் சேர்',
'tog-numberheadings' => 'శీర్షికలకు అప్రమేయంగా వరుస సంఖ్యలు చేర్చు',
'tog-showtoolbar' => 'దిద్దుబాటు పనిముట్ల పట్టీని చూపించు',
'tog-editondblclick' => 'డబుల్ క్లిక్కు చేసినప్పుడు పేజీని మార్చు',
-'tog-editsection' => '[మార్చు] లింకు ద్వారా విభాగం మార్పు చేతనం',
'tog-editsectiononrightclick' => 'విభాగాల శీర్షికల మీద కుడినొక్కుతో విభాగపు దిద్దుబాటును చేతనంచేయి',
-'tog-showtoc' => 'విషయసూచిక చూపించు (3 కంటే ఎక్కువ శీర్షికలున్న పేజీలకు)',
'tog-rememberpassword' => 'ఈ విహారిణిలో నా ప్రవేశాన్ని గుర్తుంచుకో (గరిష్ఠంగా $1 {{PLURAL:$1|రోజు|రోజుల}}కి)',
'tog-watchcreations' => 'నేను సృష్టించే పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు',
'tog-watchdefault' => 'నేను మార్చే పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు',
'tog-numberheadings' => 'шуморагузори~и худкори инвонҳо',
'tog-showtoolbar' => 'Намоиши навори абзори вироиш (JavaScript)',
'tog-editondblclick' => 'Вироиш намудани саҳифаҳо ҳангоми ду карат пахш намудани тугмаи мушак (JavaScript)',
-'tog-editsection' => 'Иҷозат додани вироиши қисмати саҳифа ба воситаи пайванди [вироиш]',
'tog-editsectiononrightclick' => 'Ба кор андохтани вироиши сарлавҳаҳои қисматҳо бо клики рост (ҶаваСкрипт)',
-'tog-showtoc' => 'Намоиши феҳристи мундариҷон (барои мақолаҳои бо беш аз 3 сарлавҳа)',
'tog-rememberpassword' => 'Вуруди манро дар ин мурургар дар хотир нигоҳ дор (ҳадди аксар то $1 {{PLURAL:$1|рӯз|рӯз}})',
'tog-watchcreations' => 'Саҳифаҳое, ки месозам ва парвандаҳое, ки боргузорӣ мекунам ба феҳристи пайгириҳоям афзуда шавад.',
'tog-watchdefault' => 'Саҳифаҳо ва парвандаҳое, ки вироиш мекунам ба феҳристи пайгириҳоям афзуда шавад',
'tog-enotifminoredits' => 'Барои тағийроти ҷузъӣ дар сафҳаҳо ва парвандаҳо ҳам ба ман номае фиристода шавад',
'tog-enotifrevealaddr' => 'Нишонаи почтаи электронии ман дар номаҳои иттилорасонӣ қайд шавад',
'tog-shownumberswatching' => 'Нишон додани шумораи корбарони пайгир',
-'tog-oldsig' => 'Ð\9fеÑ\88намоиÑ\88и имзои вуҷуддошта:',
+'tog-oldsig' => 'Ð\98мзои вуҷуддошта:',
'tog-fancysig' => 'Имзоро ба сурати викиматн ба назар бигир (бе пайванди худкор)',
-'tog-uselivepreview' => 'Истифода аз пешнамоиши зинда (ҶаваСкрипт) (Озмоишӣ)',
+'tog-uselivepreview' => 'Истифода аз пешнамоиши зинда(озмоишӣ)',
'tog-forceeditsummary' => 'Ҳангоме ки хулосаи вироиш нанавиштаам юа ман ислоҳ бидеҳ',
'tog-watchlisthideown' => 'Пинҳон намудани вироишҳои ман дар феҳристи назарот',
'tog-watchlisthidebots' => 'Пинҳон намудани вироишҳои бот дар феҳристи назарот',
'tog-diffonly' => 'Муҳтавиёти саҳифаи зерин намоиш дода нашавад',
'tog-showhiddencats' => 'Гурӯҳҳои пинҳонро намоиш бидеҳ',
'tog-norollbackdiff' => 'Баъд аз вогардони тафовутро нишон надеҳ',
+'tog-useeditwarning' => 'Дар ҳолати тарки саҳифа вироиши тағйироти захиранашуда манро огаҳ кун',
+'tog-prefershttps' => 'Ҳамеша пайвастшавии амнро дар ҳоли вуруд истифода бар',
'underline-always' => 'Доимо',
'underline-never' => 'Ҳеҷгоҳ',
'november' => 'Ноябр',
'december' => 'Декабр',
'january-gen' => 'Январ',
-'february-gen' => 'феврали',
-'march-gen' => 'маÑ\80Ñ\82и',
+'february-gen' => 'Феврал',
+'march-gen' => 'Ð\9cаÑ\80Ñ\82',
'april-gen' => 'Апрел',
-'may-gen' => 'май',
-'june-gen' => 'иÑ\8eни',
+'may-gen' => 'Ð\9cай',
+'june-gen' => 'Ð\98Ñ\8eн',
'july-gen' => 'Июл',
'august-gen' => 'Август',
-'september-gen' => 'сентябри',
+'september-gen' => 'Сентябр',
'october-gen' => 'Октябр',
'november-gen' => 'Ноябр',
-'december-gen' => 'Декабри',
+'december-gen' => 'Декабр',
'jan' => 'Ян',
'feb' => 'Фев',
'mar' => 'Мар',
'oct' => 'Окт',
'nov' => 'Нов',
'dec' => 'Дек',
+'january-date' => '$1 январ',
+'february-date' => '$1 феврал',
+'march-date' => '$1 март',
+'april-date' => '$1 апрел',
+'may-date' => '$1 май',
+'june-date' => '$1 июн',
+'july-date' => '$1 июл',
+'august-date' => '$1 август',
+'september-date' => '$1 сентябр',
+'october-date' => '$1 октябр',
+'november-date' => '$1 ноябр',
+'december-date' => '$1 декабр',
# Categories related messages
'pagecategories' => '{{PLURAL:$1|Гурӯҳ|Гурӯҳҳо}}',
'newwindow' => '(дар равзанаи ҷадид боз мешавад)',
'cancel' => 'Лағв',
'moredotdotdot' => 'Бештар...',
+'morenotlisted' => 'Ин феҳрист комил нест.',
'mypage' => 'Саҳифа',
'mytalk' => 'Баҳс',
'anontalk' => 'Баҳс бо ин IP',
'vector-action-move' => 'Кӯчонидан',
'vector-action-protect' => 'Муҳофизат',
'vector-action-undelete' => 'Эҳё',
-'vector-action-unprotect' => 'Ð\91а даÑ\80 оваÑ\80дан аз муҳофизат',
+'vector-action-unprotect' => 'ТаÒ\93йиÑ\80и муҳофизат',
'vector-view-create' => 'Эҷод',
'vector-view-edit' => 'Вироиш',
'vector-view-history' => 'Намоиши таърих',
'create-this-page' => 'Эҷод кардани ин саҳифа',
'delete' => 'Ҳазф',
'deletethispage' => 'Ин саҳифаро ҳазф кунед',
+'undeletethispage' => 'Барқарор кардани ин саҳифа',
'undelete_short' => 'Эҳёи {{PLURAL:$1|вироиш|$1 вироишот}}',
+'viewdeleted_short' => '{{PLURAL:$1|вироиши ҳазфшуда|$1 вироишҳои ҳазфшуда}}',
'protect' => 'Ҳифз кардан',
'protect_change' => 'тағйир',
'protectthispage' => 'Ҳифз намудани ин саҳифа',
'unprotect' => 'Тағйири сатҳи муҳофизат',
-'unprotectthispage' => 'Ð\90з мÑ\83ҳоÑ\84изаÑ\82 даÑ\80 оваÑ\80дани ин саҳифа',
+'unprotectthispage' => 'ТаÒ\93йиÑ\80и мÑ\83ҳоÑ\84изаÑ\82и ин саҳифа',
'newpage' => 'Саҳифаи нав',
'talkpage' => 'Ин саҳифаро муҳокима кунед',
'talkpagelinktext' => 'Баҳс',
'articlepage' => 'Намоиши мақола',
'talk' => 'Баҳс',
'views' => 'Назарот',
-'toolbox' => 'Ҷаъбаи абзор',
+'toolbox' => 'Абзорҳо',
'userpage' => 'Саҳифаи корбарро бинед',
'projectpage' => 'Дидани саҳифаи лоиҳа',
'imagepage' => 'Намоиши саҳифаи парванда',
'viewhelppage' => 'Намоиши саҳифаи роҳнамо',
'categorypage' => 'Намоиши саҳифаи гурӯҳ',
'viewtalkpage' => 'Намоиши мубоҳисот',
-'otherlanguages' => 'бо забонҳои дигар',
+'otherlanguages' => 'Ð\91о забонҳои дигар',
'redirectedfrom' => '(Тағйири масир аз $1)',
'redirectpagesub' => 'Саҳифаи равонакунӣ',
'lastmodifiedat' => 'Ин саҳифа бори охир $2, $1 дигаргун карда шудааст.',
'protectedpage' => 'Саҳифаи муҳофизатшуда',
'jumpto' => 'Ҷаҳиш ба:',
'jumptonavigation' => 'гаштан',
-'jumptosearch' => 'Ҷустуҷӯи',
+'jumptosearch' => 'Ҷустуҷӯ',
'view-pool-error' => 'Мутаасифона, корсозҳои дар ҳоли ҳозир дучори бори изофӣ ҳастанд.
Теъдоди зиёди аз корбарон талош мекунанд, ки ин саҳифаро бубинанд.
Лутфан қабл аз талош дубора барои дидани ин саҳифа муддате сабр кунед.
# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
'aboutsite' => 'Дар бораи {{SITENAME}}',
'aboutpage' => 'Project:Дар бораи',
-'copyright' => 'Мӯҳтаво таҳти иҷозатномаи $1 дастрас аст.',
+'copyright' => 'Ð\9cÓ¯Ò³Ñ\82аво Ñ\82аҳÑ\82и иҷозаÑ\82номаи $1 ва Ñ\91 дигаÑ\80 даÑ\81Ñ\82Ñ\80аÑ\81 аÑ\81Ñ\82.',
'copyrightpage' => '{{ns:project}}:Copyrights',
-'currentevents' => 'Вокеаҳои кунунӣ',
+'currentevents' => 'Воқеаҳои кунунӣ',
'currentevents-url' => 'Project:Воқеаҳои кунунӣ',
'disclaimers' => 'Такзибнома',
'disclaimerpage' => 'Project:Такзибномаи умумӣ',
'nstab-media' => 'Расона',
'nstab-special' => 'Саҳифаи вижа',
'nstab-project' => 'Саҳифаи лоиҳа',
-'nstab-image' => 'файл',
+'nstab-image' => 'Файл',
'nstab-mediawiki' => 'Пайём',
'nstab-template' => 'Шаблон',
'nstab-help' => 'Кӯмак',
'cannotdelete' => 'Саҳифа ё парвандаи мушаххасшударо ҳазф карда нашуд. (Мумкин аст қаблан касе дигаре онро ҳазф карда бошад.)',
'badtitle' => 'Унвони номуносиб',
'badtitletext' => 'Унвони саҳифаи дархостшуда номӯътабар, холӣ, ё пайванди байнизабони ё байнивикии нодуруст буд. Он метавонад як ё якчанд аломатҳоеро дар бар гирад, ки дар унвонҳо истифода шуда наметавонанд.',
-'perfcached' => 'Додаҳои зерин аз ҳофизаи муваққатӣ фарохонӣ шудаанд ва мумкин аст, комилан ба рӯз нашудаанд. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
+'perfcached' => 'Додаҳои зерин аз ҳофизаи муваққатӣ фарохонӣ шудаанд ва мумкин аст, комилан ба рӯз нашудаанд. Ҳаддиаксар {{PLURAL:$1|як натиҷа|$1 натоиҷ}} дар ҳофиза дастрас аст.',
'perfcachedts' => 'Додаҳои зерин аз ҳофизаи муваққатӣ фарохонӣ шудаанд ва мумкин аст, охирин ба рӯзрасонӣ $1 аст. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
'querypage-no-updates' => 'Имкони ба рӯзрасонии ин саҳифа феълан ғайрифаъол шудааст.',
'viewsource' => 'Намоиши матни вики',
'userlogin-resetlink' => 'Ҷузъиёти вурудро фаромӯш кардаед?',
'createaccountmail' => 'бо почтаи электронӣ',
'createaccountreason' => 'Сабаб:',
+'createacct-submit' => 'Ҳисоби худро созед',
+'createacct-another-submit' => 'Ҳисоби дигаре созед',
+'createacct-benefit-heading' => '{{SITENAME}} тавассути одамони мисли шумо сохта шудааст.',
+'createacct-benefit-body1' => '{{PLURAL:$1|вироиш|вироишҳо}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|саҳифа|саҳифаҳо}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|саҳмгузор|саҳмгузорони}} охирин',
'badretype' => 'Калимаҳои убуре, ки ворид кардаед бо ҳамдигар мувофиқат намекунанд.',
'userexists' => 'Номи корбарии дохил кардашуда мавриди истифода аст.
-Ð\9dоми дигарероро интихоб кунед.',
+Ð\9bÑ\83Ñ\82Ñ\84ан номи дигарероро интихоб кунед.',
'loginerror' => 'Иштибоҳ дар вуруд',
+'createacct-error' => 'Иштибоҳи сохтани ҳисоб',
'createaccounterror' => 'Имкони сохтани ин ҳисоб вуҷуд надорад: $1',
'nocookiesnew' => 'Ҳисоби корбарӣ эҷод шуд, аммо шумо вориди сомона нашудаед. {{SITENAME}} барои вуруд кардани корбарон ба сомона аз кукиҳо (cookies) истифода мекунад. Шумо бояд кукиҳоро фаъол кунед. Лутфан кукиҳоро фаъол кунед, баъдан ба систем бо номи корбарии ҷадид ва калимаи убуратон вуруд кунед.',
'nocookieslogin' => '{{SITENAME}} барои ворид кардани корбарон ба систем аз кукиҳо (cookies) истифода мекунад. Кукиҳо фаъол нестанд. Лутфан кукиҳоро фаъол карда бори дигар бисанҷед.',
+'nocookiesfornew' => 'Ҳисоби корбарӣ сохта нашуд, чун мо манбаъи онро тасдиқ карда натавонистем.
+Мутмаин бошед, ки кукиҳои мурургар фаъоланд, ин саҳифро аз нав кушода бори дигар саъй кунед.',
'noname' => 'Номи корбари дурустеро шумо пешниҳод накардед.',
'loginsuccesstitle' => 'Вуруд бо муваффақият',
'loginsuccess' => "'''Шумо акнун ба Википедиа ҳамчун \"\$1\". вуруд кардед'''",
'login-userblocked' => 'Ин корбар баста шудааст. Вуруд манъ аст.',
'wrongpassword' => 'Калимаи убури нодуруст дохил карда шуд. Бори дигар санҷед.',
'wrongpasswordempty' => 'Калимаи убури дохил шуда холӣ аст. Бори дигар санҷед.',
-'passwordtooshort' => 'Ð\9aалимаи Ñ\83бÑ\83Ñ\80 Ñ\85еле кӯÑ\82оҳ аÑ\81Ñ\82. Ð\92ай боÑ\8fд ҳадди аÒ\9bал {{PLURAL:$1|1 аломаÑ\82|$1 аломаÑ\82ҳо}} доÑ\88Ñ\82а аз номи коÑ\80баÑ\80Ó£ Ñ\84аÑ\80Ò\9b кÑ\83над.',
+'passwordtooshort' => 'Ð\93Ñ\83заÑ\80вожа ҳадди аÒ\9bал {{PLURAL:$1|1 аломаÑ\82|$1 аломаÑ\82ҳо}} боÑ\8fд доÑ\88Ñ\82а боÑ\88ад.',
'password-name-match' => 'Гузарвожаи шумо бояд аз номи корбариатон тафовут дошта бошад.',
-'mailmypassword' => 'Гузарвожаи навро ба E-mail бифиристед',
+'password-login-forbidden' => 'Истифодаи ин номи корбарӣ ва гузарвожа манъ аст.',
+'mailmypassword' => 'Танзими гузарвожа',
'passwordremindertitle' => 'Муваққатан калимаи убурӣ ҷадид барои {{SITENAME}}',
-'passwordremindertext' => 'Касе (эҳтимолан худи Шумо), аз нишонаи IP $1 дархост кардааст, ки гузарвожаи ҷадиде барои {{SITENAME}} ($4) барои шумо бифиристем.
-Гузарвожаи муваққатӣ барои корбар "$2" ҳамакнун "$3" аст.
-Агар ин нияти шумо буд, шумо бояд вориди систем шавед ва гузарвожаи худро тағйир диҳед.
+'passwordremindertext' => 'Касе (эҳтимолан худи Шумо, аз нишонаи IP $1) гузарвожаи навро барои {{SITENAME}} ($4) дархост кардааст. Гузарвожаи муваққатӣ барои корбар "$2" сохта ва ба "$3" таъин шуд.
+Агар ин нияти шумо буд, шумо бояд вориди систем шавед ва гузарвожаи навро интихоб кунед.
-Агар касе дигаре инро дахост кардааст, ё инки шумо гузарвожаи пешинаи худро ба ёд овардаед ва дигар хоҳиши тағйир додани онро надоред, ба ин паём аҳмият надиҳед ва гузарвожаи пешинаи худро истифода баред.',
+Ð\90гаÑ\80 каÑ\81е дигаÑ\80е инÑ\80о даÑ\85оÑ\81Ñ\82 каÑ\80дааÑ\81Ñ\82, Ñ\91 инки Ñ\88Ñ\83мо гÑ\83заÑ\80вожаи пеÑ\88инаи Ñ\85Ñ\83дÑ\80о ба Ñ\91д оваÑ\80даед ва дигаÑ\80 Ñ\85оҳиÑ\88и Ñ\82аÒ\93йиÑ\80 додани онÑ\80о надоÑ\80ед, ба ин паÑ\91м аҳамиÑ\8fÑ\82 надиҳед ва гÑ\83заÑ\80вожаи пеÑ\88инаи Ñ\85Ñ\83дÑ\80о иÑ\81Ñ\82иÑ\84ода баÑ\80ед.',
'noemail' => 'Ҳеҷ нишонаи почтаи электронӣ барои корбар "$1" сабт нашудааст.',
'noemailcreate' => 'Шумо бояд як нишонаи почтаи электронии мӯътабарро ворид кунед',
'passwordsent' => 'Калимаи убури нав ба адреси e-mail, ки барои "$1" номнавис шудааст фиристода шуд.
Баъд аз дастрас кардани он, марҳамат карда вуруд кунед.',
'blocked-mailpassword' => 'Нишонаи IP шумо аз вироиш боз дошта шудааст ва аз ин рӯ ба манзури ҷилавгирӣ аз сӯиистифода аз баҳрагирӣ аз қобилияти барқарор кардани калимаи убурро надорад.',
-'eauthentsent' => 'Ð\9dомаи баÑ\80ои Ñ\82аÑ\81диÒ\9b ба ниÑ\88онаи поÑ\87Ñ\82а Ñ\8dлекÑ\82Ñ\80онӣ Ñ\84иÑ\80иÑ\81Ñ\82ода Ñ\88Ñ\83д. Ð\9fеÑ\88 аз Ñ\84иÑ\80иÑ\81Ñ\82одани нома ба ин ҳиÑ\81об, Ñ\88Ñ\83мо боÑ\8fд даÑ\81Ñ\82Ñ\83Ñ\80оÑ\82е ки ба он ниÑ\88онаи поÑ\87Ñ\82аи Ñ\8dлекÑ\82Ñ\80онӣ омадаÑ\81Ñ\82, иҷÑ\80о каÑ\80да, даÑ\80 ҳаÒ\9bиÒ\9bаÑ\82 ҳиÑ\81оби Ñ\85Ñ\83д бÑ\83данаÑ\88Ñ\80о боÑ\8fд тасдиқ кунед.',
+'eauthentsent' => 'Ð\9dомае баÑ\80ои Ñ\82аÑ\81диÒ\9b ба ниÑ\88онаи поÑ\87Ñ\82аи Ñ\8dлекÑ\82Ñ\80онии мÑ\83Ñ\88аÑ\85аÑ\81Ñ\88Ñ\83да Ñ\84иÑ\80иÑ\81Ñ\82ода Ñ\88Ñ\83д. Ð\9fеÑ\88 аз Ñ\84иÑ\80иÑ\81Ñ\82одани дигаÑ\80 нома ба ин ҳиÑ\81об, Ñ\88Ñ\83мо боÑ\8fд даÑ\81Ñ\82Ñ\83Ñ\80оÑ\82е ки ба он ниÑ\88онаи поÑ\87Ñ\82аи Ñ\8dлекÑ\82Ñ\80онӣ омадаÑ\81Ñ\82, иҷÑ\80о каÑ\80да, даÑ\80 ҳаÒ\9bиÒ\9bаÑ\82 ҳиÑ\81оби ШÑ\83мо бÑ\83данаÑ\88Ñ\80о тасдиқ кунед.',
'throttled-mailpassword' => 'Як ёдоварии калимаи убур барои шумо {{PLURAL:$1|соат|$1 соат}} гузашта фиристода шудааст. Барои чилавгирӣ аз сӯиистифода, фақат дар ҳар {{PLURAL:$1|соат|$1 соат}} танҳо як ёдоварӣ фиристода мешавад.',
'mailerror' => 'Хато дар фиристодани номаи электронӣ: $1',
'acct_creation_throttle_hit' => 'Бубахшед, Шумо аллакай $1 ҳисобҳо сохтед. Шумо бештар сохта наметавонед.',
Шумо метавонед дар дигар саҳифаҳо [[Special:Search/{{PAGENAME}}|унвони ин саҳифаро ҷустуҷӯ кунед]],
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} гузоришҳои алоқамандро ҷустуҷӯ намоед],
ё [{{fullurl:{{FULLPAGENAME}}|action=edit}} ин саҳифаро вироиш кунед]</span>.',
+'noarticletext-nopermission' => 'Дар ин саҳифа то кунун матне вуҷуд надорад. Шумо метавонед дар дигар саҳифаҳо [[Special:Search/{{PAGENAME}}|унвони ин саҳифаро ҷустуҷӯ кунед]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} гузоришҳои алоқамандро ҷустуҷӯ намоед], ё [{{fullurl:{{FULLPAGENAME}}|action=edit}} ин саҳифаро вироиш кунед]</span>.',
'userpage-userdoesnotexist' => 'Ҳисоби корбар "<nowiki>$1</nowiki>" сабт нашудааст. Итминон ҳосил кунед ки мехоҳед ин саҳифаро эчод ё вироиш кунед.',
'clearyourcache' => "'''Эзоҳ:''' Пас аз захирасозӣ мумкин аст барои дидани тағйирот ниёз бошад, ки ҳофизаи ниҳонии мурургари худро холӣ кунед. '''Мозилла / Файерфокс / Сафари:''' калиди ''Shift''-ро нигоҳ доред ва рӯи тугмаи ''Reload'' клик кунед, ё калидҳои ''Ctrl-Shift-R'' (''Cmd-Shift-R'' дар Эппл Макинтош) бо ҳам фишор диҳед; '''IE:''' калиди ''Ctrl'' нигоҳ доред ва рӯи тугмаи ''Refresh'' клик кунед, ё калидҳои ''Ctrl-F5'' бо ҳам фишор диҳед; '''Konqueror:''': тугмаи ''Reload''-ро оддӣ клик кунед, ё калиди ''F5'' фишор диҳед; Ба корбарони '''Opera''' мумкин аст лозим бошад, ки ҳофизаи ниҳонии худро комилан дар ''Tools→Preferences'' холӣ кунанд.",
'usercssyoucanpreview' => "'''Эзоҳ:''' Пеш парвандаи CSS ё JS худро захира кунед, бо истифода аз тугмаи \"Пешнамоиш\" метавонед онро озмоиш кунед.",
Шумо зарурияти вироиши ин саҳифаро дида баромаданатон лозим.
Сабти ҳазфшавии ин саҳифа барои фароҳам овардани имкониятҳои қулай оварда шудааст:",
+'moveddeleted-notice' => 'Ин саҳифа ҳазф шудааст.
+Гузориши ҳазф ва тағйири масири ин саҳифа дар зер барои иттилооти шумо оварда шудааст.',
# Parser/template warnings
+'post-expand-template-inclusion-warning' => '<strong>Огоҳӣ:</strong> Шаблони дар баргирифта хеле калон аст. Баъзе аз шаблонҳо дар бар гирифта намешавад.',
+'post-expand-template-inclusion-category' => 'Саҳифаҳое ки дар он ҳаҷми шаблон беш аз ҳад аст',
+'post-expand-template-argument-warning' => '<strong>Огоҳӣ:</strong> Ин саҳифа ҳаддиақал як шаблоне дорад, ки хосияти ҳаҷм калони васеъшавӣ дорад.
+Ин хосият аз байр гирифта шуд.',
'post-expand-template-argument-category' => 'Саҳифаҳои ҳавои шаблонҳои бо параметрҳои нодида гирифташуда',
# "Undo" feature
(қаблӣ) = тафовут бо нусхаи феълӣ, ҷузъ = вироиши ҷузъӣ',
'history-fieldset-title' => 'Мурури таърих',
'history-show-deleted' => 'Фақат ҳазфшуда',
-'histfirst' => 'Ð\90ввалин',
-'histlast' => 'Ð\9eÑ\85ирин',
+'histfirst' => 'кӯҳнаÑ\82аÑ\80ин',
+'histlast' => 'навÑ\82арин',
'historysize' => '({{PLURAL:$1|1 байт|$1 байт}})',
'historyempty' => '(холӣ)',
'notextmatches' => 'Матни ҳеҷ мақолае рост намеояд',
'prevn' => 'қаблӣ {{PLURAL:$1|$1}}',
'nextn' => 'баъдӣ {{PLURAL:$1|$1}}',
+'prevn-title' => 'Қаблӣ $1 {{PLURAL:$1|натиҷа|натоиҷ}}',
+'nextn-title' => 'Баъдӣ $1 {{PLURAL:$1|натиҷа|натоиҷ}}',
+'shown-title' => 'Намоиши $1 {{PLURAL:$1|натиҷа|натоиҷ}} дар ҳар саҳифа',
'viewprevnext' => 'Намоиш ($1 {{int:pipe-separator}} $2) ($3)',
'searchmenu-exists' => "'''Саҳифае бо номи \"[[:\$1]]\" дар ин вики вуҷуд дорад.'''",
'searchmenu-new' => "'''Эҷоди саҳифаи \"[[:\$1]]\" дар ин вики!'''",
'searchall' => 'ҳама',
'showingresults' => "Намоиши {{PLURAL:$1|'''1''' натиҷа|'''$1''' натоиҷ}} дар зер оғоз аз #'''$2'''.",
'showingresultsnum' => "Намоиши {{PLURAL:$3|'''1''' натиҷа|'''$3''' натоиҷ}} оғоз аз #'''$2'''.",
+'showingresultsheader' => '{{PLURAL:$5|Натиҷаи <strong>$1</strong> <strong>$3</strong>|Натоиҷи <strong>$1 - $2</strong> <strong>$3</strong>}} барои <strong>$4</strong>',
'search-nonefound' => 'Натиҷаи муносиб бо дархост пайдо нашуд.',
'powersearch-legend' => 'Ҷустуҷӯи пешрафта',
'powersearch-ns' => 'Ҷустуҷӯ дар фазоҳои ном:',
'rclistfrom' => 'Нишон додани тағйиротҳои нав сар карда аз $1',
'rcshowhideminor' => '$1 вироишҳои хурд',
'rcshowhidebots' => '$1 ботҳо',
-'rcshowhideliu' => '$1 корбарони вурудшуда',
+'rcshowhideliu' => '$1 корбарони сабтиномшуда',
'rcshowhideanons' => '$1 корбарони вуруднашуда',
'rcshowhidepatr' => '$1 вироишҳои гаштӣ',
'rcshowhidemine' => '$1 вироишҳои ман',
'rc_categories' => 'Маҳдудият ба гурӯҳҳо (бо аломати "|" ҷудо кунед)',
'rc_categories_any' => 'Ҳар кадом',
'newsectionsummary' => '/* $1 */ бахши ҷадид',
-'rc-enhanced-expand' => 'Намоиши ҷузъиёт (ниёзманд ба Ҷава Скрипт)',
+'rc-enhanced-expand' => 'Намоиши ҷузъиёт',
'rc-enhanced-hide' => 'Пинҳони ҷузъиёт',
# Recent changes linked
'recentchangeslinked' => 'Таъғироти монандӣ',
'recentchangeslinked-feed' => 'Таъғироти монандӣ',
-'recentchangeslinked-toolbox' => 'Таъғироти монандӣ',
+'recentchangeslinked-toolbox' => 'Тағйироти вобаста',
'recentchangeslinked-title' => 'Тағйирҳои алоқаманд ба "$1"',
'recentchangeslinked-summary' => "Ин феҳристи тағйироти охир барои саҳифаҳои пайваста аз саҳифаи мушаххасшуда мебошад (ё ба аъзоёни гурӯҳи мушаххасшуда).
Саҳифаҳои дар [[Special:Watchlist|феҳристи назароти шумо]] буда '''пурранг''' ҳастанд.",
'linkstoimage' => '{{PLURAL:$1|Саҳифаҳои|$1 Саҳифаи}} зерин ба ин акс пайванданд:',
'nolinkstoimage' => 'Ҳеҷ саҳифае ба ин акс пайванд надорад.',
'sharedupload' => 'Ин парванда аз $1 мебошад ва шояд аз тарафи дигар лоиҳаҳо истифода шавад.',
+'sharedupload-desc-here' => 'Ин файл аз $1 ва дар дигар лоиҳаҳо метавонад истифода шавад. Тафсилоти ин файл [$2 саҳифаи тафсилоти файл] дар зер нишон дода шудааст.',
'uploadnewversion-linktext' => 'Бор кардани нусхаи ҷадидӣ ин парванда',
# File reversion
'watchmethod-list' => 'баррасии саҳифаҳои пайгиришуда барои вироишҳои охир',
'watchlistcontains' => 'Феҳристи пайгириҳои шумо $1 {{PLURAL:$1|саҳифаро|саҳифаҳоро}} дар бар мегирад.',
'iteminvalidname' => "Мушкилӣ бо мавриди '$1', номи номӯътабар аст...",
-'wlnote' => "Дар зер {{PLURAL:$1|охирин тағйир|'''$1''' охирин тағйирот}} дар $2 соати охир {{PLURAL:омадааст|омадаанд}}.",
'wlshowlast' => 'Намоиши охирин $1 соат $2 рӯзҳо $3',
'watchlist-options' => 'Ихтиёроти феҳристи пайгириҳо',
'contributions' => 'Ҳиссагузориҳои {{GENDER:$1|корбар}}',
'contributions-title' => 'Ҳиссагузориҳои корбар барои $1',
'mycontris' => 'Ҳиссагузориҳо',
-'contribsub2' => 'Барои $1 ($2)',
+'contribsub2' => 'Барои {{GENDER:$3|$1}} ($2)',
'nocontribs' => 'Ҳеҷ тағйире бо ин мушаххасот пайдо нашуд.',
-'uctop' => '(боло)',
+'uctop' => '(кÑ\83нÑ\83нӣ)',
'month' => 'Дар ин моҳ (ва қабл аз он):',
'year' => 'Дар ин сол (ва қабл аз он):',
'sp-contributions-userrights' => 'Мудирияти ихтиёроти корбарӣ',
'sp-contributions-search' => 'Ҷустуҷӯи ҳиссагузориҳо',
'sp-contributions-username' => 'IP нишона ё номи корбар:',
+'sp-contributions-toponly' => 'Танҳо вироиширо охирин нусхаҳоро нишон деҳ',
'sp-contributions-submit' => 'Ҷустуҷӯ',
# What links here
'tooltip-pt-watchlist' => 'Рӯйхати саҳифаҳое, ки тағйиротҳояшонро Шумо назорат мекунед',
'tooltip-pt-mycontris' => 'Феҳристи ҳиссагузориҳои шумо',
'tooltip-pt-login' => 'Тавсия мешавад ки ба систем ворид шавад, лекин иҷборӣ нест.',
-'tooltip-pt-anonlogin' => 'Ба шумо тавзеҳ мешавад, ки ба систем ворид шавед, лекин ин иҷборӣ нест.',
'tooltip-pt-logout' => 'Хуруҷ аз систем',
'tooltip-ca-talk' => 'Баҳси матни таркибии ин саҳифа',
'tooltip-ca-edit' => 'Шумо ин саҳифаро вироиш карда метавонед. Пеш аз захира кардани саҳифа пешнамоишро истифода баред.',
'tooltip-ca-move' => 'Кӯчонидани ин саҳифа',
'tooltip-ca-watch' => 'Ин саҳифаро метавонед ба феҳристи назароти худ дохил кунед',
'tooltip-ca-unwatch' => 'Гирифта партофтани ин саҳифа аз феҳристи назароти Шумо',
-'tooltip-search' => 'Ҷустуҷӯи {{SITENAME}}',
+'tooltip-search' => 'Ҷустуҷӯ дар {{SITENAME}}',
'tooltip-search-go' => 'Гузаштан ба саҳифае, ки айнан чунин ном дорад, агар вуҷуд дошта бошад',
'tooltip-search-fulltext' => 'Ҷустуҷӯи саҳифаҳое, ки чунин матн доранд',
'tooltip-p-logo' => 'Саҳифаи Аслӣ',
'tooltip-n-mainpage' => 'Гузаштан ба Саҳифаи Аслӣ',
'tooltip-n-mainpage-description' => 'Мушоҳидаи саҳифаи аслӣ',
-'tooltip-n-portal' => 'Дар бораи лоиҳа ва чи корҳоро метавонед кард',
+'tooltip-n-portal' => 'Дар бораи лоиҳа, чӣ корҳоро метавонед кард, ва дарёфти чизҳо',
'tooltip-n-currentevents' => 'Ёфтани иттилооти пешзамина перомуни воқеаҳои кунунӣ',
-'tooltip-n-recentchanges' => 'Рӯйхати тағйиротҳо дар Википедиа',
+'tooltip-n-recentchanges' => 'Рӯйхати тағйирот дар Википедиа',
'tooltip-n-randompage' => 'Овардани як саҳифаи тасодуфӣ',
-'tooltip-n-help' => 'Ð\93Ñ\83заÑ\88Ñ\82ан ба Роҳнамо.',
+'tooltip-n-help' => 'Ð\9cакон баÑ\80ои даÑ\80Ñ\91Ñ\84Ñ\82',
'tooltip-t-whatlinkshere' => 'Рӯйхати ҳамаи саҳифаҳое, ки ба ин саҳифа пайванд доранд',
'tooltip-t-recentchangeslinked' => 'Тағйироти охир ин саҳифаҳое, ки ин саҳифа ба онҳо пайванд дорад',
'tooltip-feed-rss' => 'Хабарномаи RSS барои ин саҳифа',
'file-info-size' => '$1 × $2 пиксел, ҳаҷми парванда: $3, навъи MIME: $4',
'file-nohires' => 'Нусхаи ҳаҷман ва сифатан баландтар дастрас нест.',
'svg-long-desc' => 'SVG парванда, исмӣ $1 × $2 пиксел, андозаи парванда: $3',
-'show-big-image' => 'Ð\90кÑ\81и пÑ\83Ñ\80Ñ\80а',
+'show-big-image' => 'Ð\90кÑ\81и аÑ\81лӣ',
# Special:NewFiles
'newimages' => 'Намоишгоҳи парвандаҳои ҷадид',
'tog-numberheadings' => 'ใส่เลขหัวข้อในสารบัญอัตโนมัติ',
'tog-showtoolbar' => 'แสดงแถบเครื่องมือแก้ไข',
'tog-editondblclick' => 'แก้ไขหน้าเมื่อดับเบิลคลิก',
-'tog-editsection' => 'เปิดการแก้ไขเฉพาะส่วนผ่านลิงก์ [แก้ไข]',
'tog-editsectiononrightclick' => 'เปิดใช้งานการแก้ไขเฉพาะส่วนโดยคลิกขวาที่หัวข้อ',
-'tog-showtoc' => 'แสดงสารบัญ (สำหรับหน้าที่มีมากกว่า 3 หัวข้อ)',
'tog-rememberpassword' => 'จำการล็อกอินของฉันในเบราว์เซอร์นี้ (สูงสุด $1 วัน)',
'tog-watchcreations' => 'เพิ่มหน้าที่ฉันสร้างและไฟล์ที่ฉันอัปโหลดเข้ารายการเฝ้าดู',
'tog-watchdefault' => 'เพิ่มหน้าและไฟล์ที่ฉันแก้ไขเข้ารายการเฝ้าดู',
'tog-enotifwatchlistpages' => 'อีเมลหาเมื่อหน้าหรือไฟล์ในรายการเฝ้าดูมีการเปลี่ยนแปลง',
'tog-enotifusertalkpages' => 'อีเมลหาเมื่อหน้าคุยกับผู้ใช้ของฉันมีการเปลี่ยนแปลง',
'tog-enotifminoredits' => 'อีเมลหาเช่นกันสำหรับการแก้ไขหน้าและไฟล์เล็กน้อย',
-'tog-enotifrevealaddr' => 'à¹\80à¸\9bิà¸\94à¹\80à¸\9cยà¸\97ีà¹\88à¸à¸¢à¸¹à¹\88à¸à¸µà¹\80มลà¹\8cà¸\82à¸à¸\87à¸\89ัà¸\99à¹\83à¸\99à¸à¸µà¹\80มลà¹\8cแจ้งเตือน',
+'tog-enotifrevealaddr' => 'à¹\80à¸\9bิà¸\94à¹\80à¸\9cยà¸\97ีà¹\88à¸à¸¢à¸¹à¹\88à¸à¸µà¹\80มลà¸\82à¸à¸\87à¸\89ัà¸\99à¹\83à¸\99à¸à¸µà¹\80มลแจ้งเตือน',
'tog-shownumberswatching' => 'แสดงจำนวนผู้ใช้ที่เฝ้าดู',
'tog-oldsig' => 'ลายเซ็นที่ใช้อยู่:',
'tog-fancysig' => 'ใช้คำสั่งวิกิที่ปรากฏในลายเซ็นนี้ (โดยไม่มีลิงก์อัตโนมัติ)',
'category-subcat-count' => '{{PLURAL:$2|หมวดหมู่นี้มีหมวดหมู่ย่อยเพียงหมวดหมู่เดียว|หมวดหมู่นี้มี {{PLURAL:$1|หมวดหมู่ย่อย|$1 หมวดหมู่ย่อย}} จากทั้งหมด $2 หมวดหมู่}}',
'category-subcat-count-limited' => 'หมวดหมู่นี้มี $1 หมวดหมู่ย่อย',
'category-article-count' => '{{PLURAL:$2|หมวดหมู่นี้มีอยู่เพียงหน้าเดียว|ในหมวดหมู่นี้มี {{PLURAL:$1|หน้าเดียว|$1 หน้า}} จากทั้งหมด $2 หน้า}}',
-'category-article-count-limited' => '$1 หน้าต่อไปนี้อยู่ในหมวดหมู่นี้',
+'category-article-count-limited' => 'มี $1 หน้าในหมวดหมู่นี้',
'category-file-count' => '{{PLURAL:$2|หมวดหมู่นี้มีเพียงไฟล์เดียว|ในหมวดหมู่นี้มี $1 ไฟล์ จากทั้งหมด $2 ไฟล์}}',
'category-file-count-limited' => '{{PLURAL:$1|ไฟล์|ไฟล์}}ต่อไปนี้อยู่ในหมวดหมู่นี้',
'listingcontinuesabbrev' => 'ต่อ',
'qbedit' => 'แก้ไข',
'qbpageoptions' => 'หน้านี้',
'qbmyoptions' => 'หน้าของฉัน',
-'faq' => 'à¸\84ำà¸\96ามà¸\96ามบ่อย',
-'faqpage' => 'Project:à¸\84ำà¸\96ามà¸\96ามบ่อย',
+'faq' => 'à¸\84ำà¸\96ามà¸\9eà¸\9aบ่อย',
+'faqpage' => 'Project:à¸\84ำà¸\96ามà¸\9eà¸\9aบ่อย',
# Vector skin
'vector-action-addsection' => 'เพิ่มหัวข้อใหม่',
'navigation-heading' => 'รายการเลือกป้ายบอกทาง',
'errorpagetitle' => 'มีข้อผิดพลาด',
-'returnto' => 'กลับไป $1',
+'returnto' => 'กลับไปที่ $1',
'tagline' => 'จาก {{SITENAME}}',
'help' => 'คำอธิบาย',
'search' => 'ค้นหา',
'currentevents-url' => 'Project:เหตุการณ์ปัจจุบัน',
'disclaimers' => 'ข้อปฏิเสธความรับผิดชอบ',
'disclaimerpage' => 'Project:ข้อปฏิเสธความรับผิดชอบทั่วไป',
-'edithelp' => 'à¸\84ำà¸à¸\98ิà¸\9aายà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82',
+'edithelp' => 'วิà¸\98ีà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89า',
'helppage' => 'Help:สารบัญ',
'mainpage' => 'หน้าหลัก',
'mainpage-description' => 'หน้าหลัก',
'versionrequiredtext' => 'การใช้หน้านี้ต้องการมีเดียวิกิรุ่น $1 ดู[[Special:Version|หน้ารุ่น]]',
'ok' => 'ตกลง',
-'retrievedfrom' => 'รัà¸\9aข้อมูลจาก "$1"',
+'retrievedfrom' => 'à¸\94ึà¸\87ข้อมูลจาก "$1"',
'youhavenewmessages' => 'คุณมี$1 ($2)',
'youhavenewmessagesfromusers' => 'คุณมี $1จาก{{PLURAL:$3|ผู้ใช้คนอื่น|ผู้ใช้ $3 คน}} ($2)',
'youhavenewmessagesmanyusers' => 'คุณมี $1จากผู้ใช้หลายคน ($2)',
รายการหน้าพิเศษที่ถูกต้องดูได้ที่ [[Special:SpecialPages|รายการหน้าพิเศษ]]',
# General errors
-'error' => 'à¸\82à¹\89à¸à¸\9cิà¸\94à¸\9eลาà¸\94',
-'databaseerror' => 'à¸\84วามà¸\9cิà¸\94à¸\9eลาà¸\94à¸\97ีà¹\88à¸\90าà¸\99à¸\82à¹\89à¸à¸¡à¸¹à¸¥',
+'error' => 'ผิดพลาด',
+'databaseerror' => 'ผิดพลาดที่ฐานข้อมูล',
'laggedslavemode' => "'''คำเตือน:''' ข้อมูลในหน้าอาจไม่ใช่ข้อมูลล่าสุด",
'readonly' => 'ฐานข้อมูลถูกล็อก',
'enterlockreason' => 'ใส่เหตุแห่งการล็อก ทั้งเวลาที่คาดว่าจะปลดล็อก',
'actionthrottled' => 'การกระทำนี้ถูกระงับไว้ชั่วคราว',
'actionthrottledtext' => 'เพื่อเป็นมาตรการป้องกันสแปม คุณจึงถูกจำกัดมิให้กระทำสิ่งนี้ไม่ให้ติดต่อกันหลายครั้งเกินไปในช่วงระยะเวลาสั้น ๆ ซึ่งขณะนี้คุณได้กระทำเกินขีดจำกัดแล้ว กรุณารอสักครู่แล้วลองอีกครั้ง',
'protectedpagetext' => 'หน้านี้ถูกป้องกันมิให้แก้ไขหรือปฏิบัติการอื่น',
-'viewsourcetext' => 'à¸\84ุà¸\93สามารà¸\96à¸\94ูà¹\81ละà¸\84ัà¸\94ลà¸à¸\81à¹\82à¸\84à¹\89à¸\94หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94้:',
+'viewsourcetext' => 'à¸\84ุà¸\93สามารà¸\96à¸\94ูà¹\81ละà¸\84ัà¸\94ลà¸à¸\81à¹\82à¸\84à¹\89à¸\94à¸\82à¸à¸\87หà¸\99à¹\89าà¸\99ี้:',
'viewyourtext' => "คุณสามารถดูและคัดลอกต้นฉบับ'''การแก้ไขของคุณ'''ในหน้านี้ได้",
'protectedinterface' => 'หน้านี้เป็นข้อความอินเตอร์เฟซสำหรับซอฟต์แวร์บนวิกินี้ และถูกป้องกันเพื่อมิให้มีการกระทำผิด
ในการเพิ่มหรือเปลี่ยนแปลงการแปลสำหรับทุกวิกิ โปรดใช้ [//translatewiki.net/ translatewiki.net] โครงการแปลมีเดียวิกิเป็นภาษาถิ่น',
โปรดใส่ที่อยู่ให้มีรูปแบบถูกต้อง หรือเว้นช่องนั้น',
'cannotchangeemail' => 'ไม่สามารถเปลี่ยนที่อยู่อีเมลบนวิกินี้',
'emaildisabled' => 'เว็บไซต์นี้ไม่สามารถส่งอีเมล',
-'accountcreated' => 'à¸\9aัà¸\8dà¸\8aีà¸\96ูà¸\81สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99',
-'accountcreatedtext' => 'à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9a [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|à¸\9eูà¸\94à¸\84ุย]]) à¸\96ูà¸\81สร้างขึ้นแล้ว',
+'accountcreated' => 'สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aีà¹\81ลà¹\89ว',
+'accountcreatedtext' => 'à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9a [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|à¸\9eูà¸\94à¸\84ุย]]) à¹\84à¸\94à¹\89สร้างขึ้นแล้ว',
'createaccount-title' => 'สร้างบัญชีสำหรับ {{SITENAME}}',
'createaccount-text' => 'มีบางคนสร้างบัญชีโดยใช้ที่อยู่อีเมลของคุณบน {{SITENAME}} ($4) โดยใช้ชื่อ "$2" และรหัสผ่าน "$3" คุณควรล็อกอินเพื่อเปลี่ยนรหัสผ่านทันที
'italic_sample' => 'ข้อความตัวเอน',
'italic_tip' => 'ทำตัวเอน',
'link_sample' => 'ลิงก์เชื่อมโยง',
-'link_tip' => 'ลิงก์ภายในเว็บ',
+'link_tip' => 'ลิงก์ภายใน',
'extlink_sample' => 'http://www.example.com ชื่อเรื่องของลิงก์',
'extlink_tip' => 'ลิงก์ภายนอก (อย่าลืมใส่ http:// นำหน้าเสมอ)',
'headline_sample' => 'ข้อความพาดหัว',
'viewpagelogs' => 'ดูปูมของหน้านี้',
'nohistory' => 'ไม่มีประวัติการแก้ไขสำหรับหน้านี้',
'currentrev' => 'รุ่นปัจจุบัน',
-'currentrev-asof' => 'รุ่นปัจจุบันของ $1',
+'currentrev-asof' => 'รุ่นปัจจุบัน เมื่อ $1',
'revisionasof' => 'รุ่นเมื่อ $1',
'revision-info' => 'รุ่นเมื่อ $1 โดย $2',
'previousrevision' => '←รุ่นก่อนหน้า',
'difference-title-multipage' => 'ผลต่างระหว่างหน้า "$1" และ "$2"',
'difference-multipage' => '(ผลต่างระหว่างหน้า)',
'lineno' => 'แถว $1:',
-'compareselectedversions' => 'à¹\80à¸\9bรียà¸\9aà¹\80à¸\97ียà¸\9aสà¸à¸\87รุà¹\88à¸\99à¸\97ีà¹\88à¹\80ลืà¸à¸\81',
+'compareselectedversions' => 'à¹\80à¸\9bรียà¸\9aà¹\80à¸\97ียà¸\9aรุà¹\88à¸\99à¸\97ีà¹\88à¹\80ลืà¸à¸\81à¹\84วà¹\89',
'showhideselectedversions' => 'แสดง/ซ่อนรุ่นที่เลือก',
'editundo' => 'ย้อน',
'diff-empty' => '(ไม่แตกต่าง)',
'diff-multi' => '(มิได้แสดง $1 รุ่นระหว่างกลางโดย{{PLURAL:$2|ผู้ใช้คนหนึ่ง|ผู้ใช้ $2 คน}})',
-'diff-multi-manyusers' => '(มิได้แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้กว่า $2 คน)',
+'diff-multi-manyusers' => 'การแก้ไข $1 รายการระหว่างกลางโดยผู้ใช้มากกว่า $2 คนไม่แสดงผล)',
'difference-missing-revision' => 'ไม่พบรุ่น{{PLURAL:$2|รุ่น| $2 รุ่น}}ของผลต่างนี้ ($1)
โดยปกติเกิดจากการเข้าลิงก์ผลต่างของหน้าที่ถูกลบไปแล้ว
'prefs-info' => 'ข้อมูลเบื้องต้น',
'prefs-i18n' => 'สากลวิวัตน์',
'prefs-signature' => 'ลายเซ็น',
-'prefs-dateformat' => 'รูปแบบวันที่',
+'prefs-dateformat' => 'รูปแบบวันที่และเวลา',
'prefs-timeoffset' => 'ส่วนต่างเวลา',
'prefs-advancedediting' => 'ตัวเลือกทั่วไป',
'prefs-preview' => 'การแสดงตัวอย่าง',
'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|ตั้งแต่การเข้าชมล่าสุด}}',
'enhancedrc-history' => 'ประวัติ',
'recentchanges' => 'ปรับปรุงล่าสุด',
-'recentchanges-legend' => 'ตัวเลือกปรับปรุงล่าสุด',
+'recentchanges-legend' => 'à¸\95ัวà¹\80ลืà¸à¸\81à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87ลà¹\88าสุà¸\94',
'recentchanges-summary' => 'ในหน้านี้เป็นรายการการปรับปรุงล่าสุดบนวิกินี้',
'recentchanges-noresult' => 'ไม่มีการเปลี่ยนแปลงในช่วงที่กำหนดซึ่งตรงกับเกณฑ์เหล่านี้',
'recentchanges-feed-description' => 'ติดตามการปรับปรุงล่าสุดในวิกินี้ในฟีดนี้',
'nimagelinks' => 'ใช้ใน $1 {{PLURAL:$1|หน้า|หน้า}}',
'ntransclusions' => 'ใช้ใน $1 {{PLURAL:$1|หน้า|หน้า}}',
'specialpage-empty' => 'ไม่มีผลลัพธ์รายงานนี้',
-'lonelypages' => 'หà¸\99à¹\89าสุà¸\94à¸\97าง',
+'lonelypages' => 'หà¸\99à¹\89าà¸\97ีà¹\88à¹\82ยà¸\87à¹\84à¸\9bà¹\84มà¹\88à¸\96ึง',
'lonelypagestext' => 'หน้าต่อไปนี้ไม่มีการเชื่อมโยงหรือถูกรวมไว้ในหน้าอื่นใน {{SITENAME}}',
'uncategorizedpages' => 'หน้าที่ไม่ได้จัดหมวดหมู่',
'uncategorizedcategories' => 'หมวดหมู่ที่ไม่ได้จัดหมวดหมู่',
'mostlinkedcategories' => 'หมวดหมู่ที่มีการเชื่อมโยงหามากที่สุด',
'mostlinkedtemplates' => 'แม่แบบที่มีการเชื่อมโยงหามากที่สุด',
'mostcategories' => 'หน้าที่มีหมวดหมู่มากที่สุด',
-'mostimages' => 'ภาà¸\9eà¸\97ีà¹\88มีà¸\81ารà¹\80à¸\8aืà¹\88à¸à¸¡à¹\82ยà¸\87หามากที่สุด',
+'mostimages' => 'ภาà¸\9eà¸\97ีà¹\88มีà¸\81ารà¹\82ยà¸\87à¹\84à¸\9bหามากที่สุด',
'mostinterwikis' => 'หน้าที่มีลิงก์ข้ามโครงการมากที่สุด',
'mostrevisions' => 'หน้าที่มีรุ่นมากที่สุด',
'prefixindex' => 'ทุกหน้าพร้อมคำขึ้นต้น',
# Special:AllPages
'allpages' => 'หน้าทั้งหมด',
'alphaindexline' => '$1 ถึง $2',
-'nextpage' => 'ถัดไป ($1)',
-'prevpage' => 'ก่อนหน้า ($1)',
+'nextpage' => 'หà¸\99à¹\89าà¸\96ัà¸\94à¹\84à¸\9b ($1)',
+'prevpage' => 'หà¸\99à¹\89าà¸\81à¹\88à¸à¸\99หà¸\99à¹\89า ($1)',
'allpagesfrom' => 'แสดงหน้าโดยเริ่มจาก:',
'allpagesto' => 'แสดงหน้าจบที่:',
'allarticles' => 'ทุกหน้า',
'emailpagetext' => 'คุณสามารถใช้แบบด้านล่างส่งอีเมลหา{{GENDER:$1|ผู้ใช้}}นี้
ที่อยู่อีเมลที่คุณกรอกใน[[Special:Preferences|การตั้งค่าส่วนตัวของคุณ]]จะปรากฏเป็นที่อยู่ "จาก" ของอีเมล ซึ่งผู้รับสามารถตอบกลับคุณได้โดยตรง',
'usermailererror' => 'การส่งอีเมลผิดพลาด:',
-'defemailsubject' => 'อีเมล {{SITENAME}} จากผู้ใช้ "$1"',
+'defemailsubject' => 'อีเมล{{SITENAME}}จากผู้ใช้ "$1"',
'usermaildisabled' => 'ปิดใช้งานการส่งอีเมลหาผู้ใช้',
'usermaildisabledtext' => 'คุณไม่สามารถส่งอีเมลหาผู้ใช้อื่นบนวิกินี้',
'noemailtitle' => 'ไม่มีที่อยู่อีเมล',
'watchlistfor2' => 'สำหรับ $1 $2',
'nowatchlist' => 'ไม่มีรายการในรายการเฝ้าดูของคุณ',
'watchlistanontext' => 'กรุณา$1เพื่อดูหรือแก้ไขรายการในรายการเฝ้าดูของคุณ',
-'watchnologin' => 'ไม่ได้ล็อกอิน',
+'watchnologin' => 'ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89ลà¹\87à¸à¸\81à¸à¸´à¸\99',
'watchnologintext' => 'ต้อง[[Special:UserLogin|ล็อกอิน]]เพื่อแก้ไขรายการเฝ้าดูของคุณ',
'addwatch' => 'เพิ่มเข้ารายการเฝ้าดู',
'addedwatchtext' => 'หน้า "[[:$1]]" ได้เพิ่มลงใน[[Special:Watchlist|รายการเฝ้าดู]]ของคุณแล้ว การเปลี่ยนแปลงในหน้านี้หรือหน้าพูดคุยที่เกี่ยวข้องจะแสดงในรายการดังกล่าว',
'watchmethod-list' => 'ตรวจสอบหน้าเฝ้าดูกับการแก้ไขล่าสุด',
'watchlistcontains' => 'รายการเฝ้าดูของคุณมี $1 หน้า',
'iteminvalidname' => "เกิดปัญหากับรายการ '$1' ชื่อไม่ถูกต้อง...",
-'wlnote' => "ด้านล่างเป็นการแก้ไข{{PLURAL:$1|ล่าสุด|ล่าสุด '''$1''' รายการ}} ใน{{PLURAL:$2|ชั่วโมง|ช่วง '''$2''' ชั่วโมง}}ที่ผ่านมา จนถึง $3, $4",
'wlshowlast' => 'แสดง $1 ชั่วโมง $2 วันล่าสุด $3',
'watchlist-options' => 'ตัวเลือกรายการเฝ้าดู',
'deletepage' => 'ลบหน้า',
'confirm' => 'ยืนยัน',
'excontent' => "เนื้อหาเดิม: '$1'",
-'excontentauthor' => "เนื้อหาเดิม: '$1' (และมีผู้เขียนคนเดียว คือ '[[Special:Contributions/$2|$2]]')",
+'excontentauthor' => "เนื้อหาเดิม: '$1' (และมีผู้เขียนคนเดียวคือ '[[Special:Contributions/$2|$2]]')",
'exbeforeblank' => "เนื้อหาก่อนถูกทำว่างคือ: '$1'",
'exblank' => 'หน้าว่าง',
'delete-confirm' => 'ลบ "$1"',
'editcomment' => "คำอธิบายอย่างย่อคือ: \"''\$1''\"",
'revertpage' => 'ย้อนการแก้ไขของ [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ไปยังรุ่นของ [[User:$1|$1]]',
'revertpage-nouser' => 'ย้อนการแก้ไขโดยผู้ใช้ไม่ระบุชื่อไปยังรุ่นสุดท้ายโดย {{GENDER:$1|[[User:$1|$1]]}}',
-'rollback-success' => 'ยà¹\89à¸à¸\99รุà¹\88à¸\99à¸\97ีà¹\88แก้ไขโดย $1 ไปยังรุ่นล่าสุดโดย $2',
+'rollback-success' => 'ยà¹\89à¸à¸\99à¸\81ารแก้ไขโดย $1 ไปยังรุ่นล่าสุดโดย $2',
# Edit tokens
'sessionfailure-title' => 'ช่วงเวลาสื่อสารล้มเหลว',
'undeleteviewlink' => 'ดู',
'undeleteinvert' => 'กลับการเลือก',
'undeletecomment' => 'เหตุผล:',
-'undeletedrevisions' => '$1 รุ่นการแก้ไขถูกกู้คืน',
+'undeletedrevisions' => 'กู้คืนการแก้ไข $1 รุ่นแล้ว',
'undeletedrevisions-files' => '$1 รุ่น และ $2 ไฟล์ถูกกู้คืน',
'undeletedfiles' => '$1 ไฟล์ถูกกู้คืน',
'cannotundelete' => 'การกู้คืนล้มเหลว:
'blanknamespace' => '(หลัก)',
# Contributions
-'contributions' => 'à¹\80รืà¹\88à¸à¸\87à¸\97ีà¹\88à¹\80à¸\82ียà¸\99à¹\82à¸\94ย{{GENDER:$1|à¸\9cูà¹\89à¹\83à¸\8aà¹\89}}à¸\99ีà¹\89',
+'contributions' => 'à¹\80รืà¹\88à¸à¸\87à¸\97ีà¹\88à¸\9cูà¹\89à¹\83à¸\8aà¹\89รายà¸\99ีà¹\89à¹\80à¸\82ียà¸\99',
'contributions-title' => 'เรื่องที่เขียนโดย $1',
'mycontris' => 'เรื่องที่เขียน',
'contribsub2' => 'สำหรับ {{GENDER:$3|$1}} ($2)',
'ipb_expiry_invalid' => 'วันหมดอายุไม่ถูกต้อง',
'ipb_expiry_temp' => 'การบล็อกชื่อผู้ใช้ที่ซ่อนต้องเป็นการบล็อกถาวร',
'ipb_hide_invalid' => 'ไม่สามารถยับยั้งชื่อผู้ใช้นี้ได้ อาจเพราะมีการแก้ไขมากเกินไป',
-'ipb_already_blocked' => '"$1" ถูกบล็อกแล้วก่อนหน้านี้',
+'ipb_already_blocked' => '"$1" à¸\96ูà¸\81à¸\9aลà¹\87à¸à¸\81à¹\84à¸\9bà¹\81ลà¹\89วà¸\81à¹\88à¸à¸\99หà¸\99à¹\89าà¸\99ีà¹\89',
'ipb-needreblock' => '$1 ถูกบล็อกแล้ว คุณต้องการเปลี่ยนการตั้งค่าหรือไม่',
'ipb-otherblocks-header' => '{{PLURAL:$1|การบล็อก}}อื่น ๆ',
'unblock-hideuser' => 'คุณไม่สามารถยกเลิกการบล็อกผู้ใช้งานรายนี้ได้ เพราะชื่อผู้ใช้ถูกซ่อนอยู่',
อย่างไรก็ตาม ไอพีนี้ถูกระงับในฐานะที่เป็นส่วนหนึ่งของเลขที่อยู่ไอพีในพิสัย $2 ซึ่งสามารถปลดบล็อกได้',
'ip_range_invalid' => 'พิสัยไอพีไม่ถูกต้อง',
'ip_range_toolarge' => 'พิสัยบล็อกที่มีขนาดใหญ่กว่า /$1 จะไม่ได้รับอนุญาต',
-'proxyblocker' => 'บล็อกพร็อกซี',
+'proxyblocker' => 'à¸\95ัวà¸\9aลà¹\87à¸à¸\81à¸\9eรà¹\87à¸à¸\81à¸\8bี',
'proxyblockreason' => 'เลขที่อยู่ไอพีของคุณถูกบล็อกเนื่องจากเป็นพร็อกซีเปิด กรุณาติดต่อผู้ให้บริการอินเทอร์เน็ตหรือฝ่ายสนับสนุนเทคนิคขององค์การคุณ และแจ้งให้พวกเขาทราบถึงปัญหาความปลอดภัยร้ายแรงนี้',
'sorbsreason' => 'เลขที่อยู่ไอพีของคุณอยู่ในพร็อกซีเปิดในส่วน DNSBL ที่ {{SITENAME}} ใช้',
'sorbs_create_account_reason' => 'เลขที่อยู่ไอพีของคุณอยู่ในพร็อกซีเปิดในส่วน DNSBL ที่ {{SITENAME}} ใช้
'delete_and_move_text' => '== ต้องการลบ ==
มีหน้าปลายทาง "[[:$1]]" แล้ว คุณต้องการลบหน้านั้นหรือไม่เพื่อดำเนินการต่อ',
-'delete_and_move_confirm' => 'à¹\83à¸\8aà¹\88 ลà¸\9aหà¸\99à¹\89าà¸\99ัà¹\89à¸\99',
-'delete_and_move_reason' => 'à¸\96ูà¸\81ลà¸\9aà¹\80à¸\9eืà¹\88à¸à¹\80à¸\9bิà¸\94à¸\8aà¹\88à¸à¸\87à¹\81à¸\81à¹\88à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88à¸จาก "[[$1]]"',
+'delete_and_move_confirm' => 'à¹\83à¸\8aà¹\88 à¸\95à¹\89à¸à¸\87à¸\81ารà¸\88ะลà¸\9aà¹\81ละยà¹\89าย',
+'delete_and_move_reason' => 'ลà¸\9aà¹\80à¸\9eืà¹\88à¸à¸ªà¸£à¹\89าà¸\87หà¸\99à¸\97าà¸\87à¸\97ีà¹\88à¸\88ะยà¹\89ายจาก "[[$1]]"',
'selfmove' => 'ชื่อหน้าต้นทางและปลายทางเป็นชื่อเดียวกัน ไม่สามารถเปลี่ยนชื่อได้มาใช้ชื่อเดิมได้',
'immobile-source-namespace' => 'ไม่สามารถเปลี่ยนชื่อหน้าในเนมสเปซ "$1"',
'immobile-target-namespace' => 'ไม่สามารถย้ายหน้าไปยังเนมสเปซ "$1" ได้',
'tooltip-pt-watchlist' => 'รายการหน้าที่คุณเฝ้าดูการแก้ไข',
'tooltip-pt-mycontris' => 'รายการหน้าที่คุณเขียน',
'tooltip-pt-login' => 'ไม่จำเป็นต้องล็อกอินในการแก้ไข แต่แนะนำอย่างยิ่งให้ล็อกอิน',
-'tooltip-pt-anonlogin' => 'ไม่จำเป็นต้องล็อกอินในการแก้ไข แต่แนะนำอย่างยิ่งให้ล็อกอิน',
'tooltip-pt-logout' => 'ล็อกเอาต์',
'tooltip-ca-talk' => 'พูดคุยเกี่ยวกับเนื้อหา',
'tooltip-ca-edit' => 'คุณสามารถแก้ไขหน้านี้ได้ โปรดใช้ปุ่มดูตัวอย่างก่อนบันทึก',
'exif-focallength-format' => '$1 มม.',
'exif-subjectarea' => 'จุดวัตถุ',
'exif-flashenergy' => 'พลังงานแฟลช',
-'exif-focalplanexresolution' => 'ความละเอียระนาบโฟกัส X',
-'exif-focalplaneyresolution' => 'ความละเอียระนาบโฟกัส Y',
+'exif-focalplanexresolution' => 'à¸\84วามละà¹\80à¸à¸µà¸¢à¸\94ระà¸\99าà¸\9aà¹\82à¸\9fà¸\81ัส X',
+'exif-focalplaneyresolution' => 'à¸\84วามละà¹\80à¸à¸µà¸¢à¸\94ระà¸\99าà¸\9aà¹\82à¸\9fà¸\81ัส Y',
'exif-focalplaneresolutionunit' => 'หน่วยความละเอียดระนาบโฟกัส',
'exif-subjectlocation' => 'ตำแหน่งวัตถุ',
'exif-exposureindex' => 'ดัชนีเอกซ์โพเชอร์',
'exif-sensingmethod' => 'วิถีการวัด',
'exif-filesource' => 'ต้นฉบับไฟล์',
'exif-scenetype' => 'ชนิดซีน',
-'exif-customrendered' => 'à¸\81ารà¸\9bระมวà¸\93ภาพ',
+'exif-customrendered' => 'à¸\81ารà¸\9bระมวลภาพ',
'exif-exposuremode' => 'โหมดเอกซ์โพเชอร์',
'exif-whitebalance' => 'ไวต์บาลานซ์',
'exif-digitalzoomratio' => 'อัตราซูมดิจิทัล',
'exif-unknowndate' => 'ไม่ทราบวัน',
'exif-orientation-1' => 'ปกติ',
-'exif-orientation-2' => 'à¸\96ูà¸\81สลัà¸\9aแนวนอน',
-'exif-orientation-3' => 'à¸\96ูà¸\81หมุà¸\99 180°',
-'exif-orientation-4' => 'à¸\96ูà¸\81สลัà¸\9aแนวตั้ง',
-'exif-orientation-5' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\97วà¸\99à¹\80à¸\82à¹\87มà¸\99าฬิà¸\81า à¹\81ละà¸\96ูà¸\81สลัà¸\9aแนวตั้ง',
-'exif-orientation-6' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\97วà¸\99à¹\80à¸\82à¹\87มà¸\99าฬิà¸\81า',
-'exif-orientation-7' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\95ามà¹\80à¸\82à¹\87มà¸\99าฬิà¸\81า à¹\81ละà¸\96ูà¸\81สลัà¸\9aแนวตั้ง',
-'exif-orientation-8' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\95ามà¹\80à¸\82à¹\87มà¸\99าฬิà¸\81า',
+'exif-orientation-2' => 'à¸\9eลิà¸\81แนวนอน',
+'exif-orientation-3' => 'หมุน 180°',
+'exif-orientation-4' => 'à¸\9eลิà¸\81แนวตั้ง',
+'exif-orientation-5' => 'หมุà¸\99 90° à¸\97วà¸\99à¹\80à¸\82à¹\87มà¸\99าฬิà¸\81าà¹\81ละà¸\9eลิà¸\81แนวตั้ง',
+'exif-orientation-6' => 'หมุน 90° ทวนเข็มนาฬิกา',
+'exif-orientation-7' => 'หมุà¸\99 90° à¸\95ามà¹\80à¸\82à¹\87มà¸\99าฬิà¸\81าà¹\81ละà¸\9eลิà¸\81แนวตั้ง',
+'exif-orientation-8' => 'หมุน 90° ตามเข็มนาฬิกา',
'exif-planarconfiguration-1' => 'รูปแบบชังกี',
'exif-planarconfiguration-2' => 'รูปแบบเพลนาร์',
'monthsall' => 'ทั้งหมด',
# Email address confirmation
-'confirmemail' => 'ยืนยันอีเมล',
+'confirmemail' => 'ยืà¸\99ยัà¸\99à¸\97ีà¹\88à¸à¸¢à¸¹à¹\88à¸à¸µà¹\80มล',
'confirmemail_noemail' => 'ไม่ได้ใส่อีเมลในส่วน [[Special:Preferences|การตั้งค่าส่วนตัว]]',
'confirmemail_text' => '{{SITENAME}} กำหนดให้คุณตรวจสอบความสมเหตุสมผลของที่อยู่อีเมลของคุณก่อนใช้คุณลักษณะอีเมล
เปิดใช้งานปุ่มด้านล่างเพื่อส่งเมลยืนยันไปยังที่อยู่ของคุณ
'bitrate-yottabits' => '$1 ยอตตะบิตต่อวินาที',
# Live preview
-'livepreview-loading' => 'à¸\81ำลัà¸\87à¹\82หลà¸\94…',
-'livepreview-ready' => 'à¸\81ำลัà¸\87à¹\82หลà¸\94… เสร็จ!',
+'livepreview-loading' => 'à¸\81ำลัà¸\87à¸\84à¹\89à¸\99หา…',
+'livepreview-ready' => 'à¸\81ำลัà¸\87à¸\84à¹\89à¸\99หา… เสร็จ!',
'livepreview-failed' => 'แสดงตัวอย่างทันทีไม่ได้ ให้ลองใช้การแสดงตัวอย่างแบบธรรมดา',
'livepreview-error' => 'เชื่อมต่อไม่ได้: $1 "$2" ให้ลองใช้แสดงตัวอย่างแบบธรรมดา',
เมื่อเสร็จแล้ว ให้กด "{{int:Watchlistedit-raw-submit}}"
ซึ่งอาจแก้ไขผ่าน [[Special:EditWatchlist|โปรแกรมแก้ไขข้อความทั่วไป]]',
'watchlistedit-raw-titles' => 'ชื่อเรื่อง:',
-'watchlistedit-raw-submit' => 'ปรับรายการเฝ้าดู',
+'watchlistedit-raw-submit' => 'à¸\9bรัà¸\9aà¸\9bรุà¸\87รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ู',
'watchlistedit-raw-done' => 'รายการเฝ้าดูของคุณได้ปรับแล้ว',
'watchlistedit-raw-added' => '$1 ชื่อเรื่องได้ถูกเพิ่มเข้าไป:',
'watchlistedit-raw-removed' => '$1 ชื่อเรื่องได้ถูกนำออกไป:',
'duration-millennia' => '$1 สหัสวรรษ',
# Special:ExpandTemplates
+'expand_templates_output' => 'ผลลัพธ์',
'expand_templates_ok' => 'ตกลง',
+'expand_templates_remove_comments' => 'นำส่วนความเห็นออก',
'expand_templates_preview' => 'ตัวอย่างผลแสดง',
);
'tog-numberheadings' => 'Atlary awtomatik usulda belgile',
'tog-showtoolbar' => 'Redaktirleme mahalynda gural panelini görkez (JavaScript)',
'tog-editondblclick' => 'Sahypany jübüt tyklap, redaktirläp başla (JavaScript)',
-'tog-editsection' => 'Her bir bölümde [redaktirle] çykgydyny görkez',
'tog-editsectiononrightclick' => 'Bölümleri bölümiň adyna sag tyklap redaktirlemäge mümkinçilik döret (JavaScript)',
-'tog-showtoc' => 'Mazmun tablisasyny görkez (3 sanydan köp ady bar bolan sahypalar üçin)',
'tog-rememberpassword' => 'Sessiýamy şu brauzerde ýatda sakla (iň köp $1 {{PLURAL:$1|günläp|günläp}})',
'tog-watchcreations' => 'Döreden sahypalarymy gözegçilik sanawyma goş',
'tog-watchdefault' => 'Redaktirlän sahypalarymy gözegçilik sanawyma goş',
'tog-numberheadings' => 'Automatikong bilangin ang mga pamagat',
'tog-showtoolbar' => "Ipakita ang ''toolbar'' ng pagbabago (JavaScript)",
'tog-editondblclick' => 'Magbago ng mga pahina sa dalawahang pagpindot (JavaScript)',
-'tog-editsection' => 'Payagan ang mga pagbabagong panseksyon sa mga [baguhin] na kawing',
'tog-editsectiononrightclick' => 'Payagan ang mga pagbabagong panseksyon sa pakanang pagpindot ng mga panseksyong pamagat (JavaScript)',
-'tog-showtoc' => 'Ipakita ang talaan ng mga nilalaman (sa mga pahinang may higit sa 3 punong pamagat)',
'tog-rememberpassword' => 'Tandaan ang paglagda ko sa panghanaphanap na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
'tog-watchcreations' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahinang nilikha ko at mga talaksang ikinarga kong paitaas',
'tog-watchdefault' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahina at mga talaksang binago ko',
* @author Szoszv
* @author Tarikozket
* @author Tarkovsky
+ * @author Trncmvsr
* @author Universal Life
* @author Urhixidur
* @author Uğur Başak
'tog-numberheadings' => 'Başlıkları otomatik numaralandır',
'tog-showtoolbar' => 'Düzenleme araç çubuğunu göster',
'tog-editondblclick' => 'Çift tıklayarak sayfaları düzenle',
-'tog-editsection' => 'Bölümleri [{{int:Editsection}}] bağlantıları ile düzenlemeyi etkinleştir',
'tog-editsectiononrightclick' => 'Bölüm başlığına sağ tıklayarak bölümleri düzenleyebilme olanağı ver',
-'tog-showtoc' => 'İçindekiler tablosunu göster (3 taneden fazla başlığı olan sayfalar için)',
'tog-rememberpassword' => 'Girişimi bu tarayıcıda hatırla (en fazla $1 {{PLURAL:$1|gün|gün}} için)',
'tog-watchcreations' => 'Açtığım sayfaları ve yüklediğim dosyaları izleme listeme ekle',
'tog-watchdefault' => 'Düzenleme yaptığım sayfaları izleme listeme ekle',
'retypenew' => 'Yeni parolayı tekrar girin',
'resetpass_submit' => 'Şifreyi ayarlayın ve oturum açın',
'changepassword-success' => 'Parolanız başarıyla değiştirildi!',
+'changepassword-throttled' => 'Çok fazla yeni oturum açma girişiminde bulundunuz.
+Lütfen tekrar denemeden önce $1 bekleyin.',
'resetpass_forbidden' => 'Parolalar değiştirilememektedir',
'resetpass-no-info' => 'Bu sayfaya doğrudan erişmek için oturum açmanız gereklidir.',
'resetpass-submit-loggedin' => 'Parolayı değiştir',
'changeemail' => 'E-posta adresini değiştir',
'changeemail-header' => 'Hesabın e-posta adresini değiştirin',
'changeemail-text' => 'E-posta adresinizi değiştirmek için bu formu doldurun. Değişikliği onaylamak için parolanızı girmeniz gerekecektir.',
-'changeemail-no-info' => 'Bu sayfaya doğrudan ulaşabilmek için oturum açmış olmalısınız.',
+'changeemail-no-info' => 'Bu sayfaya doğrudan erişmek için oturum açmanız gereklidir.',
'changeemail-oldemail' => 'Mevcut E-posta adresi:',
'changeemail-newemail' => 'Yeni E-posta adresi:',
'changeemail-none' => '(yok)',
'changeemail-password' => '{{SITENAME}} parolanız:',
'changeemail-submit' => "E-posta'yı değiştir",
'changeemail-cancel' => 'İptal',
+'changeemail-throttled' => 'Çok fazla oturum açma girişiminde bulundunuz.
+Lütfen tekrar denemeden önce $1 bekleyin.',
# Special:ResetTokens
'resettokens' => 'Anahtarları sıfırla',
Siz sayfayı görüntülerken taşınmış veya silinmiş olabilir.',
'loginreqtitle' => 'Oturum açmanız gerekiyor',
'loginreqlink' => 'oturum aç',
-'loginreqpagetext' => 'Diğer sayfaları görmek için $1 olmalısınız.',
+'loginreqpagetext' => 'Diğer sayfaları görmek için $1 .',
'accmailtitle' => 'Parola gönderildi.',
'accmailtext' => "[[User talk:$1|$1]] için rastgele oluşturulan parola $2 adresine gönderildi.
'watchmethod-list' => 'izlediğiniz sayfalarda yapılan son değişiklikler kontrol ediliyor',
'watchlistcontains' => 'İzleme listenizde $1 tane {{PLURAL:$1|sayfa|sayfa}} var.',
'iteminvalidname' => "'$1' öğesi ile sorun, geçersiz isim...",
-'wlnote' => "$3 saat $4 itibariyle son {{PLURAL:$2|bir saatte|'''$2''' saatte}} yapılan {{PLURAL:$1|son değişiklik|son '''$1''' değişiklik}} aşağıdadır.",
'wlshowlast' => 'Son $1 saati $2 günü göster $3',
'watchlist-options' => 'İzleme listesi seçenekleri',
'delete-warning-toobig' => 'Bu sayfanın büyük bir değişiklik geçmişi var, $1 {{PLURAL:$1|revizyonun|revizyonun}} üzerinde.
Bunu silmek {{SITENAME}} işlemlerini aksatabilir;
dikkatle devam edin.',
-'deleting-backlinks-warning' => "'''Uyarı:''' Silmek üzere olduğunuz sayfaya başka sayfalardan bağlantılar var.",
+'deleting-backlinks-warning' => "'''Uyarı:''' Silmek üzere olduğunuz sayfaya başka sayfalardan bağlantıları var veya sayfanın bazı bölümleri başka sayfalar tarafından alıntı olarak kullanılıyor.",
# Rollback
'rollback' => 'değişiklikleri geri al',
'range_block_disabled' => 'Hizmetliler için aralık engellemesi oluşturma yeteneği devre dışı.',
'ipb_expiry_invalid' => 'Geçersiz bitiş zamanı.',
'ipb_expiry_temp' => 'Gizli kullanıcı adı engellemeleri kalıcı olmalı.',
-'ipb_hide_invalid' => 'Kullanıcı hesabı gizlenemiyor; çok fazla değişikliği olabilir.',
+'ipb_hide_invalid' => 'Kullanıcı hesabı gizlenemiyor; {{PLURAL:$1|Bir düzenleme|$1 düzenleme}}den daha fazla düzenlemesi var.',
'ipb_already_blocked' => '"$1" zaten engellenmiş',
'ipb-needreblock' => '$1 zaten engellenmiş. Ayarları değiştirmek istiyor musunuz?',
'ipb-otherblocks-header' => 'Diğer {{PLURAL:$1|engelleme|engellemeler}}',
'tooltip-pt-watchlist' => 'Değişiklikler için izlemeye aldığınız sayfaların listesi',
'tooltip-pt-mycontris' => 'Katkılarınızın listesi',
'tooltip-pt-login' => 'Oturum açmanızı tavsiye ederiz; ancak zorunda değilsiniz',
-'tooltip-pt-anonlogin' => 'Oturum açmanızı tavsiye ederiz; ancak zorunda değilsiniz',
'tooltip-pt-logout' => 'Sistemden çık',
'tooltip-ca-talk' => 'İçerik ile ilgili tartışma',
'tooltip-ca-edit' => 'Bu sayfayı değiştirebilirsiniz. Lütfen kaydetmeden önce önizleme düğmesini kullanın.',
'tog-numberheadings' => 'ماۋزۇغا ئۆزلۈكىدىن تەرتىپ نومۇرى قوش',
'tog-showtoolbar' => 'تەھرىر قورال بالداقنى كۆرسەت',
'tog-editondblclick' => 'قوش چەككەندە بەت تەھرىرلە',
-'tog-editsection' => '[تەھرىر] ئۇلانمىسىنى چېكىپ ئابزاس تەھرىرلەشكە يول قوي',
'tog-editsectiononrightclick' => 'تېمىنى ئوڭ چېكىپ ئابزاس تەھرىرلەشكە يول قوي',
-'tog-showtoc' => 'مەزمۇن جەدۋىلى كۆرسەت (بىر بەتتە 3 تىن ئارتۇق ماۋزۇ بار بەتكە قارىتىلغان)',
'tog-rememberpassword' => 'بۇ كومپيۇتېردا كىرگىنىمنى ئەستە ساقلا(ئەڭ ئۇزۇن بولغاندا $1 {{PLURAL:$1|كۈن|كۈن}})',
'tog-watchcreations' => 'مەن قۇرغان بەت ۋە يۈكلىگەن ھۆججەتلەرنى كۆزەت تىزىملىكىمگە قوش',
'tog-watchdefault' => 'مەن تەھرىرلىگەن بەت ۋە ھۆججەتنى كۆزەت تىزىملىكىمگە قوش',
'tog-numberheadings' => 'Автоматично нумерувати заголовки',
'tog-showtoolbar' => 'Показувати панель інструментів',
'tog-editondblclick' => 'Редагувати сторінки при подвійному клацанні мишкою',
-'tog-editsection' => 'Показувати посилання [ред.] для кожного розділу',
'tog-editsectiononrightclick' => 'Редагувати розділи при клацанні правою кнопкою мишки на заголовку',
-'tog-showtoc' => 'Показувати зміст (для сторінок з більш ніж трьома заголовками)',
'tog-rememberpassword' => "Запам'ятати мій обліковий запис для цього браузера (на строк не більше $1 {{PLURAL:$1|1=дня|днів}})",
'tog-watchcreations' => 'Додавати створені мною сторінки і завантажені мною файли до мого списку спостереження',
'tog-watchdefault' => 'Додавати змінені мною сторінки та файли до мого списку спостереження',
'retypenew' => 'Ще раз введіть новий пароль:',
'resetpass_submit' => 'Установити пароль і ввійти',
'changepassword-success' => 'Ваш пароль успішно змінено!',
+'changepassword-throttled' => 'Ви нещодавно зробили надто багато спроб ввійти до системи.
+Будь ласка, зачекайте $1 перед повторною спробою.',
'resetpass_forbidden' => 'Пароль не можна змінювати',
'resetpass-no-info' => 'Щоб звертатися безпосередньо до цієї сторінки, вам слід увійти до системи.',
'resetpass-submit-loggedin' => 'Змінити пароль',
'changeemail-password' => 'Ваш пароль проекту {{SITENAME}}:',
'changeemail-submit' => 'Змінити адресу електронної пошти',
'changeemail-cancel' => 'Скасувати',
+'changeemail-throttled' => 'Ви зробили надто багато спроб ввійти до системи.
+Будь ласка, зачекайте $1 перед повторною спробою.',
# Special:ResetTokens
'resettokens' => 'Скидання жетонів',
'watchmethod-list' => 'перегляд статей за якими ведеться спостереження',
'watchlistcontains' => 'Ваш список спостереження містить $1 {{PLURAL:$1|сторінку|сторінки|сторінок}}.',
'iteminvalidname' => 'Проблема з елементом «$1», недопустима назва…',
-'wlnote' => 'Нижче наведено {{PLURAL:$1|останнє $1 редагування|останні $1 редагування|останні $1 редагувань}} за {{PLURAL:$2|останню|останні|останні}} <strong>$2</strong> {{PLURAL:$2|годину|години|годин}}, на час $3 $4.',
'wlshowlast' => 'Показати зміни за останні $1 годин $2 днів $3',
'watchlist-options' => 'Налаштування списку спостереження',
'delete-warning-toobig' => 'У цієї сторінки дуже довга історія редагувань, більше $1 {{PLURAL:$1|версії|версій|версій}}.
Її вилучення може призвести до порушень у роботі бази даних сайту {{SITENAME}};
дійте обережно.',
-'deleting-backlinks-warning' => "'''Ð\9fопеÑ\80едженнÑ\8f:''' Ñ\96нÑ\88Ñ\96 Ñ\81Ñ\82оÑ\80Ñ\96нки поÑ\81илаÑ\8eÑ\82Ñ\8cÑ\81Ñ\8f на сторінку, яку ви маєте намір видалити.",
+'deleting-backlinks-warning' => "'''Ð\9fопеÑ\80едженнÑ\8f:''' Ñ\96нÑ\88Ñ\96 Ñ\81Ñ\82оÑ\80Ñ\96нки поÑ\81илаÑ\8eÑ\82Ñ\8cÑ\81Ñ\8f або мÑ\96Ñ\81Ñ\82Ñ\8fÑ\82Ñ\8c сторінку, яку ви маєте намір видалити.",
# Rollback
'rollback' => 'Відкинути редагування',
'range_block_disabled' => 'Адміністраторам заборонено блокувати діапазони.',
'ipb_expiry_invalid' => 'Невірно вказано термін.',
'ipb_expiry_temp' => 'Блокування із приховуванням імені користувача мають бути безстроковими.',
-'ipb_hide_invalid' => 'Ð\9dеможливо пÑ\80иÑ\85оваÑ\82и облÑ\96ковий запиÑ\81; з нÑ\8cого зÑ\80облено дÑ\83же багаÑ\82о Ñ\80едагÑ\83ванÑ\8c.',
+'ipb_hide_invalid' => 'Ð\9dеможливо пÑ\80иÑ\85оваÑ\82и облÑ\96ковий запиÑ\81; з нÑ\8cого зÑ\80облено понад{{PLURAL:$1|одне Ñ\80едагÑ\83ваннÑ\8f|$1 Ñ\80едагÑ\83ваннÑ\8f|$1 Ñ\80едагÑ\83ванÑ\8c}}.',
'ipb_already_blocked' => '«$1» уже заблоковано. Для того, щоб призначити новий термін блокування, спочатку розблокуйте його.',
'ipb-needreblock' => 'Користувач $1 вже заблокований. Хочете змінити параметри блокування?',
'ipb-otherblocks-header' => '{{PLURAL:$1|1=Інше блокування|Інші блокування}}',
'tooltip-pt-watchlist' => 'Список сторінок, за змінами в яких Ви спостерігаєте',
'tooltip-pt-mycontris' => 'Ваш внесок',
'tooltip-pt-login' => "Тут можна зареєструватися в системі, але це не обов'язково.",
-'tooltip-pt-anonlogin' => "Тут можна зареєструватися в системі, але це не обов'язково.",
'tooltip-pt-logout' => 'Вихід із системи',
'tooltip-ca-talk' => 'Обговорення змісту сторінки',
'tooltip-ca-edit' => 'Ви можете редагувати цю сторінку. Будь ласка, використовуйте кнопку попереднього перегляду перед збереженням',
'expand_templates_preview' => 'Попередній перегляд',
# Unknown messages
+'createaccount-hook-aborted' => ' $1',
'uploadinvalidxml' => 'Не вдалося проаналізувати XML у завантаженому файлі.',
);
'tog-numberheadings' => 'Sarlavhalarni avtomatik raqamlash',
'tog-showtoolbar' => 'Tahrirlash asboblari joylashgan yoʻlakchani koʻrsatish (JavaScript orqali)',
'tog-editondblclick' => 'Sichqoncha tugmasini ikki marta bosish orqali tahrirlashni boshlash',
-'tog-editsection' => '[tahrir] havolasini har bir boʻlim boshida koʻrsatish',
'tog-editsectiononrightclick' => 'Boʻlim sarlavhasiga sichqonchaning oʻng tugmasi bilan bosib tahrirlashni boshlash',
-'tog-showtoc' => 'Mundarijani koʻrsatish (3 tadan koʻproq sarlavha bor sahifalarda)',
'tog-rememberpassword' => 'Hisob ma’lumotlarim ushbu brauzerda eslab qolinsin (ko‘pi bilan $1 kunga)',
'tog-watchcreations' => 'Men yaratgan sahifalarni va yuklagan fayllarni kuzatuv roʻyxatimga qoʻsh',
'tog-watchdefault' => 'Men tahrirlagan sahifa va fayllarni kuzatuv roʻyxatimga qoʻsh',
'virus-unknownscanner' => "noma'lum antivirus:",
# Login and logout pages
-'logouttext' => "'''Siz saytdan muvaffaqiyatli chiqdingiz.'''
+'logouttext' => '<strong>Siz saytdan muvaffaqiyatli chiqdingiz.</strong>
-{{SITENAME}} saytidan anonim holda foydalanishda davom etishindiz mumkin. Yoki siz yana hozirgi yoki boshqa foydalanuvchi nomi bilan qaytadan tizimga kirishingiz mumkin.
-Shuni e'tiborga olingki, ayrim sahifalar siz brauzeringiz keshini tozalamaguningizga qadar xuddi tizimga kirganingizdagidek ko'rinishda davom etaverishi mumkin.",
+Brauzeringiz keshini tozalamaguningizgacha ayrim sahifalar tizimga kirganingizdek koʻrinishda davom etaverishi mumkin.',
'yourname' => 'Foydalanuvchi nomi:',
'userlogin-yourname' => 'Foydalanuvchi nomi',
'userlogin-yourname-ph' => 'Foydalanuvchi nomingizni kiriting',
+'createacct-another-username-ph' => 'Foydalanuvchi nomingizni kiriting',
'yourpassword' => 'Maxfiy soʻz:',
'userlogin-yourpassword' => 'Maxfiy soʻz',
'userlogin-yourpassword-ph' => 'Maxfiy soʻzni kiriting',
'userlogin-resetlink' => 'Kirish maʻlumotlaringiz esdan chiqdimi?',
'userlogin-resetpassword-link' => 'Unutib qoʻydingizmi?',
'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Kirish uchun yordam]]',
+'userlogin-loggedin' => 'Siz {{GENDER:$1|$1}} nomi bilan kirgansiz.
+Boshqa hisob raqami orqali kirish uchun quyidagi formadan foydalaning.',
+'userlogin-createanother' => 'Boshqa hisob yaratish',
'createacct-join' => 'Maʼlumotlaringizni quyiga yozing',
+'createacct-another-join' => 'Yangi hisob yozuvi maʼlumotlarini quyida koʻrsating.',
'createacct-emailoptional' => 'Elektron pochta manzili (majburiy emas)',
'createacct-email-ph' => 'Elektron pochtangiz manzilini kiriting',
-'createaccountmail' => 'Vaqtinchalik maxfiy soʻzni koʻrsatilgan elektron pochta manzilimga joʻnatish',
+'createacct-another-email-ph' => 'Elektron pochta manzilini kiriting',
+'createaccountmail' => 'Tasodifan tanlab beriladigan vaqtinchalik maxfiy soʻzdan foydalanish (elektron pochta manzilingizga joʻnatiladi)',
'createaccountreason' => 'Sabab:',
'createacct-captcha' => 'Xavfsizlik tekshiruvi',
'createacct-imgcaptcha-ph' => 'Yuqoridagi yozuvni bu yerga kiriting',
'createacct-submit' => 'Hisob yaratish',
+'createacct-another-submit' => 'Boshqa hisob yaratish',
'createacct-benefit-heading' => '{{SITENAME}} Sizga oʻxshagan odamlar tomonidan yaratiladi',
'createacct-benefit-body1' => 'tahrirlar soni',
'createacct-benefit-body2' => 'maqolalar soni',
'login-userblocked' => 'Bu foydalanuvchi chetlatilgan. Tizimga kirishga ruxsat yoʻq.',
'wrongpassword' => 'Kiritgan mahfiy soʻzingiz notoʻgʻri. Iltimos, qaytadan kiritib koʻring.',
'wrongpasswordempty' => 'Maxfiy soʻz koʻrsatilmagan. Qaytadan urinib koʻring.',
-'mailmypassword' => 'Yangi maxfiy soʻzni elektron pochta orqali joʻnatish',
+'mailmypassword' => 'Maxfiy soʻzni yangilash',
'passwordremindertitle' => "{{SITENAME}} uchun vaqtinchalik yangi maxfiy so'z",
'emailauthenticated' => 'Sizning elektron pochta manzilingiz $2, $3 da tasdiqlangan.',
'emailconfirmlink' => 'Sizning elektron pochta manzilingizni tasdiqlash',
# Special:PasswordReset
'passwordreset' => 'Maxfiy soʻzni yangilash',
'passwordreset-text-one' => 'Mahfiy soʻzni tashlash uchun ushbu oynalarni toʻltiring.',
-'passwordreset-text-many' => '{{PLURAL:$1|Maxfiy soʻzni yangilash uchun quyidagi oynalardan birini toʻldiring.}}',
+'passwordreset-text-many' => '{{PLURAL:$1|Quyidagi oynalardan birini toʻldirsangiz, elektron pochtangizga vaqtinchalik maxfiy soʻz joʻnatiladi.}}',
'passwordreset-legend' => 'Maxfiy soʻzni yangilash',
'passwordreset-username' => 'Foydalanuvchi nomi:',
'passwordreset-domain' => 'Domen:',
Vaqtinchalik maxfiy so'z: $2",
# Special:ChangeEmail
-'changeemail' => "Elektron pochta manzilini o'zgartirish",
+'changeemail' => 'Elektron pochta manzilini oʻzgartirish',
'changeemail-header' => "Elektron pochta manzilini o'zgaritish",
'changeemail-oldemail' => 'Joriy elektron pochta manzili',
'changeemail-newemail' => 'Elektron pochtaning yangi manzili',
'notanarticle' => 'Maqola emas',
'watchlist-details' => 'Sizning kuzatuv roʻyxatingizda hozirda {{PLURAL:$1|bitta sahifa|$1ta sahifa}} mavjud (munozara sahifalarini hisobga olmaganda).',
'wlheader-showupdated' => "Siz oxirgi marta kirganingizdan keyin oʻzgartirilgan sahifalar '''qalin''' yozuv bilan ajratib koʻrsatilgan.",
-'wlnote' => "Below {{PLURAL:$1|is the last change|are the last '''$1''' changes}} in the last {{PLURAL:$2|hour|'''$2''' hours}}, as of $3, $4.",
'wlshowlast' => 'Oxirgi $1 soatdagi $2 kundagi tahrirlarni koʻrsat $3',
'watchlist-options' => 'Kuzatuv roʻyxati moslamalari',
'rollbacklinkcount' => '$1 ta tahrirni ortga qaytarish',
'rollbacklinkcount-morethan' => '$1 {{PLURAL:$1| tadan koʻp tahrir}}ni eski holiga keltirish',
'rollbackfailed' => 'Eski holiga keltirishda xatolik',
-'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|munozara]]) tahrirlari [[User:$1|$1]] versiyasiga qaytarildi',
+'revertpage' => '[[Special:Contributions/$2|$2]] tahrirlari [[User:$1|$1]] versiyasiga qaytarildi',
# Edit tokens
'sessionfailure-title' => 'Seansda xatolik',
'tooltip-pt-watchlist' => 'Siz kuzatib borayotgan sahifalardagi oʻzgarishlar roʻyxati',
'tooltip-pt-mycontris' => 'Hissalaringiz roʻyxati',
'tooltip-pt-login' => 'Bu majburiyat mavjud bo‘lmasa-da, kirishingiz taklif qilinadi.',
-'tooltip-pt-anonlogin' => "Bu majburiyat bo'lmasada, kirishingiz taklif qilinadi.",
'tooltip-pt-logout' => 'Chiqish',
'tooltip-ca-talk' => 'Sahifa matni borasida munozara',
'tooltip-ca-edit' => 'Siz bu sahifani tahrirlashingiz mumkin. Iltimos, saqlashdan oldin koʻrib chiqish tugmasidan foydalaning',
'logentry-move-move' => '$1 $3 sahifasini $4ga koʻchirdi',
'logentry-move-move-noredirect' => '$1 $3 sahifasini $4ga {{GENDER:$2|koʻchirdi}}',
'logentry-patrol-patrol-auto' => '$1 $3 sahifasining $4 versiyasini avtomatik patrulladi',
-'logentry-newusers-newusers' => '$1 hisob yozuvi yaratildi',
-'logentry-newusers-create' => '$1 hisob yozuvi yaratildi',
+'logentry-newusers-newusers' => '$1 hisob yozuvi {{GENDER:$2|yaratildi}}',
+'logentry-newusers-create' => '$1 hisob yozuvi {{GENDER:$2|yaratildi}}',
'logentry-newusers-autocreate' => '$1 hisob yozuvi avtomatik ravishda {{GENDER:$2|yaratilgan}}',
'logentry-rights-rights' => '$1 $3ning guruhlardagi aʼzoligini $4dan $5ga {{GENDER:$2|oʻzgartirdi}}',
'logentry-rights-rights-legacy' => '$1 $3ning guruhlardagi aʼzoligini oʻzgartirdi',
'tog-numberheadings' => 'Numerasion automatega de i titołi de sesion',
'tog-showtoolbar' => 'Mostra ła bara de i strumenti de modifega (el richiede JavaScript)',
'tog-editondblclick' => 'Modifega de łe pajine tramite dopio clic (el richiede JavaScript)',
-'tog-editsection' => 'Modifega de łe sesion tramite el cołegamento [modifega]',
'tog-editsectiononrightclick' => 'Modifega de łe sesion tramite clic destro sol titoło (el richiede JavaScript)',
-'tog-showtoc' => "Mostra l'indexe par łe pajine con pì de 3 sesion",
'tog-rememberpassword' => 'Tiente in mente la me password so sto computer (par un massimo de $1 {{PLURAL:$1|zorno|zorni}})',
'tog-watchcreations' => "Xonta łe pàjine creae e i file cargai a łe tegnùe d'ocio",
'tog-watchdefault' => "Xonta łe pàjine e i file modifegai a łe tegnùe d'ocio",
'tog-numberheadings' => 'Nomeruida avtomatižikš pälkirjutesed',
'tog-showtoolbar' => "Ozutada redaktiruindan panel'",
'tog-editondblclick' => 'Redaktiruida lehtpoled kaksitadud plokul',
-'tog-editsection' => 'Ozutada "Redaktiruida"-kosketuz kaikuččen sekcijan täht',
'tog-editsectiononrightclick' => 'Redaktiruida sekcijad hiren oiktal plokul pälkirjutesele',
-'tog-showtoc' => 'Ozutada südäiolend (lehtpoled, kudambil om enamba, mi 3 pälkirjutest)',
'tog-rememberpassword' => 'Muštta minun kävutajan nimi neciš kompjuteras (enintään $1 {{PLURAL:$1|päivä|päivää}})',
'tog-watchcreations' => 'Ližata kaik minai sätud lehtpoled da failad minun kaclendkirjuteshe',
'tog-watchdefault' => 'Ližata kaik minai toižetadud lehtpoled da failad minun kaclendkirjuteshe',
* @author Vietbio
* @author Vinhtantran
* @author Vương Ngân Hà
+ * @author Withoutaname
* @author לערי ריינהארט
*/
'tog-numberheadings' => 'Tự động đánh số các đề mục',
'tog-showtoolbar' => 'Hiển thị thanh định dạng',
'tog-editondblclick' => 'Nhấn đúp để sửa đổi trang',
-'tog-editsection' => 'Cho phép sửa đổi đề mục qua liên kết [sửa]',
'tog-editsectiononrightclick' => 'Bấm chuột phải vào đề mục để sửa đổi phần trang',
-'tog-showtoc' => 'Hiển thị mục lục (cho trang có trên 3 đề mục)',
'tog-rememberpassword' => 'Nhớ thông tin đăng nhập của tôi trong trình duyệt này (cho đến $1 ngày)',
'tog-watchcreations' => 'Tự động theo dõi các trang tôi viết mới và các tập tin tôi tải lên',
'tog-watchdefault' => 'Tự động theo dõi các trang và tập tin tôi sửa',
'vector-action-unprotect' => 'Đổi mức khóa',
'vector-simplesearch-preference' => 'Hộp tìm kiếm đơn giản (cần bề ngoài Vectơ)',
'vector-view-create' => 'Tạo',
-'vector-view-edit' => 'Sửa',
+'vector-view-edit' => 'Sửa đổi',
'vector-view-history' => 'Xem lịch sử',
'vector-view-view' => 'Đọc',
'vector-view-viewsource' => 'Xem mã nguồn',
'postcomment' => 'Đề mục mới',
'articlepage' => 'Xem trang nội dung',
'talk' => 'Thảo luận',
-'views' => 'Xem',
+'views' => 'Hình dạng',
'toolbox' => 'Công cụ',
'userpage' => 'Xem trang thành viên',
'projectpage' => 'Xem trang dự án',
'imagepage' => 'Xem trang tập tin',
'mediawikipage' => 'Thông điệp giao diện',
-'templatepage' => 'Trang bản mẫu',
-'viewhelppage' => 'Trang trợ giúp',
-'categorypage' => 'Trang thể loại',
-'viewtalkpage' => 'Trang thảo luận',
+'templatepage' => 'Xem trang bản mẫu',
+'viewhelppage' => 'Xem trang trợ giúp',
+'categorypage' => 'Xem trang thể loại',
+'viewtalkpage' => 'Xem trang thảo luận',
'otherlanguages' => 'Ngôn ngữ khác',
'redirectedfrom' => '(đổi hướng từ $1)',
'redirectpagesub' => 'Trang đổi hướng',
'retypenew' => 'Gõ lại:',
'resetpass_submit' => 'Chọn mật khẩu và đăng nhập',
'changepassword-success' => 'Đã đổi mật khẩu thành công!',
+'changepassword-throttled' => 'Bạn thử đăng nhập gần đây nhiều lần quá. Xin chờ $1 trước khi bạn thử lần nữa.',
'resetpass_forbidden' => 'Không được đổi mật khẩu',
'resetpass-no-info' => 'Bạn phải đăng nhập mới có thể truy cập trực tiếp trang này.',
'resetpass-submit-loggedin' => 'Thay đổi mật khẩu',
'changeemail-password' => 'Mật khẩu của bạn tại {{SITENAME}}:',
'changeemail-submit' => 'Đổi địa chỉ',
'changeemail-cancel' => 'Hủy bỏ',
+'changeemail-throttled' => 'Bạn thử đăng nhập nhiều lần quá. Xin chờ $1 trước khi bạn thử lần nữa.',
# Special:ResetTokens
'resettokens' => 'Đặt lại dấu hiệu',
'search-result-score' => 'Độ phù hợp: $1%',
'search-redirect' => '(đổi hướng $1)',
'search-section' => '(đề mục $1)',
+'search-file-match' => '(khớp nội dung tập tin)',
'search-suggest' => 'Có phải bạn muốn tìm: $1',
'search-interwiki-caption' => 'Các dự án liên quan',
'search-interwiki-default' => '$1 kết quả:',
'watchmethod-list' => 'Dưới đây hiện danh sách các trang theo dõi.',
'watchlistcontains' => 'Danh sách theo dõi của bạn có $1 {{PLURAL:$1|trang|trang}}.',
'iteminvalidname' => 'Tên trang “$1” không hợp lệ…',
-'wlnote' => "Dưới đây là {{PLURAL:$1|thay đổi '''duy nhất'''|'''$1''' thay đổi gần nhất}} trong {{PLURAL:$2|giờ|'''$2''' giờ}} qua, tính tới $3 lúc $4.",
'wlshowlast' => 'Hiển thị $1 giờ $2 ngày gần đây $3',
'watchlist-options' => 'Tùy chọn về danh sách theo dõi',
'delete-warning-toobig' => 'Trang này có lịch sử sửa đổi lớn, đến hơn {{PLURAL:$1|lần|lần}} sửa đổi.
Việc xóa các trang có thể làm tổn hại đến hoạt động của cơ sở dữ liệu {{SITENAME}};
hãy cẩn trọng khi thực hiện.',
-'deleting-backlinks-warning' => "'''Cảnh báo:''' Có trang khác liên kết đến trang mà bạn sắp xóa.",
+'deleting-backlinks-warning' => "'''Cảnh báo:''' Có trang khác liên kết đến hoặc nhúng trang mà bạn sắp xóa.",
# Rollback
'rollback' => 'Lùi tất cả sửa đổi',
'range_block_disabled' => 'Đã tắt khả năng cấm hàng loạt của quản lý.',
'ipb_expiry_invalid' => 'Thời điểm hết hạn không hợp lệ.',
'ipb_expiry_temp' => 'Cấm tên người dùng ẩn nên là cấm vô hạn.',
-'ipb_hide_invalid' => 'Không thể ẩn tài khoản này; có thể do nó có quá nhiều sửa đổi.',
+'ipb_hide_invalid' => 'Không thể ẩn tài khoản này; nó đã sửa đổi hơn {{PLURAL:$1|một lần|$1 lần}}.',
'ipb_already_blocked' => '“$1” đã bị cấm rồi',
'ipb-needreblock' => '$1 đã bị cấm. Bạn có muốn thay đổi các thiết lập?',
'ipb-otherblocks-header' => '{{PLURAL:$1|Tác vụ cấm|Các tác vụ cấm}} khác',
'tooltip-pt-watchlist' => 'Thay đổi của các trang tôi theo dõi',
'tooltip-pt-mycontris' => 'Danh sách các đóng góp của tôi',
'tooltip-pt-login' => 'Đăng nhập sẽ có lợi hơn, tuy nhiên không bắt buộc.',
-'tooltip-pt-anonlogin' => 'Không đăng nhập vẫn tham gia được, tuy nhiên đăng nhập sẽ lợi hơn.',
'tooltip-pt-logout' => 'Đăng xuất',
'tooltip-ca-talk' => 'Thảo luận về trang này',
'tooltip-ca-edit' => 'Bạn có thể sửa được trang này! (Xin vui lòng xem trước trước khi lưu.)',
'expand_templates_preview' => 'Xem trước',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => 'Không thể phân tích mã XML trong tập tin tải lên.',
);
'tog-numberheadings' => 'Auto-nga-ihap nga mga pagngaran',
'tog-showtoolbar' => 'Igpakita an edit toolbar',
'tog-editondblclick' => 'Igliwat in mga pakli ha doble nga klik',
-'tog-editsection' => 'Tugoti in seksyon nga pagliwat pinaagi hin [igliwat] nga mga sumpay',
'tog-editsectiononrightclick' => 'Tugoti in pagliwat hin seksyon ha pag klik-ha-tuo dida hin mga ngaran o titulo hin seksyon',
'tog-showtoc' => 'Igpakita in tabla hin sulod (para hin mga pakli nga sobra hin 3 ka titulo o pagngaran)',
'tog-rememberpassword' => 'Hinumdomi an akon pan-sakob dinhi nga browser (para hin maximum nga $1 {{PLURAL:$1|nga adlaw|nga mga adlaw}})',
'tog-numberheadings' => 'Koj yi jox lim seen bopp',
'tog-showtoolbar' => 'Wone bànqaasu njëlu coppite bi (JavaScript)',
'tog-editondblclick' => 'Cuq cuqaatal ngir soppi aw xët (JavaScript)',
-'tog-editsection' => 'Soppi ab xaaj jaare ko cib lëkkalekaay [Soppi]',
'tog-editsectiononrightclick' => 'Soppi ab xaaj cib cuqub ndeyjoor ci kojam (JavaScript)',
-'tog-showtoc' => 'Wone tëralinu ne-ne yi (ngir xët yi ëpp 3 xaaj)',
'tog-rememberpassword' => 'Fattalikul sama baatujàll (for a maximum of $1 {{PLURAL:$1|day|days}})',
'tog-watchcreations' => 'Yokk ci sama limu toppte xët yi may sos',
'tog-watchdefault' => 'Yokk ci sama limu toppte xët yi may soppi',
'rows' => 'Rëdd:',
'columns' => 'Kenu :',
'searchresultshead' => 'Seet',
-'resultsperpage' => 'Limu ngérte ci xët wu ne :',
'recentchangesdays' => 'Limu bes yi nga koy wone ci coppite yu mujj yi :',
'recentchangesdays-max' => '(bi ëpp $1 {{PLURAL:$1|bés|bés}})',
'recentchangescount' => 'Limu coppite yi ngay wone ci coppite yu mujj yi cig wàccaale:',
'tog-numberheadings' => 'נומערירן קעפלעך אויטאמאטיש',
'tog-showtoolbar' => 'ווײַזן רעדאקטירן געצייג-שטאנג',
'tog-editondblclick' => 'רעדאקטירן בלעטער דורך טאפל קליק',
-'tog-editsection' => 'ערמעגליכט אפטייל ענדערן דורך [ענדערן] לינקס',
'tog-editsectiononrightclick' => 'באמעגלעכן אפטייל רעדאקטירן דורכן רעכטס־קליקן אויף אפטייל קעפלעך',
-'tog-showtoc' => 'ווייז דאס אינהאלט קעסטל<br />(פאר בלעטער מיט מער ווי 3 קעפלעך)',
'tog-rememberpassword' => 'געדענק מיין אריינלאגירן אין דעם בלעטערער (ביז $1 {{PLURAL:$1|טאָג|טעג}})',
'tog-watchcreations' => 'צולייגן בלעטער וואס איך באשאף און טעקעס וואס איך לאד ארויף צו מיין אכטונג ליסטע',
'tog-watchdefault' => 'צולייגן בלעטער וואס איך רעדאקטיר צו מיין אכטונג ליסטע',
'search-result-score' => 'שייכותדיקייט: $1%',
'search-redirect' => '(ווײַטערפֿירן $1)',
'search-section' => '(אפטיילונג $1)',
+'search-file-match' => '(פאסט צו טעקע אינהאלט)',
'search-suggest' => 'צי האט איר געמיינט: $1',
'search-interwiki-caption' => 'שוועסטער פראיעקטן',
'search-interwiki-default' => '$1 רעזולטאטן:',
'pageswithprop-text' => 'דער בלאט האלט א רשימה פון בלעטער וואס ניצן א געוויסע בלאט אייגנשאפט.',
'pageswithprop-prop' => 'אייגנשאפט נאמען:',
'pageswithprop-submit' => 'גייט',
+'pageswithprop-prophidden-long' => 'לא גער טעקסט אייגנשאפט־ווערט באהאלטן ($1)',
'doubleredirects' => 'געטאפלטע ווײַטערפֿירונגען',
'doubleredirectstext' => 'דער בלאט רעכנט אויס בלעטער וואס פירן ווייטער צו אנדערע ווייטערפירן בלעטער.
'watchmethod-list' => 'קאנטראלירן בלעטער אין אַכטונג־ליסטע פֿאַר לעצטע ענדערונגען',
'watchlistcontains' => 'אייער אויפֿפאסונג ליסטע אנטהאלט {{PLURAL:$1|איין בלאט|$1 בלעטער}}.',
'iteminvalidname' => "פּראָבלעם מיט '$1', אומגילטיקער נאָמען ...",
-'wlnote' => "אונטן {{PLURAL:$1|איז די לעצטע ענדערונג|זענען די לעצטע '''$1''' ענדערונגען}} אין {{PLURAL:$2|דער לעצטער שעה|די לעצטע '''$2''' שעה'ן}} ביז $3, $4.",
'wlshowlast' => "(ווײַזן די לעצטע $1 שעה'ן | $2 טעג | $3)",
'watchlist-options' => 'אויפֿפאַסן ליסטע ברירות',
'delete-edit-reasonlist' => 'רעדאַקטירן די אויסמעקן סיבות',
'delete-toobig' => 'דער בלאַט האט א גרויסע רעדאקטירונג היסטאריע, מער ווי $1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}}. אויסמעקן אזעלכע בלעטער איז באַגרענעצט געווארן בכדי צו פֿאַרמײַדן א צופֿעליגע פֿאַרשטערונג פֿון {{SITENAME}}.',
'delete-warning-toobig' => 'דער בלאַט האט א גרויסע רעדאקטירונג היסטאריע, מער ווי $1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}}. אויסמעקן אים קען פֿאַרשטערן דאַטנבאַזע אפעראַציעס פֿון {{SITENAME}}; זײַט פֿארזיכטיג איידער איר מעקט אויס.',
-'deleting-backlinks-warning' => "'''ווארענוג:''' אנדערע בלעטער פארבינדן צום בלאט איר האלט ביי אויסמעקן.",
+'deleting-backlinks-warning' => "'''×\95×\95×\90×¨×¢× ×\95×\92:''' ×\90× ×\93ערע ×\91×\9c×¢×\98ער פ×\90ר×\91×\99× ×\93×\9f צ×\95×\9d ×\91×\9c×\90×\98 ×\90×\93ער ×\90ר×\99×\91ערש×\9c×\99ס×\9f פ×\95× ×¢×\9d ×\91×\9c×\90×\98 ×\90×\99ר ×\94×\90×\9c×\98 ×\91×\99×\99 ×\90×\95×\99ס×\9eעק×\9f.",
# Rollback
'rollback' => 'צוריקדרייען רעדאַקטירונגען',
'range_block_disabled' => 'די סיסאפ מעגליכקייט צו בלאקירן רענזש בלאקס איז אומ-ערמעגליכט.',
'ipb_expiry_invalid' => 'אויסגיין צײַט אומגילטיג.',
'ipb_expiry_temp' => 'בלאקירן מיט פאַרבאָרגן באַניצער נאָמען מוז זייַן אויף אייביק.',
-'ipb_hide_invalid' => 'נישט געקענט פֿאַרשטיקן די קאנטע; זי האט מעגלעך צופיל רעדאַקטירונגען.',
+'ipb_hide_invalid' => 'נישט געקענט פֿאַרשטיקן די קאנטע; זי האט {{PLURAL:$1|איין רעדאקטירונג|$1 רעדאַקטירונגען}}.',
'ipb_already_blocked' => '"$1" איז שוין בלאקירט',
'ipb-needreblock' => '$1 איז שוין בלאקירט. צי ווילט איר טוישן די באַצייכנונגען?',
'ipb-otherblocks-header' => '{{PLURAL:$1|אנדער בלאקירונג|אנדערע בלאקירונגען}}',
'allmessages-prefix' => 'פֿילטערן לויט פרעפֿיקס',
'allmessages-language' => 'שפראַך:',
'allmessages-filter-submit' => 'צייגן',
+'allmessages-filter-translate' => 'איבערזעצן',
# Thumbnails
'thumbnail-more' => 'פארגרעסער',
'tooltip-pt-watchlist' => 'ליסטע פון בלעטער וואס איר טוט אויפפאסן נאך ענדערונגן',
'tooltip-pt-mycontris' => 'ליסטע פון אייערע ביישטייערונגען',
'tooltip-pt-login' => "עס איז רעקאָמענדירט זיך אײַנשרײַבן; ס'איז אבער נישט קיין פֿליכט",
-'tooltip-pt-anonlogin' => "עס איז רעקאָמענדירט זיך אײַנשרײַבן; ס'איז אָבער נישט קײַן פֿליכט",
'tooltip-pt-logout' => 'ארויסלאגירן',
'tooltip-ca-talk' => 'שמועס וועגן דעם אינהאַלט בלאַט',
'tooltip-ca-edit' => "איר קענט ענדערן דעם בלאט. ביטע באניצט דעם ''פֿארויסקוק'' קנעפל בעפֿארן אפהיטן",
'tog-numberheadings' => 'Àwọn àkọlé nọmba-araẹni',
'tog-showtoolbar' => 'Ìfihàn pẹpẹ irinṣẹ́ àtúnṣe',
'tog-editondblclick' => "Ṣ'àtúnṣe àwọn ojúewé ní kíkàn lẹ́mẹjì",
-'tog-editsection' => 'Ìgbàláyè àtúnṣe abala láti inú [àtúnṣe] àwọn àjápọ̀',
'tog-editsectiononrightclick' => 'Ìgbàláyè àtúnṣe abala nípa klííkì ọ̀tún lórí àkọlé abala',
-'tog-showtoc' => 'Ìfihàn tábìlì àkóónú (fún àwọn ojúewé tó ní ju orí ọ̀rọ̀ 3 lọ)',
'tog-rememberpassword' => "Ṣè'rántí àkọọ́lẹ̀ ìwọlé mi lórí agbétàkùn yìí (fún {{PLURAL:$1|ọjọ́|ọjọ́}} $1 pípẹ́jùlọ)",
'tog-watchcreations' => "Ṣ'àfikún ojúewé tí mo dá àti àwọn fáìlì tí mo rùsókè mọ́ ìmójútó mi",
'tog-watchdefault' => "Ṣ'àfikún àwọn ojúewé àti fáìlì tí mo ṣ'àtúnse mọ́ ìmójútó mi",
'tog-numberheadings' => '標題自動編號',
'tog-showtoolbar' => '顯示修改工具列(需要JavaScript)',
'tog-editondblclick' => '撳兩下改嘢(需要JavaScript)',
-'tog-editsection' => '可以用 [修改] 掣更改個別段落',
'tog-editsectiononrightclick' => '可以撳右掣更改個別段落(需要JavaScript)',
-'tog-showtoc' => '多過三段時顯示目錄',
'tog-rememberpassword' => '響呢個瀏覽器度記住我嘅登入資料 (最高維持$1{{PLURAL:$1|日|日}})',
'tog-watchcreations' => '將我開嘅頁加入監視清單',
'tog-watchdefault' => '將我修改嘅頁加入監視清單',
* @author Xiaomingyan
* @author Yfdyh000
* @author 乌拉跨氪
+ * @author 御坂美琴
* @author 燃玉
* @author 阿pp
*/
'tog-numberheadings' => '自动编号标题',
'tog-showtoolbar' => '显示编辑工具栏',
'tog-editondblclick' => '双击编辑页面',
-'tog-editsection' => '启用[编辑]链接编辑段落',
'tog-editsectiononrightclick' => '启用右击段落标题编辑段落',
-'tog-showtoc' => '显示目录(对于有多于3个标题的页面)',
'tog-rememberpassword' => '在该浏览器记住我的登录状态(最长$1天)',
'tog-watchcreations' => '添加我创建的页面和我上传的文件至我的监视列表',
'tog-watchdefault' => '添加我编辑的页面和文件至我的监视列表',
'retypenew' => '确认密码:',
'resetpass_submit' => '设定密码并登录',
'changepassword-success' => '您已经修改了您的密码!',
+'changepassword-throttled' => '您最近尝试了多次登录。请等待$1后再试。',
'resetpass_forbidden' => '无法更改密码',
'resetpass-no-info' => '您必须登录后直接进入这个页面。',
'resetpass-submit-loggedin' => '更改密码',
'changeemail-password' => '你的{{SITENAME}}密码:',
'changeemail-submit' => '更改电子邮件地址',
'changeemail-cancel' => '取消',
+'changeemail-throttled' => '您最近尝试了太多次登录。请等待$1后再试。',
# Special:ResetTokens
'resettokens' => '重置密钥',
'newarticletext' => "你点击了一个尚不存在的页面的链接。要创建该页面,请在下面的编辑框中输入内容(更多信息请见[[{{MediaWiki:Helppage}}|帮助页面]])。如果你是错误地到达这里,请点击你的浏览器的'''返回'''按钮。",
'anontalkpagetext' => "---- ''这是一个还未建立账户的匿名用户的讨论页, 因此我们只能用IP地址来与他或她联络。该IP地址可能由几名用户共享。如果您是一名匿名用户并认为此页上的评语与您无关,请[[Special:UserLogin/signup|创建新账户]]或[[Special:UserLogin|登录]]以避免在未来与其他匿名用户混淆。''",
'noarticletext' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]、<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 编辑本页面]。</span>',
-'noarticletext-nopermission' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志],但你没有权限创建本页面。',
+'noarticletext-nopermission' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]</span>,但你没有权限创建本页面。',
'missing-revision' => '“{{PAGENAME}}”的修订#$1不存在。
这通常是因为进入了一个已被删除的页面的历史链接。
'watchmethod-list' => '查看监视页中的最新修改',
'watchlistcontains' => '您的监视列表包含$1个页面。',
'iteminvalidname' => "页面'$1'错误,无效命名...",
-'wlnote' => "下面是{{PLURAL:$2|上|过去'''$2'''}}小时的{{PLURAL:$1|最后更改|最后'''$1'''个更改}},截至$3 $4。",
+'wlnote2' => '以下是最近<strong>$1</strong>小时的变化,作为$2,$3。',
'wlshowlast' => '显示过去$1小时或$2天内的$3',
'watchlist-options' => '监视列表选项',
'delete-edit-reasonlist' => '编辑删除原因',
'delete-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除此类页面的动作已经被限制,以防止在{{SITENAME}}上的意外扰乱。',
'delete-warning-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除它可能会扰乱{{SITENAME}}的数据库操作;在继续此动作前请小心。',
-'deleting-backlinks-warning' => "'''警告:'''有其他页面链接到你要删除的页面。",
+'deleting-backlinks-warning' => "'''警告:'''有其他页面链接至或transclude自您要删除的页面。",
# Rollback
'rollback' => '回退编辑',
'range_block_disabled' => '管理员执行段封禁的权限已被禁用。',
'ipb_expiry_invalid' => '无效的终止时间。',
'ipb_expiry_temp' => '隐藏用户名的封禁必须是永久性的。',
-'ipb_hide_invalid' => '无法隐藏此账户,它可能有太多编辑。',
+'ipb_hide_invalid' => '无法封禁此账户;它拥有多于$1次编辑。',
'ipb_already_blocked' => '“$1”已被封禁',
'ipb-needreblock' => '$1已被封禁。您是否想更改封禁设置?',
'ipb-otherblocks-header' => '其他{{PLURAL:$1|封禁}}',
'allmessages-prefix' => '以前缀过滤:',
'allmessages-language' => '语言:',
'allmessages-filter-submit' => '提交',
+'allmessages-filter-translate' => '翻译',
# Thumbnails
'thumbnail-more' => '放大',
'tooltip-pt-watchlist' => '你正在监视更改的页面的列表',
'tooltip-pt-mycontris' => '你的贡献的列表',
'tooltip-pt-login' => '我们鼓励您登录,不过这不是强制的',
-'tooltip-pt-anonlogin' => '我们鼓励你登录,不过这不是强制的',
'tooltip-pt-logout' => '退出登录',
'tooltip-ca-talk' => '关于内容页面的讨论',
'tooltip-ca-edit' => '你可以编辑本页面。请在保存前使用预览按钮',
'expand_templates_preview' => '预览',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => '上传文件中的XML无法解析。',
);
'tog-numberheadings' => '標題自動編號',
'tog-showtoolbar' => '顯示編輯工具欄',
'tog-editondblclick' => '雙擊編輯頁面',
-'tog-editsection' => '允許通過點擊[編輯]連結編輯段落',
'tog-editsectiononrightclick' => '允許右擊標題編輯段落',
-'tog-showtoc' => '顯示目錄 (針對一頁超過3個標題的頁面)',
'tog-rememberpassword' => '在這個瀏覽器上記住我的登入狀態(最多 $1 天)',
'tog-watchcreations' => '將我建立的頁面和上傳的檔案加入監視列表',
'tog-watchdefault' => '將我更改的頁面和檔案加入監視列表',
'retypenew' => '確認密碼:',
'resetpass_submit' => '設定密碼並登入',
'changepassword-success' => '您的密碼已成功變更!',
+'changepassword-throttled' => '您近期嘗試了多次登錄。請等待$1后再試。',
'resetpass_forbidden' => '無法變更密碼',
'resetpass-no-info' => '您必須登入後直接進入這個頁面。',
'resetpass-submit-loggedin' => '變更密碼',
'changeemail-password' => '您的{{SITENAME}}密碼:',
'changeemail-submit' => '變更電子郵件',
'changeemail-cancel' => '取消',
+'changeemail-throttled' => '您近期嘗試了太多次登錄。請等待$1后再試。',
# Special:ResetTokens
'resettokens' => '重設密鑰',
'watchmethod-list' => '檢查最近編輯的被監視頁面',
'watchlistcontains' => '您的監視列表包含$1個頁面。',
'iteminvalidname' => "頁面 '$1' 錯誤,無效命名...",
-'wlnote' => "截至$3 $4,以下是最近'''$2'''小時內的最後'''$1'''次修改。",
+'wlnote2' => '以下是新近<strong>$1</strong>小時的更改,作為$2,$3。',
'wlshowlast' => '顯示最近$1小時;$2天;$3的修改。',
'watchlist-options' => '監視列表選項',
'delete-edit-reasonlist' => '編輯刪除理由',
'delete-toobig' => '這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除此類頁面的動作已經被限制,以防止在{{SITENAME}}上的意外擾亂。',
'delete-warning-toobig' => '這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除它可能會擾亂{{SITENAME}}的資料庫操作;在繼續此動作前請小心。',
-'deleting-backlinks-warning' => "'''警告:'''您要刪除的頁面有其他頁面連接至此。",
+'deleting-backlinks-warning' => "'''警告:'''您要刪除的頁面有其他頁面連接至此或從此頁面transclude。",
# Rollback
'rollback' => '回退編輯',
'range_block_disabled' => '只有管理員才能創建禁止查封的範圍。',
'ipb_expiry_invalid' => '無效的終止時間。',
'ipb_expiry_temp' => '隱藏用戶名封鎖必須是永久性的。',
-'ipb_hide_invalid' => '不能壓止這個賬戶;它可能有太多編輯。',
+'ipb_hide_invalid' => '不能抑制此賬戶;它擁有多於$1次編輯。',
'ipb_already_blocked' => '已經封鎖「$1」',
'ipb-needreblock' => '$1已經被封鎖。您是否想更改這個設定?',
'ipb-otherblocks-header' => '其他{{PLURAL:$1|封鎖}}',
'allmessages-prefix' => '以前綴過濾:',
'allmessages-language' => '語言:',
'allmessages-filter-submit' => '往',
+'allmessages-filter-translate' => '翻譯',
# Thumbnails
'thumbnail-more' => '放大',
'tooltip-pt-watchlist' => '您所監視頁面的變更列表',
'tooltip-pt-mycontris' => '您的貢獻列表',
'tooltip-pt-login' => '建議您登入,儘管並非必須。',
-'tooltip-pt-anonlogin' => '建議您登入,儘管並非必須。',
'tooltip-pt-logout' => '登出',
'tooltip-ca-talk' => '關於頁面正文的討論',
'tooltip-ca-edit' => '您可以編輯此頁,請在儲存之前先預覽一下。',
'expand_templates_preview' => '預覽',
# Unknown messages
+'createaccount-hook-aborted' => '$1',
'uploadinvalidxml' => '上載檔案中的XML無法解析。',
);
andtitle
anon
anoneditwarning
-anonlogin
anonnotice
anononly
anonpreviewwarning
}
$useReadline = function_exists( 'readline_add_history' )
- && Maintenance::posix_isatty( 0 /*STDIN*/ );
+ && Maintenance::posix_isatty( 0 /*STDIN*/ );
if ( $useReadline ) {
$historyFile = isset( $_ENV['HOME'] ) ?
readline_read_history( $historyFile );
}
+$e = null; // PHP exception
while ( ( $line = Maintenance::readconsole() ) !== false ) {
+ if ( $e && !preg_match( '/^(exit|die);?$/', $line ) ) {
+ // Internal state may be corrupted or fatals may occur later due
+ // to some object not being set. Don't drop out of eval in case
+ // lines were being pasted in (which would then get dumped to the shell).
+ // Instead, just absorb the remaning commands. Let "exit" through per DWIM.
+ echo "Exception was thrown before; please restart eval.php\n";
+ continue;
+ }
if ( $useReadline ) {
readline_add_history( $line );
readline_write_history( $historyFile );
}
- $val = eval( $line . ";" );
+ try {
+ $val = eval( $line . ";" );
+ } catch ( Exception $e ) {
+ echo "Caught exception " . get_class( $e ) .
+ ": {$e->getMessage()}\n" . $e->getTraceAsString() . "\n";
+ continue;
+ }
if ( wfIsHHVM() || is_null( $val ) ) {
echo "\n";
} elseif ( is_string( $val ) || is_numeric( $val ) ) {
* @ingroup Maintenance
*/
class FindHooks extends Maintenance {
+ /*
+ * Hooks that are ignored
+ */
+ protected static $ignore = array( 'testRunLegacyHooks' );
+
public function __construct() {
parent::__construct();
$this->mDescription = 'Find hooks that are undocumented, missing, or just plain wrong';
if ( $sort ) {
asort( $arr );
}
+
foreach ( $arr as $v ) {
- $this->output( "$msg: $v\n" );
+ if ( !in_array( $v, self::$ignore ) ) {
+ $this->output( "$msg: $v\n" );
+ }
}
}
}
* @author Antoine Musso <hashar@free.fr>
*/
+define( 'MW_SETUP_NO_CACHE', 1 );
+define( 'MW_SETUP_NO_CONTEXT', 1 );
require_once __DIR__ . '/Maintenance.php';
/**
'accesskey-pt-watchlist',
'accesskey-pt-mycontris',
'accesskey-pt-login',
- 'accesskey-pt-anonlogin',
'accesskey-pt-logout',
'accesskey-ca-talk',
'accesskey-ca-edit',
'autocomment-prefix',
'move-redirect-text',
'interlanguage-link-title-langonly',
+ 'createaccount-hook-abort',
);
/** Optional messages, which may be translated only if changed in the target language. */
),
'toggles' => array(
'tog-underline',
- 'tog-justify',
'tog-hideminor',
'tog-hidepatrolled',
'tog-newpageshidepatrolled',
'tog-numberheadings',
'tog-showtoolbar',
'tog-editondblclick',
- 'tog-editsection',
'tog-editsectiononrightclick',
- 'tog-showtoc',
'tog-rememberpassword',
'tog-watchcreations',
'tog-watchdefault',
'retypenew',
'resetpass_submit',
'changepassword-success',
+ 'changepassword-throttled',
'resetpass_forbidden',
'resetpass-no-info',
'resetpass-submit-loggedin',
'changeemail-password',
'changeemail-submit',
'changeemail-cancel',
+ 'changeemail-throttled'
),
'resettokens' => array(
'resettokens',
'watchmethod-list',
'watchlistcontains',
'iteminvalidname',
- 'wlnote',
+ 'wlnote2',
'wlshowlast',
'watchlist-options',
),
'allmessages-prefix',
'allmessages-language',
'allmessages-filter-submit',
+ 'allmessages-filter-translate',
),
'thumbnails' => array(
'thumbnail-more',
'import-error-special',
'import-error-invalid',
'import-error-unserialize',
+ 'import-error-bad-location',
'import-options-wrong',
'import-rootpage-invalid',
'import-rootpage-nosubpage',
'accesskey-pt-watchlist',
'accesskey-pt-mycontris',
'accesskey-pt-login',
- 'accesskey-pt-anonlogin',
'accesskey-pt-logout',
'accesskey-ca-talk',
'accesskey-ca-edit',
'tooltip-pt-watchlist',
'tooltip-pt-mycontris',
'tooltip-pt-login',
- 'tooltip-pt-anonlogin',
'tooltip-pt-logout',
'tooltip-ca-talk',
'tooltip-ca-edit',
CREATE UNIQUE INDEX cl_from ON categorylinks (cl_from, cl_to);
CREATE INDEX cl_sortkey ON categorylinks (cl_to, cl_sortkey, cl_from);
-CREATE SEQUENCE externallinks_id_seq;
+CREATE SEQUENCE externallinks_el_id_seq;
CREATE TABLE externallinks (
- el_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('externallinks_id_seq'),
+ el_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('externallinks_el_id_seq'),
el_from INTEGER NOT NULL REFERENCES page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
el_to TEXT NOT NULL,
el_index TEXT NOT NULL
us_key TEXT,
us_orig_path TEXT,
us_path TEXT,
+ us_props BYTEA,
us_source_type TEXT,
us_timestamp TIMESTAMPTZ,
us_status TEXT,
}
function compatChecks() {
- $test = new PhpXmlBugTester();
- if ( !$test->ok ) {
+ // Avoid syntax error in PHP4
+ $minimumPcreVersion = constant( 'Installer::MINIMUM_PCRE_VERSION' );
+
+ list( $pcreVersion ) = explode( ' ', PCRE_VERSION, 2 );
+ if ( version_compare( $pcreVersion, $minimumPcreVersion, '<' ) ) {
$this->error(
- "Your system has a combination of PHP and libxml2 versions which is buggy\n" .
- "and can cause hidden data corruption in MediaWiki and other web apps.\n" .
- "Upgrade to PHP 5.2.9 or later and libxml2 2.7.3 or later!\n" .
- "ABORTING (see http://bugs.php.net/bug.php?id=45996).\n",
+ "PCRE $minimumPcreVersion or later is required.\n" .
+ "Your PHP binary is linked with PCRE $pcreVersion.\n\n" .
+ "More information:\n" .
+ "https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE\n\n" .
+ "ABORTING.\n",
true );
}
- $test = new PhpRefCallBugTester;
- $test->execute();
+ $test = new PhpXmlBugTester();
if ( !$test->ok ) {
- $ver = phpversion();
$this->error(
- "PHP $ver is not compatible with MediaWiki due to a bug involving\n" .
- "reference parameters to __call. Upgrade to PHP 5.3.2 or higher, or \n" .
- "downgrade to PHP 5.3.0 to fix this.\n" .
- "ABORTING (see http://bugs.php.net/bug.php?id=50394 for details)\n",
+ "Your system has a combination of PHP and libxml2 versions that is buggy\n" .
+ "and can cause hidden data corruption in MediaWiki and other web apps.\n" .
+ "Upgrade to libxml2 2.7.3 or later.\n" .
+ "ABORTING (see https://bugs.php.net/bug.php?id=45996).\n",
true );
}
}
+MEDIAWIKI_LOAD_URL ?= http://localhost/w/load.php
+
kss: nodecheck
# FIXME: Use more up-to-date Ruby version
- @node_modules/.bin/kss-node mediawiki.ui mediawiki.ui/docs -l mediawiki.ui/vector.less -t styleguide-template
+
+# Generates CSS of mediawiki.ui and mediawiki.ui.button using ResourceLoader, then applies it to the
+# KSS style guide
+ $(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
+ @curl -sG "${MEDIAWIKI_LOAD_URL}?modules=mediawiki.ui|mediawiki.ui.button&only=styles" > $(KSS_RL_TMP)
+ @node_modules/.bin/kss-node mediawiki.ui mediawiki.ui/docs --css $(KSS_RL_TMP) -t styleguide-template
@echo Opening the generated style guide...
@command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/mediawiki.ui/docs/index.html; exit 1; }
@xdg-open ${PWD}/mediawiki.ui/docs/index.html
+ @rm $(KSS_RL_TMP)
nodecheck:
@scripts/nodecheck.sh
'jquery.form' => array(
'scripts' => 'resources/jquery/jquery.form.js',
),
+ 'jquery.fullscreen' => array(
+ 'scripts' => 'resources/jquery/jquery.fullscreen.js',
+ ),
'jquery.getAttrs' => array(
'scripts' => 'resources/jquery/jquery.getAttrs.js',
'targets' => array( 'desktop', 'mobile' ),
'mediawiki.special.changeslist' => array(
'styles' => 'resources/mediawiki.special/mediawiki.special.changeslist.css',
),
- 'mediawiki.special.changeslist.js' => array(
- 'scripts' => 'resources/mediawiki.special/mediawiki.special.changeslist.js',
+ 'mediawiki.special.changeslist.legend' => array(
+ 'styles' => 'resources/mediawiki.special/mediawiki.special.changeslist.legend.css',
+ ),
+ 'mediawiki.special.changeslist.legend.js' => array(
+ 'scripts' => 'resources/mediawiki.special/mediawiki.special.changeslist.legend.js',
'dependencies' => array(
'jquery.makeCollapsible',
'jquery.cookie',
'messages' => array(
'prefs-tabs-navigation-hint',
),
+ 'dependencies' => array(
+ 'mediawiki.language',
+ ),
),
'mediawiki.special.recentchanges' => array(
'scripts' => 'resources/mediawiki.special/mediawiki.special.recentchanges.js',
--- /dev/null
+/**
+ * jQuery fullscreen plugin v2.0.0
+ * https://github.com/theopolisme/jquery-fullscreen/tree/v2.0.0
+ *
+ * Documentation at <https://github.com/theopolisme/jquery-fullscreen/blob/v2.0.0/README.md>
+ *
+ * Copyright (c) 2013 Theopolisme <theopolismewiki@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+( function ( $ ) {
+ var setupFullscreen,
+ fsClass = 'jq-fullscreened';
+
+ /**
+ * On fullscreenchange, trigger a jq-fullscreen-change event
+ * The event is given an object, which contains the fullscreened DOM element (element), if any
+ * and a boolean value (fullscreen) indicating if we've entered or exited fullscreen mode
+ * Also remove the 'fullscreened' class from elements that are no longer fullscreen
+ */
+ function handleFullscreenChange () {
+ var fullscreenElement = document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.webkitFullscreenElement ||
+ document.msFullscreenElement;
+
+ if ( !fullscreenElement ) {
+ $( '.' + fsClass ).data( 'isFullscreened', false ).removeClass( fsClass );
+ }
+
+ $( document ).trigger( $.Event( 'jq-fullscreen-change', { element: fullscreenElement, fullscreen: !!fullscreenElement } ) );
+ }
+
+ /**
+ * Enters full screen with the "this" element in focus.
+ * Check the .data( 'isFullscreened' ) of the return value to check
+ * success or failure, if you're into that sort of thing.
+ * @chainable
+ * @return {jQuery}
+ */
+ function enterFullscreen () {
+ var element = this.get(0),
+ $element = this.first();
+ if ( element ) {
+ if ( element.requestFullscreen ) {
+ element.requestFullscreen();
+ } else if ( element.mozRequestFullScreen ) {
+ element.mozRequestFullScreen();
+ } else if ( element.webkitRequestFullscreen ) {
+ element.webkitRequestFullscreen();
+ } else if ( element.msRequestFullscreen ) {
+ element.msRequestFullscreen();
+ } else {
+ // Unable to make fullscreen
+ $element.data( 'isFullscreened', false );
+ return this;
+ }
+ // Add the fullscreen class and data attribute to `element`
+ $element.addClass( fsClass ).data( 'isFullscreened', true );
+ return this;
+ } else {
+ $element.data( 'isFullscreened', false );
+ return this;
+ }
+ }
+
+ /**
+ * Brings the "this" element out of fullscreen.
+ * Check the .data( 'isFullscreened' ) of the return value to check
+ * success or failure, if you're into that sort of thing.
+ * @chainable
+ * @return {jQuery}
+ */
+ function exitFullscreen () {
+ var fullscreenElement = ( document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.webkitFullscreenElement ||
+ document.msFullscreenElement );
+
+ // Ensure that we only exit fullscreen if exitFullscreen() is being called on the same element that is currently fullscreen
+ if ( fullscreenElement && this.get(0) === fullscreenElement ) {
+ if ( document.exitFullscreen ) {
+ document.exitFullscreen();
+ } else if ( document.mozCancelFullScreen ) {
+ document.mozCancelFullScreen();
+ } else if ( document.webkitCancelFullScreen ) {
+ document.webkitCancelFullScreen();
+ } else if ( document.msCancelFullScreen ) {
+ document.msCancelFullScreen();
+ } else {
+ // Unable to cancel fullscreen mode
+ return this;
+ }
+ // We don't need to remove the fullscreen class here,
+ // because it will be removed in handleFullscreenChange.
+ // But we should change the data on the element so the
+ // caller can check for success.
+ this.first().data( 'isFullscreened', false );
+ }
+
+ return this;
+ }
+
+ /**
+ * Set up fullscreen handling and install necessary event handlers.
+ * Return false if fullscreen is not supported.
+ */
+ setupFullscreen = function () {
+ if ( document.fullscreenEnabled ||
+ document.mozFullScreenEnabled ||
+ document.webkitFullscreenEnabled ||
+ document.msFullscreenEnabled
+ ) {
+ // When the fullscreen mode is changed, trigger the
+ // fullscreen events (and when exiting,
+ // also remove the fullscreen class)
+ $( document ).on( 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange', handleFullscreenChange);
+ // Convenience wrapper so that one only needs to listen for
+ // 'fullscreenerror', not all of the prefixed versions
+ $( document ).on( 'webkitfullscreenerror mozfullscreenerror msfullscreenerror', function () {
+ $( document ).trigger( $.Event( 'fullscreenerror' ) );
+ } );
+ // Fullscreen has been set up, so always return true
+ setupFullscreen = function () { return true; };
+ return true;
+ } else {
+ // Always return false from now on, since fullscreen is not supported
+ setupFullscreen = function() { return false; };
+ return false;
+ }
+ };
+
+ /**
+ * Set up fullscreen handling if necessary, then make the first element
+ * matching the given selector fullscreen
+ * @chainable
+ * @return {jQuery}
+ */
+ $.fn.enterFullscreen = function () {
+ if ( setupFullscreen() ) {
+ $.fn.enterFullscreen = enterFullscreen;
+ return this.enterFullscreen();
+ } else {
+ $.fn.enterFullscreen = function () { return this; };
+ return this;
+ }
+ };
+
+ /**
+ * Set up fullscreen handling if necessary, then cancel fullscreen mode
+ * for the first element matching the given selector.
+ * @chainable
+ * @return {jQuery}
+ */
+ $.fn.exitFullscreen = function () {
+ if ( setupFullscreen() ) {
+ $.fn.exitFullscreen = exitFullscreen;
+ return this.exitFullscreen();
+ } else {
+ $.fn.exitFullscreen = function () { return this; };
+ return this;
+ }
+ };
+}( jQuery ) );
* Simple local storage wrapper to save data on the browser side, supporting
* all major browsers - IE6+, Firefox2+, Safari4+, Chrome4+ and Opera 10.5+
*
- * Copyright (c) 2010 - 2012 Andris Reinman, andris.reinman@gmail.com
+ * Author: Andris Reinman, andris.reinman@gmail.com
* Project homepage: www.jstorage.info
*
- * Licensed under MIT-style license:
+ * Licensed under Unlicense:
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * This is free and unencumbered software released into the public domain.
+ *
+ * Anyone is free to copy, modify, publish, use, compile, sell, or
+ * distribute this software, either in source code form or as a compiled
+ * binary, for any purpose, commercial or non-commercial, and by any
+ * means.
+ *
+ * In jurisdictions that recognize copyright laws, the author or authors
+ * of this software dedicate any and all copyright interest in the
+ * software to the public domain. We make this dedication for the benefit
+ * of the public at large and to the detriment of our heirs and
+ * successors. We intend this dedication to be an overt act of
+ * relinquishment in perpetuity of all present and future rights to this
+ * software under copyright law.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * For more information, please refer to <http://unlicense.org/>
*/
(function(){
var
/* jStorage version */
- JSTORAGE_VERSION = "0.3.0",
+ JSTORAGE_VERSION = "0.4.8",
/* detect a dollar object or create one if not found */
$ = window.jQuery || window.$ || (window.$ = {}),
};
// Break if no JSON support was found
- if(!JSON.parse || !JSON.stringify){
+ if(!("parse" in JSON) || !("stringify" in JSON)){
throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page");
}
var
/* This is the object, that holds the cached values */
- _storage = {},
+ _storage = {__jstorage_meta:{CRC32:{}}},
- /* Actual browser storage (localStorage or globalStorage['domain']) */
+ /* Actual browser storage (localStorage or globalStorage["domain"]) */
_storage_service = {jStorage:"{}"},
/* DOM element for older IE versions, holds userData behavior */
_pubsub_observers = {},
/* skip published items older than current timestamp */
- _pubsub_last = +new Date(),
+ _pubsub_last = +new Date(),
/* Next check for TTL */
_ttl_timeout,
- /* crc32 table */
- _crc32Table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 "+
- "0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 "+
- "6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 "+
- "FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 "+
- "A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 "+
- "32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 "+
- "56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 "+
- "C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 "+
- "E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 "+
- "6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 "+
- "12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE "+
- "A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 "+
- "DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 "+
- "5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 "+
- "2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF "+
- "04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 "+
- "7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 "+
- "FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 "+
- "A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C "+
- "36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 "+
- "5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 "+
- "C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 "+
- "EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D "+
- "7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 "+
- "18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 "+
- "A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A "+
- "D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A "+
- "53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 "+
- "2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D",
-
/**
* XML encoding and decoding as XML nodes can't be JSON'ized
* XML nodes are encoded and decoded if the node is the value to be saved
decode: function(xmlString){
var dom_parser = ("DOMParser" in window && (new DOMParser()).parseFromString) ||
(window.ActiveXObject && function(_xmlString) {
- var xml_doc = new ActiveXObject('Microsoft.XMLDOM');
- xml_doc.async = 'false';
+ var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
+ xml_doc.async = "false";
xml_doc.loadXML(_xmlString);
return xml_doc;
}),
if(!dom_parser){
return false;
}
- resultXML = dom_parser.call("DOMParser" in window && (new DOMParser()) || window, xmlString, 'text/xml');
+ resultXML = dom_parser.call("DOMParser" in window && (new DOMParser()) || window, xmlString, "text/xml");
return this.isXML(resultXML)?resultXML:false;
}
- },
-
- _localStoragePolyfillSetKey = function(){};
+ };
////////////////////////// PRIVATE METHODS ////////////////////////
var localStorageReallyWorks = false;
if("localStorage" in window){
try {
- window.localStorage.setItem('_tmptest', 'tmpval');
+ window.localStorage.setItem("_tmptest", "tmpval");
localStorageReallyWorks = true;
- window.localStorage.removeItem('_tmptest');
+ window.localStorage.removeItem("_tmptest");
} catch(BogusQuotaExceededErrorOnIos5) {
// Thanks be to iOS5 Private Browsing mode which throws
// QUOTA_EXCEEDED_ERRROR DOM Exception 22.
else if("globalStorage" in window){
try {
if(window.globalStorage) {
- _storage_service = window.globalStorage[window.location.hostname];
+ if(window.location.hostname == "localhost"){
+ _storage_service = window.globalStorage["localhost.localdomain"];
+ }
+ else{
+ _storage_service = window.globalStorage[window.location.hostname];
+ }
_backend = "globalStorage";
_observer_update = _storage_service.jStorage_update;
}
}
/* Check if browser supports userData behavior */
else {
- _storage_elm = document.createElement('link');
+ _storage_elm = document.createElement("link");
if(_storage_elm.addBehavior){
/* Use a DOM element to act as userData storage */
- _storage_elm.style.behavior = 'url(#default#userData)';
+ _storage_elm.style.behavior = "url(#default#userData)";
/* userData element needs to be inserted into the DOM! */
- document.getElementsByTagName('head')[0].appendChild(_storage_elm);
+ document.getElementsByTagName("head")[0].appendChild(_storage_elm);
try{
_storage_elm.load("jStorage");
// remove dead keys
_handleTTL();
- // create localStorage and sessionStorage polyfills if needed
- _createPolyfillStorage("local");
- _createPolyfillStorage("session");
-
// start listening for changes
_setupObserver();
}
}
- /**
- * Create a polyfill for localStorage (type="local") or sessionStorage (type="session")
- *
- * @param {String} type Either "local" or "session"
- * @param {Boolean} forceCreate If set to true, recreate the polyfill (needed with flush)
- */
- function _createPolyfillStorage(type, forceCreate){
- var _skipSave = false,
- _length = 0,
- i,
- storage,
- storage_source = {};
-
- var rand = Math.random();
-
- if(!forceCreate && typeof window[type+"Storage"] != "undefined"){
- return;
- }
-
- // Use globalStorage for localStorage if available
- if(type == "local" && window.globalStorage){
- localStorage = window.globalStorage[window.location.hostname];
- return;
- }
-
- // only IE6/7 from this point on
- if(_backend != "userDataBehavior"){
- return;
- }
-
- // Remove existing storage element if available
- if(forceCreate && window[type+"Storage"] && window[type+"Storage"].parentNode){
- window[type+"Storage"].parentNode.removeChild(window[type+"Storage"]);
- }
-
- storage = document.createElement("button");
- document.getElementsByTagName('head')[0].appendChild(storage);
-
- if(type == "local"){
- storage_source = _storage;
- }else if(type == "session"){
- _sessionStoragePolyfillUpdate();
- }
-
- for(i in storage_source){
-
- if(storage_source.hasOwnProperty(i) && i != "__jstorage_meta" && i != "length" && typeof storage_source[i] != "undefined"){
- if(!(i in storage)){
- _length++;
- }
- storage[i] = storage_source[i];
- }
- }
-
- // Polyfill API
-
- /**
- * Indicates how many keys are stored in the storage
- */
- storage.length = _length;
-
- /**
- * Returns the key of the nth stored value
- *
- * @param {Number} n Index position
- * @return {String} Key name of the nth stored value
- */
- storage.key = function(n){
- var count = 0, i;
- _sessionStoragePolyfillUpdate();
- for(i in storage_source){
- if(storage_source.hasOwnProperty(i) && i != "__jstorage_meta" && i!="length" && typeof storage_source[i] != "undefined"){
- if(count == n){
- return i;
- }
- count++;
- }
- }
- }
-
- /**
- * Returns the current value associated with the given key
- *
- * @param {String} key key name
- * @return {Mixed} Stored value
- */
- storage.getItem = function(key){
- _sessionStoragePolyfillUpdate();
- if(type == "session"){
- return storage_source[key];
- }
- return $.jStorage.get(key);
- }
-
- /**
- * Sets or updates value for a give key
- *
- * @param {String} key Key name to be updated
- * @param {String} value String value to be stored
- */
- storage.setItem = function(key, value){
- if(typeof value == "undefined"){
- return;
- }
- storage[key] = (value || "").toString();
- }
-
- /**
- * Removes key from the storage
- *
- * @param {String} key Key name to be removed
- */
- storage.removeItem = function(key){
- if(type == "local"){
- return $.jStorage.deleteKey(key);
- }
-
- storage[key] = undefined;
-
- _skipSave = true;
- if(key in storage){
- storage.removeAttribute(key);
- }
- _skipSave = false;
- }
-
- /**
- * Clear storage
- */
- storage.clear = function(){
- if(type == "session"){
- window.name = "";
- _createPolyfillStorage("session", true);
- return;
- }
- $.jStorage.flush();
- }
-
- if(type == "local"){
-
- _localStoragePolyfillSetKey = function(key, value){
- if(key == "length"){
- return;
- }
- _skipSave = true;
- if(typeof value == "undefined"){
- if(key in storage){
- _length--;
- storage.removeAttribute(key);
- }
- }else{
- if(!(key in storage)){
- _length++;
- }
- storage[key] = (value || "").toString();
- }
- storage.length = _length;
- _skipSave = false;
- }
- }
-
- function _sessionStoragePolyfillUpdate(){
- if(type != "session"){
- return;
- }
- try{
- storage_source = JSON.parse(window.name || "{}");
- }catch(E){
- storage_source = {};
- }
- }
-
- function _sessionStoragePolyfillSave(){
- if(type != "session"){
- return;
- }
- window.name = JSON.stringify(storage_source);
- };
-
- storage.attachEvent("onpropertychange", function(e){
- if(e.propertyName == "length"){
- return;
- }
-
- if(_skipSave || e.propertyName == "length"){
- return;
- }
-
- if(type == "local"){
- if(!(e.propertyName in storage_source) && typeof storage[e.propertyName] != "undefined"){
- _length ++;
- }
- }else if(type == "session"){
- _sessionStoragePolyfillUpdate();
- if(typeof storage[e.propertyName] != "undefined" && !(e.propertyName in storage_source)){
- storage_source[e.propertyName] = storage[e.propertyName];
- _length++;
- }else if(typeof storage[e.propertyName] == "undefined" && e.propertyName in storage_source){
- delete storage_source[e.propertyName];
- _length--;
- }else{
- storage_source[e.propertyName] = storage[e.propertyName];
- }
-
- _sessionStoragePolyfillSave();
- storage.length = _length;
- return;
- }
-
- $.jStorage.set(e.propertyName, storage[e.propertyName]);
- storage.length = _length;
- });
-
- window[type+"Storage"] = storage;
- }
-
/**
* Reload data from storage when needed
*/
removed.push(key);
continue;
}
- if(oldCrc32List[key] != newCrc32List[key]){
+ if(oldCrc32List[key] != newCrc32List[key] && String(oldCrc32List[key]).substr(0,2) == "2."){
updated.push(key);
}
}
_observers[keys[i]][j](keys[i], action);
}
}
+ if(_observers["*"]){
+ for(var j=0, jlen = _observers["*"].length; j<jlen; j++){
+ _observers["*"][j](keys[i], action);
+ }
+ }
}
}
var updateTime = (+new Date()).toString();
if(_backend == "localStorage" || _backend == "globalStorage"){
- _storage_service.jStorage_update = updateTime;
+ try {
+ _storage_service.jStorage_update = updateTime;
+ } catch (E8) {
+ // safari private mode has been enabled after the jStorage initialization
+ _backend = false;
+ }
}else if(_backend == "userDataBehavior"){
_storage_elm.setAttribute("jStorage_update", updateTime);
_storage_elm.save("jStorage");
* @param {String} key Key name
*/
function _checkKey(key){
- if(!key || (typeof key != "string" && typeof key != "number")){
- throw new TypeError('Key name must be string or numeric');
+ if(typeof key != "string" && typeof key != "number"){
+ throw new TypeError("Key name must be string or numeric");
}
if(key == "__jstorage_meta"){
- throw new TypeError('Reserved key name');
+ throw new TypeError("Reserved key name");
}
return true;
}
* Checks if there's any events on hold to be fired to listeners
*/
function _handlePubSub(){
+ var i, len;
if(!_storage.__jstorage_meta.PubSub){
return;
}
var pubelm,
_pubsubCurrent = _pubsub_last;
- for(var i=len=_storage.__jstorage_meta.PubSub.length-1; i>=0; i--){
+ for(i=len=_storage.__jstorage_meta.PubSub.length-1; i>=0; i--){
pubelm = _storage.__jstorage_meta.PubSub[i];
if(pubelm[0] > _pubsub_last){
_pubsubCurrent = pubelm[0];
if(_pubsub_observers[channel]){
for(var i=0, len = _pubsub_observers[channel].length; i<len; i++){
// send immutable data that can't be modified by listeners
- _pubsub_observers[channel][i](channel, JSON.parse(JSON.stringify(payload)));
+ try{
+ _pubsub_observers[channel][i](channel, JSON.parse(JSON.stringify(payload)));
+ }catch(E){};
}
}
}
if(!_storage.__jstorage_meta.PubSub){
_storage.__jstorage_meta.PubSub = [];
}
-
+
_storage.__jstorage_meta.PubSub.unshift([+new Date, channel, payload]);
_save();
_publishChange();
}
+
/**
- * CRC32 calculation based on http://noteslog.com/post/crc32-for-javascript/
+ * JS Implementation of MurmurHash2
+ *
+ * SOURCE: https://github.com/garycourt/murmurhash-js (MIT licensed)
*
- * @param {String} str String to be hashed
- * @param {Number} [crc] Last crc value in case of streams
+ * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
+ * @see http://github.com/garycourt/murmurhash-js
+ * @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
+ * @see http://sites.google.com/site/murmurhash/
+ *
+ * @param {string} str ASCII only
+ * @param {number} seed Positive integer only
+ * @return {number} 32-bit positive integer hash
*/
- function _crc32(str, crc){
- crc = crc || 0;
-
- var n = 0, //a number between 0 and 255
- x = 0; //an hex number
-
- crc = crc ^ (-1);
- for(var i = 0, len = str.length; i < len; i++){
- n = (crc ^ str.charCodeAt(i)) & 0xFF;
- x = "0x" + _crc32Table.substr(n * 9, 8);
- crc = (crc >>> 8)^x;
+
+ function murmurhash2_32_gc(str, seed) {
+ var
+ l = str.length,
+ h = seed ^ l,
+ i = 0,
+ k;
+
+ while (l >= 4) {
+ k =
+ ((str.charCodeAt(i) & 0xff)) |
+ ((str.charCodeAt(++i) & 0xff) << 8) |
+ ((str.charCodeAt(++i) & 0xff) << 16) |
+ ((str.charCodeAt(++i) & 0xff) << 24);
+
+ k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));
+ k ^= k >>> 24;
+ k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));
+
+ h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k;
+
+ l -= 4;
+ ++i;
+ }
+
+ switch (l) {
+ case 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
+ case 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
+ case 1: h ^= (str.charCodeAt(i) & 0xff);
+ h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));
}
- return crc^(-1);
+
+ h ^= h >>> 13;
+ h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));
+ h ^= h >>> 15;
+
+ return h >>> 0;
}
////////////////////////// PUBLIC INTERFACE /////////////////////////
_storage[key] = value;
- _storage.__jstorage_meta.CRC32[key] = _crc32(JSON.stringify(value));
+ _storage.__jstorage_meta.CRC32[key] = "2." + murmurhash2_32_gc(JSON.stringify(value), 0x9747b28c);
this.setTTL(key, options.TTL || 0); // also handles saving and _publishChange
- _localStoragePolyfillSetKey(key, value);
-
_fireObservers(key, "updated");
return value;
},
get: function(key, def){
_checkKey(key);
if(key in _storage){
- if(_storage[key] && typeof _storage[key] == "object" &&
- _storage[key]._is_xml &&
- _storage[key]._is_xml){
+ if(_storage[key] && typeof _storage[key] == "object" && _storage[key]._is_xml) {
return _XMLService.decode(_storage[key].xml);
}else{
return _storage[key];
}
}
- return typeof(def) == 'undefined' ? null : def;
+ return typeof(def) == "undefined" ? null : def;
},
/**
}
delete _storage.__jstorage_meta.CRC32[key];
- _localStoragePolyfillSetKey(key, undefined);
_save();
_publishChange();
*/
flush: function(){
_storage = {__jstorage_meta:{CRC32:{}}};
- _createPolyfillStorage("local", true);
_save();
_publishChange();
_fireObservers(null, "flushed");
/**
* Returns an index of all used keys as an array
- * ['key1', 'key2',..'keyN']
+ * ["key1", "key2",.."keyN"]
*
* @return {Array} Used keys
*/
subscribe: function(channel, callback){
channel = (channel || "").toString();
if(!channel){
- throw new TypeError('Channel not defined');
+ throw new TypeError("Channel not defined");
}
if(!_pubsub_observers[channel]){
_pubsub_observers[channel] = [];
publish: function(channel, payload){
channel = (channel || "").toString();
if(!channel){
- throw new TypeError('Channel not defined');
+ throw new TypeError("Channel not defined");
}
_publish(channel, payload);
*/
reInit: function(){
_reloadData();
- }
+ },
+
+ /**
+ * Removes reference from global objects and saves it as jStorage
+ *
+ * @param {Boolean} option if needed to save object as simple "jStorage" in windows context
+ */
+ noConflict: function( saveInGlobal ) {
+ delete window.$.jStorage
+
+ if ( saveInGlobal ) {
+ window.jStorage = this;
+ }
+
+ return this;
+ }
};
// Initialize jStorage
// Get the original values of some form elements
$( '#wpTextbox1, #wpSummary' ).each( function () {
$( this ).data( 'origtext', $( this ).val() );
- });
+ } );
var savedWindowOnBeforeUnload;
$( window )
.on( 'beforeunload.editwarning', function () {
$lis
.removeClass( 'selected' )
.each( function () {
- var $li = $(this),
+ var $li = $( this ),
$inputs = $li.find( 'input[type="radio"]' ),
- $oldidRadio = $inputs.filter( '[name="oldid"]' ).eq(0),
- $diffRadio = $inputs.filter( '[name="diff"]' ).eq(0);
+ $oldidRadio = $inputs.filter( '[name="oldid"]' ).eq( 0 ),
+ $diffRadio = $inputs.filter( '[name="diff"]' ).eq( 0 );
if ( !$oldidRadio.length || !$diffRadio.length ) {
return true;
$oldidRadio.css( 'visibility', 'hidden' );
}
}
- });
+ } );
return true;
}
// Ideally we'd use e.target instead of $historySubmitter, but e.target points
// to the form element for submit actions, so.
$historyCompareForm.find( '.historysubmit' ).click( function () {
- $historySubmitter = $(this);
+ $historySubmitter = $( this );
} );
// On submit we clone the form element, remove unneeded fields in the clone
if ( $historySubmitter ) {
$copyForm = $historyCompareForm.clone();
$copyRadios = $copyForm.find( '#pagehistory > li' ).find( 'input[name="diff"], input[name="oldid"]' );
- $copyAction = $copyForm.find( '> [name="action"]');
+ $copyAction = $copyForm.find( '> [name="action"]' );
// Remove action=historysubmit and ids[..]=..
if ( $historySubmitter.hasClass( 'mw-history-compareselectedversions-button' ) ) {
// Also remove potentially conflicting id attributes that we don't need anyway
$copyForm
.css( 'display', 'none' )
- .find('[id]')
- .removeAttr('id')
+ .find( '[id]' )
+ .removeAttr( 'id' )
.end()
.insertAfter( $historyCompareForm )
.submit();
$link = $( '<a>', {
text: showText,
href: '#'
- }).click(function () {
+ } ).click( function () {
if ( $table.hasClass( 'collapsed' ) ) {
$( this ).text( hideText );
} else {
}
$table.toggleClass( 'expanded collapsed' );
return false;
- });
+ } );
$col.append( $link );
$row.append( $col );
} );
}
d.resolve( exists );
- })
+ } )
.fail( d.reject );
return d.promise( { abort: apiPromise.abort } );
apiPromise = this.get( {
list: 'allpages',
apprefix: prefix,
- apnamespace: mw.config.get('wgNamespaceIds').category
+ apnamespace: mw.config.get( 'wgNamespaceIds' ).category
} )
.done( function ( data ) {
var texts = [];
} );
}
d.resolve( texts );
- })
+ } )
.fail( d.reject );
return d.promise( { abort: apiPromise.abort } );
* Hebrew (עברית) language functions
*/
-mediaWiki.language.convertGrammar = function( word, form ) {
+mediaWiki.language.convertGrammar = function ( word, form ) {
var grammarForms = mediaWiki.language.getData( 'he', 'grammarForms' );
if ( grammarForms && grammarForms[form] ) {
return grammarForms[form][word];
background-image: url(@url);
}
+.vertical-gradient ( @startColor: gray, @endColor: white, @startPos: 0, @endPos: 100% ) {
+ background-color: @endColor;
+ background-image: -moz-linear-gradient( top, @startColor @startPos, @endColor @endPos ); // Firefox 3.6+
+ background-image: -webkit-gradient( linear, left top, left bottom, color-stop( @startPos, @startColor ), color-stop( @endPos, @endColor ) ); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient( top, @startColor @startPos, @endColor @endPos ); // Safari 5.1+, Chrome 10+
+ background-image: linear-gradient( @startColor @startPos, @endColor @endPos ); // Standard
+}
+
/* Note gzip compression means that it is okay to embed twice */
.background-image-svg(@svg, @fallback) {
background-image: url(@fallback);
-webkit-transition: @string;
transition: @string;
}
+
+@-webkit-keyframes rotate {
+ from {
+ -webkit-transform:rotate(0deg);
+ }
+ to {
+ -webkit-transform:rotate(360deg);
+ }
+}
+
+@keyframes rotate {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+.rotation(@time) {
+ -webkit-animation-name: rotate;
+ -webkit-animation-duration: @time;
+ -webkit-animation-iteration-count: infinite;
+ -webkit-animation-timing-function: linear;
+ animation-name: rotate;
+ animation-duration: @time;
+ animation-iteration-count: infinite;
+ animation-timing-function: linear;
+}
// Now on to justification.
// We may still get ragged edges if someone resizes their window. Could bind to
// that event, otoh do we really want to constantly be resizing galleries?
- $( galleries ).each( function() {
+ $( galleries ).each( function () {
var lastTop,
$img,
imgWidth,
rows = [],
$gallery = $( this );
- $gallery.children( 'li' ).each( function() {
+ $gallery.children( 'li' ).each( function () {
// Math.floor to be paranoid if things are off by 0.00000000001
- var top = Math.floor( $(this ).position().top ),
+ var top = Math.floor( $( this ).position().top ),
$this = $( this );
if ( top !== lastTop ) {
captionWidth: $this.children().children( 'div.gallerytextwrapper' ).width(),
height: imgHeight
};
- });
+ } );
- (function () {
+ ( function () {
var maxWidth,
combinedAspect,
combinedPadding,
$outerDiv.width( newWidth + padding );
$innerDiv.width( newWidth + padding );
$imageDiv.width( newWidth );
- $caption.width( curRow[j].captionWidth + (newWidth - curRow[j].imgWidth ) );
+ $caption.width( curRow[j].captionWidth + ( newWidth - curRow[j].imgWidth ) );
}
hookInfo = {
* without a page reload. Currently, the only image formats that can be multi-page images are
* PDF and DjVu files
*/
-( function (mw, $) {
+( function ( mw, $ ) {
// Initialize ajax request variable
var xhr;
} );
}
- $( document ).ready( function() {
+ $( document ).ready( function () {
// The presence of table.multipageimage signifies that this file is a multi-page image
if ( mw.config.get( 'wgNamespaceNumber' ) === 6 && $( 'table.multipageimage' ).length !== 0 ) {
ajaxifyPageNavigation();
if ( state ) {
loadPage( state.url, true );
}
- });
+ } );
}
}
} );
.mw-changeslist-line-watched .mw-title {
font-weight: bold;
}
-
-.mw-changeslist-legend {
- float: right;
- margin-left: 1em;
- margin-bottom: 0.5em;
- clear: right;
- font-size: 85%;
- line-height: 1.2em;
- padding: 0.5em;
- border: 1px solid #ddd;
-}
-
-.mw-changeslist-legend dl {
- /* Parent element defines sufficient padding */
- margin-bottom: 0;
-}
-
-.mw-changeslist-legend dt {
- float: left;
- margin-right: 0.5em;
-}
-
-.mw-changeslist-legend dd {
- margin-left: 1.5em;
- line-height: 1.3em;
-}
+++ /dev/null
-/* Remember the collapse state of the legend on recent changes and watchlist pages. */
-jQuery( document ).ready( function ( $ ) {
- var
- cookieName = 'changeslist-state',
- cookieOptions = {
- expires: 30,
- path: '/'
- },
- isCollapsed = $.cookie( cookieName ) === 'collapsed';
-
- $( '.mw-changeslist-legend' )
- .makeCollapsible( {
- collapsed: isCollapsed
- } )
- .on( 'beforeExpand.mw-collapsible', function () {
- $.cookie( cookieName, 'expanded', cookieOptions );
- } )
- .on( 'beforeCollapse.mw-collapsible', function () {
- $.cookie( cookieName, 'collapsed', cookieOptions );
- } );
-} );
--- /dev/null
+/**
+ * Styling for changes list legend
+ */
+
+.mw-changeslist-legend {
+ float: right;
+ margin-left: 1em;
+ margin-bottom: 0.5em;
+ clear: right;
+ font-size: 85%;
+ line-height: 1.2em;
+ padding: 0.5em;
+ border: 1px solid #ddd;
+}
+
+.mw-changeslist-legend dl {
+ /* Parent element defines sufficient padding */
+ margin-bottom: 0;
+}
+
+.mw-changeslist-legend dt {
+ float: left;
+ margin-right: 0.5em;
+}
+
+.mw-changeslist-legend dd {
+ margin-left: 1.5em;
+ line-height: 1.3em;
+}
--- /dev/null
+/**
+ * Script for changes list legend
+ */
+
+/* Remember the collapse state of the legend on recent changes and watchlist pages. */
+jQuery( document ).ready( function ( $ ) {
+ var
+ cookieName = 'changeslist-state',
+ cookieOptions = {
+ expires: 30,
+ path: '/'
+ },
+ isCollapsed = $.cookie( cookieName ) === 'collapsed';
+
+ $( '.mw-changeslist-legend' )
+ .makeCollapsible( {
+ collapsed: isCollapsed
+ } )
+ .on( 'beforeExpand.mw-collapsible', function () {
+ $.cookie( cookieName, 'expanded', cookieOptions );
+ } )
+ .on( 'beforeCollapse.mw-collapsible', function () {
+ $.cookie( cookieName, 'collapsed', cookieOptions );
+ } );
+} );
// Bind onchange event handler and append to form
$html.append(
$( select ).change( function () {
- window.location = QUnit.url( { useskin: $(this).val() } );
+ window.location = QUnit.url( { useskin: $( this ).val() } );
} )
);
};
$( '#prefsubmit' ).attr( 'id', 'prefcontrol' );
- $preftoc = $('<ul id="preftoc"></ul>')
+ $preftoc = $( '<ul id="preftoc"></ul>' )
.attr( 'role', 'tablist' );
$preferences = $( '#preferences' )
.addClass( 'jsprefs' )
$( '<div>' ).addClass( 'mw-navigation-hint' )
.text( mediaWiki.msg( 'prefs-tabs-navigation-hint' ) )
.attr( 'tabIndex', 0 )
- .on( 'focus blur', function( e ) {
+ .on( 'focus blur', function ( e ) {
if ( e.type === 'blur' || e.type === 'focusout' ) {
$( this ).css( 'height', '0' );
} else {
// Populate the prefToc
$legends.each( function ( i, legend ) {
- var $legend = $(legend),
+ var $legend = $( legend ),
ident, $li, $a;
if ( i === 0 ) {
$legend.parent().show();
} );
// Enable keyboard users to use left and right keys to switch tabs
- $preftoc.on( 'keydown', function( event ) {
+ $preftoc.on( 'keydown', function ( event ) {
var keyLeft = 37,
keyRight = 39,
$el;
- if( event.keyCode === keyLeft ) {
+ if ( event.keyCode === keyLeft ) {
$el = $( '#preftoc li.selected' ).prev().find( 'a' );
} else if ( event.keyCode === keyRight ) {
$el = $( '#preftoc li.selected' ).next().find( 'a' );
if ( 'onhashchange' in window &&
( document.documentMode === undefined || document.documentMode >= 8 )
) {
- $(window).on( 'hashchange' , function () {
+ $( window ).on( 'hashchange' , function () {
var hash = window.location.hash;
if ( hash.match( /^#mw-prefsection-[\w\-]+/ ) ) {
switchPrefTab( hash.replace( '#mw-prefsection-', '' ) );
} else if ( hash === '' ) {
switchPrefTab( 'personal', 'noHash' );
}
- });
+ } );
// In older browsers we'll bind a click handler as fallback.
// We must not have onhashchange *and* the click handlers, other wise
// the click handler calls switchPrefTab() which sets the hash value,
$preftoc.on( 'click', 'li a', function ( e ) {
switchPrefTab( $( this ).attr( 'href' ).replace( '#mw-prefsection-', '' ) );
e.preventDefault();
- });
+ } );
}
/**
while ( localTime >= 1440 ) {
localTime -= 1440;
}
- $localtimeHolder.text( minutesToHours( localTime ) );
+ $localtimeHolder.text( mediaWiki.language.convertNumber( minutesToHours( localTime ) ) );
}
if ( $tzSelect.length && $tzTextbox.length ) {
}
// Create check all/none button
- $checkboxes = $('#powersearch input[id^=mw-search-ns]');
- $('#mw-search-togglebox').append(
- $('<label>')
- .text(mw.msg('powersearch-togglelabel'))
+ $checkboxes = $( '#powersearch input[id^=mw-search-ns]' );
+ $( '#mw-search-togglebox' ).append(
+ $( '<label>' )
+ .text( mw.msg( 'powersearch-togglelabel' ) )
).append(
- $('<input type="button" />')
+ $( '<input type="button" />' )
.attr( 'id', 'mw-search-toggleall' )
- .prop( 'value', mw.msg('powersearch-toggleall' ) )
+ .prop( 'value', mw.msg( 'powersearch-toggleall' ) )
.click( function () {
- $checkboxes.prop('checked', true);
+ $checkboxes.prop( 'checked', true );
} )
).append(
- $('<input type="button" />')
+ $( '<input type="button" />' )
.attr( 'id', 'mw-search-togglenone' )
- .prop( 'value', mw.msg('powersearch-togglenone' ) )
- .click( function() {
+ .prop( 'value', mw.msg( 'powersearch-togglenone' ) )
+ .click( function () {
$checkboxes.prop( 'checked', false );
} )
);
// Change the header search links to what user entered
$headerLinks = $( '.search-types a' );
$( '#searchText, #powerSearchText' ).change( function () {
- var searchterm = $(this).val();
+ var searchterm = $( this ).val();
$headerLinks.each( function () {
- var parts = $(this).attr('href').split( 'search=' ),
+ var parts = $( this ).attr( 'href' ).split( 'search=' ),
lastpart = '',
prefix = 'search=';
- if ( parts.length > 1 && parts[1].indexOf('&') >= 0 ) {
- lastpart = parts[1].substring( parts[1].indexOf('&') );
+ if ( parts.length > 1 && parts[1].indexOf( '&' ) >= 0 ) {
+ lastpart = parts[1].substring( parts[1].indexOf( '&' ) );
} else {
prefix = '&search=';
}
this.href = parts[0] + prefix + encodeURIComponent( searchterm ) + lastpart;
- });
- }).trigger( 'change' );
+ } );
+ } ).trigger( 'change' );
} );
thumb.find( '.filename' ).text( file.name ).end()
.find( '.fileinfo' ).text( prettySize( file.size ) ).end();
- $canvas = $('<canvas width="' + previewSize + '" height="' + previewSize + '" ></canvas>');
+ $canvas = $( '<canvas width="' + previewSize + '" height="' + previewSize + '" ></canvas>' );
ctx = $canvas[0].getContext( '2d' );
$( '#mw-htmlform-source' ).parent().prepend( thumb );
width = img.width / img.height * previewSize;
}
// Determine the offset required to center the image
- dx = (180 - width) / 2;
- dy = (180 - height) / 2;
+ dx = ( 180 - width ) / 2;
+ dy = ( 180 - height ) / 2;
switch ( rotation ) {
// If a rotation is applied, the direction of the axis
// changes as well. You can derive the values below by
ctx.clearRect( 0, 0, 180, 180 );
ctx.rotate( rotation / 180 * Math.PI );
ctx.drawImage( img, x, y, width, height );
- thumb.find('.mw-small-spinner').replaceWith($canvas);
+ thumb.find( '.mw-small-spinner' ).replaceWith( $canvas );
// Image size
info = mw.msg( 'widthheight', logicalWidth, logicalHeight ) +
if ( callbackBinary && 'readAsBinaryString' in reader ) {
// To fetch JPEG metadata we need a binary string; start there.
// todo:
- reader.onload = function() {
+ reader.onload = function () {
callbackBinary( reader.result );
// Now run back through the regular code path.
// readAsArrayBuffer replaces readAsBinaryString
// However, our JPEG metadata library wants a string.
// So, this is going to be an ugly conversion.
- reader.onload = function() {
+ reader.onload = function () {
var i,
buffer = new Uint8Array( reader.result ),
string = '';
}
for ( i = $rows.length; i; i-- ) {
- $row = $rows.eq(i - 1);
+ $row = $rows.eq( i - 1 );
$row
.find( 'input[name="wpSourceType"]' )
.change( createHandler( $row ) );
+@import "mediawiki.mixins";
@import "../../settings/typography";
@import "../../mixins/effects";
// Buttons
//
+// All buttons start with mw-ui-button class, modified by other classes.
+// It can be any element. Due to a lack of a CSS reset, the exact styling of
+// the button depends on what type of element is used.
+// There are two kinds of buttons, the default is a "Call to Action" with an obvious border
+// and there is a quiet kind without a border.
+//
// Styleguide 2.
@buttonBorderRadius: 3px;
+@transitionDuration: .1s;
+@transitionFunction: ease-in-out;
-// Button styling
-//
-// Basic button styling to be used on desktop skins. Can be any element.
-// Due to a lack of a CSS reset, the exact styling of the button depends on what type of element is used.
+// Neutral button styling
//
// Markup:
-// <div class="mw-ui-button">button.mw-ui-button</div>
+// <button class="mw-ui-button">.mw-ui-button</button>
+// <button class="mw-ui-button" disabled>.mw-ui-button</button>
//
// Styleguide 2.1.
.mw-ui-button {
// Container layout
display: inline-block;
- padding: 0.4em 1em 0.4em 1em;
+ padding: .5em 1em;
margin: 0;
// IE6/IE7 hack
zoom: 1;
// Container styling
- .buttonColors();
+ .button-colors(@colorWhite);
border-radius: @buttonBorderRadius;
// Ensure that buttons and inputs are nicely aligned when they have differing heights
// Content styling
text-align: center;
- text-decoration: none;
-
font-weight: bold;
+ white-space: nowrap;
+ text-shadow: 0 1px rgba(0, 0, 0, .1);
// Interaction styling
cursor: pointer;
- &:disabled,
- &.mw-ui-disabled {
+ &:disabled {
+ text-shadow: none;
cursor: default;
}
+ .transition(background @transitionDuration @transitionFunction, color @transitionDuration @transitionFunction, box-shadow @transitionDuration @transitionFunction;);
+
// Styling for specific button types
// -----------------------------------------
+
+ // Big buttons
+ //
+ // Not all buttons are equal. You can emphasise certain actions over others
+ // using the mw-ui-big class.
+ //
+ // Markup:
+ // <button class="mw-ui-button mw-ui-big">.mw-ui-button</button>
+ // <button class="mw-ui-button mw-ui-progressive mw-ui-big">.mw-ui-progressive</button>
+ // <button class="mw-ui-button mw-ui-constructive mw-ui-big">.mw-ui-constructive</button>
+ // <button class="mw-ui-button mw-ui-destructive mw-ui-big">.mw-ui-destructive</button>
+ //
+ // Styleguide 2.1.6.
&.mw-ui-big {
font-size: @baseFontSize * 1.3;
}
+ // Block buttons
+ //
+ // Some buttons might need to be stacked.
+ //
+ // Markup:
+ // <button class="mw-ui-button mw-ui-block">.mw-ui-button</button>
+ // <button class="mw-ui-button mw-ui-progressive mw-ui-block">.mw-ui-progressive</button>
+ // <button class="mw-ui-button mw-ui-constructive mw-ui-block">.mw-ui-constructive</button>
+ // <button class="mw-ui-button mw-ui-destructive mw-ui-block">.mw-ui-destructive</button>
+ //
+ // Styleguide 2.1.5.
&.mw-ui-block {
display: block;
width: 100%;
}
- // Primary buttons
+ // Progressive buttons
//
- // Do not use the mw-ui-primary class use mw-ui-constructive instead. For blue buttons
- // use mw-ui-progressive (coming soon)
+ // Use progressive buttons for actions which lead to a next step in the process.
+ // .mw-ui-primary is deprecated, kept for compatibility.
//
// Markup:
- // <button class="mw-ui-button mw-ui-primary">mw-ui-primary</button>
+ // <button class="mw-ui-button mw-ui-progressive">.mw-ui-progressive</button>
+ // <button class="mw-ui-button mw-ui-progressive" disabled>.mw-ui-progressive</button>
//
// Styleguide 2.1.1.
+ &.mw-ui-progressive,
&.mw-ui-primary {
- .buttonColors(@agoraBlue);
+ .button-colors(@colorProgressive);
+
+ &.mw-ui-quiet {
+ .button-colors-quiet(@colorProgressive);
+ }
}
// Constructive buttons
// e.g. save changes button
//
// Markup:
- // <button class="mw-ui-button mw-ui-constructive">mw-ui-constructive</button>
+ // <button class="mw-ui-button mw-ui-constructive">.mw-ui-constructive</button>
+ // <button class="mw-ui-button mw-ui-constructive" disabled>.mw-ui-constructive</button>
//
// Styleguide 2.1.2.
&.mw-ui-constructive {
- .buttonColors(@agoraGreen);
+ .button-colors(@colorConstructive);
+
+ &.mw-ui-quiet {
+ .button-colors-quiet(@colorConstructive);
+ }
}
// Destructive buttons
// This should not be used for cancel buttons.
//
// Markup:
- // <button class="mw-ui-button mw-ui-destructive">mw-ui-destructive</button>
+ // <button class="mw-ui-button mw-ui-destructive">.mw-ui-destructive</button>
+ // <button class="mw-ui-button mw-ui-destructive" disabled>.mw-ui-destructive</button>
//
// Styleguide 2.1.3.
&.mw-ui-destructive {
- .buttonColors(@agoraRed);
+ .button-colors(@colorDestructive);
+
+ &.mw-ui-quiet {
+ .button-colors-quiet(@colorDestructive);
+ }
+ }
+
+ // Quiet buttons
+ //
+ // Use quiet buttons when they are less important and alongisde other progressive/destructive/progressive buttons.
+ //
+ // Markup:
+ // <button class="mw-ui-button mw-ui-quiet">.mw-ui-button</button>
+ // <button class="mw-ui-button mw-ui-constructive mw-ui-quiet">.mw-ui-constructive</button>
+ // <button class="mw-ui-button mw-ui-constructive mw-ui-quiet" disabled>.mw-ui-constructive</button>
+ // <button class="mw-ui-button mw-ui-destructive mw-ui-quiet">.mw-ui-destructive</button>
+ // <button class="mw-ui-button mw-ui-destructive mw-ui-quiet" disabled>.mw-ui-destructive</button>
+ // <button class="mw-ui-button mw-ui-progressive mw-ui-quiet">.mw-ui-progressive</button>
+ // <button class="mw-ui-button mw-ui-progressive mw-ui-quiet" disabled>.mw-ui-progressive</button>
+ //
+ // Styleguide 2.1.4.
+ &.mw-ui-quiet {
+ background: transparent;
+ border: none;
+ text-shadow: none;
+ .button-colors-quiet(@colorGrayDark);
+
+ &:hover,
+ &:focus {
+ box-shadow: none;
+ }
+
+ &:active,
+ &:disabled {
+ background: transparent;
+ }
}
}
-// This overrides an underline declaration on a:hover and a:focus in commonElements.css, which the
-// class alone isn't specific enough to do
a.mw-ui-button {
text-decoration: none;
+
+ // This overrides an underline declaration on a:hover and a:focus in
+ // commonElements.css, which the class alone isn't specific enough to do.
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
}
// Button groups
-/* Mixins for visual effects in CSS3 */
-
@import "../settings/colors";
-
-// ----------------------------------------------------------------------------
-// Gradients
-// ----------------------------------------------------------------------------
-.vertical-gradient(@startColor: lighten(@agoraGray, 95%), @endColor: @agoraGray, @startPos: 0, @endPos: 100%) {
- background-color: @endColor;
- background-image: -moz-linear-gradient( top, @startColor @startPos, @endColor @endPos ); // Firefox 3.6+
- background-image: -webkit-gradient( linear, left top, left bottom, color-stop( @startPos, @startColor ), color-stop( @endPos, @endColor ) ); // Safari 4+, Chrome 2+
- background-image: -webkit-linear-gradient( top, @startColor @startPos, @endColor @endPos ); // Safari 5.1+, Chrome 10+
- background-image: linear-gradient( @startColor @startPos, @endColor @endPos ); // Standard
-}
-
// ----------------------------------------------------------------------------
// Button styling
// ----------------------------------------------------------------------------
-.buttonColors(@baseColor: @agoraGray) {
- // Background color
- .vertical-gradient(lighten(@baseColor, 7.5%), @baseColor);
-
- border: 1px solid darken(@baseColor, 2%);
+.button-colors(@bgColor) {
+ background: @bgColor;
&:hover,
- &.mw-ui-hover {
- .vertical-gradient(lighten(@baseColor, 12.5%), lighten(@baseColor, 7.5%));
- text-decoration: none;
+ &:focus {
+ // The inner bottom bevel should match the active background color.
+ box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
+ outline: none;
+ // remove outline in Firefox
+ &::-moz-focus-inner {
+ border-color: transparent;
+ }
}
- &:active,
- &.mw-ui-active {
- background-image: none;
- background-color: darken(@baseColor, 3%);
+ &:active {
+ // lessphp doesn't implement shade (https://github.com/leafo/lessphp/issues/528);
+ // it passes it through, then ResourceLoader drops it.
+ // background: shade(@bgColor, 20%);
+ background: mix(#000, @bgColor, 20%);
+ box-shadow: none;
}
+}
+
+.button-colors(@bgColor) when (lightness(@bgColor) >= 70%) {
+ color: @colorGrayDark;
+ border: 1px solid @colorGrayLight;
+
+ &:disabled {
+ color: @colorGrayLight;
- &:disabled,
- &.mw-ui-disabled {
- background-image: none;
- background-color: @baseColor;
- opacity: 0.5;
+ // make sure disabled buttons don't have hover and active states
+ &:hover,
+ &:active {
+ background: @bgColor;
+ box-shadow: none;
+ }
}
}
-.buttonColors(@baseColor: @agoraGray) when (lightness(@baseColor) >= 50%) {
- color: #000;
+.button-colors(@bgColor) when (lightness(@bgColor) < 70%) {
+ color: @colorWhite;
+ border: none;
+
+ &:disabled {
+ background: @colorGrayLight;
+
+ // make sure disabled buttons don't have hover and active states
+ &:hover,
+ &:active {
+ box-shadow: none;
+ }
+ }
}
-.buttonColors(@baseColor: @agoraGray) when (lightness(@baseColor) < 50%) {
- color: #fff;
+.button-colors-quiet(@textColor) {
+ // Quiet buttons all start gray, and reveal
+ // constructive/progressive/destructive color on hover and active.
+ color: @colorGrayDark;
+
+ &:hover,
+ &:focus {
+ // lessphp doesn't implement tint, see above
+ // color: tint(@textColor, 20%);
+ color: mix(#fff, @textColor, 20%);
+ }
+
+ &:active {
+ // lessphp doesn't implement shade, see above
+ // color: shade(@textColor, 20%);
+ color: mix(#000, @textColor, 20%);
+ }
+
+ &:disabled {
+ color: @colorGrayLight;
+ }
}
// For Vector, that should be layered on top with vector-type
.agora-field-styling() {
- border: 1px solid @agoraGray;
+ border: 1px solid @colorGrayLight;
&:focus {
// Styling focus of native checkboxes etc on Mac is almost impossible.
outline: 0; // Removes OS field focus
}
- box-shadow: @agoraBlueShadow 0px 0px 5px;
+ box-shadow: @colorProgressiveShadow 0px 0px 5px;
- border-color: @agoraBlueShadow;
+ border-color: @colorProgressiveShadow;
}
- color: @agoraTextColor;
+ color: @colorText;
padding: 0.35em 0.5em 0.35em 0.5em;
// Ensure that buttons and inputs are nicely aligned when they have differing heights
.agora-label-styling() {
//font-weight: bold;
font-size: 0.9em;
- color: darken(@agoraGray, 50%);
+ color: darken(@colorGrayLight, 50%);
* {
font-weight: normal;
height: auto;
margin: 0 0.1em 0em 0;
padding: 0;
- border: 1px solid @agoraGray;
+ border: 1px solid @colorGrayLight;
cursor: pointer;
}
}
-// Grays
-// -----------------------------------------
-@agoraGray: #c9c9c9;
-@agoraTextColor: #252525;
-
-// Blues
-// -----------------------------------------
-@agoraBlue: #3366bb;
-@agoraBlueShadow: #4091ed;
-
-// Greens
-// -----------------------------------------
-@agoraGreen: #27aa65;
-
-// Reds
-// -----------------------------------------
-@agoraRed: #cc0000;
+@colorWhite: #fff;
+@colorGrayLight: #ccc;
+@colorGrayDark: #898989;
+@colorText: #252525;
+@colorProgressive: #347bff;
+// FIXME: remove @colorProgressiveShadow (shadows should be generated
+// in LESS by dimming the original colors)
+@colorProgressiveShadow: #4091ed;
+@colorConstructive: #00af89;
+@colorDestructive: #d11d13;
@baseFontSize: 1em;
@baseLineHeight: 1.4 * @baseFontSize;
-@baseFontColor: @agoraTextColor;
+@baseFontColor: @colorText;
@smallFontSize: 0.75em;
/**
* Example to declare existing titles:
- * Title.exist.set(['User:John_Doe', ...]);
+ * Title.exist.set( ['User:John_Doe', ...] );
* Eample to declare titles nonexistent:
- * Title.exist.set(['File:Foo_bar.jpg', ...], false);
+ * Title.exist.set( ['File:Foo_bar.jpg', ...], false );
*
* @static
* @property exist.set
*/
Uri.encode = function ( s ) {
return encodeURIComponent( s )
- .replace( /!/g, '%21').replace( /'/g, '%27').replace( /\(/g, '%28')
- .replace( /\)/g, '%29').replace( /\*/g, '%2A')
+ .replace( /!/g, '%21' ).replace( /'/g, '%27' ).replace( /\(/g, '%28' )
+ .replace( /\)/g, '%29' ).replace( /\*/g, '%2A' )
.replace( /%20/g, '+' );
};
*/
switchPane: function ( e ) {
var currentPaneId = debug.$container.data( 'currentPane' ),
- requestedPaneId = $(this).prop( 'id' ).substr( 9 ),
+ requestedPaneId = $( this ).prop( 'id' ).substr( 9 ),
$currentPane = $( '#mw-debug-pane-' + currentPaneId ),
$requestedPane = $( '#mw-debug-pane-' + requestedPaneId ),
hovDone = false;
// Skip hash fragment handling. Prevents screen from jumping.
e.preventDefault();
- $( this ).addClass( 'current ');
- $( '.mw-debug-panelink' ).not( this ).removeClass( 'current ');
+ $( this ).addClass( 'current ' );
+ $( '.mw-debug-panelink' ).not( this ).removeClass( 'current ' );
// Hide the current pane
if ( requestedPaneId === currentPaneId ) {
* @return {jQuery}
*/
function bitDiv( id ) {
- return $( '<div>' ).prop({
+ return $( '<div>' ).prop( {
id: 'mw-debug-' + id,
className: 'mw-debug-bit'
- })
+ } )
.appendTo( $bits );
}
*/
function paneLabel( id, text ) {
return $( '<a>' )
- .prop({
+ .prop( {
className: 'mw-debug-panelabel',
href: '#mw-debug-pane-' + id
- })
+ } )
.text( text );
}
if ( count ) {
text = text + ' (' + count + ')';
}
- return $( '<div>' ).prop({
+ return $( '<div>' ).prop( {
id: 'mw-debug-' + id,
className: 'mw-debug-bit mw-debug-panelink'
- })
+ } )
.append( paneLabel( id, text ) )
.appendTo( $bits );
}
}
$( '<div>' )
- .prop({
+ .prop( {
className: 'mw-debug-pane',
id: 'mw-debug-pane-' + id
- })
+ } )
.append( panes[id] )
.appendTo( $container );
}
$( '<div style="margin-top: 1em;"></div>' ).append(
mw.msg( 'feedback-subject' ),
$( '<br>' ),
- $( '<input type="text" class="feedback-subject" name="subject" maxlength="60" style="width: 99%;"/>' )
+ $( '<input type="text" class="feedback-subject" name="subject" maxlength="60" style="width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;"/>' )
),
$( '<div style="margin-top: 0.4em;"></div>' ).append(
mw.msg( 'feedback-message' ),
$( '<br>' ),
- $( '<textarea name="message" class="feedback-message" style="width: 99%;" rows="5" cols="60"></textarea>' )
+ $( '<textarea name="message" class="feedback-message" rows="5" cols="60"></textarea>' )
)
),
$( '<div class="feedback-mode feedback-bugs"></div>' ).append(
*/
$.fn.goIn = function ( instantToggle ) {
if ( instantToggle === true ) {
- return $(this).show();
+ return $( this ).show();
}
- return $(this).stop( true, true ).fadeIn();
+ return $( this ).stop( true, true ).fadeIn();
};
/**
*/
$.fn.goOut = function ( instantToggle ) {
if ( instantToggle === true ) {
- return $(this).hide();
+ return $( this ).hide();
}
- return $(this).stop( true, true ).fadeOut();
+ return $( this ).stop( true, true ).fadeOut();
};
/**
* @param {Function} callback Takes one parameter, which is {true} when the
* event is called immediately, and {jQuery.Event} when triggered from an event.
*/
- $.fn.liveAndTestAtStart = function ( callback ){
- $(this)
+ $.fn.liveAndTestAtStart = function ( callback ) {
+ $( this )
.live( 'change', callback )
.each( function () {
callback.call( this, true );
// Animate the SelectOrOther fields, to only show the text field when
// 'other' is selected.
$( '.mw-htmlform-select-or-other' ).liveAndTestAtStart( function ( instant ) {
- var $other = $( '#' + $(this).attr( 'id' ) + '-other' );
+ var $other = $( '#' + $( this ).attr( 'id' ) + '-other' );
$other = $other.add( $other.siblings( 'br' ) );
- if ( $(this).val() === 'other' ) {
+ if ( $( this ).val() === 'other' ) {
$other.goIn( instant );
} else {
$other.goOut( instant );
}
- });
+ } );
} );
'class': 'htmlform-chzn-select mw-input ' + oldClass
} );
$oldContainer.find( 'input' ).each( function () {
- var $oldInput = $(this),
+ var $oldInput = $( this ),
checked = $oldInput.prop( 'checked' ),
$option = $( '<option>' );
$option.prop( 'value', $oldInput.prop( 'value' ) );
// try to invoke it.
console.table.call( console, data );
return;
- } catch (e) {}
+ } catch ( e ) {}
try {
console.log( $.toJSON( data, null, 2 ) );
return;
- } catch (e) {}
+ } catch ( e ) {}
mw.log( data );
},
try {
css = module.style.css.join();
- } catch (e) { return; } // skip
+ } catch ( e ) { return; } // skip
stats = inspect.auditSelectors( css );
modules.push( {
try {
raw = localStorage.getItem( mw.loader.store.getStoreKey() );
stats.totalSize = humanSize( $.byteLength( raw ) );
- } catch (e) {}
+ } catch ( e ) {}
}
return [stats];
}
/**
* N.B. replacements are variadic arguments or an array in second parameter. In other words:
- * somefunction(a, b, c, d)
+ * somefunction( a, b, c, d )
* is equivalent to
- * somefunction(a, [b, c, d])
+ * somefunction( a, [b, c, d] )
*
* @param {string} key Message key.
* @param {Array|mixed} replacements Optional variable replacements (variadically or an array).
* the current selector. Bindings to passed-in jquery elements are preserved. Functions become click handlers for [$1 linktext] links.
* e.g.
* $.fn.msg = mediaWiki.parser.getJqueryPlugin( options );
- * var userlink = $( '<a>' ).click( function () { alert( "hello!!") } );
+ * var userlink = $( '<a>' ).click( function () { alert( "hello!!" ) } );
* $( 'p#headline' ).msg( 'hello-user', userlink );
*
* @param {Array} parser options
var failableParserFn = getFailableParserFn( options );
/**
* N.B. replacements are variadic arguments or an array in second parameter. In other words:
- * somefunction(a, b, c, d)
+ * somefunction( a, b, c, d )
* is equivalent to
- * somefunction(a, [b, c, d])
+ * somefunction( a, [b, c, d] )
*
* We append to 'this', which in a jQuery plugin context will be the selected elements.
* @param {string} key Message key.
// This may be because, to save code, memoization was removed
regularLiteral = makeRegexParser( /^[^{}\[\]$<\\]/ );
- regularLiteralWithoutBar = makeRegexParser(/^[^{}\[\]$\\|]/);
- regularLiteralWithoutSpace = makeRegexParser(/^[^{}\[\]$\s]/);
+ regularLiteralWithoutBar = makeRegexParser( /^[^{}\[\]$\\|]/ );
+ regularLiteralWithoutSpace = makeRegexParser( /^[^{}\[\]$\s]/ );
regularLiteralWithSquareBrackets = makeRegexParser( /^[^{}$\\]/ );
backslash = makeStringParser( '\\' );
// Used to define "literals" without spaces, in space-delimited situations
function literalWithoutSpace() {
var result = nOrMore( 1, escapedOrLiteralWithoutSpace )();
- return result === null ? null : result.join('');
+ return result === null ? null : result.join( '' );
}
// Used to define "literals" within template parameters. The pipe character is the parameter delimeter, so by default
// it is not a literal in the parameter
function literalWithoutBar() {
var result = nOrMore( 1, escapedOrLiteralWithoutBar )();
- return result === null ? null : result.join('');
+ return result === null ? null : result.join( '' );
}
// Used for wikilink page names. Like literalWithoutBar, but
// without allowing escapes.
function unescapedLiteralWithoutBar() {
var result = nOrMore( 1, regularLiteralWithoutBar )();
- return result === null ? null : result.join('');
+ return result === null ? null : result.join( '' );
}
function literal() {
var result = nOrMore( 1, escapedOrRegularLiteral )();
- return result === null ? null : result.join('');
+ return result === null ? null : result.join( '' );
}
function curlyBraceTransformExpressionLiteral() {
var result = nOrMore( 1, regularLiteralWithSquareBrackets )();
- return result === null ? null : result.join('');
+ return result === null ? null : result.join( '' );
}
asciiAlphabetLiteral = makeRegexParser( /[A-Za-z]+/ );
whitespace,
asciiAlphabetLiteral,
htmlAttributeEquals,
- choice( [
+ choice( [
doubleQuotedHtmlAttributeValue,
singleQuotedHtmlAttributeValue
] )
endTagName = parsedCloseTagResult[1];
wrappedAttributes = parsedOpenTagResult[2];
attributes = wrappedAttributes.slice( 1 );
- if ( isAllowedHtml( startTagName, endTagName, attributes) ) {
+ if ( isAllowedHtml( startTagName, endTagName, attributes ) ) {
result = [ 'HTMLELEMENT', startTagName, wrappedAttributes ].concat( parsedHtmlContents );
} else {
// HTML is not allowed, so contents will remain how
] );
return result === null ? null : [ result[0], result[2] ];
}
- colon = makeStringParser(':');
+ colon = makeStringParser( ':' );
templateContents = choice( [
function () {
var res = sequence( [
return [ res[0] ].concat( res[1] );
}
] );
- openTemplate = makeStringParser('{{');
- closeTemplate = makeStringParser('}}');
+ openTemplate = makeStringParser( '{{' );
+ closeTemplate = makeStringParser( '}}' );
nonWhitespaceExpression = choice( [
template,
wikilink,
* Transform parsed structure into external link
* If the href is a jQuery object, treat it as "enclosing" the link text.
* ... function, treat it as the click handler
- * ... string, treat it as a URI
+ * ... string, treat it as a URI
* TODO: throw an error if nodes.length > 2 ?
* @param {Array} of two elements, {jQuery|Function|String} and {String}
* @return {jQuery}
extlinkparam: function ( nodes, replacements ) {
var replacement,
index = parseInt( nodes[0], 10 );
- if ( index < replacements.length) {
+ if ( index < replacements.length ) {
replacement = replacements[index];
} else {
replacement = '$' + ( index + 1 );
plural: function ( nodes ) {
var forms, count;
count = parseFloat( this.language.convertNumber( nodes[0], true ) );
- forms = nodes.slice(1);
+ forms = nodes.slice( 1 );
return forms.length ? this.language.convertPlural( count, forms ) : '';
},
// Caching is somewhat problematic, because we do need different message functions for different maps, so
// we'd have to cache the parser as a member of this.map, which sounds a bit ugly.
// Do not use mw.jqueryMsg unless required
- if ( this.format === 'plain' || !/\{\{|[\[<>]/.test(this.map.get( this.key ) ) ) {
+ if ( this.format === 'plain' || !/\{\{|[\[<>]/.test( this.map.get( this.key ) ) ) {
// Fall back to mw.msg's simple parser
return oldParser.apply( this );
}
mw.loader.work();
}
- function sortQuery(o) {
+ function sortQuery( o ) {
var sorted = {}, key, a = [];
for ( key in o ) {
if ( hasOwn.call( o, key ) ) {
// Cache hit stats
stats: { hits: 0, misses: 0, expired: 0 },
- // Experiment data
- experiment: ( function () {
- var start = ( new Date() ).getTime(), id = 0, seed = 0;
-
- try {
- id = JSON.parse( localStorage.getItem( 'moduleStorageExperiment2' ) );
- if ( typeof id !== 'number' ) {
- id = Math.floor( Math.random() * Math.random() * 1e16 );
- localStorage.setItem( 'moduleStorageExperiment2', id );
- }
- seed = id % 2000;
- } catch ( e ) {}
-
- return {
- // Unique identifier for this browser. This allows us to group all
- // datapoints generated by a particular browser, which in turn allows us
- // to see how the initial load compares to subsequent page loads.
- id: id,
-
- // Group assignment may be 0 (not in experiment), 1 (control group), or 2
- // (experimental group). Browsers that don't implement all the prerequisite APIs
- // (JSON and Web Storage) are ineligible. Eligible browsers have a 0.1% chance
- // of being included in the experiment, in which case they are equally likely to
- // be assigned to either the experimental or control group.
- group: seed === 1 ? 1 : ( seed === 2 ? 2 : 0 ),
-
- // Assess module storage performance by measuring the time between this
- // reference point and the window load event.
- start: start
- };
- }() ),
-
/**
* Construct a JSON-serializable object representing the content of the store.
* @return {Object} Module store contents.
mw.config.get( 'skin' ),
mw.config.get( 'wgResourceLoaderStorageVersion' ),
mw.config.get( 'wgUserLanguage' )
- ].join(':');
+ ].join( ':' );
},
/**
return;
}
- if ( ( !mw.config.get( 'wgResourceLoaderStorageEnabled' ) && mw.loader.store.experiment.group !== 2 )
- || mw.config.get( 'debug' ) ) {
+ if ( !mw.config.get( 'wgResourceLoaderStorageEnabled' ) || mw.config.get( 'debug' ) ) {
// Disabled by configuration, or because debug mode is set
mw.loader.store.enabled = false;
return;
mw.loader.store.items = data.items;
return;
}
- } catch (e) {}
+ } catch ( e ) {}
if ( raw === undefined ) {
// localStorage failed; disable store
return;
}
- mw.loader.store.items[key] = 'mw.loader.implement(' + args.join(',') + ');';
+ mw.loader.store.items[key] = 'mw.loader.implement(' + args.join( ',' ) + ');';
mw.loader.store.update();
},
$form = context.config.$region.closest( 'form' );
formAction = $form.attr( 'action' );
- baseHref = formAction + ( formAction.match(/\?/) ? '&' : '?' );
+ baseHref = formAction + ( formAction.match( /\?/ ) ? '&' : '?' );
linkParams = {};
$.each( $form.serializeArray(), function ( idx, obj ) {
// Generic selector for skins with multiple searchboxes (used by CologneBlue)
'.mw-searchInput'
];
- $( searchboxesSelectors.join(', ') )
+ $( searchboxesSelectors.join( ', ' ) )
.suggestions( {
fetch: function ( query ) {
var $el;
} )();
// Table of contents toggle
- mw.hook( 'wikipage.content' ).add( function () {
+ mw.hook( 'wikipage.content' ).add( function ( $content ) {
var $tocTitle, $tocToggleLink, hideTocCookie;
- $tocTitle = $( '#toctitle' );
- $tocToggleLink = $( '#togglelink' );
+ $tocTitle = $content.find( '#toctitle' );
+ $tocToggleLink = $content.find( '#togglelink' );
// Only add it if there is a TOC and there is no toggle added already
- if ( $( '#toc' ).length && $tocTitle.length && !$tocToggleLink.length ) {
+ if ( $content.find( '#toc' ).length && $tocTitle.length && !$tocToggleLink.length ) {
hideTocCookie = $.cookie( 'mw_hidetoc' );
$tocToggleLink = $( '<a href="#" class="internal" id="togglelink"></a>' )
.text( mw.msg( 'hidetoc' ) )
.click( function ( e ) {
e.preventDefault();
- util.toggleToc( $(this) );
+ util.toggleToc( $( this ) );
} );
$tocTitle.append(
$tocToggleLink
* This function returns the styleSheet object for convience (due to cross-browsers
* difference as to where it is located).
*
- * var sheet = mw.util.addCSS('.foobar { display: none; }');
- * $(foo).click(function () {
+ * var sheet = mw.util.addCSS( '.foobar { display: none; }' );
+ * $( foo ).click( function () {
* // Toggle the sheet on and off
* sheet.disabled = !sheet.disabled;
- * });
+ * } );
*
* @param {string} text CSS to be appended
* @return {CSSStyleSheet} Use .ownerNode to get to the `<style>` element.
// the ABNF:
// 1 * ( atext / "." ) "@" ldh-str 1*( "." ldh-str )
// With:
- // - atext : defined in RFC 5322 section 3.2.3
+ // - atext : defined in RFC 5322 section 3.2.3
// - ldh-str : defined in RFC 1034 section 3.5
//
// (see STD 68 / RFC 5234 http://tools.ietf.org/html/std68)
// RegExp is case insensitive
'i'
);
- return (null !== mailtxt.match( html5EmailRegexp ) );
+ return ( null !== mailtxt.match( html5EmailRegexp ) );
},
/**
--- /dev/null
+*/
+!cologneblue/
+!cologneblue/*
+!common/
+!common/*
+!modern/
+!modern/*
+!monobook/
+!monobook/*
+!vector/
+!vector/*
+
+*.php
+!CologneBlue.php
+!Modern.php
+!MonoBook.php
+!Vector.php
);
$personalUrls = $this->getPersonalTools();
- foreach ( array( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
+ foreach ( array( 'logout', 'createaccount', 'login' ) as $key ) {
if ( $personalUrls[$key] ) {
$s[] = $this->makeListItem( $key, $personalUrls[$key], array( 'tag' => 'span' ) );
}
// Personal tools ("My pages")
$qbmyoptions = $this->getPersonalTools();
- foreach ( array( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
+ foreach ( array( 'logout', 'createaccount', 'login', ) as $key ) {
$qbmyoptions[$key] = null;
}
parent::setupSkinUserCss( $out );
$styles = array( 'skins.common.interface', 'skins.vector.styles' );
- wfRunHooks( 'SkinVectorStyleModules', array( &$this, &$styles ) );
+ wfRunHooks( 'SkinVectorStyleModules', array( $this, &$styles ) );
$out->addModuleStyles( $styles );
}
textarea {
overflow: auto;
width: 100%;
-}
-
-#editform textarea {
display: block;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
+++ /dev/null
-/**
- * Fixes textarea scrolling bug (bug #19334). The bug only occurs when a
- * percentage width is given, so instead of width: 100%, use min-width: 100%;
- * max-width: 100%. We also need to give a fixed width for the actual width
- * property for the hack to work, although the actual value (500px here) ends
- * up being ignored; min/max-width take precedence.
- *
- * More info: http://grantovich.net/posts/2009/06/that-weird-ie8-textarea-bug/
- */
-#wpTextbox1 {
- height: 390px;
- width: 500px;
- min-width: 100%;
- max-width: 100%;
-}
border: 1px solid #dddddd;
}
-/**
- * Edit forms
- */
-#editform textarea {
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
/**
* Basic styles for the user login and create account forms
*/
textarea {
width: 100%;
padding: .1em;
+ display: block;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
}
select {
vertical-align: top;
}
#config-live-log {
- margin-right: 18em;
+ overflow: hidden;
+ min-width: 20em;
}
textarea {
width: 100%;
padding: .1em;
-}
-#editform textarea {
+ display: block;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-family: @content-font-family;
}
body {
- background-color: #f6f6f6;
+ background-color: @menu-background-color;
font-size: @body-font-size;
}
margin-left: 10em;
padding: @content-padding;
/* Border on top, left, and bottom side */
- border: 1px solid #a7d7f9;
+ border: 1px solid @content-border-color;
border-right-width: 0;
/* Merge the border with tabs' one (in their background image) */
margin-top: -1px;
- background-color: white;
+ background-color: @body-background-color;
color: @content-font-color;
direction: ltr;
}
/* Head */
#mw-page-base {
height: 5em;
- background-color: white;
- .background-image('images/page-fade.png');
background-position: bottom left;
background-repeat: repeat-x;
+ .vertical-gradient(@body-background-color, @menu-background-color, 40%, 100%);
}
#mw-head-base {
background-color: #fff;
background-color: rgba(255, 255, 255, 0.93);
padding: 0.75em 1.5em;
- border: solid 1px #a7d7f9;
+ border: solid 1px @content-border-color;
border-radius: 0.75em;
-webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
margin-top: -0.8em !ie;
height: 0;
overflow: hidden;
- .background-image('images/watch-icons.png');
+ background-position: 5px 60%;
}
#ca-unwatch.icon a {
- background-position: -43px 60%;
+ .background-image-svg('images/unwatch-icon.svg', 'images/unwatch-icon.png');
}
#ca-watch.icon a {
- background-position: 5px 60%;
+ .background-image-svg('images/watch-icon.svg', 'images/watch-icon.png');
}
#ca-unwatch.icon a:hover,
#ca-unwatch.icon a:focus {
- background-position: -67px 60%;
+ .background-image-svg('images/unwatch-icon-hl.svg', 'images/unwatch-icon-hl.png');
}
#ca-watch.icon a:hover,
#ca-watch.icon a:focus {
- background-position: -19px 60%;
+ .background-image-svg('images/watch-icon-hl.svg', 'images/watch-icon-hl.png');
}
#ca-unwatch.icon a.loading,
#ca-watch.icon a.loading {
- .background-image('images/watch-icon-loading.gif');
- background-position: 5px 60%;
+ .background-image-svg('images/watch-icon-loading.svg', 'images/watch-icon-loading.png');
+ .rotation(700ms);
+ background-position: 50% 60%;
+ -webkit-transform-origin: 50% 57%;
+ transform-origin: 50% 57%;
}
#ca-unwatch.icon a span,
#ca-watch.icon a span {
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="watch-icon-hl.svg"
+ inkscape:export-filename="/home/m4tx/Pulpit/LOCAL/watch-icon-hl.png"
+ inkscape:export-xdpi="87.436836"
+ inkscape:export-ydpi="87.436836">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3788">
+ <stop
+ style="stop-color:#c2edff;stop-opacity:1;"
+ offset="0"
+ id="stop3790" />
+ <stop
+ id="stop3796"
+ offset="0.5"
+ style="stop-color:#68bdff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3792" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3804"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3808"
+ gradientUnits="userSpaceOnUse"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-3.451911"
+ inkscape:cy="5.714676"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1920"
+ inkscape:window-height="1041"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Mateusz "m4tx" Maćkowski</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-693.14288,-698.64789)">
+ <path
+ inkscape:transform-center-y="-0.70705002"
+ transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+ d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="-0.9424778"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:r2="4.2936125"
+ sodipodi:r1="8.587225"
+ sodipodi:cy="7.6662416"
+ sodipodi:cx="8.3337584"
+ sodipodi:sides="5"
+ id="path3768"
+ style="fill:url(#linearGradient3804);fill-opacity:1;stroke:#c8b250;stroke-width:1.15975237000000009;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="star" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="watch-icon-fav.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3788">
+ <stop
+ style="stop-color:#c2edff;stop-opacity:1;"
+ offset="0"
+ id="stop3790" />
+ <stop
+ id="stop3796"
+ offset="0.5"
+ style="stop-color:#68bdff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3792" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3804"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3808"
+ gradientUnits="userSpaceOnUse"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-6.951911"
+ inkscape:cy="5.714676"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1920"
+ inkscape:window-height="1014"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Mateusz "m4tx" Maćkowski</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-693.14288,-698.64789)">
+ <path
+ inkscape:transform-center-y="-0.70705002"
+ transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+ d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="-0.9424778"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:r2="4.2936125"
+ sodipodi:r1="8.587225"
+ sodipodi:cy="7.6662416"
+ sodipodi:cx="8.3337584"
+ sodipodi:sides="5"
+ id="path3768"
+ style="fill:url(#linearGradient3804);fill-opacity:1;stroke:#7cb5d1;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="star" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="watch-icon-hl.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3788">
+ <stop
+ style="stop-color:#c2edff;stop-opacity:1;"
+ offset="0"
+ id="stop3790" />
+ <stop
+ id="stop3796"
+ offset="0.5"
+ style="stop-color:#68bdff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3792" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3804"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3808"
+ gradientUnits="userSpaceOnUse"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-6.97632"
+ inkscape:cy="6.2476517"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1920"
+ inkscape:window-height="1014"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Mateusz "m4tx" Maćkowski</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-693.14288,-698.64789)">
+ <path
+ sodipodi:type="star"
+ style="fill:#ffffff;fill-opacity:1;stroke:#c8b250;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path3770"
+ sodipodi:sides="5"
+ sodipodi:cx="8.3337584"
+ sodipodi:cy="7.6662416"
+ sodipodi:r1="8.587225"
+ sodipodi:r2="4.2936125"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:arg2="-0.9424778"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+ transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+ inkscape:transform-center-y="-0.70705002" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="watch-icon-loading.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3788">
+ <stop
+ style="stop-color:#c2edff;stop-opacity:1;"
+ offset="0"
+ id="stop3790" />
+ <stop
+ id="stop3796"
+ offset="0.5"
+ style="stop-color:#68bdff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3792" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3804"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3808"
+ gradientUnits="userSpaceOnUse"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.2850048"
+ inkscape:cy="6.4582896"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1920"
+ inkscape:window-height="1014"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Mateusz "m4tx" Maćkowski</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-693.14288,-698.64789)">
+ <path
+ sodipodi:type="star"
+ style="fill:#ffffff;fill-opacity:1;stroke:#d1d1d1;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2998"
+ sodipodi:sides="5"
+ sodipodi:cx="8.3337584"
+ sodipodi:cy="7.6662416"
+ sodipodi:r1="8.587225"
+ sodipodi:r2="4.2936125"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:arg2="-0.9424778"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+ transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+ inkscape:transform-center-y="-0.70705002" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="watch-icon.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3788">
+ <stop
+ style="stop-color:#c2edff;stop-opacity:1;"
+ offset="0"
+ id="stop3790" />
+ <stop
+ id="stop3796"
+ offset="0.5"
+ style="stop-color:#68bdff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3792" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3804"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3788"
+ id="linearGradient3808"
+ gradientUnits="userSpaceOnUse"
+ x1="13.470111"
+ y1="14.363379"
+ x2="4.596477"
+ y2="3.3969929" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="17.836203"
+ inkscape:cy="7.206728"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1920"
+ inkscape:window-height="1014"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Mateusz "m4tx" Maćkowski</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-693.14288,-698.64789)">
+ <path
+ sodipodi:type="star"
+ style="fill:#ffffff;fill-opacity:1;stroke:#7cb5d1;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2998"
+ sodipodi:sides="5"
+ sodipodi:cx="8.3337584"
+ sodipodi:cy="7.6662416"
+ sodipodi:r1="8.587225"
+ sodipodi:r2="4.2936125"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:arg2="-0.9424778"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+ transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+ inkscape:transform-center-y="-0.70705002" />
+ </g>
+</svg>
@body-font-size: 1em;
// Page content
+// FIXME: Use global variable since Echo and CentralNotice use this variable
+@content-border-color: #a7d7f9;
@content-font-family: sans-serif;
@content-font-color: black;
@content-font-size: 0.8em;
@content-padding: 1.25em 1.5em 1.5em 1.5em;
@content-heading-font-size: 1.6em;
@content-heading-font-family: sans-serif;
+@body-background-color: #fff;
+
+// Navigation
+@menu-background-color: #f6f6f6;
// Common menu
@menu-link-color: #0645ad;
'RevisionStorageTest' => "$testDir/phpunit/includes/RevisionStorageTest.php",
'WikiPageTest' => "$testDir/phpunit/includes/WikiPageTest.php",
- //db
- 'ORMTableTest' => "$testDir/phpunit/includes/db/ORMTableTest.php",
- 'PageORMTableForTesting' => "$testDir/phpunit/includes/db/ORMTableTest.php",
- 'DatabaseTestHelper' => "$testDir/phpunit/includes/db/DatabaseTestHelper.php",
-
# tests/phpunit/includes/api
'ApiFormatTestBase' => "$testDir/phpunit/includes/api/format/ApiFormatTestBase.php",
'ApiTestCase' => "$testDir/phpunit/includes/api/ApiTestCase.php",
# tests/phpunit/includes/db
'ORMRowTest' => "$testDir/phpunit/includes/db/ORMRowTest.php",
+ 'ORMTableTest' => "$testDir/phpunit/includes/db/ORMTableTest.php",
+ 'PageORMTableForTesting' => "$testDir/phpunit/includes/db/ORMTableTest.php",
+ 'DatabaseTestHelper' => "$testDir/phpunit/includes/db/DatabaseTestHelper.php",
- # tests/phpunit/includes/parser
- 'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
- 'MediaWikiParserTest' => "$testDir/phpunit/includes/parser/MediaWikiParserTest.php",
+ # tests/phpunit/languages
+ 'LanguageClassesTestCase' => "$testDir/phpunit/languages/LanguageClassesTestCase.php",
# tests/phpunit/includes/libs
'GenericArrayObjectTest' => "$testDir/phpunit/includes/libs/GenericArrayObjectTest.php",
+ # tests/phpunit/maintenance
+ 'DumpTestCase' => "$testDir/phpunit/maintenance/DumpTestCase.php",
+
# tests/phpunit/media
'FakeDimensionFile' => "$testDir/phpunit/includes/media/FakeDimensionFile.php",
- # tests/phpunit/includes/site
- 'SiteTest' => "$testDir/phpunit/includes/site/SiteTest.php",
- 'TestSites' => "$testDir/phpunit/includes/site/TestSites.php",
-
# tests/phpunit/mocks
'MockFSFile' => "$testDir/phpunit/mocks/filebackend/MockFSFile.php",
'MockFileBackend' => "$testDir/phpunit/mocks/filebackend/MockFileBackend.php",
'MockImageHandler' => "$testDir/phpunit/mocks/media/MockImageHandler.php",
'MockSvgHandler' => "$testDir/phpunit/mocks/media/MockSvgHandler.php",
- # tests/phpunit/languages
- 'LanguageClassesTestCase' => "$testDir/phpunit/languages/LanguageClassesTestCase.php",
-
- # tests/phpunit/maintenance
- 'DumpTestCase' => "$testDir/phpunit/maintenance/DumpTestCase.php",
-
# tests/parser
+ 'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
+ 'MediaWikiParserTest' => "$testDir/phpunit/includes/parser/MediaWikiParserTest.php",
'ParserTest' => "$testDir/parser/parserTest.inc",
'ParserTestParserHook' => "$testDir/parser/parserTestsParserHook.php",
+
+ # tests/phpunit/includes/site
+ 'SiteTest' => "$testDir/phpunit/includes/site/SiteTest.php",
+ 'TestSites' => "$testDir/phpunit/includes/site/TestSites.php",
);
$this->markTestSkipped( 'Tidy extension not installed' );
}
- $ok = MWTidy::checkErrors( $html, $errors );
- $this->assertTrue( $ok, 'HTML validation errors: ' . $errors );
+ $errorBuffer = '';
+ MWTidy::checkErrors( $html, $errorBuffer );
+ $allErrors = preg_split( '/[\r\n]+/', $errorBuffer );
+
+ // Filter Tidy warnings which aren't useful for us.
+ // Tidy eg. often cries about parameters missing which have actually
+ // been deprecated since HTML4, thus we should not care about them.
+ $errors = preg_grep(
+ '/^(.*Warning: (trimming empty|.* lacks ".*?" attribute).*|\s*)$/m',
+ $allErrors, PREG_GREP_INVERT
+ );
+
+ $this->assertEmpty( $errors, implode( "\n", $errors ) );
}
}
--- /dev/null
+<?php
+/**
+ * Test class for ArrayUtils class
+ *
+ * @group Database
+ */
+
+class ArrayUtilsTest extends MediaWikiTestCase {
+ private $search;
+
+ /**
+ * @covers ArrayUtils::findLowerBound
+ * @dataProvider provideFindLowerBound
+ */
+ function testFindLowerBound(
+ $valueCallback, $valueCount, $comparisonCallback, $target, $expected
+ ) {
+ $this->assertSame(
+ ArrayUtils::findLowerBound(
+ $valueCallback, $valueCount, $comparisonCallback, $target
+ ), $expected
+ );
+ }
+
+ function provideFindLowerBound() {
+ $self = $this;
+ $indexValueCallback = function( $size ) use ( $self ) {
+ return function( $val ) use ( $self, $size ) {
+ $self->assertTrue( $val >= 0 );
+ $self->assertTrue( $val < $size );
+ return $val;
+ };
+ };
+ $comparisonCallback = function( $a, $b ) {
+ return $a - $b;
+ };
+
+ return array(
+ array(
+ $indexValueCallback( 0 ),
+ 0,
+ $comparisonCallback,
+ 1,
+ false,
+ ),
+ array(
+ $indexValueCallback( 1 ),
+ 1,
+ $comparisonCallback,
+ -1,
+ false,
+ ),
+ array(
+ $indexValueCallback( 1 ),
+ 1,
+ $comparisonCallback,
+ 0,
+ 0,
+ ),
+ array(
+ $indexValueCallback( 1 ),
+ 1,
+ $comparisonCallback,
+ 1,
+ 0,
+ ),
+ array(
+ $indexValueCallback( 2 ),
+ 2,
+ $comparisonCallback,
+ -1,
+ false,
+ ),
+ array(
+ $indexValueCallback( 2 ),
+ 2,
+ $comparisonCallback,
+ 0,
+ 0,
+ ),
+ array(
+ $indexValueCallback( 2 ),
+ 2,
+ $comparisonCallback,
+ 0.5,
+ 0,
+ ),
+ array(
+ $indexValueCallback( 2 ),
+ 2,
+ $comparisonCallback,
+ 1,
+ 1,
+ ),
+ array(
+ $indexValueCallback( 2 ),
+ 2,
+ $comparisonCallback,
+ 1.5,
+ 1,
+ ),
+ array(
+ $indexValueCallback( 3 ),
+ 3,
+ $comparisonCallback,
+ 1,
+ 1,
+ ),
+ array(
+ $indexValueCallback( 3 ),
+ 3,
+ $comparisonCallback,
+ 1.5,
+ 1,
+ ),
+ array(
+ $indexValueCallback( 3 ),
+ 3,
+ $comparisonCallback,
+ 2,
+ 2,
+ ),
+ array(
+ $indexValueCallback( 3 ),
+ 3,
+ $comparisonCallback,
+ 3,
+ 2,
+ ),
+ );
+ }
+
+ /**
+ * @covers ArrayUtils::arrayDiffAssocRecursive
+ * @dataProvider provideArrayDiffAssocRecursive
+ */
+ function testArrayDiffAssocRecursive( $expected ) {
+ $args = func_get_args();
+ array_shift( $args );
+ $this->assertEquals( call_user_func_array(
+ 'ArrayUtils::arrayDiffAssocRecursive', $args
+ ), $expected );
+ }
+
+ function provideArrayDiffAssocRecursive() {
+ return array(
+ array(
+ array(),
+ array(),
+ array(),
+ ),
+ array(
+ array(),
+ array(),
+ array(),
+ array(),
+ ),
+ array(
+ array( 1 ),
+ array( 1 ),
+ array(),
+ ),
+ array(
+ array( 1 ),
+ array( 1 ),
+ array(),
+ array(),
+ ),
+ array(
+ array(),
+ array(),
+ array( 1 ),
+ ),
+ array(
+ array(),
+ array(),
+ array( 1 ),
+ array( 2 ),
+ ),
+ array(
+ array( '' => 1 ),
+ array( '' => 1 ),
+ array(),
+ ),
+ array(
+ array(),
+ array(),
+ array( '' => 1 ),
+ ),
+ array(
+ array( 1 ),
+ array( 1 ),
+ array( 2 ),
+ ),
+ array(
+ array(),
+ array( 1 ),
+ array( 2 ),
+ array( 1 ),
+ ),
+ array(
+ array(),
+ array( 1 ),
+ array( 1, 2 ),
+ ),
+ array(
+ array( 1 => 1 ),
+ array( 1 => 1 ),
+ array( 1 ),
+ ),
+ array(
+ array(),
+ array( 1 => 1 ),
+ array( 1 ),
+ array( 1 => 1),
+ ),
+ array(
+ array(),
+ array( 1 => 1 ),
+ array( 1, 1, 1 ),
+ ),
+ array(
+ array(),
+ array( array() ),
+ array(),
+ ),
+ array(
+ array(),
+ array( array( array() ) ),
+ array(),
+ ),
+ array(
+ array( 1, array( 1 ) ),
+ array( 1, array( 1 ) ),
+ array(),
+ ),
+ array(
+ array( 1 ),
+ array( 1, array( 1 ) ),
+ array( 2, array( 1 ) ),
+ ),
+ array(
+ array(),
+ array( 1, array( 1 ) ),
+ array( 2, array( 1 ) ),
+ array( 1, array( 2 ) ),
+ ),
+ array(
+ array( 1 ),
+ array( 1, array() ),
+ array( 2 ),
+ ),
+ array(
+ array(),
+ array( 1, array() ),
+ array( 2 ),
+ array( 1 ),
+ ),
+ array(
+ array( 1, array( 1 => 2 ) ),
+ array( 1, array( 1, 2 ) ),
+ array( 2, array( 1 ) ),
+ ),
+ array(
+ array( 1 ),
+ array( 1, array( 1, 2 ) ),
+ array( 2, array( 1 ) ),
+ array( 2, array( 1 => 2 ) ),
+ ),
+ array(
+ array( 1 => array( 1, 2 ) ),
+ array( 1, array( 1, 2 ) ),
+ array( 1, array( 2 ) ),
+ ),
+ array(
+ array( 1 => array( array( 2, 3 ), 2 ) ),
+ array( 1, array( array( 2, 3 ), 2 ) ),
+ array( 1, array( 2 ) ),
+ ),
+ array(
+ array( 1 => array( array( 2 ), 2 ) ),
+ array( 1, array( array( 2, 3 ), 2 ) ),
+ array( 1, array( array( 1 => 3 ) ) ),
+ ),
+ array(
+ array( 1 => array( 1 => 2 ) ),
+ array( 1, array( array( 2, 3 ), 2 ) ),
+ array( 1, array( array( 1 => 3, 0 => 2 ) ) ),
+ ),
+ array(
+ array( 1 => array( 1 => 2 ) ),
+ array( 1, array( array( 2, 3 ), 2 ) ),
+ array( 1, array( array( 1 => 3 ) ) ),
+ array( 1 => array( array( 2 ) ) ),
+ ),
+ array(
+ array(),
+ array( 1, array( array( 2, 3 ), 2 ) ),
+ array( 1 => array( 1 => 2, 0 => array( 1 => 3, 0 => 2 ) ), 0 => 1 ),
+ ),
+ array(
+ array(),
+ array( 1, array( array( 2, 3 ), 2 ) ),
+ array( 1 => array( 1 => 2 ) ),
+ array( 1 => array( array( 1 => 3 ) ) ),
+ array( 1 => array( array( 2 ) ) ),
+ array( 1 ),
+ ),
+ );
+ }
+}
class CollationTest extends MediaWikiLangTestCase {
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'intl' ) ) {
- $this->markTestSkipped( 'These tests require intl extension' );
- }
+ $this->checkPHPExtension( 'intl' );
}
/**
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'xdiff' ) ) {
- $this->markTestSkipped( 'The xdiff extension is not available' );
+ $this->checkPHPExtension( 'hash' );
+ $this->checkPHPExtension( 'xdiff' );
- return;
- }
if ( !function_exists( 'xdiff_string_rabdiff' ) ) {
$this->markTestSkipped( 'The version of xdiff extension is lower than 1.5.0' );
- return;
- }
- if ( !extension_loaded( 'hash' ) ) {
- $this->markTestSkipped( 'The hash extension is not available' );
-
return;
}
}
--- /dev/null
+<?php
+
+/**
+ * Tests timestamp parsing and output.
+ */
+class MWTimestampTest extends MediaWikiLangTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+
+ RequestContext::getMain()->setLanguage( Language::factory( 'en' ) );
+ }
+
+ /**
+ * @covers MWTimestamp::__construct
+ */
+ public function testConstructWithNoTimestamp() {
+ $timestamp = new MWTimestamp();
+ $this->assertInternalType( 'string', $timestamp->getTimestamp() );
+ $this->assertNotEmpty( $timestamp->getTimestamp() );
+ $this->assertNotEquals( false, strtotime( $timestamp->getTimestamp( TS_MW ) ) );
+ }
+
+ /**
+ * @covers MWTimestamp::__toString
+ */
+ public function testToString() {
+ $timestamp = new MWTimestamp( '1406833268' ); // Equivalent to 20140731190108
+ $this->assertEquals( '1406833268', $timestamp->__toString() );
+ }
+
+ public function provideValidTimestampDifferences() {
+ return array(
+ array( '1406833268','1406833269', '00 00 00 01' ),
+ array( '1406833268','1406833329', '00 00 01 01' ),
+ array( '1406833268','1406836929', '00 01 01 01' ),
+ array( '1406833268','1406923329', '01 01 01 01' ),
+ );
+ }
+
+ /**
+ * @dataProvider provideValidTimestampDifferences
+ * @covers MWTimestamp::diff
+ */
+ public function testDiff( $timestamp1, $timestamp2, $expected ) {
+ $timestamp1 = new MWTimestamp( $timestamp1 );
+ $timestamp2 = new MWTimestamp( $timestamp2 );
+ $diff = $timestamp1->diff( $timestamp2 );
+ $this->assertEquals( $expected, $diff->format( '%D %H %I %S' ) );
+ }
+
+ /**
+ * Test parsing of valid timestamps and outputing to MW format.
+ * @dataProvider provideValidTimestamps
+ * @covers MWTimestamp::getTimestamp
+ */
+ public function testValidParse( $format, $original, $expected ) {
+ $timestamp = new MWTimestamp( $original );
+ $this->assertEquals( $expected, $timestamp->getTimestamp( TS_MW ) );
+ }
+
+ /**
+ * Test outputting valid timestamps to different formats.
+ * @dataProvider provideValidTimestamps
+ * @covers MWTimestamp::getTimestamp
+ */
+ public function testValidOutput( $format, $expected, $original ) {
+ $timestamp = new MWTimestamp( $original );
+ $this->assertEquals( $expected, (string)$timestamp->getTimestamp( $format ) );
+ }
+
+ /**
+ * Test an invalid timestamp.
+ * @expectedException TimestampException
+ * @covers MWTimestamp
+ */
+ public function testInvalidParse() {
+ new MWTimestamp( "This is not a timestamp." );
+ }
+
+ /**
+ * Test requesting an invalid output format.
+ * @expectedException TimestampException
+ * @covers MWTimestamp::getTimestamp
+ */
+ public function testInvalidOutput() {
+ $timestamp = new MWTimestamp( '1343761268' );
+ $timestamp->getTimestamp( 98 );
+ }
+
+ /**
+ * Returns a list of valid timestamps in the format:
+ * array( type, timestamp_of_type, timestamp_in_MW )
+ */
+ public static function provideValidTimestamps() {
+ return array(
+ // Various formats
+ array( TS_UNIX, '1343761268', '20120731190108' ),
+ array( TS_MW, '20120731190108', '20120731190108' ),
+ array( TS_DB, '2012-07-31 19:01:08', '20120731190108' ),
+ array( TS_ISO_8601, '2012-07-31T19:01:08Z', '20120731190108' ),
+ array( TS_ISO_8601_BASIC, '20120731T190108Z', '20120731190108' ),
+ array( TS_EXIF, '2012:07:31 19:01:08', '20120731190108' ),
+ array( TS_RFC2822, 'Tue, 31 Jul 2012 19:01:08 GMT', '20120731190108' ),
+ array( TS_ORACLE, '31-07-2012 19:01:08.000000', '20120731190108' ),
+ array( TS_POSTGRES, '2012-07-31 19:01:08 GMT', '20120731190108' ),
+ // Some extremes and weird values
+ array( TS_ISO_8601, '9999-12-31T23:59:59Z', '99991231235959' ),
+ array( TS_UNIX, '-62135596801', '00001231235959' )
+ );
+ }
+
+ /**
+ * @dataProvider provideHumanTimestampTests
+ * @covers MWTimestamp::getHumanTimestamp
+ */
+ public function testHumanTimestamp(
+ $tsTime, // The timestamp to format
+ $currentTime, // The time to consider "now"
+ $timeCorrection, // The time offset to use
+ $dateFormat, // The date preference to use
+ $expectedOutput, // The expected output
+ $desc // Description
+ ) {
+ $user = $this->getMock( 'User' );
+ $user->expects( $this->any() )
+ ->method( 'getOption' )
+ ->with( 'timecorrection' )
+ ->will( $this->returnValue( $timeCorrection ) );
+
+ $user->expects( $this->any() )
+ ->method( 'getDatePreference' )
+ ->will( $this->returnValue( $dateFormat ) );
+
+ $tsTime = new MWTimestamp( $tsTime );
+ $currentTime = new MWTimestamp( $currentTime );
+
+ $this->assertEquals(
+ $expectedOutput,
+ $tsTime->getHumanTimestamp( $currentTime, $user ),
+ $desc
+ );
+ }
+
+ public static function provideHumanTimestampTests() {
+ return array(
+ array(
+ '20111231170000',
+ '20120101000000',
+ 'Offset|0',
+ 'mdy',
+ 'Yesterday at 17:00',
+ '"Yesterday" across years',
+ ),
+ array(
+ '20120717190900',
+ '20120717190929',
+ 'Offset|0',
+ 'mdy',
+ 'just now',
+ '"Just now"',
+ ),
+ array(
+ '20120717190900',
+ '20120717191530',
+ 'Offset|0',
+ 'mdy',
+ '6 minutes ago',
+ 'X minutes ago',
+ ),
+ array(
+ '20121006173100',
+ '20121006173200',
+ 'Offset|0',
+ 'mdy',
+ '1 minute ago',
+ '"1 minute ago"',
+ ),
+ array(
+ '20120617190900',
+ '20120717190900',
+ 'Offset|0',
+ 'mdy',
+ 'June 17',
+ 'Another month'
+ ),
+ array(
+ '19910130151500',
+ '20120716193700',
+ 'Offset|0',
+ 'mdy',
+ '15:15, January 30, 1991',
+ 'Different year',
+ ),
+ array(
+ '20120101050000',
+ '20120101080000',
+ 'Offset|-360',
+ 'mdy',
+ 'Yesterday at 23:00',
+ '"Yesterday" across years with time correction',
+ ),
+ array(
+ '20120714184300',
+ '20120716184300',
+ 'Offset|-420',
+ 'mdy',
+ 'Saturday at 11:43',
+ 'Recent weekday with time correction',
+ ),
+ array(
+ '20120714184300',
+ '20120715040000',
+ 'Offset|-420',
+ 'mdy',
+ '11:43',
+ 'Today at another time with time correction',
+ ),
+ array(
+ '20120617190900',
+ '20120717190900',
+ 'Offset|0',
+ 'dmy',
+ '17 June',
+ 'Another month with dmy'
+ ),
+ array(
+ '20120617190900',
+ '20120717190900',
+ 'Offset|0',
+ 'ISO 8601',
+ '06-17',
+ 'Another month with ISO-8601'
+ ),
+ array(
+ '19910130151500',
+ '20120716193700',
+ 'Offset|0',
+ 'ISO 8601',
+ '1991-01-30T15:15:00',
+ 'Different year with ISO-8601',
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider provideRelativeTimestampTests
+ * @covers MWTimestamp::getRelativeTimestamp
+ */
+ public function testRelativeTimestamp(
+ $tsTime, // The timestamp to format
+ $currentTime, // The time to consider "now"
+ $timeCorrection, // The time offset to use
+ $dateFormat, // The date preference to use
+ $expectedOutput, // The expected output
+ $desc // Description
+ ) {
+ $user = $this->getMock( 'User' );
+ $user->expects( $this->any() )
+ ->method( 'getOption' )
+ ->with( 'timecorrection' )
+ ->will( $this->returnValue( $timeCorrection ) );
+
+ $tsTime = new MWTimestamp( $tsTime );
+ $currentTime = new MWTimestamp( $currentTime );
+
+ $this->assertEquals(
+ $expectedOutput,
+ $tsTime->getRelativeTimestamp( $currentTime, $user ),
+ $desc
+ );
+ }
+
+ public static function provideRelativeTimestampTests() {
+ return array(
+ array(
+ '20111231170000',
+ '20120101000000',
+ 'Offset|0',
+ 'mdy',
+ '7 hours ago',
+ '"Yesterday" across years',
+ ),
+ array(
+ '20120717190900',
+ '20120717190929',
+ 'Offset|0',
+ 'mdy',
+ '29 seconds ago',
+ '"Just now"',
+ ),
+ array(
+ '20120717190900',
+ '20120717191530',
+ 'Offset|0',
+ 'mdy',
+ '6 minutes and 30 seconds ago',
+ 'Combination of multiple units',
+ ),
+ array(
+ '20121006173100',
+ '20121006173200',
+ 'Offset|0',
+ 'mdy',
+ '1 minute ago',
+ '"1 minute ago"',
+ ),
+ array(
+ '19910130151500',
+ '20120716193700',
+ 'Offset|0',
+ 'mdy',
+ '2 decades, 1 year, 168 days, 2 hours, 8 minutes and 48 seconds ago',
+ 'A long time ago',
+ ),
+ array(
+ '20120101050000',
+ '20120101080000',
+ 'Offset|-360',
+ 'mdy',
+ '3 hours ago',
+ '"Yesterday" across years with time correction',
+ ),
+ array(
+ '20120714184300',
+ '20120716184300',
+ 'Offset|-420',
+ 'mdy',
+ '2 days ago',
+ 'Recent weekday with time correction',
+ ),
+ array(
+ '20120714184300',
+ '20120715040000',
+ 'Offset|-420',
+ 'mdy',
+ '9 hours and 17 minutes ago',
+ 'Today at another time with time correction',
+ ),
+ );
+ }
+}
}
}
+ /**
+ * @dataProvider provideMockMessageDetails
+ * @covers Status::fatal
+ * @covers Status::getErrorsArray
+ * @covers Status::getStatusArray
+ */
+ public function testFatalWithMessage( $mockDetails ) {
+ $status = new Status();
+ $messages = $this->getMockMessages( $mockDetails );
+
+ foreach ( $messages as $message ) {
+ $status->fatal( $message );
+ }
+ $errors = $status->getErrorsArray();
+
+ $this->assertEquals( count( $messages ), count( $errors ) );
+ foreach ( $messages as $key => $message ) {
+ $expectedArray = array_merge( array( $message->getKey() ), $message->getParams() );
+ $this->assertEquals( $errors[$key], $expectedArray );
+ }
+ $this->assertFalse( $status->isOK() );
+ }
+
protected function getMockMessage( $key = 'key', $params = array() ) {
$message = $this->getMockBuilder( 'Message' )
->disableOriginalConstructor()
/**
* @covers Status::merge
- * @todo test merge with $overwriteValue true
*/
public function testMerge() {
$status1 = new Status();
$this->assertEquals( 2, count( $status1->getWarningsArray() ) + count( $status1->getErrorsArray() ) );
}
+ /**
+ * @covers Status::merge
+ */
+ public function testMergeWithOverwriteValue() {
+ $status1 = new Status();
+ $status2 = new Status();
+ $message1 = $this->getMockMessage( 'warn1' );
+ $message2 = $this->getMockMessage( 'error2' );
+ $status1->warning( $message1 );
+ $status2->error( $message2 );
+ $status2->value = 'FooValue';
+
+ $status1->merge( $status2, true );
+ $this->assertEquals( 2, count( $status1->getWarningsArray() ) + count( $status1->getErrorsArray() ) );
+ $this->assertEquals( 'FooValue', $status1->getValue() );
+ }
+
/**
* @covers Status::hasMessage
*/
$this->assertEquals( $expected, $method->invoke( $status, $params ) );
}
- /**
- * @todo test cleanParams with a callback
- */
public static function provideCleanParams() {
+ $cleanCallback = function( $value ) {
+ return '-' . $value . '-';
+ };
+
return array(
array( false, array( 'foo' => 'bar' ), array( 'foo' => 'bar' ) ),
+ array( $cleanCallback, array( 'foo' => 'bar' ), array( 'foo' => '-bar-' ) ),
);
}
+++ /dev/null
-<?php
-
-/**
- * Tests timestamp parsing and output.
- */
-class TimestampTest extends MediaWikiLangTestCase {
-
- protected function setUp() {
- parent::setUp();
-
- RequestContext::getMain()->setLanguage( Language::factory( 'en' ) );
- }
-
- /**
- * Test parsing of valid timestamps and outputing to MW format.
- * @dataProvider provideValidTimestamps
- * @covers MWTimestamp::getTimestamp
- */
- public function testValidParse( $format, $original, $expected ) {
- $timestamp = new MWTimestamp( $original );
- $this->assertEquals( $expected, $timestamp->getTimestamp( TS_MW ) );
- }
-
- /**
- * Test outputting valid timestamps to different formats.
- * @dataProvider provideValidTimestamps
- * @covers MWTimestamp::getTimestamp
- */
- public function testValidOutput( $format, $expected, $original ) {
- $timestamp = new MWTimestamp( $original );
- $this->assertEquals( $expected, (string)$timestamp->getTimestamp( $format ) );
- }
-
- /**
- * Test an invalid timestamp.
- * @expectedException TimestampException
- * @covers MWTimestamp
- */
- public function testInvalidParse() {
- new MWTimestamp( "This is not a timestamp." );
- }
-
- /**
- * Test requesting an invalid output format.
- * @expectedException TimestampException
- * @covers MWTimestamp::getTimestamp
- */
- public function testInvalidOutput() {
- $timestamp = new MWTimestamp( '1343761268' );
- $timestamp->getTimestamp( 98 );
- }
-
- /**
- * Returns a list of valid timestamps in the format:
- * array( type, timestamp_of_type, timestamp_in_MW )
- */
- public static function provideValidTimestamps() {
- return array(
- // Various formats
- array( TS_UNIX, '1343761268', '20120731190108' ),
- array( TS_MW, '20120731190108', '20120731190108' ),
- array( TS_DB, '2012-07-31 19:01:08', '20120731190108' ),
- array( TS_ISO_8601, '2012-07-31T19:01:08Z', '20120731190108' ),
- array( TS_ISO_8601_BASIC, '20120731T190108Z', '20120731190108' ),
- array( TS_EXIF, '2012:07:31 19:01:08', '20120731190108' ),
- array( TS_RFC2822, 'Tue, 31 Jul 2012 19:01:08 GMT', '20120731190108' ),
- array( TS_ORACLE, '31-07-2012 19:01:08.000000', '20120731190108' ),
- array( TS_POSTGRES, '2012-07-31 19:01:08 GMT', '20120731190108' ),
- // Some extremes and weird values
- array( TS_ISO_8601, '9999-12-31T23:59:59Z', '99991231235959' ),
- array( TS_UNIX, '-62135596801', '00001231235959' )
- );
- }
-
- /**
- * @dataProvider provideHumanTimestampTests
- * @covers MWTimestamp::getHumanTimestamp
- */
- public function testHumanTimestamp(
- $tsTime, // The timestamp to format
- $currentTime, // The time to consider "now"
- $timeCorrection, // The time offset to use
- $dateFormat, // The date preference to use
- $expectedOutput, // The expected output
- $desc // Description
- ) {
- $user = $this->getMock( 'User' );
- $user->expects( $this->any() )
- ->method( 'getOption' )
- ->with( 'timecorrection' )
- ->will( $this->returnValue( $timeCorrection ) );
-
- $user->expects( $this->any() )
- ->method( 'getDatePreference' )
- ->will( $this->returnValue( $dateFormat ) );
-
- $tsTime = new MWTimestamp( $tsTime );
- $currentTime = new MWTimestamp( $currentTime );
-
- $this->assertEquals(
- $expectedOutput,
- $tsTime->getHumanTimestamp( $currentTime, $user ),
- $desc
- );
- }
-
- public static function provideHumanTimestampTests() {
- return array(
- array(
- '20111231170000',
- '20120101000000',
- 'Offset|0',
- 'mdy',
- 'Yesterday at 17:00',
- '"Yesterday" across years',
- ),
- array(
- '20120717190900',
- '20120717190929',
- 'Offset|0',
- 'mdy',
- 'just now',
- '"Just now"',
- ),
- array(
- '20120717190900',
- '20120717191530',
- 'Offset|0',
- 'mdy',
- '6 minutes ago',
- 'X minutes ago',
- ),
- array(
- '20121006173100',
- '20121006173200',
- 'Offset|0',
- 'mdy',
- '1 minute ago',
- '"1 minute ago"',
- ),
- array(
- '20120617190900',
- '20120717190900',
- 'Offset|0',
- 'mdy',
- 'June 17',
- 'Another month'
- ),
- array(
- '19910130151500',
- '20120716193700',
- 'Offset|0',
- 'mdy',
- '15:15, January 30, 1991',
- 'Different year',
- ),
- array(
- '20120101050000',
- '20120101080000',
- 'Offset|-360',
- 'mdy',
- 'Yesterday at 23:00',
- '"Yesterday" across years with time correction',
- ),
- array(
- '20120714184300',
- '20120716184300',
- 'Offset|-420',
- 'mdy',
- 'Saturday at 11:43',
- 'Recent weekday with time correction',
- ),
- array(
- '20120714184300',
- '20120715040000',
- 'Offset|-420',
- 'mdy',
- '11:43',
- 'Today at another time with time correction',
- ),
- array(
- '20120617190900',
- '20120717190900',
- 'Offset|0',
- 'dmy',
- '17 June',
- 'Another month with dmy'
- ),
- array(
- '20120617190900',
- '20120717190900',
- 'Offset|0',
- 'ISO 8601',
- '06-17',
- 'Another month with ISO-8601'
- ),
- array(
- '19910130151500',
- '20120716193700',
- 'Offset|0',
- 'ISO 8601',
- '1991-01-30T15:15:00',
- 'Different year with ISO-8601',
- ),
- );
- }
-
- /**
- * @dataProvider provideRelativeTimestampTests
- * @covers MWTimestamp::getRelativeTimestamp
- */
- public function testRelativeTimestamp(
- $tsTime, // The timestamp to format
- $currentTime, // The time to consider "now"
- $timeCorrection, // The time offset to use
- $dateFormat, // The date preference to use
- $expectedOutput, // The expected output
- $desc // Description
- ) {
- $user = $this->getMock( 'User' );
- $user->expects( $this->any() )
- ->method( 'getOption' )
- ->with( 'timecorrection' )
- ->will( $this->returnValue( $timeCorrection ) );
-
- $tsTime = new MWTimestamp( $tsTime );
- $currentTime = new MWTimestamp( $currentTime );
-
- $this->assertEquals(
- $expectedOutput,
- $tsTime->getRelativeTimestamp( $currentTime, $user ),
- $desc
- );
- }
-
- public static function provideRelativeTimestampTests() {
- return array(
- array(
- '20111231170000',
- '20120101000000',
- 'Offset|0',
- 'mdy',
- '7 hours ago',
- '"Yesterday" across years',
- ),
- array(
- '20120717190900',
- '20120717190929',
- 'Offset|0',
- 'mdy',
- '29 seconds ago',
- '"Just now"',
- ),
- array(
- '20120717190900',
- '20120717191530',
- 'Offset|0',
- 'mdy',
- '6 minutes and 30 seconds ago',
- 'Combination of multiple units',
- ),
- array(
- '20121006173100',
- '20121006173200',
- 'Offset|0',
- 'mdy',
- '1 minute ago',
- '"1 minute ago"',
- ),
- array(
- '19910130151500',
- '20120716193700',
- 'Offset|0',
- 'mdy',
- '2 decades, 1 year, 168 days, 2 hours, 8 minutes and 48 seconds ago',
- 'A long time ago',
- ),
- array(
- '20120101050000',
- '20120101080000',
- 'Offset|-360',
- 'mdy',
- '3 hours ago',
- '"Yesterday" across years with time correction',
- ),
- array(
- '20120714184300',
- '20120716184300',
- 'Offset|-420',
- 'mdy',
- '2 days ago',
- 'Recent weekday with time correction',
- ),
- array(
- '20120714184300',
- '20120715040000',
- 'Offset|-420',
- 'mdy',
- '9 hours and 17 minutes ago',
- 'Today at another time with time correction',
- ),
- );
- }
-}
--- /dev/null
+<?php
+
+/**
+ * @author Adam Shorland
+ * @covers TitleArrayFromResult
+ */
+class TitleArrayFromResultTest extends MediaWikiTestCase {
+
+ private function getMockResultWrapper( $row = null, $numRows = 1 ) {
+ $resultWrapper = $this->getMockBuilder( 'ResultWrapper' )
+ ->disableOriginalConstructor();
+
+ $resultWrapper = $resultWrapper->getMock();
+ $resultWrapper->expects( $this->atLeastOnce() )
+ ->method( 'current' )
+ ->will( $this->returnValue( $row ) );
+ $resultWrapper->expects( $this->any() )
+ ->method( 'numRows' )
+ ->will( $this->returnValue( $numRows ) );
+
+ return $resultWrapper;
+ }
+
+ private function getRowWithTitle( $namespace = 3, $title = 'foo' ) {
+ $row = new stdClass();
+ $row->page_namespace = $namespace;
+ $row->page_title = $title;
+ return $row;
+ }
+
+ private function getTitleArrayFromResult( $resultWrapper ) {
+ return new TitleArrayFromResult( $resultWrapper );
+ }
+
+ /**
+ * @covers TitleArrayFromResult::__construct
+ */
+ public function testConstructionWithFalseRow() {
+ $row = false;
+ $resultWrapper = $this->getMockResultWrapper( $row );
+
+ $object = $this->getTitleArrayFromResult( $resultWrapper );
+
+ $this->assertEquals( $resultWrapper, $object->res );
+ $this->assertSame( 0, $object->key );
+ $this->assertEquals( $row, $object->current );
+ }
+
+ /**
+ * @covers TitleArrayFromResult::__construct
+ */
+ public function testConstructionWithRow() {
+ $namespace = 0;
+ $title = 'foo';
+ $row = $this->getRowWithTitle( $namespace, $title );
+ $resultWrapper = $this->getMockResultWrapper( $row );
+
+ $object = $this->getTitleArrayFromResult( $resultWrapper );
+
+ $this->assertEquals( $resultWrapper, $object->res );
+ $this->assertSame( 0, $object->key );
+ $this->assertInstanceOf( 'Title', $object->current );
+ $this->assertEquals( $namespace, $object->current->mNamespace );
+ $this->assertEquals( $title, $object->current->mTextform );
+ }
+
+ public function provideNumberOfRows() {
+ return array(
+ array( 0 ),
+ array( 1 ),
+ array( 122 ),
+ );
+ }
+
+ /**
+ * @dataProvider provideNumberOfRows
+ * @covers TitleArrayFromResult::count
+ */
+ public function testCountWithVaryingValues( $numRows ) {
+ $object = $this->getTitleArrayFromResult( $this->getMockResultWrapper( $this->getRowWithTitle(), $numRows ) );
+ $this->assertEquals( $numRows, $object->count() );
+ }
+
+ /**
+ * @covers TitleArrayFromResult::current
+ */
+ public function testCurrentAfterConstruction() {
+ $namespace = 0;
+ $title = 'foo';
+ $row = $this->getRowWithTitle( $namespace, $title );
+ $object = $this->getTitleArrayFromResult( $this->getMockResultWrapper( $row ) );
+ $this->assertInstanceOf( 'Title', $object->current() );
+ $this->assertEquals( $namespace, $object->current->mNamespace );
+ $this->assertEquals( $title, $object->current->mTextform );
+ }
+
+ public function provideTestValid() {
+ return array(
+ array( $this->getRowWithTitle(), true ),
+ array( false, false ),
+ );
+ }
+
+ /**
+ * @dataProvider provideTestValid
+ * @covers TitleArrayFromResult::valid
+ */
+ public function testValid( $input, $expected ) {
+ $object = $this->getTitleArrayFromResult( $this->getMockResultWrapper( $input ) );
+ $this->assertEquals( $expected, $object->valid() );
+ }
+
+ //@todo unit test for key()
+ //@todo unit test for next()
+ //@todo unit test for rewind()
+
+}
\ No newline at end of file
--- /dev/null
+<?php
+
+/**
+ * @author Adam Shorland
+ * @covers UserArrayFromResult
+ */
+class UserArrayFromResultTest extends MediaWikiTestCase {
+
+ private function getMockResultWrapper( $row = null, $numRows = 1 ) {
+ $resultWrapper = $this->getMockBuilder( 'ResultWrapper' )
+ ->disableOriginalConstructor();
+
+ $resultWrapper = $resultWrapper->getMock();
+ $resultWrapper->expects( $this->atLeastOnce() )
+ ->method( 'current' )
+ ->will( $this->returnValue( $row ) );
+ $resultWrapper->expects( $this->any() )
+ ->method( 'numRows' )
+ ->will( $this->returnValue( $numRows ) );
+
+ return $resultWrapper;
+ }
+
+ private function getRowWithUsername( $username = 'fooUser' ) {
+ $row = new stdClass();
+ $row->user_name = $username;
+ return $row;
+ }
+
+ private function getUserArrayFromResult( $resultWrapper ) {
+ return new UserArrayFromResult( $resultWrapper );
+ }
+
+ /**
+ * @covers UserArrayFromResult::__construct
+ */
+ public function testConstructionWithFalseRow() {
+ $row = false;
+ $resultWrapper = $this->getMockResultWrapper( $row );
+
+ $object = $this->getUserArrayFromResult( $resultWrapper );
+
+ $this->assertEquals( $resultWrapper, $object->res );
+ $this->assertSame( 0, $object->key );
+ $this->assertEquals( $row, $object->current );
+ }
+
+ /**
+ * @covers UserArrayFromResult::__construct
+ */
+ public function testConstructionWithRow() {
+ $username = 'addshore';
+ $row = $this->getRowWithUsername( $username );
+ $resultWrapper = $this->getMockResultWrapper( $row );
+
+ $object = $this->getUserArrayFromResult( $resultWrapper );
+
+ $this->assertEquals( $resultWrapper, $object->res );
+ $this->assertSame( 0, $object->key );
+ $this->assertInstanceOf( 'User', $object->current );
+ $this->assertEquals( $username, $object->current->mName );
+ }
+
+ public function provideNumberOfRows() {
+ return array(
+ array( 0 ),
+ array( 1 ),
+ array( 122 ),
+ );
+ }
+
+ /**
+ * @dataProvider provideNumberOfRows
+ * @covers UserArrayFromResult::count
+ */
+ public function testCountWithVaryingValues( $numRows ) {
+ $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $this->getRowWithUsername(), $numRows ) );
+ $this->assertEquals( $numRows, $object->count() );
+ }
+
+ /**
+ * @covers UserArrayFromResult::current
+ */
+ public function testCurrentAfterConstruction() {
+ $username = 'addshore';
+ $userRow = $this->getRowWithUsername( $username );
+ $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $userRow ) );
+ $this->assertInstanceOf( 'User', $object->current() );
+ $this->assertEquals( $username, $object->current()->mName );
+ }
+
+ public function provideTestValid() {
+ return array(
+ array( $this->getRowWithUsername(), true ),
+ array( false, false ),
+ );
+ }
+
+ /**
+ * @dataProvider provideTestValid
+ * @covers UserArrayFromResult::valid
+ */
+ public function testValid( $input, $expected ) {
+ $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $input ) );
+ $this->assertEquals( $expected, $object->valid() );
+ }
+
+ //@todo unit test for key()
+ //@todo unit test for next()
+ //@todo unit test for rewind()
+
+}
\ No newline at end of file
$this->assertEquals( $wgDefaultUserOptions['cols'], $this->user->getOption( 'cols' ) );
$this->assertEquals( 'test', $this->user->getOption( 'someoption' ) );
}
+
+ /**
+ * Helper, fetch user properties from the database.
+ * @param int $userId
+ */
+ function dbUserProperties( $userId ) {
+ $res = wfGetDB( DB_SLAVE )->select(
+ 'user_properties',
+ array( 'up_property', 'up_value' ),
+ array( 'up_user' => $userId ),
+ __METHOD__
+ );
+ $ret = array();
+ foreach( $res as $row ) {
+ $ret[$row->up_property] = $row->up_value;
+ }
+ return $ret;
+ }
+
+ public function testOnlySaveChangedOptions() {
+ $user = User::newFromName( 'UnitTestUser2' );
+ $user->addToDatabase();
+
+ // Fresh user only has default, so nothing should be in the DB
+ $dbProps = $this->dbUserProperties( $user->getId() );
+ $this->assertEmpty( $dbProps,
+ "A new user should not have any user property saved in the DB" );
+
+ // Make sure we only save the altered option
+ $user->setOption( 'changed_opt', 'alix_20281' );
+ $user->setOption( 'switch', 1 );
+ $user->setOption( 'anotherswitch', 1 );
+ $user->saveSettings();
+
+ $expected = array (
+ 'changed_opt' => 'alix_20281',
+ 'switch' => '1',
+ 'anotherswitch' => '1',
+ );
+ $dbProps = $this->dbUserProperties( $user->getId() );
+
+ $this->assertEquals( $expected, $dbProps,
+ "non default options should be saved, and default ones should not" );
+
+ }
}
*/
class ApiFormatPhpTest extends ApiFormatTestBase {
- public function testValidyntax( ) {
+ public function testValidSyntax( ) {
$data = $this->apiRequest( 'php', array( 'action' => 'query', 'meta' => 'siteinfo' ) );
$this->assertInternalType( 'array', unserialize( $data ) );
--- /dev/null
+<?php
+
+class GlobalConfigTest extends MediaWikiTestCase {
+
+ /** @var GlobalConfig $config */
+ protected $config;
+
+ protected function setUp() {
+ parent::setUp();
+ $this->config = new GlobalConfig;
+ }
+
+ public static function provideGet() {
+ return array(
+ array( 'wgSitename', array( 'Sitename' ) ),
+ array( 'wgFoo', array( 'Foo' ) ),
+ array( 'efVariable', array( 'Variable', 'ef' ) ),
+ array( 'Foo', array( 'Foo', '' ) ),
+ );
+ }
+
+ /**
+ * @param string $name
+ * @param array $params
+ * @dataProvider provideGet
+ * @covers GlobalConfig::get
+ */
+ public function testGet( $name, $params ) {
+ $rand = wfRandom();
+ $old = isset( $GLOBALS[$name] ) ? $GLOBALS[$name] : null;
+ $GLOBALS[$name] = $rand;
+ $out = call_user_func_array( array( $this->config, 'get' ), $params );
+ $this->assertEquals( $rand, $out );
+ if ( $old ) {
+ $GLOBALS[$name] = $old;
+ }
+ }
+}
* @group Database
*/
class RefreshLinksPartitionTest extends MediaWikiTestCase {
- function __construct( $name = null, array $data = array(), $dataName = '' ) {
+ public function __construct( $name = null, array $data = array(), $dataName = '' ) {
parent::__construct( $name, $data, $dataName );
$this->tablesUsed[] = 'page';
public function testRefreshLinks( $ns, $dbKey, $pages ) {
$title = Title::makeTitle( $ns, $dbKey );
- $dbw = wfGetDB( DB_MASTER );
-
- $rows = array();
foreach ( $pages as $page ) {
list( $bns, $bdbkey ) = $page;
$bpage = WikiPage::factory( Title::makeTitle( $bns, $bdbkey ) );
* @covers BitmapMetadataHandler::Jpeg
*/
public function testMultilingualCascade() {
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
- if ( !extension_loaded( 'xml' ) ) {
- $this->markTestSkipped( "This test needs the xml extension." );
- }
+ $this->checkPHPExtension( 'exif' );
+ $this->checkPHPExtension( 'xml' );
$this->setMwGlobals( 'wgShowEXIF', true );
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
+ $this->checkPHPExtension( 'exif' );
$this->setMwGlobals( 'wgShowEXIF', true );
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
+ $this->checkPHPExtension( 'exif' );
$this->handler = new BitmapHandler();
$filePath = __DIR__ . '/../../data/media';
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
+ $this->checkPHPExtension( 'exif' );
$this->mediaPath = __DIR__ . '/../../data/media/';
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
+ $this->checkPHPExtension( 'exif' );
$filePath = __DIR__ . '/../../data/media';
$this->backend = new FSFileBackend( array(
'name' => 'localtesting',
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
+ $this->checkPHPExtension( 'exif' );
$this->filePath = __DIR__ . '/../../data/media/';
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'exif' ) ) {
- $this->markTestSkipped( "This test needs the exif extension." );
- }
+ $this->checkPHPExtension( 'exif' );
$this->setMwGlobals( 'wgShowEXIF', true );
protected function setUp() {
parent::setUp();
- if ( !extension_loaded( 'xml' ) ) {
- $this->markTestSkipped( 'Requires libxml to do XMP parsing' );
- }
+ $this->checkPHPExtension( 'exif' ); # Requires libxml to do XMP parsing
}
/**
$this->assertConditions(
array( # expected
'rc_bot' => 0,
- #0 => "rc_timestamp >= '20110223000000'",
- 1 => "rc_namespace = '0'",
+ 0 => "rc_namespace = '0'",
),
array(
'namespace' => NS_MAIN,
public function testRcNsFilterInversion() {
$this->assertConditions(
array( # expected
- #0 => "rc_timestamp >= '20110223000000'",
'rc_bot' => 0,
- 1 => sprintf( "rc_namespace != '%s'", NS_MAIN ),
+ 0 => sprintf( "rc_namespace != '%s'", NS_MAIN ),
),
array(
'namespace' => NS_MAIN,
public function testRcNsFilterAssociation( $ns1, $ns2 ) {
$this->assertConditions(
array( # expected
- #0 => "rc_timestamp >= '20110223000000'",
'rc_bot' => 0,
- 1 => sprintf( "(rc_namespace = '%s' OR rc_namespace = '%s')", $ns1, $ns2 ),
+ 0 => sprintf( "(rc_namespace = '%s' OR rc_namespace = '%s')", $ns1, $ns2 ),
),
array(
'namespace' => $ns1,
public function testRcNsFilterAssociationWithInversion( $ns1, $ns2 ) {
$this->assertConditions(
array( # expected
- #0 => "rc_timestamp >= '20110223000000'",
'rc_bot' => 0,
- 1 => sprintf( "(rc_namespace != '%s' AND rc_namespace != '%s')", $ns1, $ns2 ),
+ 0 => sprintf( "(rc_namespace != '%s' AND rc_namespace != '%s')", $ns1, $ns2 ),
),
array(
'namespace' => $ns1,
protected static function checkAutoLoadConf() {
global $wgAutoloadLocalClasses, $wgAutoloadClasses, $IP;
- $supportsParsekit = function_exists( 'parsekit_compile_file' );
// wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
$expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
} else {
$filePath = $file;
}
- if ( $supportsParsekit ) {
- $parseInfo = parsekit_compile_file( "$filePath" );
- $classes = array_keys( $parseInfo['class_table'] );
- } else {
- $contents = file_get_contents( "$filePath" );
- $m = array();
- preg_match_all( '/\n\s*(?:final)?\s*(?:abstract)?\s*(?:class|interface)\s+([a-zA-Z0-9_]+)/', $contents, $m, PREG_PATTERN_ORDER );
- $classes = $m[1];
+
+ $contents = file_get_contents( $filePath );
+
+ // We could use token_get_all() here, but this is faster
+ $matches = array();
+ preg_match_all( '/
+ ^ [\t ]* (?:
+ (?:final\s+)? (?:abstract\s+)? (?:class|interface) \s+
+ (?P<class> [a-zA-Z0-9_]+)
+ |
+ class_alias \s* \( \s*
+ ([\'"]) (?P<original> [^\'"]+) \g{-2} \s* , \s*
+ ([\'"]) (?P<alias> [^\'"]+ ) \g{-2} \s*
+ \) \s* ;
+ )
+ /imx', $contents, $matches, PREG_SET_ORDER );
+
+ $classesInFile = array();
+ $aliasesInFile = array();
+
+ foreach ( $matches as $match ) {
+ if ( !empty( $match['class'] ) ) {
+ $actual[$match['class']] = $file;
+ $classesInFile[$match['class']] = true;
+ } else {
+ $aliasesInFile[$match['alias']] = $match['original'];
+ }
}
- foreach ( $classes as $class ) {
- $actual[$class] = $file;
+
+ // Only accept aliases for classes in the same file, because for correct
+ // behavior, all aliases for a class must be set up when the class is loaded
+ // (see <https://bugs.php.net/bug.php?id=61422>).
+ foreach ( $aliasesInFile as $alias => $class ) {
+ if ( isset( $classesInFile[$class] ) ) {
+ $actual[$alias] = $file;
+ } else {
+ $actual[$alias] = "[original class not in $file]";
+ }
}
}
<group>Stub</group>
</exclude>
</groups>
+ <filter>
+ <whitelist addUncoveredFilesFromWhitelist="true">
+ <directory suffix=".php">../../includes</directory>
+ <directory suffix=".php">../../languages</directory>
+ <directory suffix=".php">../../maintenance</directory>
+ <directory suffix=".php">../../resources</directory>
+ <directory suffix=".php">../../skins</directory>
+ </whitelist>
+ </filter>
</phpunit>