* (T78737) action=expandtemplates can now return page properties.
* (T78690) list=allimages now accepts multiple pipe-separated values
for the 'aimime' parameter.
+* prop=info with inprop=protections will now return applicable protection types
+ with the 'restrictiontypes' key.
=== Action API internal changes in 1.25 ===
* ApiHelp has been rewritten to support i18n and paginated HTML output.
'ForeignDBFile' => __DIR__ . '/includes/filerepo/file/ForeignDBFile.php',
'ForeignDBRepo' => __DIR__ . '/includes/filerepo/ForeignDBRepo.php',
'ForeignDBViaLBRepo' => __DIR__ . '/includes/filerepo/ForeignDBViaLBRepo.php',
+ 'ForeignTitle' => __DIR__ . '/includes/title/ForeignTitle.php',
+ 'ForeignTitleFactory' => __DIR__ . '/includes/title/ForeignTitleFactory.php',
'ForkController' => __DIR__ . '/includes/ForkController.php',
'FormAction' => __DIR__ . '/includes/actions/FormAction.php',
'FormOptions' => __DIR__ . '/includes/FormOptions.php',
'ImportSiteScripts' => __DIR__ . '/maintenance/importSiteScripts.php',
'ImportStreamSource' => __DIR__ . '/includes/Import.php',
'ImportStringSource' => __DIR__ . '/includes/Import.php',
+ 'ImportTitleFactory' => __DIR__ . '/includes/title/ImportTitleFactory.php',
'IncludableSpecialPage' => __DIR__ . '/includes/specialpage/IncludableSpecialPage.php',
'IndexPager' => __DIR__ . '/includes/pager/IndexPager.php',
'InfoAction' => __DIR__ . '/includes/actions/InfoAction.php',
'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php',
'MysqlInstaller' => __DIR__ . '/includes/installer/MysqlInstaller.php',
'MysqlUpdater' => __DIR__ . '/includes/installer/MysqlUpdater.php',
+ 'NaiveForeignTitleFactory' => __DIR__ . '/includes/title/NaiveForeignTitleFactory.php',
+ 'NaiveImportTitleFactory' => __DIR__ . '/includes/title/NaiveImportTitleFactory.php',
+ 'NamespaceAwareForeignTitleFactory' => __DIR__ . '/includes/title/NamespaceAwareForeignTitleFactory.php',
'NamespaceConflictChecker' => __DIR__ . '/maintenance/namespaceDupes.php',
+ 'NamespaceImportTitleFactory' => __DIR__ . '/includes/title/NamespaceImportTitleFactory.php',
'NewFilesPager' => __DIR__ . '/includes/specials/SpecialNewimages.php',
'NewPagesPager' => __DIR__ . '/includes/specials/SpecialNewpages.php',
'NewUsersLogFormatter' => __DIR__ . '/includes/logging/NewUsersLogFormatter.php',
'StubObject' => __DIR__ . '/includes/StubObject.php',
'StubUserLang' => __DIR__ . '/includes/StubObject.php',
'SubmitAction' => __DIR__ . '/includes/actions/SubmitAction.php',
+ 'SubpageImportTitleFactory' => __DIR__ . '/includes/title/SubpageImportTitleFactory.php',
'SvgHandler' => __DIR__ . '/includes/media/SVG.php',
'SwiftFileBackend' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
'SwiftFileBackendDirList' => __DIR__ . '/includes/filebackend/SwiftFileBackend.php',
'AfterImportPage': When a page import is completed.
$title: Title under which the revisions were imported
-$origTitle: Title provided by the XML file
+$foreignTitle: ForeignTitle object based on data provided by the XML file
$revCount: Number of revisions in the XML file
$sRevCount: Number of successfully imported revisions
$pageInfo: associative array of page information
*/
class WikiImporter {
private $reader = null;
+ private $foreignNamespaces = null;
private $mLogItemCallback, $mUploadCallback, $mRevisionCallback, $mPageCallback;
- private $mSiteInfoCallback, $mTargetNamespace, $mTargetRootPage, $mPageOutCallback;
+ private $mSiteInfoCallback, $mTargetNamespace, $mPageOutCallback;
private $mNoticeCallback, $mDebug;
private $mImportUploads, $mImageBasePath;
private $mNoUpdates = false;
/** @var Config */
private $config;
+ /** @var ImportTitleFactory */
+ private $importTitleFactory;
/**
* Creates an ImportXMLReader drawing from the source provided
$this->setUploadCallback( array( $this, 'importUpload' ) );
$this->setLogItemCallback( array( $this, 'importLogItem' ) );
$this->setPageOutCallback( array( $this, 'finishImportPage' ) );
+
+ $this->importTitleFactory = new NaiveImportTitleFactory();
}
/**
return $previous;
}
+ /**
+ * Sets the factory object to use to convert ForeignTitle objects into local
+ * Title objects
+ * @param ImportTitleFactory $factory
+ */
+ public function setImportTitleFactory( $factory ) {
+ $this->importTitleFactory = $factory;
+ }
+
/**
* Set a target namespace to override the defaults
* @param null|int $namespace
if ( is_null( $namespace ) ) {
// Don't override namespaces
$this->mTargetNamespace = null;
- } elseif ( $namespace >= 0 ) {
- // @todo FIXME: Check for validity
- $this->mTargetNamespace = intval( $namespace );
+ $this->setImportTitleFactory( new NaiveImportTitleFactory() );
+ return true;
+ } elseif (
+ $namespace >= 0 &&
+ MWNamespace::exists( intval( $namespace ) )
+ ) {
+ $namespace = intval( $namespace );
+ $this->mTargetNamespace = $namespace;
+ $this->setImportTitleFactory( new NamespaceImportTitleFactory( $namespace ) );
+ return true;
} else {
return false;
}
$status = Status::newGood();
if ( is_null( $rootpage ) ) {
// No rootpage
- $this->mTargetRootPage = null;
+ $this->setImportTitleFactory( new NaiveImportTitleFactory() );
} elseif ( $rootpage !== '' ) {
$rootpage = rtrim( $rootpage, '/' ); //avoid double slashes
$title = Title::newFromText( $rootpage, !is_null( $this->mTargetNamespace )
: $wgContLang->getNsText( $title->getNamespace() );
$status->fatal( 'import-rootpage-nosubpage', $displayNSText );
} else {
- // set namespace to 'all', so the namespace check in processTitle() can passed
+ // set namespace to 'all', so the namespace check in processTitle() can pass
$this->setTargetNamespace( null );
- $this->mTargetRootPage = $title->getPrefixedDBkey();
+ $this->setImportTitleFactory( new SubpageImportTitleFactory( $title ) );
}
}
}
/**
* Mostly for hook use
* @param Title $title
- * @param string $origTitle
+ * @param ForeignTitle $foreignTitle
* @param int $revCount
* @param int $sRevCount
* @param array $pageInfo
* @return bool
*/
- public function finishImportPage( $title, $origTitle, $revCount, $sRevCount, $pageInfo ) {
+ public function finishImportPage( $title, $foreignTitle, $revCount,
+ $sRevCount, $pageInfo ) {
$args = func_get_args();
return Hooks::run( 'AfterImportPage', $args );
}
$this->debug( "-- Text: " . $revision->text );
}
+ /**
+ * Notify the callback function of site info
+ * @param array $siteInfo
+ * @return bool|mixed
+ */
+ private function siteInfoCallback( $siteInfo ) {
+ if ( isset( $this->mSiteInfoCallback ) ) {
+ return call_user_func_array( $this->mSiteInfoCallback,
+ array( $siteInfo, $this ) );
+ } else {
+ return false;
+ }
+ }
+
/**
* Notify the callback function when a new "<page>" is reached.
* @param Title $title
/**
* Notify the callback function when a "</page>" is closed.
* @param Title $title
- * @param Title $origTitle
+ * @param ForeignTitle $foreignTitle
* @param int $revCount
* @param int $sucCount Number of revisions for which callback returned true
* @param array $pageInfo Associative array of page information
*/
- private function pageOutCallback( $title, $origTitle, $revCount, $sucCount, $pageInfo ) {
+ private function pageOutCallback( $title, $foreignTitle, $revCount,
+ $sucCount, $pageInfo ) {
if ( isset( $this->mPageOutCallback ) ) {
$args = func_get_args();
call_user_func_array( $this->mPageOutCallback, $args );
return true;
}
- /**
- * @return bool
- * @throws MWException
- */
private function handleSiteInfo() {
- // Site info is useful, but not actually used for dump imports.
- // Includes a quick short-circuit to save performance.
- if ( !$this->mSiteInfoCallback ) {
- $this->reader->next();
- return true;
+ $this->debug( "Enter site info handler." );
+ $siteInfo = array();
+
+ // Fields that can just be stuffed in the siteInfo object
+ $normalFields = array( 'sitename', 'base', 'generator', 'case' );
+
+ while ( $this->reader->read() ) {
+ if ( $this->reader->nodeType == XmlReader::END_ELEMENT &&
+ $this->reader->name == 'siteinfo' ) {
+ break;
+ }
+
+ $tag = $this->reader->name;
+
+ if ( $tag == 'namespace' ) {
+ $this->foreignNamespaces[ $this->nodeAttribute( 'key' ) ] =
+ $this->nodeContents();
+ } elseif ( in_array( $tag, $normalFields ) ) {
+ $siteInfo[$tag] = $this->nodeContents();
+ }
}
- throw new MWException( "SiteInfo tag is not yet handled, do not set mSiteInfoCallback" );
+
+ $siteInfo['_namespaces'] = $this->foreignNamespaces;
+ $this->siteInfoCallback( $siteInfo );
}
private function handleLogItem() {
$pageInfo = array( 'revisionCount' => 0, 'successfulRevisionCount' => 0 );
// Fields that can just be stuffed in the pageInfo object
- $normalFields = array( 'title', 'id', 'redirect', 'restrictions' );
+ $normalFields = array( 'title', 'ns', 'id', 'redirect', 'restrictions' );
$skip = false;
$badTitle = false;
break;
}
+ $skip = false;
+
$tag = $this->reader->name;
if ( $badTitle ) {
$pageInfo[$tag] = $this->nodeAttribute( 'title' );
} else {
$pageInfo[$tag] = $this->nodeContents();
- if ( $tag == 'title' ) {
- $title = $this->processTitle( $pageInfo['title'] );
+ }
+ } elseif ( $tag == 'revision' || $tag == 'upload' ) {
+ if ( !isset( $title ) ) {
+ $title = $this->processTitle( $pageInfo['title'],
+ isset( $pageInfo['ns'] ) ? $pageInfo['ns'] : null );
+
+ if ( !$title ) {
+ $badTitle = true;
+ $skip = true;
+ }
- if ( !$title ) {
- $badTitle = true;
- $skip = true;
- }
+ $this->pageCallback( $title );
+ list( $pageInfo['_title'], $foreignTitle ) = $title;
+ }
- $this->pageCallback( $title );
- list( $pageInfo['_title'], $origTitle ) = $title;
+ if ( $title ) {
+ if ( $tag == 'revision' ) {
+ $this->handleRevision( $pageInfo );
+ } else {
+ $this->handleUpload( $pageInfo );
}
}
- } elseif ( $tag == 'revision' ) {
- $this->handleRevision( $pageInfo );
- } elseif ( $tag == 'upload' ) {
- $this->handleUpload( $pageInfo );
} elseif ( $tag != '#text' ) {
$this->warn( "Unhandled page XML tag $tag" );
$skip = true;
}
}
- $this->pageOutCallback( $pageInfo['_title'], $origTitle,
+ $this->pageOutCallback( $pageInfo['_title'], $foreignTitle,
$pageInfo['revisionCount'],
$pageInfo['successfulRevisionCount'],
$pageInfo );
/**
* @param string $text
+ * @param string|null $ns
* @return array|bool
*/
- private function processTitle( $text ) {
- $workTitle = $text;
- $origTitle = Title::newFromText( $workTitle );
-
- if ( !is_null( $this->mTargetNamespace ) && !is_null( $origTitle ) ) {
- # makeTitleSafe, because $origTitle can have a interwiki (different setting of interwiki map)
- # and than dbKey can begin with a lowercase char
- $title = Title::makeTitleSafe( $this->mTargetNamespace,
- $origTitle->getDBkey() );
+ private function processTitle( $text, $ns = null ) {
+ if ( is_null( $this->foreignNamespaces ) ) {
+ $foreignTitleFactory = new NaiveForeignTitleFactory();
} else {
- if ( !is_null( $this->mTargetRootPage ) ) {
- $workTitle = $this->mTargetRootPage . '/' . $workTitle;
- }
- $title = Title::newFromText( $workTitle );
+ $foreignTitleFactory = new NamespaceAwareForeignTitleFactory(
+ $this->foreignNamespaces );
}
+ $foreignTitle = $foreignTitleFactory->createForeignTitle( $text,
+ intval( $ns ) );
+
+ $title = $this->importTitleFactory->createTitleFromForeignTitle(
+ $foreignTitle );
+
$commandLineMode = $this->config->get( 'CommandLineMode' );
if ( is_null( $title ) ) {
# Invalid page title? Ignore the page
- $this->notice( 'import-error-invalid', $workTitle );
+ $this->notice( 'import-error-invalid', $foreignTitle->getFullText() );
return false;
} elseif ( $title->isExternal() ) {
$this->notice( 'import-error-interwiki', $title->getPrefixedText() );
return false;
}
- return array( $title, $origTitle );
+ return array( $title, $foreignTitle );
}
}
$uselang = $this->getParameter( 'uselang' );
if ( $uselang === 'user' ) {
- $uselang = $this->getUser()->getOption( 'language' );
- $uselang = RequestContext::sanitizeLangCode( $uselang );
- Hooks::run( 'UserGetLanguageObject', array( $this->getUser(), &$uselang, $this ) );
- } elseif ( $uselang === 'content' ) {
- global $wgContLang;
- $uselang = $wgContLang->getCode();
- }
- $code = RequestContext::sanitizeLangCode( $uselang );
- $this->getContext()->setLanguage( $code );
- if ( !$this->mInternalMode ) {
- global $wgLang;
- $wgLang = $this->getContext()->getLanguage();
- RequestContext::getMain()->setLanguage( $wgLang );
+ // Assume the parent context is going to return the user language
+ // for uselang=user (see T85635).
+ } else {
+ if ( $uselang === 'content' ) {
+ global $wgContLang;
+ $uselang = $wgContLang->getCode();
+ }
+ $code = RequestContext::sanitizeLangCode( $uselang );
+ $this->getContext()->setLanguage( $code );
+ if ( !$this->mInternalMode ) {
+ global $wgLang;
+ $wgLang = $this->getContext()->getLanguage();
+ RequestContext::getMain()->setLanguage( $wgLang );
+ }
}
$config = $this->getConfig();
private $pageRestrictions, $pageIsRedir, $pageIsNew, $pageTouched,
$pageLatest, $pageLength;
- private $protections, $watched, $watchers, $notificationtimestamps,
+ private $protections, $restrictionTypes, $watched, $watchers, $notificationtimestamps,
$talkids, $subjectids, $displaytitles;
private $showZeroWatchers = false;
$this->protections[$ns][$dbkey];
}
$this->getResult()->setIndexedTagName( $pageInfo['protection'], 'pr' );
+
+ $pageInfo['restrictiontypes'] = array();
+ if ( isset( $this->restrictionTypes[$ns][$dbkey] ) ) {
+ $pageInfo['restrictiontypes'] =
+ $this->restrictionTypes[$ns][$dbkey];
+ }
+ $this->getResult()->setIndexedTagName( $pageInfo['restrictiontypes'], 'rt' );
}
if ( $this->fld_watched && isset( $this->watched[$ns][$dbkey] ) ) {
}
}
- // Cascading protections
+ // Separate good and missing titles into files and other pages
+ // and populate $this->restrictionTypes
$images = $others = array();
foreach ( $this->everything as $title ) {
if ( $title->getNamespace() == NS_FILE ) {
} else {
$others[] = $title;
}
+ // Applicable protection types
+ $this->restrictionTypes[$title->getNamespace()][$title->getDBkey()] =
+ array_values( $title->getRestrictionTypes() );
}
if ( count( $others ) ) {
"apihelp-compare-param-toid": "ID другой старонкі для параўнаньня.",
"apihelp-compare-param-torev": "Другая вэрсія для параўнаньня.",
"apihelp-compare-example-1": "Паказвае розьніцу паміж вэрсіямі 1 і 2",
- "apihelp-createaccount-description": "Стварэньне новага рахунку ўдзельніка."
+ "apihelp-createaccount-description": "Стварэньне новага рахунку ўдзельніка.",
+ "apihelp-createaccount-param-name": "Імя ўдзельніка."
}
{
"@metadata": {
"authors": [
- "Nike"
+ "Nike",
+ "MrTapsa"
]
},
+ "apihelp-query+linkshere-param-show": "Näytä vain kohteet, jotka täyttävät nämä kriteerit:\n;redirect:Näytä vain uudelleenohjaukset.\n;!redirect:Näytä vain ei-uudelleenohjaukset",
"apihelp-upload-param-stash": "Mikäli valittu, palvelin säilöö tiedoston väliaikaisesti tallentamisen sijaan."
}
"apihelp-query+allmessages-example-ipb": "Visa meddelanden som börjar med \"ipb-\"",
"apihelp-query+allmessages-example-de": "Visa meddelandena \"august\" och \"mainpage\" på tyska",
"apihelp-query+allpages-param-filterredir": "Vilka sidor att lista.",
+ "apihelp-query+allusers-param-dir": "Riktning att sortera i.",
+ "apihelp-query+allusers-example-Y": "Lista användare som börjar på Y",
"apihelp-query+revisions-example-first5-not-localhost": "Hämta första 5 revideringarna av \"huvudsidan\" och som inte gjorts av anonym användare \"127.0.0.1\"",
"apihelp-query+stashimageinfo-description": "Returnerar filinformation för temporära filer.",
"apihelp-query+stashimageinfo-param-filekey": "Nyckel som identifierar en tidigare uppladdning som lagrats temporärt.",
$request = $this->getRequest();
$user = $this->getUser();
- $code = $request->getVal( 'uselang', $user->getOption( 'language' ) );
+ $code = $request->getVal( 'uselang', 'user' );
+ if ( $code === 'user' ) {
+ $code = $user->getOption( 'language' );
+ }
$code = self::sanitizeLangCode( $code );
Hooks::run( 'UserGetLanguageObject', array( $user, &$code, $this ) );
} else {
wfDebugLog( 'error', $log );
}
+
+ $json = self::jsonSerializeException( $e, false, FormatJson::ALL_OK );
+ if ( $json !== false ) {
+ wfDebugLog( 'error-json', $json, 'private' );
+ }
}
}
if ( $exists ) {
# Create a null revision
$latest = $descTitle->getLatestRevID();
- $editSummary = LogFormatter::newFromEntry( $logEntry )->getPlainActionText();
+ // Use own context to get the action text in content language
+ $formatter = LogFormatter::newFromEntry( $logEntry );
+ $formatter->setContext( RequestContext::newExtraneousContext( $descTitle ) );
+ $editSummary = $formatter->getPlainActionText();
$nullRevision = Revision::newNullRevision(
$dbw,
}
function doBatchLookups() {
+ parent::doBatchLookups();
+
$uids = array();
foreach ( $this->mResult as $row ) {
$uids[] = $row->user_id;
// Note: This is a different loop than for user rights,
// because we're reusing it to build the group links
// at the same time
- foreach ( $user->getGroups() as $group ) {
+ $groups_list = self::getGroups( intval( $row->user_id ), $this->userGroupCache );
+ foreach ( $groups_list as $group ) {
if ( in_array( $group, $this->hideGroups ) ) {
return '';
}
/**
* @param Title $title
- * @param Title $origTitle
+ * @param ForeignTitle $foreignTitle
* @param int $revisionCount
* @param int $successCount
* @param array $pageInfo
* @return void
*/
- function reportPage( $title, $origTitle, $revisionCount, $successCount, $pageInfo ) {
+ function reportPage( $title, $foreignTitle, $revisionCount,
+ $successCount, $pageInfo ) {
$args = func_get_args();
call_user_func_array( $this->mOriginalPageOutCallback, $args );
$log->addEntry( 'upload', $title, $detail, array(), $this->getUser() );
} else {
$interwiki = '[[:' . $this->mInterwiki . ':' .
- $origTitle->getPrefixedText() . ']]';
+ $foreignTitle->getFullText() . ']]';
$detail = $this->msg( 'import-logentry-interwiki-detail' )->numParams(
$successCount )->params( $interwiki )->inContentLanguage()->text();
if ( $this->reason ) {
/**
* @var array A array with user ids as key and a array of groups as value
*/
- private $userGroupCache;
+ protected $userGroupCache;
/**
* @param IContextSource $context
// ... and license information; if a license file exists we
// will link to it
$licenseLink = '';
- if ( isset( $extension['license-name'] ) ) {
- $licenseLink = Linker::link(
- $this->getPageTitle( 'License/' . $extensionName ),
- $out->parseInline( $extension['license-name'] ),
- array(
- 'class' => 'mw-version-ext-license',
- 'dir' => 'auto',
- )
- );
- } elseif ( $this->getExtLicenseFileName( $extensionPath ) ) {
- $licenseLink = Linker::link(
- $this->getPageTitle( 'License/' . $extensionName ),
- $this->msg( 'version-ext-license' ),
- array(
- 'class' => 'mw-version-ext-license',
- 'dir' => 'auto',
- )
- );
+ if ( isset( $extension['name'] ) ) {
+ $licenseName = null;
+ if ( isset( $extension['license-name'] ) ) {
+ $licenseName = $out->parseInline( $extension['license-name'] );
+ } elseif ( $this->getExtLicenseFileName( $extensionPath ) ) {
+ $licenseName = $this->msg( 'version-ext-license' );
+ }
+ if ( $licenseName !== null ) {
+ $licenseLink = Linker::link(
+ $this->getPageTitle( 'License/' . $extension['name'] ),
+ $licenseName,
+ array(
+ 'class' => 'mw-version-ext-license',
+ 'dir' => 'auto',
+ )
+ );
+ }
}
// ... and generate the description; which can be a parameterized l10n message
--- /dev/null
+<?php
+/**
+ * A structure to hold the title of a page on a foreign MediaWiki installation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author This, that and the other
+ */
+
+/**
+ * A simple, immutable structure to hold the title of a page on a foreign
+ * MediaWiki installation.
+ */
+class ForeignTitle {
+ /**
+ * @var int|null
+ * Null if we don't know the namespace ID (e.g. interwiki links)
+ */
+ protected $namespaceId;
+ /** @var string */
+ protected $namespaceName;
+ /** @var string */
+ protected $pageName;
+
+ /**
+ * Creates a new ForeignTitle object.
+ *
+ * @param int|null $namespaceId Null if the namespace ID is unknown (e.g.
+ * interwiki links)
+ * @param string $namespaceName
+ * @param string $pageName
+ */
+ public function __construct( $namespaceId, $namespaceName, $pageName ) {
+ if ( is_null( $namespaceId ) ) {
+ $this->namespaceId = null;
+ } else {
+ $this->namespaceId = intval( $namespaceId );
+ }
+ $this->namespaceName = str_replace( ' ', '_', $namespaceName );
+ $this->pageName = str_replace( ' ', '_', $pageName );
+ }
+
+ /**
+ * Do we know the namespace ID of the page on the foreign wiki?
+ * @return bool
+ */
+ public function isNamespaceIdKnown() {
+ return !is_null( $this->namespaceId );
+ }
+
+ /**
+ * @return int
+ * @throws MWException If isNamespaceIdKnown() is false, it does not make
+ * sense to call this function.
+ */
+ public function getNamespaceId() {
+ if ( is_null( $this->namespaceId ) ) {
+ throw new MWException(
+ "Attempted to call getNamespaceId when the namespace ID is not known" );
+ }
+ return $this->namespaceId;
+ }
+
+ /** @return string */
+ public function getNamespaceName() {
+ return $this->namespaceName;
+ }
+
+ /** @return string */
+ public function getText() {
+ return $this->pageName;
+ }
+
+ /** @return string */
+ public function getFullText() {
+ $result = '';
+ if ( $this->namespaceName ) {
+ $result .= $this->namespaceName . ':';
+ }
+ $result .= $this->pageName;
+ return $result;
+ }
+
+ /**
+ * Returns a string representation of the title, for logging. This is purely
+ * informative and must not be used programmatically. Use the appropriate
+ * ImportTitleFactory to generate the correct string representation for a
+ * given use.
+ *
+ * @return string
+ */
+ public function __toString() {
+ $name = '';
+ if ( $this->isNamespaceIdKnown() ) {
+ $name .= '{ns' . $this->namespaceId . '}';
+ } else {
+ $name .= '{ns??}';
+ }
+ $name .= $this->namespaceName . ':' . $this->pageName;
+
+ return $name;
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * A parser that translates page titles into ForeignTitle objects.
+ */
+interface ForeignTitleFactory {
+ /**
+ * Creates a ForeignTitle object based on the page title, and optionally the
+ * namespace ID, of a page on a foreign wiki. These values could be, for
+ * example, the <title> and <ns> attributes found in an XML dump.
+ *
+ * @param string $title The page title
+ * @param int|null $ns The namespace ID, or null if this data is not available
+ * @return ForeignTitle
+ */
+ public function createForeignTitle( $title, $ns = null );
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * Represents an object that can convert page titles on a foreign wiki
+ * (ForeignTitle objects) into page titles on the local wiki (Title objects).
+ */
+interface ImportTitleFactory {
+ /**
+ * Determines which local title best corresponds to the given foreign title.
+ * If such a title can't be found or would be locally invalid, null is
+ * returned.
+ *
+ * @param ForeignTitle $foreignTitle The ForeignTitle to convert
+ * @return Title|null
+ */
+ public function createTitleFromForeignTitle( ForeignTitle $foreignTitle );
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * A parser that translates page titles on a foreign wiki into ForeignTitle
+ * objects, with no knowledge of the namespace setup on the foreign site.
+ */
+class NaiveForeignTitleFactory implements ForeignTitleFactory {
+ /**
+ * Creates a ForeignTitle object based on the page title, and optionally the
+ * namespace ID, of a page on a foreign wiki. These values could be, for
+ * example, the <title> and <ns> attributes found in an XML dump.
+ *
+ * Although exported XML dumps have contained a map of namespace IDs to names
+ * since MW 1.5, the importer used to completely ignore the <siteinfo> tag
+ * before MW 1.25. It is therefore possible that custom XML dumps (i.e. not
+ * generated by Special:Export) have been created without this metadata.
+ * As a result, this code falls back to using namespace data for the local
+ * wiki (similar to buggy pre-1.25 behaviour) if $ns is not supplied.
+ *
+ * @param string $title The page title
+ * @param int|null $ns The namespace ID, or null if this data is not available
+ * @return ForeignTitle
+ */
+ public function createForeignTitle( $title, $ns = null ) {
+ $pieces = explode( ':', $title, 2 );
+
+ global $wgContLang;
+
+ // Can we assume that the part of the page title before the colon is a
+ // namespace name?
+ //
+ // XML export schema version 0.5 and earlier (MW 1.18 and earlier) does not
+ // contain a <ns> tag, so we need to be able to handle that case.
+ //
+ // If we know the namespace ID, we assume a non-zero namespace ID means
+ // the ':' sets off a valid namespace name. If we don't know the namespace
+ // ID, we fall back to using the local wiki's namespace names to resolve
+ // this -- better than nothing, and mimics the old crappy behavior
+ $isNamespacePartValid = is_null( $ns ) ?
+ ( $wgContLang->getNsIndex( $pieces[0] ) !== false ) :
+ $ns != 0;
+
+ if ( count( $pieces ) === 2 && $isNamespacePartValid ) {
+ list( $namespaceName, $pageName ) = $pieces;
+ } else {
+ $namespaceName = '';
+ $pageName = $title;
+ }
+
+ return new ForeignTitle( $ns, $namespaceName, $pageName );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * A class to convert page titles on a foreign wiki (ForeignTitle objects) into
+ * page titles on the local wiki (Title objects), using a default namespace
+ * mapping.
+ *
+ * For built-in namespaces (0 <= ID < 100), we try to find a local namespace
+ * with the same namespace ID as the foreign page. If no such namespace exists,
+ * or the namespace ID is unknown or > 100, we look for a local namespace with
+ * a matching namespace name. If that can't be found, we dump the page in the
+ * main namespace as a last resort.
+ */
+class NaiveImportTitleFactory implements ImportTitleFactory {
+ /**
+ * Determines which local title best corresponds to the given foreign title.
+ * If such a title can't be found or would be locally invalid, null is
+ * returned.
+ *
+ * @param ForeignTitle $foreignTitle The ForeignTitle to convert
+ * @return Title|null
+ */
+ public function createTitleFromForeignTitle( ForeignTitle $foreignTitle ) {
+ global $wgContLang;
+
+ if ( $foreignTitle->isNamespaceIdKnown() ) {
+ $foreignNs = $foreignTitle->getNamespaceId();
+
+ // For built-in namespaces (0 <= ID < 100), we try to find a local NS with
+ // the same namespace ID
+ if ( $foreignNs < 100 && MWNamespace::exists( $foreignNs ) ) {
+ return Title::makeTitleSafe( $foreignNs, $foreignTitle->getText() );
+ }
+ }
+
+ // Do we have a local namespace by the same name as the foreign
+ // namespace?
+ $targetNs = $wgContLang->getNsIndex( $foreignTitle->getNamespaceName() );
+ if ( $targetNs !== false ) {
+ return Title::makeTitleSafe( $targetNs, $foreignTitle->getText() );
+ }
+
+ // Otherwise, just fall back to main namespace
+ return Title::makeTitleSafe( 0, $foreignTitle->getFullText() );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * A parser that translates page titles on a foreign wiki into ForeignTitle
+ * objects, using information about the namespace setup on the foreign site.
+ */
+class NamespaceAwareForeignTitleFactory implements ForeignTitleFactory {
+ /**
+ * @var array
+ */
+ protected $foreignNamespaces;
+ /**
+ * @var array
+ */
+ private $foreignNamespacesFlipped;
+
+ /**
+ * Normalizes an array name for $foreignNamespacesFlipped.
+ * @param string $name
+ * @return string
+ */
+ private function normalizeNamespaceName( $name ) {
+ return strtolower( str_replace( ' ', '_', $name ) );
+ }
+
+ /**
+ * @param array|null $foreignNamespaces An array 'id' => 'name' which contains
+ * the complete namespace setup of the foreign wiki. Such data could be
+ * obtained from siteinfo/namespaces in an XML dump file, or by an action API
+ * query such as api.php?action=query&meta=siteinfo&siprop=namespaces. If
+ * this data is unavailable, use NaiveForeignTitleFactory instead.
+ */
+ public function __construct( $foreignNamespaces ) {
+ $this->foreignNamespaces = $foreignNamespaces;
+ if ( !is_null( $foreignNamespaces ) ) {
+ $this->foreignNamespacesFlipped = array();
+ foreach ( $foreignNamespaces as $id => $name ) {
+ $newKey = self::normalizeNamespaceName( $name );
+ $this->foreignNamespacesFlipped[$newKey] = $id;
+ }
+ }
+ }
+
+ /**
+ * Creates a ForeignTitle object based on the page title, and optionally the
+ * namespace ID, of a page on a foreign wiki. These values could be, for
+ * example, the <title> and <ns> attributes found in an XML dump.
+ *
+ * @param string $title The page title
+ * @param int|null $ns The namespace ID, or null if this data is not available
+ * @return ForeignTitle
+ */
+ public function createForeignTitle( $title, $ns = null ) {
+ // Export schema version 0.5 and earlier (MW 1.18 and earlier) does not
+ // contain a <ns> tag, so we need to be able to handle that case.
+ if ( is_null( $ns ) ) {
+ return self::parseTitleNoNs( $title );
+ } else {
+ return self::parseTitleWithNs( $title, $ns );
+ }
+ }
+
+ /**
+ * Helper function to parse the title when the namespace ID is not specified.
+ *
+ * @param string $title
+ * @return ForeignTitle
+ */
+ protected function parseTitleNoNs( $title ) {
+ $pieces = explode( ':', $title, 2 );
+ $key = self::normalizeNamespaceName( $pieces[0] );
+
+ // Does the part before the colon match a known namespace? Check the
+ // foreign namespaces
+ $isNamespacePartValid = isset( $this->foreignNamespacesFlipped[$key] );
+
+ if ( count( $pieces ) === 2 && $isNamespacePartValid ) {
+ list( $namespaceName, $pageName ) = $pieces;
+ $ns = $this->foreignNamespacesFlipped[$key];
+ } else {
+ $namespaceName = '';
+ $pageName = $title;
+ $ns = 0;
+ }
+
+ return new ForeignTitle( $ns, $namespaceName, $pageName );
+ }
+
+ /**
+ * Helper function to parse the title when the namespace value is known.
+ *
+ * @param string $title
+ * @param int $ns
+ * @return ForeignTitle
+ */
+ protected function parseTitleWithNs( $title, $ns ) {
+ $pieces = explode( ':', $title, 2 );
+
+ if ( isset( $this->foreignNamespaces[$ns] ) ) {
+ $namespaceName = $this->foreignNamespaces[$ns];
+ } else {
+ $namespaceName = $ns == '0' ? '' : $pieces[0];
+ }
+
+ // We assume that the portion of the page title before the colon is the
+ // namespace name, except in the case of namespace 0
+ if ( $ns != '0' ) {
+ $pageName = $pieces[1];
+ } else {
+ $pageName = $title;
+ }
+
+ return new ForeignTitle( $ns, $namespaceName, $pageName );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * A class to convert page titles on a foreign wiki (ForeignTitle objects) into
+ * page titles on the local wiki (Title objects), placing all pages in a fixed
+ * local namespace.
+ */
+class NamespaceImportTitleFactory implements ImportTitleFactory {
+ /** @var int */
+ protected $ns;
+
+ /**
+ * @param int $ns The namespace to use for all pages
+ */
+ public function __construct( $ns ) {
+ if ( !MWNamespace::exists( $ns ) ) {
+ throw new MWException( "Namespace $ns doesn't exist on this wiki" );
+ }
+ $this->ns = $ns;
+ }
+
+ /**
+ * Determines which local title best corresponds to the given foreign title.
+ * If such a title can't be found or would be locally invalid, null is
+ * returned.
+ *
+ * @param ForeignTitle $foreignTitle The ForeignTitle to convert
+ * @return Title|null
+ */
+ public function createTitleFromForeignTitle( ForeignTitle $foreignTitle ) {
+ return Title::makeTitleSafe( $this->ns, $foreignTitle->getText() );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ */
+
+/**
+ * A class to convert page titles on a foreign wiki (ForeignTitle objects) into
+ * page titles on the local wiki (Title objects), placing all pages as subpages
+ * of a given root page.
+ */
+class SubpageImportTitleFactory implements ImportTitleFactory {
+ /** @var Title */
+ protected $rootPage;
+
+ /**
+ * @param Title $rootPage The root page under which all pages should be
+ * created
+ */
+ public function __construct( Title $rootPage ) {
+ if ( !MWNamespace::hasSubpages( $rootPage->getNamespace() ) ) {
+ throw new MWException( "The root page you specified, $rootPage, is in a " .
+ "namespace where subpages are not allowed" );
+ }
+ $this->rootPage = $rootPage;
+ }
+
+ /**
+ * Determines which local title best corresponds to the given foreign title.
+ * If such a title can't be found or would be locally invalid, null is
+ * returned.
+ *
+ * @param ForeignTitle $foreignTitle The ForeignTitle to convert
+ * @return Title|null
+ */
+ public function createTitleFromForeignTitle( ForeignTitle $foreignTitle ) {
+ return Title::newFromText( $this->rootPage->getPrefixedDBkey() . '/' .
+ $foreignTitle->getFullText() );
+ }
+}
"import-logentry-interwiki": "importeer $1 via transwiki",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|weergawe|weergawes}} vanaf $2",
"javascripttest": "JavaScript toetsing",
- "javascripttest-title": "Voer toetse uit vir $1",
"javascripttest-pagetext-noframework": "Hierdie bladsy is gereserveer vir die uitvoer van JavaScript-toetse.",
"javascripttest-pagetext-unknownframework": "Onbekende toetsraamwerk \"$1\".",
"javascripttest-pagetext-frameworks": "Kies een van die volgende toetsraamwerke: $1",
"javascripttest-pagetext-skins": "Kies 'n omslag waarmee die toets uitgevoer moet word:",
"javascripttest-qunit-intro": "Sien die [$1 toetsdokumentasie] op mediawiki.org.",
- "javascripttest-qunit-heading": "QUnit toetssuite vir MediaWiki JavaScript",
"tooltip-pt-userpage": "My gebruikerbladsy",
"tooltip-pt-anonuserpage": "Die gebruikersbladsy vir die IP-adres waaronder u wysigings aanbring",
"tooltip-pt-mytalk": "My besprekingsbladsy",
"import-logentry-interwiki": "استورد عبر الويكي $1",
"import-logentry-interwiki-detail": "تم استيراد {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}} من $2",
"javascripttest": "اختبار جافاسكربت",
- "javascripttest-title": "تشغيل أختبارات $1",
"javascripttest-pagetext-noframework": "هذه الصفحة محجوزة لإجراء أختبارات الجافا سكريبت.",
"javascripttest-pagetext-unknownframework": "إطار اختبار غير معروف \"$1\".",
"javascripttest-pagetext-frameworks": "الرجاء اختيار أحد أطر الاختبارات التالية: $1",
"javascripttest-pagetext-skins": "قم باختيار الواجهة لإجراء الإحتبارات بها:",
"javascripttest-qunit-intro": "راجع [$1 وثيقة الاختبار] على mediawiki.org.",
- "javascripttest-qunit-heading": "جناح اختبار MediaWiki JavaScript QUnit",
"tooltip-pt-userpage": "صفحة المستخدم الخاصة بك",
"tooltip-pt-anonuserpage": "صفحة المستخدم للأيبي الذي تقوم بالتحرير من خلاله",
"tooltip-pt-mytalk": "صفحة نقاشك",
"import-logentry-interwiki": "আন্তঃৱিকি-স্থানান্তৰিত $1",
"import-logentry-interwiki-detail": "$2ৱে কৰা $1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}}",
"javascripttest": "জাভাস্ক্ৰিপ্ট পৰীক্ষা।",
- "javascripttest-title": "$1 পৰীক্ষাসমূহ চলোৱা হৈছে",
"javascripttest-pagetext-noframework": "এই পৃষ্ঠাটো জাভাস্ক্ৰিপ্ট পৰীক্ষা চলোৱাৰ বাবে সংৰক্ষিত।",
"javascripttest-pagetext-unknownframework": "অজ্ঞাত সম্পৰীক্ষা ফ্ৰেমৱৰ্ক \"$1\"।",
"javascripttest-pagetext-frameworks": "অনুগ্ৰহ কৰি তলৰ যিকোনো এটা সম্পৰীক্ষা ফ্ৰেমৱৰ্ক বাছনি কৰক: $1",
"javascripttest-pagetext-skins": "পৰীক্ষা কৰিবলৈ আৱৰণ এখন বাছনি কৰক:",
"javascripttest-qunit-intro": "mediawiki.org-ত [$1 পৰীক্ষা নথিকৰণ] চাওক।",
- "javascripttest-qunit-heading": "মিডিয়াৱিকি জাভাস্ক্ৰিপ্ট QUnit পৰীক্ষা চুট",
"tooltip-pt-userpage": "আপোনাৰ সদস্য পৃষ্ঠা",
"tooltip-pt-anonuserpage": "যি আই.পি. ঠিকনাৰ পৰা আপুনি সম্পাদনা কৰিছে তাৰ সদস্য পৃষ্ঠা",
"tooltip-pt-mytalk": "আপোনাৰ আলোচনা পৃষ্ঠা",
]
},
"tog-underline": "कड़ि अधोरेखन:",
- "tog-hideminor": "हाल à¤\95य बदलावमà¥\87à¤\82 à¤\9bà¥\8bà¤\9f बदलाव लà¥\81à¤\95à¥\81वाà¤\93",
- "tog-hidepatrolled": "हाल à¤\95य बदलावमà¥\87à¤\82 परà¥\80à¤\95à¥\8dषित बदलाव लà¥\81à¤\95à¥\81वाà¤\93",
- "tog-newpageshidepatrolled": "नवा पनà¥\8dनन à¤\95य सà¥\82à¤\9aà¥\80 मà¥\87à¤\82 परà¥\80à¤\95à¥\8dषित पनà¥\8dना लà¥\81à¤\95à¥\81वाà¤\93",
- "tog-extendwatchlist": "à¤\96ालà¥\80 हालिà¤\8f à¤\95य नाहà¥\80à¤\82, बलà¥\8dà¤\95ि à¤\95à¥\81ल बदलाव à¤\95य दà¥\87à¤\96ावà¥\87 à¤\95य लिà¤\8f धà¥\8dयानसà¥\82à¤\9aà¥\80 à¤\95य विसà¥\8dतारित à¤\95रà¥\8b",
- "tog-usenewrc": "à¤\85à¤à¤¿à¤¨ à¤\95य बदलाव मà¥\87 à¤\85à¤\89र धà¥\8dयानसà¥\82à¤\9aà¥\80 मà¥\87à¤\82 बदलाव à¤\95य पनà¥\8dना à¤\95य à¤\85नà¥\81सार समà¥\82ह मà¥\87à¤\82 बाà¤\81à¤\9fà¥\8b",
- "tog-numberheadings": "शà¥\80रà¥\8dषà¤\95 सà¥\8dव-à¤\95à¥\8dरमाà¤\82à¤\95ित à¤\95रà¥\8b",
+ "tog-hideminor": "हाल à¤\95य बदलावमà¥\87à¤\82 à¤\9bà¥\8bà¤\9f बदलाव लà¥\81à¤\95à¥\81à¤\86वा à¤\9cाय",
+ "tog-hidepatrolled": "हाल à¤\95य बदलावमà¥\87à¤\82 परà¥\80à¤\95à¥\8dषित बदलाव लà¥\81à¤\95à¥\81à¤\86वा à¤\9cाय",
+ "tog-newpageshidepatrolled": "नवा पनà¥\8dनन à¤\95य सà¥\82à¤\9aà¥\80 मà¥\87à¤\82 परà¥\80à¤\95à¥\8dषित पनà¥\8dना लà¥\81à¤\95à¥\81à¤\86वा à¤\9cाय",
+ "tog-extendwatchlist": "à¤\96ालà¥\80 हालिà¤\8f à¤\95य नाहà¥\80à¤\82, बलà¥\8dà¤\95ि à¤\95à¥\81ल बदलाव à¤\95य दà¥\87à¤\96ावà¥\87 à¤\95य लिà¤\8f धà¥\8dयानसà¥\82à¤\9aà¥\80 à¤\95य विसà¥\8dतारित à¤\95रा à¤\9cाय",
+ "tog-usenewrc": "à¤\85à¤à¤¿à¤¨ à¤\95य बदलाव मà¥\87 à¤\85à¤\89र धà¥\8dयानसà¥\82à¤\9aà¥\80 मà¥\87à¤\82 बदलाव à¤\95य पनà¥\8dना à¤\95य à¤\85नà¥\81सार समà¥\82ह मà¥\87à¤\82 बाà¤\81à¤\9fा à¤\9cाय",
+ "tog-numberheadings": "शà¥\80रà¥\8dषà¤\95 सà¥\8dव-à¤\95à¥\8dरमाà¤\82à¤\95ित à¤\95रा à¤\9cाय",
"tog-showtoolbar": "सम्पादन औज़ारपट्टी देखावो",
- "tog-editondblclick": "दà¥\81à¤\88 à¤\95à¥\8dलिà¤\95 सà¥\87 पनà¥\8dना सà¤\82पादित à¤\95रà¥\8b",
+ "tog-editondblclick": "दà¥\81à¤\88 à¤\95à¥\8dलिà¤\95 सà¥\87 पनà¥\8dना सà¤\82पादित à¤\95रा à¤\9cाय",
"tog-editsectiononrightclick": "अनुभाग शीर्षक पे दायाँ क्लिक कई कय अनुभाग सम्पादित कीन जाय",
"tog-watchcreations": "हमार बनावा पन्ना अव हमार अपलोड करल फाइल कय हमरे ध्यानसूची में जोडो",
"tog-watchdefault": "हमार सम्पादन करल पन्ना अव फाइल कय ध्यानसूची में जोडो",
"anontalk": "ई आइ॰पी कय खरतिन बातचीत",
"navigation": "घुमाई",
"and": " अउर",
- "qbfind": "à¤\96à¥\8bà¤\9cà¥\8b",
+ "qbfind": "à¤\96à¥\8bà¤\9cा à¤\9cाय",
"qbbrowse": "ब्राउज़",
"qbedit": "सम्पादन",
"qbpageoptions": "ई पन्ना",
"qbmyoptions": "हमार पन्ना",
- "faq": "बहुत पूछ जाय वाला प्रश्न",
+ "faq": "बहुत पूछा जाय वाला प्रश्न",
"faqpage": "Project:ढेर पूछा जाय वाला सवाल",
"actions": "काम कुल",
"namespaces": "नामस्थान",
"returnto": "$1 मे लौटो।",
"tagline": "{{SITENAME}} से",
"help": "मदद",
- "search": "à¤\96à¥\8bà¤\9cà¥\8b",
- "searchbutton": "à¤\96à¥\8bà¤\9cà¥\8b",
- "go": "à¤\9cाà¤\93",
- "searcharticle": "à¤\9cाà¤\93",
+ "search": "à¤\96à¥\8bà¤\9cा à¤\9cाय",
+ "searchbutton": "à¤\96à¥\8bà¤\9cा à¤\9cाय",
+ "go": "à¤\9cावा à¤\9cाय",
+ "searcharticle": "à¤\9cावा à¤\9cाय",
"history": "पन्ना कय इतिहास",
"history_short": "इतिहास",
"updatedmarker": "हमरे अन्तिम दाँइ आवे कय बाद कय अपडेट",
"edit-local": "स्थानीय विवरण सम्पादन",
"create": "बनावो",
"create-local": "स्थानीय विवरण जोडो",
- "editthispage": "à¤\88 पनà¥\8dना à¤\95य समà¥\8dपादन à¤\95रà¥\8b",
- "create-this-page": "à¤\88 पनà¥\8dना बनाà¤\93",
- "delete": "मिà¤\9fाà¤\93",
- "deletethispage": "à¤\88 पनà¥\8dना मिà¤\9fाà¤\93",
- "undeletethispage": "à¤\88 पनà¥\8dना à¤\95य पà¥\81नरà¥\8dसà¥\8dथापित à¤\95रà¥\8b।",
- "undelete_short": "{{PLURAL:$1|à¤\8fà¤\95 मà¥\87à¤\9fाà¤\88 à¤\97à¤\8f|$1 मà¥\87à¤\9fाà¤\88 à¤\97à¤\8f}} बदलाव वापिस लाओ",
+ "editthispage": "à¤\88 पनà¥\8dना à¤\95य समà¥\8dपादन à¤\95रा à¤\9cाय",
+ "create-this-page": "à¤\88 पनà¥\8dना बनावा à¤\9cाय",
+ "delete": "मिà¤\9fावा à¤\9cाय",
+ "deletethispage": "à¤\88 पनà¥\8dना मà¥\87à¤\9fावा à¤\9cाय",
+ "undeletethispage": "à¤\88 पनà¥\8dना à¤\95य पà¥\81नरà¥\8dसà¥\8dथापित à¤\95रा à¤\9cाय।",
+ "undelete_short": "{{PLURAL:$1|à¤\8fà¤\95 मà¥\87à¤\9fाà¤\88 à¤\97य}} बदलाव वापिस लाओ",
"viewdeleted_short": "देखा जाय {{PLURAL:$1|एक मेटावल सम्पादन|$1 मेटावल सम्पादन}}",
- "protect": "सà¥\81रà¤\95à¥\8dषित à¤\95रà¥\8b",
- "protect_change": "बदलà¥\8b",
- "protectthispage": "à¤\87 पनà¥\8dना à¤\95य सà¥\81रà¤\95à¥\8dषित à¤\95रà¥\8b",
+ "protect": "सà¥\81रà¤\95à¥\8dषित à¤\95रा à¤\9cाय",
+ "protect_change": "बदला à¤\9cाय",
+ "protectthispage": "à¤\87 पनà¥\8dना à¤\95य सà¥\81रà¤\95à¥\8dषित à¤\95रा à¤\9cाय",
"unprotect": "असुरक्षित",
- "unprotectthispage": "à¤\88 पनà¥\8dना à¤\95य सà¥\81रà¤\95à¥\8dषा सà¥\8dतर बदलà¥\8b",
- "newpage": "नवाà¤\81 पन्ना",
- "talkpage": "à¤\88 पनà¥\8dना à¤\95य बारà¥\87 मà¥\87 à¤\9aरà¥\8dà¤\9aा à¤\95रà¥\8b",
+ "unprotectthispage": "à¤\88 पनà¥\8dना à¤\95य सà¥\81रà¤\95à¥\8dषा सà¥\8dतर बदला à¤\9cाय",
+ "newpage": "नà¤\81वा पन्ना",
+ "talkpage": "à¤\88 पनà¥\8dना à¤\95य बारà¥\87 मà¥\87 à¤\9aरà¥\8dà¤\9aा à¤\95रा à¤\9cाय",
"talkpagelinktext": "बातचीत",
"specialpage": "विशेष पन्ना",
"personaltools": "वैयक्तिक औज़ार",
- "articlepage": "सामà¤\97à¥\8dरà¥\80 पनà¥\8dना दà¥\87à¤\96à¥\8b",
+ "articlepage": "सामà¤\97à¥\8dरà¥\80 पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
"talk": "चर्चा",
"views": "दर्शाव",
"toolbox": "साधन पेटी",
"userpage": "सदस्य पन्ना देखो",
- "projectpage": "परियà¥\8bà¤\9cना पनà¥\8dना दà¥\87à¤\96à¥\8b",
- "imagepage": "फ़ाà¤\87ल पनà¥\8dना दà¥\87à¤\96à¥\8b",
- "mediawikipage": "सनà¥\87शा पनà¥\8dना दà¥\87à¤\96à¥\8b",
- "templatepage": "साà¤\81à¤\9aा पनà¥\8dना दà¥\87à¤\96à¥\8b",
- "viewhelppage": "मदद पनà¥\8dना दà¥\87à¤\96à¥\8b",
- "categorypage": "शà¥\8dरà¥\87णà¥\80 पनà¥\8dना दà¥\87à¤\96à¥\8b",
- "viewtalkpage": "à¤\9aरà¥\8dà¤\9aा दà¥\87à¤\96à¥\8b",
+ "projectpage": "परियà¥\8bà¤\9cना पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
+ "imagepage": "फ़ाà¤\87ल पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
+ "mediawikipage": "सनà¥\87शा पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
+ "templatepage": "साà¤\81à¤\9aा पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
+ "viewhelppage": "मदद पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
+ "categorypage": "शà¥\8dरà¥\87णà¥\80 पनà¥\8dना दà¥\87à¤\96ा à¤\9cाय",
+ "viewtalkpage": "à¤\9aरà¥\8dà¤\9aा दà¥\87à¤\96ा à¤\9cाय",
"otherlanguages": "अउर भाषा सब",
"redirectedfrom": "($1 से पुनर्निर्देशित)",
"redirectpagesub": "पुनर्निर्देश पन्ना",
"redirectto": "पुनर्निर्देश करो:",
"lastmodifiedat": "इ पन्ना कय पिछला बदलाव $1 कय $2 बजे भवा रहा।",
"protectedpage": "सुरक्षित पन्ना",
- "jumpto": "यहà¤\81 à¤\9cाà¤\93:",
+ "jumpto": "यहà¤\81 à¤\9cावा à¤\9cाय:",
"jumptonavigation": "घुमाई",
- "jumptosearch": "à¤\96à¥\8bà¤\9cà¥\8b",
+ "jumptosearch": "à¤\96à¥\8bà¤\9cा à¤\9cाय",
"view-pool-error": "क्षमा करा जाय, यह समय सर्वर पे ढेर बोझ है।\nबहुत ढेर प्रयोक्ता लोग इ पन्ना कय देखेक प्रयास करत हँय।\nतनी कुछ समय अगोरिकय फिर से इ पन्ना कय देखेक प्रयास करा जाय।\n\n$1",
"generic-pool-error": "क्षमा करा जाय, यह समय सर्वर पे ढेर बोझ है।\nबहुत ढेर प्रयोक्ता लोग इ चिज कय देखेक प्रयास करत हँय।\nतनी कुछ समय अगोरिकय फिर से इ चिज कय देखेक प्रयास करा जाय।\n\n$1",
"pool-timeout": "तालाबन्दी कय लिए अगोरे कय समय खतम",
"youhavenewmessagesmulti": "$1 पे आप कय खरतिन नवाँ सनेशा है",
"editsection": "सम्पादन",
"editold": "सम्पादन",
- "viewsourceold": "सà¥\8dरà¥\8bत दà¥\87à¤\96à¥\8b",
+ "viewsourceold": "सà¥\8dरà¥\8bत दà¥\87à¤\96ा à¤\9cाय",
"editlink": "सम्पादन",
- "viewsourcelink": "सà¥\8dरà¥\8bत दà¥\87à¤\96à¥\8b",
+ "viewsourcelink": "सà¥\8dरà¥\8bत दà¥\87à¤\96ा à¤\9cाय",
"editsectionhint": "अनुभाग सम्पादन: $1",
"toc": "विषय सूची",
"showtoc": "देखाओ",
"perfcached": "नीचे दिया हुआ डेटा कैशे मेमोरी से लिया हुआ है, अतः हो सकता है कि इसका पूर्ण अद्यतन न हुआ हो। कैशे मेमोरी में अधिकतम {{PLURAL:$1|एक नतीजा|$1 नतीजे}} उपलब्ध हैं।",
"perfcachedts": "नीचे दिया हुआ डेटा कैशे मेमोरी से है, और इसका अंतिम अद्यतन $1 को हुआ था। कैशे मेमोरी में अधिकतम {{PLURAL:$4|एक नतीजा|$4 नतीजे}} उपलब्ध हैं।",
"querypage-no-updates": "इस पृष्ठ का नवीनीकरण करना मना है। अभी यहाँ के डाटा को ताज़ा नहीं कर सकते।",
- "viewsource": "सà¥\8dरà¥\8bत दà¥\87à¤\96à¥\8b",
- "viewsource-title": "$1 à¤\95य लिà¤\8f सà¥\8dरà¥\8bत दà¥\87à¤\96à¥\8b",
+ "viewsource": "सà¥\8dरà¥\8bत दà¥\87à¤\96ा à¤\9cाय",
+ "viewsource-title": "$1 à¤\95य लिà¤\8f सà¥\8dरà¥\8bत दà¥\87à¤\96ा à¤\9cाय",
"actionthrottled": "काम खतम कई दिहा है",
"protectedpagetext": "ई पन्ना संपादन अव अउर काम से सुरक्षित किहा है।",
"viewsourcetext": "आप इ पन्ना कय स्रोत देखी सका जात है औ ओकर नकल उतार सका जात है:",
"userloginnocreate": "लॉग इन",
"logout": "बहरे निकरो",
"userlogout": "बहरे निकरो",
- "notloggedin": "लà¥\89à¤\97 à¤\87न नाà¤\87 à¤\95रà¥\87 हव",
+ "notloggedin": "लà¥\89à¤\97 à¤\87न नाà¤\87 à¤\95रा à¤\97ा हà¥\88",
"userlogin-noaccount": "खाता नाइ है?",
"userlogin-joinproject": "{{SITENAME}} से जुडव",
"nologin": "का आप सदस्यता नाई लीहे हव? '''$1'''।",
"tog-shownumberswatching": "İzləyən istifadəçilərin sayını göstər",
"tog-oldsig": "İndiki imza:",
"tog-fancysig": "Vikimətn şəklində imza (avtomatik keçid yaratmadan)",
- "tog-uselivepreview": "Canlı sınaq baxışı xüsusiyyətindən istifadə et (JavaScript tələb edir, sınaq mərhələsindədir)",
+ "tog-uselivepreview": "Canlı sınaq baxışını istifadə et",
"tog-forceeditsummary": "Qısa məzmunu boş saxladıqda mənə bildir",
"tog-watchlisthideown": "Mənim redaktələrimi izləmə siyahısında gizlət",
"tog-watchlisthidebots": "Bot redaktələrini izləmə siyahısında gizlət",
"viewsourcetext": "Siz bu səhifənin məzmununu görə və köçürə bilərsiniz:",
"viewyourtext": "Bu səhifəyə '''etdiyiniz dəyişikliklərin''' mənbəyini görüntüləyib köçürə bilərsiniz:",
"protectedinterface": "Bu səhifədə proqram təminatı üçün sistem məlumatları var və sui-istifadənin qarşısını almaq üçün mühafizə olunmalıdır.",
- "editinginterface": "'''Diqqət!''' Siz proqram təminatı interfeysinin mətn olan səhifəsini redaktə edirsiniz.\nOnun dəyişdirilməsi digər istifadəçilərin interfeysinin xarici görünüşünə təsir göstərir.\nTərcümə üçün daha yaxşı olar ki, MediaWiki-nin lokallaşması üçün olan [//translatewiki.net/wiki/Main_Page?setlang=az translatewiki.net] layihəsindən istifadə edəsiniz.",
+ "editinginterface": "<strong>Diqqət:</strong> Siz proqram təminatı üçün interfeys mətni olan səhifəni redaktə edirsiniz.\nOnun dəyişdirilməsi digər istifadəçilərin interfeysinin xarici görünüşünə təsir göstərəcək.",
"cascadeprotected": "Səhifə mühafizə olunub, çünki o kaskad mühafizə olunan {{PLURAL:$1|növbəti səhifəyə|növbəti səhifələrə}} qoşulub:\n$2",
"namespaceprotected": "Sizin adlarında $1 olan məqalələrdə redaktə etməyə icazəniz yoxdur.",
"customcssprotected": "Bu səhifəni redaktə etmə izniniz yoxdur, çünki bu səhifə başqa bir istifadəçinin fərdi parametrlərinə sahibdir.",
"invalidtitle-knownnamespace": "\"$2\" sahə adı üçün \"$3\" mətni keçərsiz bir başlıq",
"invalidtitle-unknownnamespace": "Naməlum $1 ad sahəsi miqdarı və keçərsiz \"$2\" başlıq",
"exception-nologin": "Giriş edilməmişdir",
- "exception-nologin-text": "Bu səhifəyə daxi olmaq üçün [[Special:Userlogin|özünüzü təqdim]], edin.",
+ "exception-nologin-text": "Bu səhifəyə daxil olmaq və ya fəaliyyəti icra etmək üçün özünüzü sistemə təqdim edin.",
"exception-nologin-text-manual": " bu səhifəyə və ya hərəkətə daxil olmaq üçün $1 lazımdır.",
"virus-badscanner": "Düzgün olmayan konfiqurasiya: naməlum ''$1'' virus yoxlayanı",
"virus-scanfailed": "Yoxlama başa çatmadı (kod $1)",
"virus-unknownscanner": "naməlum antivirus",
- "logouttext": "'''Sistemdən çıxdınız.'''\n\nSiz {{SITENAME}} saytını anonim olaraq istifadə etməyə davam edə bilər və ya eyni, yaxud başqa istifadəçi adı ilə <span class='plainlinks'>[$1 yenidən daxil ola]</span> bilərsiniz. Veb-brauzerin keş yaddaşını təmizləyənədək bəzi səhifələr hələ də sistemdə imişsiniz kimi görünə bilər.",
+ "logouttext": "<strong>Sistemdən çıxdınız.</strong>\n\nVeb-brauzerin keş yaddaşını təmizləyənədək bəzi səhifələr hələ də sistemdəymişsiniz kimi görünə bilər.",
"welcomeuser": "Xoş gəldin $1!",
"welcomecreation-msg": "Hesabınız yaradıldı.\n[[Special:Preferences|{{SITENAME}} nizamlamalarınızı]] dəyişdirməyi unutmayın.",
"yourname": "İstifadəçi adı",
"userlogin-noaccount": "İstifadəçi hesabınız yoxdur?",
"userlogin-joinproject": "{{SITENAME}} qoşulun",
"nologin": "İstifadəçi hesabınız yoxdur? $1.",
- "nologinlink": "Hesab yaradın",
- "createaccount": "Hesab aç",
+ "nologinlink": "Hesab yarat",
+ "createaccount": "Hesab yarat",
"gotaccount": "İstifadəçi hesabınız varmı? '''$1'''.",
"gotaccountlink": "Daxil olun",
"userlogin-resetlink": "Daxilolma məlumatlarınızı unutmusunuz?",
"cannotchangeemail": "Hesabın e-poçt ünvanı bu wiki üzərindən dəyişdirilə bilməz.",
"emaildisabled": "Bu saytdan e-poçt göndərə bilməzsiniz.",
"accountcreated": "Hesab yaradıldı",
- "accountcreatedtext": "$1 üçün istifadəçi hesabı yaradıldı.",
+ "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) üçün istifadəçi hesabı yaradıldı.",
"createaccount-title": "{{SITENAME}} hesabın yaradılması",
"createaccount-text": "Biriləri {{SITENAME}} saytında ($4) sizin e-poçt ünvanınızdan istifadə edərək, parolu \"$3\" olan, \"$2\" adlı bir hesab yaratdı.\n\nSayta daxil olmalı və parolunuzu dəyişdirməlisiniz.\n\nƏgər istifadəçi hesabını səhvən yaratmısınızsa, bu mesajı gözardı edə bilərsiniz.",
- "login-throttled": "Sistemə daxil olmaq üçün həddən artıq cəhd etmisiniz.\nYeni cəhd etməzdən əvvəl bir qədər gözləyin.",
+ "login-throttled": "Sistemə daxil olmaq üçün həddən artıq cəhd etmisiniz.\nYeni cəhd etməzdən əvvəl $1 gözləyin.",
"login-abort-generic": "Giriş uğursuz alındı - Rədd",
"loginlanguagelabel": "Dil: $1",
"suspicious-userlogout": "Sizin çıxış üçün cəhdiniz uğursuz alındı. Bu, brouzerin yaxud proksi-keşləmənin düzgün işləməməsindən qaynaqlanır.",
"createacct-another-realname-tip": "Gərçək adınız istəyə bağlıdır.\nƏgər gərçək adınızı göstərsəniz, çalışmalarınıza müraciət etmək üçün istifadə ediləcəkdir.",
"pt-login": "Daxil ol",
"pt-login-button": "Daxil ol",
- "pt-createaccount": "İstifadəçi hesabı yarat",
+ "pt-createaccount": "Hesab yarat",
"pt-userlogout": "Çıxış",
"php-mail-error-unknown": "PHP-nin mail() funksiyasında naməlum xəta",
"user-mail-no-addy": "Bir e-poçt ünvanı olmadan e-poçt göndərməyə çalışdı.",
"preview": "Sınaq görüntüsü",
"showpreview": "Sınaq göstərişi",
"showdiff": "Dəyişiklikləri göstər",
- "anoneditwarning": "'''DİQQƏT!''' Siz özünüzü sistemə təqdim etməmisiniz. Sizin IP ünvanınız bu səhifənin tarixçəsinə qeyd olunacaq.",
+ "anoneditwarning": "<strong>Diqqət:</strong> Siz sistemə daxil olmamısınız. Hər hansı dəyişiklik etsəniz, sizin IP-ünvanınız hamıya görünəcək. Əgər <strong>[$1 daxil olsanız]</strong> və ya <strong>[$2 hesab yaratsanız]</strong>, redaktələriniz sizin istifadəçi adınıza yazılacaq və digər üstünlüklər də qazanacaqsınız.",
"anonpreviewwarning": "Sistemə daxil olmamısınız. \"Səhifəni qeyd et\" düyməsini bassanız IP ünvanınız səhifənin tarixçəsində qeyd olunacaq.",
"missingsummary": "'''Xatırlatma.''' Siz dəyişikliklərin qısa şərhini verməmisiniz. \"Səhifəni qeyd et\" düyməsinə təkrar basandan sonra sizin dəyişiklikləriniz şərhsiz qeyd olunacaq.",
"missingcommenttext": "Zəhmət olmasa, aşağıda şərhinizi yazın.",
"currentrev": "Hal-hazırkı versiya",
"currentrev-asof": "Səhifəsinin $1 tarixinə olan son halı",
"revisionasof": "$1 versiyası",
- "revision-info": "$2 tərəfindən yaradılmış $1 tarixli dəyişiklik",
+ "revision-info": "$2$7 tərəfindən edilmiş $1 tarixli dəyişiklik",
"previousrevision": "←Əvvəlki versiya",
"nextrevision": "Sonrakı versiya→",
"currentrevisionlink": "Hal-hazırkı versiya",
"history-feed-empty": "Axtardığınız səhifə mövcud deyil.\nÇox guman ki, bu səhifə silinib və ya onun adı dəyişdirilib.\nVikidə buna bənzər səhifələri [[Special:Search|axtarmağa]] cəhd edin.",
"rev-deleted-comment": "(şərhlər silindi)",
"rev-deleted-user": "(İstifadəçi adı silindi)",
- "rev-deleted-event": "(qeyd silindi)",
+ "rev-deleted-event": "(qeydiyyat detalları silindi)",
"rev-deleted-user-contribs": "[istifadəçi adı və ya IP ünvanı silindi - dəyişiklik fəaliyyətlərdən çıxarıldı]",
"rev-deleted-text-permission": "Səhifənin bu versiyası''' silinib'''.\nMümkündür ki, bunun səbəbi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} silmə qeydlərində] göstərilmişdir.",
"rev-suppressed-text-unhide": "Səhifənin bu versiyası''' silinib'''.\nMümkündür ki, bunun səbəbi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} silmə qeydlərində] göstərilmişdir.\nSiz idarəçi olduğunuza görə silinən [$1 bu versiyanı] nəzərdən keçirə bilərsiniz.",
"revdelete-show-file-submit": "Bəli",
"logdelete-selected": "Jurnalın {{PLURAL:$1|seçilmiş qeydi|seçilmiş qeydləri}}:",
"revdelete-legend": "Məhdudiyyətləri müəyyənləşdir:",
- "revdelete-hide-text": "Səhifənin bu versiyasının mətnini gizlə",
+ "revdelete-hide-text": "Dəyişikliyin mətni",
"revdelete-hide-image": "Faylın məzmununu gizlə",
- "revdelete-hide-name": "Hərəkəti və məqsədi gizləmək",
- "revdelete-hide-comment": "Dəyişikliklərin şərhini gizlə",
- "revdelete-hide-user": "Redaktə müəllifinin istifadəçi adını/IP ünvanını gizlə",
+ "revdelete-hide-name": "Məqsədi və parametrləri gizlə",
+ "revdelete-hide-comment": "Dəyişikliklərin təsviri",
+ "revdelete-hide-user": "Redaktə müəllifinin istifadəçi adı/IP-ünvanı",
"revdelete-hide-restricted": "Məlumatları idarəçilərdən də gizlə",
"revdelete-radio-same": "(dəyişdirmə)",
"revdelete-radio-set": "Gizli",
"revdel-restore": "Görünüşü dəyiş",
"pagehist": "Səhifənin tarixçəsi",
"deletedhist": "Silmə qeydləri",
- "revdelete-reason-dropdown": "*Ümumi silmə səbəbləri\n** Müəllif hüquqları pozuntusu\n** Uyğunsuz şəxsi məlumat",
+ "revdelete-reason-dropdown": "*Əsas silmə səbəbləri\n** Müəllif hüquqları pozuntusu\n** Uyğun olmayan şəxsi məlumat\n** Uyğun olmayan istifadəçi adı\n** Potensial böhtan xarakterli məlumat",
"revdelete-otherreason": "Digər/əlavə səbəb:",
"revdelete-reasonotherlist": "Digər səbəb",
"revdelete-edit-reasonlist": "Silmə səbəblərini redaktə et",
"search-section": "(bölmə $1)",
"search-suggest": "Bəlkə, bunu nəzərdə tuturdunuz: $1",
"search-interwiki-caption": "Qardaş layihələr",
- "search-interwiki-default": "$1 nəticə:",
+ "search-interwiki-default": "$1 nəticələri:",
"search-interwiki-more": "(yenə)",
"search-relatedarticle": "əlaqədar",
"searchrelated": "əlaqəli",
"timezoneregion-indian": "Hind Okeanı",
"timezoneregion-pacific": "Sakit Okean",
"allowemail": "Digər istifadəçilər mənə e-məktub göndərə bilər",
- "prefs-searchoptions": "Axtarış kriteriyaları",
+ "prefs-searchoptions": "Axtar",
"prefs-namespaces": "Adlar fəzası",
"default": "boş",
"prefs-files": "Fayllar",
"prefs-common-css-js": "Bütün skinlər üçün ümumi CSS/JavaScript:",
"prefs-emailconfirm-label": "E-poçtun təsdiqlənməsi:",
"youremail": "E-məktub:",
- "username": "İstifadəçi adı:",
- "prefs-memberingroups": "Üzvü olduğu {{PLURAL:$1|qrup|qrup}}:",
+ "username": "{{GENDER:$1|İstifadəçi adı}}:",
+ "prefs-memberingroups": "{{GENDER:$2|Üzv}} olduğu {{PLURAL:$1|qrup}}:",
"prefs-memberingroups-type": "$1",
"prefs-registration": "Qeydiyyat vaxtı:",
"prefs-registration-date-time": "$1",
"yournick": "Ləqəb:",
"badsig": "Səhv xam imza.\nHTML kodu yoxla.",
"badsiglength": "İmzanız çox uzundur. İmza $1 {{PLURAL:$1|simvoldan|simvoldan}} uzun olmamalıdır.",
- "yourgender": "Cins:",
- "gender-unknown": "göstərmə",
- "gender-male": "kişi",
- "gender-female": "qadın",
+ "yourgender": "Hansı təsvir sizə daha uyğundur?",
+ "gender-unknown": "Bildirmək istəmirəm",
+ "gender-male": "Bu kişi istifadəçi viki-səhifələri redaktə edir",
+ "gender-female": "Bu qadın istifadəçi viki-səhifələri redaktə edir",
"email": "E-məktub",
- "prefs-help-realname": "Həqiqi adınızı daxil etmək məcburi deyil.\nBu seçimi etdiyiniz halda, adınız redaktələrinizə görə müəlliflik hüququnuzun tanınması üçün istifadə ediləcək.",
+ "prefs-help-realname": "Həqiqi adınızı daxil etmək məcburi deyil.\nDaxil etsəniz, adınız redaktələrinizin müəllifliyinin təyin edilməsi üçün istifadə edilə bilər.",
"prefs-help-email": "E-poçt ünvanınızı daxil etmək məcburi deyil.\nBu, parolunuzu unutduğunuz halda, sizə yeni parol göndərməyə imkan verir.",
"prefs-help-email-others": "Həmçinin, istifadəçi və ya müzakirə səhifənizdəki link vasitəsilə başqa istifadəçilərin sizinlə əlaqə yaratmasını seçə bilərsiniz. Bu halda sizin e-poçt ünvanınız heç kimə görünməyəcək.",
"prefs-help-email-required": "Elektron ünvan tələb olunur.",
"prefs-signature": "İmza",
"prefs-dateformat": "Tarix formatı",
"prefs-timeoffset": "Saat qurşağının fərqi",
- "prefs-advancedediting": "Ətraflı variantlar",
+ "prefs-advancedediting": "Ümumi parametrlər",
"prefs-advancedrc": "Ətraflı variantlar",
"prefs-advancedrendering": "Ətraflı variantlar",
"prefs-advancedsearchoptions": "Ətraflı variantlar",
"userrights-no-interwiki": "Sizə başqa vikilayihələrdəki istifadəçilərin statusunu dəyişməyə icazə verilməyib",
"userrights-nodatabase": "$1 verilənlər bazası ya mövcud deyil, ya da lokal deyil.",
"userrights-nologin": "Siz istifadəçilərin hüquqlarını dəyişmək üçün sistemə idarəçi olaraq [[Special:UserLogin|daxil olmalısınız]].",
- "userrights-notallowed": "Sizin istifadəçi hesabınıza digər istifadəçilərə hüquqlar vermək və ya almağa icazə verilməyib.",
+ "userrights-notallowed": "Sizin digər istifadəçilərə hüquqlar vermək və ya almaq icazəniz yoxdur.",
"userrights-changeable-col": "Dəyişdirə bildiyiniz qruplar",
"userrights-unchangeable-col": "Dəyişdirə bilmədiyiniz qruplar",
"userrights-irreversible-marker": "$1*",
"right-reupload-own": "Mövcud faylın yeni versiyasının həmin istifadəçi tərəfindən yüklənməsi",
"right-reupload-shared": "ümumi anbarda olan faylın adının lokal adla dəyişdirilməsi",
"right-upload_by_url": "URL-dən fayl yüklə",
- "right-autoconfirmed": "Yarım mühafizə edilmiş səhifənin redaktəsi",
+ "right-autoconfirmed": "IP-ünvana görə sürət məhdudiyyəti yoxdur",
"right-bot": "Avtomatik proses hesab edilir",
"right-apihighlimits": "API sorğularında yüksək həddən istifadə et",
"right-writeapi": "Redaktələrdən zamanı API-dən (İnterfeys proqramlaşdıran proqram) istifadə",
"right-hideuser": "İstifadəçi adına qadağa qoy və adın görünməsinin qarşısını al",
"right-ipblock-exempt": "IP bloklanmalarını, avtobloklanmalarını və diapazon bloklanmalarını keç",
"right-proxyunbannable": "Proksilərin avtomatik bloklanmalarını keç",
- "right-unblockself": "Özünün blokunun qaldırılması",
- "right-protect": "Mühafizə səviyyəsi dəyiş və mühafizə altında olan səhifəni redaktə et",
- "right-editprotected": "Mühafizə olunmuş səhifələri redaktə (kaskad mühafizə daxil olmaqla)",
+ "right-unblockself": "Öz blokunuzun açılması",
+ "right-protect": "Mühafizə səviyyəsinin dəyişilməsi və kaskad mühafizə olunan səhifələrin redaktə edilməsi",
+ "right-editprotected": "\"{{int:protect-level-sysop}}\" mühafizə səviyyəsinə malik səhifələrin redaktə edilməsi",
"right-editinterface": "İstifadəçi interfeysini dəyişmək",
"right-editusercssjs": "Digər istifadəçilərin CSS və JavaScript fayllarını redaktə",
"right-editusercss": "Digər istifadəçilərin CSS faylını redaktə",
"recentchanges-label-bot": "Bu redaktə bot tərəfindən edilmişdir",
"recentchanges-label-unpatrolled": "Bu redaktə hələ nəzərdən keçirilməmişdir",
"recentchanges-label-plusminus": "Səhifənin ölçüsü bayt miqdarı ilə təyin edilir",
- "recentchanges-legend-newpage": "$1 - yeni səhifə",
+ "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (həmçinin bax: [[Special:NewPages|yeni səhifələrin siyahısı]])",
"rcnotefrom": "Aşağıda <strong>$2</strong>-dən bu yana olan dəyişikliklər göstərilib (<strong>$1</strong>-dən çox olmayaraq).",
"rclistfrom": "$3 $2 vaxtından başlayaraq yeni dəyişiklikləri göstər",
"rcshowhideminor": "Kiçik redaktələri $1",
"backend-fail-delete": "\"$1\" faylı sililmədi.",
"backend-fail-copy": "\"$1\" faylı \"$2\" faylına kopyalanmır.",
"backend-fail-read": "\"$1\" faylı oxunmadı.",
- "backend-fail-create": "\"$1\" faylı yaranmadı.",
+ "backend-fail-create": "\"$1\" faylı yazıla bilmədi.",
"uploadstash": "Gizli yükləmə",
"uploadstash-clear": "Müvəqqəti faylları təmizlə",
"uploadstash-refresh": "Fayl siyahısını yenilə",
"license": "Lisenziya",
"license-header": "Lisenziya",
"nolicense": "Heç biri seçilməmişdir",
- "upload_source_url": " (keçərli, hər kəsin daxil ola biləcəyi bir URL)",
- "upload_source_file": " (kompyuterinizdəki bir fayl)",
+ "upload_source_url": "(siz düzgün, hər kəsin daxil ola biləcəyi URL seçdiniz)",
+ "upload_source_file": "(siz kompüterinizdəki faylı seçdiniz)",
"listfiles_search_for": "Media adı üçün axtar:",
"imgfile": "fayl",
"listfiles": "Fayl siyahısı",
"statistics-users-active": "Aktiv istifadəçilər",
"statistics-users-active-desc": "Son {{PLURAL:$1|gün|$1 gündə}} iş görən istifadəçilər",
"doubleredirects": "İkiqat istiqamətləndirmələr",
- "double-redirect-fixed-move": "[[$1]] dəyişdirilib.\nHazırda [[$2]]-yə istiqamətlənib.",
- "double-redirect-fixed-maintenance": "[[$1]]-dən [[$2]]-yə ikiqat istiqamətlənmə düzəldilir.",
+ "double-redirect-fixed-move": "[[$1]] səhifəsinin yeri dəyişdirilib.\nO avtomatik yenilənib və [[$2]] səhifəsinə yönləndirilib.",
+ "double-redirect-fixed-maintenance": "[[$1]] səhifəsindən [[$2]] səhifəsinə ikiqat yönləndirmə avtomatik düzəldilir.",
"double-redirect-fixer": "Yönləndirmə səhvdir",
"brokenredirects": "Xətalı istiqamətləndirmə",
"brokenredirectstext": "Aşağıdakı istiqamətləndirmələr mövcud olmayan səhifələrə keçid verir:",
"wantedtemplates": "Tələb olunan şablonlar",
"mostlinked": "Ən çox keçidlənən səhifələr",
"mostlinkedcategories": "Ən çox məqaləsi olan kateqoriyalar",
- "mostlinkedtemplates": "Ən çox istifadə olunan şablonlar",
+ "mostlinkedtemplates": "Ən çox istifadə olunan səhifələr",
"mostcategories": "Kateqoriyası ən çox olan məqalələr",
"mostimages": "Ən çox istifadə edilmiş şəkillər",
"mostrevisions": "Ən çox nəzərdən keçirilmiş (versiyalı) məqalələr",
"listusers-noresult": "İstifadəçi tapılmadı.",
"listusers-blocked": "(bloklandı)",
"activeusers": "Aktiv istifadəçilərin siyahısı",
- "activeusers-count": "$1 {{PLURAL:$1|edit|redaktə}} son {{PLURAL:$3|day|$3 gün}}",
+ "activeusers-count": "Son {{PLURAL:$3|gündə|$3 gündə}} $1 {{PLURAL:$1|redaktə|redaktə}}",
"activeusers-hidebots": "Botları gizlə",
"activeusers-hidesysops": "İdarəçiləri gizlə",
"activeusers-noresult": "İstifadəçi tapılmadı.",
"listgrouprights": "İstifadəçi qruplarının hüquqları",
"listgrouprights-summary": "Bu vikidə olan istifadəçi siyahıları və onların hüquqları aşağıda göstərilmişdir.\nFərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-helppage}}]] səhifəsində tapa bilərsiniz",
- "listgrouprights-key": "* <span class=\"listgrouprights-granted\">Verilmiş hüquqlar</span>\n* <span class=\"listgrouprights-revoked\">Ləğv edilmiş hüquqlar</span>",
+ "listgrouprights-key": "İzah:\n* <span class=\"listgrouprights-granted\">Verilmiş hüquqlar</span>\n* <span class=\"listgrouprights-revoked\">Geri alınmış hüquqlar</span>",
"listgrouprights-group": "Qrup",
"listgrouprights-rights": "Hüquqlar",
"listgrouprights-helppage": "Help:Qrup hüquqları",
"mywatchlist": "İzləmə siyahısı",
"watchlistfor2": "$1 $2 üçün",
"nowatchlist": "İzləmə siyahınız böşdur.",
- "watchlistanontext": "Lütfən, izlədiyiniz səhifələri görmək və ya redaktə etmək üçün $1.",
+ "watchlistanontext": "Lütfən, izlədiyiniz səhifələri görmək və ya redaktə etmək üçün sistemə daxil olun.",
"watchnologin": "Daxil olmamısınız",
"addwatch": "İzləmə siyahısına əlavə et",
"addedwatchtext": "\"[[:$1]]\" səhifəsi [[Special:Watchlist|izlədiyiniz səhifələr]] siyahısına əlavə edildi. Bu səhifədə və əlaqəli müzakirə səhifəsindəki bütün dəyişikliklər orada göstəriləcək və səhifə asanlıqla seçiləbilmək üçün [[Special:RecentChanges|son dəyişikliklərdə]] qalın şriftlərlə görünəcəkdir. <p> Səhifəni izləmə siyahınızdan çıxarmaq üçün yan lövhədəki \"izləmə\" düyməsinə vurun.",
"import-logentry-interwiki": "імпартавана зь іншай вікі $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|вэрсія імпартаваная|вэрсіі імпартаваныя|вэрсіяў імпартаваныя}} з $2",
"javascripttest": "Тэставаньне JavaScript",
- "javascripttest-title": "Праводзіцца тэставаньне $1",
"javascripttest-pagetext-noframework": "Гэтая старонка трымаецца для правядзеньня тэстаў JavaScript.",
"javascripttest-pagetext-unknownframework": "Невядомая бібліятэка тэставаньня «$1».",
"javascripttest-pagetext-frameworks": "Калі ласка, выберыце адну з прапанаваных бібліятэка тэставаньня: $1",
"javascripttest-pagetext-skins": "Выберыце афармленьне для тэставаньня:",
"javascripttest-qunit-intro": "Глядзіце [$1 дакумэнтацыю па тэставаньні] на mediawiki.org.",
- "javascripttest-qunit-heading": "Набор QUnit-тэстаў для MediaWiki JavaScript",
"tooltip-pt-userpage": "Вашая ўласная старонка",
"tooltip-pt-anonuserpage": "Старонка ўдзельніка для IP-адрасу, зь якога Вы рэдагуеце",
"tooltip-pt-mytalk": "Ваша старонка гутарак",
"import-logentry-interwiki": "$1 উইকি-স্থানান্তরিত",
"import-logentry-interwiki-detail": "$2-এর থেকে $1টি {{PLURAL:$1|সংশোধন}} করা হয়েছে",
"javascripttest": "জাভাস্ক্রিপ্ট পরীক্ষা",
- "javascripttest-title": "$1 পরীক্ষা চলছে",
"javascripttest-pagetext-noframework": "এই পাতাটি জাভাস্ক্রিপ্ট পরীক্ষার জন্য সংরক্ষিত।",
"javascripttest-pagetext-unknownframework": "পরীক্ষার অজানা ফ্রেমওয়ার্ক \"$1\"।",
"javascripttest-pagetext-frameworks": "অনুগ্রহ করে নিচের কোনো একটি ফ্রেমওয়ার্ক নির্ধারণ করুন: $1",
"javascripttest-pagetext-skins": "পরীক্ষার জন্য একটি স্কীন নির্ধারণ করুন:",
"javascripttest-qunit-intro": "mediawiki.org থেকে [$1 পরীক্ষার ডলুমেন্টেশন] দেখুন।",
- "javascripttest-qunit-heading": "মিডিয়াউইকি জাভাস্ক্রিপ্ট কিউইউনিট টেস্ট স্যুট",
"tooltip-pt-userpage": "আপনার ব্যবহারকারী পাতা",
"tooltip-pt-anonuserpage": "যে আইপি ঠিকানা থেকে আপনি সম্পাদনা করছেন, তার ব্যবহারকারী পাতা",
"tooltip-pt-mytalk": "আপনার আলাপের পাতা",
"version-entrypoints": "শুরুর ইউআরএল",
"version-entrypoints-header-entrypoint": "শুরু",
"version-entrypoints-header-url": "ইউআরএল",
+ "version-libraries-version": "সংস্করণ",
"redirect": "পাতা, ফাইল, ব্যবহারকরী, অথবা সংশোধন আইডি দ্বারা পুনঃনির্দেশ করা হয়েছে",
"redirect-legend": "একটি ফাইল অথবা পাতায় পুনঃনির্দেশ করা হয়েছে",
"redirect-summary": "এই বিশেষ পাতাটি একটি ফাইলে (ফাইলের নাম), একটি পাতায় (সংস্করণ আইডি বা পাতা আইডি), অথবা একটি ব্যবহারকরী পাতায় (সংখ্যায় লেখা ব্যবহারকারী আইডি) পুনঃনির্দেশিত হয়েছে। ব্যবহার: [[{{#Special:Redirect}}/file/উদাহরণ.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], অথবা [[{{#Special:Redirect}}/user/101]]।",
"sqlite-no-fts": "$1 বাদে পূর্ণ টেক্সট সার্চ সমর্থন",
"logentry-delete-delete": "$1 কর্তৃক $3 পাতাটি অপসারিত হয়েছে",
"logentry-delete-restore": "$1 কর্তৃক $3 পাতাটি {{GENDER:$2|ফিরিয়ে আনা}} হয়েছে",
- "logentry-delete-event": "$1 {{PLURAL:$5|à¦\8fà¦\95à¦\9fি লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fà§\87র|$5 লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র}} à¦à¦¿à¦\9cিবিলিà¦\9fি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
- "logentry-delete-revision": "$1 {{PLURAL:$5|একটি সংস্করণের|$5 সংস্করণসমূহের}} ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
- "logentry-delete-event-legacy": "$1 $3à¦\9fায় লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র à¦à¦¿à¦\9cিবিলিà¦\9fি {{GENDER:$2|পরিবর্তন}} করেছেন",
- "logentry-delete-revision-legacy": "$1 $3à¦\9fায় সà¦\82সà§\8dà¦\95রণসমà§\82হà§\87র à¦à¦¿à¦\9cিবিলিà¦\9fি {{GENDER:$2|পরিবর্তন}} করেছেন",
+ "logentry-delete-event": "$1 {{PLURAL:$5|à¦\8fà¦\95à¦\9fি লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fà§\87র|$5 লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র}} দà§\83শà§\8dযমানতা {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
+ "logentry-delete-revision": "$1 {{PLURAL:$5|একটি সংস্করণের|$5টি সংস্করণের}} দৃশ্যমানতা {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
+ "logentry-delete-event-legacy": "$1 $3à¦\9fায় লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র দà§\83শà§\8dযমানতা {{GENDER:$2|পরিবর্তন}} করেছেন",
+ "logentry-delete-revision-legacy": "$1 $3à¦\9fায় সà¦\82সà§\8dà¦\95রণসমà§\82হà§\87র দà§\83শà§\8dযমানতা {{GENDER:$2|পরিবর্তন}} করেছেন",
"logentry-suppress-delete": "$1 কর্তৃক $3 পাতাটি {{GENDER:$2|ফিরিয়ে আনা}} হয়েছে",
- "logentry-suppress-event": "$1 à¦\97à§\8bপনà§\87 {{PLURAL:$5|à¦\8fà¦\95à¦\9fি লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fà§\87র|$5 লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র}} à¦à¦¿à¦\9cিবিলিà¦\9fি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
- "logentry-suppress-revision": "$1 গোপনে {{PLURAL:$5|একটি সংস্করণের|$5 সংস্করণসমূহের}} ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
- "logentry-suppress-event-legacy": "$1 à¦\97à§\8bপনà§\87 $3à¦\9fায় লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র à¦à¦¿à¦\9cিবিলিà¦\9fি {{GENDER:$2|পরিবর্তন}} করেছেন",
- "logentry-suppress-revision-legacy": "$1 à¦\97à§\8bপনà§\87 $3à¦\9fায় সà¦\82সà§\8dà¦\95রণসমà§\82হà§\87র à¦à¦¿à¦\9cিবিলিà¦\9fি {{GENDER:$2|পরিবর্তন}} করেছেন",
+ "logentry-suppress-event": "$1 à¦\97à§\8bপনà§\87 {{PLURAL:$5|à¦\8fà¦\95à¦\9fি লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fà§\87র|$5 লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র}} দà§\83শà§\8dযমানতা {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
+ "logentry-suppress-revision": "$1 গোপনে {{PLURAL:$5|একটি সংস্করণের|$5টি সংস্করণের}} দৃশ্যমানতা {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4",
+ "logentry-suppress-event-legacy": "$1 à¦\97à§\8bপনà§\87 $3à¦\9fায় লà¦\97 à¦\87à¦à§\87নà§\8dà¦\9fসমà§\82হà§\87র দà§\83শà§\8dযমানতা {{GENDER:$2|পরিবর্তন}} করেছেন",
+ "logentry-suppress-revision-legacy": "$1 à¦\97à§\8bপনà§\87 $3à¦\9fায় সà¦\82সà§\8dà¦\95রণসমà§\82হà§\87র দà§\83শà§\8dযমানতা {{GENDER:$2|পরিবর্তন}} করেছেন",
"revdelete-content-hid": "বিষয়বস্তু লুকায়িত",
"revdelete-summary-hid": "সম্পাদনা সারাংশ লুকায়িত",
"revdelete-uname-hid": "ব্যবহারকারী নাম লুকায়িত",
"import-logentry-interwiki": "«$1» — викиюкъара импорт",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|верси импорт йина|версеш импорт йина}} $2 чура",
"javascripttest": "JavaScript хьажар",
- "javascripttest-title": "$1 хьожуш бу",
"tooltip-pt-userpage": "Декъашхочуьна агlо",
"tooltip-pt-mytalk": "Сан дийцаре агlо",
"tooltip-pt-preferences": "Хьан гlирс нисбар",
"import-logentry-interwiki": "přenesl $1",
"import-logentry-interwiki-detail": "{{PLURAL:$1|naimportována $1 revize|naimportovány $1 revize|naimportováno $1 revizí}} z $2",
"javascripttest": "Testování JavaScriptu",
- "javascripttest-title": "Spouštějí se testy v $1",
"javascripttest-pagetext-noframework": "Tato stránka je vyhrazena pro spouštění testů JavaScriptu.",
"javascripttest-pagetext-unknownframework": "Neznámá testovací knihovna „$1“.",
"javascripttest-pagetext-frameworks": "Zvolte jednu z následujících testovacích knihoven: $1",
"javascripttest-pagetext-skins": "Zvolte vzhled, pod kterým se mají testy spustit:",
"javascripttest-qunit-intro": "Vizte [$1 dokumentaci testování] na mediawiki.org",
- "javascripttest-qunit-heading": "Sada testů JavaScriptu v MediaWiki pomocí QUnit",
"tooltip-pt-userpage": "Vaše uživatelská stránka",
"tooltip-pt-anonuserpage": "Uživatelská stránka pro IP adresu, ze které editujete",
"tooltip-pt-mytalk": "Vaše diskusní stránka",
"version-entrypoints-header-url": "URL",
"version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Cesta k článkům]",
"version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Cesta ke skriptům]",
+ "version-libraries": "Nainstalované knihovny",
+ "version-libraries-library": "Knihovna",
+ "version-libraries-version": "Verze",
"redirect": "Přesměrování podle souboru, uživatele, stránky nebo ID revize",
"redirect-legend": "Přesměrování na soubor či stránku",
"redirect-summary": "Tato speciální stránka přesměrovává na soubor (podle názvu), stránku (podle ID stránky nebo revize) nebo uživatele (podle číselného uživatelského ID). Použití: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] nebo [[{{#Special:Redirect}}/user/101]].",
"compare-revision-not-exists": "Zadaná revize neexistuje.",
"dberr-problems": "Promiňte! Tento server má v tuto chvíli technické problémy.",
"dberr-again": "Zkuste několik minut počkat a poté znovu načíst stránku.",
- "dberr-info": "(Nelze navázat spojení s databázovým serverem: $1)",
- "dberr-info-hidden": "(Nelze navázat spojení s databázovým serverem)",
+ "dberr-info": "(Nelze se připojit k databázi: $1)",
+ "dberr-info-hidden": "(Nelze se připojit k databázi)",
"dberr-usegoogle": "Mezitím můžete zkusit hledat pomocí Google.",
"dberr-outofdate": "Uvědomte si, že jejich vyhledávací index našeho obsahu může být zastaralý.",
"dberr-cachederror": "Následující stránka je kopie z cache a nemusí být aktuální.",
"import-logentry-interwiki": "importierte „$1“ (Transwiki)",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versionen}} von $2 importiert",
"javascripttest": "JavaScript-Test",
- "javascripttest-title": "$1-Tests werden durchgeführt",
"javascripttest-pagetext-noframework": "Diese Seite ist JavaSkript-Tests vorbehalten.",
"javascripttest-pagetext-unknownframework": "Unbekanntes Framework „$1“.",
"javascripttest-pagetext-frameworks": "Bitte wähle eine der folgenden Prüfumgebungen aus: $1",
"javascripttest-pagetext-skins": "Wähle eine Benutzeroberfläche zur Durchführung der Tests aus:",
"javascripttest-qunit-intro": "Siehe die [$1 Dokumentation zu Tests] auf mediawiki.org",
- "javascripttest-qunit-heading": "MediaWiki-JavaSkript-QUnit-Tester",
"tooltip-pt-userpage": "Deine Benutzerseite",
"tooltip-pt-anonuserpage": "Benutzerseite der IP-Adresse von der aus du Änderungen durchführst",
"tooltip-pt-mytalk": "Deine Diskussionsseite",
"category-subcat-count-limited": "In cla categoréia ché a gh'é{{PLURAL:$1|'na sòt-categoréia, nutêda|$1 sòt-categoréi, nutêdi}}ché 'd sègvit.",
"category-article-count": "{{PLURAL:$2|In cla categoréia ché a gh'é sōl 'na pàgina, sgnêda ché.|Cla categoréia ché la gh'à {{PLURAL:$1|la pàgina sgnêda| al pàgini $1 sgnêdi}} ed sègvit, in un totêl ed $2.}}",
"category-article-count-limited": "In cla categoréia ché a gh'é {{PLURAL:$1|la pàgina nutêda|al $1 pàgini nutêdi ch'é 'd sègvit.}}",
- "category-file-count": "{{PLURAL:$2|In cla categoréia ché a gh'é sōl un file, sgnê ché.|In cla categoréia ché gh'é{{PLURAL:$1|un file sgnê ché| i file $1, sgnê}} ed sègvit, in un totêl ed $2.}}",
+ "category-file-count": "{{PLURAL:$2|In cla categoréia ché a gh'é sōl un file, sgnê ché.|In cla categoréia ché gh'é{{PLURAL:$1|un file sgnê ché|$1 file , sgnê}} ed sègvit, in un totêl ed $2.}}",
"category-file-count-limited": "In cla categoréia ché a gh'é {{PLURAL:$1|al file nutê|i $1 file nutê}} ché 'd sègvit.",
"listingcontinuesabbrev": "cunt.",
"index-category": "Pàgini gancêdi",
"import-logentry-interwiki": "η σελίδα $1 εισάχθηκε μεταξύ wiki",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Εισήχθη $1 αναθεώρηση|Εισήχθησαν $1 αναθεωρήσεις}} από $2",
"javascripttest": "Δοκιμή JavaScript",
- "javascripttest-title": "Εκτελούνται $1 δοκιμές",
"javascripttest-pagetext-noframework": "Αυτή η σελίδα είναι δεσμευμένη για την εκτέλεση δοκιμών σε JavaScript.",
"javascripttest-pagetext-unknownframework": "Άγνωστο πλαίσιο δοκιμών \" $1 \".",
"javascripttest-pagetext-frameworks": "Παρακαλώ επιλέξτε ένα από τα ακόλουθα πλαίσια δοκιμών: $1",
"javascripttest-pagetext-skins": "Επιλέξτε ένα skin για να εκτελέσετε δοκιμές με αυτό:",
"javascripttest-qunit-intro": "Ανατρέξτε στην ενότητα [ $1 τεκμηρίωση δοκιμών] στο mediawiki.org.",
- "javascripttest-qunit-heading": "Σουίτα δοκιμών JavaScript QUnit του MediaWiki",
"tooltip-pt-userpage": "Η σελίδα χρήστη σας",
"tooltip-pt-anonuserpage": "Η σελίδα χρήστη στον οποίο αντιστοιχεί η διεύθυνση IP που έχετε",
"tooltip-pt-mytalk": "Η σελίδα συζήτησής σας",
"import-logentry-interwiki": "transwikificada $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revisión importada|revisiones importadas}} desde $2",
"javascripttest": "Pruebas de JavaScript",
- "javascripttest-title": "Pruebas de $1 en ejecución",
"javascripttest-pagetext-noframework": "Esta página está reservada para ejecutar pruebas de JavaScript.",
"javascripttest-pagetext-unknownframework": "Marco de pruebas desconocido \"$1\".",
"javascripttest-pagetext-frameworks": "Por favor, seleccione uno de los marcos de pruebas siguientes: $1",
"javascripttest-pagetext-skins": "Elija un aspecto (skin) para ejecutar las pruebas:",
"javascripttest-qunit-intro": "Consulte la [$1 documentación sobre las pruebas] en mediawiki.org.",
- "javascripttest-qunit-heading": "Conjunto de pruebas MediaWiki JavaScript QUnit",
"tooltip-pt-userpage": "Tu página de {{gender:|usuario|usuaria}}",
"tooltip-pt-anonuserpage": "La página de usuario de la IP desde la que editas",
"tooltip-pt-mytalk": "Tu página de discusión",
"import-logentry-interwiki": "importis teisest vikist lehekülje $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|redaktsioon|redaktsiooni}} imporditud asukohast $2",
"javascripttest": "JavaScripti katsetamine",
- "javascripttest-title": "$1-katse käitus",
"javascripttest-pagetext-noframework": "Seda lehekülge hoitakse JavaScripti katsete jaoks.",
"javascripttest-pagetext-unknownframework": "Tundmatu katseraamistik \"$1\".",
"javascripttest-pagetext-frameworks": "Palun vali üks järgmistest katseraamistikest: $1",
"javascripttest-pagetext-skins": "Vali kujundus, millega katsetada:",
"javascripttest-qunit-intro": "Vaata [$1 katsetamise dokumentatsiooni] asukohas mediawiki.org.",
- "javascripttest-qunit-heading": "MediaWiki JavaScripti QUnit-katsekomplekt",
"tooltip-pt-userpage": "Sinu kasutajaleht",
"tooltip-pt-anonuserpage": "Sinu IP-aadressi kasutajalehekülg",
"tooltip-pt-mytalk": "Sinu arutelulehekülg",
"thumbnail-temp-create": "Ezin izan da behin-behineko iruditxoa sortu",
"thumbnail-dest-create": "Ezin izan da iruditxoa gorde helburuan",
"thumbnail_invalid_params": "Irudi txikiaren ezarpenak ez dira baliagarriak",
+ "thumbnail_toobigimagearea": "$1 baino gehiagoko fitxategia",
"thumbnail_dest_directory": "Ezinezkoa izan da helburu direktorioa sortu",
"thumbnail_image-type": "Irudi mota ez babestua",
"thumbnail_gd-library": "GD liburutegiaren konfigurazio osagabea: $1 funtzioa falta da",
"import-logentry-interwiki": "$1 wiki artean mugitu da",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|berrikuspen|berrikuspen}} $2-(e)tik",
"javascripttest": "JavaScript frogatzen",
- "javascripttest-title": "$1 frogak egiten",
"javascripttest-pagetext-noframework": "Orrialde hau JavaScript frogak egiteko gordeta dago.",
"javascripttest-pagetext-unknownframework": "Froga eremu ez-ezaguna \"$1\".",
"javascripttest-pagetext-frameworks": "Mesedez, aukera ezazu froga eremu hauetako bat: $1",
"javascripttest-pagetext-skins": "Aukeratu frogak egiteko itxura bat:",
"javascripttest-qunit-intro": "Ikusi [$1 frogen dokumentazioa] mediawiki.org orrialdean.",
- "javascripttest-qunit-heading": "MediWiki JavaScript QUnit froga taldea",
"tooltip-pt-userpage": "Nire lankide orria",
"tooltip-pt-anonuserpage": "Zure IParen lankide orrialdea",
"tooltip-pt-mytalk": "Nire eztabaida orria",
"watchlistedit-raw-done": "Zure jarraipen zerrenda berritu da.",
"watchlistedit-raw-added": "{{PLURAL:$1|Titulu 1 gehitu da|$1 gehitu dira}}:",
"watchlistedit-raw-removed": "{{PLURAL:$1|Izenburu 1|$1 izenburu}} ezabatu dira:",
+ "watchlistedit-clear-titles": "Izenburuak:",
"watchlisttools-view": "Aldaketa garrantzitsuak ikusi",
"watchlisttools-edit": "Zerrenda ikusi eta aldatu",
"watchlisttools-raw": "Zerrenda idatziz aldatu",
"version-entrypoints": "Sarrera puntuko URLa",
"version-entrypoints-header-entrypoint": "Sarrera puntua",
"version-entrypoints-header-url": "URL",
+ "version-libraries-version": "Bertsioa",
"redirect": "Birzuzendu fitxategi, lankide edo berrikuspen IDaren arabera",
"redirect-legend": "Orrialde edo fitxategi batera birzuzendu",
"redirect-submit": "Joan",
"pool-queuefull": "Prosessijoukon jono on täynnä",
"pool-errorunknown": "Tuntematon virhe.",
"pool-servererror": "Pool counter -palvelu ei ole käytettävissä ($1).",
- "poolcounter-usage-error": "Käytön virhe: $1",
+ "poolcounter-usage-error": "Käyttövirhe: $1",
"aboutsite": "Tietoja {{GRAMMAR:elative|{{SITENAME}}}}",
"aboutpage": "Project:Tietoja",
"copyright": "Sisältö on käytettävissä lisenssillä $1, ellei toisin ole mainittu.",
"import-logentry-interwiki": "toi toisesta wikistä sivun $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versio|versiota}} tuotiin wikistä $2",
"javascripttest": "JavaScriptin testaus",
- "javascripttest-title": "Suoritetaan $1-testejä.",
"javascripttest-pagetext-noframework": "Tämä sivu on varattu JavaScript-testien suorittamiseen.",
"javascripttest-pagetext-unknownframework": "Tuntematon testausalusta $1.",
"javascripttest-pagetext-frameworks": "Valitse yksi seuraavista testausalustoista: $1",
"javascripttest-pagetext-skins": "Valitse testauksessa käytettävä ulkoasu",
"javascripttest-qunit-intro": "Katso [$1 testausohjeet] mediawiki.orgissa.",
- "javascripttest-qunit-heading": "MediaWikin JavaScriptin QUnit-testikokoelma",
"tooltip-pt-userpage": "Oma käyttäjäsivu",
"tooltip-pt-anonuserpage": "IP-osoitteesi käyttäjäsivu",
"tooltip-pt-mytalk": "Oma keskustelusivu",
"import-logentry-interwiki": "a importé $1 d'un wiki à l'autre",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|révision importée|révisions importées}} depuis $2",
"javascripttest": "Test de JavaScript",
- "javascripttest-title": "Exécution des tests $1",
"javascripttest-pagetext-noframework": "Cette page est réservée pour l'exécution des tests JavaScript.",
"javascripttest-pagetext-unknownframework": "Structure « $1 » inconnue.",
"javascripttest-pagetext-frameworks": "Veuillez choisir l'une des structures de test suivantes : $1",
"javascripttest-pagetext-skins": "Choisissez un habillage avec lequel lancer les tests :",
"javascripttest-qunit-intro": "Voir [$1 la documentation de test] sur mediawiki.org.",
- "javascripttest-qunit-heading": "Suite de test QUnit de JavaScript sur MediaWiki",
"tooltip-pt-userpage": "Votre page utilisateur",
"tooltip-pt-anonuserpage": "La page utilisateur de l'IP avec laquelle vous contribuez",
"tooltip-pt-mytalk": "Votre page de discussion",
"import-logentry-interwiki": "importou \"$1\"",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Importouse $1 revisión|Importáronse $1 revisións}} desde $2",
"javascripttest": "Proba de JavaScript",
- "javascripttest-title": "Executando probas de $1",
"javascripttest-pagetext-noframework": "Esta páxina está reservada para executar probas do JavaScript.",
"javascripttest-pagetext-unknownframework": "Descoñécese a infraestrutura dixital \"$1\" de probas.",
"javascripttest-pagetext-frameworks": "Seleccione unha das seguintes infraestruturas dixitais de probas: $1",
"javascripttest-pagetext-skins": "Escolla a aparencia na que executar as probas:",
"javascripttest-qunit-intro": "Bótelle unha ollada á [$1 documentación das probas] en mediawiki.org.",
- "javascripttest-qunit-heading": "Conxunto de probas QUnit para o JavaScript de MediaWiki",
"tooltip-pt-userpage": "A súa páxina de {{GENDER:|usuario|usuaria}}",
"tooltip-pt-anonuserpage": "A páxina de usuario do enderezo IP desde o que está a editar",
"tooltip-pt-mytalk": "A súa páxina de conversa",
"import-logentry-interwiki": "આંતરવિકિ $1",
"import-logentry-interwiki-detail": "$2 માંથી આયાત કરેલ $1 {{PLURAL:$1|પુનરાવર્તન|પુનરાવર્તનો}}",
"javascripttest": "જાવા સ્ક્રીપ્ટ પરીક્ષણ",
- "javascripttest-title": "$1 પરીક્ષણ જારી",
"javascripttest-pagetext-noframework": "આ પાનું જાવા સ્ક્રીપ્ટ ચલાવવા આરક્ષિત છે.",
"javascripttest-pagetext-unknownframework": "અજાણ ચકાસણી ફ્રેમવર્ક \"$1\".",
"javascripttest-pagetext-frameworks": "નીચેનામાંથી કોઈ એક ચકાસણી ફ્રેમવર્ક પસંદ કરો : $1",
"javascripttest-pagetext-skins": "ચકાસણી કરવા માટેની સ્કીન પસંદ કરો",
"javascripttest-qunit-intro": "mediawiki.org પર [$1 testing documentation] તપાસ માહિતી જુઓ",
- "javascripttest-qunit-heading": "મિડિયા વિકી જાવા સ્ક્રીપ્ટ QUnit test suite",
"tooltip-pt-userpage": "તમારૂં પાનું (તમારૂં 'મારા વિષે')",
"tooltip-pt-anonuserpage": "IP સરનામું માટેના સભ્ય પાનામાં તમે ફેરફાર કરી રહ્યાં છો.",
"tooltip-pt-mytalk": "તમારૂં ચર્ચાનું પાનું",
"import-logentry-interwiki": "ייבא את $1 בייבוא בין־אתרי",
"import-logentry-interwiki-detail": "{{PLURAL:$1|גרסה אחת של הדף $2 יובאה|$1 גרסאות של הדף $2 יובאו}}",
"javascripttest": "בדיקת JavaScript",
- "javascripttest-title": "הרצת בדיקות $1",
"javascripttest-pagetext-noframework": "דף זה שמור להרצת בדיקות JavaScript.",
"javascripttest-pagetext-unknownframework": "סביבת הבדיקות \"$1\" אינה ידועה.",
"javascripttest-pagetext-frameworks": "נא לבחור אחת מסביבות הבדיקות הבאות: $1",
"javascripttest-pagetext-skins": "בחירת עיצוב שאיתו יורצו הבדיקות:",
"javascripttest-qunit-intro": "ראו את [$1 תיעוד הבדיקות] באתר mediawiki.org.",
- "javascripttest-qunit-heading": "מערך בדיקות QUnit ל־JavaScript של מדיה־ויקי",
"tooltip-pt-userpage": "דף המשתמש שלך",
"tooltip-pt-anonuserpage": "דף המשתמש של משתמש אנונימי זה",
"tooltip-pt-mytalk": "דף השיחה שלך",
"import-logentry-interwiki": "transwiki uvezeno $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|promjena|promjene|promjena}} od $2",
"javascripttest": "Testiranje JavaScripta",
- "javascripttest-title": "Izvršavaju se $1 testovi",
"javascripttest-pagetext-noframework": "Ova je stranica rezervirana za izvršavanje JavaScript testova.",
"javascripttest-pagetext-unknownframework": "Nepoznata testna okolina \"$1\".",
"javascripttest-pagetext-frameworks": "Molimo izaberite jednu od sljedećih testnih okolina: $1",
"javascripttest-pagetext-skins": "Izaberite temu (''skin'') za testiranje:",
"javascripttest-qunit-intro": "Pogledajte [$1 testnu dokumentaciju] na mediawiki.org.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit testni alati",
"tooltip-pt-userpage": "Moja suradnička stranica",
"tooltip-pt-anonuserpage": "Suradnička stranica za IP adresu pod kojom uređujete",
"tooltip-pt-mytalk": "Moja stranica za razgovor",
"import-logentry-interwiki": "$1 más wikiből áthozva",
"import-logentry-interwiki-detail": "$1 változat innen: $2",
"javascripttest": "JavaScript tesztelés",
- "javascripttest-title": "$1 tesztek futtatása",
"javascripttest-pagetext-noframework": "Ez az oldal JavaStript tesztek futtatására van fenntartva.",
"javascripttest-pagetext-unknownframework": "Ismeretlen teszt keretrendszer: $1.",
"javascripttest-pagetext-frameworks": "Kérlek válaszd valamelyik teszt keretrendszert az alábbiak közül: $1",
"javascripttest-pagetext-skins": "Válassz egy megjelenítő felületet, amin a tesztet futtatod:",
"javascripttest-qunit-intro": "Lásd a [$1 tesztelési dokumentációt] a mediawiki.org helyen.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit tesztcsomag",
"tooltip-pt-userpage": "A szerkesztőlapod",
"tooltip-pt-anonuserpage": "Az általad használt IP-címhez tartozó felhasználói lap",
"tooltip-pt-mytalk": "A vitalapod",
"import-logentry-interwiki": "importava $1 transwiki",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|version|versiones}} importate desde $2",
"javascripttest": "Test de JavaScript",
- "javascripttest-title": "Execution de $1 tests",
"javascripttest-pagetext-noframework": "Iste pagina es reservate pro le execution de tests de JavaScript.",
"javascripttest-pagetext-unknownframework": "Structura de test \"$1\" incognite.",
"javascripttest-pagetext-frameworks": "Per favor selige un del sequente structuras de test: $1",
"javascripttest-pagetext-skins": "Selige un apparentia con le qual executar le tests:",
"javascripttest-qunit-intro": "Vide [$1 documentation de tests] sur mediawiki.org.",
- "javascripttest-qunit-heading": "Programmas de test QUnit de JavaScript de MediaWiki",
"tooltip-pt-userpage": "Tu pagina de usator",
"tooltip-pt-anonuserpage": "Le pagina de usator pro le adresse IP desde le qual tu face modificationes",
"tooltip-pt-mytalk": "Tu pagina de discussion",
"import-logentry-interwiki": "ha trasferito da altra wiki la pagina $1",
"import-logentry-interwiki-detail": "{{PLURAL:$1|una versione importata|$1 versioni importate}} da $2",
"javascripttest": "Sperimentazione JavaScript",
- "javascripttest-title": "In esecuzione test per $1",
"javascripttest-pagetext-noframework": "Questa pagina è riservata all'esecuzione di test di JavaScript.",
"javascripttest-pagetext-unknownframework": "Framework di test sconosciuto \"$1\".",
"javascripttest-pagetext-frameworks": "Per cortesia, scegli uno dei seguenti framework per i test: $1",
"javascripttest-pagetext-skins": "Scegli una skin con cui eseguire i test:",
"javascripttest-qunit-intro": "Vedi su mediawiki.org la [$1 documentazione riguardante i test].",
- "javascripttest-qunit-heading": "Suite di test di JavaScript per QUnit in MediaWiki",
"tooltip-pt-userpage": "La tua pagina utente",
"tooltip-pt-anonuserpage": "La pagina utente di questo indirizzo IP",
"tooltip-pt-mytalk": "La tua pagina di discussione",
"version-entrypoints-header-url": "URL",
"version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Percorso voci]",
"version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Percorso script]",
+ "version-libraries": "Librerie installate",
+ "version-libraries-library": "Libreria",
+ "version-libraries-version": "Versione",
"redirect": "Reindirizzamento da file, utente, pagina o versione",
"redirect-legend": "Reindirizza a un file o una pagina",
"redirect-summary": "Questa pagina speciale reindirizza a un file (specificando il nome del file), a una pagina (specificando un ID di versione o un ID pagina) o a un utente (specificando un ID utente numerico).\nEsempi: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
"import-logentry-interwiki": "$1をウィキ間移動しました",
"import-logentry-interwiki-detail": "$2からインポート済みの$1{{PLURAL:$1|版}}",
"javascripttest": "JavaScript をテスト中",
- "javascripttest-title": "$1 のテストの実行",
"javascripttest-pagetext-noframework": "このページは JavaScript のテストを実行するために予約されています。",
"javascripttest-pagetext-unknownframework": "テストフレームワーク「$1」は不明です。",
"javascripttest-pagetext-frameworks": "以下のテストフレームワークから1つ選択してください: $1",
"javascripttest-pagetext-skins": "テストを実行する外装を選択してください:",
"javascripttest-qunit-intro": "mediawiki.org上の[$1 テストのドキュメント]を参照してください。",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit テストスイート",
"tooltip-pt-userpage": "自分の利用者ページ",
"tooltip-pt-anonuserpage": "自分が編集しているIPアドレスの利用者ページ",
"tooltip-pt-mytalk": "自分のトークページ",
"import-logentry-interwiki": "„$1“ — ტრანსვიკი იმპორტი",
"import-logentry-interwiki-detail": "$1 ცვლილება $2-დან",
"javascripttest": "JavaScript-ის ტესტირება",
- "javascripttest-title": "მიმდინარეობს $1-ის ტესტირება",
"javascripttest-pagetext-noframework": "ეს გვერდი დარეგისტრირებულია JavaScript-ის ტესტების გასაშვებად.",
"javascripttest-pagetext-unknownframework": "„$1-ის“ ტესტირების უცნობი გარემო.",
"javascripttest-pagetext-frameworks": "გთხოვთ, აირჩიეთ ტესტირების ერთ-ერთი შემდეგი გარემო: $1",
"javascripttest-pagetext-skins": "ტესტების გასაშვებად აირჩიეთ გაფორმების თემა:",
"javascripttest-qunit-intro": "იხილეთ [$1 ტესტირების დოკუმენტები] mediawiki.org-ზე.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit-ის ტესტების კრებული",
"tooltip-pt-userpage": "თქვენი მომხმარებლის გვერდი",
"tooltip-pt-anonuserpage": "ჩემი IP-ის მქონე მომხმარებლის გვერდი",
"tooltip-pt-mytalk": "თქვენი განხილვის გვერდი",
"import-logentry-interwiki": "$1 문서를 다른 위키에서 가져왔습니다",
"import-logentry-interwiki-detail": "$2에서 {{PLURAL:$1|판}} $1개를 가져왔습니다",
"javascripttest": "자바스크립트 테스트",
- "javascripttest-title": "$1 테스트 실행",
"javascripttest-pagetext-noframework": "이 문서는 자바스크립트 테스트를 실행하기 위한 용도로 할당되어 있습니다.",
"javascripttest-pagetext-unknownframework": "실험용 프레임워크 \"$1\"를 알 수 없습니다.",
"javascripttest-pagetext-frameworks": "다음 실험용 프레임워크 중 하나를 선택하세요: $1",
"javascripttest-pagetext-skins": "실험할 스킨을 선택하세요:",
"javascripttest-qunit-intro": "mediawiki.org의 [$1 테스트 설명서]를 참고하세요.",
- "javascripttest-qunit-heading": "미디어위키 자바스크립트 QUnit 실험군",
"tooltip-pt-userpage": "내 사용자 문서",
"tooltip-pt-anonuserpage": "현재 사용하는 IP 주소의 사용자 문서",
"tooltip-pt-mytalk": "내 토론 문서",
"import-logentry-interwiki": "huet $1 importéiert (Transwiki)",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Versioun|Versiounen}} importéiert vu(n) $2",
"javascripttest": "JavaScript-Test",
- "javascripttest-title": "$1-Tester ginn elo gemaach",
"javascripttest-pagetext-noframework": "Dës Säit ass fir Java-Script-Tester reservéiert.",
"javascripttest-pagetext-unknownframework": "Onbekannten Test-Framework \"$1\".",
"javascripttest-pagetext-frameworks": "Sicht w.e.g. eng vun dësen Test-Strukturen eraus: $1",
"javascripttest-pagetext-skins": "Sicht en Interface (skin) eraus fir d'Tester ze maachen:",
"javascripttest-qunit-intro": "Kuckt d'[$1 Dokumentatioun vun den Tester] op mediawiki.org",
- "javascripttest-qunit-heading": "JavaScript-QUnit Testserie op MediaWiki",
"tooltip-pt-userpage": "Är Benotzersäit",
"tooltip-pt-anonuserpage": "Benotzersäit vun der IP-Adress vun där aus Dir den Ament Ännerunge maachtt",
"tooltip-pt-mytalk": "Är Diskussiounssäit",
"api-error-overwrite": "D'Iwwerschreiwe vun engem Fichier ass net erlaabt.",
"api-error-stashfailed": "Interne Feeler: de Server konnt den temporäre Fichier net späicheren.",
"api-error-publishfailed": "Interne Feeler: de Server konnt den temporäre Fichier net publizéieren.",
+ "api-error-stasherror": "Beim Eropluede vum Fichier ass e Feeler geschitt.",
"api-error-stashzerolength": "De Server konnt de Fichier net späicheren, well en eng Längt vun Null hat.",
"api-error-timeout": "De Server huet net bannen där Zäit geäntwert déi virgesinn ass.",
"api-error-unclassified": "En onbekannte Feeler ass geschitt",
"import-logentry-interwiki": "tarpprojektinis $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}} iš $2",
"javascripttest": "JavaScript testavimas",
- "javascripttest-title": "Vykdomas $1 testavimas",
"javascripttest-pagetext-noframework": "Šis puslapis yra skirtas vykdyti JavaScript testavimus.",
"javascripttest-pagetext-unknownframework": "Nežinoma \"$1\" testavimo struktūra.",
"javascripttest-pagetext-frameworks": "Prašome pasirinkti vieną iš išvardintų testavimo struktūrų: $1",
"javascripttest-pagetext-skins": "Pasirinkite naudotojo sąsajos išvaizdą, kuriai atliksite testavimą:",
"javascripttest-qunit-intro": "Peržiūrėkite [$1 testavimo dokumentaciją]",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit bandymų komplektas",
"tooltip-pt-userpage": "Jūsų naudotojo puslapis",
"tooltip-pt-anonuserpage": "Naudotojo puslapis jūsų IP adresui",
"tooltip-pt-mytalk": "Jūsų aptarimo puslapis",
"import-logentry-interwiki": "трансвикифиран $1",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Увезена е една преработка|Увезени се $1 преработки}} од $2",
"javascripttest": "Проба на JavaScript",
- "javascripttest-title": "Вршам $1 проби",
"javascripttest-pagetext-noframework": "Оваа страница е резервирана за вршење на проби со JavaScript.",
"javascripttest-pagetext-unknownframework": "Непозната рамка „$1“.",
"javascripttest-pagetext-frameworks": "Изберете една од следниве рамки: $1",
"javascripttest-pagetext-skins": "Одберете со кое руво да ја направите пробата:",
"javascripttest-qunit-intro": "Вид. [$1 документација на испробувањето] на mediawiki.org.",
- "javascripttest-qunit-heading": "JavaScript-програм за испробување на МедијаВики „QUnit“",
"tooltip-pt-userpage": "Вашата корисничка страница",
"tooltip-pt-anonuserpage": "Корисничка страница за IP-адресата од која уредувате",
"tooltip-pt-mytalk": "Вашата страница за разговор",
"import-logentry-interwiki": "trasferito 'a n'ata wiki 'a paggena $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|verzione|verziune}} mpurtate 'a $2",
"javascripttest": "Test JavaScript",
- "javascripttest-title": "Secutanno test pe' $1",
"javascripttest-pagetext-noframework": "Sta paggena è riservata pe' l'esecuziune d' 'e test 'e Javascript.",
"javascripttest-pagetext-unknownframework": "Ambiente 'e test scanusciuto \"$1\".",
+ "javascripttest-pagetext-unknownaction": "Azione scanusciuta \"$1\".",
"javascripttest-pagetext-frameworks": "Pe' piacere sciglite uno 'e ll'ambiente 'e test ccà abbascio: $1",
"javascripttest-pagetext-skins": "Sciglite nu skin pe' ne fà 'e test:",
"javascripttest-qunit-intro": "Vedite 'a [$1 documentaziona d' 'o test] ncopp'a mediawiki.org.",
- "javascripttest-qunit-heading": "Ambiente 'e test MediaWiki JavaScript QUnit",
"tooltip-pt-userpage": "A toja paggena utente",
"tooltip-pt-anonuserpage": "'A paggena utente pe l'IP ca vuje state cagnanno cumme",
"tooltip-pt-mytalk": "A toja paggena 'e discussione",
"import-logentry-interwiki": "transwikiimporterte $1",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Én revisjon|$1 revisjoner}} er importert fra $2",
"javascripttest": "JavaScript-testing",
- "javascripttest-title": "Kjører $1 tester",
"javascripttest-pagetext-noframework": "Denne siden er reservert for å kjøre JavaScript-tester.",
"javascripttest-pagetext-unknownframework": "Ukjent testerammeverk \"$1\".",
"javascripttest-pagetext-frameworks": "Vennligst velg en av følgende testerammeverk: $1",
"javascripttest-pagetext-skins": "Velg et utseende for testene:",
"javascripttest-qunit-intro": "Se [$1 testedokumentasjonen] på mediawiki.org.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit testsuite",
"tooltip-pt-userpage": "Din brukerside",
"tooltip-pt-anonuserpage": "Brukersiden for IP-adressen du redigerer fra",
"tooltip-pt-mytalk": "Din diskusjonsside",
"import-logentry-interwiki": "transwiki $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} van $2",
"javascripttest": "JavaScript testen",
- "javascripttest-title": "Tests uutvoeren veur $1",
"javascripttest-pagetext-noframework": "Disse zied is ereserveerd veur t uutvoeren van JavaScript-testen.",
"javascripttest-pagetext-unknownframework": "Onbekend testraamwark \"$1\".",
"javascripttest-pagetext-frameworks": "Kies een van de volgende testraamwarken: $1",
"javascripttest-pagetext-skins": "Kies n vormgeving um de tests mee uut te voeren:",
"javascripttest-qunit-intro": "Zie de [$1 testdokumentasie] op mediawiki.org.",
- "javascripttest-qunit-heading": "QUnit testsuite veur MediaWiki JavaScript",
"tooltip-pt-userpage": "Oew gebroekersbladziede",
"tooltip-pt-anonuserpage": "Gebroekersbladziede vuur t IP-adres da'j broekt",
"tooltip-pt-mytalk": "Oew oaverlegbladziede",
"import-logentry-interwiki": "importeerde $1 via transwiki",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} geïmporteerd uit $2",
"javascripttest": "JavaScript testen",
- "javascripttest-title": "Tests uitvoeren voor $1",
"javascripttest-pagetext-noframework": "Deze pagina is gereserveerd voor het uitvoeren van JavaScripttesten.",
"javascripttest-pagetext-unknownframework": "Onbekend testframework \"$1\".",
"javascripttest-pagetext-frameworks": "Kies een van de volgende testframeworks: $1",
"javascripttest-pagetext-skins": "Kies een vormgeving om de tests mee uit te voeren:",
"javascripttest-qunit-intro": "Zie de [$1 testdocumentatie] op mediawiki.org.",
- "javascripttest-qunit-heading": "QUnit testsuite voor MediaWiki JavaScript",
"tooltip-pt-userpage": "Uw gebruikerspagina",
"tooltip-pt-anonuserpage": "Gebruikerspagina voor uw IP-adres",
"tooltip-pt-mytalk": "Uw overlegpagina",
"import-logentry-interwiki": "overførte $1 mellom wikiar",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Éin versjon|$1 versjonar}} frå $2",
"javascripttest": "JavaScript-utrøyning",
- "javascripttest-title": "Køyrer $1-utrøyningar",
"javascripttest-pagetext-noframework": "Sida er reservert for køyring av JavaScript-utrøyningar.",
"javascripttest-pagetext-unknownframework": "Ukjent utrøyningsrammeverk: «$1».",
"javascripttest-pagetext-frameworks": "Vel eitt av dei fylgjande utrøyningsrammeverka: $1",
"javascripttest-pagetext-skins": "Vel ei drakt som utrøyningane skal køyrast med:",
"javascripttest-qunit-intro": "Sjå [$1 utrøyningsdokumentasjon] på mediawiki.org.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit testsuite",
"tooltip-pt-userpage": "Brukarsida di",
"tooltip-pt-anonuserpage": "Brukarsida for ip-adressa du endrar under",
"tooltip-pt-mytalk": "Diskusjonssida di",
"import-logentry-interwiki": "zaimportował(a) $1 używając transwiki",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|wersja|wersje|wersji}} z $2",
"javascripttest": "Testowanie JavaScript",
- "javascripttest-title": "Uruchamianie testów $1",
"javascripttest-pagetext-noframework": "Ta strona jest zarezerwowana dla wykonywania testów JavaScript.",
"javascripttest-pagetext-unknownframework": "Nieznany framework testowania „$1”.",
"javascripttest-pagetext-frameworks": "Wybierz jeden z następujących frameworków testowania: $1",
"javascripttest-pagetext-skins": "Wybierz skórkę, na której chcesz uruchomić testy:",
"javascripttest-qunit-intro": "Zobacz [$1 dokumentację testów] na mediawiki.org.",
- "javascripttest-qunit-heading": "Pakiet testów JavaScriptu MediaWiki QUnit",
"tooltip-pt-userpage": "Moja osobista strona",
"tooltip-pt-anonuserpage": "Strona użytkownika dla adresu IP, spod którego edytujesz",
"tooltip-pt-mytalk": "Moja strona dyskusji",
"import-logentry-interwiki": "Amportà da n'àutra wiki $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revision}} amportà da $2",
"javascripttest": "Preuva ëd JavaScript",
- "javascripttest-title": "Fé dle preuve $1",
"javascripttest-pagetext-noframework": "Costa pàgina a l'é arservà për fé dle preuve JavaScript.",
"javascripttest-pagetext-unknownframework": "Strutura ëd preuva pa conossùa «$1».",
"javascripttest-pagetext-frameworks": "Për piasì, ch'a serna un-a dle struture ëd preuva sì-dapress: $1",
"javascripttest-pagetext-skins": "Ch'a serna na pel për fé le preuve:",
"javascripttest-qunit-intro": "Vëdde [$1 la documentassion dle preuve] dzora a mediawiki.org.",
- "javascripttest-qunit-heading": "Sequensa ëd preuve QUnit ëd JavaScript su MediaWiki",
"tooltip-pt-userpage": "Soa pàgina utent",
"tooltip-pt-anonuserpage": "La pàgina utent për l'IP con ël qual chiel a contribuiss",
"tooltip-pt-mytalk": "Soa pàgina ëd discussion e ciaciarade",
"아라",
"Leon saudanha",
"Macofe",
- "He7d3r"
+ "He7d3r",
+ "Ti4goc"
]
},
"tog-underline": "Sublinhar ligações:",
"content-model-javascript": "JavaScript",
"content-model-css": "CSS",
"content-json-empty-object": "Objeto vazio",
+ "content-json-empty-array": "Matriz vazia",
"duplicate-args-category": "Páginas que utilizam argumentos duplicados ao chamar predefinições",
+ "duplicate-args-category-desc": "A página que contém o modelo de chamadas que utilizam duplicatas de argumentos, tais como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "'''Aviso:''' Esta página contém demasiadas chamadas de funções exigentes do analisador sintático.\n\nDevia ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento tem $1 {{PLURAL:$1|chamada|chamadas}}.",
"expensive-parserfunction-category": "Páginas com demasiadas chamadas a funções exigentes",
"post-expand-template-inclusion-warning": "Aviso: O tamanho de inclusão de predefinições é demasiado grande, algumas predefinições não serão incluídas.",
"right-protect": "Mudar níveis de proteção e editar páginas protegidas em cascata",
"right-editprotected": "Editar páginas protegidas como \"{{int:protect-level-sysop}}\"",
"right-editsemiprotected": "Editar páginas protegidas como \"{{int:protect-level-autoconfirmed}}\"",
+ "right-editcontentmodel": "Editar o modelo de conteúdo de uma página",
"right-editinterface": "Editar a interface de utilizador",
"right-editusercssjs": "Editar os ficheiros CSS e JS de outros utilizadores",
"right-editusercss": "Editar os ficheiros CSS de outros utilizadores",
"action-viewmywatchlist": "ver a sua lista de páginas vigiadas",
"action-viewmyprivateinfo": "ver a sua informação privada",
"action-editmyprivateinfo": "editar a sua informação privada",
+ "action-editcontentmodel": "editar o modelo de conteúdo de uma página",
"nchanges": "$1 {{PLURAL:$1|alteração|alterações}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|desde a última visita}}",
"enhancedrc-history": "histórico",
"protect-othertime": "Outra duração:",
"protect-othertime-op": "outra duração",
"protect-existing-expiry": "A proteção atual expirará às $3 de $2",
+ "protect-existing-expiry-infinity": "Existente tempo de expiração: infinito",
"protect-otherreason": "Outro motivo/motivo adicional:",
"protect-otherreason-op": "Outro motivo",
"protect-dropdown": "*Motivos comuns para proteção\n** Vandalismo excessivo\n** ''Spam'' excessivo\n** Guerra de edições improdutiva\n** Página muito visitada",
"thumbnail-temp-create": "Não foi possível criar o ficheiro temporário da miniatura",
"thumbnail-dest-create": "Não é possível gravar a miniatura no destino",
"thumbnail_invalid_params": "Parâmetros de miniatura inválidos",
+ "thumbnail_toobigimagearea": "Ficheiro com dimensões maiores do que <span class=\"notranslate\" converter=\"não\">$1</span>",
"thumbnail_dest_directory": "Não foi possível criar o diretório de destino",
"thumbnail_image-type": "Tipo de imagem não suportado",
"thumbnail_gd-library": "Configuração da biblioteca GD incompleta: função $1 em falta",
"import-logentry-interwiki": "transwikis $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|edição importada|edições importadas}} de $2",
"javascripttest": "Teste de JavaScript",
- "javascripttest-title": "A executar os testes $1",
"javascripttest-pagetext-noframework": "Esta página é reservada para a execução de testes de JavaScript.",
"javascripttest-pagetext-unknownframework": "Estrutura de testes \"$1\" desconhecida.",
"javascripttest-pagetext-frameworks": "Escolha, por favor, uma das seguintes estruturas de teste: $1",
"javascripttest-pagetext-skins": "Escolher um tema para executar os testes com:",
"javascripttest-qunit-intro": "Consulte a [ $1 documentação de testes] no mediawiki.org.",
- "javascripttest-qunit-heading": "Pacote de ferramentas de teste de JavaScript QUnit do MediaWiki",
"tooltip-pt-userpage": "A sua página de utilizador",
"tooltip-pt-anonuserpage": "A página de utilizador para o endereço IP que está a usar",
"tooltip-pt-mytalk": "A sua página de discussão",
"signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussão]])",
"duplicate-defaultsort": "<strong>Aviso:</strong> A chave de ordenação padrão \"$2\" sobrepõe-se à anterior \"$1\".",
"duplicate-displaytitle": "<strong>Aviso:</strong> Exibir título \"$2\" substituindo o título anteriormente em exibição \"$1\".",
+ "invalid-indicator-name": "<strong>Erro:</strong> Página de estados de indicadores' <code>nome</code> atributo não deve estar vazia.",
"version": "Versão",
"version-extensions": "Extensões instaladas",
"version-skins": "Temas instalados",
"api-error-stashfailed": "Erro interno: O servidor não conseguiu armazenar o ficheiro temporário.",
"api-error-publishfailed": "Erro interno: Servidor não conseguiu publicar ficheiro temporário.",
"api-error-stasherror": "Ocorreu um erro no carregamento do ficheiro escondido.",
+ "api-error-stashedfilenotfound": "O escondido ficheiro não foi encontrado ao tentar carregar a pasta do stash.",
+ "api-error-stashpathinvalid": "O caminho no qual o ficheiro escondido deveria ter sido encontrado era inválido.",
+ "api-error-stashfilestorage": "Ocorreu um erro no carregamento do ficheiro escondido.",
+ "api-error-stashzerolength": "O servidor não pôde esconder o ficheiro, porque ele tinha de comprimento zero.",
+ "api-error-stashnotloggedin": "Você deve estar com sessão iniciaca para gravar ficheiros no carregamento do stash.",
+ "api-error-stashwrongowner": "O ficheiro que estava a tentar aceder o stash não pertence a você.",
+ "api-error-stashnosuchfilekey": "O ficheiro de chave que está a tentar aceder no stash não existe.",
"api-error-timeout": "O servidor não respondeu no prazo esperado.",
"api-error-unclassified": "Ocorreu um erro desconhecido",
"api-error-unknown-code": "Erro desconhecido: \"$1\"",
"expand_templates_generate_xml": "Mostrar a árvore de análise sintáctica do XML",
"expand_templates_generate_rawhtml": "Mostrar o HTML puro",
"expand_templates_preview": "Antevisão do resultado",
+ "expand_templates_preview_fail_html": "<em>Porque {{SITENAME}} foi matérias HTML ativado e houve uma perda de dados de sessão, a visualização é escondida como uma precaução contra os ataques do JavaScrips.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor, tente novamente.</strong>\nSe ainda assim não funcionar, tente [[Special:UserLogout|sair]] e voltar a fazer o login.",
+ "expand_templates_preview_fail_html_anon": "<em>Porque {{SITENAME}} foi matérias HTML ativado e você não estiver ligado, a pré-visualização é escondida como uma precaução contra os ataques do JavaScript.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor [[Especial:UserLogin|login]] e tente novamente.</strong>",
"pagelanguage": "Seletor de idioma da página",
"pagelang-name": "Página",
"pagelang-language": "Idioma",
"import-logentry-interwiki": "transwikificat $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versiune|versiuni|de versiuni}} importate de la $2",
"javascripttest": "Testare JavaScript",
- "javascripttest-title": "Rulare teste pentru $1",
"javascripttest-pagetext-noframework": "Această pagină este rezervată rulării testelor JavaScript.",
"javascripttest-pagetext-unknownframework": "Cadru de testare „$1” necunoscut.",
"javascripttest-pagetext-frameworks": "Alegeți unul din următoarele cadre de testare: $1",
"javascripttest-pagetext-skins": "Alegeți un aspect pentru care să rulați teste:",
"javascripttest-qunit-intro": "A se vedea [$1 documentația de testare] pe mediawiki.org.",
- "javascripttest-qunit-heading": "Suita de test MediaWiki JavaScript QUnit",
"tooltip-pt-userpage": "Pagina dumneavoastră de utilizator",
"tooltip-pt-anonuserpage": "Pagina de utilizator pentru adresa IP curentă",
"tooltip-pt-mytalk": "Pagina dumneavoastră de discuții",
"import-logentry-interwiki": "«$1» — межвики импорт",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|версия импортирована|версии импортировано|версий импортировано}} из $2",
"javascripttest": "Проверка JavaScript",
- "javascripttest-title": "Проводится проверка $1",
"javascripttest-pagetext-noframework": "Эта страница зарезервирована для запуска JavaScript-тестов.",
"javascripttest-pagetext-unknownframework": "Неизвестная среда тестирования «$1».",
"javascripttest-pagetext-frameworks": "Пожалуйста, выберите одну из следующих сред тестирования: $1",
"javascripttest-pagetext-skins": "Выберите тему оформления для запуска тестов:",
"javascripttest-qunit-intro": "См. [$1 документацию по тестированию] на mediawiki.org.",
- "javascripttest-qunit-heading": "Набор тестов MediaWiki JavaScript QUnit",
"tooltip-pt-userpage": "Ваша страница участника",
"tooltip-pt-anonuserpage": "Страница участника для моего IP",
"tooltip-pt-mytalk": "Ваша страница обсуждения",
"import-logentry-interwiki": "ट्रान्स्विकिकृतम् ।$1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|पुनरावृत्तिः}} $2 इत्येतस्मात् ।",
"javascripttest": "जावालिपिपरीक्षणम् ।",
- "javascripttest-title": "$1 परीक्षाप्रचलति ।",
"javascripttest-pagetext-noframework": "जावलिपिचालनपरीक्षार्थम् एतत्पुटम् आरक्षितम् ।",
"javascripttest-pagetext-unknownframework": "अज्ञातपरीक्षाप्रक्रिया $1",
"javascripttest-pagetext-frameworks": "अधो दत्तेषु कञ्चिदेकां परीक्षाप्रक्रियां चिनोतु : $1",
"javascripttest-pagetext-skins": "अनेन सह परीक्षां सञ्चालयितुं काचित् त्वक् चिनोतु ।",
"javascripttest-qunit-intro": "mediawiki.org. [$1 अभिलेखपरीक्षा] इत्यत्र पश्यतु ।",
- "javascripttest-qunit-heading": "मिडियाविक्याः जवालिपेः Qघटकस्य परीक्षाप्रणाली ।",
"tooltip-pt-userpage": "भवतः/भवत्याः योजकपृष्ठम्",
"tooltip-pt-anonuserpage": "ऐपिसङ्केतार्थं योजकपुटं भवान् सम्पादयति एवम्..",
"tooltip-pt-mytalk": "भवतः/भवत्याः सम्भाषणपृष्ठम्",
"import-logentry-interwiki": "hà trasfiritu di àutra wiki la pàggina $1",
"import-logentry-interwiki-detail": "{{PLURAL:$1|na virsioni mpurtata|$1 virsioni mpurtati}} di $2",
"javascripttest": "Virìfichi JavaScript",
- "javascripttest-title": "Esicuzzioni dî virìfichi di $1",
"javascripttest-pagetext-noframework": "Sta pàggina è risirvata pi' l'esicuzzioni dî virìfichi JavaScript.",
"javascripttest-pagetext-unknownframework": "Framework di virìfica \"$1\" scanusciutu.",
"javascripttest-pagetext-frameworks": "Pi' favuri scegghî unu dî siguenti framework di virìfica: $1",
"javascripttest-pagetext-skins": "Scegghî na peḍḍi câ quali esiguìri i virìfichi:",
"javascripttest-qunit-intro": "Talìa [$1 a ducumintazzioni a' prupositu dî virìfichi] supra a' mediawiki.org.",
- "javascripttest-qunit-heading": "Pachettu di virìfichi JavaScript QUnit di MediaWiki",
"tooltip-pt-userpage": "La tò pàggina utenti",
"tooltip-pt-anonuserpage": "La pàggina utenti di stu ndirizzu IP",
"tooltip-pt-mytalk": "La to' pàggina di discussioni",
"import-logentry-interwiki": "uveženo (\"transwikied\") $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revizija|revizije|revizija}} sa $2",
"javascripttest": "Javaskript test",
- "javascripttest-title": "Izvršavanje testova za $1",
"javascripttest-pagetext-noframework": "Ova stranica je rezervisana za izvršavanje javaskript testova.",
"javascripttest-pagetext-unknownframework": "Nepoznati radni okvir „$1“.",
"javascripttest-pagetext-frameworks": "Izaberite jedan od sledećih radnih okvira: $1",
"javascripttest-pagetext-skins": "Izaberite s kojim skinom (interfejsom) želite da pokrenete probu:",
"javascripttest-qunit-intro": "Pogledajte [$1 dokumentaciju za testiranje] na mediawiki.org.",
- "javascripttest-qunit-heading": "Medijavikijin paket za testiranje – QUnit",
"tooltip-pt-userpage": "Vaša korisnička stranica",
"tooltip-pt-anonuserpage": "Korisnička stranica za ip koju Vi uređujete kao",
"tooltip-pt-mytalk": "Vaša stranica za razgovor",
"아라",
"හරිත",
"Indunil Chamara",
- "Susith Chandira Gts"
+ "Susith Chandira Gts",
+ "Thanushka"
]
},
"tog-underline": "සබැඳි යටීර කිරීම:",
"tog-hideminor": "මෑත වෙනස් කිරීම්වල සුළු සංස්කරණ සඟවන්න",
- "tog-hidepatrolled": "මà·\91චà·\80à·\99නà·\83à·\8a à¶\9aà·\92රà·\93මà·\8aà·\80ල මà·\94ර à·\83à¶\82චà·\8fරය à¶\9aරන ලද à·\83à¶\82à·\83à·\8aà¶\9aරණ à·\83à¶\9fවන්න",
- "tog-newpageshidepatrolled": "විමසුමට ලක්කෙරුණු පිටු, අළුත් පිටු ලැයිස්තුවෙහි නොපෙන්වන්න",
+ "tog-hidepatrolled": "à·\80à·\92මà·\83à·\94මට ලà¶\9aà·\8aà¶\9aà·\99රà·\94ණà·\94 à·\83à¶\82à·\83à·\8aà¶\9aරණ, මà·\91චà·\80à·\99නà·\83à·\8a à¶\9aà·\92රà·\93මà·\8a à¶à·\94ල නà·\9cපà·\99නà·\8aවන්න",
+ "tog-newpageshidepatrolled": "විමසුමට ලක්කෙරුණු පිටු, අළුත් පිටු ලැයිස්තුව තුල නොපෙන්වන්න",
"tog-extendwatchlist": "මෑත වෙනස්වීම් පමණක් නොව, අදාළ සියළු වෙනස්වීම් දක්වා පෙන්වන අයුරින් මුර-ලැයිස්තුව පුළුල් කරන්න",
"tog-usenewrc": "මෑත වෙනස්වීම් සහ මුර ලැයිස්තුව හී පිටුව අනුව සමූහ වෙනස්වීම් (ජාවාස්ක්රිප්ට් ඇවැසිය)",
"tog-numberheadings": "ශීර්ෂ-නාම ස්වයංක්රීයව අංකනය කරන්න",
"tog-shownumberswatching": "මුර කරනු ලබන පරිශීලකයන් සංඛ්යාව පෙන්වන්න",
"tog-oldsig": "පවතින අත්සන:",
"tog-fancysig": "අත්සන විකිපෙළ (ස්වයංක්රීය සබැඳියක් විරහිතව) ලෙසින් සලකන්න",
- "tog-uselivepreview": "තත්කාල පෙර-දසුන භාවිතා කරන්න (ජාවාස්ක්රිප්ට්) (පරීක්ෂණාත්මක)",
+ "tog-uselivepreview": "තත්කාල පෙර-දසුන භාවිතා කරන්න",
"tog-forceeditsummary": "හිස් සංස්කරණ සාරාංශයකට මා ඇතුළු වන විට මාහට ඉඟි කරන්න",
"tog-watchlisthideown": "මුර-ලැයිස්තුවෙන් මාගේ සංස්කරණ සඟවන්න",
"tog-watchlisthidebots": "මුර-ලැයිස්තුවෙන් රොබෝ සංස්කරණ සඟවන්න",
"tog-watchlisthideminor": "මුර-ලැයිස්තුවෙන් සුළු සංස්කරණ සඟවන්න",
"tog-watchlisthideliu": "ප්රවිෂ්ට වී ඇති පරිශීලකයන් විසින් සිදුකර ඇති සංස්කරණ මුර-ලැයිස්තුවෙන් සඟවන්න",
"tog-watchlisthideanons": "නිර්නාමික පරිශීලකයන් විසින් සිදුකොට ඇති සංස්කරණ මුර-ලැයිස්තුවෙන් සඟවන්න",
- "tog-watchlisthidepatrolled": "විමසුමට ලක්කෙරුණු සංස්කරණයන්, මෑත වෙනස්වීම් හී නොපෙන්වන්න",
+ "tog-watchlisthidepatrolled": "විමසුමට ලක්කෙරුණු සංස්කරණයන් මුර-ලැයිස්තුව තුල නොපෙන්වන්න",
"tog-ccmeonemails": "මා විසින් අනෙකුත් පරිශීලකයන් හට යවන විද්යුත්-තැපෑලයන්හි පිටපත් මාහට එවන්න",
"tog-diffonly": "“වෙනස් ”පදයන්ට පහළින්, පිටුවල අන්තර්ගතය නොපෙන්වන්න",
"tog-showhiddencats": "සැඟවුනු ප්රවර්ග පෙන්වන්න",
"underline-always": "සැමවිටම කරන්න",
"underline-never": "කිසිවිටෙක නොකරන්න",
"underline-default": "සම හෝ ගවේෂකයෙහි පෙරනිමිය",
- "editfont-style": "à¶\85à¶\9aà·\94රà·\94 à·\80à·\92ලà·\8fà·\83යනà·\8a à·\83à¶\82à·\83à·\8aà¶\9aරණ පà·\99දà·\99à·\83:",
+ "editfont-style": "à·\83à¶\82à·\83à·\8aà¶\9aරණ පà·\99දà·\99à·\83 à¶à·\94ල à¶\85à¶\9aà·\94රà·\94 à·\80à·\92ලà·\8fà·\83ය:",
"editfont-default": "පෙර නිමි බ්රව්සරය",
"editfont-monospace": "ඒක අවකාශිත ෆොන්ට්",
"editfont-sansserif": "සෙරිෆ්-විරහිත අකුරු",
"viewsourcetext": "මෙම පිටුවෙහි මූලාශ්රය නැරඹීමට හා පිටපත් කිරීමට ඔබ හට හැකිය:",
"viewyourtext": "'''ඔබගේ සංස්කරණ''' නැරඹීම සහ මූලාශ්රය පිටපත් කිරීම ඔබට කල හැක:",
"protectedinterface": "මෙම පිටුව විසින්, මෘදුකාංගය සඳහා අතුරුමුව පෙළ සපයන අතර එබැවින් අපයෙදුම වැලැක්වීම සඳහා එය අවුරා ඇත.",
- "editinginterface": "'''අවවාදයයි:''' මෘදුකාංගයට අතුරුමුව පෙළ සැපයීමට භාවිතා වන පිටුවක් ඔබ විසින් සංස්කරණය කරනු ලබයි.\nමෙම පිටුවට සිදු කරන වෙනස්වීම් විසින් අනෙකුත් පරිශීලකයන්ගේ පරිශීලක අතුරුමුවෙහි පෙනුමට බලපෑම් එල්ල කෙරෙනු ඇත.\nපරිවර්තන සඳහා, මීඩියාවිකි ප්රාදේශීයකරන ව්යාපෘතිය, [//translatewiki.net/wiki/Main_Page?setlang=si translatewiki.net], භාවිතා කිරීම සලකා බැලීමට කාරුණික වන්න.",
+ "editinginterface": "<strong>අවවාදයයි:</strong> මෘදුකාංගයට අතුරුමුව පෙළ සැපයීමට භාවිතා වන පිටුවක් ඔබ විසින් සංස්කරණය කරනු ලබයි.\nමෙම පිටුවට සිදු කරන වෙනස්වීම් විසින් අනෙකුත් පරිශීලකයන්ගේ පරිශීලක අතුරුමුවෙහි පෙනුමට බලපෑම් එල්ල කෙරෙනු ඇත.",
"cascadeprotected": "\"තීරු දර්ශන\" විකල්පය සක්රීයනය කොට එමගින් ආරක්ෂණය කල පහත දැක්වෙන {{PLURAL:$1|පිටුව|පිටු}} අඩංගු කර ඇති බැවින්, මෙම පිටුව සංස්කරණය කිරීමෙන් වලකා ඇත:\n$2",
"namespaceprotected": "'''$1''' නාමඅවකාශයෙහි පිටු සංස්කරණය කිරීමට ඔබහට අවසර නොමැත.",
"customcssprotected": "මෙම CSS පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත්තේ එහි අනෙකුත් පරිශීලකයෙකුගේ පුද්ගලික පරිස්ථිතීන් අඩංගු බැවිනි.",
"preview": "පෙරදසුන",
"showpreview": "පෙරදසුන පෙන්වන්න",
"showdiff": "වෙනස්කිරීම් පෙන්වන්න",
- "anoneditwarning": "'''අවවාදයයි:''' ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට ප්රවිෂ්ට වී නොමැත.\nඔබගේ අයිපී යොමුව මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි වාර්තාගත වෙනු ඇත",
+ "anoneditwarning": "<strong>අවවාදයයි:</strong> ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට ප්රවිෂ්ට වී නොමැත.\nඔබගේ අයිපී යොමුව මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි වාර්තාගත වෙනු ඇත\nඔබ <strong>[$1 පිවිසීම]</strong> හෝ <strong>[$2 ගිණුමක් තැනීම]</strong> කලහොත්, ඔබගේ සංස්කරණයන් වෙනත් ප්රතිලාභ සමග, ඔබගේ පරිශීලක නාමය ඉදිරියේ දැක්වෙනු ඇත.",
"anonpreviewwarning": "අවවාදයයි: ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට ප්රවිෂ්ට වී නොමැත. එමනිසා මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි, ඔබගේ අන්තර්ජාල ලිපිනය සටහන් කරගැනීමට සිදුවනු ඇත.",
"missingsummary": "'''සිහිගැන්වීමයි:''' ඔබ විසින් සංස්කරණ සාරාංශයක් සපයා නොමැත.\nඔබ නැවතත් සුරැකීම ක්ලික් කලහොත්, ඔබගේ සංස්කරණය එවැන්නක් විරහිතවම සුරැකෙනු ඇත.",
"missingcommenttext": "කරුණාකර පහතින් පරිකථනයක් ඇතුළු කරන්න.",
"edit-gone-missing": "පිටුව යාවත්කාල කිරීම සිදුකල නොහැකි විය.\nඑය මකා දමා ඇති බවක් පෙනේ.",
"edit-conflict": "සංස්කරණ ගැටුම.",
"edit-no-change": "පෙළට කිසිදු වෙනසක් සිදු නොකල බැවින් ඔබගේ සංස්කරණය නොසලකාහරින ලදි.",
+ "postedit-confirmation-created": "මෙම පිටුව නිර්මාණය කරන ලදී.",
+ "postedit-confirmation-restored": "මෙම පිටුව නැවත පිහිටුවන ලදී.",
"postedit-confirmation-saved": "ඔබගේ සංස්කරණය සුරකින ලදී.",
"edit-already-exists": "නව පිටුවක් තැනිය නොහැකි විය.\nඑය දැනටමත් පවතියි.",
"defaultmessagetext": "සාමාන්ය පණිවුඩ පෙළ",
"history-feed-empty": "අයැදුනු පිටුව නොපවතියි.\nඑය විකියෙන් මකා දමා හෝ නම-වෙනස් කොට ඇතිවා විය හැකිය.\nඅදාල නව පිටු සඳහා [[Special:Search|විකිය තුල ගවේෂණය]] අත්හදා බලන්න.",
"rev-deleted-comment": "(සංස්කරණ සාරාංශය ඉවත් කරන ලදි)",
"rev-deleted-user": "(පරිශීලක-නාමය ඉවත් කරන ලදි)",
- "rev-deleted-event": "(ලà¶\9dà·\94-à·\83ටà·\84නà·\8a à¶à·\90බà·\93මà·\9a à¶\9aà·\8aâ\80\8dරà·\92යà·\8fà·\80 à¶\85à¶à·\8aà·\84à·\92ටà·\94à·\80න ලදà·\92)",
+ "rev-deleted-event": "(ලà¶\9dà·\94-à·\83ටà·\84නà·\8a à¶\89à·\80à¶à·\8a à¶\9aරන ලදà·\93)",
"rev-deleted-user-contribs": "[පරිශීපක නාමය හෝ ලිපිනය ඉවත් කළා - දායකත්ව මඟින් සඟවන ලද සංස්කරණය]",
"rev-deleted-text-permission": "මෙම පිටු සංශෝධනය '''මකා දමා ඇත'''.\nවැඩි විස්තර බොහෝ විට [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} මකාදැමීම් ලඝු-සටහන] වෙත තිබීමට ඉඩ ඇත.",
"rev-deleted-text-unhide": "මෙම පිටුව සංශෝධනය කිරීම '''මකා දමා ඇත'''.\nමේ පිලිබඳ විස්තර බොහෝවිට [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} මකා දැමීම් ලඝු-සටහනෙහි] තිබීමට ඉඩ ඇත.\nඔබට ඇවැසි නම් [$1 මෙම වෙනස නැරඹීම] තවමත් සිදුකල හැක.",
"powersearch-togglelabel": "පිරික්සන්න:",
"powersearch-toggleall": "සියල්ල",
"powersearch-togglenone": "කිසිවක් නොමැත",
+ "powersearch-remember": "අනාගත සෙවිම් තුලදි මෙම තෝරාගැනීම් මතක තබාගන්න",
"search-external": "බාහිර ගවේෂණය",
"searchdisabled": "{{SITENAME}} ගවේෂණය අක්රීය කොට ඇත.\nමේ අතරතුර ඔබ හට ගූගල් ඔස්සේ ගවේෂණය කල හැක.\n{{SITENAME}} අන්තර්ගතය පිළිබඳ ඔවුන්ගේ සූචි යල් පැන ගොස් ඇතිවා විය හැකි බව සටහන් කර ගන්න.",
+ "search-error": "සෙවීම් සිදුකිරීමේදී වැරද්දක් මතුවී ඇත: $1",
"preferences": "අභිරුචි",
"mypreferences": "අභිරුචීන්",
"prefs-edits": "සංස්කරණයන් සංඛ්යාව:",
"right-editusercssjs": "අනෙකුත් පරිශීලකයන්ගේ CSS හා JS ගොනු සංස්කරණය කරන්න",
"right-editusercss": "අනෙකුත් පරිශීලකයන්ගේ CSS ගොනු සංස්කරණය කරන්න",
"right-edituserjs": "අනෙකුත් පරිශීලකයන්ගේ JS ගොනු සංස්කරණය කරන්න",
+ "right-viewmywatchlist": "ඔබගේ මුර-ලැයිස්තුව පෙන්වන්න",
+ "right-viewmyprivateinfo": "ඔබගේ පෞද්ගලික දත්ත පෙන්වන්න (උදා. විද්යුත් තැපැල් ලිපිනය, නිවැරදි නම)",
+ "right-editmyprivateinfo": "ඔබගේ පෞද්ගලික දත්ත සංස්කරණය කරන්න (උදා. විද්යුත් තැපැල් ලිපිනය, නිවැරදි නම)",
+ "right-editmyoptions": "ඔබගේ අභිරුචියන් සංස්කරණය කරන්න",
"right-rollback": "සුවිශේෂ පිටුවක් අවසන් වරට සංස්කරණය කල පරිශීලකයෙකුගේ සංස්කරණයන් විගසින් පුනරාවර්තනය කරන්න",
"right-markbotedits": "පුනරාවර්තනය-කෙරුනු සංස්කරණයන් රොබෝ සංස්කරණයන් ලෙස සලකුණු කරන්න",
"right-noratelimit": "සීඝ්රතා සීමාවන්ගෙක් බලපෑම් ඇතිනොවන්න",
"action-createpage": "පිටු තනන්න",
"action-createtalk": "සංවාද පිටු තනන්න",
"action-createaccount": "මෙම පරිශීලක ගිණුම තනන්න",
+ "action-history": "මෙම පිටුවේ ඉතිහාසය පෙන්වන්න",
"action-minoredit": "මෙම සංස්කරණය සුළු ලෙස සලකුණු කරන්න",
"action-move": "මෙම පිටුව ගෙනයන්න",
"action-move-subpages": "මෙම පිටුව හා එහි උප පිටු ගෙන යන්න",
"action-userrights-interwiki": "අනෙකුත් විකියන්ගේ පරිශීලකයන්ගේ පරිශීලක හිමිකම් සංස්කරණය කරන්න",
"action-siteadmin": "දත්ත-සංචිතය අවහිරකරන්න හෝ අවහිරය ඉවත් කරන්න",
"action-sendemail": "ඊ-තැපැල් පණිවුඩ යවන්න",
+ "action-editmywatchlist": "ඔබගේ මුර-ලැයිස්තුව සංස්කරණය කරන්න",
+ "action-viewmywatchlist": "ඔබගේ මුර-ලැයිස්තුව පෙන්වන්න",
+ "action-viewmyprivateinfo": "ඔබගේ පෞද්ගලික තොරතුරු පෙන්වන්න",
+ "action-editmyprivateinfo": "ඔබගේ පෞද්ගලික තොරතුරු සංස්කරණය කරන්න",
"nchanges": "$1 {{PLURAL:$1|වෙනස්වීම|වෙනස්වීම්}}",
"enhancedrc-history": "ඉතිහාසය",
"recentchanges": "මෑත වෙනස්කිරීම්",
"import-logentry-interwiki": "$1 අන්තර්විකීකරණය කරන ලදි",
"import-logentry-interwiki-detail": "$2 වෙතින් {{PLURAL:$1|එක් සංශෝධනයක්|සංශෝධන $1 ක්}}",
"javascripttest": "ජාවාස්ක්රිප්ට් පරික්ෂාකරමින්",
- "javascripttest-title": "$1 පරික්ෂණ සිදුකරමින්",
"javascripttest-pagetext-noframework": "මෙම පිටුව ජාවාස්ක්රිප්ට් පරික්ෂණ සිදුකිරීම සඳහා වෙන්කර ඇත.",
"tooltip-pt-userpage": "ඔබගේ පරිශීලක පිටුව",
"tooltip-pt-anonuserpage": "සංස්කරණයට ඔබ භාවිතා කරමින් පවතින අන්තර්ජාල ලිපිනය සඳහා පරිශීලක පිටුව",
"version-entrypoints": "නිවේශන ලක්ෂ්ය URL",
"version-entrypoints-header-entrypoint": "නිවේශන ලක්ෂ්යය",
"version-entrypoints-header-url": "URL",
+ "version-libraries": "ස්ථාපිත පුස්තකාල",
+ "version-libraries-library": "පුස්තකාලය",
+ "version-libraries-version": "අනුවාදය",
"fileduplicatesearch": "අනුපිටපත් ගොනු සඳහා ගවේෂණය කරන්න",
"fileduplicatesearch-summary": "එහි පූරක අගය පාදක කර ගෙන අනුපිටපත් ගොනු සඳහා ගවේෂණය කරන්න.",
"fileduplicatesearch-legend": "අනුපිටපතක් සඳහා ගවේෂණය කරන්න",
"compare-revision-not-exists": "ඔබ විසින් විශේෂණය කෙරූ සංශෝධනය නොපවතියි.",
"dberr-problems": "සමාවන්න! මෙම අඩවිය තාක්ෂණික ගැටළු අත්දකියි.",
"dberr-again": "විනාඩි කිහිපයක් කල්ගතකර යළි-බාගැනුම උත්සාහ කරන්න.",
- "dberr-info": "(දත්තගබඩා සේවාදායකය හා සම්බන්ධ වීමට නොහැක: $1)",
+ "dberr-info": "(දත්තගබඩාවට ඇතුළු වීමට නොහැකිය: $1)",
+ "dberr-info-hidden": "(දත්තගබඩාවට ඇතුළු වීමට නොහැකිය)",
"dberr-usegoogle": "මේ අතරතුර ගූගල් ඔස්සේ ගවේෂණය කිරීමට ඔබ විසින් යත්න දැරිය හැක.",
"dberr-outofdate": "අපගේ අන්තර්ගතයෙහි සූචියන් යල් පැන ගොස් තිබිය හැකි බව සටහන් කර ගන්න.",
"dberr-cachederror": "මෙය ඉල්ලා ඇති පිටුවෙහි පූර්වාපේක්ෂිත සංචිත පිටුවක් වන අතර එය යාවත්කාලින නොවිය හැකි බව සලකන්න.",
"import-logentry-interwiki": "prenesel $1 med wikiji",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Uvožena $1 redakcija|Uvoženi $1 redakciji|Uvožene $1 redakcije|Uvoženih $1 redakcij}} z $2",
"javascripttest": "Preizkušanje JavaScripta",
- "javascripttest-title": "Poganjanje $1 preizkusov",
"javascripttest-pagetext-noframework": "Stran je rezervirana za poganjanje preizkusov JavaScript.",
"javascripttest-pagetext-unknownframework": "Neznano ogrodje za preizkušanje »$1«.",
+ "javascripttest-pagetext-unknownaction": "Neznano dejanje »$1«.",
"javascripttest-pagetext-frameworks": "Prosimo, izberite enega od naslednjih ogrodjev za preizkušanje: $1",
"javascripttest-pagetext-skins": "Izberite kožo, v kateri želite pognati preizkuse:",
"javascripttest-qunit-intro": "Oglejte si [$1 dokumentacijo o preizkušanju] na mediawiki.org.",
- "javascripttest-qunit-heading": "Preizkuševalni paket MediaWiki JavaScript QUnit",
"tooltip-pt-userpage": "Vaša uporabniška stran",
"tooltip-pt-anonuserpage": "Uporabniška stran IP-naslova, ki ga uporabljate",
"tooltip-pt-mytalk": "Vaša pogovorna stran",
"import-logentry-interwiki": "је увезао $1 с другог викија",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|измена увезена|измене увезене|измена увезено}} из $2",
"javascripttest": "Јаваскрипт тест",
- "javascripttest-title": "Извршавање тестова за $1",
"javascripttest-pagetext-noframework": "Ова страница је резервисана за извршавање јаваскрипт тестова.",
"javascripttest-pagetext-unknownframework": "Непознати радни оквир „$1“.",
"javascripttest-pagetext-frameworks": "Изаберите један од следећих радних оквира: $1",
"javascripttest-pagetext-skins": "Изаберите с којом темом желите да покренете пробу:",
"javascripttest-qunit-intro": "Погледајте [$1 документацију за тестирање] на mediawiki.org.",
- "javascripttest-qunit-heading": "Медијавикијин пакет за тестирање – QUnit",
"tooltip-pt-userpage": "Ваша корисничка страница",
"tooltip-pt-anonuserpage": "Корисничка страница за ИП адресу с које уређујете",
"tooltip-pt-mytalk": "Ваша страница за разговор",
"import-logentry-interwiki": "je uvezao $1 s drugog vikija",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|izmena uvezena|izmene uvezene|izmena uvezeno}} iz $2",
"javascripttest": "Javaskript test",
- "javascripttest-title": "Izvršavanje testova za $1",
"javascripttest-pagetext-noframework": "Ova stranica je rezervisana za izvršavanje javaskript testova.",
"javascripttest-pagetext-unknownframework": "Nepoznati radni okvir „$1“.",
"javascripttest-pagetext-frameworks": "Izaberite jedan od sledećih radnih okvira: $1",
"javascripttest-pagetext-skins": "Izaberite s kojom temom želite da pokrenete probu:",
"javascripttest-qunit-intro": "Pogledajte [$1 dokumentaciju za testiranje] na mediawiki.org.",
- "javascripttest-qunit-heading": "Medijavikijin paket za testiranje – QUnit",
"tooltip-pt-userpage": "Vaša korisnička stranica",
"tooltip-pt-anonuserpage": "Korisnička stranica za IP adresu s koje uređujete",
"tooltip-pt-mytalk": "Vaša stranica za razgovor",
"import-logentry-interwiki": "överförde $1 mellan wikier",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|version|versioner}} importerades från $2",
"javascripttest": "JavaScript-testning",
- "javascripttest-title": "Kör $1 tester",
"javascripttest-pagetext-noframework": "Denna sida är reserverat för att köra JavaScript-tester.",
"javascripttest-pagetext-unknownframework": "Okänd testmiljö \"$1\".",
"javascripttest-pagetext-frameworks": "Välj en av följande testmiljöer: $1",
"javascripttest-pagetext-skins": "Välj ett utseende att köra tester med:",
"javascripttest-qunit-intro": "Se [$1 testningsdokumentationen] på mediawiki.org.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit testsvit",
"tooltip-pt-userpage": "Din användarsida",
"tooltip-pt-anonuserpage": "Användarsida för ip-numret du redigerar från",
"tooltip-pt-mytalk": "Din diskussionssida",
"import-logentry-interwiki": "$1 transvikileşmiş",
"import-logentry-interwiki-detail": "$2 sayfasından $1 {{PLURAL:$1|revizyon|revizyon}} içe aktarıldı",
"javascripttest": "JavaScript denemesi",
- "javascripttest-title": "$1 testleri çalışıyor",
"javascripttest-pagetext-noframework": "Bu sayfa JavaScript testleri çalıştırmak için ayrılmıştır.",
"javascripttest-pagetext-unknownframework": "Bilinmeyen test çerçevesi \"$1\".",
"javascripttest-pagetext-frameworks": "Lütfen aşağıdaki test çerçevelerinden birini seçin: $1",
"javascripttest-pagetext-skins": "Testleri koşmak için bir tema seçin:",
"javascripttest-qunit-intro": "mediawiki.org üzerinden [$1 deneme belgelerine] bakınız.",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit deneme paketi",
"tooltip-pt-userpage": "Kullanıcı sayfanız",
"tooltip-pt-anonuserpage": "The user page for the ip you",
"tooltip-pt-mytalk": "Mesaj sayfanız",
"import-logentry-interwiki": "אריבערגעוויקיט $1",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}} אימפארטירט פֿון $2",
"javascripttest": "JavaScript טעסט",
- "javascripttest-title": "דורכפירנדיק $1 בדיקות",
"javascripttest-pagetext-noframework": " דער בלאט איז רעזערווירט פאר JavaScript. פרואוון.",
"javascripttest-pagetext-unknownframework": "אומבאקאנטער טעסטן גערעם \"$1\".",
"javascripttest-pagetext-frameworks": "ביטע קלויבט איינעם פון די פאלגנדע טעסטן־גערעם: $1",
"javascripttest-pagetext-skins": "קלויבט א באניצער־אייבערפלאך מיט וואס דורכצופירן די בדיקות:",
"javascripttest-qunit-intro": "זעט [$1 דאקומענטאציע פאר טעסטן] בײַ mediawiki.org.",
- "javascripttest-qunit-heading": "מעדיעוויקי JavaScript QUnit קאנטראל־פראגראם",
"tooltip-pt-userpage": "אייער באניצער בלאט",
"tooltip-pt-anonuserpage": "באַניצער בלאַט פון דעם IP אַדרעס",
"tooltip-pt-mytalk": "אייער שמועס בלאט",
"import-logentry-interwiki": "跨wiki导入页面$1",
"import-logentry-interwiki-detail": "来自$2的$1个{{PLURAL:$1|版本}}已导入",
"javascripttest": "JavaScript测试",
- "javascripttest-title": "运行$1测试",
"javascripttest-pagetext-noframework": "本页面被保留进行JavaScript测试。",
"javascripttest-pagetext-unknownframework": "未知的框架“$1”。",
"javascripttest-pagetext-frameworks": "请选择以下的框架之一:$1",
"javascripttest-pagetext-skins": "选择外观来运行测试:",
"javascripttest-qunit-intro": "请见mediawiki.org的[$1 测试说明文件]。",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit 测试套件",
"tooltip-pt-userpage": "你的用户页面",
"tooltip-pt-anonuserpage": "你用于编辑的IP地址的用户页面",
"tooltip-pt-mytalk": "你的讨论页面",
"import-logentry-interwiki": "Transwiki 頁面 $1",
"import-logentry-interwiki-detail": "已從 $2 匯入 $1 筆{{PLURAL:$1|修訂}}",
"javascripttest": "JavaScript 測試",
- "javascripttest-title": "執行 $1 測試。",
"javascripttest-pagetext-noframework": "此頁面保留用來作為 JavaScript 測試使用。",
"javascripttest-pagetext-unknownframework": "不明的測試 Framework \"$1\"。",
"javascripttest-pagetext-frameworks": "請選擇下列一種測試 Framework:$1",
"javascripttest-pagetext-skins": "選擇執行測試的外觀:",
"javascripttest-qunit-intro": "請參考 mediawiki.org 的 [$1 測試說明文件]。",
- "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit 測試工具",
"tooltip-pt-userpage": "您的使用者頁面",
"tooltip-pt-anonuserpage": "您編輯使用的 IP 位址所對應的使用者頁面",
"tooltip-pt-mytalk": "您的對話頁面",
*
* @return DatabaseBase
*/
- protected function &getDB( $db, $groups = array(), $wiki = false ) {
+ protected function getDB( $db, $groups = array(), $wiki = false ) {
if ( is_null( $this->mDb ) ) {
return wfGetDB( $db, $groups, $wiki );
} else {
*
* @param DatabaseBase $db Database object to be used
*/
- public function setDB( &$db ) {
+ public function setDB( $db ) {
$this->mDb = $db;
}
* Lock the search index
* @param DatabaseBase &$db
*/
- private function lockSearchindex( &$db ) {
+ private function lockSearchindex( $db ) {
$write = array( 'searchindex' );
$read = array( 'page', 'revision', 'text', 'interwiki', 'l10n_cache', 'user' );
$db->lockTables( $read, $write, __CLASS__ . '::' . __METHOD__ );
* Unlock the tables
* @param DatabaseBase &$db
*/
- private function unlockSearchindex( &$db ) {
+ private function unlockSearchindex( $db ) {
$db->unlockTables( __CLASS__ . '::' . __METHOD__ );
}
* Since the lock is low-priority, queued reads will be able to complete
* @param DatabaseBase &$db
*/
- private function relockSearchindex( &$db ) {
+ private function relockSearchindex( $db ) {
$this->unlockSearchindex( $db );
$this->lockSearchindex( $db );
}
$source = $this->getInputStreamSource( $xml );
$redirect = null;
- $callback = function ( $title, $origTitle, $revCount, $sRevCount, $pageInfo ) use ( &$redirect ) {
+ $callback = function ( Title $title, ForeignTitle $foreignTitle, $revCount,
+ $sRevCount, $pageInfo ) use ( &$redirect ) {
if ( array_key_exists( 'redirect', $pageInfo ) ) {
$redirect = $pageInfo['redirect'];
}
);
}
+ /**
+ * @covers WikiImporter::handleSiteInfo
+ * @dataProvider getSiteInfoXML
+ * @param string $xml
+ * @param array|null $namespaces
+ */
+ public function testSiteInfoContainsNamespaces( $xml, $namespaces ) {
+ $source = $this->getInputStreamSource( $xml );
+
+ $importNamespaces = null;
+ $callback = function ( array $siteinfo, $innerImporter ) use ( &$importNamespaces ) {
+ $importNamespaces = $siteinfo['_namespaces'];
+ };
+
+ $importer = new WikiImporter( $source, ConfigFactory::getDefaultInstance()->makeConfig( 'main' ) );
+ $importer->setSiteInfoCallback( $callback );
+ $importer->doImport();
+
+ $this->assertEquals( $importNamespaces, $namespaces );
+ }
+
+ public function getSiteInfoXML() {
+ return array(
+ array(
+ <<< EOF
+<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="en">
+ <siteinfo>
+ <namespaces>
+ <namespace key="-2" case="first-letter">Media</namespace>
+ <namespace key="-1" case="first-letter">Special</namespace>
+ <namespace key="0" case="first-letter" />
+ <namespace key="1" case="first-letter">Talk</namespace>
+ <namespace key="2" case="first-letter">User</namespace>
+ <namespace key="3" case="first-letter">User talk</namespace>
+ <namespace key="100" case="first-letter">Portal</namespace>
+ <namespace key="101" case="first-letter">Portal talk</namespace>
+ </namespaces>
+ </siteinfo>
+</mediawiki>
+EOF
+ ,
+ array(
+ '-2' => 'Media',
+ '-1' => 'Special',
+ '0' => '',
+ '1' => 'Talk',
+ '2' => 'User',
+ '3' => 'User talk',
+ '100' => 'Portal',
+ '101' => 'Portal talk',
+ )
+ ),
+ );
+ }
+
}
* Test if all classes in the main module manager exists
*/
public function testClassNamesInModuleManager() {
- global $wgAutoloadLocalClasses;
+ global $wgAutoloadLocalClasses, $wgAutoloadClasses;
+
+ // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
+ $classes = $wgAutoloadLocalClasses + $wgAutoloadClasses;
$api = new ApiMain(
new FauxRequest( array( 'action' => 'query', 'meta' => 'siteinfo' ) )
foreach( $modules as $name => $class ) {
$this->assertArrayHasKey(
$class,
- $wgAutoloadLocalClasses,
+ $classes,
'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)'
);
}
* Test if all classes in the query module manager exists
*/
public function testClassNamesInModuleManager() {
- global $wgAutoloadLocalClasses;
+ global $wgAutoloadLocalClasses, $wgAutoloadClasses;
+
+ // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
+ $classes = $wgAutoloadLocalClasses + $wgAutoloadClasses;
$api = new ApiMain(
new FauxRequest( array( 'action' => 'query', 'meta' => 'siteinfo' ) )
foreach( $modules as $name => $class ) {
$this->assertArrayHasKey(
$class,
- $wgAutoloadLocalClasses,
+ $classes,
'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)'
);
}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author This, that and the other
+ */
+
+/**
+ * @covers ForeignTitle
+ *
+ * @group Title
+ */
+class ForeignTitleTest extends MediaWikiTestCase {
+
+ public function basicProvider() {
+ return array(
+ array(
+ new ForeignTitle( 20, 'Contributor', 'JohnDoe' ),
+ 20, 'Contributor', 'JohnDoe'
+ ),
+ array(
+ new ForeignTitle( '1', 'Discussion', 'Capital' ),
+ 1, 'Discussion', 'Capital'
+ ),
+ array(
+ new ForeignTitle( 0, '', 'MainNamespace' ),
+ 0, '', 'MainNamespace'
+ ),
+ array(
+ new ForeignTitle( 4, 'Some ns', 'Article title with spaces' ),
+ 4, 'Some_ns', 'Article_title_with_spaces'
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider basicProvider
+ */
+ public function testBasic( ForeignTitle $title, $expectedId, $expectedName,
+ $expectedText ) {
+
+ $this->assertEquals( true, $title->isNamespaceIdKnown() );
+ $this->assertEquals( $expectedId, $title->getNamespaceId() );
+ $this->assertEquals( $expectedName, $title->getNamespaceName() );
+ $this->assertEquals( $expectedText, $title->getText() );
+ }
+
+ public function testUnknownNamespaceCheck( ) {
+ $title = new ForeignTitle( null, 'this', 'that' );
+
+ $this->assertEquals( false, $title->isNamespaceIdKnown() );
+ $this->assertEquals( 'this', $title->getNamespaceName() );
+ $this->assertEquals( 'that', $title->getText() );
+ }
+
+ public function testUnknownNamespaceError( ) {
+ $this->setExpectedException( 'MWException' );
+ $title = new ForeignTitle( null, 'this', 'that' );
+ $title->getNamespaceId();
+ }
+
+ public function fullTextProvider() {
+ return array(
+ array(
+ new ForeignTitle( 20, 'Contributor', 'JohnDoe' ),
+ 'Contributor:JohnDoe'
+ ),
+ array(
+ new ForeignTitle( '1', 'Discussion', 'Capital' ),
+ 'Discussion:Capital'
+ ),
+ array(
+ new ForeignTitle( 0, '', 'MainNamespace' ),
+ 'MainNamespace'
+ ),
+ array(
+ new ForeignTitle( 4, 'Some ns', 'Article title with spaces' ),
+ 'Some_ns:Article_title_with_spaces'
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider fullTextProvider
+ */
+ public function testFullText( ForeignTitle $title, $fullText ) {
+ $this->assertEquals( $fullText, $title->getFullText() );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author This, that and the other
+ */
+
+/**
+ * @covers NaiveForeignTitleFactory
+ *
+ * @group Title
+ */
+class NaiveForeignTitleFactoryTest extends MediaWikiTestCase {
+
+ public function basicProvider() {
+ return array(
+ array(
+ 'MainNamespaceArticle', 0,
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ ),
+ array(
+ 'MainNamespaceArticle', null,
+ new ForeignTitle( null, '', 'MainNamespaceArticle' ),
+ ),
+ array(
+ 'Talk:Nice_talk', 1,
+ new ForeignTitle( 1, 'Talk', 'Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', 0,
+ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', 9000, // non-existent local namespace ID
+ new ForeignTitle( 9000, 'Bogus', 'Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', 4, // existing local namespace ID
+ new ForeignTitle( 4, 'Bogus', 'Nice_talk' ),
+ ),
+ array(
+ 'Talk:Extra:Nice_talk', 1,
+ new ForeignTitle( 1, 'Talk', 'Extra:Nice_talk' ),
+ ),
+ array(
+ 'Talk:Extra:Nice_talk', null,
+ new ForeignTitle( null, 'Talk', 'Extra:Nice_talk' ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider basicProvider
+ */
+ public function testBasic( $title, $ns, ForeignTitle $foreignTitle ) {
+ $factory = new NaiveForeignTitleFactory();
+ $testTitle = $factory->createForeignTitle( $title, $ns );
+
+ $this->assertEquals( $testTitle->isNamespaceIdKnown(),
+ $foreignTitle->isNamespaceIdKnown() );
+
+ if (
+ $testTitle->isNamespaceIdKnown() &&
+ $foreignTitle->isNamespaceIdKnown()
+ ) {
+ $this->assertEquals( $testTitle->getNamespaceId(),
+ $foreignTitle->getNamespaceId() );
+ }
+
+ $this->assertEquals( $testTitle->getNamespaceName(),
+ $foreignTitle->getNamespaceName() );
+ $this->assertEquals( $testTitle->getText(), $foreignTitle->getText() );
+
+ $this->assertEquals( str_replace( ' ', '_', $title ),
+ $foreignTitle->getFullText() );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author This, that and the other
+ */
+
+/**
+ * @covers NaiveImportTitleFactory
+ *
+ * @group Title
+ */
+class NaiveImportTitleFactoryTest extends MediaWikiTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->setMwGlobals( array(
+ 'wgLanguageCode' => 'en',
+ 'wgContLang' => Language::factory( 'en' ),
+ 'wgExtraNamespaces' => array( 100 => 'Portal' ),
+ ) );
+ }
+
+ public function basicProvider() {
+ return array(
+ array(
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ Title::newFromText( 'MainNamespaceArticle' )
+ ),
+ array(
+ new ForeignTitle( null, '', 'MainNamespaceArticle' ),
+ Title::newFromText( 'MainNamespaceArticle' )
+ ),
+ array(
+ new ForeignTitle( 1, 'Discussion', 'Nice_talk' ),
+ Title::newFromText( 'Talk:Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ),
+ Title::newFromText( 'Bogus:Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 100, 'Bogus', 'Nice_talk' ),
+ Title::newFromText( 'Bogus:Nice_talk' ) // not Portal:Nice_talk
+ ),
+ array(
+ new ForeignTitle( 1, 'Bogus', 'Nice_talk' ),
+ Title::newFromText( 'Talk:Nice_talk' ) // not Bogus:Nice_talk
+ ),
+ array(
+ new ForeignTitle( 100, 'Portal', 'Nice_talk' ),
+ Title::newFromText( 'Portal:Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 724, 'Portal', 'Nice_talk' ),
+ Title::newFromText( 'Portal:Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 2, 'Portal', 'Nice_talk' ),
+ Title::newFromText( 'User:Nice_talk' )
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider basicProvider
+ */
+ public function testBasic( ForeignTitle $foreignTitle, Title $title ) {
+ $factory = new NaiveImportTitleFactory();
+ $testTitle = $factory->createTitleFromForeignTitle( $foreignTitle );
+
+ $this->assertTrue( $title->equals( $testTitle ) );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author This, that and the other
+ */
+
+/**
+ * @covers NamespaceAwareForeignTitleFactory
+ *
+ * @group Title
+ */
+class NamespaceAwareForeignTitleFactoryTest extends MediaWikiTestCase {
+
+ public function basicProvider() {
+ return array(
+ array(
+ 'MainNamespaceArticle', 0,
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ ),
+ array(
+ 'MainNamespaceArticle', null,
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ ),
+ array(
+ 'Talk:Nice_talk', 1,
+ new ForeignTitle( 1, 'Talk', 'Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', 0,
+ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', null,
+ new ForeignTitle( 9000, 'Bogus', 'Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', 4,
+ new ForeignTitle( 4, 'Bogus', 'Nice_talk' ),
+ ),
+ array(
+ 'Bogus:Nice_talk', 1,
+ new ForeignTitle( 1, 'Talk', 'Nice_talk' ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider basicProvider
+ */
+ public function testBasic( $title, $ns, ForeignTitle $foreignTitle ) {
+
+ $foreignNamespaces = array(
+ 0 => '', 1 => 'Talk', 100 => 'Portal', 9000 => 'Bogus'
+ );
+
+ $factory = new NamespaceAwareForeignTitleFactory( $foreignNamespaces );
+ $testTitle = $factory->createForeignTitle( $title, $ns );
+
+ $this->assertEquals( $testTitle->isNamespaceIdKnown(),
+ $foreignTitle->isNamespaceIdKnown() );
+
+ if (
+ $testTitle->isNamespaceIdKnown() &&
+ $foreignTitle->isNamespaceIdKnown()
+ ) {
+ $this->assertEquals( $testTitle->getNamespaceId(),
+ $foreignTitle->getNamespaceId() );
+ }
+
+ $this->assertEquals( $testTitle->getNamespaceName(),
+ $foreignTitle->getNamespaceName() );
+ $this->assertEquals( $testTitle->getText(), $foreignTitle->getText() );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author This, that and the other
+ */
+
+/**
+ * @covers NamespaceImportTitleFactory
+ *
+ * @group Title
+ */
+class NamespaceImportTitleFactoryTest extends MediaWikiTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->setMwGlobals( array(
+ 'wgLanguageCode' => 'en',
+ 'wgContLang' => Language::factory( 'en' ),
+ ) );
+ }
+
+ public function basicProvider() {
+ return array(
+ array(
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ 0,
+ Title::newFromText( 'MainNamespaceArticle' )
+ ),
+ array(
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ 2,
+ Title::newFromText( 'User:MainNamespaceArticle' )
+ ),
+ array(
+ new ForeignTitle( 1, 'Discussion', 'Nice_talk' ),
+ 0,
+ Title::newFromText( 'Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ),
+ 0,
+ Title::newFromText( 'Bogus:Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ),
+ 2,
+ Title::newFromText( 'User:Bogus:Nice_talk' )
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider basicProvider
+ */
+ public function testBasic( ForeignTitle $foreignTitle, $ns, Title $title ) {
+ $factory = new NamespaceImportTitleFactory( $ns );
+ $testTitle = $factory->createTitleFromForeignTitle( $foreignTitle );
+
+ $this->assertTrue( $title->equals( $testTitle ) );
+ }
+}
--- /dev/null
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author This, that and the other
+ */
+
+/**
+ * @covers SubpageImportTitleFactory
+ *
+ * @group Title
+ */
+class SubpageImportTitleFactoryTest extends MediaWikiTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->setMwGlobals( array(
+ 'wgLanguageCode' => 'en',
+ 'wgContLang' => Language::factory( 'en' ),
+ 'wgNamespacesWithSubpages' => array( 0 => false, 2 => true ),
+ ) );
+ }
+
+ public function basicProvider() {
+ return array(
+ array(
+ new ForeignTitle( 0, '', 'MainNamespaceArticle' ),
+ Title::newFromText( 'User:Graham' ),
+ Title::newFromText( 'User:Graham/MainNamespaceArticle' )
+ ),
+ array(
+ new ForeignTitle( 1, 'Discussion', 'Nice_talk' ),
+ Title::newFromText( 'User:Graham' ),
+ Title::newFromText( 'User:Graham/Discussion:Nice_talk' )
+ ),
+ array(
+ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ),
+ Title::newFromText( 'User:Graham' ),
+ Title::newFromText( 'User:Graham/Bogus:Nice_talk' )
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider basicProvider
+ */
+ public function testBasic( ForeignTitle $foreignTitle, Title $rootPage,
+ Title $title ) {
+
+ $factory = new SubpageImportTitleFactory( $rootPage );
+ $testTitle = $factory->createTitleFromForeignTitle( $foreignTitle );
+
+ $this->assertTrue( $testTitle->equals( $title ) );
+ }
+
+ public function failureProvider() {
+ return array(
+ array(
+ Title::newFromText( 'Graham' ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider failureProvider
+ */
+ public function testFailures( Title $rootPage ) {
+ $this->setExpectedException( 'MWException' );
+ new SubpageImportTitleFactory( $rootPage );
+ }
+}