From: jenkins-bot Date: Tue, 28 Mar 2017 23:32:06 +0000 (+0000) Subject: Merge "Deprecate "Avoid page_touched update for HTTP GET action=purge requests"" X-Git-Tag: 1.31.0-rc.0~3678 X-Git-Url: https://git.heureux-cyclage.org/index.php?a=commitdiff_plain;h=13a2d7b1f9c86ea2727aba4ee6a5df78fbb6f014;hp=f4a306fb18f1d52b5bd8acef8391b157258418f8;p=lhc%2Fweb%2Fwiklou.git Merge "Deprecate "Avoid page_touched update for HTTP GET action=purge requests"" --- diff --git a/.travis.yml b/.travis.yml index 5e2c7a00db..baf7f033e8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,11 @@ matrix: php: hhvm-3.12 - env: dbtype=mysql dbuser=root php: 7 + allow_failures: + # Postgres support for unit tests is still buggy + # https://phabricator.wikimedia.org/T75174 + - env: dbtype=postgres dbuser=travis + php: 5.5 services: - mysql diff --git a/RELEASE-NOTES-1.29 b/RELEASE-NOTES-1.29 index c87e90cee2..ab7537528e 100644 --- a/RELEASE-NOTES-1.29 +++ b/RELEASE-NOTES-1.29 @@ -37,6 +37,7 @@ production. added to $wgExtraLanguageCodes instead. === New features in 1.29 === +* (T137376) New language support: Atikamekw (atj) * (T5233) A cookie can now be set when a user is autoblocked, to track that user if they move to a new IP address. This is disabled by default. * Added ILocalizedException interface to standardize the use of localized diff --git a/includes/EditPage.php b/includes/EditPage.php index 7a5832609c..ac62e3fc70 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -3058,6 +3058,7 @@ class EditPage { */ protected function showSummaryInput( $isSubjectPreview, $summary = "" ) { global $wgOut; + # Add a class if 'missingsummary' is triggered to allow styling of the summary line $summaryClass = $this->missingSummary ? 'mw-summarymissed' : 'mw-summary'; if ( $isSubjectPreview ) { @@ -3506,12 +3507,12 @@ HTML $message = $this->context->msg( 'edithelppage' )->inContentLanguage()->text(); $edithelpurl = Skin::makeInternalOrExternalUrl( $message ); - $attrs = [ - 'target' => 'helpwindow', - 'href' => $edithelpurl, - ]; - $edithelp = Html::linkButton( $this->context->msg( 'edithelp' )->text(), - $attrs, [ 'mw-ui-quiet' ] ) . + $edithelp = + Html::linkButton( + $this->context->msg( 'edithelp' )->text(), + [ 'target' => 'helpwindow', 'href' => $edithelpurl ], + [ 'mw-ui-quiet' ] + ) . $this->context->msg( 'word-separator' )->escaped() . $this->context->msg( 'newwindow' )->parse(); @@ -3571,18 +3572,16 @@ HTML */ public function getCancelLink() { $cancelParams = []; - $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); if ( !$this->isConflict && $this->oldid > 0 ) { $cancelParams['oldid'] = $this->oldid; } elseif ( $this->getContextTitle()->isRedirect() ) { $cancelParams['redirect'] = 'no'; } - $attrs = [ 'id' => 'mw-editform-cancel' ]; - return $linkRenderer->makeKnownLink( + return MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( $this->getContextTitle(), new HtmlArmor( $this->context->msg( 'cancel' )->parse() ), - Html::buttonAttributes( $attrs, [ 'mw-ui-quiet' ] ), + Html::buttonAttributes( [ 'id' => 'mw-editform-cancel' ], [ 'mw-ui-quiet' ] ), $cancelParams ); } @@ -4038,9 +4037,8 @@ HTML ">{$minorLabel}"; if ( $wgUseMediaWikiUIEverywhere ) { - $checkboxes['minor'] = Html::openElement( 'div', [ 'class' => 'mw-ui-checkbox' ] ) . - $minorEditHtml . - Html::closeElement( 'div' ); + $checkboxes['minor'] = + Html::rawElement( 'div', [ 'class' => 'mw-ui-checkbox' ], $minorEditHtml ); } else { $checkboxes['minor'] = $minorEditHtml; } @@ -4061,9 +4059,8 @@ HTML Xml::expandAttributes( [ 'title' => Linker::titleAttrib( 'watch', 'withaccess' ) ] ) . ">{$watchLabel}"; if ( $wgUseMediaWikiUIEverywhere ) { - $checkboxes['watch'] = Html::openElement( 'div', [ 'class' => 'mw-ui-checkbox' ] ) . - $watchThisHtml . - Html::closeElement( 'div' ); + $checkboxes['watch'] = + Html::rawElement( 'div', [ 'class' => 'mw-ui-checkbox' ], $watchThisHtml ); } else { $checkboxes['watch'] = $watchThisHtml; } @@ -4095,34 +4092,41 @@ HTML } else { $buttonLabelKey = !$this->mTitle->exists() ? 'savearticle' : 'savechanges'; } - $buttonLabel = $this->context->msg( $buttonLabelKey )->text(); $attribs = [ 'id' => 'wpSave', 'name' => 'wpSave', 'tabindex' => ++$tabindex, ] + Linker::tooltipAndAccesskeyAttribs( 'save' ); - $buttons['save'] = Html::submitButton( $buttonLabel, $attribs, [ 'mw-ui-progressive' ] ); + $buttons['save'] = Html::submitButton( + $this->context->msg( $buttonLabelKey )->text(), + $attribs, + [ 'mw-ui-progressive' ] + ); - ++$tabindex; // use the same for preview and live preview $attribs = [ 'id' => 'wpPreview', 'name' => 'wpPreview', - 'tabindex' => $tabindex, + 'tabindex' => ++$tabindex, ] + Linker::tooltipAndAccesskeyAttribs( 'preview' ); - $buttons['preview'] = Html::submitButton( $this->context->msg( 'showpreview' )->text(), - $attribs ); + $buttons['preview'] = Html::submitButton( + $this->context->msg( 'showpreview' )->text(), + $attribs + ); $attribs = [ 'id' => 'wpDiff', 'name' => 'wpDiff', 'tabindex' => ++$tabindex, ] + Linker::tooltipAndAccesskeyAttribs( 'diff' ); - $buttons['diff'] = Html::submitButton( $this->context->msg( 'showdiff' )->text(), - $attribs ); + $buttons['diff'] = Html::submitButton( + $this->context->msg( 'showdiff' )->text(), + $attribs + ); // Avoid PHP 7.1 warning of passing $this by reference $editPage = $this; Hooks::run( 'EditPageBeforeEditButtons', [ &$editPage, &$buttons, &$tabindex ] ); + return $buttons; } diff --git a/includes/MediaWiki.php b/includes/MediaWiki.php index 521c02c922..ef0563e550 100644 --- a/includes/MediaWiki.php +++ b/includes/MediaWiki.php @@ -21,6 +21,7 @@ */ use MediaWiki\Logger\LoggerFactory; +use Psr\Log\LoggerInterface; use MediaWiki\MediaWikiServices; use Wikimedia\Rdbms\ChronologyProtector; use Wikimedia\Rdbms\LBFactory; @@ -942,24 +943,45 @@ class MediaWiki { $n = intval( $jobRunRate ); } - $runJobsLogger = LoggerFactory::getInstance( 'runJobs' ); + $logger = LoggerFactory::getInstance( 'runJobs' ); - // Fall back to running the job(s) while the user waits if needed - if ( !$this->config->get( 'RunJobsAsync' ) ) { - $runner = new JobRunner( $runJobsLogger ); - $runner->run( [ 'maxJobs' => $n ] ); - return; - } - - // Do not send request if there are probably no jobs try { - $group = JobQueueGroup::singleton(); - if ( !$group->queuesHaveJobs( JobQueueGroup::TYPE_DEFAULT ) ) { - return; + if ( $this->config->get( 'RunJobsAsync' ) ) { + // Send an HTTP request to the job RPC entry point if possible + $invokedWithSuccess = $this->triggerAsyncJobs( $n, $logger ); + if ( !$invokedWithSuccess ) { + // Fall back to blocking on running the job(s) + $logger->warning( "Jobs switched to blocking; Special:RunJobs disabled" ); + $this->triggerSyncJobs( $n, $logger ); + } + } else { + $this->triggerSyncJobs( $n, $logger ); } } catch ( JobQueueError $e ) { + // Do not make the site unavailable (T88312) MWExceptionHandler::logException( $e ); - return; // do not make the site unavailable + } + } + + /** + * @param integer $n Number of jobs to try to run + * @param LoggerInterface $runJobsLogger + */ + private function triggerSyncJobs( $n, LoggerInterface $runJobsLogger ) { + $runner = new JobRunner( $runJobsLogger ); + $runner->run( [ 'maxJobs' => $n ] ); + } + + /** + * @param integer $n Number of jobs to try to run + * @param LoggerInterface $runJobsLogger + * @return bool Success + */ + private function triggerAsyncJobs( $n, LoggerInterface $runJobsLogger ) { + // Do not send request if there are probably no jobs + $group = JobQueueGroup::singleton(); + if ( !$group->queuesHaveJobs( JobQueueGroup::TYPE_DEFAULT ) ) { + return true; } $query = [ 'title' => 'Special:RunJobs', @@ -1026,12 +1048,6 @@ class MediaWiki { $runJobsLogger->error( "Failed to start cron API (socket error $errno): $errstr" ); } - // Fall back to running the job(s) while the user waits if needed - if ( !$invokedWithSuccess ) { - $runJobsLogger->warning( "Jobs switched to blocking; Special:RunJobs disabled" ); - - $runner = new JobRunner( $runJobsLogger ); - $runner->run( [ 'maxJobs' => $n ] ); - } + return $invokedWithSuccess; } } diff --git a/includes/Title.php b/includes/Title.php index a5bb9c691f..e45994c094 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -3961,14 +3961,22 @@ class Title implements LinkTarget { * @return int|bool Old revision ID, or false if none exists */ public function getPreviousRevisionID( $revId, $flags = 0 ) { - $db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_REPLICA ); + /* This function and getNextRevisionID have bad performance when + used on a page with many revisions on mysql. An explicit extended + primary key may help in some cases, if the PRIMARY KEY is banned: + T159319 */ + if ( $flags & self::GAID_FOR_UPDATE ) { + $db = wfGetDB( DB_MASTER ); + } else { + $db = wfGetDB( DB_REPLICA, 'contributions' ); + } $revId = $db->selectField( 'revision', 'rev_id', [ 'rev_page' => $this->getArticleID( $flags ), 'rev_id < ' . intval( $revId ) ], __METHOD__, - [ 'ORDER BY' => 'rev_id DESC' ] + [ 'ORDER BY' => 'rev_id DESC', 'IGNORE INDEX' => 'PRIMARY' ] ); if ( $revId === false ) { @@ -3986,14 +3994,18 @@ class Title implements LinkTarget { * @return int|bool Next revision ID, or false if none exists */ public function getNextRevisionID( $revId, $flags = 0 ) { - $db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_REPLICA ); + if ( $flags & self::GAID_FOR_UPDATE ) { + $db = wfGetDB( DB_MASTER ); + } else { + $db = wfGetDB( DB_REPLICA, 'contributions' ); + } $revId = $db->selectField( 'revision', 'rev_id', [ 'rev_page' => $this->getArticleID( $flags ), 'rev_id > ' . intval( $revId ) ], __METHOD__, - [ 'ORDER BY' => 'rev_id' ] + [ 'ORDER BY' => 'rev_id', 'IGNORE INDEX' => 'PRIMARY' ] ); if ( $revId === false ) { diff --git a/includes/TrackingCategories.php b/includes/TrackingCategories.php index 825860a5a9..a9ebd762db 100644 --- a/includes/TrackingCategories.php +++ b/includes/TrackingCategories.php @@ -45,6 +45,7 @@ class TrackingCategories { 'expansion-depth-exceeded-category', 'restricted-displaytitle-ignored', 'deprecated-self-close-category', + 'template-loop-category', ]; /** diff --git a/includes/api/i18n/fr.json b/includes/api/i18n/fr.json index afe3081a23..262b5eb19a 100644 --- a/includes/api/i18n/fr.json +++ b/includes/api/i18n/fr.json @@ -953,8 +953,8 @@ "apihelp-query+random-param-limit": "Limiter le nombre de pages aléatoires renvoyées.", "apihelp-query+random-param-redirect": "Utilisez $1filterredir=redirects au lieu de ce paramètre.", "apihelp-query+random-param-filterredir": "Comment filtrer les redirections.", - "apihelp-query+random-example-simple": "Obtenir deux pages aléatoires de l’espace principal", - "apihelp-query+random-example-generator": "Renvoyer les informations de la page sur deux pages au hasard de l’espace de noms principal", + "apihelp-query+random-example-simple": "Obtenir deux pages aléatoires de l’espace de noms principal.", + "apihelp-query+random-example-generator": "Renvoyer les informations de la page sur deux pages au hasard de l’espace de noms principal.", "apihelp-query+recentchanges-description": "Énumérer les modifications récentes.", "apihelp-query+recentchanges-param-start": "L’horodatage auquel démarrer l’énumération.", "apihelp-query+recentchanges-param-end": "L’horodatage auquel arrêter l’énumération.", diff --git a/includes/http/Http.php b/includes/http/Http.php index fa2d5a385f..889cb60316 100644 --- a/includes/http/Http.php +++ b/includes/http/Http.php @@ -53,6 +53,8 @@ class Http { * - logger A \Psr\Logger\LoggerInterface instance for debug logging * - username Username for HTTP Basic Authentication * - password Password for HTTP Basic Authentication + * - originalRequest Information about the original request (as a WebRequest object or + * an associative array with 'ip' and 'userAgent'). * @param string $caller The method making this request, for profiling * @return string|bool (bool)false on failure or a string on success */ diff --git a/includes/http/MWHttpRequest.php b/includes/http/MWHttpRequest.php index e04402fa81..8d58ce5314 100644 --- a/includes/http/MWHttpRequest.php +++ b/includes/http/MWHttpRequest.php @@ -125,6 +125,9 @@ class MWHttpRequest implements LoggerAwareInterface { 'Basic ' . base64_encode( $options['username'] . ':' . $options['password'] ) ); } + if ( isset( $options['originalRequest'] ) ) { + $this->setOriginalRequest( $options['originalRequest'] ); + } $members = [ "postData", "proxy", "noProxy", "sslVerifyHost", "caInfo", "method", "followRedirects", "maxRedirects", "sslVerifyCert", "callback" ]; @@ -632,4 +635,34 @@ class MWHttpRequest implements LoggerAwareInterface { public function canFollowRedirects() { return true; } + + /** + * Set information about the original request. This can be useful for + * endpoints/API modules which act as a proxy for some service, and + * throttling etc. needs to happen in that service. + * Calling this will result in the X-Forwarded-For and X-Original-User-Agent + * headers being set. + * @param WebRequest|array $originalRequest When in array form, it's + * expected to have the keys 'ip' and 'userAgent'. + * @note IP/user agent is personally identifiable information, and should + * only be set when the privacy policy of the request target is + * compatible with that of the MediaWiki installation. + */ + public function setOriginalRequest( $originalRequest ) { + if ( $originalRequest instanceof WebRequest ) { + $originalRequest = [ + 'ip' => $originalRequest->getIP(), + 'userAgent' => $originalRequest->getHeader( 'User-Agent' ), + ]; + } elseif ( + !is_array( $originalRequest ) + || array_diff( [ 'ip', 'userAgent' ], array_keys( $originalRequest ) ) + ) { + throw new InvalidArgumentException( __METHOD__ . ': $originalRequest must be a ' + . "WebRequest or an array with 'ip' and 'userAgent' keys" ); + } + + $this->reqHeaders['X-Forwarded-For'] = $originalRequest['ip']; + $this->reqHeaders['X-Original-User-Agent'] = $originalRequest['userAgent']; + } } diff --git a/includes/installer/DatabaseUpdater.php b/includes/installer/DatabaseUpdater.php index f8ab1f283e..98d354cb95 100644 --- a/includes/installer/DatabaseUpdater.php +++ b/includes/installer/DatabaseUpdater.php @@ -392,7 +392,7 @@ abstract class DatabaseUpdater { * Writes the schema updates desired to a file for the DB Admin to run. * @param array $schemaUpdate */ - private function writeSchemaUpdateFile( $schemaUpdate = [] ) { + private function writeSchemaUpdateFile( array $schemaUpdate = [] ) { $updates = $this->updatesSkipped; $this->updatesSkipped = []; @@ -425,7 +425,7 @@ abstract class DatabaseUpdater { * * @param array $what What updates to perform */ - public function doUpdates( $what = [ 'core', 'extensions', 'stats' ] ) { + public function doUpdates( array $what = [ 'core', 'extensions', 'stats' ] ) { $this->db->setSchemaVars( $this->getSchemaVars() ); $what = array_flip( $what ); diff --git a/includes/installer/OracleUpdater.php b/includes/installer/OracleUpdater.php index 79ae175d53..e262eda635 100644 --- a/includes/installer/OracleUpdater.php +++ b/includes/installer/OracleUpdater.php @@ -285,7 +285,7 @@ class OracleUpdater extends DatabaseUpdater { * * @param array $what */ - public function doUpdates( $what = [ 'core', 'extensions', 'purge', 'stats' ] ) { + public function doUpdates( array $what = [ 'core', 'extensions', 'purge', 'stats' ] ) { parent::doUpdates( $what ); $this->db->query( 'BEGIN fill_wiki_info; END;' ); diff --git a/includes/installer/i18n/br.json b/includes/installer/i18n/br.json index 9191d183f0..9aa9572345 100644 --- a/includes/installer/i18n/br.json +++ b/includes/installer/i18n/br.json @@ -91,6 +91,7 @@ "config-db-name": "Anv an diaz roadennoù :", "config-db-name-help": "Dibabit un anv evit ho wiki.\nNa lakait ket a esaouennoù ennañ.\n\nMa ri gant un herberc'hiañ kenrannet e vo pourchaset deoc'h un anv diaz roadennoù dibar da vezañ graet gantañ gant ho herberc'hier pe e lezo ac'hanoc'h da grouiñ diazoù roadennoù dre ur banell gontrolliñ.", "config-db-name-oracle": "Brastres diaz roadennoù :", + "config-db-account-oracle-warn": "Skoret ez eus tri doare evit staliañ Oracle da v/backend diaz roadennoù :\n\nMar fell deoc'h krouiñ ur gont diaz roadennoù e-ser an argerzh staliañ eo rekis pourchas ur gont gant ur roll SYSDBA evel kont diaz roadennoù evit ar staliañ, ha spisaat an titouroù anaout a fell deoc'h evit ar gont moned ouzh ar web. A-hend-all, e c'hallit krouiñ ar gont moned ouzh ar web gant an dorn ha pourchas hepken ar gont-se (ma'z eus bet ranket diskouez aotreoù ret evit krouiñ traezoù ar brastres) pe pourveziñ div gont disheñvel, unan gant dreistwirioù krouiñ hag eben, gant gwirioù strishaet, evit moned ouzh ar web.\n\nGallout a reer kaout ar skript evit kouiñ ur gont a zo rekis dreistwirioù eviti e kavlec'h \"trezalc'h/oracle/\" ar staliadur-mañ. Na zisoñjit ket e vo diweredekaet holl varregezhioù trezalc'h ar gont dre ziouer ma rit gant ur gont strishaet he gwirioù.", "config-db-install-account": "Kont implijer evit ar staliadur", "config-db-username": "Anv implijer an diaz roadennoù :", "config-db-password": "Ger-tremen an diaz roadennoù :", @@ -99,13 +100,16 @@ "config-db-install-help": "Merkañ anv an implijer hag ar ger-tremen a vo implijet evit kevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.", "config-db-account-lock": "Implijout ar memes anv implijer ha ger-tremen e-kerzh oberiadurioù boutin", "config-db-wiki-account": "Kont implijer evit oberiadurioù boutin", + "config-db-wiki-help": "Merkañ an anv-implijer hag ar ger-tremen a vo implijet evit kevreañ ouzh an diaz roadennoù e-pad oberiadurioù normal ar wiki.\nMa n'eus ket eus ar gont ha ma'z eus gwirioù a-walc'h gant ar gont staliañ, e vo krouet ar gont implijer-mañ gant al live gwirioù rekis izelañ evit gallout lakaat ar wiki da vont en-dro.", "config-db-prefix": "Rakrann taolennoù an diaz roadennoù :", + "config-db-prefix-help": "Mard eo ret deoc'h rannañ un diaz roadennoù gant meur a wiki, pe etre MediaWiki hag un arload benak all e c'hallit dibab ouzhpennañ ur rakger da holl anvioù an taolennoù kuit na vije tabutoù.\nArabat ober gant esaouennoù.\n\nPeurliesañ e vez laosket goullo ar vaezienn-mañ.", "config-mysql-old": "Rekis eo MySQL $1 pe ur stumm nevesoc'h; ober a rit gant $2.", "config-db-port": "Porzh an diaz roadennoù :", "config-db-schema": "Brastres evit MediaWiki", "config-db-schema-help": "Peurliesañ e vo digudenn ar chema-mañ.\nArabat cheñch anezho ma n'hoc'h eus ket ezhomm d'en ober.", "config-pg-test-error": "N'haller ket kevreañ ouzh an diaz-titouroù '''$1''' : $2", "config-sqlite-dir": "Kavlec'h roadennoù SQLite :", + "config-sqlite-dir-help": "Stokañ a ra SQLite an holl roadennoù en ur restr nemetken.\n\nE-pad ar staliañ, rankout a ra ar servijer web gallout skrivañ er c'havlec'h pourchaset ganeoc'h.\n\nNe zlefe ket bezañ tizhadus dre ar web; setu perak ne lakaomp ket anezhañ el lec'h m'emañ ho restroù PHP.\n\nSkivañ a raio ar stalier ur restr .htaccess war un dro gantañ met ma c'hoarvez ur fazi e c'hallfe unan bennak tapout krog en ho roadennoù.\nKement-se a sell ouzh ar roadennoù implijer (chomlec'hioù postel, gerioù-tremen hachet) hag ouzh an adweladennoù diverket ha takadoù gwarzeet all eus ar wiki.\n\nEn em soñjit ha ne vefe ket gwelloc'h lakaat an diaz roadennoù en un tu bennak all, da skouer e /var/lib/mediawiki/yourwiki.", "config-oracle-def-ts": "Esaouenn stokañ (\"tablespace\") dre ziouer :", "config-oracle-temp-ts": "Esaouenn stokañ (''tablespace'') da c'hortoz :", "config-type-mysql": "MySQL (pe kenglotus)", @@ -114,7 +118,7 @@ "config-type-oracle": "Oracle", "config-type-mssql": "Microsoft SQL Server", "config-support-info": "Skoret eo ar reizhiadoù diaz titouroù da-heul gant MediaWiki :\n\n$1\n\nMa ne welit ket amañ dindan ar reizhiad diaz titouroù a fell deoc'h ober ganti, heuilhit an titouroù a-us (s.o. al liammoù) evit gweredekaat ar skorañ.", - "config-dbsupport-mysql": "* $1 eo an dibab kentañ evit MediaWiki hag an hini skoret ar gwellañ ([http://www.php.net/manual/en/mysql.installation.php penaos kempunañ PHP gant skor MySQL])", + "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] eo an dibab kentañ evit MediaWiki hag an hini skoret ar gwellañ. Mont a ra MediaWiki en-dro gant [{{int:version-db-mariadb-url}} MariaDB] ha [{{int:version-db-percona-url}} Percona Server] ivez, kenglotus o-daou gant MySQL. ([http://www.php.net/manual/en/mysqli.installation.php Penaos kempunañ PHP gant skor MySQL])", "config-dbsupport-postgres": "* Ur reizhiad diaz titouroù brudet ha digor eo $1. Gallout a ra ober evit MySQL ([http://www.php.net/manual/en/pgsql.installation.php Penaos kempunañ PHP gant skor PostgreSQL]). Gallout a ra bezañ un nebeud drein bihan enni ha n'eo ket erbedet he implijout en un endro produiñ.", "config-dbsupport-sqlite": "* $1 zo ur reizhiad diaz titouroù skañv skoret eus ar c'hentañ. ([http://www.php.net/manual/en/pdo.installation.php Penaos kempunañ PHP gant skor SQLite], implijout a ra PDO)", "config-dbsupport-oracle": "* $1 zo un diaz titouroù kenwerzhel. ([http://www.php.net/manual/en/oci8.installation.php Penaos kempunañ PHP gant skor OCI8])", diff --git a/includes/libs/CSSMin.php b/includes/libs/CSSMin.php index b1cece8488..bba07e263b 100644 --- a/includes/libs/CSSMin.php +++ b/includes/libs/CSSMin.php @@ -176,6 +176,12 @@ class CSSMin { * @return bool|string */ public static function getMimeType( $file ) { + // Infer the MIME-type from the file extension + $ext = strtolower( pathinfo( $file, PATHINFO_EXTENSION ) ); + if ( isset( self::$mimeTypes[$ext] ) ) { + return self::$mimeTypes[$ext]; + } + $realpath = realpath( $file ); if ( $realpath @@ -186,12 +192,6 @@ class CSSMin { return finfo_file( finfo_open( FILEINFO_MIME_TYPE ), $realpath ); } - // Infer the MIME-type from the file extension - $ext = strtolower( pathinfo( $file, PATHINFO_EXTENSION ) ); - if ( isset( self::$mimeTypes[$ext] ) ) { - return self::$mimeTypes[$ext]; - } - return false; } diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 8db1fe3794..47d9a62327 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -3257,6 +3257,7 @@ class Parser { $text = '' . wfMessage( 'parser-template-loop-warning', $titleText )->inContentLanguage()->text() . ''; + $this->addTrackingCategory( 'template-loop-category' ); wfDebug( __METHOD__ . ": template loop broken at '$titleText'\n" ); } } diff --git a/includes/resourceloader/ResourceLoaderSkinModule.php b/includes/resourceloader/ResourceLoaderSkinModule.php index 91e63e70aa..d72b3afaf5 100644 --- a/includes/resourceloader/ResourceLoaderSkinModule.php +++ b/includes/resourceloader/ResourceLoaderSkinModule.php @@ -23,8 +23,6 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule { - /* Methods */ - /** * @param ResourceLoaderContext $context * @return array @@ -77,13 +75,12 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule { return false; } - /** - * @param ResourceLoaderContext $context - * @return string: Hash - */ - public function getModifiedHash( ResourceLoaderContext $context ) { - $logo = $this->getConfig()->get( 'Logo' ); - $logoHD = $this->getConfig()->get( 'LogoHD' ); - return md5( parent::getModifiedHash( $context ) . $logo . json_encode( $logoHD ) ); + public function getDefinitionSummary( ResourceLoaderContext $context ) { + $summary = parent::getDefinitionSummary( $context ); + $summary[] = [ + 'logo' => $this->getConfig()->get( 'Logo' ), + 'logoHD' => $this->getConfig()->get( 'LogoHD' ), + ]; + return $summary; } } diff --git a/includes/specialpage/ChangesListSpecialPage.php b/includes/specialpage/ChangesListSpecialPage.php index 8e9629dca4..1832233e4b 100644 --- a/includes/specialpage/ChangesListSpecialPage.php +++ b/includes/specialpage/ChangesListSpecialPage.php @@ -177,11 +177,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { &$query_options, &$join_conds ) { $user = $ctx->getUser(); - if ( $user->getId() ) { - $conds[] = 'rc_user != ' . $dbr->addQuotes( $user->getId() ); - } else { - $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() ); - } + $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() ); }, 'cssClassSuffix' => 'self', 'isRowApplicableCallable' => function ( $ctx, $rc ) { @@ -197,11 +193,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { &$query_options, &$join_conds ) { $user = $ctx->getUser(); - if ( $user->getId() ) { - $conds[] = 'rc_user = ' . $dbr->addQuotes( $user->getId() ); - } else { - $conds[] = 'rc_user_text = ' . $dbr->addQuotes( $user->getName() ); - } + $conds[] = 'rc_user_text = ' . $dbr->addQuotes( $user->getName() ); }, 'cssClassSuffix' => 'others', 'isRowApplicableCallable' => function ( $ctx, $rc ) { diff --git a/languages/data/Names.php b/languages/data/Names.php index 1c350d065d..39e02e6424 100644 --- a/languages/data/Names.php +++ b/languages/data/Names.php @@ -71,6 +71,7 @@ class Names { 'as' => 'অসমীয়া', # Assamese 'ase' => 'American sign language', # American sign language 'ast' => 'asturianu', # Asturian + 'atj' => 'Atikamekw', # Atikamekw 'av' => 'авар', # Avar 'avk' => 'Kotava', # Kotava 'awa' => 'अवधी', # Awadhi diff --git a/languages/i18n/atj.json b/languages/i18n/atj.json index bd95460a6f..2baf6af979 100644 --- a/languages/i18n/atj.json +++ b/languages/i18n/atj.json @@ -239,6 +239,7 @@ "searchprofile-advanced": "Awocamec nantona", "searchprofile-articles-tooltip": "Nantowapita $1", "searchprofile-images-tooltip": "ka nantopitcikatek nakwe masinhikan", + "searchprofile-everything-tooltip": "Nantona nta kitciwe natosinahikanik (acit nte paskickwemakanik taci e ici aiarimotcikatek)", "searchprofile-advanced-tooltip": "Nantona taci e ici actek ka mihikok", "search-result-size": "$1 ({{PLURAL:$2|1 itewin e masinatek|$2 itewina e masinateki}})", "search-redirect": "(Taci e kiweckwemokok $1)", @@ -350,6 +351,7 @@ "booksources": "E otciparik", "booksources-search-legend": "Nantowapata nta kotakahi wapatcikana", "booksources-search": "Nanto kiskeritcikatek", + "log": "Pamikickwepitcikana masinihikana", "logeventslist-submit": "Wapata", "checkbox-all": "Kaskina", "allpages": "Kaskina paskickwemikana", @@ -395,7 +397,10 @@ "isredirect": "masinhikan ke kweskiticohemikok", "isimage": "e ici tapitik masinahikaniwoc", "whatlinkshere-links": "← ka patiki", + "whatlinkshere-hideredirs": "$1 itapihikina", + "whatlinkshere-hidetrans": "$1 pitcititawina", "whatlinkshere-hidelinks": "$1 ka patiki", + "whatlinkshere-filters": "cikopesinikan", "whatlinkshere-submit": "Tapowata", "ipblocklist-submit": "Nantokaskeritcikatek", "blocklink": "nokipita", diff --git a/languages/i18n/be-tarask.json b/languages/i18n/be-tarask.json index 9e0ced81f8..9602673395 100644 --- a/languages/i18n/be-tarask.json +++ b/languages/i18n/be-tarask.json @@ -3781,6 +3781,8 @@ "authmanager-password-help": "Пароль для аўтэнтыфікацыі.", "authmanager-domain-help": "Дамэн для вонкавай аўтэнтыфікацыі.", "authmanager-retype-help": "Пароль яшчэ раз для пацьверджаньня.", + "authmanager-email-label": "Электронная пошта", + "authmanager-email-help": "Адрас электроннай пошты", "authmanager-realname-label": "Сапраўднае імя", "authmanager-provider-temporarypassword": "Часовы пароль", "changecredentials": "Зьмена ўліковых зьвестак", diff --git a/languages/i18n/bn.json b/languages/i18n/bn.json index 55ec26463a..ee3e58f50d 100644 --- a/languages/i18n/bn.json +++ b/languages/i18n/bn.json @@ -35,17 +35,17 @@ "Elias Ahmmad" ] }, - "tog-underline": "সংযোগগুলির নিচে দাগ দেখানো হোক:", - "tog-hideminor": "অনুল্লেখ্য সম্পাদনাগুলো সাম্প্রতিক পরিবর্তনসমূহে আড়াল করো", - "tog-hidepatrolled": "পরীক্ষিত সম্পাদনাগুলি সাম্প্রতিক পরিবর্তনসমূহে আড়াল করা হোক", - "tog-newpageshidepatrolled": "পরীক্ষিত পাতাগুলিকে নতুন পাতার তালিকায় আড়াল করা হোক", - "tog-hidecategorization": "পৃষ্ঠাসমূহের শ্রেণীকরণ লুকানো হোক", + "tog-underline": "সংযোগের নিচে দাগ দেখানো হোক:", + "tog-hideminor": "অনুল্লেখ্য সম্পাদনাগুলি সাম্প্রতিক পরিবর্তন পাতায় লুকিয়ে রাখা হোক", + "tog-hidepatrolled": "পরীক্ষিত সম্পাদনাগুলি সাম্প্রতিক পরিবর্তন পাতায় লুকিয়ে রাখা হোক", + "tog-newpageshidepatrolled": "পরীক্ষিত পাতাগুলিকে নতুন পাতার তালিকায় লুকিয়ে রাখা হোক", + "tog-hidecategorization": "পাতাগুলির শ্রেণীকরণ লুকিয়ে রাখা হোক", "tog-extendwatchlist": "শুধু সাম্প্রতিক পরিবর্তনই নয়, সকল পরিবর্তন দেখতে নজর তালিকা সম্প্রসারণ করা হোক", "tog-usenewrc": "সাম্প্রতিক পরিবর্তনসমূহ এবং নজরতালিকা পাতায় পরিবর্তনগুলি একত্রে প্রদর্শন করা হোক", "tog-numberheadings": "শিরোনামগুলিকে স্বয়ংক্রিয়ভাবে ক্রমিক নম্বর দেয়া হোক", "tog-showtoolbar": "সম্পাদনা সরঞ্জামদণ্ড দেখানো হোক", "tog-editondblclick": "দুইবার ক্লিক করে পাতা সম্পাদনা করা হোক", - "tog-editsectiononrightclick": "পরিচ্ছেদের শিরোনাম ডান ক্লিকের মাধ্যমে সম্পাদনা করার ক্ষমতা দেয়া হোক", + "tog-editsectiononrightclick": "পরিচ্ছেদের শিরোনামে ডান ক্লিক করার মাধ্যমে পরিচ্ছেদ সম্পাদনা করার সুবিধাটি সক্রিয় করা হোক", "tog-watchcreations": "আমার তৈরি করা পাতাগুলি এবং আপলোড করা ফাইলগুলি আমার নজরতালিকায় যোগ করা হোক", "tog-watchdefault": "আমার সম্পাদিত পাতাগুলি এবং ফাইলগুলি আমার নজরতালিকায় যোগ করা হোক", "tog-watchmoves": "আমার দ্বারা স্থানান্তরিত পাতাগুলি এবং ফাইলগুলি আমার নজরতালিকায় যোগ করা হোক", @@ -58,23 +58,23 @@ "tog-enotifwatchlistpages": "আমার নজরতালিকায় আছে এমন কোন পাতা অথবা ফাইলে পরিবর্তন হলে আমাকে ই-মেইল করা হোক", "tog-enotifusertalkpages": "আমার ব্যবহারকারী আলোচনা পাতার পরিবর্তন হলে আমাকে ই-মেইল করা হোক", "tog-enotifminoredits": "পাতা এবং ফাইলগুলিতে অনুল্লেখ্য সম্পাদনার জন্যও আমাকে ই-মেইল করা হোক", - "tog-enotifrevealaddr": "বিজ্ঞপ্তি ই-মেইলগুলিতে আমার ই-মেইল ঠিকানা প্রকাশ করা হোক", + "tog-enotifrevealaddr": "বিজ্ঞপ্তির ই-মেইলগুলিতে আমার ই-মেইল ঠিকানা প্রকাশ করা হোক", "tog-shownumberswatching": "নজরদারী করছে এমন ব্যবহারকারীর সংখ্যা দেখানো হোক", "tog-oldsig": "আপনার বর্তমান স্বাক্ষর:", "tog-fancysig": "স্বাক্ষরকে উইকিটেক্সট হিসেবে মনে করা হোক (কোন স্বয়ংক্রিয় সংযোগ ছাড়া)", "tog-uselivepreview": "তাৎক্ষণিক প্রাকদর্শন ব্যবহার করা হোক", "tog-forceeditsummary": "খালি সম্পাদনা সারাংশ প্রবেশ করানোর সময় আমাকে জানানো হোক", - "tog-watchlisthideown": "আমার সম্পাদনাগুলি আমার নজরতালিকায় আড়াল করে রাখা হোক", - "tog-watchlisthidebots": "বটের করা সম্পাদনাগুলি নজরতালিকায় আড়াল করে রাখা হোক", - "tog-watchlisthideminor": "অনুল্লেখ্য সম্পাদনাগুলো নজরতালিকায় আড়াল করে রাখা হোক", - "tog-watchlisthideliu": "অ্যাকাউন্টে প্রবেশকৃত ব্যবহারকারীদের সম্পাদনাগুলি নজরতালিকায় আড়াল করে রাখা হোক", - "tog-watchlistreloadautomatically": "প্রতিবার একটি ছাঁকনি পরিবর্তন হওয়া মাত্রই স্বয়ংক্রিয়ভাবে নজরতালিকাটি পুনঃপ্রকাশ করা হোক (জাভাস্ক্রিপ্ট প্রয়োজন)", + "tog-watchlisthideown": "আমার সম্পাদনাগুলি আমার নজরতালিকায় লুকিয়ে রাখা হোক", + "tog-watchlisthidebots": "বটের করা সম্পাদনাগুলি নজরতালিকায় লুকিয়ে রাখা হোক", + "tog-watchlisthideminor": "অনুল্লেখ্য সম্পাদনাগুলো নজরতালিকায় লুকিয়ে রাখা হোক", + "tog-watchlisthideliu": "অ্যাকাউন্টে প্রবেশকৃত ব্যবহারকারীদের সম্পাদনাগুলি নজরতালিকায় লুকিয়ে রাখা হোক", + "tog-watchlistreloadautomatically": "প্রতিবার একটি ছাঁকনি পরিবর্তন হওয়া মাত্রই স্বয়ংক্রিয়ভাবে নজরতালিকাটি পুনঃলোড করা হোক (জাভাস্ক্রিপ্ট প্রয়োজন)", "tog-watchlisthideanons": "বেনামী ব্যবহারকারীদের সম্পাদনাগুলি নজরতালিকায় আড়ালে রাখা হোক", - "tog-watchlisthidepatrolled": "পরীক্ষিত সম্পাদনাগুলি নজরতালিকায় আড়ালে রাখা হোক", - "tog-watchlisthidecategorization": "পাতার শ্রেণীবদ্ধকরণ আড়াল করে রাখা হোক", - "tog-ccmeonemails": "অন্য ব্যবহারকারীর কাছে আমার পাঠানো ইমেইলের একটি অনুলিপি আমাকে পাঠানো হোক", + "tog-watchlisthidepatrolled": "পরীক্ষিত সম্পাদনাগুলি নজরতালিকায় লুকিয়ে রাখা হোক", + "tog-watchlisthidecategorization": "পাতার শ্রেণীবদ্ধকরণ লুকিয়ে রাখা হোক", + "tog-ccmeonemails": "অন্য ব্যবহারকারীর কাছে আমার পাঠানো ইমেইলের একটি প্রতিলিপি আমাকে পাঠানো হোক", "tog-diffonly": "পার্থক্যের নিচে পাতার বিষয়বস্তু না দেখানো হোক", - "tog-showhiddencats": "আড়ালে রাখা বিষয়শ্রেণীগুলি দেখানো হোক", + "tog-showhiddencats": "লুকায়িত বিষয়শ্রেণীসমূহ দেখানো হোক", "tog-norollbackdiff": "রোলব্যাকের পরে সংস্করণগুলির পার্থক্য না দেখানো হোক", "tog-useeditwarning": "কোনো সম্পাদনা পাতা ত্যাগের সময় পরিবর্তনগুলি সংরক্ষিত না হয়ে থাকলে আমাকে সাবধান করা হোক", "tog-prefershttps": "অ্যাকাউন্টে প্রবেশ করার সময় সবসময় নিরাপদ সংযোগ ব্যবহার করুন", @@ -155,7 +155,7 @@ "subcategories": "উপবিষয়শ্রেণীসমূহ", "category-media-header": "\"$1\" বিষয়শ্রেণীতে অন্তর্ভুক্ত মিডিয়া ফাইলগুলি", "category-empty": "''এই বিষয়শ্রণীতে বর্তমানে কোন পাতা বা মিডিয়া ফাইল নেই।''", - "hidden-categories": "{{PLURAL:$1|লুকায়িত বিষয়শ্রেণী|লুকায়িত বিষয়শ্রেণীসমূহ}}", + "hidden-categories": "{{PLURAL:$1|লুকায়িত বিষয়শ্রেণী}}", "hidden-category-category": "লুকায়িত বিষয়শ্রেণীসমূহ", "category-subcat-count": "{{PLURAL:$2|এই বিষয়শ্রেণীতে কেবলমাত্র নিচের উপবিষয়শ্রেণীটি আছে।|এই বিষয়শ্রেণীতে অন্তর্ভুক্ত মোট $2টি উপবিষয়শ্রেণীর মধ্যে {{PLURAL:$1|টি উপবিষয়শ্রেণী|$1টি উপবিষয়শ্রেণী}} নিচে দেখানো হয়েছে।}}", "category-subcat-count-limited": "এই বিষয়শ্রেণীতে নিচের {{PLURAL:$1|টি উপবিষয়শ্রেণী|$1টি উপবিষয়শ্রেণী আছে}}।", @@ -166,7 +166,7 @@ "listingcontinuesabbrev": "আরও আছে", "index-category": "নির্ঘণ্ট পাতা", "noindex-category": "নির্ঘণ্ট নয় এমন পাতা", - "broken-file-category": "অকার্যকর চিত্র সংযোগসহ পাতাসমূহ", + "broken-file-category": "অকার্যকর ফাইল সংযোগসহ পাতাসমূহ", "about": "পরিচিতি", "article": "বিষয়বস্তুর পাতা", "newwindow": "(নতুন উইন্ডোতে খুলবে)", @@ -182,19 +182,19 @@ "qbbrowse": "ব্রাউজ", "qbedit": "সম্পাদনা", "qbpageoptions": "এই পাতা", - "qbmyoptions": "আমার পাতাসমূহ", + "qbmyoptions": "আমার পাতাগুলি", "faq": "প্রাজিপ্র", "faqpage": "Project:প্রাজিপ্র", "actions": "কার্যক্রম", "namespaces": "নামস্থান", "variants": "বিকল্পসমূহ", - "navigation-heading": "পরিভ্রমণ মেনু", + "navigation-heading": "পরিভ্রমণ বাছাইতালিকা", "errorpagetitle": "ত্রুটি", "returnto": "$1 পাতায় ফেরত যান।", "tagline": "{{SITENAME}} থেকে", "help": "সাহায্য", "search": "অনুসন্ধান", - "search-ignored-headings": " #
\n# যেসব শিরোনাম অনুসন্ধানে অগ্রাহ্য করা হবে।\n# যখনই শিরোনামযুক্ত পাতাটি সূচীভুক্ত হবে, তখনই এখানকার কোন পরিবর্তন বাস্তবায়িত হবে।\n# আপনি একটি নাল/শূন্য সম্পাদনা করে পাতাটিকে বলপূর্বক পুনঃসূচীভুক্ত করতে পারেন।\n# সিনট্যাক্স বা পদক্রম/পদবিন্যাসের নিয়মগুলি নিম্নরূপ:\n#   * অক্ষর থেকে শুরু করে লাইনের শেষ পর্যন্ত সবকিছু হচ্ছে একটি মন্তব্য বা কমেন্ট।\n#   * প্রতিটি অশূন্য লাইন হচ্ছে যে শিরোনামটি অগ্রাহ্য করা হবে, বড় হাতের লেখা এবং অন্যান্য সবকিছু গণনায় ধরে।\nতথ্যসূত্র\nবহিঃসংযোগসমূহ\nআরও দেখুন\n#
", + "search-ignored-headings": " #
\n# যেসব শিরোনাম অনুসন্ধানে অগ্রাহ্য করা হবে।\n# যখনই শিরোনামযুক্ত পাতাটি সূচীভুক্ত হবে, তখনই এখানকার কোন পরিবর্তন বাস্তবায়িত হবে।\n# আপনি একটি নাল/শূন্য সম্পাদনা করে পাতাটিকে বলপূর্বক পুনঃসূচীভুক্ত করতে পারেন।\n# সিনট্যাক্স বা পদক্রম/পদবিন্যাসের নিয়মগুলি নিম্নরূপ:\n#   * অক্ষর থেকে শুরু করে লাইনের শেষ পর্যন্ত সবকিছু হচ্ছে একটি মন্তব্য বা কমেন্ট।\n#   * প্রতিটি অশূন্য লাইন হচ্ছে যে শিরোনামটি অগ্রাহ্য করা হবে, বড় হাতের লেখা এবং অন্যান্য সবকিছু গণনায় ধরে।\nতথ্যসূত্র\nবহিঃসংযোগ\nআরও দেখুন\n#
", "searchbutton": "অনুসন্ধান", "go": "চলো", "searcharticle": "চলো", @@ -236,7 +236,7 @@ "tool-link-userrights-readonly": "{{GENDER:$1|ব্যবহারকারী}} দল দেখুন", "tool-link-emailuser": "এই {{GENDER:$1|ব্যবহারকারী}}কে ইমেইল পাঠান", "userpage": "ব্যাবহারকারীর পাতা দেখুন", - "projectpage": "মেটা-পাতা দেখুন", + "projectpage": "প্রকল্প পাতাটি দেখুন", "imagepage": "ফাইল পাতা দেখুন", "mediawikipage": "বার্তার পাতা দেখুন", "templatepage": "টেমপ্লেট পাতা দেখুন", @@ -250,7 +250,7 @@ "lastmodifiedat": "এ পাতায় শেষ পরিবর্তন হয়েছিল $2টার সময়, $1 তারিখে।", "viewcount": "এ পাতাটি {{PLURAL:$1|বার|$1 বার}} দেখা হয়েছে।", "protectedpage": "সুরক্ষিত পাতা", - "jumpto": "ঝাঁপ দাও:", + "jumpto": "সরাসরি যাও:", "jumptonavigation": "পরিভ্রমণ", "jumptosearch": "অনুসন্ধান", "view-pool-error": "দুঃখিত, সার্ভারে এ মূহুর্তে অতিরিক্ত চাপ রয়েছে।\nঅনেক বেশি সংখ্যক ব্যবহারকারী এই পাতাটি দেখার চেষ্টা করছেন।\nনতুন করে এ পাতাটি দেখার চেষ্টা করার আগে কিছুক্ষণ অপেক্ষা করুন।\n\n$1", @@ -298,14 +298,14 @@ "editsectionhint": "অনুচ্ছেদ সম্পাদনা: $1", "toc": "পরিচ্ছেদসমূহ", "showtoc": "দেখাও", - "hidetoc": "আড়ালে রাখো", + "hidetoc": "লুকিয়ে রাখা হোক", "collapsible-collapse": "সংকোচন", "collapsible-expand": "প্রসারণ", "confirmable-confirm": "{{GENDER:$1|আপনি}} কি নিশ্চিত?", "confirmable-yes": "হ্যাঁ", "confirmable-no": "না", - "thisisdeleted": "$1 দেখানো বা পুনঃসৃষ্টি করা হোক?", - "viewdeleted": "$1 দেখানো হোক?", + "thisisdeleted": "$1 দেখবেন বা পুনরুদ্ধার করবেন?", + "viewdeleted": "$1 দেখবেন?", "restorelink": "{{PLURAL:$1|একটি মুছে ফেলা সম্পাদনা|$1টি মুছে ফেলা সম্পাদনা}}", "feedlinks": "ফিড:", "feed-invalid": "গ্রাহক ফিডের ধরন অবৈধ।", @@ -316,8 +316,8 @@ "page-atom-feed": "\"$1\" অ্যাটম ফিড", "feed-atom": "অ্যাটম", "red-link-title": "$1 (পাতার অস্তিত্ব নেই)", - "sort-descending": "উল্টো বর্ণক্রমে সাজাও", - "sort-ascending": "বর্ণানুক্রমে সাজাও", + "sort-descending": "উল্টো বর্ণক্রমে সাজান", + "sort-ascending": "বর্ণানুক্রমে সাজান", "nstab-main": "পাতা", "nstab-user": "ব্যবহারকারীর পাতা", "nstab-media": "মিডিয়া পাতা", @@ -334,65 +334,65 @@ "nosuchspecialpage": "এমন কোন বিশেষ পাতা নেই", "nospecialpagetext": "আপনি একটি অবৈধ বিশেষ পাতার অনুরোধ করেছেন।\n\n[[Special:SpecialPages|{{int:specialpages}}]]-এ বৈধ বিশেষ পাতাগুলির একটি তালিকা পাবেন।", "error": "ত্রুটি", - "databaseerror": "ডাটাবেস ত্রুটি", - "databaseerror-text": "ডাটাবেজ অনুসন্ধান ত্রুটি।\nএটি সফটওয়্যারের একটি ত্রুটি হতে পারে।", - "databaseerror-textcl": "ডাটাবেজ অনুসন্ধান ত্রুটি।", + "databaseerror": "ডাটাবেজ ত্রুটি", + "databaseerror-text": "ডাটাবেজ অনুসন্ধানে একটি ত্রুটি উৎপন্ন হয়েছে।\nএটি সফটওয়্যারের কোন ত্রুটির কারণে হতে পারে।", + "databaseerror-textcl": "ডাটাবেজ অনুসন্ধানে একটি ত্রুটি উৎপন্ন হয়েছে।", "databaseerror-query": "অনুসন্ধান: $1", "databaseerror-function": "ফাংশন: $1", "databaseerror-error": "ত্রুটি: $1", - "transaction-duration-limit-exceeded": "দীর্ঘ পুনঃসৃষ্টি বিলম্ব এড়ানোর জন্য এই ট্রানজাকশন বা হস্তান্তরটি বাতিল করা হল, কারণ লিখনের স্থায়ীত্ব ($1) $2 সেকেন্ড সীমাটিকে অতিক্রম করে গিয়েছিল। \nযদি আপনি অনেকগুলি আইটেম একসাথে পরিবর্তন করতে চান, তাহলে একাধিক ক্ষুদ্রতর অপারেশন করার চেষ্টা করুন।", - "laggedslavemode": "সতর্কীকরণ: পাতাটি সম্ভবত সম্প্রতি হালনাগাদকৃত নয়।", - "readonly": "ডেটাবেজের ব্যবহার সীমাবদ্ধ", - "enterlockreason": "তালাবদ্ধ করার কারণ কি তা বলুন, সাথে কখন তালা খুলবেন তার আনুমানিক সময় উল্লখ্য করুন", - "readonlytext": "নতুন ভুক্তি এবং অন্যান্য সম্পাদনার জন্য ডাটাবেজ বর্তমানে বন্ধ করা আছে। সম্ভবত ডাটাবেজ রক্ষণাবেক্ষণের নিয়মিত কাজ চলছে। কিছুক্ষণ পরে এটি স্বাভাবিক অবস্থায় ফিরে আসবে।\n\nসিস্টেম প্রশাসক যিনি এটি বন্ধ করেছেন তিনি এই ব্যাখ্যা দিয়েছেন: $1", - "missing-article": "\"$1\" $2 লেখাটি ডাটাবেসের কোন পাতায় খুজে পাওয়া যায়নি।\n\nমুছে ফেলা কোন পাতায় সংযোগ থাকার কারনেই সাধারণত এমনটি ঘটে।\n\nযদি এমনটি না হয়, তাহলে আপনি সফটওয়্যারে কোন ত্রুটি খুজে পেয়েছেন।\nদয়াকরে এ ব্যাপার সম্পর্কে ইউআরএল সহ কোন [[Special:ListUsers/sysop|প্রশাসককে]] জানান।", + "transaction-duration-limit-exceeded": "দীর্ঘ পুনঃসৃষ্টি বিলম্ব এড়ানোর জন্য এই ট্রানজাকশনটি বাতিল করা হল, কারণ লিখনের স্থায়িত্ব ($1) $2 সেকেন্ড সীমাটিকে অতিক্রম করে গিয়েছিল। \nযদি আপনি অনেকগুলি আইটেম একসাথে পরিবর্তন করতে চান, তাহলে একাধিক ক্ষুদ্রতর অপারেশন সম্পন্ন করার চেষ্টা করুন।", + "laggedslavemode": "সতর্ক বার্তা: পাতাটি সম্ভবত সম্প্রতি হালনাগাদ করা হয়নি।", + "readonly": "ডাটাবেজ অবরুদ্ধ", + "enterlockreason": "তালাবদ্ধ করার কারণ কি তা বলুন, সাথে কখন তালা খুলবেন তার আনুমানিক সময় উল্লেখ করুন", + "readonlytext": "নতুন ভুক্তি এবং অন্যান্য সম্পাদনার জন্য ডাটাবেজ বর্তমানে অবরুদ্ধ করা আছে। সম্ভবত ডাটাবেজ রক্ষণাবেক্ষণের নিয়মিত কাজ চলছে। কাজ শেষ হলে এটি স্বাভাবিক অবস্থায় ফিরে আসবে।\n\nযে সিস্টেম প্রশাসক এটি অবরুদ্ধ করেছেন, তিনি এই ব্যাখ্যা দিয়েছেন: $1", + "missing-article": "\"$1\" পাতাটির $2 লেখাটি ডাটাবেজ খুঁজে পায়নি, যদিও খুঁজে পাওয়ার কথা ছিল।\n\nসাধারণত কোন মেয়াদোত্তীর্ণ সংশোধন পার্থক্য অনুসরণ করলে অথবা \nমুছে ফেলা কোন পাতার ইতিহাসের সংযোগ অনুসরণ করলে এমনটি ঘটে।\n\nযদি এমনটি না হয়, তাহলে আপনি হয়ত সফটওয়্যারে কোন ত্রুটি খুঁজে পেয়েছেন।\n\nঅনুগ্রহ করে ইউআরএল-টি উল্লেখ করে এ ব্যাপারে কোন [[Special:ListUsers/sysop|প্রশাসককে]] অবহিত করুন।", "missingarticle-rev": "(সংস্করণ#: $1)", "missingarticle-diff": "(পার্থক্য: $1, $2)", - "readonly_lag": "ডাটাবেজ স্বয়ংক্রিয়ভাবে বন্ধ করে দেয়া হয়েছে, যাতে অধীন ডাটাবেজ সার্ভারগুলি প্রধান ডাটাবেজ সার্ভারের অবস্থায় আসতে পারে।", + "readonly_lag": "ডাটাবেজ স্বয়ংক্রিয়ভাবে অবরুদ্ধ করে দেয়া হয়েছে, যাতে অধীন ডাটাবেজ সার্ভারগুলি প্রধান ডাটাবেজ সার্ভারের অবস্থায় আসতে পারে।", "nonwrite-api-promise-error": "'Promise-Non-Write-API-Action' HTTP শিরলেখে পাঠানো হয়েছিল কিন্তু অনুরোধটি একটি API লিখন মডিউলে ছিল।", - "internalerror": "আভ্যন্তরীণ ত্রুটি", - "internalerror_info": "আভ্যন্তরীণ ত্রুটি: $1", + "internalerror": "অভ্যন্তরীণ ত্রুটি", + "internalerror_info": "অভ্যন্তরীণ ত্রুটি: $1", "internalerror-fatal-exception": "\"$1\" ধরনের মারাত্মক ব্যতিক্রম", - "filecopyerror": "\"$1\" থেকে \"$2\" ফাইল অনুলিপি করা যায়নি।", - "filerenameerror": "\"$1\" ফাইলটির নাম বদলে \"$2\" করা সম্ভব হচ্ছে না।", - "filedeleteerror": "\"$1\" ফাইলটি মুছে ফেলা সম্ভব হচ্ছে না।", - "directorycreateerror": "\"$1\" ডাইরেক্টরি তৈরি করা যায়নি।", - "directoryreadonlyerror": "নির্দেশিকা \"$1\" শুধুমাত্র পাঠযোগ্য।", - "directorynotreadableerror": "নির্দেশিকা \"$1\" পাঠযোগ্য নয়।", - "filenotfound": "\"$1\" ফাইলটি খুঁজে পাওয়া যাচ্ছে না।", + "filecopyerror": "\"$1\" নাম থেকে \"$2\" নামে ফাইল প্রতিলিপি করা যায়নি।", + "filerenameerror": "\"$1\" ফাইলটির নাম পরিবর্তন করে \"$2\" করা সম্ভব হয়নি।", + "filedeleteerror": "\"$1\" ফাইলটি মুছে ফেলা সম্ভব হয়নি।", + "directorycreateerror": "\"$1\" নির্দেশিকা তৈরি করা যায়নি।", + "directoryreadonlyerror": "\"$1\" নির্দেশিকাটি শুধুমাত্র পাঠযোগ্য।", + "directorynotreadableerror": "\"$1\" নির্দেশিকাটি পাঠযোগ্য নয়।", + "filenotfound": "\"$1\" ফাইলটি খুঁজে পাওয়া যায়নি।", "unexpected": "অপ্রত্যাশিত মান: \"$1\"=\"$2\"।", - "formerror": "ত্রুটি: ফরমটি জমা দেওয়া যায়নি", + "formerror": "ত্রুটি: ফরমটি জমা দেওয়া সম্ভব হয়নি।", "badarticleerror": "এই পাতায় এই কাজটি করা সম্ভব নয়।", - "cannotdelete": "\"$1\" পাতা বা ফাইলটি মোছা সম্ভব না।\nসম্ভবত অন্য কেউ আগেই এটিকে মুছে ফেলেছেন।", - "cannotdelete-title": "\"$1\" পৃষ্ঠা মুছে ফেলা যাচ্ছে না।", - "delete-hook-aborted": "হূক দ্বারা সম্পাদনা পরিত্যক্ত হয়েছে।\nএর কোন ব্যাখ্যা নাই।", + "cannotdelete": "\"$1\" পাতা বা ফাইলটি মোছা সম্ভব হয়নি।\nসম্ভবত অন্য কেউ আগেই এটিকে মুছে ফেলেছেন।", + "cannotdelete-title": "\"$1\" পাতাটি মুছে ফেলা যাচ্ছে না", + "delete-hook-aborted": "হুকের কারণে পাতা মোছার কাজটি পরিত্যক্ত হয়েছে।\nকোন ব্যাখ্যা দেয়া হয়নি।", "no-null-revision": "\"$1\" পাতার জন্য ফাঁকা সংস্করণ তৈরী করা যায়নি", - "badtitle": "শিরোনামটি গ্রহনযোগ্য নয়।", + "badtitle": "ভুল শিরোনাম", "badtitletext": "অনুরোধকৃত পাতার শিরোনামটি অবৈধ, খালি কিংবা কোন ভুল আন্তঃভাষা বা আন্তঃউইকি শিরোনাম সংযোগ ছিল। এটিতে সম্ভবত এমন এক (একাধিক) ক্যারেক্টার আছে, যা (যেগুলি) শিরোনামে ব্যবহারযোগ্য নয়।", "title-invalid-empty": "অনুরোধকৃত পাতার শিরোনামটি খালি বা শুধুমাত্র একটি নামস্থানের নাম ধারণ করে।", "title-invalid-utf8": "অনুরোধকৃত পাতার শিরোনামটিতে একটি অবৈধ ইউটিএফ-৮ অনুক্রম রয়েছে।", "title-invalid-interwiki": "অনুরোধকৃত পাতার শিরোনামে একটি আন্তঃউইকি সংযোগ উপস্থিত রয়েছে যা শিরোনামে ব্যবহার করা যাবে না।", - "title-invalid-talk-namespace": "অনুরোধকৃত পাতার শিরোনাম একটি আলাপ পাতা নির্দেশ করে যার অস্তিত্ব থাকতে পারে না।", + "title-invalid-talk-namespace": "অনুরোধকৃত পাতার শিরোনাম এমন একটি আলাপ পাতা নির্দেশ করে যার অস্তিত্ব থাকতে পারে না।", "title-invalid-characters": "অনুরোধকৃত পাতার শিরোনামে অবৈধ অক্ষর রয়েছে: \"$1\"।", "title-invalid-relative": "শিরনামে রিলেটিভ পাথ ব্যবহার করা হয়েছে (./, ../), রিলেটিভ পাথ ব্যবহার উপযোগী নয়, কারণ ব্যবহারকারীর ব্রাউজারে এটি সঠিকভাবে কাজ করে না।", "title-invalid-magic-tilde": "অনুরোধকৃত পাতার শিরোনামে অবৈধ জাদু টিল্ডা অনুক্রম (~~~) রয়েছে।", - "title-invalid-too-long": "পাতার শিরোনামটি অত্যাধিক দীর্ঘ। ইউটিএফ-৮ এনকোডিং অনুযায়ী এটি $1 {{PLURAL:$1|বাইটের}} থেকে দীর্ঘ হতে পারবে না।", - "title-invalid-leading-colon": "অনুরোধকৃত পাতার শিরোনামের শুরুতে একটি অবৈধ কোলন রয়েছে।", + "title-invalid-too-long": "অনুরোধকৃত পাতার শিরোনামটি অত্যধিক দীর্ঘ। ইউটিএফ-৮ সাংকেতিকীকরণ অনুযায়ী এটি $1 {{PLURAL:$1|বাইটের}} থেকে দীর্ঘতর হতে পারবে না।", + "title-invalid-leading-colon": "অনুরোধকৃত পাতার শিরোনামটির শুরুতে একটি অবৈধ কোলন চিহ্ন (:) রয়েছে।", "perfcached": "নিচের উপাত্তগুলো ক্যাশ থেকে নেয়া এবং সম্পূর্ণ হালনাগাদকৃত না-ও হতে পারে। সর্বোচ্চ {{PLURAL:$1|একটি ফলাফল|$1 টি ফলাফল}} ক্যাশে থাকতে পারে।", - "perfcachedts": "নিচের উপাত্তগুলো ক্যাশ থেকে নেয়া এবং $1 তারিখে হালনাগাদ করা হয়েছে। সর্বোচ্চ {{PLURAL:$4|একটি ফলাফল|$4 টি ফলাফল}} ক্যাশে থাকতে পারে।", - "querypage-no-updates": "এই পাতার জন্য হালনাগাদ নিষ্ক্রিয় করা হয়েছে। এখানে রাখা উপাত্ত এ মুহূর্তে রিফ্রেশ করা হবে না।", + "perfcachedts": "নিচের উপাত্তগুলো ক্যাশ থেকে নেয়া এবং সর্বশেষ $1 তারিখে হালনাগাদ করা হয়েছে। সর্বোচ্চ {{PLURAL:$4|একটি ফলাফল|$4টি ফলাফল}} ক্যাশে থাকতে পারে।", + "querypage-no-updates": "এই পাতার জন্য হালনাগাদ নিষ্ক্রিয় করা হয়েছে। এখানে রাখা উপাত্তগুলি এ মুহূর্তে হালনাগাদ করা হবে না।", "viewsource": "উৎস দেখুন", - "viewsource-title": "$1 এর উৎস দেখুন", + "viewsource-title": "$1-এর উৎস দেখুন", "actionthrottled": "কাজের গতি ধীরকরণ", - "actionthrottledtext": "স্প্যাম-রোধী সমাধান হিসেবে এই কাজটি খুব কম সময়ে অনেক বেশিবার সম্পাদনা করার সীমা বেঁধে দেওয়া হয়েছে, এবং আপনি সেই সীমা অতিক্রম করেছেন।\nঅনুগ্রহ করে কয়েক মিনিট পরে আবার চেষ্টা করুন।", - "protectedpagetext": "সম্পাদনা অথবা স্থানান্তর এড়াতে এ পাতাটির ব্যবহার নিয়ন্ত্রণ করা হয়েছে।", - "viewsourcetext": "এ পাতাটি আপনি দেখতে এবং উৎসের অনুলিপি নিতে পারবেন।", - "viewyourtext": "আপনি এই পাতায় আপনার সম্পাদনাদেখতে এবং অনুলিপি করতে পারেন।", - "protectedinterface": "এই পাতার বিষয়বস্তু এই উইকি সফটওয়্যারের একটি ইন্টারফেস বার্তা প্রদান করে, তাই এটিকে সুরক্ষিত করে রাখা হয়েছে।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে, অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করন প্রকল্প [https://translatewiki.net/ translatewiki.net] ব্যবহার করুন।", - "editinginterface": "সতর্কীকরণ: আপনি এমন একটি পাতা সম্পাদনা করছেন যা সফটওয়্যারের জন্য ইন্টারফেস টেক্সট প্রদান করে।\nএই পাতাতে সংঘটিত পরিবর্তন এই উইকির ব্যবহারকারীদের ইন্টারফেসে প্রভাব ফেলবে, যা অন্য ব্যবহারকারীরা দেখতে পাবেন।", - "translateinterface": "সকল উইকির জন্য অনুবাদ যোগ বা পরিবর্তন করতে, দয়া করে [https://translatewiki.net/ translatewiki.net], মিডিয়াউইকি স্থানীয়করণ প্রকল্প ব্যবহার করুন।", - "cascadeprotected": "এই পাতাটি সম্পাদনা থেকে সুরক্ষিত কারণ এটি নিম্নোক্ত {{PLURAL:$1|পাতায়|পাতাসমূহে}} অন্তর্ভুক্ত, যা \"প্রপাতাকার\" বৈশিষ্ট্য সহযোগে সুরক্ষিত করা আছে:\n$2", - "namespaceprotected": "'''$1''' নামস্থানে কোন পাতা আপনার সম্পাদনা করার অনুমতি নেই।", + "actionthrottledtext": "অপব্যবহার প্রতিরোধক সমাধান হিসেবে এই কাজটি খুব কম সময়ে অনেক বেশিবার সম্পাদন করার উপর সীমা বেঁধে দেওয়া হয়েছে, এবং আপনি সেই সীমা অতিক্রম করেছেন।\nঅনুগ্রহ করে কয়েক মিনিট পরে আবার চেষ্টা করুন।", + "protectedpagetext": "সম্পাদনা অথবা অন্যান্য কাজে বাধা দিতে পাতাটিকে সুরক্ষিত হয়েছে।", + "viewsourcetext": "এ পাতাটি আপনি দেখতে এবং উৎসের প্রতিলিপি করতে পারবেন।", + "viewyourtext": "আপনি এই পাতায় করা আপনার সম্পাদনাগুলি দেখতে এবং প্রতিলিপি করতে পারেন।", + "protectedinterface": "এই পাতার বিষয়বস্তু এই উইকি সফটওয়্যারের একটি ইন্টারফেস বার্তা প্রদান করে, তাই এটি যাতে অপব্যবহারে না করা হয়, সেজন্য এটিকে সুরক্ষিত করে রাখা হয়েছে।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করণ প্রকল্প [https://translatewiki.net/ translatewiki.net] ব্যবহার করুন।", + "editinginterface": "সতর্ক বার্তা: আপনি এমন একটি পাতা সম্পাদনা করছেন যা সফটওয়্যারের জন্য ইন্টারফেস লেখা সরবরাহ করে।\nএই পাতাতে সংঘটিত পরিবর্তন এই উইকির অন্যান্য ব্যবহারকারীদের জন্য দৃশ্যমান ইন্টারফেসে প্রভাব ফেলবে।", + "translateinterface": "সকল উইকির জন্য অনুবাদ যোগ বা পরিবর্তন করতে দয়া করে [https://translatewiki.net/ translatewiki.net], মিডিয়াউইকি স্থানীয়করণ প্রকল্প ব্যবহার করুন।", + "cascadeprotected": "এই পাতাটিকে সম্পাদনা থেকে সুরক্ষিত করা হয়েছে, কারণ এটি নিম্নোক্ত {{PLURAL:$1|পাতায়|পাতাগুলিতে}} অন্তর্ভুক্ত, যেগুলি \"প্রপাতাকার\" বৈশিষ্ট্য সহযোগে সুরক্ষিত করা আছে:\n$2", + "namespaceprotected": "$1 নামস্থানের কোন পাতা আপনার সম্পাদনা করার অনুমতি নেই।", "customcssprotected": "আপনার এই সিএসএস পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।", "customjsprotected": "আপনার এই জাভাস্ক্রিপ্ট পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।", "mycustomcssprotected": "আপনার এই সিএসএস পাতাটি সম্পাদনা করার অনুমতি নেই।", @@ -401,7 +401,7 @@ "mypreferencesprotected": "আপনার পছন্দসমূহ সম্পাদনা করতে আপনার অনুমতি নেই", "ns-specialprotected": "বিশেষ পাতাসমূহ সম্পাদনা করা যাবে না।", "titleprotected": "[[User:$1|$1]] কর্তৃক এই শিরোনামটি সৃষ্টি করা থেকে সুরক্ষিত করা হয়েছে। কারণ: $2।", - "filereadonlyerror": "\"$1\" ফাইলটিকে পরিবর্তন করা সম্ভব হচ্ছে না কারণ \"$2\" ফাইল সংগ্রহস্থল শুধুমাত্র-পঠন মোডে আছে।\n\nসিস্টেম প্রশাসক যিনি এটি বন্ধ করেছেন তিনি এই ব্যাখ্যা দিয়েছেন: \"$3\"।", + "filereadonlyerror": "\"$1\" ফাইলটিকে পরিবর্তন করা সম্ভব হচ্ছে না কারণ \"$2\" ফাইল সংগ্রহশালাটি শুধুমাত্র-পঠন মোডে আছে।\n\nসিস্টেম প্রশাসক যিনি ফাইলটি অবরুদ্ধ করেছেন তিনি এই ব্যাখ্যা দিয়েছেন: \"$3\"।", "invalidtitle-knownnamespace": "অবৈধ শিরোনাম, যেখানে নামস্থান \"$2\" এবং লেখা হয়েছে \"$3\"", "invalidtitle-unknownnamespace": "অবৈধ শিরোনাম, যেখানে ব্যবহৃত হয়েছে অপরিচিত নামস্থান সংখ্যা $1 এবং লেখা হয়েছে \"$2\"", "exception-nologin": "প্রবেশ করেন নি", @@ -433,7 +433,7 @@ "cannotloginnow-title": "এখন প্রবেশ করা যাবে না", "cannotloginnow-text": "$1 ব্যবহার করার সময় প্রবেশ করা সম্ভব নয়।", "cannotcreateaccount-title": "অ্যাকাউন্ট তৈরি করা যাবে না", - "cannotcreateaccount-text": "সরাসরি অ্যাকাউন্ট সৃষ্টিকরণ এই উইকিতে সক্রিয় নয়।", + "cannotcreateaccount-text": "সরাসরি অ্যাকাউন্ট তৈরিকরণ এই উইকিতে সম্ভব নয়।", "yourdomainname": "আপনার ডোমেইন:", "password-change-forbidden": "আপনি এই উইকিতে পাসওয়ার্ড পরিবর্তন করতে পারবেন না।", "externaldberror": "হয় কোন বহিঃস্থ যাচাইকরণ ডাটাবেজ ত্রুটি ঘটেছে অথবা আপনার বহিঃস্থ অ্যাকাউন্ট হালনাগাদ করার অনুমতি নেই।", @@ -473,7 +473,7 @@ "usernameinprogress": "এই ব্যবহারকারী নামের জন্য একটি অ্যাকাউন্ট তৈরি আগে থেকেই চলছে। দয়া করে অপেক্ষা করুন।", "userexists": "এই ব্যবহারকারী নামটি ইতমধ্যে ব্যবহার করা হয়েছে।\nঅনুগ্রহ করে অন্য নাম বেছে নিন।", "loginerror": "প্রবেশ করতে সমস্যা হয়েছে", - "createacct-error": "অ্যাকাউন্ট তৈরি ত্রুটি", + "createacct-error": "অ্যাকাউন্ট তৈরিতে ত্রুটি", "createaccounterror": "অ্যাকাউন্ট তৈরি হয়নি: $1", "nocookiesnew": "ব্যবহারকারীর অ্যাকাউন্টটি সৃষ্টি করা হয়েছে, কিন্তু আপনি এখনও অ্যাকাউন্টে প্রবেশ করেননি। {{SITENAME}}-তে কুকি ব্যবহার করে ব্যবহারকারীদের অ্যাকাউন্টে প্রবেশ করানো হয়। আপনার ব্রাউজারে কুকিগুলি নিষ্ক্রিয় করা আছে। অনুগ্রহ করে কুকিগুলি সক্রিয় করুন এবং আপনার নতুন ব্যবহারকারী নাম ও পাসওয়ার্ড ব্যবহার করে অ্যাকাউন্টে প্রবেশ করুন।", "nocookieslogin": "ব্যবহারকারীদের প্রবেশ সম্পন্ন করতে {{SITENAME}} কুকি ব্যবহার করে। আপনার ব্রাউজারে কুকি নিষ্ক্রিয় করা আছে। কুকি চালু করে আবার চেষ্টা করুন।", @@ -513,13 +513,13 @@ "emaildisabled": "এই সাইটটিতে ই-মেইল প্রদানের সুবিধা নেই।", "accountcreated": "অ্যাকাউন্ট তৈরি করা হয়েছে", "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|আলাপ]]) এর জন্য ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয়েছে।", - "createaccount-title": "{{SITENAME}}-এর জন্য অ্যাকাউন্ট সৃষ্টি", - "createaccount-text": "কেউ $2-এর জন্য {{SITENAME}}-এ একটি অ্যাকাউন্ট সৃষ্টি করেছেন ($4)। \"$2\"-এর জন্য পাসওয়ার্ড হল \"$3\"। আপনার এখন অ্যাকাউন্টে প্রবেশ করে পাসওয়ার্ড পরিবর্তন করা উচিত।\n\nযদি ভুল করে অ্যাকাউন্টটি সৃষ্টি হয়ে থাকে, তাহলে এই বার্তাটি উপেক্ষা করুন।", + "createaccount-title": "{{SITENAME}}-এর জন্য অ্যাকাউন্ট তৈরিকরণ", + "createaccount-text": "কেউ $2-এর জন্য {{SITENAME}}-এ একটি অ্যাকাউন্ট তৈরি করেছেন ($4)। \"$2\"-এর জন্য পাসওয়ার্ড হল \"$3\"। আপনার এখন অ্যাকাউন্টে প্রবেশ করে পাসওয়ার্ড পরিবর্তন করা উচিত।\n\nযদি ভুল করে অ্যাকাউন্টটি তৈরি হয়ে থাকে, তাহলে এই বার্তাটি উপেক্ষা করুন।", "login-throttled": "আপনি সাম্প্রতিক সময়ে পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন।\nপুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।", "login-abort-generic": "আপনার প্রবেশ ব্যর্থ হয়েছে - বাতিল করা হয়েছে", "login-migrated-generic": "আপনার অ্যাকাউন্ট স্থানান্তরিত করা হয়েছে, এবং আপনার ব্যবহারকারী নাম আর এই উইকিতে বিদ্যমান নয়।", "loginlanguagelabel": "ভাষা: $1", - "suspicious-userlogout": "আপনার প্রস্থানের অনুরোধ বাতিল হয়েছে কারণ অনুমিত যে আপনার ব্রাউজার অসম্পূর্ণ অথবা পূবর্বতী তথ্য প্রেরণ করেছে।", + "suspicious-userlogout": "অ্যাকাউন্ট থেকে আপনার প্রস্থানের অনুরোধ প্রত্যাখান করা হয়েছে কারণ মনে হচ্ছে যে অনুরোধটি একটি অকার্যকর ব্রাউজার অথবা ক্যাশ করে এমন প্রক্সি সার্ভার প্রেরণ করেছে।", "createacct-another-realname-tip": "আসল নাম ঐচ্ছিক।\nআপনি যদি তা দিতে চান, তাহলে তা ব্যবহারকারীকে তাদের কাজের জন্য স্বীকৃতিদানে ব্যবহার করা হবে।", "pt-login": "প্রবেশ", "pt-login-button": "প্রবেশ", @@ -536,48 +536,50 @@ "oldpassword": "পুরনো পাসওয়ার্ড:", "newpassword": "নতুন পাসওয়ার্ড:", "retypenew": "নতুন পাসওয়ার্ড আবার লিখুন:", - "resetpass_submit": "পাসওয়ার্ড দাও এবং লগ-ইন করো", + "resetpass_submit": "পাসওয়ার্ড নির্ধারণ করে অ্যাকাউন্টে প্রবেশ করুন", "changepassword-success": "আপনার পাসওয়ার্ড পরিবর্তন করা হয়েছে!", - "changepassword-throttled": "আপনি সম্প্রতি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।", + "changepassword-throttled": "আপনি সম্প্রতি পরপর বেশ কয়েকবার অ্যাকাউন্টে প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।", "botpasswords": "বট পাসওয়ার্ড", - "botpasswords-summary": "বট পাসওয়ার্ডগুলি এপিআই-এর মাধ্যমে অ্যাকাউন্টের লগ-ইনের জন্য দরকারী মূল পরিচয়সূচক তথ্য ছাড়াই ব্যবহারকারীর অ্যাকাউন্টে প্রবেশাধিকার প্রদান করে। বট পাসওয়ার্ড দিয়ে অ্যাকাউন্টে প্রবেশ বা লগ-ইন করলে ব্যবহারকারীর জন্য লভ্য অধিকারগুলি সীমিত হতে পারে। \n\nএ কাজটি কেন করবেন, তা যদি অবগত না থাকেন, তাহলে সম্ভবত আপনার কাজটি করা উচিত নয়। অন্য কোনও ব্যক্তির কথায় কখনো এধরনের কিছু সৃষ্টি করবেন না এবং তাকে বা তাদেরকে এটি দেবেন না।", - "botpasswords-disabled": "বট পাসওয়ার্ড নিষ্ক্রিয় করা।", - "botpasswords-no-central-id": "বট পাসওয়ার্ড ব্যবহার করার জন্য, আপনাকে একটি কেন্দ্রীভূত অ্যাকাউন্টে প্রবেশ করতে হবে।", - "botpasswords-existing": "বিদ্যমান বট শব্দচাবি", + "botpasswords-summary": "বট পাসওয়ার্ডগুলি এপিআই-এর মাধ্যমে অ্যাকাউন্টের প্রবেশের জন্য দরকারী মূল পরিচয়সূচক তথ্য ছাড়াই ব্যবহারকারীর অ্যাকাউন্টে প্রবেশাধিকার প্রদান করে। বট পাসওয়ার্ড দিয়ে অ্যাকাউন্টে প্রবেশ করলে ব্যবহারকারীর জন্য লভ্য অধিকারগুলি সীমিত হতে পারে। \n\nএ কাজটি কেন করবেন, তা যদি অবগত না থাকেন, তাহলে সম্ভবত আপনার কাজটি করা উচিত নয়। অন্য কোনও ব্যক্তির কথায় কখনো এধরনের কিছু সৃষ্টি করবেন না এবং তাকে বা তাদেরকে এটি দেবেন না।", + "botpasswords-disabled": "বট পাসওয়ার্ডগুলি নিষ্ক্রিয় রয়েছে।", + "botpasswords-no-central-id": "বট পাসওয়ার্ড ব্যবহার করার জন্য আপনাকে একটি কেন্দ্রীভূত অ্যাকাউন্টে প্রবেশ করতে হবে।", + "botpasswords-existing": "বিদ্যমান বট পাসওয়ার্ড", "botpasswords-createnew": "একটি নতুন বট পাসওয়ার্ড তৈরি করুন", "botpasswords-editexisting": "একটি বিদ্যমান বট পাসওয়ার্ড পরিবর্তন করুন", "botpasswords-label-appid": "বটের নাম:", - "botpasswords-label-create": "তৈরি করো", - "botpasswords-label-update": "হালনাগাদ", - "botpasswords-label-cancel": "বাতিল", - "botpasswords-label-delete": "অপসারণ", - "botpasswords-label-resetpassword": "পাসওয়ার্ড পুনঃস্থাপন", - "botpasswords-label-grants": "প্রয়োগযোগ্য মঞ্জুরি:", + "botpasswords-label-create": "তৈরি করুন", + "botpasswords-label-update": "হালনাগাদ করুন", + "botpasswords-label-cancel": "বাতিল করুন", + "botpasswords-label-delete": "অপসারণ করুন", + "botpasswords-label-resetpassword": "পাসওয়ার্ড পুনঃনির্ধারণ করা হোক", + "botpasswords-label-grants": "প্রয়োগযোগ্য অনুমোদন:", + "botpasswords-help-grants": "অনুমোদনগুলি সেইসব অধিকারের সুবিধা দেয়, যেগুলি ইতিমধ্যেই আপনার ব্যবহারকারী অ্যাকাউন্টে বিদ্যমান। এখানে একটি অনুমোদনকে সক্রিয় করলে এমন কোন অধিকারের সুবিধা পাওয়া যাবে না, যা আপনার অ্যাকাউন্টের অন্যথায় নেই। আরও তথ্যের জন্য [[Special:ListGrants|অনুমোদনসমূহের সারণী]] দেখুন।", "botpasswords-label-grants-column": "অনুমোদিত", "botpasswords-bad-appid": "\"$1\" বট নামটি সঠিক নয়।", - "botpasswords-insert-failed": "\"$1\" নামের বট যুক্ত করা যায়নি। আগে থেকেই তালিকায় রয়েছে?", - "botpasswords-update-failed": "\"$1\" নামের বট যুক্ত করা যায়নি। আগে অপসারণ করা হয়েছিল?", + "botpasswords-insert-failed": "\"$1\" নামের বট যুক্ত করা যায়নি। এটি কি আগে থেকেই বটের তালিকায় রয়েছে?", + "botpasswords-update-failed": "\"$1\" নামের বট যুক্ত করা যায়নি। এটি কি আগে অপসারণ করা হয়েছিল?", "botpasswords-created-title": "বট পাসওয়ার্ড তৈরী করা হয়েছে", "botpasswords-created-body": "ব্যবহারকারী \"$2\"-এর \"$1\" নামের বটের জন্য বট পাসওয়ার্ড তৈরী করা হয়েছে।", - "botpasswords-updated-title": "বট পাসওয়ার্ড আপডেট করা হয়েছে", + "botpasswords-updated-title": "বট পাসওয়ার্ড হালনাগাদ করা হয়েছে", "botpasswords-updated-body": "ব্যবহারকারী \"$2\"-এর \"$1\" নামের বটের জন্য বট পাসওয়ার্ড হালনাগাদ করা হয়েছে।", - "botpasswords-deleted-title": "বট পাসওয়ার্ড অপসারণ করা হয়েছে", + "botpasswords-deleted-title": "বট পাসওয়ার্ড মুছে ফেলা হয়েছে", "botpasswords-deleted-body": "ব্যবহারকারী \"$2\"-এর \"$1\" নামের বটের জন্য বট পাসওয়ার্ড মুছে ফেলা হয়েছিল।", - "botpasswords-newpassword": "$1 ব্যবহারকারী নাম দিয়ে লগ-ইন করার সময় যে নতুন পাসওয়ার্ডটি ব্যবহার করতে হবে, তা হল $2। অনুগ্রহ করে ভবিষ্যৎ নির্দেশনার জন্য এটিকে সংরক্ষণ করুন।
(যেসব পুরাতন বটের জন্য লগ-ইন নাম এবং ব্যবহারকারী নাম শেষ পর্যন্ত একই হওয়া আবশ্যক, সেগুলির জন্য আপনি ব্যবহারকারী নাম হিসেবে $3 এবং পাসওয়ার্ড হিসেবে $4 -ও ব্যবহার করতে পারেন।)", - "botpasswords-no-provider": "BotPasswordsSessionProvider উপলব্ধ নয়।", - "botpasswords-restriction-failed": "বট পাসওয়ার্ডের সীমাবদ্ধতা এই প্রবেশ প্রতিরোধ করেছে।", + "botpasswords-newpassword": "$1 ব্যবহারকারী নাম দিয়ে প্রবেশ করার সময় যে নতুন পাসওয়ার্ডটি ব্যবহার করতে হবে, তা হল $2। অনুগ্রহ করে ভবিষ্যৎ নির্দেশনার জন্য এটিকে সংরক্ষণ করুন।
(যেসব পুরাতন বটের জন্য প্রবেশকরণ নাম এবং ব্যবহারকারী নাম শেষ পর্যন্ত একই হওয়া আবশ্যক, সেগুলির জন্য আপনি ব্যবহারকারী নাম হিসেবে $3 এবং পাসওয়ার্ড হিসেবে $4 -ও ব্যবহার করতে পারেন।)", + "botpasswords-no-provider": "BotPasswordsSessionProvider লভ্য নয়।", + "botpasswords-restriction-failed": "বট পাসওয়ার্ডের সীমাবদ্ধতার কারণে অ্যাকাউন্টে প্রবেশের এই প্রচেষ্টাটিকে প্রতিরোধ করা হয়েছে।", + "botpasswords-invalid-name": "নির্দিষ্টকৃত ব্যবহারকারী নামটিতে বট পাসওয়ার্ড পৃথকীকারক অক্ষরটি (\"$1\") নেই।", "botpasswords-not-exist": "ব্যবহারকারী \"$1\"-এর \"$2\" নামক বট পাসওয়ার্ডটি নেই।", "resetpass_forbidden": "পাসওয়ার্ড পরিবর্তন করা সম্ভব নয়", "resetpass_forbidden-reason": "পাসওয়ার্ড পরিবর্তন করা যাবে না: $1", - "resetpass-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই প্রবেশ করতে হবে।", + "resetpass-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই অ্যাকাউন্টে প্রবেশ করতে হবে।", "resetpass-submit-loggedin": "পাসওয়ার্ড পরিবর্তন", "resetpass-submit-cancel": "বাতিল", "resetpass-wrong-oldpass": "ভুল অস্থায়ী অথবা বর্তমান পাসওয়ার্ড।\nসম্ভবতঃ আপনি ইতোমধ্যেই আপনার পাসওয়ার্ডটি পরিবর্তন করেছেন অথবা একটি নতুন অস্থায়ী পাসওয়ার্ডের জন্য অনুরোধ করেছেন।", - "resetpass-recycled": "অনুগ্রহ করে বর্তমানে ব্যবহার করছেন এমন পাসওয়ার্ডের পরিবর্তে নতুন একটি পাসওয়ার্ড নির্ধারণ করুন।", - "resetpass-temp-emailed": "আপনি ইমেইলকৃত সাময়িক কোড দিয়ে প্রবেশ করেছেন।\nপ্রবেশ করার জন্য আপনাকে অবশ্যই একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে:", + "resetpass-recycled": "অনুগ্রহ করে বিদ্যমান পাসওয়ার্ডের পরিবর্তে নতুন একটি পাসওয়ার্ড নির্ধারণ করুন।", + "resetpass-temp-emailed": "আপনি ইমেইলকৃত সাময়িক কোড দিয়ে প্রবেশ করেছেন। অ্যাকাউন্টে\nপ্রবেশ সম্পন্ন করার জন্য আপনাকে অবশ্যই একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে:", "resetpass-temp-password": "অস্থায়ী পাসওয়ার্ড:", "resetpass-abort-generic": "পাসওয়ার্ড পরিবর্তন একটি এক্সটেনশনের কারণে স্থগিত করা হয়েছে।", - "resetpass-expired": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।", + "resetpass-expired": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অ্যাকাউন্টে প্রবেশের জন্য অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।", "resetpass-expired-soft": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে \"{{int:authprovider-resetpass-skip-label}}\" বাটনে ক্লিক করুন।", "resetpass-validity-soft": "আপনার পাসওয়ার্ড বৈধ নয়: $1\n\nদয়া করে একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে করার জন্য \"{{int:authprovider-resetpass-skip-label}}\" ক্লিক করুন।", "passwordreset": "পাসওয়ার্ড রিসেট", @@ -598,37 +600,37 @@ "passwordreset-nosuchcaller": "আহ্বানকারীর অস্তিত্ব নেই: $1", "passwordreset-ignored": "পাসওয়ার্ড পুনঃধার্যকরণ করা যায়নি। হয়তো কোন প্রদানকারী কনফিগার করা হয়েনি?", "passwordreset-invalidemail": "ভুল ইমেইল ঠিকানা", - "passwordreset-nodata": "একটি ব্যবহারকারীর নাম বা একটি ইমেল ঠিকানা দুটির একটিও সরবরা দেয়া হয়নি", + "passwordreset-nodata": "ব্যবহারকারীর নাম বা ইমেল ঠিকানা দুটির একটিও সরবরাহ করা হয়নি", "changeemail": "ই-মেইল ঠিকানা পরিবর্তন বা বাতিল", - "changeemail-header": "আপনার ইমেল ঠিকানা পরিবর্তন করতে এই ফরমটি পূরণ করুন। আপনি যদি আপনার একাউন্ট থেকে যে কোন ইমেল ঠিকানার এসোসিয়েশন অপসারণ করতে চান, তাহলে ফরমটি জমা দেওয়ার সময় নতুন ইমেইল ঠিকানা খালি রাখুন।", - "changeemail-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই প্রবেশ করতে হবে।", - "changeemail-oldemail": "বর্তমান ই-মেইল ঠিকানা:", - "changeemail-newemail": "নতুন ই-মেইল ঠিকানা:", - "changeemail-newemail-help": "আপনার ইমেইল ঠিকানা অপসরণ করতে চাইলে এই জায়গাটি ফাঁকা ছেড়ে দেওয়া উচিত। ইমেইল ঠিকানা অপসরণ করলে আপনি ভুলে যাওয়া পাসওয়ার্ড পুনঃধার্য করতে পারবেন না এবং এই উইকি থেকে আপনাকে কোন ইমেইল পাঠানো হবে না।", - "changeemail-none": "(কিছু নাই)", + "changeemail-header": "আপনার ইমেল ঠিকানা পরিবর্তন করতে এই ফরমটি পূরণ করুন। আপনি যদি আপনার অ্যাকাউন্টের সাথে কোনও ইমেইল ঠিকানার সংশ্লিষ্টতা রাখতে না চান, তাহলে ফরমটি জমা দেওয়ার সময় নতুন ইমেইল ঠিকানা খালি রাখুন।", + "changeemail-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই অ্যাকাউন্টে প্রবেশ করতে হবে।", + "changeemail-oldemail": "বর্তমান ইমেইল ঠিকানা:", + "changeemail-newemail": "নতুন ইমেইল ঠিকানা:", + "changeemail-newemail-help": "আপনার ইমেইল ঠিকানা অপসারণ করতে চাইলে এই জায়গাটি ফাঁকা রেখে দেওয়া উচিত। ইমেইল ঠিকানা অপসারণ করলে আপনি ভুলে যাওয়া পাসওয়ার্ড পুনঃনির্ধারণ করতে পারবেন না এবং এই উইকি থেকে আপনাকে কোন ইমেইল পাঠানো হবে না।", + "changeemail-none": "(নেই)", "changeemail-password": "আপনার {{SITENAME}} পাসওয়ার্ড:", - "changeemail-submit": "ই-মেইল পরিবর্তন", - "changeemail-throttled": "আপনি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।", - "changeemail-nochange": "দয়া করে একটি ভিন্ন নতুন ইমেইল ঠিকানা লিখুন।", - "resettokens": "টোকেন পুনঃস্থাপন করুন", - "resettokens-text": "আপনি টোকেন পুনঃস্থাপন করতে পারেন, যা অ্যাকাউন্টের সাথে সম্পর্কিত আপনার ব্যক্তিগত তথ্য দেখার কাজে ব্যবহার করা হয়।", - "resettokens-no-tokens": "পুনঃস্থাপন করার মত কোনো টোকেন নেই।", + "changeemail-submit": "ইমেইল ঠিকানা পরিবর্তন", + "changeemail-throttled": "আপনি পরপর বেশ কয়েকবার অ্যাকাউন্টে প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।", + "changeemail-nochange": "দয়া করে একটি ভিন্ন ও নতুন ইমেইল ঠিকানা প্রবেশ করান।", + "resettokens": "টোকেনগুলি পুনঃনির্ধারণ করুন", + "resettokens-text": "যে টোকেনগুলি অ্যাকাউন্টের সাথে সম্পর্কিত আপনার নির্দিষ্ট কিছু ব্যক্তিগত তথ্য দেখার কাজে ব্যবহার করা হয়, সেগুলি আপনি পুনঃনির্ধারণ করতে পারেন।\n\nযদি দুর্ঘটনাক্রমে টোকেনগুলি কাউকে দিয়ে থাকেন অথবা আপনার অ্যাকাউন্ট যদি বহিঃআক্রমণের শিকার হয়, তাহলে আপনার এ কাজটি করা উচিত।", + "resettokens-no-tokens": "পুনঃনির্ধারণ করার মত কোনো টোকেন নেই।", "resettokens-tokens": "টোকেন:", "resettokens-token-label": "$1 (বর্তমান: $2)", - "resettokens-watchlist-token": "ওয়েব ফিড (Atom/RSS) টোকেন পরিবর্তনের জন্য [[Special:Watchlist|নজরতালিকায় থাকা পাতাগুলোতে পরিবর্তন এসেছে]]", - "resettokens-done": "টোকেন পুনঃস্থাপন।", - "resettokens-resetbutton": "নির্বাচিত টোকেন পুনঃস্থাপন করুন", + "resettokens-watchlist-token": "[[Special:Watchlist|নজরতালিকায় থাকা পাতাগুলোতে পরিবর্তন]] সংক্রান্ত ওয়েব ফিডের (Atom বা RSS) টোকেন", + "resettokens-done": "টোকেনগুলি সফলভাবে পুনঃনির্ধারিত হয়েছে।", + "resettokens-resetbutton": "নির্বাচিত টোকেনগুলি পুনঃনির্ধারণ করা হোক", "bold_sample": "গাঢ় লেখা", "bold_tip": "গাঢ় লেখা", - "italic_sample": "তীর্যক লেখা", - "italic_tip": "তীর্যক লেখা", - "link_sample": "সংযোগের শিরোনাম", - "link_tip": "আভ্যন্তরীণ সংযোগ", - "extlink_sample": "http://www.example.com সংযোগ শিরোনাম", - "extlink_tip": "বহিঃসংযোগ (মনে রাখবেন http:// উপসর্গ)", + "italic_sample": "তির্যক লেখা", + "italic_tip": "তির্যক লেখা", + "link_sample": "অভ্যন্তরীণ সংযোগের শিরোনাম", + "link_tip": "অভ্যন্তরীণ সংযোগ", + "extlink_sample": "http://www.example.com বহিঃসংযোগ শিরোনাম", + "extlink_tip": "বহিঃসংযোগ (http:// উপসর্গটি যোগ করতে ভুলবেন না)", "headline_sample": "শিরোনাম", "headline_tip": "২য় স্তরের শিরোনাম", - "nowiki_sample": "অ-ফরম্যাটকৃত টেক্সট এখানে যোগ করুন", + "nowiki_sample": "অবিন্যাসকৃত পাঠ্য এখানে যোগ করুন", "nowiki_tip": "উইকি ফরম্যাটিং উপেক্ষা করা হোক", "image_sample": "উদাহরণ.jpg", "image_tip": "গ্রথিত ফাইল", @@ -646,22 +648,22 @@ "preview": "প্রাকদর্শন", "showpreview": "প্রাকদর্শন", "showdiff": "পরিবর্তনসমূহ", - "blankarticle": "সতর্ক বার্তা: আপনি একটি খালি পাতা তৈরী করতে যাচ্ছেন।\nআপনি যদি পুনরায় \"{{int:savearticle}}\" বাটন ক্লিক করেন তাহলে, পাতাটি তৈরী হবে যেখানে কোনো তথ্য লেখা নেই।", - "anoneditwarning": "সতর্কতা: আপনি বর্তমানে প্রবেশ করেননি। যদি আপনি সম্পাদনা করেন এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি ঠিকানা সার্বজনীনভাবে সংরক্ষিত হবে। যদি আপনি [$1 প্রবেশ করেন] বা [$2 একটি অ্যাকাউন্ট তৈরি করেন], তাহলে আপনি আপনার আইপি ঠিকানা গোপন রাখতে পারবেন ও অন্যান্য অনেক কিছু সুবিধা পাবেন।", - "anonpreviewwarning": "আপনি প্রবেশ করেননি। সম্পাদনা করলে এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি ঠিকানা সংরক্ষিত হবে।", - "missingsummary": "'''খেয়াল করুন''': আপনি কিন্তু সম্পাদনার সারাংশ দেননি। আবার যদি \"সংরক্ষণ\" বোতামে ক্লিক করেন, তাহলে ঐ সারাংশ বাক্যটি ছাড়াই আপনার সম্পাদনা সংরক্ষিত হবে।", + "blankarticle": "সতর্ক বার্তা: আপনি একটি খালি পাতা তৈরী করতে যাচ্ছেন।\nআপনি যদি পুনরায় \"{{int:savearticle}}\" বোতামটি ক্লিক করেন তাহলে কোন পাঠ্য বিষয়বস্তু ছাড়াই পাতাটি তৈরী হবে।", + "anoneditwarning": "সতর্ক বার্তা: আপনি বর্তমানে আপনার অ্যাকাউন্টে প্রবেশ করেননি। যদি এ অবস্থায় আপনি সম্পাদনা সংরক্ষণ করেন তাহলে এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি ঠিকানা জনসমক্ষে দৃশ্যমান হবে। যদি আপনি [$1 অ্যাকাউন্টে প্রবেশ করেন] বা [$2 একটি অ্যাকাউন্ট তৈরি করেন], তাহলে আপনি আপনার আইপি ঠিকানা গোপন রাখতে পারবেন ও অন্যান্য বেশ কিছু সুবিধা পাবেন।", + "anonpreviewwarning": "আপনি অ্যাকাউন্টে প্রবেশ করেননি। সম্পাদনা সংরক্ষণ করলে এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি ঠিকানা সংরক্ষিত হবে।", + "missingsummary": "'''খেয়াল করুন''': আপনি আপনার সম্পাদনার কোনও সারাংশ দেননি। আবার যদি \"{{int:savearticle}}\" বোতামে ক্লিক করেন, তাহলে ঐ সারাংশ বাক্যটি ছাড়াই আপনার সম্পাদনা সংরক্ষিত হবে।", "selfredirect": "সতর্কতা: আপনি এই পাতাকে এর নিজের দিকে পুনঃনির্দেশিত করছেন।\nআপনাকে পুনঃনির্দেশিত করার জন্য হয় ভুল লক্ষ্য নির্দিষ্ট করেছেন, অথবা আপনি ভুল পাতা সম্পাদনা করছেন।\nআপনি যদি আবার \"{{int:savearticle}}\" ক্লিক করেন, পুনর্নির্দেশ যেকোনোভাবেই হোক তৈরি করা হবে।", "missingcommenttext": "দয়া করে নিচে মন্তব্য যোগ করুন।", - "missingcommentheader": "খেয়াল করুন: আপনি এই মন্তব্যের জন্য কোন বিষয় প্রদান করেননি।আপনি যদি আবার \"{{int:savearticle}}\" বোতামে ক্লিক করেন, আপনার এই সম্পাদনা কোন বিষয় ছাড়াই সংরক্ষিত হবে।", + "missingcommentheader": "খেয়াল করুন: আপনি এই মন্তব্যের জন্য কোনও বিষয় প্রদান করেননি। আপনি যদি আবার \"{{int:savearticle}}\" বোতামে ক্লিক করেন, আপনার এই সম্পাদনা কোন বিষয় ছাড়াই সংরক্ষিত হবে।", "summary-preview": "সম্পাদনা সারাংশের প্রাকদর্শন:", "subject-preview": "বিষয়ের প্রাকদর্শন:", "previewerrortext": "আপনার পরিবর্তনগুলি প্রাকদর্শন করার চেষ্টা করার সময় একটি ত্রুটি ঘটেছে।", "blockedtitle": "ব্যবহারকারীকে বাধা দেয়া হয়েছে", - "blockedtext": "আপনার ব্যবহারকারী নাম বা আইপি ঠিকানার ঊপর নিষেধাজ্ঞা আরোপিত হয়েছে।\n\n$1 নিষেধাজ্ঞা আরোপ করেছেন। নিষেধের কারণ হিসেবে বলা হয়েছে:''$2''।\n\n* নিষেধাজ্ঞা শুরুর সময়:$8\n* নিষেধাজ্ঞা উঠিয়ে নেয়ার সময়: $6\n* যার উপর নিষেধাজ্ঞা আরোপ করা হয়েছে: $7\n\nআপনি $1 অথবা [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকদের]] কারও সাথে এই নিষেধাজ্ঞা সংক্রান্ত বিষয়ে আলোচনা করতে পারেন।\n\nআপনি '(ব্যবহারকারীকে) ইমেইল করুন' ফিচারটি ব্যবহার করতে পারবেন না। তবে [[Special:Preferences|আপনার পছন্দ তালিকাতে]] যদি একটি বৈধ ই-মেইল ঠিকানা নির্দিষ্ট করা হয়ে থাকে এবং ফিচারটি ব্যবহারে যদি আপনাকে বাধা না দেওয়া হয়ে থাকে, তবে আপনি ফিচারটি ব্যবহার করতে পারবেন।\n\nআপনার বর্তমান আইপি ঠিকানা $3, এবং আপনার নিষেধাজ্ঞা নং হল #$5।\n\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।", - "autoblockedtext": "আপনার আইপি ঠিকানাকে স্বয়ংক্রিয়ভাবে বাধা দেয়া হয়েছে কারণ এটি আরেকজন ব্যবহারকারী দ্বারা ব্যবহৃত হয়েছে, যাকে $1 বাধা দিয়েছেন।\nযে কারণে বাধা দেয়া হয়েছে:\n\n:''$2''\n\n* বাধা শুরুর সময়: $8\n* বাধা শেষের সময়: $6\n* যাকে বাধা দেওয়ার চেষ্টা করা হয়েছে: $7\n\nআপনি $1-এর সাথে কিংবা অন্য যেকোন [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকের]] সাথে যোগাযোগ করে বাধার ব্যাপারটি আলোচনা করতে পারেন।\n\nলক্ষ্য করুন, যদি আপনি \"এই ব্যবহারকারীকে ই-মেইল করুন\" বৈশিষ্ট্যটি ব্যবহার করতে চান, তবে আপনার [[Special:Preferences|পছন্দ]] অপশনে একটি বৈধ ইমেইল ঠিকানা নিবন্ধিত থাকতে হবে এবং আপনার সেটি ব্যবহারে কোন বাধা থাকতে পারবে না।\n\nআপনার বর্তমান আইপি ঠিকানা হচ্ছে $3, এবং বাধা দানের আইডি হল #$5।\nযেকোন প্রশ্ন করার সময় উপরের সকল তথ্য উল্লেখ করুন।", - "systemblockedtext": "আপনার ব্যবহারকারী নাম অথবা আইপি ঠিকানাটিকে স্বয়ংক্রিয়ভাবে মিডিয়াউইকি দ্বারা বাধাদান করা হয়েছে। যে কারণটি দেওয়া হয়েছে, সেটি হল:\n\n:$2\n\n* বাধাদান শুরুর সময়: $8\n* বাধাদানের সমাপ্তি: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনার বর্তমান আইপি ঠিকানাটি হল $3।\nজানার জন্যে কোন প্রশ্ন করার সময় অনুগ্রহ করে উপরের সমস্ত বিস্তারিত তথ্য অন্তর্ভুক্ত করুন।", + "blockedtext": "আপনার ব্যবহারকারী নাম বা আইপি ঠিকানাটিকে সম্পাদনায় বাধাদান করা হয়েছে।\n\n$1 এই বাধাটি প্রদান করেছেন। বাধার কারণ হিসেবে বলা হয়েছে:$2।\n\n* বাধা শুরুর সময়:$8\n* বাধা উঠিয়ে নেয়ার সময়: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনি $1 অথবা [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকদের]] কারও সাথে এই বাধা সংক্রান্ত বিষয়ে আলোচনা করতে পারেন।\n\nআপনি \"(ব্যবহারকারীকে) ইমেইল করুন\" সুবিধাটি ব্যবহার করতে পারবেন না। তবে [[Special:Preferences|আপনার পছন্দ তালিকাতে]] যদি একটি বৈধ ইমেইল ঠিকানা নির্দিষ্ট করা হয়ে থাকে এবং সুবিধাটি ব্যবহারে যদি আপনাকে বাধা না দেওয়া হয়ে থাকে, তবে আপনি সুবিধাটি ব্যবহার করতে পারবেন।\n\nআপনার বর্তমান আইপি ঠিকানা $3, এবং আপনার বাধা নং হল #$5।\n\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।", + "autoblockedtext": "আপনার আইপি ঠিকানাটিকে স্বয়ংক্রিয়ভাবে সম্পাদনায় বাধাদান করা হয়েছে কারণ এমন আরেকজন ব্যবহারকারী এটি ব্যবহার করেছেন, যাকে $1 বাধা দিয়েছেন।\nযে কারণে বাধা দেওয়া হয়েছে সেটি হল:\n\n:$2\n\n* বাধা শুরুর সময়: $8\n* বাধা শেষের সময়: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনি $1-এর সাথে কিংবা অন্য যেকোন [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকের]] সাথে যোগাযোগ করে এই বাধা সংক্রান্ত বিষয়ে আলোচনা করতে পারেন।\n\nলক্ষ্য করুন, যদি আপনি \"এই ব্যবহারকারীকে ই-মেইল করুন\" সুবিধাটি ব্যবহার করতে চান, তবে [[Special:Preferences|আপনার পছন্দ তালিকাতে]] যদি একটি বৈধ ইমেইল ঠিকানা নির্দিষ্ট থাকতে হবে এবং আপনার সেটি ব্যবহারে কোন বাধা থাকতে পারবে না।\n\nআপনার বর্তমান আইপি ঠিকানা হচ্ছে $3, এবং বাধা নং হল #$5।\n\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।", + "systemblockedtext": "আপনার ব্যবহারকারী নাম অথবা আইপি ঠিকানাটিকে স্বয়ংক্রিয়ভাবে মিডিয়াউইকি দ্বারা বাধাদান করা হয়েছে। যে কারণটি দেওয়া হয়েছে, সেটি হল:\n\n:$2\n\n* বাধা শুরুর সময়: $8\n* বাধা উঠিয়ে নেয়ার সময়: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনার বর্তমান আইপি ঠিকানাটি হল $3।\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।", "blockednoreason": "কোন কারণ দেওয়া হয়নি", - "whitelistedittext": "পাতায় সম্পাদনা করতে আবশ্যই $1 করতে হবে।", + "whitelistedittext": "পাতায় সম্পাদনা করতে অনুগ্রহ করে $1 করুন।", "confirmedittext": "কোন সম্পাদনা করার আগে আপনার ই-মেইল ঠিকানাটি অবশ্যই নিশ্চিত করতে হবে। দয়া করে আপনার ই-মেইল ঠিকানাটি [[Special:Preferences|ব্যবহারকারীর পছন্দতালিকায়]] ঠিকমত দিন।", "nosuchsectiontitle": "অনুচ্ছেদ পাওয়া যায়নি", "nosuchsectiontext": "আপনি এমন একটি অনুচ্ছেদ সম্পাদনার চেষ্টা করেছেন, যার কোন অস্তিত্ব নেই।\nযখন এই পাতাটি দেখার চেষ্টা করছে, তখন হয়তো এটি সরিয়ে অথবা অপসারণ করা হয়েছে।", @@ -693,7 +695,7 @@ "continue-editing": "সম্পাদনা করুন", "previewconflict": "এই প্রাকদর্শনটি সম্পাদনা ক্ষেত্রের উপরের অংশটির টেক্সট সংরক্ষণ করলে যেরকম দেখাবে, তা দেখাচ্ছে।", "session_fail_preview": "দুঃখিত! সেশন ডাটা হারিয়ে যাওয়ার কারণে আপনার সম্পাদনাটি সংরক্ষণ করা সম্ভব হয়নি।\n\nআপনি সম্ভবত সংযোগ হারিয়েছন। দয়া করে যাচাই করুন যে আপনি এখনও প্রবেশরত রয়েছেন এবং আবার চেষ্টা করুন। যদি এটি এখনও কাজ না করে, তাহলে দয়া করে [[Special:UserLogout|অ্যাকাউন্ট থেকে প্রস্থান করুন]] এবং আবার অ্যাকাউন্টে প্রবেশ করে চেষ্টা করুন এবং এবং পরীক্ষা করুন যে আপনার ব্রাউজার এই সাইটে কুকি ব্যবহারের অনুমতি দেয়।", - "session_fail_preview_html": "দুঃখিত! সেশন উপাত্ত হারিয়ে যাওয়ার কারণে আমরা আপনার সম্পাদনাটি প্রক্রিয়া করতে পারিনি।\n\n{{SITENAME}}-এ raw HTML সক্রিয় আছে বলে জাভাস্ক্রিপ্ট ভিত্তিক আক্রমণ থেকে প্রতিরক্ষার জন্য প্রাকদর্শনটি দেখানো হচ্ছে না।\n\nযদি এটি সম্পাদনার একটি বৈধ প্রচেষ্টা হয়, তবে অনুগ্রহ করে আবার চেষ্টা করুন।\nযদি তারপরেও কাজ না হয়, তবে অ্যাকাউন্ট থেকে [[Special:UserLogout|বেরিয়ে গিয়ে]] আবার প্রবেশ করুন, এবং পরীক্ষা করে দেখুন যে আপনার ব্রাউজারে এই সাইট থেকে কুকি অনুমতি দেয়।", + "session_fail_preview_html": "দুঃখিত! সেশনের উপাত্ত হারিয়ে যাওয়ার কারণে আমরা আপনার সম্পাদনাটি প্রক্রিয়াভুক্ত করতে পারিনি।\n\n{{SITENAME}}-এ raw HTML সক্রিয় আছে বলে জাভাস্ক্রিপ্ট ভিত্তিক আক্রমণ থেকে প্রতিরক্ষার জন্য প্রাকদর্শনটি দেখানো হচ্ছে না।\n\nযদি এটি সম্পাদনার একটি বৈধ প্রচেষ্টা হয়, তবে অনুগ্রহ করে আবার চেষ্টা করুন।\nযদি তারপরেও কাজ না হয়, তবে অ্যাকাউন্ট থেকে [[Special:UserLogout|বেরিয়ে গিয়ে]] আবার প্রবেশ করুন, এবং পরীক্ষা করে দেখুন যে আপনার ব্রাউজারে এই সাইট থেকে কুকি রাখার অনুমতি আছে কি না।", "token_suffix_mismatch": "'''আপনার সম্পাদনাটি প্রত্যাখ্যান করা হয়েছে, কারণ আপনার ক্লায়েন্ট প্রোগ্রামটি সম্পাদনা টেক্সটের বিরামচিহ্নগুলি গুলিয়ে ফেলেছে। পাতাটির টেক্সটে যাতে ক্ষতি না হয় সেজন্য সম্পাদনাটি প্রত্যাখ্যান করা হয়েছে। আপনি কোন ত্রুটিপূর্ণ ওয়েব-ভিত্তিক বেনামী প্রক্সি সেবা ব্যবহার করলে এরকম হতে পারে।'''", "edit_form_incomplete": "'''আপনার সম্পাদনার কিছু অংশ সার্ভারে পৌছায় নি; আপনার সম্পাদনা সম্পূর্ণরুপে আছে কিনা নিশ্চিত হয়ে আবার চেষ্টা করুন'''", "editing": "সম্পাদনা করছেন: $1", @@ -711,7 +713,7 @@ "copyrightwarning2": "অনুগ্রহ করে লক্ষ করুন: {{SITENAME}}-এর এই ভুক্তিতে আপনার লেখা বা অবদান অন্যান্য ব্যবহারকারীরা পরিবর্তন বা পরিবর্ধন করতে, এমনকি মুছে ফেলতে পারবেন। {{SITENAME}} এ আপনার সকল লেখালেখি/অবদান গনু ফ্রি ডকুমেন্টেশনের ($1) আওতায় বিনামূল্যে প্রাপ্য ও হস্তান্তরযোগ্য। আপনার জমা দেয়া লেখা যে কেউ হৃদয়হীনভাবে সম্পাদনা করতে এবং যথেচ্ছভাবে ব্যবহার করতে পারেন। আপনি যদি এ ব্যাপারে একমত না হন, তাহলে এখানে আপনার লেখা জমা দেবেন না। আপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন (তবে কোন মৌলিক গবেষণা নয়) বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন। '''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না।'''", "editpage-cannot-use-custom-model": "এই পাতার বিষয়বস্তুর রূপ পরিবর্তন করা যাবে না।", "longpageerror": "'''ত্রুটি: আপনার জমা দেয়া টেক্সটের পরিমাণ {{PLURAL:$1|এক কিলোবাইট|$1 কিলোবাইট}}, যা সর্বোচ্চ সীমা {{PLURAL:$2|এক কিলোবাইটের|$2 কিলোবাইটের}} চেয়ে বেশি।'''\nএটি সংরক্ষণ করা সম্ভব নয়।", - "readonlywarning": "সতর্কীকরণ: রক্ষণাবেক্ষণের জন্য ডাটাবেজ অবরুদ্ধ রাখা হয়েছে, তাই এই মুহূর্তে আপনি আপনার সম্পাদনা সংরক্ষণ করতে পারবেন না।\nআপনি চাইলে লেখাটি অনুলিপি করে ও কোন টেক্সট ফাইলে প্রতিলেপন করার দ্বারা ভবিষ্যতের জন্য সংরক্ষণ করতে পারেন।\n\nসিস্টেম প্রশাসক যিনি এটি বন্ধ করেছেন তিনি এই ব্যাখ্যা দিয়েছেন: $1", + "readonlywarning": "সতর্কবার্তা: রক্ষণাবেক্ষণের জন্য ডাটাবেজ অবরুদ্ধ রাখা হয়েছে, তাই এই মুহূর্তে আপনি আপনার সম্পাদনা সংরক্ষণ করতে পারবেন না।\nআপনি চাইলে লেখাটি প্রতিলিপি করে কোন টেক্সট ফাইলে সেঁটে ভবিষ্যতের জন্য সংরক্ষণ করতে পারেন।\n\nযে সিস্টেম প্রশাসক ডাটাবেজটি অবরুদ্ধ করেছেন তিনি এই ব্যাখ্যা দিয়েছেন: $1", "protectedpagewarning": "'''সতর্কীকরণ: এই পাতাটি বন্ধ করা হয়েছে; কেবলমাত্র প্রশাসক মর্যাদার ব্যবহারকারীরাই এটি সম্পাদনা করতে পারবেন।'''\nআপনার সুবিধার্থে পাতাটির সাম্প্রতিক সংরক্ষণ লগের বিবরণ নিচে দেওয়া হলো।", "semiprotectedpagewarning": "'''নোট:''' এই পাতাটির ব্যবহার নিয়ন্ত্রণ করা হয়েছে তাই নিবন্ধনকৃত ব্যবহারকারী এটি সম্পাদনা করতে পারবেন।\nআপনার সুবিধার্থে পাতাটির সাম্প্রতিক সংরক্ষণ লগের বিবরণ নিচে দেওয়া হলো।", "cascadeprotectedwarning": "সতর্কীকরণ: এই পাতাটি সুরক্ষিত, ফলে এটি শুধুমাত্র প্রশাসক অধিকারপ্রাপ্ত ব্যবহারকারীগণ সম্পাদনা করতে পারেন, কারণ এটি নিচের প্রপাতাকার-সুরক্ষিত {{PLURAL:$1|পাতায়|পাতাসমূহে}} অন্তর্ভুক্ত আছে:", @@ -725,11 +727,11 @@ "edittools": "", "edittools-upload": "-", "nocreatetext": "{{SITENAME}}-এ নতুন পাতা সৃষ্টি করার ক্ষমতা সীমাবদ্ধ করা হয়েছে।\nআপনি ফিরে গিয়ে ইতিমধ্যে বিদ্যমান কোন পাতা সম্পাদনা করতে পারেন, অথবা [[Special:UserLogin|অ্যাকাউন্টে প্রবেশ কিংবা অ্যাকাউন্ট সৃষ্টি করতে পারেন]]।", - "nocreate-loggedin": "নতুন পাতা তৈরিতে আপনাকে অনুমোতি দেওয়া হয়নি।", + "nocreate-loggedin": "আপনার নতুন পাতা তৈরি করার অনুমোদন নেই।", "sectioneditnotsupported-title": "অনুচ্ছেদ সম্পাদনা সমর্থন করে না", "sectioneditnotsupported-text": "এই সম্পাদনা পাতায় অনুচ্ছেদ সম্পাদনা সমর্থন করে না", "permissionserrors": "অনুমতি ত্রুটিসমূহ", - "permissionserrorstext": "আপনার এটা করার অনুমতি নেই, নিচের {{PLURAL:$1|টি কারণের|টি কারণের}} জন্য:", + "permissionserrorstext": "নিন্মলিখিত {{PLURAL:$1|কারণটির|কারণগুলির}} জন্য আপনার এটা করার অনুমতি নেই:", "permissionserrorstext-withaction": "আপনার $2 অনুমতি নেই, যার {{PLURAL:$1|কারণ|কারণসমূহ}} হল:", "contentmodelediterror": "আপনি এই পুনর্বিবেচনা সম্পাদনা করতে পারবেন না কারণ এর বিষয়বস্তু মডেল $1, যা বর্তমান বিষয়বস্তু মডেল $2-এর থেকে ভিন্ন।", "recreate-moveddeleted-warn": "'''সতর্কীকরণ: আপনি এমন একটি পাতা পুনরায় তৈরি করছেন যা পূর্বে অপসারণ করা হয়েছিল।'''\n\nআপনি পাতাটি সম্পাদনা চালিয়ে যাওয়া ঠিক হবে কিনা, তা বিবেচনা করুন।\nআপনার সুবিধার্থে পাতাটির অপলুপ্তি লগ এখানে দেয়া হলো:", @@ -771,6 +773,8 @@ "post-expand-template-argument-warning": "' ' ' সাবধান: ' ' ' এই পাতাটিতে অন্তত একটি ফর্মা যুক্তি আছে যা একটি খুব বড় বিস্তার আকার ধারণ করেছে।\nতাই এই আর্গুমেন্টটি বাদ দেওয়া হয়েছে।", "post-expand-template-argument-category": "বাদ ফর্মা আর্গুমেন্ট ধারণকারী পাতা", "parser-template-loop-warning": "টেমপ্লেট লুপ সনাক্ত হয়েছে: [[$1]]", + "template-loop-category": "টেমপ্লেট লুপসহ পাতা", + "template-loop-category-desc": "এই পাতায় একটি টেমপ্লেট লুপ আছে, অর্থাৎ এটি এমন একটি টেমপ্লেট যা নিজেকেই পুনরাবৃত্তভাবে আহ্বান করে।", "parser-template-recursion-depth-warning": "টেমপ্লেট পুনরাবৃত্তি (রিকার্শন) ডেপথ্‌ সীমা অতক্রম করেছে ($1)", "language-converter-depth-warning": "ভাষা পরিবর্তন ডেপথ্‌ সীমা অতক্রম করেছে ($1)", "node-count-exceeded-category": "যে সকল পাতার নোড কাউন্ট সীমানা পার হয়েছে", @@ -787,15 +791,15 @@ "undo-norev": "সম্পাদনাটি বাতিল করা যাচ্ছেনা কারণ এটি আর নেই বা মুছে ফেলা হয়েছে।", "undo-nochange": "সম্পাদনাটি পূর্বেই বাতিল করা হয়েছে।", "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|আলাপ]])-এর সম্পাদিত $1 নম্বর সংশোধনটি বাতিল করা হয়েছে", - "undo-summary-username-hidden": "একজন লুকানো ব্যবহারকারী $1 সংশোধন পুনরায় ফিরিয়ে এনেছেন", + "undo-summary-username-hidden": "একজন লুকায়িত ব্যবহারকারীর করা $1 নং সংশোধনটি বাতিল করা হয়েছে", "cantcreateaccount-text": "[[User:$3|$3]] এই আইপি ঠিকানা('''$1''') থেকে অ্যাকাউন্ট সৃষ্টিতে বাধা দিয়েছেন।\n\n$3-এর দেয়া কারণ হল ''$2''", "cantcreateaccount-range-text": "[[User:$3|$3]] কর্তৃক আইপি ঠিকানার ব্যাপ্তি $1-এর মধ্যে অ্যাকাউন্ট তৈরি করা অবরুদ্ধ করা হয়েছে। যাতে আপনার আইপি ঠিকানাও ($4) রয়েছে। \n\n$3 কর্তৃক $2 কারণ দেখানো হয়েছে।", "viewpagelogs": "এই পাতার জন্য লগগুলো দেখুন", "nohistory": "এই পাতার কোন সম্পাদনার ইতিহাস নেই।", "currentrev": "সর্বশেষ সংস্করণ", - "currentrev-asof": "$1 তারিখে সম্পাদিত বর্তমান সংস্করণ", - "revisionasof": "$1 তারিখের সংস্করণ", - "revision-info": "$2 কর্তৃক $1 পর্যন্ত সংস্করণে $7", + "currentrev-asof": "$1 তারিখে সম্পাদিত সর্বশেষ সংস্করণ", + "revisionasof": "$1 তারিখে সংশোধিত সংস্করণ", + "revision-info": "{{GENDER:$6|$2}} কর্তৃক $1 তারিখে সংশোধিত সংস্করণ$7", "previousrevision": "←পুর্বের সংস্করণ", "nextrevision": "পরবর্তী সংস্করণ→", "currentrevisionlink": "সর্বশেষ সংস্করণ", @@ -804,22 +808,22 @@ "last": "পূর্ববর্তী", "page_first": "প্রথম", "page_last": "শেষ", - "histlegend": "পার্থক্য নির্বাচন: যে সংস্করণগুলো তুলনা করতে চান, সেগুলো চিহ্নিত করে এন্টার বা নিচের বোতামটি টিপুন।
\nনির্দেশিকা: (বর্তমান) = বর্তমান সংস্করণের সাথে পার্থক্য, (পূর্ববর্তী) = পূর্বের সংস্করণের সাথে পার্থক্য, অ = অনুল্লেখ্য সম্পাদনা।", - "history-fieldset-title": "সংস্করণের জন্য অনুসন্ধান করুন", + "histlegend": "পার্থক্য নির্বাচন: যে সংস্করণগুলি তুলনা করতে চান, সেগুলি চিহ্নিত করে এন্টার বা নিচের বোতামটি টিপুন।
\nনির্দেশিকা: ({{int:cur}}) = বর্তমান সংস্করণের সাথে পার্থক্য, ({{int:last}}) = পূর্বের সংস্করণের সাথে পার্থক্য, {{int:minoreditletter}} = অনুল্লেখ্য সম্পাদনা।", + "history-fieldset-title": "সংশোধিত সংস্করণের জন্য অনুসন্ধান করুন", "history-show-deleted": "শুধুমাত্র অপসারিত সংশোধন", "histfirst": "সবচেয়ে পুরনো", "histlast": "সবচেয়ে নতুন", "historysize": "({{PLURAL:$1|১ বাইট|$1 বাইট}})", "historyempty": "(খালি)", - "history-feed-title": "সংশোধন ইতিহাস", - "history-feed-description": "এ উইকিতে এই পাতার সংশোধনের ইতিহাস", + "history-feed-title": "সংশোধনের ইতিহাস", + "history-feed-description": "এই উইকিতে এই পাতার সংশোধনের ইতিহাস", "history-feed-item-nocomment": "$2-এ $1", "history-feed-empty": "অনুরোধকৃত পাতাটির কোন অস্তিত্ব নেই।\nহয়ত পাতাটি উইকি থেকে মুছে ফেলা হয়েছে, কিংবা নতুন নামকরণ করা হয়েছে।\nপ্রাসঙ্গিক নতুন পাতাগুলির জন্য [[Special:Search|উইকি অনুসন্ধানের]] চেষ্টা করুন।", "history-edit-tags": "নির্বাচিত সংশোধনের ট্যাগ সম্পাদনা করুন", "rev-deleted-comment": "(সম্পাদনা সারাংশ অপসারিত)", "rev-deleted-user": "(ব্যবহারকারীর নাম সরিয়ে নেওয়া হয়েছে)", "rev-deleted-event": "(লগ তথ্য সরানো হয়েছে)", - "rev-deleted-user-contribs": "ব্যবহারকারীর নাম অথবা আইপি ঠিকানা অপসারিত হয়েছে - অবদান থেকে সম্পাদনা আড়াল করা হয়েছে", + "rev-deleted-user-contribs": "[ব্যবহারকারীর নাম অথবা আইপি ঠিকানা সরানো হয়েছে - অবদান থেকে সম্পাদনা লুকিয়ে রাখা হয়েছে]", "rev-deleted-text-permission": "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।\nবিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।", "rev-suppressed-text-permission": "পাতার সংশোধনটি গোপন করা হয়েছে।\nবিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} গোপনকার্যের লগে] থাকতে পারে।", "rev-deleted-text-unhide": "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।\nবিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।\nআপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।", @@ -836,7 +840,7 @@ "rev-showdeleted": "দেখাও", "revisiondelete": "অবলুপ্ত/পুনঃস্থাপন সংশোধনসমূহ", "revdelete-nooldid-title": "বেঠিক লক্ষ্য সংশোধন", - "revdelete-nooldid-text": "এই কাজটি সম্পন্ন করার জন্য আপনি কোন লক্ষ্য সংশোধন নির্বাচন করেননি যেখানে এই কাজটি সম্পাদন করা হবে, অথবা নির্বাচিত সংশোধনটি নেই, অথবা আপনি বর্তমান সংশোধন আড়াল করার চেষ্টা করছেন।", + "revdelete-nooldid-text": "এই কাজটি সম্পন্ন করার জন্য আপনি কোন লক্ষ্য সংশোধন নির্বাচন করেননি যেখানে এই কাজটি সম্পাদন করা হবে, অথবা নির্বাচিত সংশোধনটি নেই, অথবা আপনি বর্তমান সংশোধন লুকিয়ে রাখার চেষ্টা করছেন।", "revdelete-no-file": "নির্ধারিত ফাইলটি নেই।", "revdelete-show-file-confirm": "আপনি কি নিশ্চিত যে \"$1\" ফাইলের $2 তারিখের $3 টার অপসারণ লগ দেখানো হবে?", "revdelete-show-file-submit": "হ্যাঁ", @@ -846,18 +850,18 @@ "revdelete-text-text": "অপসারিত সংস্করণসমূহ এখনও পাতা ইতিহাসে প্রদর্শিত হয়, কিন্তু সেই বিষয়বস্তুর অংশগুলি সর্বসাধারণ দেখতে পারবে না।", "revdelete-text-file": "অপসারিত ফাইলের সংস্করণসমূহ এখনও ফাইল ইতিহাসে প্রদর্শিত হয়, কিন্তু সেই বিষয়বস্তুর অংশগুলি সর্বসাধারণ দেখতে পারবে না।", "logdelete-text": "অপসারিত লগ ইভেন্টসমূহ এখনও লগে প্রদর্শিত হয়, কিন্তু সেই বিষয়বস্তুর অংশগুলি সর্বসাধারণ দেখতে পারেবে না।", - "revdelete-text-others": "অন্যান্য প্রশাষকগণ এই লুকানো তথ্য গুলো দেখতে পারবেন এবং প্রয়োজনে সেগুলো ফিরিয়ে আনতে পারবেন, যদি অন্যান্য কোনো বাধা না থাকে।", + "revdelete-text-others": "অন্যান্য প্রশাসকেরা তার পরেও এই লুকানো বিষয়বস্তুগুলি দেখতে পারবেন এবং প্রয়োজনে সেগুলো ফিরিয়ে আনতে পারবেন, যদি অন্যান্য কোনো বাধা না থাকে।", "revdelete-confirm": "অনুগ্রহ করে নিশ্চিত করুন যে আপনি এটি করতে চাচ্ছিলেন, আপনি এর ফলাফল সম্পর্কে অবগত আছেন, এবং [[{{MediaWiki:Policy-url}}|নীতিমালার]] উপর ভিত্তি করেই এই কাজটি করছেন।", "revdelete-suppress-text": "নিচের বিষয়গুলোর ক্ষেত্রেই '''কেবলমাত্র''' চাপাচাপি করা যাবে:\n* সম্ভাব্য মানহানিকর তথ্য\n* ভুল ব্যক্তিগত তথ্য\n*: ''বাসার ঠিকানা এবং ফোন নম্বর, সোসাল সিকিউরিটি নম্বর, ইত্যাদি।''", "revdelete-legend": "দৃষ্টিপাত সীমাবদ্ধ করো", - "revdelete-hide-text": "সংস্করণের লেখা", - "revdelete-hide-image": "ফাইলের বিষয়বস্তু আড়াল করো", + "revdelete-hide-text": "সংশোধনের লেখা", + "revdelete-hide-image": "ফাইলের বিষয়বস্তু লুকিয়ে রাখা হোক", "revdelete-hide-name": "লক্ষ্য ও প্যারামিটার আড়াল করো", "revdelete-hide-comment": "সম্পাদনা সারাংশ", - "revdelete-hide-user": "সম্পাদকে ব্যবহারকারীর নাম/আইপি", + "revdelete-hide-user": "সম্পাদকের ব্যবহারকারী নাম/আইপি ঠিকানা", "revdelete-hide-restricted": "প্রশাসকবৃন্দ এবং অন্যদের ক্ষেত্রে এই ডাটা রোধ করো", - "revdelete-radio-same": "পরিবর্তন নয়", - "revdelete-radio-set": "লুকানো", + "revdelete-radio-same": "(পরিবর্তন করবেন না)", + "revdelete-radio-set": "লুকায়িত", "revdelete-radio-unset": "দৃশ্যমান", "revdelete-suppress": "সব প্রশাসক ও অন্যান্যদের কাছ থেকে উপাত্ত লুকিয়ে রাখা হোক।", "revdelete-unsuppress": "সংশোধন পুনঃস্থাপনের উপর সীমাবদ্ধতা দূর করো", @@ -870,7 +874,7 @@ "revdel-restore": "দৃশ্যমানতা পরিবর্তন করো", "pagehist": "পাতার ইতিহাস", "deletedhist": "ইতিহাস মুছে ফেলো", - "revdelete-hide-current": "$2, $1 সময়ের বিষয়টি লুকানো যাচ্ছে না: এটি বর্তমান সংস্করণ।\nএটি লুকানো সম্ভব নয়।", + "revdelete-hide-current": "$2 সময় ও $1 তারিখের আইটেমটি লুকানো যাচ্ছে না: এটি বর্তমান সংস্করণ।\nএটি লুকানো সম্ভব নয়।", "revdelete-show-no-access": "$2, $1 তারিখের ছবিটি দেখাতে সমস্যা হচ্ছে: এটি ''রেসট্রিটেড'' হিসাবে চিহ্নিত করা রয়েছে।\nআপনার এটি দেখার অনুমতি নেই।", "revdelete-modify-no-access": "$2, $1 তারিখের ছবিটি সম্পাদনা করতে সমস্যা হচ্ছে: এটি ''রেসট্রিটেড'' হিসাবে চিহ্নিত করা রয়েছে।\nআপনার এটি দেখার অনুমতি নেই।", "revdelete-modify-missing": "$1 আইডি সম্বলিত তথ্যটি সম্পাদনা করা যাচ্ছে না: এটি ডাটাবেজ থেকে হারিয়ে গিয়েছে!", @@ -883,7 +887,7 @@ "revdelete-edit-reasonlist": "অপসারণের কারণ সম্পাদনা", "revdelete-offender": "সংশোধন লেখক:", "suppressionlog": "দমন লগ", - "suppressionlogtext": "নিচের তালিকায় প্রশাসকদের থেকে লুকানো রয়েছে এমন তথ্যসহ অন্যন্য অপসারণ এবং বাধাদানের লগ রয়েছে।\nঅনুগ্রহ করে অস্থায়ী ব্যান এবং বাধাদানের লগ সম্পর্কে বিস্তারিত জানতে [[Special:BlockList|বাধাদানের লগ দেখুন]]।", + "suppressionlogtext": "নিচের তালিকায় প্রশাসকদের কাছ থেকে লুকানো রয়েছে এমন তথ্যসহ অপসারণ এবং বাধাদানের লগ রয়েছে।\nঅনুগ্রহ করে অস্থায়ী ব্যান এবং বাধাদানের লগ সম্পর্কে বিস্তারিত জানতে [[Special:BlockList|বাধাদানের লগ দেখুন]]।", "mergehistory": "পাতার ইতিহাসগুলি একত্র করা হোক", "mergehistory-header": "এই পাতাটির মাধ্যমে আপনি একটি উৎস পাতার ইতিহাস একটি নতুনতর পাতার সাথে একত্র করতে পারবেন।\nপাতার ইতিহাসের পারম্পর্য যেন রক্ষা পায়, সে ব্যাপারটি নিশ্চিত করুন।", "mergehistory-box": "দুইটি পাতার একত্রীকরণ সংশোধনগুলি:", @@ -908,31 +912,31 @@ "mergehistory-no-destination": "$1 বলে কোন গন্তব্য পাতার অস্তিত্ব নেই।", "mergehistory-invalid-source": "উৎস পাতার অবশ্যই একটি বৈধ শিরোনাম থাকতে হবে।", "mergehistory-invalid-destination": "গন্তব্য পাতার একটি বৈধ শিরোনাম থাকতে হবে।", - "mergehistory-autocomment": "[[:$1]] কে [[:$2]] -এ একত্রীত করা হয়েছে", - "mergehistory-comment": "[[:$1]] কে [[:$2]] -এ একত্রীত করা হয়েছে: $3", + "mergehistory-autocomment": "[[:$1]] পাতাটিকে [[:$2]] পাতাটির সাথে একত্রিত করা হয়েছে", + "mergehistory-comment": "[[:$1]] পাতাটিকে [[:$2]] পাতাটির সাথে একত্রিত করা হয়েছে: $3", "mergehistory-same-destination": "উৎস এবং গন্তব্য পাতা একই হতে পারবে না", "mergehistory-reason": "কারণ:", "mergelog": "একত্রীকরণ লগ", "revertmerge": "একত্রীকরণ বাতিল", "mergelogpagetext": "নিচে সবচেয়ে সাম্প্রতিক ঘটা এক পাতার ইতিহাসের সাথে অন্য পাতার ইতিহাসের একত্রীকরণের একটি তালিকা দেওয়া হল।", - "history-title": "\"$1\" এর সংশোধনের ইতিহাস", - "difference-title": "\"$1\"-এর বিভিন্ন সংস্করণের মধ্যে পার্থক্য", - "difference-title-multipage": "\"$1\" ও \"$2\"-পাতার মধ্যে পার্থক্য", - "difference-multipage": "পাতাগুলোর মধ্যে পার্থক্য", + "history-title": "\"$1\" পাতাটির সংশোধনের ইতিহাস", + "difference-title": "\"$1\" পাতাটির দুইটি সংশোধিত সংস্করণের মধ্যে পার্থক্য", + "difference-title-multipage": "\"$1\" ও \"$2\" পাতাগুলির মধ্যে পার্থক্য", + "difference-multipage": "(পাতাগুলির মধ্যে পার্থক্য)", "lineno": "$1 নং লাইন:", - "compareselectedversions": "নির্বাচিত সংস্করণগুলো তুলনা করো", - "showhideselectedversions": "নির্বাচিত সংশোধনগুলো দেখাও/লুকাও", - "editundo": "পূর্বাবস্থায় আনো", + "compareselectedversions": "নির্বাচিত সংশোধিত সংস্করণগুলির তুলনা", + "showhideselectedversions": "নির্বাচিত সংশোধনগুলি দেখাও/লুকাও", + "editundo": "পূর্বাবস্থায় ফেরত", "diff-empty": "(কোন পার্থক্য নেই)", "diff-multi-sameuser": "(একই ব্যবহারকারী দ্বারা সম্পাদিত {{PLURAL:$1|একটি মধ্যবর্তী সংশোধন|$1টি মধ্যবর্তী সংশোধন}} দেখানো হচ্ছে না)", "diff-multi-otherusers": "({{PLURAL:$2|একজন|$2 জন}} ব্যবহারকারী দ্বারা সম্পাদিত {{PLURAL:$1|একটি|$1টি}} মধ্যবর্তী সংশোধন দেখানো হচ্ছে না)", - "diff-multi-manyusers": "($2 জন {{PLURAL:$2|ব্যবহারাকারীর}} সম্পাদিত {{PLURAL:$1|একটি সাম্প্রতিক সংস্করণ|$1 টি সাম্প্রতিক সংস্করণ}} প্রদর্শিত হচ্ছে না)", - "difference-missing-revision": "$1 পার্থক্যের {{PLURAL:$2|একটি সংস্করণ|$2টি সংস্করণ}} খুঁজে পাওয়া যাচ্ছে না।\n\nসাধারণত মুছে ফেলা হয়েছে এমন পাতার মেয়াদ উত্তীর্ণ ইতিহাস পাতার লিংক খোলার কারণে এটি হতে পারে। \n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] বিস্তারিত তথ্য জানা যাবে।", + "diff-multi-manyusers": "($2 জনের বেশি {{PLURAL:$2|ব্যবহারকারীর}} সম্পাদিত {{PLURAL:$1|একটি মধ্যবর্তী সংশোধন|$1টি মধ্যবর্তী সংশোধন}} প্রদর্শিত হচ্ছে না)", + "difference-missing-revision": "এই পার্থক্যের ($1) অন্তর্গত {{PLURAL:$2|একটি সংশোধিত সংস্করণ|$2টি সংশোধিত সংস্করণ}} খুঁজে পাওয়া যাচ্ছে না।\n\nসাধারণত মুছে ফেলা হয়েছে এমন পাতার মেয়াদ উত্তীর্ণ ইতিহাস পাতার লিংক খোলার কারণে এটি হতে পারে। \n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} পাতা অবলুপ্তি লগে] বিস্তারিত তথ্য জানা যাবে।", "searchresults": "অনুসন্ধানের ফলাফল", "searchresults-title": "\"$1\" অনুসন্ধানের ফলাফল", "titlematches": "নিবন্ধের শিরোনাম মিলেছে", "textmatches": "পাতার লেখার সাথে মিলেছে", - "notextmatches": "কোন পাতার লেখার সাথে মিলে নেই", + "notextmatches": "কোন পাতার লেখার সাথে মিলেনি", "prevn": "পূর্ববর্তী {{PLURAL:$1|$1}}টি", "nextn": "পরবর্তী {{PLURAL:$1|$1}}টি", "prev-page": "পূর্ববর্তী পাতা", @@ -940,27 +944,27 @@ "prevn-title": "পূর্ববর্তী $1{{PLURAL:$1|টি ফলাফল}}", "nextn-title": "পরবর্তী $1টি {{PLURAL:$1|ফলাফল}}", "shown-title": "প্রতি পাতায় $1টি {{PLURAL:$1|ফলাফল}} দেখাও", - "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) দেখানো হোক।", + "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) দেখুন", "searchmenu-exists": "'''এই উইকিতে \"[[:$1]]\" নামে একটি পাতা রয়েছে'''", - "searchmenu-new": "\"[[:$1]]\" পাতাটি এই উইকিতে তৈরি করুন! {{PLURAL:$2|0=|এছাড়া আপনার অনুসন্ধানের সাথে পাওয়া পাতা দেখুন।|এছাড়া অনুসন্ধানে পাওয়া ফলাফলগুলি দেখুন।}}", - "searchprofile-articles": "বিষয়বস্তুর পাতা", + "searchmenu-new": "\"[[:$1]]\" পাতাটি এই উইকিতে তৈরি করুন! {{PLURAL:$2|0=|এছাড়া আপনার অনুসন্ধানের সাথে পাওয়া পাতাটি দেখুন।|এছাড়া অনুসন্ধানে পাওয়া ফলাফলগুলিও দেখুন।}}", + "searchprofile-articles": "বিষয়বস্তুসমৃদ্ধ পাতা", "searchprofile-images": "মাল্টিমিডিয়া", "searchprofile-everything": "সমস্তকিছু", - "searchprofile-advanced": "উচ্চতর", + "searchprofile-advanced": "উন্নত", "searchprofile-articles-tooltip": "$1 এ অনুসন্ধান", "searchprofile-images-tooltip": "ফাইলের জন্য অনুসন্ধান", - "searchprofile-everything-tooltip": "সকল বিষয়বস্তু অনুসন্ধান করো (আলাপের পাতা সহ)", - "searchprofile-advanced-tooltip": "স্বনির্ধারিত নামস্থানে অনুসন্ধান করো", + "searchprofile-everything-tooltip": "সকল বিষয়বস্তু অনুসন্ধান করুন (আলাপের পাতাসহ)", + "searchprofile-advanced-tooltip": "স্বনির্ধারিত নামস্থানে অনুসন্ধান করুন", "search-result-size": "$1 ({{PLURAL:$2|১টি শব্দ|$2টি শব্দ}})", - "search-result-category-size": "{{PLURAL:$1 |১টি সদস্য |$1টি সদস্য}} ({{PLURAL:$2 |১টি উপবিষয়শ্রেণী|$2টি উপবিষয়শ্রেণী}}, {{PLURAL:$3 |১টি ফাইল |$3টি ফাইল}})", + "search-result-category-size": "{{PLURAL:$1|১টি সদস্য|$1টি সদস্য}} ({{PLURAL:$2|১টি উপবিষয়শ্রেণী|$2টি উপবিষয়শ্রেণী}}, {{PLURAL:$3|১টি ফাইল |$3টি ফাইল}})", "search-redirect": "($1 থেকে পুনর্নির্দেশিত)", - "search-section": "(অনুচ্ছেদ $1)", - "search-category": "(বিষয়শ্রেণী $1)", - "search-file-match": "(নথির বিষয়বস্তু মিলে যায়)", - "search-suggest": "আপনি সম্ভবত বুঝাতে চাইছেন: $1", - "search-rewritten": "$1-এর জন্য ফলাফল দেখানো হচ্ছে। এর পরিবর্তে $2-এর জন্য অনুসন্ধান করুন।", + "search-section": "($1 পরিচ্ছেদ)", + "search-category": "($1 বিষয়শ্রেণী)", + "search-file-match": "(ফাইলের বিষয়বস্তুর সাথে মিলে যায়)", + "search-suggest": "আপনি কি \"$1\" বোঝাতে চাচ্ছেন?", + "search-rewritten": "$1-এর জন্য অনুসন্ধানের ফলাফল দেখানো হচ্ছে। এর পরিবর্তে $2-এর জন্য অনুসন্ধান করুন।", "search-interwiki-caption": "সহপ্রকল্পসমূহ", - "search-interwiki-default": "$1 থেকে ফলাফলসমূহ:", + "search-interwiki-default": "$1 থেকে প্রাপ্ত ফলাফলসমূহ:", "search-interwiki-more": "(আরও)", "search-interwiki-more-results": "আরও ফলাফল", "search-relatedarticle": "সম্পর্কিত", @@ -968,62 +972,62 @@ "searchall": "সমস্ত", "showingresults": "নিচে '''$2''' নং থেকে শুরু করে {{PLURAL:$1|'''1''' ফলাফল|'''$1''' ফলাফলসমূহ}} দেখানো হল।", "showingresultsinrange": "#$2 থেকে #$3 পরিসীমার মধ্যে {{PLURAL:$1|১টি ফলাফল|$1টি ফলাফল}} নিচে দেখানো হচ্ছে।", - "search-showingresults": "{{PLURAL:$4|$3-এর মধ্যে $1টি ফলাফল|$3-এর মধ্যে $1 - $2টি ফলাফল}}", - "search-nonefound": "খোঁজকৃত পাতার সাথে মিলে যায় এমন কোনো ফলাফল নেই।", - "search-nonefound-thiswiki": "খোঁজ করার সাথে মিলে যায় এমন কোনো ফলাফল এই সাইটে নেই।", + "search-showingresults": "মোট {{PLURAL:$4|$3টি ফলাফলের মধ্যে $1টি ফলাফল|মোট $3টি ফলাফলের মধ্যে $1 - $2 নং ফলাফল}}", + "search-nonefound": "অনুসন্ধানকৃত জিজ্ঞাসার সাথে মিলে যায় এমন কোনো ফলাফল নেই।", + "search-nonefound-thiswiki": "অনুসন্ধানকৃত জিজ্ঞাসার সাথে মিলে যায় এমন কোনো ফলাফল এই সাইটে নেই।", "powersearch-legend": "উন্নত অনুসন্ধান", - "powersearch-ns": "নামস্থানে অনুসন্ধান করো:", - "powersearch-togglelabel": "পরীক্ষা:", - "powersearch-toggleall": "সকল", - "powersearch-togglenone": "কিছু নয়", - "powersearch-remember": "ভবিষ্যত অনুসন্ধানগুলির জন্য নির্বাচন মনে রাখুন", + "powersearch-ns": "নামস্থানগুলিতে অনুসন্ধান করুন:", + "powersearch-togglelabel": "নির্বাচন করুন:", + "powersearch-toggleall": "সবগুলি", + "powersearch-togglenone": "কোনটিই নয়", + "powersearch-remember": "ভবিষ্যত অনুসন্ধানগুলির জন্য নির্বাচন মনে রাখা হোক", "search-external": "বহিঃস্থ অনুসন্ধান", "searchdisabled": "{{SITENAME}} অনুসন্ধান এখন নিষ্ক্রিয় আছে। আপনি গুগলের মাধ্যমে অনুসন্ধান চালাতে পারেন। লক্ষ্য করুন যে {{SITENAME}}-এর বিষয়বস্তুর উপর গুগলের ইন্ডেক্সগুলি হালনাগাদ না-ও করা থাকতে পারে।", - "search-error": "অনুসন্ধানের সময় একটি ত্রুটি হয়েছে: $1", - "search-warning": "অনুসন্ধানের সময় একটি সতর্কীকরণ দেখিয়েছে: $1", + "search-error": "অনুসন্ধানের সময় একটি ত্রুটি উৎপন্ন হয়েছে: $1", + "search-warning": "অনুসন্ধানের সময় একটি সতর্ক বার্তা উৎপন্ন হয়েছে: $1", "preferences": "আমার পছন্দ", "mypreferences": "পছন্দসমূহ", "prefs-edits": "সম্পাদনা সংখ্যা:", - "prefsnologintext2": "আপনার পছন্দসমূহ পরিবর্তন করতে প্রবেশ করুন।", + "prefsnologintext2": "আপনার পছন্দগুলি পরিবর্তন করতে অনুগ্রহ করে অ্যাকাউন্টে প্রবেশ করুন।", "prefs-skin": "আবরণ", "skin-preview": "প্রাকদর্শন", "datedefault": "কোন পছন্দ নেই", - "prefs-labs": "পরীক্ষাগার বৈশিষ্টসমূহ", + "prefs-labs": "পরীক্ষাগার সুবিধাসমূহ", "prefs-user-pages": "ব্যবহারকারীর পাতা", "prefs-personal": "ব্যবহারকারীর বৃত্তান্ত", "prefs-rc": "সাম্প্রতিক পরিবর্তনসমূহ", "prefs-watchlist": "নজরতালিকা", - "prefs-editwatchlist": "নজরতালিকা সম্পাদনা করো", + "prefs-editwatchlist": "নজরতালিকা সম্পাদনা", "prefs-editwatchlist-label": "আপনার নজরতালিকার ভুক্তিসমূহ সম্পাদনা করুন:", - "prefs-editwatchlist-edit": "আপনার নজরতালিকায় থাকা শিরোনাম দেখুন ও সরান", + "prefs-editwatchlist-edit": "আপনার নজরতালিকায় থাকা শিরোনামগুলি দেখুন ও সরিয়ে ফেলুন", "prefs-editwatchlist-raw": "অশোধিত নজরতালিকা সম্পাদনা করুন", - "prefs-editwatchlist-clear": "নজরতালিকা পরিস্কার করুন", - "prefs-watchlist-days": "যত দিনের নজরতালিকা দেখানো হবে:", + "prefs-editwatchlist-clear": "নজরতালিকা খালি করুন", + "prefs-watchlist-days": "যতসংখ্যক দিনের নজরতালিকা দেখানো হবে:", "prefs-watchlist-days-max": "সর্বোচ্চ $1 {{PLURAL:$1|দিন|দিন}}", - "prefs-watchlist-edits": "সম্প্রসারিত নজর তালিকায় সর্বোচ্চ সংখ্যার পরিবর্তন দেখানোর জন্য:", - "prefs-watchlist-edits-max": "সর্বোচ্চ নম্বর: ১০০০", + "prefs-watchlist-edits": "সম্প্রসারিত নজরতালিকায় প্রদর্শিত পরিবর্তনের সর্বোচ্চ সংখ্যা:", + "prefs-watchlist-edits-max": "সর্বোচ্চ সংখ্যা: ১০০০", "prefs-watchlist-token": "নজরতালিকা টোকেন:", "prefs-misc": "বিবিধ", "prefs-resetpass": "পাসওয়ার্ড পরিবর্তন", "prefs-changeemail": "ইমেইল ঠিকানা পরিবর্তন বা বাতিল করুন", - "prefs-setemail": "একটি ই-মেইল ঠিকানা নির্ধারণ করুন", - "prefs-email": "ই-মেইল অপশন", + "prefs-setemail": "একটি ইমেইল ঠিকানা নির্ধারণ করুন", + "prefs-email": "ইমেইলের পছন্দগুলি", "prefs-rendering": "অবয়ব", "saveprefs": "সংরক্ষণ", - "restoreprefs": "সকল পূর্বনির্ধারিত সেটিং ফিরিয়ে আনো (সকল অনুচ্ছেদে)", + "restoreprefs": "সকল পূর্বনির্ধারিত সেটিং ফিরিয়ে আনো (সকল অংশে)", "prefs-editing": "সম্পাদনা", "searchresultshead": "অনুসন্ধান", - "stub-threshold": "অসম্পূর্ণ লিঙ্ক বিন্যাসের জন্য প্রান্তিক মাপ ($1):", + "stub-threshold": "অসম্পূর্ণ নিবন্ধের সংযোগ ফরম্যাটিং-এর জন্য এরকম নিবন্ধের আকারের প্রান্তসীমা ($1):", "stub-threshold-sample-link": "নমুনা", "stub-threshold-disabled": "নিস্ক্রিয়", - "recentchangesdays": "সাম্প্রতিক পরিবর্তনে দিনসমূহ দেখানোর জন্য:", - "recentchangesdays-max": "সর্বোচ্চ $1 {{PLURAL:$1|দিন|দিন}}", - "recentchangescount": "সাম্প্রতিক পরিবর্তনে প্রদর্শিত সম্পাদনার সংখ্যা:", - "prefs-help-recentchangescount": "এতে সাম্প্রতিক পরিবর্তনসমূহ, পাতার ইতিহাস এবং লগ অন্তর্ভুক্ত।", - "prefs-help-watchlist-token2": "এটি আপনার নজরতালিকার ওয়েব ফিডের গোপন চাবি। যে কেউ যিনি এটা জানেন তিনি আপনার নজরতালিকা পড়তে সক্ষম হবেন, তাই এটি প্রকাশ করবেন না। [[Special:ResetTokens|আপনার এটি পুনঃনির্ধারণ করার প্রয়োজন হলে এখানে ক্লিক করুন]]।", - "savedprefs": "আপনার পছন্দগুলো সংরক্ষণ করা হয়েছে।", + "recentchangesdays": "সাম্প্রতিক পরিবর্তন পাতায় প্রদর্শিত দিনের সংখ্যা:", + "recentchangesdays-max": "সর্বোচ্চ $1 {{PLURAL:$1|দিনের}}", + "recentchangescount": "সাম্প্রতিক পরিবর্তনে প্রদর্শিত সম্পাদনার পূর্বনির্ধারিত সংখ্যা:", + "prefs-help-recentchangescount": "এতে সাম্প্রতিক পরিবর্তনগুলি, পাতার ইতিহাসগুলি এবং লগগুলি অন্তর্ভুক্ত।", + "prefs-help-watchlist-token2": "এটি আপনার নজরতালিকার ওয়েব ফিডের গোপন চাবি। কেউ যদি এটি জানতে পারেন, তাহলে তিনি আপনার নজরতালিকা পড়তে সক্ষম হবেন, তাই এটি প্রকাশ করবেন না। [[Special:ResetTokens|আপনার এটি পুনঃনির্ধারণ করার প্রয়োজন হলে এখানে ক্লিক করুন]]।", + "savedprefs": "আপনার পছন্দগুলি সংরক্ষণ করা হয়েছে।", "savedrights": "{{GENDER:$1|$1}}-এর ব্যবহারকারী দল সংরক্ষিত হয়েছে।", - "timezonelegend": "সময়স্থান:", + "timezonelegend": "সময় অঞ্চল:", "localtime": "স্থানীয় সময়:", "timezoneuseserverdefault": "উইকির পূর্বনির্ধারিত সময় ব্যবহার করো ($1)", "timezoneuseoffset": "অন্য (অফসেট নির্দিষ্ট করুন)", @@ -1077,14 +1081,14 @@ "prefs-signature": "স্বাক্ষর", "prefs-dateformat": "তারিখ বিন্যাস", "prefs-timeoffset": "সময় অফসেট", - "prefs-advancedediting": "সাধারণ অপশন", + "prefs-advancedediting": "সাধারণ পছন্দগুলি", "prefs-editor": "সম্পাদক", "prefs-preview": "প্রাকদর্শন", - "prefs-advancedrc": "উচ্চতর অপশন", + "prefs-advancedrc": "উচ্চতর পছন্দগুলি", "prefs-advancedrendering": "উচ্চতর অপশন", - "prefs-advancedsearchoptions": "উচ্চতর অপশন", + "prefs-advancedsearchoptions": "উচ্চতর পছন্দগুলি", "prefs-advancedwatchlist": "উচ্চতর অপশন", - "prefs-displayrc": "প্রদর্শনী অপশন", + "prefs-displayrc": "প্রদর্শনীর পছন্দগুলি", "prefs-displaywatchlist": "প্রদর্শনী অপশন", "prefs-tokenwatchlist": "টোকেন", "prefs-diffs": "পার্থক্য", @@ -1116,6 +1120,7 @@ "userrights-expiry-options": "১ দিন:1 day,১ সপ্তাহ:1 week,১ মাস:1 month,৩ মাস:3 months,৬ মাস:6 months,১ বছর:1 year", "userrights-invalid-expiry": "\"$1\" দলের জন্য মেয়াদোত্তীর্ণের সময় অবৈধ।", "userrights-expiry-in-past": "\"$1\" দলের জন্য মেয়াদোত্তীর্ণের সময় অতীতে।", + "userrights-cannot-shorten-expiry": "\"$1\" দলটির মেয়াদোত্তীর্ণ হবার সময় ও তারিখ আপনি পূর্ববর্তী কোন সময়ে এগিয়ে নিয়ে আসতে পারবেন না। যেসব ব্যবহারকারীর এই দলটি যোগ বা অপসারণ করার অনুমতি আছে, কেবল তারাই মেয়াদোত্তীর্ণ হবার সময় ও তারিখ এগিয়ে নিয়ে আসতে পারবেন।", "userrights-conflict": "ব্যবহারকারী অধিকার দ্বন্দ্ব! অনুগ্রহ করে নিশ্চিত হোন এবং পুনরায় চেষ্টা করুন।", "group": "দল:", "group-user": "ব্যবহারকারীগণ", @@ -1137,13 +1142,13 @@ "grouppage-sysop": "{{ns:project}}:প্রশাসক", "grouppage-bureaucrat": "{{ns:project}}:ব্যুরোক্র্যাট", "grouppage-suppress": "{{ns:project}}:দমনকারী", - "right-read": "পাতাসমূহ পড়ুন", - "right-edit": "পাতা সম্পাদনা করুন", - "right-createpage": "পাতা তৈরি করো (আলাপের পাতা নয়)", - "right-createtalk": "আলোচনা পাতা তৈরি করুন", + "right-read": "যেকোন পাতা পড়া", + "right-edit": "পাতা সম্পাদনা করা", + "right-createpage": "আলাপ পাতা নয়, এমন পাতা তৈরি করা", + "right-createtalk": "আলাপ পাতা তৈরি করা", "right-createaccount": "নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করুন", "right-autocreateaccount": "স্বয়ংক্রিয়ভাবে একটি বাহ্যিক ব্যবহারকারী অ্যাকাউন্ট দিয়ে প্রবেশ করুন", - "right-minoredit": "অনুল্লেখ্য সম্পাদনা হিসেবে চিহ্নিত", + "right-minoredit": "কোনও সম্পাদনা অনুল্লেখ্য হিসেবে চিহ্নিত করা", "right-move": "পাতা সরান", "right-move-subpages": "পাতাগুলোকে তার উপপাতাসহ সরিয়ে নিন", "right-move-rootuserpages": "root ব্যবহারকারীর পাতাগুলো সরিয়ে ফেলুন", @@ -1152,10 +1157,10 @@ "right-suppressredirect": "পাতা স্থানান্তরের সময় মূল পাতা থেকে পুনর্নির্দেশ তৈরী করছে না", "right-upload": "ফাইল আপলোড করুন", "right-reupload": "বিদ্যমান ফাইল প্রতিস্থাপন করো", - "right-reupload-own": "কারও আপলোডকৃত ফাইল ওভাররাইট করুন", + "right-reupload-own": "নিজের দ্বারা আপলোডকৃত ফাইল যা ইতিমধ্যেই বিদ্যমান, সেটি মুছে পুনরায় নতুন করে আপলোড করা", "right-reupload-shared": "স্থানীয়ভাবে শেয়ার্ড মিডিয়া রিপোজিটরীর ফাইল ওভাররাইড", "right-upload_by_url": "URL থেকে ফাইল আপলোড", - "right-purge": "নিশ্চিতকরণ ছাড়াই সাইটের ক্যাশ পার্জ করুন", + "right-purge": "নিশ্চিতকরণ ছাড়াই সাইটের ক্যাশ শোধন করা", "right-autoconfirmed": "অর্ধ-সুরক্ষিত পাতা সম্পাদনা", "right-bot": "সয়ংক্রিয় পদ্ধতি হিসাবে চিহ্নিত করণ", "right-nominornewtalk": "বার্তা লেখার মত আলাপ পাতায় কোনো অনুল্লেখ্য সম্পাদনা নেই", @@ -1169,8 +1174,8 @@ "right-deletedtext": "অপরাসারিত সংশোধনের অপরাসারিত লেখা এবং পরিবর্তনসমূহ দেখাও", "right-browsearchive": "অপসারিত পাতা অনুসন্ধান করো", "right-undelete": "পাতাটি পুনরুদ্ধার করুন", - "right-suppressrevision": "যেকোন ব্যবহারকারী থেকে পাতার নির্দিষ্ট সংশোধন দেখুন, আড়াল করুন এবং অ-আড়াল করুন", - "right-viewsuppressed": "সকল ব্যবহারকারীর জন্য লুকিয়াত সংশোধন প্রদর্শন কর", + "right-suppressrevision": "যেকোন ব্যবহারকারী থেকে পাতার নির্দিষ্ট সংশোধন দেখুন, লুকিয়ে রাখুন এবং প্রকাশ্যে আনুন", + "right-viewsuppressed": "যেকোন ব্যবহারকারীর কাছ থেকে লুকায়িত সংস্করণগুলি দেখুন", "right-suppressionlog": "ব্যক্তিগত লগ দেখাও", "right-block": "সম্পাদনা করতে কোনো ব্যবহারকারীকে বাঁধা দাও", "right-blockemail": "ই-মেইল পাঠাতে কোনো ব্যবহারকারীকে বাঁধা দাও", @@ -1195,7 +1200,7 @@ "right-rollback": "একটি নির্দিষ্ট পাতার সর্বশেষ ব্যবহারকারীর সম্পদনা পূর্বাবস্থায় ফিরিয়ে আনুন", "right-markbotedits": "ফেরত আনা সম্পাদনাসমূহকে বট সম্পাদনা হিসেবে চিহ্নিত করে", "right-noratelimit": "রেট লিমিটের ভিত্তিতে পরিবর্তন হবে না", - "right-import": "অন্য উইকি থেকে পাতা আমদানী করো", + "right-import": "অন্য উইকি থেকে পাতা আমদানি করা", "right-importupload": "ফাইল আপলোড থেকে এই পাতাগুলো আমদানী করো", "right-patrol": "অন্যের সম্পাদনা পরীক্ষিত বলে চিহ্নিত করো", "right-autopatrol": "কারও নিজের সম্পাদনা সয়ংক্রিয়ভাবে পরীক্ষাণ হিসাবে চিহ্নিত", @@ -1204,11 +1209,11 @@ "right-mergehistory": "পাতার ইতিহাস একীকরণ করুন।", "right-userrights": "সকল ব্যবহারকারী অধিকার সম্পাদনা করুন", "right-userrights-interwiki": "অন্যান্য উইকির ব্যবহারকারীদের অধিকারসমূহ সম্পাদনা করুন।", - "right-siteadmin": "ডাটাবেজ বন্ধ এবং খুলুন", + "right-siteadmin": "ডাটাবেজ অবরুদ্ধ করা এবং খোলা", "right-override-export-depth": "৫ম স্তর পর্যন্ত সংযুক্তিসহ একটি পাতা রপ্তানী করুন", - "right-sendemail": "অন্য ব্যবহারকারীকে ইমেইল পাঠান", + "right-sendemail": "অন্য ব্যবহারকারীকে ইমেইল পাঠানো", "right-managechangetags": "[[Special:Tags|ট্যাগ]] তৈরি ও সক্রিয়/নিষ্ক্রিয় করুন", - "right-applychangetags": "সম্পাদনার সাথে [[Special:Tags|ট্যাগ]] যুক্ত করুন", + "right-applychangetags": "নিজস্ব সম্পাদনার সাথে [[Special:Tags|ট্যাগ]] যুক্ত করা", "right-changetags": "নির্দিষ্ট সংস্করণ এবং দীর্ঘ সম্পাদনাগুলোতে [[Special:Tags|ট্যাগ]] সংযোজন ও অপসারণ করুন", "right-deletechangetags": "ডাটাবেজ থেকে [[Special:Tags|ট্যাগ]] অপসারণ করা", "grant-generic": "\"$1\" অধিকার স্তর", @@ -1232,7 +1237,7 @@ "grant-editpage": "বিদ্যমান পাতা সম্পাদনা করুন", "grant-editprotected": "সংরক্ষিত পাতা সম্পাদনা করুন", "grant-highvolume": "উচ্চ-মাত্রার সম্পাদনা", - "grant-oversight": "ব্যবহারকারী লুকান ও ইতিহাস অপসারণ", + "grant-oversight": "ব্যবহারকারী লুকিয়ে রাখা ও সংশোধন দমন", "grant-patrol": "পাতার পরিবর্তনে টহল দেয়া", "grant-privateinfo": "ব্যক্তিগত তথ্যে প্রবেশাধিকার", "grant-protect": "পাতাসমূহ সুরক্ষা ও অরক্ষিত করুন", @@ -1259,7 +1264,7 @@ "action-move": "পাতাটি সরিয়ে ফেলুন", "action-move-subpages": "পাতাটি এবং এর উপপাতাগুলো সরিয়ে ফেলুন", "action-move-rootuserpages": "root ব্যবহারকারীর পাতাগুলো সরিয়ে ফেলুন", - "action-move-categorypages": "বিষয়শ্রেণী পাতাসমূহ স্থানান্তর করুন", + "action-move-categorypages": "বিষয়শ্রেণী পাতা স্থানান্তর করা", "action-movefile": "এই ফাইল স্থানান্তর করার", "action-upload": "এই ফাইল আপলোড করার", "action-reupload": "বিদ্যমান ফাইল প্রতিস্থাপন করো", @@ -1278,7 +1283,7 @@ "action-block": "এই ব্যবহারকারীকে সম্পাদনা করতে বাঁধা দেয়ার", "action-protect": "এই পাতার সুরক্ষার মাত্রা পরিবর্তন করার", "action-rollback": "একটি নির্দিষ্ট পাতার সর্বশেষ ব্যবহারকারীর সম্পদনা পূর্বাবস্থায় ফিরিয়ে আনুন", - "action-import": "অন্য উইকি থেকে পাতা আমদানী করো", + "action-import": "অন্য উইকি থেকে পাতা আমদানি করার", "action-importupload": "ফাইল আপলোড থেকে পাতা আমদানী করো", "action-patrol": "অন্যদের সম্পাদনা পরীক্ষিত বলে চিহ্নিত করো", "action-autopatrol": "পরীক্ষিত বলে চিহ্নিত কি আপনি সম্পাদনা করেছেন", @@ -1286,7 +1291,7 @@ "action-mergehistory": "এই পাতার ইতিহাস একত্রিত করার", "action-userrights": "সকল ব্যবহারকারীর অধিকার সম্পাদনা করুন", "action-userrights-interwiki": "অন্যান্য উইকির ব্যবহারকারীদের অধিকারসমূহ সম্পাদনা করুন", - "action-siteadmin": "ডাটাবেজ বন্ধ অথবা খুলুন", + "action-siteadmin": "ডাটাবেজ অবরুদ্ধ করা অথবা খোলা", "action-sendemail": "ই-মেইল পাঠাও", "action-editmyoptions": "নিজের পছন্দসমূহ সম্পাদনা করার", "action-editmywatchlist": "আপনার নজরতালিকা পরিবর্তন করুন", @@ -1296,14 +1301,14 @@ "action-editcontentmodel": "পাতার কন্টেন্ট মডেল সম্পাদনা করুন", "action-managechangetags": "ট্যাগ তৈরি ও সক্রিয়/নিষ্ক্রিয়", "action-applychangetags": "আপনার পরিবর্তনগুলোর সাথে ট্যাগ সংযোজন করুন", - "action-changetags": "নির্দিষ্ট সংস্করণ এবং দীর্ঘ সম্পাদনাগুলোতে ট্যাগ সংযোজন ও অপসারণ করুন", + "action-changetags": "নির্দিষ্ট সংস্করণ এবং লগ ভুক্তিগুলিতে যথেচ্ছভাবে ট্যাগ সংযোজন ও অপসারণ করা", "action-deletechangetags": "ডাটাবেজ থেকে ট্যাগ অপসরণ করার", "action-purge": "এই পাতা হালনাগাদ করার", "nchanges": "$1টি {{PLURAL:$1|পরিবর্তন}}", "enhancedrc-since-last-visit": "{{PLURAL:$1|সর্বশেষ প্রদর্শনের পর}} $1টি", "enhancedrc-history": "ইতিহাস", "recentchanges": "সাম্প্রতিক পরিবর্তন", - "recentchanges-legend": "সাম্প্রতিক পরিবর্তনের পছন্দসমূহ", + "recentchanges-legend": "সাম্প্রতিক পরিবর্তনের পছন্দগুলি", "recentchanges-summary": "এই পাতায় উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।", "recentchanges-noresult": "নির্ধারিত সময়ের মধ্যে কোনো পরিবর্তন পাওয়া যায়নি।", "recentchanges-feed-description": "এই ফিডে উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।", @@ -1329,21 +1334,27 @@ "rcfilters-highlightmenu-title": "একটি রং নির্বাচন করুন", "rcfilters-highlightmenu-help": "এই বৈশিষ্ট্য আলোকপাত করতে একটি রঙ নির্বাচন করুন", "rcfilters-filterlist-noresults": "কোনও ফিল্টার পাওয়া যায়নি", - "rcfilters-noresults-conflict": "কোনও ফলাফল পাওয়া যায়নি, কারণ অনুসন্ধানের মাপকাঠিগুলির মধ্যে সংঘর্ষ আছে।", + "rcfilters-noresults-conflict": "কোনও ফলাফল পাওয়া যায়নি কারণ অনুসন্ধানের মাপকাঠিগুলির মধ্যে সংঘর্ষ আছে", + "rcfilters-state-message-subset": "এই ছাঁকনিটির কোন প্রভাব নেই কারণ এর ফলাফলগুলি নিম্নোক্ত বৃহত্তর পরিধির {{PLURAL:$2|ছাঁকনির|ছাঁকনিগুলির}} মধ্যে অন্তর্ভুক্ত আছে (আলোকপাত করে এটিকে আলাদা করে দেখার চেষ্টা করুন): $1", + "rcfilters-state-message-fullcoverage": "কোন দলের সমস্ত ছাঁকনি নির্বাচন করা এবং কোন ছাঁকনিই নির্বাচন না করা একই কথা, তাই এই ছাঁকনিটির কোন প্রভাব নেই। এই দলে অন্তর্ভুক্ত ছাঁকনিগুলি হল: $1", "rcfilters-filtergroup-registration": "ব্যবহারকারী নিবন্ধন", "rcfilters-filter-registered-label": "নিবন্ধিত", "rcfilters-filter-registered-description": "প্রবেশকৃত সম্পাদকবৃন্দ।", "rcfilters-filter-unregistered-label": "অনিবন্ধিত", "rcfilters-filter-unregistered-description": "সম্পাদক যারা প্রবেশ করেন নি।", + "rcfilters-filter-unregistered-conflicts-user-experience-level": "এই ছাঁকনিটির সাথে নিম্নোক্ত ব্যবহারকারী অভিজ্ঞতা{{PLURAL:$2|ছাঁকনির|ছাঁকনিগুলির}} সংঘর্ষ আছে; যা কেবলমাত্র নিবন্ধিত ব্যবহারকারীদের খুঁজে বের করে: $1", "rcfilters-filtergroup-authorship": "কৃতি সম্পাদনা", "rcfilters-filter-editsbyself-label": "আপনার নিজস্ব সম্পাদনা", "rcfilters-filter-editsbyself-description": "আপনার দ্বারা সম্পাদনা।", "rcfilters-filter-editsbyother-label": "অন্যদের দ্বারা সম্পাদনা", "rcfilters-filter-editsbyother-description": "অন্য ব্যবহারকারীদের দ্বারা করা সম্পাদনা (আপনার না)।", "rcfilters-filtergroup-userExpLevel": "অভিজ্ঞতার স্তর (শুধু মাত্র নিবন্ধিত ব্যবহারকারীর জন্য)", + "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "অভিজ্ঞতা ছাঁকনিগুলি কেবলমাত্র নিবন্ধিত ব্যবহারকারীদের খুঁজে বের করে, তাই এই ছাঁকনিটি \"অনিবন্ধিত\" ছাঁকনিটির সাথে সংঘর্ষে আছে।", + "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "\"অনিবন্ধিত\" ছাঁকনিটি এক বা তার অধিক অভিজ্ঞতা ছাঁকনির সাথে সংঘর্ষে আছে, যে ছাঁকনিগুলি কেবলমাত্র নিবন্ধিত ব্যবহারকারীদের খুঁজে বের করে। সংঘর্ষরত ছাঁকনিগুলিকে উপরের \"সক্রিয় ছাঁকনিসমূহ\" এলাকাতে চিহ্নিত করা হয়েছে।", "rcfilters-filter-user-experience-level-newcomer-label": "নতুন আগত", "rcfilters-filter-user-experience-level-newcomer-description": "১০টি সম্পাদনার কম ও ৪ দিনের কার্যকলাপ।", "rcfilters-filter-user-experience-level-learner-label": "শিক্ষার্থী", + "rcfilters-filter-user-experience-level-learner-description": "যারা \"নবাগত\" ব্যবহারকারীদের চেয়ে বেশিসংখ্যক দিন ও বেশিবার সম্পাদনা করেছেন, কিন্তু \"অভিজ্ঞ ব্যবহারকারীদের\" চেয়ে কম করেছেন।", "rcfilters-filter-user-experience-level-experienced-label": "অভিজ্ঞ ব্যবহারকারী", "rcfilters-filter-user-experience-level-experienced-description": "৩০ দিনের বেশী কার্যকলাপ ও ৫০০টি সম্পাদনা।", "rcfilters-filtergroup-automated": "স্বয়ংক্রিয় অবদান", @@ -1358,43 +1369,48 @@ "rcfilters-filter-unpatrolled-description": "সম্পাদনা পরীক্ষিত হিসেবে চিহ্নিত করা হয় নি।", "rcfilters-filtergroup-significance": "তাৎপর্য", "rcfilters-filter-minor-label": "অনুল্লেখ্য সম্পাদনা", - "rcfilters-filter-minor-description": "অপ্রাপ্তবয়স্ক হিসেবে চিহ্নিত লেখককে সম্পাদনা করে।", + "rcfilters-filter-minor-description": "যেসব সম্পাদনাকে লেখক অনুল্লেখ্য হিসেবে চিহ্নিত করেছেন।", "rcfilters-filter-major-label": "অ-অনুল্লেখ্য সম্পাদনা", + "rcfilters-filter-major-description": "যেসব সম্পাদনাকে অনুল্লেখ্য হিসেবে চিহ্নিত করা হয়নি।", "rcfilters-filtergroup-changetype": "পরিবর্তনের ধরন", "rcfilters-filter-pageedits-label": "পাতার সম্পাদনা", "rcfilters-filter-pageedits-description": "উইকি বিষয়বস্তু, আলোচনা, বিষয়শ্রেণীর বিবরণ.... ইত্যাদিতে সম্পাদনা", "rcfilters-filter-newpages-label": "পাতার সৃষ্টিকরণ", "rcfilters-filter-newpages-description": "সম্পাদনা যা নতুন পাতা তৈরি করেছে।", "rcfilters-filter-categorization-label": "বিষয়শ্রেণীর পরিবর্তন", + "rcfilters-filter-categorization-description": "বিষয়শ্রেণী পাতা সংযোজন বা অপসারণের তালিকা", "rcfilters-filter-logactions-label": "প্রবেশকৃত কার্য", "rcfilters-filter-logactions-description": "প্রশাসনিক কর্ম, অ্যাকাউন্ট সৃষ্টিকরণ, পাতা অপসারণ, আপলোড....", + "rcfilters-hideminor-conflicts-typeofchange-global": "\"অনুল্লেখ্য সম্পাদনা\" ছাঁকনিটির সাথে এক বা ততোধিক \"পরিবর্তনের ধরন\"-সংক্রান্ত ছাঁকনির সংঘর্ষ আছে, কারণ কিছু নির্দিষ্ট ধরনের সম্পাদনা \"অনুল্লেখ্য\" হিসেবে চিহ্নিত করা সম্ভব নয়। সংঘর্ষে থাকা ছাঁকনিগুলিকে উপরের \"সক্রিয় ছাঁকনিসমূহ\" এলাকাতে চিহ্নিত করা হয়েছে।", + "rcfilters-hideminor-conflicts-typeofchange": "কিছু নির্দিষ্ট ধরনের সম্পাদনা \"অনুল্লেখ্য\" হিসেবে চিহ্নিত করা সম্ভব নয়, তাই এই ছাঁকনিটির সাথে নিম্নোক্ত পরিবর্তনের ধরন ছাঁকনিগুলির সংঘর্ষ আছে: $1", + "rcfilters-typeofchange-conflicts-hideminor": "এই \"পরিবর্তনের ধরন\"-সংক্রান্ত ছাঁকনিটির সাথে \"অনুল্লেখ্য সম্পাদনা\" ছাঁকনিটির সংঘর্ষ আছে। কিছু নির্দিষ্ট ধরনের সম্পাদনা \"অনুল্লেখ্য\" হিসেবে চিহ্নিত করা সম্ভব নয়।", "rcnotefrom": "$2টা থেকে সংঘটিত পরিবর্তনগুলি (সর্বোচ্চ $1টি দেখানো হয়েছে)।", "rclistfrom": "$2, $3 তারিখের পর সংঘটিত নতুন পরিবর্তনগুলো দেখাও", "rcshowhideminor": "অনুল্লেখ্য পরিবর্তনগুলো $1", "rcshowhideminor-show": "দেখাও", - "rcshowhideminor-hide": "আড়াল করো", + "rcshowhideminor-hide": "লুকিয়ে রাখো", "rcshowhidebots": "বটগুলো $1", "rcshowhidebots-show": "দেখাও", - "rcshowhidebots-hide": "আড়াল করো", + "rcshowhidebots-hide": "লুকিয়ে রাখো", "rcshowhideliu": "নিবন্ধিত ব্যবহারকারীদের $1", "rcshowhideliu-show": "দেখাও", - "rcshowhideliu-hide": "আড়াল করো", + "rcshowhideliu-hide": "লুকিয়ে রাখো", "rcshowhideanons": "বেনামী ব্যবহারকারীদের $1", "rcshowhideanons-show": "দেখাও", - "rcshowhideanons-hide": "আড়াল করো", + "rcshowhideanons-hide": "লুকিয়ে রাখো", "rcshowhidepatr": "পরীক্ষিত সম্পাদনা $1", "rcshowhidepatr-show": "দেখাও", - "rcshowhidepatr-hide": "আড়াল করো", + "rcshowhidepatr-hide": "লুকিয়ে রাখো", "rcshowhidemine": "আমার সম্পাদনাগুলো $1", "rcshowhidemine-show": "দেখাও", - "rcshowhidemine-hide": "আড়াল করো", + "rcshowhidemine-hide": "লুকিয়ে রাখো", "rcshowhidecategorization": "পাতা শ্রেণীবদ্ধকরণ $1", "rcshowhidecategorization-show": "দেখাও", - "rcshowhidecategorization-hide": "আড়াল করো", + "rcshowhidecategorization-hide": "লুকিয়ে রাখো", "rclinks": "'''প্রদর্শনের ধরন'''
\n* বিগত ($2) দিনের শেষ ($1)টি পরিবর্তন দেখাও\n* $3", "diff": "পরিবর্তন", "hist": "ইতিহাস", - "hide": "দেখিও না", + "hide": "লুকিয়ে রাখো", "show": "দেখাও", "minoreditletter": "অ", "newpageletter": "ন", @@ -1405,7 +1421,7 @@ "rc-change-size-new": "পরিবর্তনের পর $1 {{PLURAL:$1|বাইট}}", "newsectionsummary": "/* $1 */ নতুন অনুচ্ছেদ", "rc-enhanced-expand": "বিস্তারিত দেখাও", - "rc-enhanced-hide": "বিস্তারিত লুকাও", + "rc-enhanced-hide": "বিস্তারিত লুকিয়ে রাখো", "rc-old-title": "মূলত \"$1\" হিসাবে তৈরী করা হয়েছিল", "recentchangeslinked": "সম্পর্কিত পরিবর্তন", "recentchangeslinked-feed": "সম্পর্কিত পরিবর্তন", @@ -1477,8 +1493,9 @@ "fileexists-shared-forbidden": "অংশীদারী ফাইল ভাণ্ডারে এই নামের একটি ফাইল ইতিমধ্যেই বিদ্যমান।\nআপনি যদি এখনো ফাইলটি আপলোড করতে চান, তবে অনুগ্রহপূর্বক পেছনে গিয়ে একটি নতুন নামে ফাইলটি আপলোড করুন।[[File:$1|thumb|center|$1]]", "fileexists-no-change": "আপলোডটি [[:$1]]-এর বর্তমান সংস্করণের হুবহু প্রতিলিপি।", "fileexists-duplicate-version": "এই আপলোডটি [[:$1]]-এর একটি {{PLURAL:$2|পুরনো সংস্করণের}} হুবহু প্রতিলিপি।", - "file-exists-duplicate": "এই ফাইলটি নিচের {{PLURAL:$1|ফাইল|ফাইলগুলির}} অনুলিপি:", + "file-exists-duplicate": "এই ফাইলটি নিচের {{PLURAL:$1|ফাইলটির|ফাইলগুলির}} অবিকল প্রতিলিপি:", "file-deleted-duplicate": "এই ফাইলটির মত একটি ফাইল ([[:$1]]) পূর্বে অপসারণ করা হয়েছে।\nপুনরায় আপলোড করার পূর্বে আপনার উচিত আগের ফাইলটির অপসারণের কারণ জানা।", + "file-deleted-duplicate-notitle": "এই ফাইলটির মত হুবহু একটি ফাইল আগেই মুছে ফেলা হয়েছে, এবং শিরোনামটিও অবলোপন করা হয়েছে। \nএই ফাইলটিকে পুনরায় আপলোড করার আগে এমন কাউকে জিজ্ঞাসা করে নিন যিনি অবলুপ্ত ফাইল উপাত্তগুলি দেখার ক্ষমতা রাখেন বলে এই পরিস্থিতিটি পর্যালোচনা করতে পারেন।", "uploadwarning": "আপলোড সতর্কবাণী", "uploadwarning-text": "অনুগ্রহ করে নিচে ফাইলের বর্ণনা পরিবর্তন করে আবার চেষ্টা করুন।", "savefile": "সংরক্ষণ", @@ -1487,9 +1504,18 @@ "uploaddisabledtext": "ফাইল আপলোড নিষ্ক্রিয়।", "php-uploaddisabledtext": "পিএইপি -এ ফাইল আপলোড নিস্ক্রিয় রয়েছে।\nঅনুগ্রহ করে file_uploads সেটিং পরীক্ষা করুন।", "uploadscripted": "এই ফাইলে এমন HTML বা স্ক্রিপ্ট কোড আছে যা একটি ওয়েব ব্রাউজার ভুল বুঝতে পারে।", + "upload-scripted-pi-callback": "এক্সএমএল-স্টাইলশিট প্রক্রিয়াকরণ নির্দেশনাবিশিষ্ট কোন ফাইল আপলোড করা সম্ভব নয়।", "uploaded-script-svg": "আপলোডকৃত SVG ফাইলে স্ক্রিপ্টযোগ্য উপাদান \"$1\" পাওয়া গেছে।", "uploaded-hostile-svg": "আপলোড করা SVG ফাইলের শৈলী উপাদানে অনিরাপদ সিএসএস পাওয়া গেছে।", + "uploaded-event-handler-on-svg": "এসভিজি ফাইলের জন্য $1=\"$2\" ইভেন্ট-হ্যান্ডলার বৈশিষ্ট্যটি নির্ধারণ করা অনুমোদিত নয়।", + "uploaded-href-attribute-svg": "এসভিজি ফাইলের href বৈশিষ্ট্যগুলির জন্য কেবলমাত্র http:// বা https:// লক্ষ্যগুলি অনুমোদিত; কিন্তু <$1 $2=\"$3\"> পাওয়া গেছে।", "uploaded-href-unsafe-target-svg": "অনিরাপদ উপাত্তে href পাওয়া গেছে: আপলোডকৃত SVG ফাইলে URI লক্ষ্য ছিল <$1 $2=\"$3\">।", + "uploaded-animate-svg": "\"animate\" ট্যাগটি পাওয়া গেছে যা আপলোডকৃত এসভিজি ফাইলের <$1 $2=\"$3\"> - এই \"from\" অ্যাট্রিবিউটটি ব্যবহার করে href পরিবর্তন করতে পারে।", + "uploaded-setting-event-handler-svg": "ইভেন্ট-হ্যান্ডলার অ্যাট্রিবিউট নির্ধারণ করতে বাধা দেওয়া হয়েছে। আপলোডকৃত এসভিজি ফাইলে <$1 $2=\"$3\"> খুঁজে পাওয়া গেছে।", + "uploaded-setting-href-svg": "\"set\" ট্যাগটি ব্যবহার করে \"href\" অ্যাট্রিবিউট পিতৃ-উপাদানে যোগ করতে বাধাদান করা হয়েছে।", + "uploaded-wrong-setting-svg": "\"set\" ট্যাগটি ব্যবহার করে যেকোন অ্যাট্রিবিউটে কোন রিমোট/ডাটা/স্ক্রিপ্ট লক্ষ্য যোগ করতে বাধা দেওয়া হয়েছে। আপলোডকৃত এসভিজি ফাইলে <set to=\"$1\"> খুঁজে পাওয়া গেছে।", + "uploaded-setting-handler-svg": "যে এসভিজি ফাইল রিমোট/ডাটা/স্ক্রিপ্ট দিয়ে \"handler\" অ্যাট্রিবিউটটি নির্ধারণ করে, সেটিকে বাধা দেওয়া হয়েছে। আপলোডকৃত এসভিজি ফাইলে $1=\"$2\" খুঁজে পাওয়া গেছে।", + "uploaded-remote-url-svg": "যে এসভিজি ফাইল রিমোট ইউআরএল দিয়ে যেকোন শৈলী অ্যাট্রিবিউটট নির্ধারণ করে, সেটিকে বাধা দেওয়া হয়েছে। আপলোডকৃত এসভিজি ফাইলে $1=\"$2\" খুঁজে পাওয়া গেছে।", "uploaded-image-filter-svg": "আপলোডকৃত SVG ফাইলে URL: <$1 $2=\"$3\"> সহ ছবি পরিশোধক পাওয়া গেছে।", "uploadscriptednamespace": "এই SVG ফাইলে অবৈধ নামস্থান \"$1\" রয়েছে", "uploadinvalidxml": "আপলোডকৃত ফাইলে XML পার্স করা যাবে না।", @@ -1501,9 +1527,10 @@ "destfilename": "লক্ষ্য ফাইলের নাম:", "upload-maxfilesize": "ফাইলের সর্বোচ্চ আকার: $1", "upload-description": "ফাইলের বর্ণনা", - "upload-options": "আপলোড-অপশন", + "upload-options": "আপলোডের পছন্দগুলি", "watchthisupload": "এই ফাইলটি নজরে রাখুন", "filewasdeleted": "এই নামের একটি ফাইল পূর্বে আপলোড করা হয়েছিল এবং তারপর মুছে ফেলা হয়েছিল। আপনি ফাইলটি আবার আপলোড করার আগে $1 পরীক্ষা করে দেখুন।", + "filename-thumb-name": "এটিকে একটি ক্ষুদ্র প্রাকপ্রদর্শনকারী চিত্রের (thumbnail) শিরোনাম বলে মনে হচ্ছে। দয়া করে একই উইকিতে ক্ষুদ্র প্রাকপ্রদর্শনকারী চিত্র পুনরায় আপলোড করবেন না। অন্যথায় অনুগ্রহ করে ফাইলের নামটি ঠিক করুন যাতে এটির অর্থ আরও বেশি বোধগম্য হয়, এবং যাতে এটির সাথে কোন ক্ষুদ্র প্রাকপ্রদর্শনকারী চিত্রের উপসর্গ না থাকে।", "filename-bad-prefix": "আপনি যে ফাইলটি আপলোড করছেন, তার নাম '''\"$1\"''' দিয়ে শুরু হয়েছে। এ ধরনের নাম সাধারণত ডিজিটাল ক্যামেরাগুলি স্বয়ংক্রিয়ভাবে দিয়ে থাকে এবং এগুলি ব্যাখ্যামূলক নয়। অনুগ্রহ করে আপনার ফাইলের জন্য আরও ব্যাখ্যামূলক একটি নাম পছন্দ করুন।", "upload-proto-error": "ভুল প্রোটোকল", "upload-proto-error-text": "দূরবর্তী আপলোডের জন্য URLগুলি http:// বা ftp:// দিয়ে শুরু হওয়া আবশ্যক।", @@ -1514,6 +1541,8 @@ "upload-too-many-redirects": "এই ইউআরএলটিতে অনেক বেশি পুনর্নির্দেশনা রয়েছে", "upload-http-error": "একটি এইচটিটিপি ত্রুটি দেখা দিয়েছে: $1", "upload-copy-upload-invalid-domain": "এই ডোমেইন থেকে আপলোড সম্ভব নয়।", + "upload-foreign-cant-upload": "এই উইকি থেকে অনুরোধকৃত বহিঃস্থ ফাইল সংগ্রহশালাতে ফাইল আপলোড করার ক্ষমতা পূর্বসংজ্ঞায়িত নেই।", + "upload-foreign-cant-load-config": "বহিঃস্থ ফাইল সংগ্রহশালাতে ফাইল আপলোড করার জন্য পূর্বনির্ধারিত সংজ্ঞাগুলি লোড করা ব্যর্থ হয়েছে।", "upload-dialog-disabled": "এই ডায়ালগ ব্যবহার করে ফাইল আপলোড করা এই উইকিতে নিষ্ক্রিয় করা হয়েছে।", "upload-dialog-title": "ফাইল আপলোড করুন", "upload-dialog-button-cancel": "বাতিল", @@ -1532,7 +1561,10 @@ "upload-form-label-infoform-categories": "বিষয়শ্রেণীসমূহ", "upload-form-label-infoform-date": "তারিখ", "upload-form-label-own-work-message-generic-local": "আমি নিশ্চিত করছি যে আমি {{SITENAME}}-এর পরিষেবা এবং লাইসেন্সকরণ নীতির শর্তাবলী অনুসরণ করে এই ফাইল আপলোড করছি।", + "upload-form-label-not-own-work-message-generic-local": "{{SITENAME}}-এর নীতিমালা অনুযায়ী যদি আপনি এই ফাইলটি আপলোড করতে না পারেন, অনুগ্রহ করে এই কথোপকথনটি বন্ধ করুন এবং অন্য একটি পদ্ধতিতে চেষ্টা করুন।", "upload-form-label-not-own-work-local-generic-local": "এছাড়াও আপনি [[Special:Upload|ডিফল্ট আপলোডের পাতা]] চেষ্টা করতে পারেন।", + "upload-form-label-own-work-message-generic-foreign": "আমি বুঝেছি যে আমি একটি শেয়ারকৃত সংগ্রহশালায় এই ফাইলটি আপলোড করতে যাচ্ছি। আমি নিশ্চিত করছি যে আমি সেখানকার সেবা এবং লাইসেন্সের নীতিমালা মেনে কাজটি করছি।", + "upload-form-label-not-own-work-message-generic-foreign": "যদি আপনি শেয়ারকৃত সংগ্রহশালার নীতিমালা মেনে এই ফাইলটি আপলোড করতে না পারেন, তাহলে অনুগ্রহ করে এই কথোপকথনটি বন্ধ করুন এবং অন্য একটি উপায়ে চেষ্টা করুন।", "upload-form-label-not-own-work-local-generic-foreign": "এছাড়াও আপনি [[Special:Upload|{{SITENAME}}-এর আপলোডের পাতা]] ব্যবহার করার চেষ্টা করতে পারেন, যদি এই ফাইলটি তাদের নীতিমালা অধীনে সেখানে আপলোড করা যায়।", "backend-fail-stream": "\"$1\" ফাইলের স্ট্রিম দেখানো যাচ্ছে না।", "backend-fail-backup": "\"$1\" ফাইলের ব্যাকআপ তৈরী সম্ভব নয়।", @@ -1544,7 +1576,7 @@ "backend-fail-describe": "\"$1\" ফাইলের মেটাডাটা পরিবর্তন সম্ভব নয়।", "backend-fail-alreadyexists": "\"$1\" নামের একটি ফাইল আগে থেকেই রয়েছে।", "backend-fail-store": "\"$2\"-এ \"$1\" ফাইলটি সংরক্ষন করা সম্ভব নয়।", - "backend-fail-copy": "\"$1\" ফাইলটি \"$2\"-তে অনুলিপি করা সম্ভব নয়।", + "backend-fail-copy": "\"$1\" ফাইলটি \"$2\"-এ প্রতিলিপি করা সম্ভব নয়।", "backend-fail-move": "\"$2\"-এ \"$1\" ফাইলটি স্থানান্তর করা সম্ভব নয়।", "backend-fail-opentemp": "অস্থায়ী ফাইলটি খোলা যাবে না।", "backend-fail-writetemp": "অস্থায়ী ফাইলটিতে লেখা যাচ্ছে না।", @@ -1561,15 +1593,15 @@ "backend-fail-usable": "\"$1\" ফাইলটিতে লেখা অথবা ফাইলটি পড়া যাচ্ছে না, কারণ সঠিক অনুমতি নেই অথবা ডিরেক্টরীটি নেই।", "filejournal-fail-dbconnect": "\"$1\" স্টোরেজ ব্যাকেন্ডের জার্নাল ডাটাবেজের সাথে যুক্ত হওয়া যাচ্ছে না।", "filejournal-fail-dbquery": "\"$1\" স্টোরেজ ব্যাকেন্ডের জার্নাল ডাটাবেজ হালনাগাদ করা যাচ্ছে না।", - "lockmanager-notlocked": "\"$1\" আনলক করা যাচ্ছে না; এটি লক করা রয়েছে।", + "lockmanager-notlocked": "\"$1\" খোলা যায়নি; এটিকে অবরুদ্ধ করা হয়নি।", "lockmanager-fail-closelock": "\"$1\" ফাইলটি লক করা তাই বন্ধ করা যাচ্ছে না।", - "lockmanager-fail-deletelock": "\"$1\" লক করা ফাইলটি অপসারণ সম্ভব নয়।", + "lockmanager-fail-deletelock": "\"$1\" অবরোধনির্দেশক ফাইলটি অপসারণ সম্ভব নয়।", "lockmanager-fail-acquirelock": "\"$1\" লক করা ফাইল খুজে পাওয়া যাচ্ছে না।", - "lockmanager-fail-openlock": "\"$1\" লক করা ফাইলটি খোলা সম্ভব নয়।", + "lockmanager-fail-openlock": "\"$1\" এই অবরোধনির্দেশক ফাইলটি খোলা সম্ভব নয়।", "lockmanager-fail-releaselock": "\"$1\" লক করা ফাইলটি ছাড়া যাচ্ছে না।", - "lockmanager-fail-db-bucket": "$1 এর লক করা ডাটাবেজের সাথে যোগাযোগ করা যাচ্ছে না।", + "lockmanager-fail-db-bucket": "$1 বাকেটটিতে যথেষ্ট সংখ্যক অবরোধ ডাটাবেজের সাথে যোগাযোগ করা যাচ্ছে না।", "lockmanager-fail-db-release": "$1 ডাটাবেজের লক খোলা যাচ্ছে না।", - "lockmanager-fail-svr-acquire": "$1 সার্ভারের লক পাওয়া যাচ্ছে না।", + "lockmanager-fail-svr-acquire": "$1 সার্ভারে তালা পাওয়া যায়নি।", "lockmanager-fail-svr-release": "$1 ডাটাবেজের লক খোলা যাচ্ছে না।", "zip-file-open-error": "ফাইলটির জিপ পরীক্ষা করার সময় একটি ত্রুটি দেখা দিয়েছে।", "zip-wrong-format": "চিহ্নিত ফাইলটি কোনো জিপ ফাইল নয়।", @@ -1609,7 +1641,7 @@ "license": "লাইসেন্সকরণ:", "license-header": "লাইসেন্স প্রদান", "nolicense": "কিছুই নির্বাচন করা হয়নি", - "licenses-edit": "লাইসেন্স অপশন সম্পাদনা করুন", + "licenses-edit": "লাইসেন্স-সংক্রান্ত পছন্দগুলি সম্পাদনা করুন", "license-nopreview": "(প্রাকদর্শন লভ্য নয়)", "upload_source_url": " (আপনি একটি বৈধ, উন্মুক্ত URL থেকে ফাইল চয়ন করেছেন)", "upload_source_file": "(আপনার কম্পিউটারের একটি ফাইল)", @@ -1654,7 +1686,7 @@ "duplicatesoffile": "নিচের {{PLURAL:$1|ফাইলটি|$1 ফাইলগুলো}} এই ফাইলের প্রতিলিপি ([[Special:FileDuplicateSearch/$2|বিস্তারিত দেখুন]]):", "sharedupload": "এই ফাইলটি $1 থেকে নেওয়া হয়েছে এবং এবং অন্যান্য প্রকল্পেও ব্যবহৃত হতে পারে।", "sharedupload-desc-there": "এই ফাইলটি $1 থেকে দেখানো হচ্ছে এবং হয়তো এটি অন্যান্য প্রকল্পতেও ব্যবহৃত হয়েছে।\nঅনুগ্রহ করে বিস্তারিত জানার জন্য [$2 ফাইলটির বর্ণনা পাতা] দেখুন।", - "sharedupload-desc-here": "এই ফাইলটি $1 থেকে এবং অন্যান্য প্রকল্পে ব্যবহৃত হতে পারে।\nএর [$2 ফাইল বিবরণ পৃষ্ঠা] উপর বর্ণনা নিম্নে দেখানো হলো।", + "sharedupload-desc-here": "এই ফাইলটি $1 থেকে আগত এবং অন্যান্য প্রকল্পে ব্যবহৃত হতে পারে।\nসেখানে থাকা [$2 ফাইলটির বিবরণ পাতার] বিবরণ নিচে দেখানো হলো।", "sharedupload-desc-edit": "এই ফাইলটি $1 থেকে এবং অন্যান্য প্রকল্পে ব্যবহৃত হতে পারে।\n[$2 ফাইলটির বর্ণনা পাতা] থেকে আপনি ফাইলটি বর্ণনা সম্পাদনা করতে পারেন।", "sharedupload-desc-create": "This file is from $1 and may be used by other projects.\nMaybe you want to edit the description on its [$2 file description page] there.", "filepage-nofile": "এই নামের কোন ফাইল নেই।", @@ -1672,7 +1704,7 @@ "filerevert-submit": "ফেরত যাওয়া হোক", "filerevert-success": "'''[[Media:$1|$1]]''' ফাইলটি [$3, $2-এর $4 সংস্করণে] ফেরত নেওয়া হয়েছে।", "filerevert-badversion": "প্রদত্ত তারিখ ও সময়ের জন্য এই ফাইলটির কোন স্থানীয় সংস্করণ নেই।", - "filerevert-identical": "নথিটির বা ফাইলটির বর্তমান সংস্করণের সাথে নির্বাচিত সংস্করণটির ইতিমধ্যেই হুবহু মিল।", + "filerevert-identical": "ফাইলটির বর্তমান সংস্করণের সাথে নির্বাচিত সংস্করণটির হুবহু মিল রয়েছে।", "filedelete": "$1 মুছে ফেলা হোক", "filedelete-legend": "ফাইল মুছে ফেলা হোক", "filedelete-intro": "আপনি '''[[Media:$1|$1]]''' ফাইলটি এর সমস্ত ইতিহাসহ অপসারণ করছেন।", @@ -1685,7 +1717,7 @@ "filedelete-nofile-old": "নির্দেশিত বৈশিষ্ট্যগুলির জন্য '''$1'''-এর কোন আর্কাইভ সংস্করণ নেই।", "filedelete-otherreason": "অন্য/বাড়তি কারণ:", "filedelete-reason-otherlist": "অন্য কারণ", - "filedelete-reason-dropdown": "*সাধারণ অপসারণের কারণসমূহ\n** কপিরাইট লঙ্ঘন\n** ফাইলের অনুলিপি", + "filedelete-reason-dropdown": "*অপসারণের সাধারণ কারণসমূহ\n** কপিরাইট লঙ্ঘন\n** অবিকল প্রতিলিপিকৃত ফাইল", "filedelete-edit-reasonlist": "অপসারণের কারণ সম্পাদনা", "filedelete-maintenance": "রক্ষণাবেক্ষণের সময় ফাইল অপরাসণ এবং পুনরুদ্ধার সাময়িকভাবে নিস্ক্রিয় রয়েছে।", "filedelete-maintenance-title": "ফাইলটি অপসারণ করা সম্ভব নয়", @@ -1725,7 +1757,7 @@ "statistics-users": "নিবন্ধিত [[Special:ListUsers|ব্যবহারকারী]]", "statistics-users-active": "সক্রিয় ব্যবহারকারী", "statistics-users-active-desc": "ব্যবহারকারী যারা বিগত {{PLURAL:$1|দিনে|$1 দিনে}} একটি কাজ করেছেন।", - "pageswithprop": "পাতার উপাদান সম্বলিত পৃষ্ঠাসমূহ", + "pageswithprop": "পাতার বৈশিষ্ট্য সম্বলিত পাতাসমূহ", "pageswithprop-legend": "পাতার উপাদান সম্বলিত পৃষ্ঠাসমূহ", "pageswithprop-text": "একটি নির্দিষ্ট পাতার বৈশিষ্ট রয়েছে এমন পাতাসমূহের তালিকা।", "pageswithprop-prop": "বৈশিষ্টের নাম:", @@ -1762,13 +1794,16 @@ "uncategorizedcategories": "যেসব বিষয়শ্রেণীর শ্রেণীকরণ প্রয়োজন", "uncategorizedimages": "যেসব ফাইলের শ্রেণীকরণ প্রয়োজন", "uncategorizedtemplates": "যেসব টেমপ্লেটের বিষয়শ্রেণী নেই", + "uncategorized-categories-exceptionlist": "# এখানে এমন কিছু বিষয়শ্রেণীর একটি তালিকা থাকবে, যেগুলি Special:UncategorizedCategories পাতায় উল্লেখ করা উচিত নয়। প্রতি লাইনে একটি করে থাকবে, প্রতিটি লাইন \"*\" অক্ষর দিয়ে শুরু করতে হবে। যেসব লাইন অন্য কোন অক্ষর (এমনকি ফাঁকা স্থান-ও) দিয়ে শুরু হলে সেটিকে অগ্রাহ্য করা হবে। মন্তব্যের জন্য \"#\" ব্যবহার করুন।", "unusedcategories": "অব্যবহৃত বিষয়শ্রেণীসমূহ", "unusedimages": "অব্যবহৃত ফাইলসমূহ", "wantedcategories": "বাঞ্ছনীয় বিষয়শ্রেণীগুলি", "wantedpages": "বাঞ্ছনীয় পাতাগুলি", + "wantedpages-summary": "অন্য পাতাগুলি থেকে সবচেয়ে বেশি সংযোগ দেওয়া কিন্তু অবর্তমান পাতাগুলির তালিকা। যেসব অবর্তমান পাতাতে কেবলমাত্র পুনর্নির্দেশ থেকে সংযোগ দেওয়া আছে, সেগুলি এই তালিকাতে অন্তর্ভুক্ত নয়। যেসব অবর্তমান পাতাতে পুনর্নির্দেশগুলি থেকে সংযোগ দেওয়া আছে, সেগুলির তালিকার জন্য [[{{#special:BrokenRedirects}}|অকার্যকর পুনর্নির্দেশনাগুলির তালিকা]] দেখুন।", "wantedpages-badtitle": "ফলাফলে ভুল শিরনাম: $1", "wantedfiles": "আবশ্যিক ফাইলসমূহ", "wantedfiletext-cat": "নিচের ফাইলগুলো ব্যবহৃত হচ্ছে কিন্তু এগুলো অপসারিত হয়েছে। অন্যান্য রিপোজিটরী থেকে ব্যবহৃত ফাইলগুলো এভাবে প্রদর্শিত হতে পারে। এই ধরনের কোন ফাইল খুজে পেলে অপসারণ করুন। এছাড়া অপসারিত হয়েছে এমন ছবির সংযোগ রয়েছে এমন পাতাসমূহের লিংক পাওয়া যাবে এখানে [[:$1]]।", + "wantedfiletext-cat-noforeign": "নিম্নোক্ত ফাইলগুলি ব্যবহৃত হচ্ছে কিন্তু এগুলির অস্তিত্ব নেই। এছাড়া, যেসব পাতাতে অস্তিত্বহীন ফাইল গ্রথিত আছে, সেগুলির তালিকা [[:$1]]-এ পাওয়া যাবে।", "wantedfiletext-nocat": "নিচের ফাইলগুলো ব্যবহৃত হচ্ছে কিন্তু এগুলো অপসারিত হয়েছে। অন্যান্য রিপোজিটরী থেকে ব্যবহৃত ফাইলগুলো এভাবে প্রদর্শিত হতে পারে। এই ধরনের ভূলগুলো শিঘ্রই অপসারিত হবে।", "wantedfiletext-nocat-noforeign": "নিম্নলিখিত ফাইলসমূহ ব্যবহৃত হয়েছে কিন্তু এর অস্তিত্ব নেই।", "wantedtemplates": "আবশ্যিক টেমপ্লেটসমূহ", @@ -1791,7 +1826,7 @@ "protectedpages-indef": "শুধুমাত্র অসীম সুরক্ষা", "protectedpages-summary": "এই পাতাটি বর্তমানে সুরক্ষিত থাকা বিদ্যমান পাতগুলির তালিকা। সৃষ্টি করা থেকে সুরক্ষিত রয়েছে এমন পাতার তালিকার জন্য, [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] দেখুন।", "protectedpages-cascade": "শুধুমাত্র প্রপাতাকার সুরক্ষা", - "protectedpages-noredirect": "পুনর্নির্দেশনাগুলো লুকাও", + "protectedpages-noredirect": "পুনর্নির্দেশনাগুলো লুকান", "protectedpagesempty": "কোন পাতা বর্তমানে এই প্যারামিটারগুলিসহ সুরক্ষিত নয়।", "protectedpages-timestamp": "সময়বার্তা", "protectedpages-page": "পাতা", @@ -1833,6 +1868,7 @@ "apisandbox": "এপিআই খেলাঘর", "apisandbox-jsonly": "API খেলাঘর ব্যবহার করতে জাভাস্ক্রিপ্ট প্রয়োজন।", "apisandbox-api-disabled": "এপিআই এই সাইটে নিষ্ক্রিয় করা আছে।", + "apisandbox-intro": "মিডিয়াউইকি ওয়েব সেবা এপিআই নিয়ে পরীক্ষানিরীক্ষা চালাতে এই পাতাটি ব্যবহার করুন। \nএপিআই ব্যবহারের উপর বিস্তারিত জানতে [[mw:API:Main page|এপিআই নথিপত্র]] দেখুন।\nউদাহরণ: [https://www.mediawiki.org/wiki/API#A_simple_example প্রধান পাতার বিষয়বস্তু পান]। আরও উদাহরণ দেখার জন্য একটি কর্ম নির্বাচন করুন।\n\nলক্ষ করুন যে যদিও এটি একটি খেলাঘর, তা সত্ত্বেও এই পাতায় করা আপনার সম্পাদনাগুলি উইকিতে পরিবর্তন সাধন করতে পারে।", "apisandbox-fullscreen": "প্যানেল সম্প্রসারণ করুন", "apisandbox-fullscreen-tooltip": "ব্রাউজারের উইন্ডো পূরণ করতে খেলাঘরের প্যানেল প্রসারিত করুন।", "apisandbox-unfullscreen": "পাতা দেখাও", @@ -1868,6 +1904,7 @@ "apisandbox-alert-field": "এই ক্ষেত্রের মান বৈধ নয়।", "apisandbox-continue": "অব্যাহত", "apisandbox-continue-clear": "পরিস্কার", + "apisandbox-continue-help": "{{int:apisandbox-continue}} সর্বশেষ অনুরোধটি [https://www.mediawiki.org/wiki/API:Query#Continuing_queries চলমান] রাখবে; {{int:apisandbox-continue-clear}} চলমানতা-সংক্রান্ত পরামিতিগুলি খালি করবে।", "apisandbox-param-limit": "সর্বোচ্চ সীমা ব্যবহার করতে max লিখুন।", "apisandbox-multivalue-all-namespaces": "$1 (সব নামস্থান)", "apisandbox-multivalue-all-values": "$1 (সব মান)", @@ -1884,7 +1921,7 @@ "magiclink-tracking-isbn": "আইএসবিএন জাদু সংযোগ ব্যবহার করা পাতা", "magiclink-tracking-isbn-desc": "এই পাতাটি আইএসবিএন যাদু সংযোগ ব্যবহার করে। কিভাবে মাইগ্রেট করবেন জানতে [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] দেখুন।", "specialloguserlabel": "সম্পাদক:", - "speciallogtitlelabel": "লক্ষ্য (শিরোনাম বা {{ns:user}}:ব্যবহারকারীর জন্য ব্যবহারকারী নাম):", + "speciallogtitlelabel": "লক্ষ্য (ব্যবহারকারীর জন্য শিরোনাম বা {{ns:user}}:ব্যবহারকারী নাম):", "log": "লগগুলি", "logeventslist-submit": "দেখাও", "all-logs-page": "সব প্রকাশ্য লগ", @@ -1908,7 +1945,7 @@ "allpagesprefix": "এই উপসর্গবিশিষ্ট পাতাগুলো দেখাও:", "allpagesbadtitle": "প্রদত্ত পাতার শিরোনামটি অবৈধ ছিল অথবা এটিতে কোন আন্তঃভাষা বা আন্তঃউইকি উপসর্গ ছিল। এটিতে এক বা একাধিক ক্যারেক্টার থাকতে পারে যা শিরোনামে ব্যবহার করা সম্ভব নয়।", "allpages-bad-ns": "{{SITENAME}}-এ \"$1\" নামের কোন নামস্থান নেই।", - "allpages-hide-redirects": "পুনর্নির্দেশনাগুলো লুকাও", + "allpages-hide-redirects": "পুনর্নির্দেশনাগুলো লুকান", "cachedspecial-viewing-cached-ttl": "আপনি এই পৃষ্ঠায় একটি ক্যাশে সংস্করণ দেখছেন, যা $1 দিনের পুরানো হতে পারে।", "cachedspecial-viewing-cached-ts": "আপনি এই পৃষ্ঠায় একটি ক্যাশে সংস্করণ দেখছেন, যা সম্পূর্ণরূপে হালনাগাদকৃত নাও হতে পারে।", "cachedspecial-refresh-now": "সাম্প্রতিকগুলো প্রদর্শন করো।", @@ -1938,9 +1975,9 @@ "activeusers-excludegroups": "এই দলভুক্ত ব্যবহারকারী বাদ দিন:", "activeusers-noresult": "কোনো ব্যবহারকারী পাওয়া যায়নি।", "activeusers-submit": "সক্রিয় ব্যবহারকারী প্রদর্শন করুন", - "listgrouprights": "দলগত ব্যবহারকারী অধিকার", - "listgrouprights-summary": "এই উইকির ব্যবহারকারীদের একটি গ্রুপগুলোর তালিকা দেখানো হচ্ছে, সাথে গ্রুপের কার্যপরিধিও উল্লেখ করা হয়েছে।\nনির্দিষ্ট গ্রুপের কার্যপরিধি সম্পর্কে জানতে [[{{MediaWiki:Listgrouprights-helppage}}|অতিরিক্ত তথ্য]] দেখুন।", - "listgrouprights-key": "লিজেন্ড:\n* অনুমোদিত অধিকার\n* বাধাপ্রাপ্ত অধিকার", + "listgrouprights": "ব্যবহারকারীর দলগত অধিকার", + "listgrouprights-summary": "এই উইকিতে সংজ্ঞায়িত ব্যবহারকারী দলগুলির একটি তালিকা নিচে দেখানো হচ্ছে, সাথে দলের সাথে সংশ্লিষ্ট অধিকারসমূহও উল্লেখ করা হয়েছে।\nনির্দিষ্ট ব্যক্তির অধিকারগুলি সম্পর্কে [[{{MediaWiki:Listgrouprights-helppage}}|অতিরিক্ত তথ্য]] থাকতে পারে।", + "listgrouprights-key": "ব্যাখ্যা:\n* অনুমোদিত অধিকার\n* প্রত্যাহারকৃত অধিকার", "listgrouprights-group": "দল", "listgrouprights-rights": "অধিকারসমূহ", "listgrouprights-helppage": "Help:দলের অধিকার", @@ -1955,18 +1992,23 @@ "listgrouprights-removegroup-self-all": "নিজের অ্যাকাউন্ট থেকে সকল দল অপসারণ", "listgrouprights-namespaceprotection-header": "নামস্থান নিষেধাজ্ঞাসমূহ", "listgrouprights-namespaceprotection-namespace": "নামস্থান", - "listgrouprights-namespaceprotection-restrictedto": "অধিকার যা ব্যবহারকারীকে সম্পাদনা করার অনুমতি দেয়", + "listgrouprights-namespaceprotection-restrictedto": "এই অধিকারটি ব্যবহারকারীকে যা সম্পাদনা করার অনুমতি দেয়", "listgrants": "কার্যভার", "listgrants-summary": "নিম্নে ব্যবহারকারী অধিকারের সাথে যুক্ত প্রবেশাধিকারসহ তাদের কার্যভারের একটি তালিকা দেয়া হয়েছে। ব্যবহারকারীরা তাদের অ্যাকাউন্ট ব্যবহার করতে অ্যাপ্লিকেশনকে অনুমোদন দিতে পারে, কিন্তু কার্যভারের উপর ভিত্তি করে সীমিত অনুমতি ব্যবহারকারীরা অ্যাপ্লিকেশনকে দিতে পারবেন। মূলত, একটি অ্যাপ্লিকেশন একজন ব্যবহারকারীর দেয়া অধিকারের অতিরিক্ত অধিকার ব্যবহার করতে পারবে না। পৃথক অধিকার সম্পর্কে [[{{MediaWiki:Listgrouprights-helppage}}|অতিরিক্ত তথ্য]] দেখুন।", "listgrants-grant": "কার্যভার", "listgrants-rights": "অধিকারসমূহ", "trackingcategories": "বিষয়শ্রেণীসমূহ অনুসরণ করা হচ্ছে", + "trackingcategories-summary": "এই পাতাতে মিডিয়াউইকি সফটওয়্যার দ্বারা স্বয়ংক্রিয়ভাবে সৃষ্ট অনুসরণকারী বিষয়শ্রেণীগুলির তালিকা আছে। সংশ্লিষ্ট সিস্টেম বার্তাগুলিকে {{ns:8}} নামস্থানে পরিবর্তন করে এগুলির নাম পরিবর্তন করা যাবে।", "trackingcategories-msg": "বিষয়শ্রেণী অনুসরণ করা হচ্ছে", "trackingcategories-name": "বার্তা নাম", "trackingcategories-desc": "বিষয়শ্রেণী অন্তর্ভুক্তির মানদণ্ড", "restricted-displaytitle-ignored": "উপেক্ষিত প্রদর্শন শিরোনামসহ পাতা", "restricted-displaytitle-ignored-desc": "পাতাটি একটি {{DISPLAYTITLE}} উপেক্ষা করেছে কারণ এটা পাতাটির আসল শিরোনামের সাথে সমতুল্য নয়।", "noindex-category-desc": "এই পাতাটি রোবটদের দ্বারা সূচীভুক্ত করা হয়নি কারণ এটিতে __NOINDEX__ জাদুশব্দটি আছে এবং এটি এমন একটি নামস্থানে আছে যেখানে এই ধরনের চিহ্নিতকরণ অনুমোদিত।", + "index-category-desc": "এই পাতাটিতে একটি __INDEX__ আছে (এবং পাতাটি এমন একটি নামস্থানে অবস্থিত যেখানে এই ধরনের চিহ্নিতকরণ সম্ভব) এবং এ কারণে রোবটগুলি এ পাতাটিকে তাদের সূচীভূক্ত করে, যদিও সাধারণত এমনটি হবার কথা নয়।", + "post-expand-template-inclusion-category-desc": "সবগুলি টেমপ্লেট প্রসারিত করলে পাতার আকার $wgMaxArticleSize-এর চেয়ে বেশি হয়ে যায়, তাই কিছু টেমপ্লেট প্রসারিত করা হয়নি।", + "post-expand-template-argument-category-desc": "একটি টেমপ্লেট আর্গুমেন্ট সম্প্রসারণ করার পর ({{{Foo}}} এরকম করে তিনটি দ্বিতীয় বন্ধনীতে আবদ্ধ কোনওকিছু) পাতাটি $wgMaxArticleSize-এর চেয়ে বেশি বড় হয়ে গেছে।", + "expensive-parserfunction-category-desc": "পাতাটি অতিরিক্ত সংখ্যক ব্যয়বহুল পার্সার ফাংশন (#ifexist-এর মত) ব্যবহার করছে। [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] দেখুন।", "broken-file-category-desc": "এই পাতায় একটি ভাঙ্গা ফাইলের লিঙ্ক রয়েছে (একটি ফাইল এম্বেড করার জন্য একটি লিঙ্ক যখন ফাইলটির অস্তিত্ব নেই)", "hidden-category-category-desc": "এই বিষয়শ্রেণীটির পাতার বিষয়বস্তুর মধ্যে __HIDDENCAT__ উপস্থিত রয়েছে, যা পূর্ব-নির্ধারিতভাবে পাতার বিষয়শ্রেণীর সংযোগে দেখায় না।", "trackingcategories-nodesc": "কোন বর্ণনা নেই।", @@ -1993,8 +2035,8 @@ "emailsubject": "বিষয়:", "emailmessage": "বার্তা:", "emailsend": "প্রেরণ করো", - "emailccme": "আমার বার্তার একটি অনুলিপি আমাকে ই-মেইল করা হোক।", - "emailccsubject": "আপনার বার্তার অনুলিপি $1-কে: $2", + "emailccme": "আমার বার্তার একটি প্রতিলিপি আমাকে ইমেইল করা হোক।", + "emailccsubject": "$1-কে আপনার বার্তার প্রতিলিপি: $2", "emailsent": "ই-মেইল প্রেরণ করা হয়েছে", "emailsenttext": "আপনার ই-মেইল বার্তা প্রেরণ করা হয়েছে।", "emailuserfooter": "এই ইমেইলটি {{SITENAME}} সাইটের \"{{int:emailuser}}\" সুবিধা ব্যবহার করে $1-এর পক্ষ থেকে {{GENDER:$2|$2}}-এর নিকট {{GENDER:$1|পাঠানো হয়েছে}}। যদি {{GENDER:$2|আপনি}} এই ইমেইলটির উত্তর দেন, তাহলে {{GENDER:$2|আপনার}} উত্তরের ইমেইলটি সরাসরি {{GENDER:$1|মূল প্রেরকের}} কাছে পাঠানো হবে, সেই সাথে {{GENDER:$2|আপনার}} ইমেল ঠিকানা {{GENDER:$1|তাঁর}} কাছে প্রকাশ করা হবে।", @@ -2026,7 +2068,7 @@ "wlheader-showupdated": "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে।", "wlnote": "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|$2 ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ $1টি পরিবর্তন}} দেখানো হল।", "wlshowlast": "সর্বশেষ $1 ঘণ্টা $2 দিনে দেখাও", - "watchlist-hide": "আড়াল করো", + "watchlist-hide": "লুকিয়ে রাখা হোক", "watchlist-submit": "দেখাও", "wlshowtime": "প্রদর্শনের সময় কাল:", "wlshowhideminor": "অনুল্লেখ্য সম্পাদনা", @@ -2036,7 +2078,7 @@ "wlshowhidepatr": "পরীক্ষিত সম্পাদনা", "wlshowhidemine": "আমার সম্পাদনা", "wlshowhidecategorization": "পাতা শ্রেণীবদ্ধকরণ", - "watchlist-options": "নজর তালিকা পছন্দসমূহ", + "watchlist-options": "নজর তালিকার পছন্দগুলি", "watching": "নজর রাখা হচ্ছে...", "unwatching": "নজর তুলে নেওয়া হচ্ছে...", "watcherrortext": "\"$1\" এর নজরতালিকা পরিবর্তনের সময় একটি ত্রুটি হয়েছে।", @@ -2108,9 +2150,13 @@ "changecontentmodel-submit": "পরিবর্তন করুন", "changecontentmodel-success-title": "বিষয়বস্তুর প্রতিরূপ পরিবর্তিত হয়েছিলো", "changecontentmodel-success-text": "[[:$1]]-এর বিষয়বস্তুর ধরণ পরিবর্তন হয়েছে।", + "changecontentmodel-cannot-convert": "[[:$1]] পাতার বিষয়বস্তু $2-এর ধরনে রূপান্তরিত করা সম্ভব নয়।", "changecontentmodel-nodirectediting": "$1 বিষয়বস্তুর রূপ সরাসরি সম্পাদনা করা সমর্থন করে না", "changecontentmodel-emptymodels-title": "কোন বিষয়বস্তুর রূপ উপলব্ধ নয়", + "changecontentmodel-emptymodels-text": "[[:$1]] পাতার বিষয়বস্তু কোন ধরনেই রূপান্তরিত করা সম্ভব নয়।", "log-name-contentmodel": "বিষয়বস্তুর রূপ পরিবর্তন লগ", + "log-description-contentmodel": "এই পাতাতে পাতাগুলির বিষয়বস্তুর মডেলের পরিবর্তনের একটি তালিকা আছে। এছাড়াও পূর্বনির্ধারিত মডেল ব্যতীত অন্য মডেলে তৈরি করা পাতাগুলিও তালিকাতে দেওয়া আছে।", + "logentry-contentmodel-new": "$1 পূর্বনির্ধারিত নয় এমন একটি বিষয়বস্তুর রূপ \"$5\" ব্যবহার $3 পাতাটি {{GENDER:$2|তৈরি করেছেন}}", "logentry-contentmodel-change": "$1 $3 পাতার বিষয়বস্তুর রূপ \"$4\" থেকে \"$5\"-এ {{GENDER:$2|পরিবর্তন করেছেন}}", "logentry-contentmodel-change-revertlink": "প্রত্যাবর্তন", "logentry-contentmodel-change-revert": "প্রত্যাবর্তন", @@ -2135,10 +2181,10 @@ "protectexpiry": "মেয়াদোত্তীর্ণ হবে:", "protect_expiry_invalid": "মেয়াদোত্তীর্ণ সময় অবৈধ।", "protect_expiry_old": "মেয়াদোত্তীর্ণ সময় অতীতে অবস্থিত।", - "protect-unchain-permissions": "সুরক্ষিত করার অন্যন্য অপশনগুলো আনলক করুন", + "protect-unchain-permissions": "সুরক্ষার অন্যান্য পছন্দগুলি দেখার জন্য তালা খুলুন", "protect-text": "'''$1''' পাতাটির জন্য সুরক্ষার স্তর আপনি এখানে দেখতে ও পরিবর্তন করতে পারেন।", "protect-locked-blocked": "বাধাপ্রাপ্ত অবস্থায় আপনি পাতাটির সুরক্ষা স্তর পরিবর্তন করতে পারবেন না। এখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:", - "protect-locked-dblock": "ডাটাবেজ বন্ধ থাকায় সুরক্ষা স্তর পরিবর্তন করা যাবে না।\nএখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:", + "protect-locked-dblock": "ডাটাবেজ অবরুদ্ধ থাকায় সুরক্ষা স্তর পরিবর্তন করা যাবে না।\nএখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:", "protect-locked-access": "আপনার অ্যাকাউন্ট থেকে পাতার সুরক্ষা স্তর পরিবর্তন করার অনুমতি নেই।\nএখানে '''$1''' পাতাটির বর্তমান সেটিংস দেওয়া হল:", "protect-cascadeon": "এই পাতাটি বর্তমানে সুরক্ষিত আছে, কারণ পাতাটি নিচের {{PLURAL:$1|পাতায়|পাতাগুলিতে}} অন্তর্ভুক্ত, {{PLURAL:$1|যাতে|যেগুলিতে}} প্রপাতাকার সুরক্ষা চালু আছে। আপনি এই পাতাটির সুরক্ষা স্তর পরিবর্তন করতে পারেন, তবে এটি প্রপাতাকার সুরক্ষাটিতে কোন পরিবর্তন সাধন করবে না।", "protect-default": "সমস্ত ব্যবহারকারীর জন্য", @@ -2167,7 +2213,7 @@ "pagesize": "(বাইট)", "restriction-edit": "সম্পাদনা", "restriction-move": "সরিয়ে নেওয়া", - "restriction-create": "সৃষ্টি করা হোক", + "restriction-create": "তৈরি করুন", "restriction-upload": "আপলোড", "restriction-level-sysop": "সম্পূর্ণ সুরক্ষিত", "restriction-level-autoconfirmed": "অর্ধ-সুরক্ষিত", @@ -2214,7 +2260,7 @@ "undelete-show-file-submit": "হ্যাঁ", "namespace": "নামস্থান:", "invert": "বিপরীতক্রমে নির্বাচন", - "tooltip-invert": "যে সকল নামস্থানের পাতাগুলোর পরিবর্তনসমূহর দেখতে চাচ্ছেন না সেগুলোর নামের পাশে টিক দিন", + "tooltip-invert": "নির্বাচিত নামস্থানটির (এবং সংশ্লিষ্ট নামস্থানটি, যদি নির্বাচিত হয়ে থাকে) অন্তর্গত পাতাগুলির পরিবর্তনসমূহ লুকিয়ে রাখতে চাইলে এই বাক্সে টিক দিন।", "tooltip-whatlinkshere-invert": "নির্বাচিত নামস্থানের পাতা থেকে লিঙ্ক আড়াল করতে এই বাক্সে টিক দিন।", "namespace_association": "সংশ্লিষ্ট নামস্থান", "tooltip-namespace_association": "এখানে টিক দেয়ার মাধ্যমে সংশ্লিষ্ট নামস্থান এবং আলাপপাতাসমূহ অন্তর্ভুক্ত করছেন", @@ -2245,7 +2291,7 @@ "sp-contributions-username": "আইপি (IP) ঠিকানা অথবা ব্যবহারকারীর নাম:", "sp-contributions-toponly": "শুধুমাত্র সেই সম্পাদনাগুলি দেখাও যেগুলো সাম্প্রতিক সংস্করণের অন্তর্ভুক্ত", "sp-contributions-newonly": "শুধুমাত্র পাতা সৃষ্টি করা সম্পাদনাগুলি দেখাও", - "sp-contributions-hideminor": "অনুল্লেখ্য পরিবর্তন আড়াল করুন", + "sp-contributions-hideminor": "অনুল্লেখ্য সম্পাদনাগুলি লুকিয়ে রাখা হোক", "sp-contributions-submit": "অনুসন্ধান", "whatlinkshere": "সংযোগকারী পাতাসমূহ", "whatlinkshere-title": "যে পাতাগুলি থেকে \"$1\"-এর প্রতি সংযোগ আছে", @@ -2263,7 +2309,7 @@ "whatlinkshere-hidetrans": "অন্তর্ভুক্তকরণ $1", "whatlinkshere-hidelinks": "সংযোগ $1", "whatlinkshere-hideimages": "ফাইল সংযোগ $1", - "whatlinkshere-filters": "ছাকনী", + "whatlinkshere-filters": "ছাঁকনি", "whatlinkshere-submit": "চলো", "autoblockid": "স্বয়ংক্রিয় বাধা #$1", "block": "ব্যবহারকারীকে বাধা দাও", @@ -2274,7 +2320,7 @@ "ipaddressorusername": "আইপি ঠিকানা বা ব্যবহারকারীর নাম:", "ipbexpiry": "যখন মেয়াদোত্তীর্ণ হবে:", "ipbreason": "কারণ:", - "ipbreason-dropdown": "*বাধা দানের সাধারণ কারণ\n** মিথ্যা তথ্য ঢোকানো\n** পাতা থেকে বিষয়বস্তু মুছে ফেলা\n** বাইরের কোন সাইটের সংযোগ স্প্যাম করা\n** পাতাগুলিতে অর্থহীন বিষয়বস্তু ঢোকানো\n** ভীতি উদ্রেককারী আচরণ/হয়রানি\n** একাধিক অ্যাকাউন্টের অপব্যবহার\n** ব্যবহারকারী নাম অ-গ্রহণযোগ্য", + "ipbreason-dropdown": "*বাধা দানের সাধারণ কারণগুলি\n** মিথ্যা তথ্য যোগ করা\n** পাতা থেকে বিষয়বস্তু মুছে ফেলা\n** অবাঞ্ছিত বহিঃস্থ কোন সাইটের প্রতি সংযোগ বারংবার যোগ করা\n** পাতাগুলিতে অর্থহীন বিষয়বস্তু যোগ করা\n** ভীতি উদ্রেককারী আচরণ/হয়রানি\n** একাধিক অ্যাকাউন্টের অপব্যবহার\n** ব্যবহারকারী নাম অগ্রহণযোগ্য", "ipb-hardblock": "এই আইপি ঠিকানা থেকে লগ-ইনকৃত ব্যবহারকারীদেরকে সম্পাদনায় বাধা দাও", "ipbcreateaccount": "অ্যাকাউন্ট সৃষ্টিতে বাধা দেওয়া হোক", "ipbemailban": "ব্যবহারকারীকে ই-মেইল পাঠাতে বাধা দেওয়া হোক", @@ -2309,9 +2355,9 @@ "blocklist": "বাধাপ্রাপ্ত ব্যবহারকারী", "ipblocklist": "বাধাপ্রাপ্ত ব্যবহারকারী", "ipblocklist-legend": "বাধা দেওয়া কোন ব্যবহারকারীকে অনুসন্ধান করুন", - "blocklist-userblocks": "অ্যাকাউন্ট বাধা লুকাও", + "blocklist-userblocks": "অ্যাকাউন্ট বাধা লুকানো হোক", "blocklist-tempblocks": "অস্থায়ী বাধা লুকাও", - "blocklist-addressblocks": "একক আইপি বাধা লুকাও", + "blocklist-addressblocks": "একক আইপি বাধা লুকানো হোক", "blocklist-rangeblocks": "রেঞ্জ ব্লকসমূহ লুকান", "blocklist-timestamp": "সময়বার্তা", "blocklist-target": "লক্ষ্য", @@ -2373,21 +2419,21 @@ "cant-see-hidden-user": "আপনি যে ব্যবহারকারীকে ব্লক বা লুকিয়ে রাখতে চাচ্ছেন তাকে আগে থেকেই ব্লক বা লুকিয়ে রাখা হয়েছে। এছাড়া আপনার Hideuser অধিকার নেই, তাই আপনি ব্যবহারকারীর অবস্থা পরিবর্তন করতে পারবেন না।", "ipbblocked": "আপনি অন্য কোন ব্যবহারকরীকে ব্লক বা আনব্লক করতে পারবেন না, কারণ আপনি নিজেই ব্লক রয়েছেন", "ipbnounblockself": "আপনি নিজেকে আনব্লক করতে পারবেন না", - "lockdb": "ডাটাবেজ বন্ধ করে দেওয়া হোক", + "lockdb": "ডাটাবেজ অবরুদ্ধ করে দেওয়া হোক", "unlockdb": "ডাটাবেজ খুলে দেওয়া হোক", - "lockdbtext": "ডাটাবেজ বন্ধ করে দিলে কোন ব্যবহারকারী পাতা সম্পাদনা করতে, তাদের পছন্দ পরিবর্তন করতে, তাদের নজরতালিকা সম্পাদনা করতে, এবং ডাটাবেজে পরিবর্তন আনে এমন কোন কিছু করতে পারবেন না।\nঅনুগ্রহ করে নিশ্চিত করুন যে আপনি এটাই করতে চান, এবং আপনার রক্ষণাবেক্ষণ শেষ হবার পর ডাটাবেজ আবার খুলে দেবেন।", + "lockdbtext": "ডাটাবেজ অবরুদ্ধ করে দিলে কোনো ব্যবহারকারীই পাতা সম্পাদনা করতে, তাদের পছন্দ পরিবর্তন করতে, তাদের নজরতালিকা সম্পাদনা করতে এবং ডাটাবেজে পরিবর্তন আনে এমন কোন কিছু করতে পারবেন না।\nঅনুগ্রহ করে নিশ্চিত করুন যে আপনি এটাই করতে চান, এবং আপনার রক্ষণাবেক্ষণ শেষ হবার পর ডাটাবেজ আবার খুলে দেবেন।", "unlockdbtext": "ডাটাবেজ খুলে দিলে সব ব্যবহারকারী পাতা সম্পাদনা করতে, তাদের পছন্দ পরিবর্তন করতে, তাদের নজরতালিকা সম্পাদনা করতে, এবং ডাটাবেজে পরিবর্তন সাধন করে, এমন অন্যান্য কাজ করতে পারবেন।\nঅনুগ্রহ করে নিশ্চিত করুন যে আপনি এটাই করতে চান।", - "lockconfirm": "হ্যাঁ, আমি আসলেই ডাটাবেজ বন্ধ করতে চাই।", + "lockconfirm": "হ্যাঁ, আমি আসলেই ডাটাবেজ অবরুদ্ধ করে দিতে চাই।", "unlockconfirm": "হ্যাঁ, আমি আসলেই ডাটাবেজ খুলে দিতে চাই।", - "lockbtn": "ডাটাবেজ বন্ধ করা হোক", + "lockbtn": "ডাটাবেজ অবরুদ্ধ করা হোক", "unlockbtn": "ডাটাবেজ খুলে দেওয়া হোক", "locknoconfirm": "আপনি নিশ্চিতকরণ বাক্সে টিক দেননি।", - "lockdbsuccesssub": "ডাটাবেজ সফলভাবে বন্ধ করে দেওয়া হয়েছে", + "lockdbsuccesssub": "ডাটাবেজ সফলভাবে অবরুদ্ধ করে দেওয়া হয়েছে", "unlockdbsuccesssub": "ডাটাবেজ খুলে দেওয়া হয়েছে", - "lockdbsuccesstext": "ডাটাবেজ বন্ধ করা হয়েছে\n
আপনার রক্ষণাবেক্ষণ সম্পন্ন হবার পর [[Special:UnlockDB|ডাটাবেজ খুলে দিতে]] ভুলবেন না।", + "lockdbsuccesstext": "ডাটাবেজ অবরুদ্ধ করা হয়েছে\n
আপনার রক্ষণাবেক্ষণ সম্পন্ন হবার পর [[Special:UnlockDB|ডাটাবেজ খুলে দিতে]] ভুলবেন না।", "unlockdbsuccesstext": "ডাটাবেজ খুলে দেওয়া হয়েছে।", - "lockfilenotwritable": "ডাটাবেজ বন্ধ করার ফাইলটি লিখনযোগ্য নয়। ডাটাবেজ বন্ধ করতে বা খুলতে চাইলে ফাইলটিকে ওয়েব সার্ভার কর্তৃক লিখনযোগ্য হতে হবে।", - "databaselocked": "ডাটাবেসটি ইতিমধ্যেই তালাবদ্ধ।", + "lockfilenotwritable": "ডাটাবেজ অবরোধনির্দেশক ফাইলটি লিখনযোগ্য নয়। ডাটাবেজ অবরুদ্ধ করতে বা খুলতে চাইলে ফাইলটিকে ওয়েব সার্ভার কর্তৃক লিখনযোগ্য হতে হবে।", + "databaselocked": "ডাটাবেজটি ইতিমধ্যেই অবরুদ্ধ।", "databasenotlocked": "ডাটাবেজ বন্ধ নয়।", "lockedbyandtime": "({{GENDER:$1|$1}} $2 এর $3 সময়ে)", "move-page": "$1 স্থানান্তর", @@ -2471,7 +2517,7 @@ "allmessagescurrent": "বর্তমান টেক্সট", "allmessagestext": "এটি মিডিয়াউইকি নামস্থানে অন্তর্ভুক্ত সিস্টেম বার্তাগুলোর একটি তালিকা।\nআপনি যদি সাধারণ মিডিয়াউইকির স্থানীয়করণে অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াউইকি স্থানীয়করণ] এবং [https://translatewiki.net translatewiki.net] দেখুন।", "allmessagesnotsupportedDB": "এই পাতা ব্যবহার করা যাবে না কারণ '''$wgUseDatabaseMessages''' বন্ধ করে রাখা আছে।", - "allmessages-filter-legend": "ছাকনী", + "allmessages-filter-legend": "ছাঁকনি", "allmessages-filter": "Filter by customization state:", "allmessages-filter-unmodified": "অপরিবর্তিত", "allmessages-filter-all": "সমস্ত", @@ -2494,12 +2540,13 @@ "thumbnail_image-type": "চিত্রের ধরন সমর্থন করে না", "thumbnail_gd-library": "অসম্পূর্ণ জিডি লাইব্রেরী কনফিগারেশন: $1 ফাংশন নেই", "thumbnail_image-missing": "ফাইলটি খুজে পাওয়া যাচ্ছে না: $1", + "thumbnail_image-failure-limit": "সাম্প্রতিককালে এই ক্ষুদ্র প্রাকপ্রদর্শনমূলক চিত্রটিকে (thumbnail) রেন্ডার করার চেষ্টা অত্যধিকবার ($1 বা তার বেশিবার) ব্যর্থ হয়েছে। অনুগ্রহ করে কিছুক্ষণ পরে আবার চেষ্টা করুন।", "import": "পাতা আমদানি", "importinterwiki": "অন্য উইকি থেকে আমদানী", "import-interwiki-text": "আমদানির জন্য একটি উইকি ও পাতার শিরোনাম নির্বাচন করুন।\nসংশোধনের তারিখগুলি এবং সম্পাদকদের নামগুলি সংরক্ষণ করা হবে।\nঅন্যান্য উইকি থেকে সমস্ত আমদানি [[Special:Log/import|আমদানি লগে]] লিপিবদ্ধ আছে।", "import-interwiki-sourcewiki": "উত্স উইকি:", "import-interwiki-sourcepage": "উৎস পাতা:", - "import-interwiki-history": "এই পাতার সমস্ত ইতিহাসের সংস্করণের অনুলিপি করা হোক", + "import-interwiki-history": "এই পাতার ইতিহাসের সমস্ত সংস্করণের প্রতিলিপি করা হোক", "import-interwiki-templates": "সকল টেম্পলেট অন্তর্ভুক্ত", "import-interwiki-submit": "আমদানি", "import-mapping-default": "পূর্বনির্ধারিত অবস্থানে আমদানি করুন", @@ -2535,7 +2582,8 @@ "import-error-special": "\"$1\" পাতাটি আমদানি করা যায়নি কারণ এটি একটি বিশেষ নামস্থানকে নির্দেশ করে যেটি সম্পাদনার জন্য অনুমোদিত নয়।", "import-error-invalid": "\"$1\" পাতাটি আমদানি করা যায়নি কারণ নামটি সঠিক নয়।", "import-error-unserialize": "$1 পাতার $2 সংস্করণটি সিরিয়ালাইজ করা যাচ্ছে না। এই রিভিশনে $4 হিসাবে $3 কন্টেন্ট মডেলে সিরিয়ালাইজ করা আছে।", - "import-options-wrong": "ভুল {{PLURAL:$2|অপশন|অপশনসমূহ}}: $1", + "import-error-bad-location": "বিষয়বস্তু মডেল $3 ব্যবহার করে সম্পাদিত $2 নং সংশোধনটি \"$1\" পাতায় সংরক্ষণ করা যাবে না, কারণ ঐ মডেলটি ঐ পাতাতে প্রযোজ্য নয়।", + "import-options-wrong": "{{PLURAL:$2|পছন্দ}} নির্বাচনে ভুল: $1", "import-rootpage-invalid": "মূল পাতার ভুল শিরনাম দেয়া হয়েছে।", "import-rootpage-nosubpage": "মূল পাতার \"$1\" নামস্থানে উপপাতা তৈরী অনুমোদিত নয়।", "importlogpage": "আমদানি লগ", @@ -2601,10 +2649,10 @@ "tooltip-ca-nstab-help": "সাহায্য পাতাটি দেখুন", "tooltip-ca-nstab-category": "বিষয়শ্রেণী পাতাটি দেখুন", "tooltip-minoredit": "এটিকে অনুল্লেখ্য সম্পাদনা হিসেবে চিহ্নিত করা হোক", - "tooltip-save": "আপনার পরিবর্তনগুলি সংরক্ষিত হোক", + "tooltip-save": "আপনার পরিবর্তনগুলি সংরক্ষিত করুন", "tooltip-publish": "আপনার পরিবর্তন প্রকাশ করুন", "tooltip-preview": "অনুগ্রহ করে সংরক্ষণের আগে আপনার পরিবর্তনগুলি প্রাকদর্শন করুন!", - "tooltip-diff": "আপনি টেক্সটে কী কী পরিবর্তন করেছেন, তা দেখানো হোক।", + "tooltip-diff": "লেখায় কী কী পরিবর্তন করেছেন তা দেখুন", "tooltip-compareselectedversions": "এই পাতার দুইটি নির্বাচিত সংস্করণের মধ্যে তুলনা দেখুন।", "tooltip-watch": "এই পাতাটি আমার নজরতালিকায় যোগ করো", "tooltip-watchlistedit-normal-submit": "শিরোনাম অপসারণ", @@ -2627,9 +2675,9 @@ "anonusers": "{{SITENAME}} বেনামী {{PLURAL:$2|ব্যবহারকারী|ব্যবহারকারীগণ}} $1", "creditspage": "পাতার স্বীকৃতি", "nocredits": "এই পাতাটির জন্য কোন কৃতিত্ব-সম্পর্কিত তথ্য নেই।", - "spamprotectiontitle": "স্প্যাম প্রতিরক্ষা ফিল্টার", - "spamprotectiontext": "আপনি যে পাতাটি সংরক্ষণ করতে চেয়েছেন, তা স্প্যাম ফিল্টার বাধা দিয়েছে। সম্ভবত কালো তালিকাভুক্ত বহিঃস্থ কোন সাইটের সংযোগের কারণে এমনটা ঘটেছে।", - "spamprotectionmatch": "নিচের টেক্সটটি আমাদের স্প্যাম ফিল্টারকে সক্রিয় করেছে: $1", + "spamprotectiontitle": "স্প্যাম প্রতিরক্ষা ছাঁকনি", + "spamprotectiontext": "আপনি যে পাতাটি সংরক্ষণ করতে চেয়েছেন, তা স্প্যাম ছাঁকনি বাধা দিয়েছে। সম্ভবত কালোতালিকাভুক্ত বহিঃস্থ কোন সাইটের সংযোগের কারণে এমনটি ঘটেছে।", + "spamprotectionmatch": "নিচের লেখাটি আমাদের স্প্যাম ছাঁকনিকে সক্রিয় করেছে: $1", "spambot_username": "মিডিয়াউইকি স্প্যাম পরিস্কার", "spam_reverting": "$1-এর প্রতি কোন সংযোগ নেই, এমন সর্বশেষ সংস্করণে ফেরত নেওয়া হচ্ছে।", "spam_blanking": "$1-এর প্রতি সংযোগ অন্তর্ভুক্ত আছে এমন সমস্ত সংশোধন খালি করা হচ্ছে", @@ -2738,10 +2786,10 @@ "newimages": "নতুন ফাইলের গ্যালারি", "imagelisttext": "নিচে '''$1''' {{PLURAL:$1|ফাইলের|ফাইলের}} একটি তালিকা যা $2 এ সংরক্ষিত রয়েছে।", "newimages-summary": "এই বিশেষ পাতা সর্বশেষ আপলোডকৃত ফাইল দেখাবে।", - "newimages-legend": "ছাকনী", + "newimages-legend": "ছাঁকনি", "newimages-label": "ফাইলের নাম (অথবা এর কোন অংশ):", "newimages-showbots": "বটের আপলোড গুলো দেখাও।", - "newimages-hidepatrolled": "টহলকৃত আপলোড আড়াল করো", + "newimages-hidepatrolled": "টহলকৃত আপলোড লুকানো হোক", "noimages": "দেখার মত কিছু নেই।", "gallery-slideshow-toggle": "থাম্বনেল ভাসান", "ilsubmit": "অনুসন্ধান", @@ -2775,8 +2823,8 @@ "metadata": "অধি-উপাত্ত", "metadata-help": "এই ফাইলে অতিরিক্ত কিছু তথ্য আছে। সম্ভবত যে ডিজিটাল ক্যামেরা বা স্ক্যানারের মাধ্যমে এটি তৈরি বা ডিজিটায়িত করা হয়েছিল, সেটি কর্তৃক তথ্যগুলি যুক্ত হয়েছে। যদি ফাইলটি তার আদি অবস্থা থেকে পরিবর্তিত হয়ে থাকে, কিছু কিছু বিবরণ পরিবর্তিত ফাইলটির জন্য প্রযোজ্য না-ও হতে পারে।", "metadata-expand": "সম্প্রসারিত সবিস্তারে দেখাও", - "metadata-collapse": "সম্প্রসারিত সবিস্তারে দেখিও না", - "metadata-fields": "এই বার্তায় তালিকাভুক্ত চিত্র মেটাডাটা ক্ষেত্রগুলি ছবির পাতায় প্রদর্শন করা হবে, যখন অধি-উপাত্ত সারণিটি সংকুচিত করা হবে। অন্য ক্ষেত্রগুলি স্বাভাবিক অবস্থায় লুকায়িত থাকবে।\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude", + "metadata-collapse": "সম্প্রসারিত বিবরণ দেখান", + "metadata-fields": "এই বার্তায় তালিকাভুক্ত চিত্র মেটাডাটা ক্ষেত্রগুলি ছবির পাতায় প্রদর্শন করা হবে, যখন মেটাডাটা সারণিটি সংকুচিত করা হবে। অন্য ক্ষেত্রগুলি স্বাভাবিক অবস্থায় লুকায়িত থাকবে।\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude", "exif-imagewidth": "চওড়া", "exif-imagelength": "লম্বা", "exif-bitspersample": "উপাদানপ্রতি বিট", @@ -3141,6 +3189,8 @@ "invalidateemail": "ইমেইল নিশ্চিতকরণ বাতিল করুন", "notificationemail_subject_changed": "{{SITENAME}}-এ নিবন্ধীকৃত ইমেল ঠিকানা পরিবর্তন করা হয়েছে", "notificationemail_subject_removed": "{{SITENAME}}-এ নিবন্ধীকৃত ইমেল ঠিকানা সরানো হয়েছে", + "notificationemail_body_changed": "কেউ, সম্ভবত আপনি-ই, $1 আইপি ঠিকানাটি থেকে {{SITENAME}}-এর \"$2\" নামক অ্যাাকাউন্টের সাথে সংশ্লিষ্ট ই-মেইল ঠিকানাটি \"$3\"-এ পরিবর্তন করেছেন।\n\nযদি এটি আপনি না করে থাকেন তাহলে, অবিলম্বে সাইট প্রশাসকের সাথে যোগাযোগ করুন।", + "notificationemail_body_removed": "কেউ, সম্ভবত আপনি-ই, $1 আইপি ঠিকানা থেকে {{SITENAME}}-এর \"$2\" নামক অ্যাকাউন্টের সাথে সংশ্লিষ্ট ই-মেইল ঠিকানাটি মুছে দিয়েছেন।\n\nযদি এটি আপনি না করে থাকেন তাহলে, অবিলম্বে সাইট প্রশাসকের সাথে যোগাযোগ করুন।", "scarytranscludedisabled": "[আন্তঃউইকি আন্তঃভুক্তি নিষ্ক্রিয়]", "scarytranscludefailed": "[$1 এর জন্য টেমপ্লেট আনা অসফল হয়েছে]", "scarytranscludefailed-httpstatus": "[$1: HTTP $2 এর জন্য টেমপ্লেট আনা বিফল হয়েছে]", @@ -3306,11 +3356,11 @@ "version-license-not-found": "এই এক্সটেনশনের জন্য কোনো বিস্তারিত লাইসেন্স তথ্য পাওয়া যায়নি।", "version-credits-title": "$1-এর জন্য কৃতিত্ব", "version-credits-not-found": "এই এক্সটেনশনটির জন্য কোনো বিস্তারিত কৃতিত্ব তথ্য পাওয়া যায়নি।", - "version-poweredby-credits": "এই উইকিটি পরিচালিত হচ্ছে [https://www.mediawiki.org/ মিডিয়াউইকি] -এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।", + "version-poweredby-credits": "এই উইকিটি [https://www.mediawiki.org/ মিডিয়াউইকির] মাধ্যমে পরিচালিত হচ্ছে, কপিরাইট © ২০০১-$1 $2।", "version-poweredby-others": "অন্যান্য", "version-poweredby-translators": "translatewiki.net অনুবাদকগণ", "version-credits-summary": "[[Special:Version|মিডিয়াউইকি]] সফটওয়্যারে অবদানের জন্য আমরা এই ব্যক্তিকে স্বীকৃতি দিতে চাই।", - "version-license-info": "মিডিয়াউইকি একটি ফ্রি সফটওয়্যার; আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। \n\nসকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। \n\nএই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি অনুলিপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।", + "version-license-info": "মিডিয়াউইকি একটি উন্মুক্ত সফটওয়্যার; আপনি এটি পুনঃবিতরণ করতে পারবেন এবং/অথবা সম্পাদনা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। \n\nমিডিয়াউইকি এই আশায় বিতরণ করা হয়ে থাকে যে এটি সকলের উপকারে আসবে, কিন্তু এক্ষেত্রে কোনো লিখিত অঙ্গীকার দেয়া হয় না, এমনকি ব্যবসাযোগ্যতা বা বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্য এটি উপযুক্ত কি না, এ নিয়ে পরোক্ষ অঙ্গীকারও দেয়া হয় না। বিস্তারিত জানতে গনু জেনারেল পাবলিক লাইসেন্স দেখুন। \n\nএই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি প্রতিলিপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html লাইসেন্সটি ইন্টারনেটে পড়ুন]।", "version-software": "ইনস্টলকৃত সফটওয়্যার", "version-software-product": "পণ্য", "version-software-version": "সংস্করণ", @@ -3342,10 +3392,10 @@ "fileduplicatesearch-submit": "অনুসন্ধান", "fileduplicatesearch-info": "$1 × $2 পিক্সেল
ফাইলের আকার: $3
এমআইএমই প্রকার: $4", "fileduplicatesearch-result-1": " \"$1\" ফাইলের কোন ডুপ্লেকেট ফাইল নাই।", - "fileduplicatesearch-result-n": "\"$1\" এই ফাইলের {{PLURAL:$2|1 একইরকম অনুলিপি|$2 একইরকম অনুলিপি}} রয়েছে।", + "fileduplicatesearch-result-n": "\"$1\" ফাইলটির {{PLURAL:$2|১টি অবিকল প্রতিলিপি|$2টি অবিকল প্রতিলিপি}} রয়েছে।", "fileduplicatesearch-noresults": "\"$1\" নামের কোনো ফাইল খুঁজে পাওয়া যায়নি।", "specialpages": "বিশেষ পাতাসমূহ", - "specialpages-note-top": "লিজেন্ড", + "specialpages-note-top": "ব্যাখ্যা", "specialpages-note": "* সাধারণ বিশেষ পাতাসমূহ।\n* সীমাবদ্ধ বিশেষ পাতা।", "specialpages-group-maintenance": "রক্ষণাবেক্ষণের কার্যবিবরণীসমূহ", "specialpages-group-other": "অন্যান্য বিশেষ পাতাসমূহ", @@ -3358,14 +3408,14 @@ "specialpages-group-pagetools": "পাতা সংক্রান্ত সরঞ্জাম", "specialpages-group-wiki": "উপাত্ত এবং সরঞ্জামসমূহ", "specialpages-group-redirects": "বিশেষ পাতাগুলি পুনর্নির্দেশ করা হচ্ছে", - "specialpages-group-spam": "স্প্যামরোধী হাতিয়ার", + "specialpages-group-spam": "স্প্যাম সরঞ্জামসমূহ", "specialpages-group-developer": "ডেভলপারের সরঞ্জাম", "blankpage": "খালি পাতা", "intentionallyblankpage": "এই পাতাটি ইচ্ছা করে খালি রাখা হয়েছে", "external_image_whitelist": " #এই লাইন ঠিক যেমন আছে<প্রাক> তেমন রাখুন
\n #রেগুলার এক্সপ্রেশনের টুকরা নীচে (শুধুমাত্র অংশ / / মধ্যে যে যায়) বসান\n#এইগুলি এক্সটার্নাল (hotlinked) ইমেজের URL-এর সাথে মেলানো হবে\n#যেগুলি মিলবে, সেগুলি চিত্র হিসাবে প্রদর্শিত হবে, অন্যথায় শুধুমাত্র ইমেজ লিঙ্ক প্রদর্শিত হবে\n#যে লাইনের প্রারম্ভে # আছে সেই লাইনগুলি মন্তব্যসমূহ হিসাবে ব্যবহার করা হয়\n#এটি কেস-অসংবেদী\n\n#এই রেখার উপরের regex টুকরা বসান. এই লাইন ঠিক যেমন আছে তেমন রাখুন
", "tags": "বৈধ পরিবর্তন ট্যাগ", - "tag-filter": "[[Special:Tags|ট্যাগ]] ছাকনী:", - "tag-filter-submit": "ছাকনী", + "tag-filter": "[[Special:Tags|ট্যাগ]] ছাঁকনি:", + "tag-filter-submit": "ছাঁকনি", "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ট্যাগ}}]]: $2)", "tag-mw-contentmodelchange": "বিষয়বস্তুর রূপ পরিবর্তন", "tag-mw-contentmodelchange-description": "সম্পাদনা যা একটি পাতার [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel বিষয়বস্তুর রূপ পরিবর্তন] করে", @@ -3389,6 +3439,7 @@ "tags-deactivate": "নিষ্ক্রিয়", "tags-hitcount": "$1টি {{PLURAL:$1|পরিবর্তন}}", "tags-manage-no-permission": "আপনার ট্যাগ পরিবর্তন পরিচালনা করার অনুমতি নেই।", + "tags-manage-blocked": "বাধাপ্রাপ্ত থাকাকালীন সময়ে {{GENDER:$1|আপনি}} ট্যাগ পরিবর্তন ব্যবস্থাপনা করতে পারবেন না।", "tags-create-heading": "নতুন ট্যাগ তৈরি করুন", "tags-create-explanation": "পূর্বনির্ধারিতরূপে, নব নির্মিত ট্যাগ ব্যবহারকারী এবং বট দ্বারা ব্যবহারের জন্য উপলব্ধ করা হবে।", "tags-create-tag-name": "ট্যাগের নাম:", @@ -3398,13 +3449,19 @@ "tags-create-invalid-chars": "ট্যাগের নামে কমা (,) বা ফরোয়ার্ড স্ল্যাশ (/) থাকতে পারবে না।", "tags-create-invalid-title-chars": "ট্যাগের নাম এমন অক্ষর থাকতে পারবে না যা পাতার শিরোনামে ব্যবহার করা যায় না।", "tags-create-already-exists": "\"$1\" ট্যাগ ইতিমধ্যেই বিদ্যমান।", + "tags-create-warnings-above": "\"$1\" ট্যাগটি তৈরির প্রচেষ্টার সময় নিম্নোক্ত {{PLURAL:$2|সতর্ক বার্তা|সতর্ক বার্তাগুলি}} উৎপন্ন হয়েছে:", "tags-create-warnings-below": "আপনি কি ট্যাগটি তৈরি করা চালিয়ে যেতে চান?", "tags-delete-title": "ট্যাগ অপসারণ", "tags-delete-explanation-initial": "আপনি ডাটাবেজ থেকে \"$1\" ট্যাগটি অপসারণ করতে চলেছেন।", + "tags-delete-explanation-in-use": "ট্যাগটি বর্তমানে যে {{PLURAL:$2|$2 টি সংশোধন এবং/বা লগ ভুক্তিতে}} প্রয়োগ হয়েছে, সেগুলি থেকে এটিকে অপসারণ করা হবে।", + "tags-delete-explanation-warning": "এই কাজটি অপরিবর্তনযোগ্য এবং এটিকে ভবিষ্যতে বাতিল করা সম্ভব নয়, এমনকি ডাটাবেজ প্রশাসকরাও এটি বাতিল করতে পারবেন না। এই ট্যাগটিই মুছে ফেলতে চাচ্ছেন কি না, সে ব্যাপারে সুনিশ্চিত হোন।", + "tags-delete-explanation-active": "\"$1\" ট্যাগটি এখনও সক্রিয় এবং ভবিষ্যতে এটিকে প্রয়োগ করা যাবে। এই ব্যাপারটি ঘটা বন্ধ করার জন্য যেসব স্থানে ট্যাগটিকে প্রয়োগ করার জন্য নির্ধারণ করা হয়েছে, সেসব স্থানে গিয়ে সেটিকে নিষ্ক্রিয় করুন।", "tags-delete-reason": "কারণ:", "tags-delete-submit": "অপরিবর্তনীয় এই ট্যাগ অপসারন করো", + "tags-delete-not-allowed": "এক্সটেনশন দ্বারা সংজ্ঞায়িত ট্যাগ অপসারণ করা সম্ভব নয়, যদি না এক্সটেনশনটি বিশেষভাবে এটি করার অনুমতি দিয়ে থাকে।", "tags-delete-not-found": "\"$1\" ট্যাগ বিদ্যমান নয়।", "tags-delete-too-many-uses": "\"$1\" ট্যাগটি $2টিরও অধিক {{PLURAL:$2|সংশোধনে}} প্রয়োগ করা হয়েছে, যার অর্থ এটি অপসারণ করা যাবে না।", + "tags-delete-warnings-after-delete": "\"$1\" ট্যাগটি মুছে ফেলা হয়েছে, কিন্তু নিম্নোক্ত {{PLURAL:$2|সতর্ক বার্তাটি|সতর্ক বার্তাগুলি}} উৎপন্ন হয়েছে:", "tags-delete-no-permission": "আপনার পরিবর্তন ট্যাগ মুছে ফেলার অনুমতি নেই।", "tags-activate-title": "সক্রিয় ট্যাগ", "tags-activate-question": "আপনি ট্যাগ \"$1\" সক্রিয় করতে চলেছেন।", @@ -3418,9 +3475,11 @@ "tags-deactivate-not-allowed": "ট্যাগ \"$1\" নিষ্ক্রিয় করা সম্ভব নয়।", "tags-deactivate-submit": "নিষ্ক্রিয়", "tags-apply-no-permission": "আপনার পরিবর্তনসহ আপনার ট্যাগ পরিবর্তন প্রয়োগ করার অনুমতি নেই।", + "tags-apply-blocked": "বাধা থাকাকালীন অবস্থায় {{GENDER:$1|আপনি}} আপনার সম্পাদিত পরিবর্তনগুলির সাথে সাথে ট্যাগ পরিবর্তন প্রয়োগ করতে পারবেন না।", "tags-apply-not-allowed-one": "\"$1\" ট্যাগটি ম্যানুয়ালি প্রয়োগ করা যাবে না।", "tags-apply-not-allowed-multi": "নিন্মলিখিত {{PLURAL:$2|ট্যাগটি|ট্যাগগুলি}} ম্যানুয়ালি প্রয়োগ করা যাবে না: $1", "tags-update-no-permission": "স্বতন্ত্র সংশোধন বা লগের ভুক্তি থেকে আপনার ট্যাগ পরিবর্তন যোগ বা বাতিল করার অনুমতি নেই।", + "tags-update-blocked": "বাধাপ্রাপ্ত থাকাকালীন সময়ে {{GENDER:$1|আপনি}} ট্যাগ যোগ বা অপসারণ করতে পারবেন না।", "tags-update-add-not-allowed-one": "\"$1\" ট্যাগটি ম্যানুয়ালি যোগ করা যাবে না।", "tags-update-add-not-allowed-multi": "নিন্মলিখিত {{PLURAL:$2|ট্যাগটি|ট্যাগগুলি}} ম্যানুয়ালি যোগ করা যাবে না: $1", "tags-update-remove-not-allowed-one": "\"$1\" ট্যাগটি বাতিল করা যাবে না।", @@ -3429,6 +3488,7 @@ "tags-edit-manage-link": "ট্যাগ পরিচালনা করুন", "tags-edit-revision-selected": "[[:$2]] পাতার {{PLURAL:$1|নির্বাচিত সংশোধন|নির্বাচিত সংশোধনসমূহ}}:", "tags-edit-logentry-selected": "{{PLURAL:$1|নির্বাচিত লগ ইভেন্ট}}:", + "tags-edit-revision-legend": "{{PLURAL:$1|এই সংশোধন|$1টি সংশোধনের সবগুলি}} থেকে ট্যাগ যোগ বা অপসারণ করুন", "tags-edit-logentry-legend": "{{PLURAL:$1|এই লগের ভুক্তি|$1টি লগের ভুক্তি}} থেকে ট্যাগ যোগ বা বাতিল করুন", "tags-edit-existing-tags": "বিদ্যমান ট্যাগ:", "tags-edit-existing-tags-none": "কোনটি নয়", @@ -3444,6 +3504,7 @@ "tags-edit-success": "পরিবর্তন প্রয়োগ করা হয়েছে।", "tags-edit-failure": "পরিবর্তন প্রয়োগ করা যায়নি: $1", "tags-edit-nooldid-title": "লক্ষ্য সংশোধন অবৈধ", + "tags-edit-nooldid-text": "আপনি হয় কোন লক্ষ্য সংশোধনটিতে এই ফাংশনটি সম্পাদন করতে হবে তা নির্দিষ্ট করে দেননি, অথবা নির্দিষ্টকৃত সংশোধনটির অস্তিত্ব নেই।", "tags-edit-none-selected": "যোগ করতে অথবা অপসারণ করতে অন্ততপক্ষে একটি ট্যাগ দয়া করে নির্বাচন করুন।", "comparepages": "পাতার তুলনা", "compare-page1": "পাতা ১", @@ -3460,7 +3521,7 @@ "dberr-info-hidden": "(ডেটাবেজ প্রবেশ করা সম্ভব হয়নি)", "dberr-usegoogle": "এই পরিস্থিতিতে আপনি গুগলের মাধ্যমে অনুসন্ধান করার চেষ্টা করতে পারেন।", "dberr-outofdate": "খেয়াল করুন যে, আমাদের বিষয়বস্তু সম্পর্কিত তাদের সূচি মেয়াদ উত্তীর্ণ হতে পারে।", - "dberr-cachederror": "এটি অনুরোধকৃত পাতার ক্যাশে লিপি, যা হালনাগাতকৃত নাও হতে পারে।", + "dberr-cachederror": "এটি অনুরোধকৃত পাতাটির ক্যাশ প্রতিলিপি, যা হালনাগাতকৃত না-ও হতে পারে।", "htmlform-invalid-input": "আপনার প্রদানকৃত ইনপুটে সমস্যা রয়েছে", "htmlform-select-badoption": "যে মান আপনি উল্লেখ করেছেন তা গ্রহণযোগ্য অপশন নয়।", "htmlform-int-invalid": "আপনার পরিবর্তীত সংখ্যাটি ইন্টিজার(পূর্ণসংখ্যা) নয়।", @@ -3541,17 +3602,26 @@ "logentry-protect-protect-cascade": "$1 $3 {{GENDER:$2|সুরক্ষিত করেছেন}} $4 [প্রপাতাকার]", "logentry-protect-modify": "$1 $3-এর জন্য সুরক্ষা স্তর {{GENDER:$2|পরিবর্তন করেছেন}} $4", "logentry-protect-modify-cascade": "$1 $3-এর জন্য সুরক্ষা স্তর {{GENDER:$2|পরিবর্তন করেছেন}} $4 [প্রপাতাকার]", - "logentry-rights-rights": "$1 ব্যবহারকারী, {{GENDER:$6|$3}}-এর দলগত সদস্যপদ $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন", + "logentry-rights-rights": "$1 {{GENDER:$6|$3}}-এর দলীয় সদস্যপদ $4 থেকে $5-এ {{GENDER:$2|পরিবর্তন}} করেছেন", "logentry-rights-rights-legacy": "$1 দলের সদস্যপদ পরিবর্তন করেছেন {{GENDER:$2|changed}} এর জন্য $3", "logentry-rights-autopromote": "$1 স্বয়ংক্রিয়ভাবে $4 থেকে $5-এ {{GENDER:$2|উন্নীত}} হয়েছেন", "logentry-upload-upload": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}", "logentry-upload-overwrite": "$1 $3-এর একটি নতুন সংস্করণ {{GENDER:$2|আপলোড করেছেন}}", "logentry-upload-revert": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}", "log-name-managetags": "ট্যাগ ব্যবস্থাপনা লগ", + "log-description-managetags": "এই পাতাতে [[Special:Tags|ট্যাগ]] ব্যবস্থাপনা কার্যাবলির একটি তালিকা আছে। এই লগে কেবলমাত্র সেইসব কর্মের তালিকা আছে, যেগুলি একজন প্রশাসক নিজ হাতে সম্পাদন করেছেন; উইকি সফটওয়্যার দিয়ে ট্যাগ সৃষ্টি বা অপসারণ করা সম্ভব, যার কোন ভুক্তি এই লগে সংরক্ষিত হবে না।", "logentry-managetags-create": "$1 \"$4\" ট্যাগটি {{GENDER:$2|তৈরি করেছেন}}", "logentry-managetags-delete": "$1 \"$4\" ট্যাগটি {{GENDER:$2|অপসারণ করেছেন}} ($5টি {{PLURAL:$5|সংস্করণ বা লগ ভুক্তি|সংস্করণ ও/বা লগ ভুক্তি}} সরানো হয়েছে)", + "logentry-managetags-activate": "$1 \"$4\" ট্যাগটি ব্যবহারকারী ও বট দ্বারা ব্যবহারের জন্য {{GENDER:$2|সক্রিয়}} করেছেন", "logentry-managetags-deactivate": "$1 \"$4\" ট্যাগটি ব্যবহারকারী ও বট দ্বারা ব্যবহারের জন্য {{GENDER:$2|নিষ্ক্রিয়}} করেছেন", "log-name-tag": "ট্যাগ লগ", + "log-description-tag": "এই পাতাতে দেখানো হয়েছে কখন কখন ব্যবহারকারীরা নির্দিষ্ট সংশোধন বা লগ ভুক্তিতে [[Special:Tags|ট্যাগ]] যোগ বা সেখান থেকে ট্যাগ অপসারণ করেছেন। যখন কোন সম্পাদনা, অপসারণ বা এই জাতীয় কর্মের অংশ হিসেবে ট্যাগ করা হয়, সেই ট্যাগগুলি এই লগে তালিকাভুক্ত করা হয় না।", + "logentry-tag-update-add-revision": "$1 $3 পাতার $4 নং সংস্করণে $6 {{PLURAL:$7|ট্যাগটি|ট্যাগগুলি}} {{GENDER:$2|যোগ করেছেন}}", + "logentry-tag-update-add-logentry": "$1 $3 পাতার $5 নং লগ ভুক্তিতে $6 {{PLURAL:$7|ট্যাগটি|ট্যাগগুলি}} {{GENDER:$2|যোগ করেছেন}}", + "logentry-tag-update-remove-revision": "$1 $3 পাতার $4 নং লগ সংস্করণ থেকে $8 {{PLURAL:$9|ট্যাগটি|ট্যাগগুলি}} {{GENDER:$2|সরিয়েছেন}}", + "logentry-tag-update-remove-logentry": "$1 $3 পাতার $5 নং লগ ভুক্তি থেকে $8 {{PLURAL:$9|ট্যাগটি|ট্যাগগুলি}} {{GENDER:$2|সরিয়েছেন}}", + "logentry-tag-update-revision": "$1 $3 পাতার $4 নং সংস্করণের ট্যাগগুলি {{GENDER:$2|হালনাগাদ করেছেন}} ($6 {{PLURAL:$7|যোগ করা হয়েছে}}; $8 {{PLURAL:$9|সরানো হয়েছে}})", + "logentry-tag-update-logentry": "$1 $3 পাতার $5 নং লগ ভুক্তির ট্যাগগুলি {{GENDER:$2|হালনাগাদ করেছেন}} ($6 {{PLURAL:$7|যোগ করা হয়েছে}}; $8{{PLURAL:$9|সরানো হয়েছে}})", "rightsnone": "(কিছু নাই)", "rightslogentry-temporary-group": "$1 (সাময়িক, $2 পর্যন্ত)", "feedback-adding": "পাতায় প্রতিক্রিয়া যোগ হচ্ছে...", @@ -3633,12 +3703,14 @@ "pagelang-nonexistent-page": "$1 শিরোনামে কোন পাতা নেই।", "pagelang-unchanged-language": "$1 পাতাটি ইতিমধ্যে $2 ভাষায় নির্ধারণ করা আছে।", "pagelang-unchanged-language-default": "$1 পাতাটি ইতিমধ্যেই উইকির পূর্বনির্ধারিত বিষয়বস্তুর ভাষায় নির্ধারণ করা আছে।", - "pagelang-db-failed": "ডাটাবেস পৃষ্ঠার ভাষা পরিবর্তন করতে ব্যর্থ হয়েছে।", + "pagelang-db-failed": "ডাটাবেস পাতার ভাষা পরিবর্তন করতে ব্যর্থ হয়েছে।", "right-pagelang": "পাতার ভাষা পরিবর্তন করুন", "action-pagelang": "পাতার ভাষা পরিবর্তন করুন", "log-name-pagelang": "ভাষা পরিবর্তন লগ", "log-description-pagelang": "এটি পাতার ভাষা পরিবর্তনের লগ।", "logentry-pagelang-pagelang": "$1 $3-এর ভাষা $4 থেকে $5-এ {{GENDER:$2|পরিবর্তন}} করেছেন", + "default-skin-not-found": "ওহো! আপনার উইকির পূর্বনির্ধারিত আবরণ, যেটি $wgDefaultSkin-এ $1 হিসেবে সংজ্ঞায়িত, সেটি পাওয়া যাচ্ছে না।\n\nআপনার ইনস্টলেশনে মনে হচ্ছে নিম্নোক্ত {{PLURAL:$4|আবরণ|আবরণগুলি}} অন্তর্ভুক্ত আছে। কী করে {{PLURAL:$4।|এটি|এগুলি}} সক্রিয় করতে হবে এবং পূর্বনির্ধারিতটি নির্বাচন করতে হবে, তার জন্য [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] দেখুন। \n\n$2\n\n; যদি আপনি খুব সম্প্রতি মিডিয়াউইকি ইন্সটল করে থাকেন:\n: আপনি সম্ভবত গিট থেকে অথবা সরাসরি উৎস কোড থেকে অন্য কোন পদ্ধতি অনুসরণ করে ইন্সটল করেছেন। এমনটাই প্রত্যাশিত। [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-এর বহিরাবরণ নির্দেশিকা] থেকে নিচের পদ্ধতিগুলির সাহায্যে কিছু আবরণ ইন্সটল করার চেষ্টা করুন:\n:* [https://www.mediawiki.org/wiki/Download টারবল ইন্সটলারটি] ডাউনলোড করে; এটিতে অনেকগুলি আবরণ ও এক্সটেনশন রয়েছে। আপনি skins/ সরাসরি প্রতিলিপি করে সাঁটতে পারেন।\n:* নির্দিষ্ট আবরণ টারবলগুলি [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] থেকে ডাউনলোড করতে পারেন।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins গিট ব্যবহার করে বহিরাবরণ ডাউনলোড করতে পারেন]\n: আপনি যদি মিডিয়াউইকি ডেভেলপার হয়ে থাকেন, তাহলে এ কাজটি করলে আপনার গিট সংগ্রহশালার সাথে এটির সংঘাত হবে না।\n; আপনি যদি খুব সম্প্রতি মিডিয়াউইকির সর্বশেষ সংস্করণে হালনাগাদ করে থাকেন:\n: মিডিয়াউইকির ১.২৪ এবং নতুনতর সংস্করণগুলি ইন্সটলকৃত আবরণগুলি আর স্বয়ংক্রিয়ভাবে সক্রিয় করে না। ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery] দেখুন)। আপনি LocalSettings.php ফাইলটির ভেতরে নিম্নোক্ত {{PLURAL:$5|লাইন|লাইনগুলি}} সেঁটে ইন্সটলকৃত {{PLURAL:$5|আবরণ|আবরণগুলি}} সক্রিয় করতে পারেন:\n\n
$3
\n\n; আপনি যদি খুব সম্প্রতি LocalSettings.php পরিবর্তন করে থাকেন:\n: বানান ত্রুটির জন্য বহিরাবরণের নামগুলি পুনরায় পরীক্ষা করুন।", + "default-skin-not-found-no-skins": "ওহো! আপনার উইকির পূর্বনির্ধারিত, যেটি $wgDefaultSkin-এ $1 হিসেবে সংজ্ঞায়িত, সেটি পাওয়া যাচ্ছে না।\n\nআপনার কোন আবরণ ইন্সটল করা হয়নি।\n\n; যদি আপনি খুব সম্প্রতি মিডিয়াউইকি ইন্সটল করে থাকেন বা মিডিয়াউইকির সর্বশেষ সংস্করণে হালনাগাদ করে থাকেন:\n: আপনি সম্ভবত গিট থেকে অথবা সরাসরি উৎস কোড থেকে অন্য কোন পদ্ধতি অনুসরণ করে ইন্সটল করেছেন। এমনটাই প্রত্যাশিত। মিডিয়াউইকির ১.২৪ এবং নতুনতর সংস্করণগুলি মূল সংগ্রহশালাতে এখন আর কোন আবরণ অন্তর্ভুক্ত থাকে না। আর স্বয়ংক্রিয়ভাবে সক্রিয় করে না। [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-এর আবরণ নির্দেশিকা] থেকে নিচের পদ্ধতিগুলির সাহায্যে কিছু আবরণ ইন্সটল করার চেষ্টা করুন:\n:* [https://www.mediawiki.org/wiki/Download টারবল ইন্সটলারটি] ডাউনলোড করে; এটিতে অনেকগুলি আবরণ ও এক্সটেনশন রয়েছে। আপনি skins/ সরাসরি প্রতিলিপি করে সাঁটতে পারেন।\n:* নির্দিষ্ট আবরণ টারবলগুলি [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] থেকে ডাউনলোড করতে পারেন।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins গিট ব্যবহার করে বহিরাবরণ ডাউনলোড করতে পারেন]\n: আপনি যদি মিডিয়াউইকি ডেভেলপার হয়ে থাকেন, তাহলে এ কাজটি করলে আপনার গিট সংগ্রহশালার সাথে এটির সংঘাত হবে না।([https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration]-এ দেখুন) কীভাবে বহিরাবরণগুলি সক্রিয় করতে হয় এবং কোন আবরণটি পুনর্নির্ধারিত হবে, তা কীভাবে নির্বাচন করতে হয়।", "default-skin-not-found-row-enabled": "* $1 / $2 (সক্রিয় করা)", "default-skin-not-found-row-disabled": "* $1 / $2 (নিষ্ক্রিয় করা)", "mediastatistics": "মিডিয়া পরিসংখ্যান", @@ -3668,6 +3740,8 @@ "json-error-ctrl-char": "অক্ষর নিয়ন্ত্রণ ত্রুটি, সম্ভবত ভুল এনকোডকৃত", "json-error-syntax": "সিনট্যাক্স ত্রুটি", "json-error-utf8": "ত্রুটিপূর্ণ ইউটিএফ-৮ অক্ষর, সম্ভবত ভুল এনকোডকৃত", + "json-error-recursion": "যে মানটি এনকোড করা হবে সেটিতে এক বা তার অধিক রিকার্সিভ সূত্র আছে", + "json-error-inf-or-nan": "এনকোড করার জন্য মানে এক বা একাধিক NAN অথবা INF মান বিদ্যমান", "json-error-unsupported-type": "এনকোড করা যাবে না এমন একটি মানের ধরন দেয়া হয়েছে", "headline-anchor-title": "এই অনুচ্ছেদে সংযোগ", "special-characters-group-latin": "লাতিন", @@ -3726,6 +3800,7 @@ "log-action-filter-contentmodel-change": "বিষয়বস্তুর রূপ পরিবর্তন", "log-action-filter-contentmodel-new": "অ-মানক বিষয়বস্তুর রূপসহ পাতা তৈরি", "log-action-filter-delete-delete": "পাতা অপসারণ", + "log-action-filter-delete-delete_redir": "পুনর্নির্দেশ পুনর্লিখন", "log-action-filter-delete-restore": "পাতা পুনঃরুদ্ধার", "log-action-filter-delete-event": "লগ অপসারণ", "log-action-filter-delete-revision": "সংশোধন অপসারণ", @@ -3735,6 +3810,8 @@ "log-action-filter-managetags-delete": "ট্যাগ অপসারণ", "log-action-filter-managetags-activate": "ট্যাগ সক্রিয়করণ", "log-action-filter-managetags-deactivate": "ট্যাগ নিষ্ক্রিয়করণ", + "log-action-filter-move-move": "পুনর্নির্দেশগুলি মুছে নতুন করে না লিখে স্থানান্তর", + "log-action-filter-move-move_redir": "পুনর্নির্দেশগুলি মুছে নতুন করে লিখে স্থানান্তর", "log-action-filter-newusers-create": "বেনামী ব্যবহারকারী দ্বারা সৃষ্টি", "log-action-filter-newusers-create2": "নিবন্ধিত ব্যবহারকারী দ্বারা সৃষ্টি", "log-action-filter-newusers-autocreate": "স্বয়ংক্রিয় সৃষ্টি", @@ -3748,10 +3825,16 @@ "log-action-filter-rights-rights": "ম্যানুয়াল পরিবর্তন", "log-action-filter-rights-autopromote": "স্বয়ংক্রিয় পরিবর্তন", "log-action-filter-suppress-event": "লগ বিলোপন", - "log-action-filter-suppress-delete": "পৃষ্ঠা বিলোপন", + "log-action-filter-suppress-revision": "সম্পাদনা দমন", + "log-action-filter-suppress-delete": "পাতা বিলোপন", + "log-action-filter-suppress-block": "বাধাদানের মাধ্যমে ব্যবহারকারী দমন", + "log-action-filter-suppress-reblock": "পুনরায় বাধাদানের মাধ্যমে ব্যবহারকারী দমন", "log-action-filter-upload-upload": "নতুন আপলোড", "log-action-filter-upload-overwrite": "পুনঃআপলোড", + "authmanager-authn-not-in-progress": "শনাক্তকরণ প্রক্রিয়াটি আর অগ্রসর হচ্ছে না কিংবা সেশনের উপাত্ত হারিয়ে গেছে। অনুগ্রহ করে আবার শুরু থেকে শুরু করুন।", "authmanager-authn-no-primary": "সরবরাহকৃত পরিচয়পত্রের অনুমোদন যাচাই করা যায়নি।", + "authmanager-authn-no-local-user": "সরবরাহকৃত পরিচয়জ্ঞাপক তথ্যগুলি এই উইকির কোনও ব্যবহারকারীর সাথে সংশ্লিষ্ট নয়।", + "authmanager-authn-no-local-user-link": "সরবরাহকৃত পরিচয়জ্ঞাপক তথ্যগুলি সঠিক আছে, কিন্তু এই উইকির কোনও ব্যবহারকারীর সাথে সংশ্লিষ্ট নয়। ভিন্ন কোন পদ্ধতিতে অ্যাকাউন্টে প্রবেশ করুন, অথবা নতুন নামে একটি ব্যবহারকারী অ্যাকাউন্ট সৃষ্টি করুন। তাহলে পূর্বের পরিচয়জ্ঞাপক তথ্যগুলি ঐ অ্যাাকাউন্টের সাথে সংযুক্ত করার একটি সুযোগ পাবেন।", "authmanager-authn-autocreate-failed": "একটি স্থানীয় অ্যাকাউন্টের স্বয়ংক্রিয়-সৃষ্টি ব্যর্থ হয়েছে: $1", "authmanager-change-not-supported": "সরবরাহকৃত পরিচয়জ্ঞাপক উপাত্তগুলি পরিবর্তন করা সম্ভব নয়, কারণ কোনকিছুই এগুলি ব্যবহার করবে না।", "authmanager-create-disabled": "অ্যাকাউন্ট সৃষ্টিকরণ নিষ্ক্রিয় করা হয়েছে।", @@ -3780,7 +3863,7 @@ "authmanager-provider-password": "পাসওয়ার্ড-ভিত্তিক প্রমাণীকরণ।", "authmanager-provider-password-domain": "পাসওয়ার্ড ও ডোমেইন-ভিত্তিক প্রমাণীকরণ।", "authmanager-provider-temporarypassword": "অস্থায়ী পাসওয়ার্ড", - "authprovider-confirmlink-message": "আপনার সাম্প্রতিক অ্যাকাউন্টে প্রবেশের বা লগ-ইনের প্রচেষ্টাগুলির উপর ভিত্তি করে জানা গেছে যে নিচের অ্যাকাউন্টগুলির সাথে আপনার উইকি অ্যাকাউন্টটি সংযুক্ত করে দেওয়া সম্ভব। ঐ অ্যাকাউন্টগুলির সাথে সংযুক্ত হলে আপনি ঐগুলি থেকে লগ-ইন করতে পারবেন। অনুগ্রহ যে অ্যাকাউন্টগুলির সাথে সংযুক্ত হতে চান, সেগুলি নির্বাচন করুন।", + "authprovider-confirmlink-message": "আপনার সাম্প্রতিক অ্যাকাউন্টে প্রবেশের প্রচেষ্টাগুলির উপর ভিত্তি করে জানা গেছে যে নিচের অ্যাকাউন্টগুলির সাথে আপনার উইকি অ্যাকাউন্টটি সংযুক্ত করে দেওয়া সম্ভব। ঐ অ্যাকাউন্টগুলির সাথে সংযুক্ত হলে আপনি ঐগুলি থেকে প্রবেশ করতে পারবেন। অনুগ্রহ যে অ্যাকাউন্টগুলির সাথে সংযুক্ত হতে চান, সেগুলি নির্বাচন করুন।", "authprovider-confirmlink-request-label": "অ্যাকাউন্ট যা সংযুক্ত হওয়া উচিত", "authprovider-confirmlink-success-line": "$1: সংযোগ করা সফল হয়েছে।", "authprovider-confirmlink-failed": "অ্যাকাউন্ট সংযোগ করা সম্পূর্ণরূপে সফল হয়নি: $1", diff --git a/languages/i18n/br.json b/languages/i18n/br.json index d2dc9e713d..4e28666666 100644 --- a/languages/i18n/br.json +++ b/languages/i18n/br.json @@ -758,6 +758,8 @@ "post-expand-template-argument-warning": "Diwallit : war ar bajenn-mañ ez eus eus da nebeutañ un arventenn eus ur patrom zo re vras.\nA-gostez eo bet lezet an arventenn-se.", "post-expand-template-argument-category": "Pajennoù enno arventennoù patrom bet lezet a-gostez", "parser-template-loop-warning": "Patrom e kelc'h detektet : [[$1]]", + "template-loop-category": "Pajennoù enno lagadennoù patrom", + "template-loop-category-desc": "Ul lagadenn batrom zo er bajenn, d.l.e. ur patrom en em c'halv e-unan en ur mod rekursivel.", "parser-template-recursion-depth-warning": "Tizhet bevenn donder galvoù rekursivek ar patromoù ($1)", "language-converter-depth-warning": "Aet eur en tu all d'ar vevenn amdreiñ yezhoù ($1)", "node-count-exceeded-category": "Pajennoù m'eur aet en tu all d'an niver a skoulmoù", @@ -1365,6 +1367,7 @@ "rcfilters-filter-logactions-description": "Obererezhioù melestradurel, krouiñ kontoù, diverkañ pajennoù, enporzhiañ...", "rcfilters-hideminor-conflicts-typeofchange-global": "Tabut zo etre ar sil \"Kemmoù dister\" hag unan pe meur a sil a Seurt kemmoù peogwir n'haller merkañ kemmoù zo evel \"dister\". Kavet e vo ar siloù o tabutal e takad ar siloù gweredekaet, a-us.", "rcfilters-hideminor-conflicts-typeofchange": "Seurtoù kemmoù zo n'hallont ket bezañ merket evel \"dister,\", rak se ez eus tabut etre ar sil-mañ ha siloù ar Seurtoù kemmoù da heul : $1", + "rcfilters-typeofchange-conflicts-hideminor": "Tabut zo etre ar sil-mañ Seurt kemmoù gant sil ar \"c'hemmoù dister\". Kemmoù zo n'hallont ket bezañ merket evel \"dister\".", "rcnotefrom": "Setu aze {{PLURAL:$5|ar c'hemm|ar c'hemmoù}} c'hoarvezet abaoe an $3, $4 ($1 d'ar muiañ).", "rclistfrom": "Diskouez ar c'hemmoù diwezhañ abaoe an/ar $3 $2", "rcshowhideminor": "$1 ar c'hemmoù dister", diff --git a/languages/i18n/de.json b/languages/i18n/de.json index 2cb90bb0ff..c348aaba64 100644 --- a/languages/i18n/de.json +++ b/languages/i18n/de.json @@ -829,6 +829,8 @@ "post-expand-template-argument-warning": "'''Warnung:''' Diese Seite enthält mindestens einen Parameter in einer Vorlage, der expandiert zu groß ist. Diese Parameter werden ignoriert.", "post-expand-template-argument-category": "Seiten mit ignorierten Vorlagenparametern", "parser-template-loop-warning": "Vorlagenschleife entdeckt: [[$1]]", + "template-loop-category": "Seiten mit Vorlagenschleifen", + "template-loop-category-desc": "Die Seite enthält eine Vorlagenschleife, z. B. eine Vorlage, die sich selbst rekursiv aufruft.", "parser-template-recursion-depth-warning": "Vorlagenrekursionstiefengrenze überschritten ($1)", "language-converter-depth-warning": "Sprachkonvertertiefenlimit überschritten ($1)", "node-count-exceeded-category": "Seiten, die die Knotenanzahl überschritten haben", diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 6b1c73dfb4..0c8bf210c8 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -792,6 +792,8 @@ "post-expand-template-argument-warning": "Warning: This page contains at least one template argument that has a too large expansion size.\nThese arguments have been omitted.", "post-expand-template-argument-category": "Pages containing omitted template arguments", "parser-template-loop-warning": "Template loop detected: [[$1]]", + "template-loop-category": "Pages with template loops", + "template-loop-category-desc": "The page contains a template loop, ie. a template which calls itself recursively.", "parser-template-recursion-depth-warning": "Template recursion depth limit exceeded ($1)", "language-converter-depth-warning": "Language converter depth limit exceeded ($1)", "node-count-exceeded-category": "Pages where node count is exceeded", diff --git a/languages/i18n/et.json b/languages/i18n/et.json index 2970dd8c78..2c8fecf90d 100644 --- a/languages/i18n/et.json +++ b/languages/i18n/et.json @@ -1232,7 +1232,7 @@ "action-move-rootuserpages": "teisaldada kasutajalehekülgi", "action-move-categorypages": "teisaldada kategoorialehekülgi", "action-movefile": "seda faili teisaldada", - "action-upload": "seda faili üles laadida", + "action-upload": "faile üles laadida", "action-reupload": "seda olemasolevat faili üle kirjutada", "action-reupload-shared": "seda jagatud varamus asuvat faili üle kirjutada", "action-upload_by_url": "seda faili internetiaadressilt üles laadida", diff --git a/languages/i18n/eu.json b/languages/i18n/eu.json index 24508d36cb..63508b489d 100644 --- a/languages/i18n/eu.json +++ b/languages/i18n/eu.json @@ -360,6 +360,8 @@ "no-null-revision": "Ezin izan da \"$1\" orrialdearen berrikuspen huts bat sortu", "badtitle": "Izenburu ezegokia", "badtitletext": "Eskatutako orri izenburua ez da baliozkoa, hutsik dago, edo gaizki lotutako hizkuntzen arteko lotura da. Baliteke izenburuetan erabili ezin den karaktereren bat edukitzea.", + "title-invalid-talk-namespace": "Eskatutako orriaren izenburuak agian existitzen ez den eztabaida-orri bati egiten dio erreferentzia.", + "title-invalid-characters": "Eskatutako orriaren izenburuak baliagarri ez diren karaktereak ditu: \"$1\".", "perfcached": "Hurrengo datuak katxean gordeta daude eta litekeena da guztiz eguneratuta ez egotea. Gehienez {{PLURAL:$1|emaitza 1 dago|$1 emaitza daude}} eskuragarri katxean.", "perfcachedts": "Hurrengo datuak katxean daude, $1 eguneratu zen azkenekoz. {{PLURAL:$4|emaitza 1 dago|$4 emaitza daude}} eskuragarri katxean.", "querypage-no-updates": "Orrialde honen berritzeak ez dira baimentzen. Hemen dagoen data ez da zuzenean berrituko.", @@ -523,6 +525,9 @@ "botpasswords-label-cancel": "Utzi", "botpasswords-label-delete": "Ezabatu", "botpasswords-label-resetpassword": "Pasahitza berrezarri", + "botpasswords-label-grants-column": "Baimenduta", + "botpasswords-bad-appid": "Bot horren \"$1\" izen hori ez da baliagarria.", + "botpasswords-insert-failed": "Ezin izan da bot \"$1\" izen hori gehitu. Dagoeneko gehituta zegoen?", "resetpass_forbidden": "Ezin dira pasahitzak aldatu", "resetpass-no-info": "Orrialde honetara zuzenean sartzeko izena eman behar duzu.", "resetpass-submit-loggedin": "Pasahitza aldatu", diff --git a/languages/i18n/fa.json b/languages/i18n/fa.json index 4bcece96b3..6f50a370c2 100644 --- a/languages/i18n/fa.json +++ b/languages/i18n/fa.json @@ -800,6 +800,8 @@ "post-expand-template-argument-warning": "'''هشدار:''' این صفحه شامل دست کم یک پارامتر الگو است که بیش از اندازه بزرگ است.\nاین پارامترها نادیده گرفته شدند.", "post-expand-template-argument-category": "صفحه‌های حاوی الگوهایی با پارامترهای نادیده‌گرفته‌شده", "parser-template-loop-warning": "حلقه در الگو پیدا شد: [[$1]]", + "template-loop-category": "صفحه‌های دارای حلقه در الگو", + "template-loop-category-desc": "صفحه دارای حلقه در الگو، مثلا الگویی که از خودش درون خودش استفاده‌کرده‌است.", "parser-template-recursion-depth-warning": "محدودیت عمق بازگشت الگو رد شد ($1)", "language-converter-depth-warning": "محدودیت عمق مبدل زبانی رد شد ($1)", "node-count-exceeded-category": "صفحه‌هایی که از حداکثر تعداد گره تجاوز کرده‌اند", @@ -834,8 +836,8 @@ "page_first": "نخست", "page_last": "واپسین", "histlegend": "انتخاب تفاوت: دکمه‌های گرد کنار ویرایش‌هایی که می‌خواهید با هم مقایسه کنید را علامت بزنید و دکمهٔ Enter را بزنید یا دکمهٔ پایین را فشار دهید.
\nاختصارات: '''({{int:cur}})''' = تفاوت با نسخهٔ فعلی، '''({{int:last}})''' = تفاوت با نسخهٔ قبلی، '''({{int:minoreditletter}})''' = ویرایش جزئی.", - "history-fieldset-title": "مرور تاریخچه", - "history-show-deleted": "فقط حذف‌شده", + "history-fieldset-title": "جستجو برای نسخه‌ها", + "history-show-deleted": "فقط حذف‌شدهفقط نسخه‌های حذف شده", "histfirst": "قدیمی‌ترین", "histlast": "جدیدترین", "historysize": "({{PLURAL:$1|۱ بایت|$1 بایت}})", @@ -1353,11 +1355,14 @@ "rcfilters-invalid-filter": "پالایهٔ نامعتبر", "rcfilters-empty-filter": "پالایه‌ای فعال نیست. همهٔ مشارکت‌های دیده می‌شوند.", "rcfilters-filterlist-title": "پالایه‌ها", + "rcfilters-filterlist-whatsthis": "این چیست؟", "rcfilters-filterlist-feedbacklink": "ارسال بازخورد برای پالایه‌های جدید (آزمایشی)", "rcfilters-highlightbutton-title": "پررنگ کردن نتایج", "rcfilters-highlightmenu-title": "انتخاب رنگ", "rcfilters-highlightmenu-help": "یک رنگ انتخاب کنید تا این خصوصیت پر رنگ شود", "rcfilters-filterlist-noresults": "پالایه‌ای یافت نشد", + "rcfilters-noresults-conflict": "نتیجه‌ای یافت نشد چون محدوده جستجو دارای تداخل است", + "rcfilters-state-message-subset": "این پالایه تاثیری ندارد چون نتایج آن شامل موارد مرزی {{PLURAL:$2|پالایه|پالایه}} است (از پررنگ‌کننده برای تمایز استفاده کنید): $1", "rcfilters-filtergroup-registration": "ثبت‌نام کاربر", "rcfilters-filter-registered-label": "ثبت شده", "rcfilters-filter-registered-description": "ورود ویرایشگران.", diff --git a/languages/i18n/fi.json b/languages/i18n/fi.json index b97f4d08e3..26c372bbb7 100644 --- a/languages/i18n/fi.json +++ b/languages/i18n/fi.json @@ -1129,7 +1129,7 @@ "userrights-expiry-current": "Vanhentuu $1", "userrights-expiry-none": "Ei vanhene", "userrights-expiry": "Vanhentuu:", - "userrights-expiry-existing": "Nykyinen vanhentumisaika: $3, $2", + "userrights-expiry-existing": "Nykyinen vanhentumisaika: $2 kello $3", "userrights-expiry-othertime": "Muu aika:", "userrights-expiry-options": "1 päivä:1 day,1 viikko:1 week,1 kuukausi:1 month,3 kuukautta:3 months,6 kuukautta:6 months,1 vuosi:1 year", "userrights-conflict": "Päällekkäinen käyttöoikeuksien muutos! Tarkista tekemäsi muutokset ja vahvista ne.", @@ -1352,7 +1352,9 @@ "rcfilters-filter-editsbyself-description": "Muokkauksesi", "rcfilters-filter-editsbyother-label": "Muiden muokkaukset", "rcfilters-filter-editsbyother-description": "Muutokset jotka tehneet muut käyttäjät (et sinä).", + "rcfilters-filtergroup-userExpLevel": "Kokemustaso (vain rekisteröityneet käyttäjät)", "rcfilters-filter-user-experience-level-newcomer-label": "Tulokkaat", + "rcfilters-filter-user-experience-level-newcomer-description": "Vähemmän kuin 10 muokkausta ja 4 päivää aktiivisuutta.", "rcfilters-filter-user-experience-level-learner-label": "Oppijat", "rcfilters-filter-user-experience-level-experienced-label": "Kokeneet käyttäjät", "rcfilters-filter-user-experience-level-experienced-description": "Enemmän kuin 30 päivää aktiivisena ja 500 muokkausta.", @@ -1369,6 +1371,7 @@ "rcfilters-filtergroup-changetype": "Muutoksen tyyppi", "rcfilters-filter-pageedits-label": "Sivun muokkaukset", "rcfilters-filter-pageedits-description": "Muokkaukset wikin sisältöön, keskusteluihin, luokkakuvauksiin....", + "rcfilters-filter-newpages-label": "Sivujen luonnit", "rcfilters-filter-newpages-description": "Muokkaukset jotka luovat uusia sivuja.", "rcfilters-filter-categorization-label": "Luokkamuutokset", "rcfilters-filter-logactions-label": "Kirjatut toimet", diff --git a/languages/i18n/fr.json b/languages/i18n/fr.json index 7342f353e3..fd8f66aba9 100644 --- a/languages/i18n/fr.json +++ b/languages/i18n/fr.json @@ -903,6 +903,8 @@ "post-expand-template-argument-warning": "Attention : cette page contient au moins un paramètre de modèle dont la taille après expansion est trop importante. \nCes arguments n’ont donc pas été inclus.", "post-expand-template-argument-category": "Pages contenant des paramètres de modèle non évalués", "parser-template-loop-warning": "Modèle en boucle détecté : [[$1]]", + "template-loop-category": "Pages avec des boucles de modèle", + "template-loop-category-desc": "La page contient une boucle de modèle, c.à.d. un modèle qui s’appelle lui-même récursivement.", "parser-template-recursion-depth-warning": "Limite de profondeur des appels récursifs de modèles dépassée ($1)", "language-converter-depth-warning": "Limite de profondeur du convertisseur de langue dépassée ($1)", "node-count-exceeded-category": "Pages dépassant le nombre de nœuds maximal", diff --git a/languages/i18n/he.json b/languages/i18n/he.json index 8f7dd009a4..864b0d7f2e 100644 --- a/languages/i18n/he.json +++ b/languages/i18n/he.json @@ -778,6 +778,8 @@ "post-expand-template-argument-warning": "'''אזהרה:''' דף זה כולל לפחות תבנית אחת שבה פרמטרים גדולים מדי.\nפרמטרים אלה הושמטו.", "post-expand-template-argument-category": "דפים שבהם הושמטו פרמטרים של תבניות", "parser-template-loop-warning": "נמצאה תבנית הקוראת לעצמה: [[$1]]", + "template-loop-category": "דפים עם לולאות בתבנית", + "template-loop-category-desc": "הדף הזה מכיל לולאה בתבנית, כלומר תבנית שקוראת לעצמה באופן רקורסיבי.", "parser-template-recursion-depth-warning": "עומק התבניות המוכללות זו בזו עבר את המגבלה ($1)", "language-converter-depth-warning": "עומק ממיר השפה עבר את המגבלה ($1)", "node-count-exceeded-category": "דפים שבהם מספר הצמתים גדול מדי", diff --git a/languages/i18n/hr.json b/languages/i18n/hr.json index e179442f6f..a24bed7433 100644 --- a/languages/i18n/hr.json +++ b/languages/i18n/hr.json @@ -613,7 +613,7 @@ "savearticle": "Sačuvaj stranicu", "savechanges": "Sačuvaj stranicu", "publishpage": "Objavi stranicu", - "publishchanges": "Objavi izmjene", + "publishchanges": "Objavi unos", "preview": "Pregled kako će stranica izgledati", "showpreview": "Prikaži kako će izgledati", "showdiff": "Prikaži promjene", diff --git a/languages/i18n/ja.json b/languages/i18n/ja.json index 153a8907c3..43f121384f 100644 --- a/languages/i18n/ja.json +++ b/languages/i18n/ja.json @@ -795,6 +795,7 @@ "content-not-allowed-here": "ページ [[$2]] では、「$1」コンテンツは許可されていません", "editwarning-warning": "このページを離れると、あなたが行なった変更がすべて失われてしまうかもしれません。\nログインしている場合、個人設定の「{{int:prefs-editing}}」タブでこの警告を表示しないようにすることができます。", "editpage-invalidcontentmodel-title": "対応していないコンテンツ形式", + "editpage-invalidcontentmodel-text": "コンテンツ・モデル「$1」は対応していません。", "editpage-notsupportedcontentformat-title": "対応していないコンテンツ形式", "editpage-notsupportedcontentformat-text": "コンテンツ モデル $2 は、コンテンツ形式 $1 に対応していません。", "content-model-wikitext": "ウィキテキスト", @@ -803,6 +804,8 @@ "content-model-css": "CSS", "content-json-empty-object": "空のオブジェクト", "content-json-empty-array": "空の配列", + "deprecated-self-close-category": "無効な自己終了HTMLタグを使用しているページ", + "deprecated-self-close-category-desc": "<b/> や <span/> 等の無効な自己終了HTMLタグを含むページ。これらのタグはまもなく HTML5 の仕様に準拠する動作へと変更されるため、ウィキテキスト内での使用は非推奨となりました。", "duplicate-args-warning": "警告: [[:$1]]は複数の「$3」パラメータを伴って[[:$2]]を呼び出しています。提供されている最後の値のみが使用されます。", "duplicate-args-category": "テンプレート呼び出しで引数が重複しているページ", "duplicate-args-category-desc": "引数が重複したテンプレート呼び出しを含むページ。例: {{foo|bar=1|bar=2}}、{{foo|bar|1=baz}}", @@ -813,6 +816,8 @@ "post-expand-template-argument-warning": "警告: このページは、展開後のサイズが大きすぎるテンプレート引数を少なくとも 1 つ含んでいます。\nこれらの引数を省略しました。", "post-expand-template-argument-category": "省略されたテンプレート引数を含むページ", "parser-template-loop-warning": "テンプレートのループを検出しました: [[$1]]", + "template-loop-category": "テンプレートがループしているページ", + "template-loop-category-desc": "テンプレート自身が再帰的自己参照を行うなど、ループするテンプレートが含まれているページ。", "parser-template-recursion-depth-warning": "テンプレートの再帰の深さ ($1) が上限を超えました", "language-converter-depth-warning": "言語変換機能の深さ ($1) が制限を超えました", "node-count-exceeded-category": "ノード数が制限を超えたページ", @@ -847,8 +852,8 @@ "page_first": "先頭", "page_last": "末尾", "histlegend": "差分の選択: 比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。
\n凡例: ({{int:cur}})=最新版との比較、({{int:last}})=直前の版との比較、{{int:minoreditletter}}=細部の編集", - "history-fieldset-title": "履歴の閲覧", - "history-show-deleted": "削除済みのみ", + "history-fieldset-title": "版の検索", + "history-show-deleted": "削除版のみ", "histfirst": "最古", "histlast": "最新", "historysize": "({{PLURAL:$1|$1バイト}})", @@ -1093,6 +1098,7 @@ "username": "{{GENDER:$1|利用者名}}:", "prefs-memberingroups": "{{GENDER:$2|所属}}{{PLURAL:$1|グループ}}:", "prefs-memberingroups-type": "$1", + "group-membership-link-with-expiry": "$1 ($2 まで)", "prefs-registration": "登録日時:", "prefs-registration-date-time": "$1", "yourrealname": "本名:", @@ -1144,7 +1150,7 @@ "userrights-groupsmember": "所属グループ:", "userrights-groupsmember-auto": "自動的に付与される権限:", "userrights-groupsmember-type": "$1", - "userrights-groups-help": "この利用者が属するグループを変更できます。\n* チェックが入っているボックスは、この利用者がそのグループに属していることを意味します。\n* チェックが入っていないボックスは、この利用者がそのグループに属していないことを意味します。\n* 「*」はグループに一旦追加した場合に除去 (あるいはその逆) ができないことを示しています。", + "userrights-groups-help": "この利用者が属するグループを変更できます。\n* チェックが入っているボックスは、この利用者がそのグループに属していることを意味します。\n* チェックが入っていないボックスは、この利用者がそのグループに属していないことを意味します。\n*「*」はグループに一旦追加した場合に除去 (あるいはその逆) ができないことを示しています。\n*「#」は有効期限の延長のみを行うことができますが、現在の期限よりも短縮することはできません。", "userrights-reason": "理由:", "userrights-no-interwiki": "他ウィキ上における利用者権限の編集権限は、ありません。", "userrights-nodatabase": "データベース$1は存在しないか、ローカル上にありません。", @@ -1152,9 +1158,14 @@ "userrights-unchangeable-col": "変更できないグループ", "userrights-irreversible-marker": "$1*", "userrights-expiry-current": "期限 $1", - "userrights-expiry-none": "有効期限切れではありません", + "userrights-expiry-none": "無期限", "userrights-expiry": "有効期限:", + "userrights-expiry-existing": "現在の有効期限: $2 $3", "userrights-expiry-othertime": "その他の期間:", + "userrights-expiry-options": "1日:1 day,1週間:1 week,1か月:1 month,3か月:3 months,6か月:6 months,1 年:1 year", + "userrights-invalid-expiry": "「$1」グループに指定された有効期限は無効です。", + "userrights-expiry-in-past": "「$1」グループに指定された有効期限は過去の時刻です。", + "userrights-cannot-shorten-expiry": "「$1」グループの有効期限を短縮できません。このグループを与奪できる権限を持つ利用者だけが有効期限を短縮できます。", "userrights-conflict": "利用者権限の変更が競合しています! 変更内容を確認してください。", "group": "グループ:", "group-user": "登録利用者", @@ -1349,6 +1360,7 @@ "rcfilters-clear-all-filters": "すべてのフィルターをクリア", "rcfilters-invalid-filter": "無効なフィルター", "rcfilters-filterlist-title": "フィルター", + "rcfilters-highlightmenu-title": "色を選ぶ", "rcfilters-filterlist-noresults": "フィルターが見つかりませんでした", "rcfilters-filtergroup-registration": "利用者登録", "rcfilters-filter-registered-label": "登録済み", @@ -1356,6 +1368,20 @@ "rcfilters-filter-unregistered-label": "未登録", "rcfilters-filter-bots-label": "ボット", "rcfilters-filter-humans-label": "人間(ボットではない)", + "rcfilters-filter-patrolled-label": "巡回済み", + "rcfilters-filter-patrolled-description": "巡回済みとマークされた編集。", + "rcfilters-filter-unpatrolled-label": "未巡回", + "rcfilters-filter-unpatrolled-description": "まだ巡回済みとマークされていない編集。", + "rcfilters-filtergroup-significance": "重要度", + "rcfilters-filter-minor-label": "細部の編集", + "rcfilters-filter-minor-description": "編集者が細部の編集とマークしたもの。", + "rcfilters-filter-major-label": "細部でない編集", + "rcfilters-filter-major-description": "細部とマークされていない編集。", + "rcfilters-filtergroup-changetype": "変更の種類", + "rcfilters-filter-pageedits-label": "ページの編集", + "rcfilters-filter-newpages-label": "ページの作成", + "rcfilters-filter-newpages-description": "ページを新規作成する編集。", + "rcfilters-filter-categorization-label": "カテゴリ変更", "rcnotefrom": "以下は$3 $4以降の{{PLURAL:$5|更新です}} (最大 $1 件)。", "rclistfrom": "$3の$2以降の更新を表示する", "rcshowhideminor": "細部の編集を$1", @@ -2094,7 +2120,7 @@ "editcomment": "編集内容の要約: $1", "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|トーク]]) による編集を [[User:$1|$1]] による直前の版へ差し戻しました", "revertpage-nouser": "非表示の利用者による編集を {{GENDER:$1|[[User:$1|$1]]}} による直前の版へ差し戻しました", - "rollback-success": "$1による編集を差し戻しました。\n$2による直前の版へ変更されました。", + "rollback-success": "{{GENDER:$3|$1}}による編集を差し戻しました。\n{{GENDER:$4|$2}}による直前の版へ変更されました。", "rollback-success-notify": "$1による編集を差し戻しました。\n$2による直前の版へ変更されました。[$3 変更を表示]", "sessionfailure-title": "セッションの失敗", "sessionfailure": "ログインのセッションに問題が発生しました。\nセッション乗っ取りを防ぐため、操作を取り消しました。\n前のページへ戻って再度読み込んだ後に、もう一度試してください。", @@ -2108,6 +2134,7 @@ "changecontentmodel-success-text": "[[:$1]]のコンテンツ・タイプは変更されました。", "changecontentmodel-cannot-convert": "[[:$1]]のコンテンツは$2の型には変換できません。", "changecontentmodel-nodirectediting": "$1 コンテンツ・モデルは、ダイレクト編集をサポートしていません。", + "changecontentmodel-emptymodels-title": "利用可能なコンテンツ・モデルがありません", "changecontentmodel-emptymodels-text": "[[:$1]]のコンテンツはどの型にも変換できません。", "log-name-contentmodel": "コンテンツ・モデル変更記録", "log-description-contentmodel": "ページのコンテンツ・モデルに関連する出来事", @@ -2155,8 +2182,8 @@ "protect-cantedit": "このページの編集権限がないため、保護レベルを変更できません。", "protect-othertime": "その他の期間:", "protect-othertime-op": "その他の期間", - "protect-existing-expiry": "現在の保護期限: $2 $3", - "protect-existing-expiry-infinity": "既存の有効期限: 無期限", + "protect-existing-expiry": "現在の有効期限: $2 $3", + "protect-existing-expiry-infinity": "現在の有効期限: 無期限", "protect-otherreason": "他の、または追加の理由:", "protect-otherreason-op": "その他の理由", "protect-dropdown": "*よくある保護理由\n** 度重なる荒らし\n** 度重なるスパム投稿\n** 非生産的な編集合戦\n** 高負荷ページ", @@ -2371,6 +2398,7 @@ "sorbs": "DNSBL", "sorbsreason": "ご使用中のIPアドレスが、{{SITENAME}}の使用しているDNSBLに公開プロキシとして記載されています。", "sorbs_create_account_reason": "ご使用中のIPアドレスが、{{SITENAME}}の使用しているDNSBLに公開プロキシとして記載されています。\nアカウント作成はできません", + "softblockrangesreason": "現在の IP アドレス ($1) からの匿名投稿は許可されていません。ログインしてください。", "xffblockreason": "X-Forwarded-For ヘッダーに含まれている IP アドレスがブロックされています。これはあなたのものか、あなたが利用しているプロキシサーバーのものです。元のブロックの理由は: $1", "cant-see-hidden-user": "ブロックしようとしている利用者は、既にブロックされ隠されています。\nあなたには hideuser 権限がないため、この利用者のブロックの閲覧/編集はできません。", "ipbblocked": "あなた自身がブロックされているため、他の利用者のブロックやブロック解除はできません。", @@ -2406,6 +2434,8 @@ "cant-move-to-user-page": "利用者下位ページ以外の利用者ページに、ページを移動させる権限がありません。", "cant-move-category-page": "カテゴリのページを移動させる権限がありません。", "cant-move-to-category-page": "ページをカテゴリのページに移動させる権限がありません。", + "cant-move-subpages": "下位のページを移動する権限がありません。", + "namespace-nosubpages": "名前空間「$1」はサブページが許可されていません。", "newtitle": "新しいページ名:", "move-watch": "移動元と移動先ページをウォッチ", "movepagebtn": "ページを移動", @@ -2759,6 +2789,7 @@ "newimages-showbots": "ボットによるアップロードを表示", "newimages-hidepatrolled": "巡回済みのアップロードを隠す", "noimages": "表示できるものがありません。", + "gallery-slideshow-toggle": "トグルサムネイル", "ilsubmit": "検索", "bydate": "日付順", "sp-newimages-showfrom": "$1の$2以降の新しいファイルを表示", @@ -3446,6 +3477,7 @@ "tag-filter": "[[Special:Tags|タグ]]絞り込み:", "tag-filter-submit": "絞り込み", "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|タグ}}]]: $2)", + "tag-mw-contentmodelchange": "コンテンツ・モデルの変更", "tags-title": "タグ", "tags-intro": "このページは、ソフトウェアが編集に対して付けるタグとその意味の一覧です。", "tags-tag": "タグ名", @@ -3642,6 +3674,7 @@ "logentry-tag-update-revision": "$1 がページ「$3」の版 $4 のタグを{{GENDER:$2|更新しました}} ($6 を{{PLURAL:$7|追加}}、$8 を{{PLURAL:$9|削除}})", "logentry-tag-update-logentry": "$1 がページ「$3」の記録項目 $5 のタグを{{GENDER:$2|更新しました}} ($6 を{{PLURAL:$7|追加}}、$8 を{{PLURAL:$9|削除}})", "rightsnone": "(なし)", + "rightslogentry-temporary-group": "$1 ($2までの臨時)", "feedback-adding": "ページへのフィードバックの追加...", "feedback-back": "戻る", "feedback-bugcheck": "Great! [$1 既出のバグ]に既に含まれていないかご確認ください。", @@ -3718,6 +3751,7 @@ "pagelang-select-lang": "言語を選択", "pagelang-reason": "理由", "pagelang-submit": "変更", + "pagelang-nonexistent-page": "ページ $1 は存在しません。", "right-pagelang": "ページの言語を変更", "action-pagelang": "ページの言語の変更", "log-name-pagelang": "言語変更の記録", @@ -3915,5 +3949,5 @@ "usercssispublic": "注意: CSS のサブページは第三者が閲覧可能なため、機微な情報を含めないでください。", "restrictionsfield-badip": "無効な IP アドレス、またはその範囲: $1", "restrictionsfield-label": "許可する IP の範囲:", - "restrictionsfield-help": "一行につき、単一の IP アドレス、もしくは CIDR による範囲。全帯域からの接続を許可する場合は
0.0.0.0/0
::/0" + "restrictionsfield-help": "一行につき、単一の IP アドレス、もしくは CIDR による範囲。全帯域からの接続を許可する場合:
0.0.0.0/0\n::/0
" } diff --git a/languages/i18n/mg.json b/languages/i18n/mg.json index f933f87734..35762e54c4 100644 --- a/languages/i18n/mg.json +++ b/languages/i18n/mg.json @@ -3190,11 +3190,14 @@ "duration-centuries": "taonjato $1{{PLURAL:$1|}}", "limitreport-walltime": "Tena fotoam-pampiasana", "limitreport-walltime-value": "$1 segondra{{PLURAL:$1|}}", + "expandtemplates": "Hanitatra ny endrika", + "expand_templates_input": "Wikisoratra loharano:", "expand_templates_output": "Valiny", "expand_templates_xml_output": "Famoahana XML", "expand_templates_html_output": "Famoahana HTML", "expand_templates_ok": "OK", "expand_templates_remove_comments": "Hanala resaka", + "expand_templates_generate_rawhtml": "Haneho HTML maina", "expand_templates_preview": "Topi-maso", "pagelang-name": "Pejy", "pagelang-language": "Fiteny", @@ -3218,6 +3221,7 @@ "mediastatistics-header-text": "Soratra", "mediastatistics-header-executable": "Azo alefa", "mediastatistics-header-total": "Rakitra rehetra", + "json-error-syntax": "Hadisoan-drariteny", "special-characters-group-latin": "latina", "special-characters-group-latinextended": "latina nitarina", "special-characters-group-ipa": "AAI", @@ -3240,7 +3244,14 @@ "special-characters-title-endash": "tsipika anglisy", "special-characters-title-emdash": "tsipika em", "special-characters-title-minus": "marika mainosy", + "mw-widgets-mediasearch-noresults": "Tsy nahitana valiny", + "mw-widgets-titleinput-description-new-page": "Tsy mbola misy ilay pejy", + "mw-widgets-usersmultiselect-placeholder": "Hanampy be kokoa", "sessionmanager-tie": "Tsy afaka mampikambana karazan-kataka fampamantarana maromaro: $1.", + "log-action-filter-all": "Manontolo", + "log-action-filter-block-block": "Bolongana", + "log-action-filter-protect-protect": "Fiarovana", + "log-action-filter-protect-unprotect": "Fanalana fiarovana", "authmanager-authn-not-in-progress": "Tsy andalam-panaovana ny fampamantarana, na very ny angon'ny sesiôna. Avereno hatramin'ny voalohany azafady.", "authmanager-authplugin-setpass-failed-title": "Tsy nahomby ny fanovana tenimiafina", "authmanager-authplugin-setpass-failed-message": "Nandà ny fanovana tenimiafina ny plugin fampamantarana.", @@ -3250,9 +3261,26 @@ "authmanager-username-help": "Anaram-pikambana ho an'ny fampamantarana.S", "authmanager-password-help": "Tenimiafina ho an'ny fampamantarana.", "authmanager-retype-help": "tenimiafina indray hanamarinana.", + "authmanager-email-label": "Mailaka", + "authmanager-email-help": "Adiresy mailaka:", + "authmanager-realname-label": "Tena anarana:", "authmanager-provider-password": "Fampamamtarana mifototra amin'ny tenimiafina", "authmanager-provider-password-domain": "Fampamantarana mifototra amin'ny tenimiafina ary vala", "authmanager-provider-temporarypassword": "Tenimiafina vonjimaika", + "authprovider-resetpass-skip-label": "Dinganina", "authprovider-resetpass-skip-help": "Handingana ny famerenam-tenimiafina.", - "authform-nosession-login": "nahomby ny fidirana, fa tsy mahatadidy anao tafiditra ny mpitety tranonkalanao." + "authform-nosession-login": "nahomby ny fidirana, fa tsy mahatadidy anao tafiditra ny mpitety tranonkalanao.", + "specialpage-securitylevel-not-allowed-title": "Voarara", + "changecredentials": "Hanova torohay fampahafantarana", + "changecredentials-submit": "Ovaina ny torohay fampahafantarana", + "changecredentials-invalidsubpage": "Tsy karazan-torohay fampahafantarana azo ekena $1", + "changecredentials-success": "Niova ny torohay fampahafantarana anao.", + "removecredentials": "Hanala torohay fampahafantarana", + "removecredentials-submit": "Esorina ny torohay fampahafantarana", + "credentialsform-provider": "Karazan-torohay fampahafantarana:", + "credentialsform-account": "Anaran-kaonty:", + "restrictionsfield-badip": "Adiresy na valan'IP tsy azo raisina: $1", + "restrictionsfield-label": "Valan' IP ekena:", + "revid": "versiona $1", + "pageid": "ID pejy $1" } diff --git a/languages/i18n/mk.json b/languages/i18n/mk.json index 9371f3fea7..7c87e4d268 100644 --- a/languages/i18n/mk.json +++ b/languages/i18n/mk.json @@ -766,6 +766,8 @@ "post-expand-template-argument-warning": "'''Предупредување:''' Оваа страница содржи најмалку еден шаблонски аргумент кој е со преголема должина.\nТаквите аргументи ќе бидат изземени при расчленувањето.", "post-expand-template-argument-category": "Страници кои содржат изземени аргументи на шаблони", "parser-template-loop-warning": "Пронајдена е јамка во шаблонот: [[$1]]", + "template-loop-category": "Страници со шаблонски јамки", + "template-loop-category-desc": "Страницава содржи шаблонска јамка, т.е. шаблон кој повторливо се самоповикува", "parser-template-recursion-depth-warning": "Пречекорена е границата на длабочината на рекурзијата во шаблонот ($1)", "language-converter-depth-warning": "Пречекорена е границата на длабочината на јазичниот претворач ($1)", "node-count-exceeded-category": "Страници каде е надминат бројот на јазли", diff --git a/languages/i18n/nl.json b/languages/i18n/nl.json index 9d296f08bd..7289450b15 100644 --- a/languages/i18n/nl.json +++ b/languages/i18n/nl.json @@ -859,7 +859,7 @@ "page_first": "eerste", "page_last": "laatste", "histlegend": "Selectie voor verschillen: selecteer de te vergelijken versies en toets ENTER of de knop onderaan.
\nVerklaring afkortingen: '''({{int:cur}})''' = verschil met huidige versie, '''({{int:last}})''' = verschil met voorgaande versie, '''{{int:minoreditletter}}''' = kleine wijziging", - "history-fieldset-title": "Door geschiedenis bladeren", + "history-fieldset-title": "Naar versies zoeken", "history-show-deleted": "Alleen verwijderde versies", "histfirst": "oudste", "histlast": "nieuwste", @@ -1384,6 +1384,7 @@ "rcfilters-highlightmenu-title": "Kies een kleur", "rcfilters-highlightmenu-help": "Selecteer een kleur om deze eigenschap uit te lichten", "rcfilters-filterlist-noresults": "Geen filters gevonden", + "rcfilters-noresults-conflict": "Geen resultaten gevonden omdat de zoekcriteria met elkaar conflicteren", "rcfilters-filtergroup-registration": "Gebruikers-registratie", "rcfilters-filter-registered-label": "Geregistreerd", "rcfilters-filter-registered-description": "Ingelogde gebruikers.", diff --git a/languages/i18n/oc.json b/languages/i18n/oc.json index 4ffdd93c3d..5c04f76bdc 100644 --- a/languages/i18n/oc.json +++ b/languages/i18n/oc.json @@ -612,8 +612,8 @@ "missingsummary": "'''Atencion :''' avètz pas modificat lo resumit de vòstra modificacion. Se clicatz tornarmai sul boton « Salvar », lo salvament serà fait sens avertiment mai.", "missingcommenttext": "Mercé de metre un comentari çaijós.", "missingcommentheader": "Rapèl : Avètz pas provesit cap de subjècte per aqueste comentari.\nSe clicatz tornamai sus « {{int:Savearticle}} », vòstra modificacion serà enregistrada sens subjècte.", - "summary-preview": "Previsualizacion del resumit :", - "subject-preview": "Previsualizacion del subjècte", + "summary-preview": "Apercebut del resumit de modificacion :", + "subject-preview": "Apercebut del subjècte :", "blockedtitle": "L'utilizaire es blocat", "blockedtext": "'''Vòstre compte d'utilizaire o vòstra adreça IP es estat blocat'''\n\nLo blocatge es estat efectuat per $1.\nLa rason invocada es la seguenta : ''$2''.\n\n* Començament del blocatge : $8\n* Expiracion del blocatge : $6\n* Compte blocat : $7.\n\nPodètz contactar $1 o un autre [[{{MediaWiki:Grouppage-sysop}}|administrator]] per ne discutir.\nPodètz pas utilizar la foncion « Mandar un corrièr electronic a aqueste utilizaire » que se una adreça de corrièr valida es especificada dins vòstras [[Special:Preferences|preferéncias]].\nVòstra adreça IP actuala es $3 e vòstre identificant de blocatge es #$5.\nIncluissètz aquesta adreça dins tota requèsta.", "autoblockedtext": "Vòstra adreça IP es estada blocada automaticament perque es estada utilizada per un autre utilizaire, ele-meteis blocat per $1.\nLa rason invocadaa es :\n\n:''$2''\n\n* Començament del blocatge : $8\n* Expiracion del blocatge : $6\n* Compte blocat : $7\n\nPodètz contactar $1 o un dels autres [[{{MediaWiki:Grouppage-sysop}}|administrators]] per discutir d'aqueste blocatge.\n\nNotatz que podètz pas utilizar la foncionalitat \"Mandar un messatge a aqueste utilizaire\" tant qu'auretz pas una adreça e-mail enregistrada dins vòstras [[Special:Preferences|preferéncias]] e tant que seretz pas blocat per son utilizacion.\n\nVòstra adreça IP actuala es $3, e lo numèro de blocatge es $5.\nPrecisatz aquestas indicacions dins totas las requèstas que faretz.", @@ -752,8 +752,8 @@ "page_first": "primièra", "page_last": "darrièra", "histlegend": "Legenda : ({{MediaWiki:Cur}}) = diferéncia amb la version actuala ,\n({{MediaWiki:Last}}) = diferéncia amb la version precedenta, m = cambiament menor", - "history-fieldset-title": "Percórrer l'istoric", - "history-show-deleted": "Suprimits solament", + "history-fieldset-title": "Recercar de revisions", + "history-show-deleted": "Revision suprimida unicament", "histfirst": "Las mai ancianas", "histlast": "Las mai recentas", "historysize": "({{PLURAL:$1|1 octet|$1 octets}})", @@ -1031,7 +1031,7 @@ "prefs-diffs": "Diferéncias", "prefs-help-prefershttps": "Aquesta preferéncia serà efectiva al moment de vòstra connexion que ven.", "prefs-tabs-navigation-hint": "Astúcia : Podètz utilizar las sagetas d'esquèrra e de dreita per navigar entre los onglets.", - "userrights": "Gestion dels dreits d'utilizaire", + "userrights": "Dreits dels utilizaires", "userrights-lookup-user": "Seleccionar un utilizaire", "userrights-user-editname": "Entrar un nom d’utilizaire :", "editusergroup": "Cargar de gropes d’utilizaires", @@ -1244,9 +1244,9 @@ "rcfilters-filter-editsbyself-label": "Vòstras pròprias modificacions", "rcfilters-filter-editsbyself-description": "Vòstras modificacions.", "rcfilters-filter-editsbyother-label": "Modificacions per d’autres.", - "rcfilters-filter-userExpLevel-newcomer-label": "Novèls arribants", - "rcfilters-filter-userExpLevel-learner-label": "Aprenents", - "rcfilters-filter-userExpLevel-experienced-label": "Utilizaires experimentats", + "rcfilters-filter-user-experience-level-newcomer-label": "Novèls arribants", + "rcfilters-filter-user-experience-level-learner-label": "Aprenents", + "rcfilters-filter-user-experience-level-experienced-label": "Utilizaires experimentats", "rcfilters-filtergroup-automated": "Contribucions automatizadas", "rcfilters-filter-bots-label": "Robòt", "rcfilters-filter-humans-label": "Èsser uman (pas robòt)", @@ -2015,7 +2015,7 @@ "protect-expiry-options": "1 ora:1 hour,1 jorn:1 day,1 setmana:1 week,2 setmanas:2 weeks,1 mes:1 month,3 meses:3 months,6 meses:6 months,1 an:1 year,indefinidament:infinite", "restriction-type": "Permission :", "restriction-level": "Nivèl de restriccion :", - "minimum-size": "Talha minimoma", + "minimum-size": "Talha minimala", "maximum-size": "Talha maximala :", "pagesize": "(octets)", "restriction-edit": "Modificacion", diff --git a/languages/i18n/pl.json b/languages/i18n/pl.json index 6bfb3c1b76..64a046e7e0 100644 --- a/languages/i18n/pl.json +++ b/languages/i18n/pl.json @@ -828,6 +828,7 @@ "post-expand-template-argument-warning": "Uwaga – strona zawiera co najmniej jeden argument szablonu, który po rozwinięciu jest zbyt duży.\nArgument ten będzie pominięty.", "post-expand-template-argument-category": "Strony, w których użyto szablon z pominięciem argumentów", "parser-template-loop-warning": "Wykryto pętlę w szablonie [[$1]]", + "template-loop-category-desc": "Strona zawiera pętlę szablonów, czyli szablon, który wywołuje sam siebie rekursywnie.", "parser-template-recursion-depth-warning": "Przekroczno limit głębokości rekurencji szablonu ($1)", "language-converter-depth-warning": "Przekroczono ograniczenie ($1) głębokości zagnieżdżenia konwersji językowej", "node-count-exceeded-category": "Strony, gdzie przekroczono liczbę węzłów", @@ -1374,7 +1375,7 @@ "recentchanges-legend-plusminus": "(''±123'')", "recentchanges-submit": "Pokaż", "rcfilters-activefilters": "Aktywne filtry", - "rcfilters-restore-default-filters": "Przywrócić domyślne filtry", + "rcfilters-restore-default-filters": "Przywróć domyślne filtry", "rcfilters-clear-all-filters": "Wyczyść filtry", "rcfilters-search-placeholder": "Filtruj ostatnie zmiany (przeglądaj lub zacznij wpisywać)", "rcfilters-invalid-filter": "Nieprawidłowy filtr", @@ -1387,17 +1388,21 @@ "rcfilters-highlightmenu-help": "Wybierz kolor, aby podświetlić tę właściwość", "rcfilters-filterlist-noresults": "Nie znaleziono filtrów", "rcfilters-noresults-conflict": "Nie znaleziono wyników z powodu konfliktu kryteriów wyszukiwania", + "rcfilters-state-message-subset": "Ten filtr nie wywoła efektu, ponieważ pasujące do niego wyniki są zawarte w bardziej {{PLURAL:$2|szczegółowym filtrze|szczegółowych filtrach}} (spróbuj podświetlić, aby je rozróżnić): $1", + "rcfilters-state-message-fullcoverage": "Wybranie wszystkich filtrów w grupie działa tak samo jak niewybranie żadnego, więc ten filtr nie będzie miał efektu. W grupie zawarto też: $1", "rcfilters-filtergroup-registration": "Rejestracja użytkownika", "rcfilters-filter-registered-label": "Zarejestrowani", "rcfilters-filter-registered-description": "Zalogowani edytorzy.", "rcfilters-filter-unregistered-label": "Niezarejestrowani", "rcfilters-filter-unregistered-description": "Niezalogowani", + "rcfilters-filter-unregistered-conflicts-user-experience-level": "Ten filtr koliduje z {{PLURAL:$2|poniższym filtrem|poniższymi filtrami}} doświadczenia, {{PLURAL:$2|który wyszukuje|które wyszukują}} tylko zarejestrowanych użytkowników: $1", "rcfilters-filtergroup-authorship": "Autorstwo edycji", "rcfilters-filter-editsbyself-label": "Moje edycje", "rcfilters-filter-editsbyself-description": "Edycje dokonane przez Ciebie.", "rcfilters-filter-editsbyother-label": "Edycje inne niż Twoje", "rcfilters-filter-editsbyother-description": "Edycje wykonane przez innych (nie Twoje).", "rcfilters-filtergroup-userExpLevel": "Poziom doświadczenia (tylko o zarejestrowanych użytkownikach)", + "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "Filtry doświadczenia wyszukują tylko edycje zarejestrowanych użytkowników, więc ten filtr koliduje z filtrem “Niezarejestrowani”.", "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "Filtr \"Niezarejestrowani\" koliduje z jednym lub więcej filtrów z filtrów poziomu doświadczenia, które służą do wyszukiwania wkładu tylko zarejestrowanych użytkowników. Kolidujące filtry zostały odpowiednio oznaczone na pasku Aktywnych filtrów.", "rcfilters-filter-user-experience-level-newcomer-label": "Początkujący", "rcfilters-filter-user-experience-level-newcomer-description": "Mniej niż 10 edycji i 4 dni aktywności.", @@ -1429,6 +1434,9 @@ "rcfilters-filter-categorization-description": "Dodanie lub usunięcie strony z kategorii", "rcfilters-filter-logactions-label": "Działania rejestrowane", "rcfilters-filter-logactions-description": "Działania administracyjne, tworzenie kont, usuwanie stron, przesyłanie plików...", + "rcfilters-hideminor-conflicts-typeofchange-global": "Filtr \"Drobne zmiany\" koliduje z jednym lub wieloma filtrami Rodzaju zmian, ponieważ niektóre rodzaje zmian nie mogą być uznawane za \"drobne\". Kolidujące filtry zostały odpowiednio zaznaczone na pasku aktywnych filtrów powyżej.", + "rcfilters-hideminor-conflicts-typeofchange": "Niektóre rodzaje zmian nie mogą być uznawane za \"drobne\", więc ten filtr koliduje z następującymi filtrami rodzaju zmian: $1", + "rcfilters-typeofchange-conflicts-hideminor": "Ten filtr Rodzaju zmian koliduje z filtrem \"Drobne zmiany\". Nie wszystkie zmiany mogą być uznawane za \"drobne\".", "rcnotefrom": "Poniżej {{PLURAL:$5|pokazano zmianę|pokazano zmiany}} {{PLURAL:$5|wykonaną|wykonane}} po $3, $4 (nie więcej niż '''$1''' pozycji).", "rclistfrom": "Pokaż nowe zmiany od $3 $2", "rcshowhideminor": "$1 drobne edycje", @@ -3865,6 +3873,7 @@ "authmanager-autocreate-noperm": "Automatyczne tworzenie konta jest niedozwolone.", "authmanager-autocreate-exception": "Automatyczne tworzenie konta tymczasowo wyłączone z powodu wcześniejszych błędów.", "authmanager-userdoesnotexist": "Konto użytkownika „$1” nie jest zarejestrowane.", + "authmanager-userlogin-remembermypassword-help": "Czy hasło powinno być zapamiętane dłużej niż długość sesji.", "authmanager-username-help": "Nazwa użytkownika dla uwierzytelniania.", "authmanager-password-help": "Hasło do uwierzytelniania.", "authmanager-domain-help": "Domena uwierzytelniania zewnętrznego.", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 1e05084af0..2951a4cd38 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -979,6 +979,8 @@ "post-expand-template-argument-warning": "Used as warning in parser limitation.\n\nSee also:\n* {{msg-mw|Post-expand-template-argument-category}}", "post-expand-template-argument-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if they contain omitted template arguments.\n\nSee also:\n* {{msg-mw|Post-expand-template-argument-category-desc}}\n* {{msg-mw|Post-expand-template-argument-warning}}", "parser-template-loop-warning": "Parameters:\n* $1 - page title", + "template-loop-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages with template loops will be listed.", + "template-loop-category-desc": "Pages with template loops category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Template-loop-category}}", "parser-template-recursion-depth-warning": "Parameters:\n* $1 - limit value of recursion depth", "language-converter-depth-warning": "Error message shown when a page uses too deeply nested language conversion syntax. Parameters:\n* $1 - the value of the depth limit", "node-count-exceeded-category": "This message is used as a category name for a [[mw:Help:Tracking categories|tracking category]] where pages are placed automatically if the node-count of the preprocessor exceeds the limit.\n\nSee also:\n* {{msg-mw|Node-count-exceeded-warning}}", diff --git a/languages/i18n/roa-tara.json b/languages/i18n/roa-tara.json index a58a9db925..e4bf952a20 100644 --- a/languages/i18n/roa-tara.json +++ b/languages/i18n/roa-tara.json @@ -177,6 +177,7 @@ "searcharticle": "Véje", "history": "Storie d'a pàgene", "history_short": "Cunde", + "history_small": "cunde", "updatedmarker": "aggiornate da l'urtema visita meje", "printableversion": "Versione ca se stambe", "permalink": "Collegamende ca remane pe sembre", @@ -411,19 +412,12 @@ "externaldberror": "Vide bbuene, o stè 'n'errore de autendicazione a 'u database oppure tu non ge puè aggiorna 'u cunde tue esterne.", "login": "Tràse", "nav-login-createaccount": "Tràse / Reggistrete", - "userlogin": "Tràse / Reggistrete", - "userloginnocreate": "Tràse", "logout": "Isse", "userlogout": "Isse", "notloggedin": "Non ge sì colleghete", "userlogin-noaccount": "Non ge tìne 'nu cunde?", "userlogin-joinproject": "Tràse jndr'à {{SITENAME}}", - "nologin": "Non ge tine n'utenze? '''$1'''.", - "nologinlink": "Ccreje 'nu cunde utende", "createaccount": "Ccreje 'nu cunde", - "gotaccount": "Tine già 'nu cunde? '''$1'''.", - "gotaccountlink": "Tràse", - "userlogin-resetlink": "T'è scurdate le dettaglie pe trasè?", "userlogin-resetpassword-link": "T'è scurdate 'a passuord toje?", "userlogin-helplink2": "Aijute cu 'a trasute", "userlogin-loggedin": "Tu ste jndre ggià cumme a {{GENDER:$1|$1}}.\nAuse 'u module aqquà sotte pe trasè cumme a 'n'otre utende.", @@ -434,7 +428,6 @@ "createacct-another-email-ph": "Mitte l'indirizze email", "createaccountmail": "Ause 'na passuord temboranèe a uecchije e mannale a l'indirizze email specificate", "createacct-realname": "Nome vere (opzionale)", - "createaccountreason": "Mutive:", "createacct-reason": "Mutive", "createacct-reason-ph": "Purcé tu ste ccreje 'n'otre cunde utende?", "createacct-submit": "Ccreje 'u cunde utende tune", @@ -595,8 +588,8 @@ "selfredirect": "Attenziò: Tu ste redirezione sta pàgene da sule.\nTu puè avè specificate 'a destinazione sbagliate pe stu redirezionamende, o tu ste cange 'a pàgena sbagliate.\nCe tu cazze \"{{int:savearticle}}\" arrete, 'u redirezionamende avène ccrejate 'u stesse.", "missingcommenttext": "Pe piacere mitte 'nu commende aqquà sotte.", "missingcommentheader": "Arrecuèrdete: Tu non g'è provvedute a 'nu soggette pe stu commende.\nCe tu cazze \"{{int:savearticle}}\" 'n'otra vote, 'u cangiamende tune avène memorizzate senze jidde.", - "summary-preview": "Andeprime d'u riepileghe:", - "subject-preview": "Andeprime de l'Oggette:", + "summary-preview": "Andeprime d'u riepileghe d'u cangiamende:", + "subject-preview": "Andeprime de l'oggette:", "previewerrortext": "'N'errore ha assute quanne ste facive l'andeprime de le cangiaminde.", "blockedtitle": "L'utende è blocchete", "blockedtext": "''''U nome de l'utende o l'indirizze IP ha state bloccate.'''\n\n'U blocche ha state fatte da $1.\n'U mutive date jè ''$2''.\n\n* 'U Blocche accumenze: $8\n* 'U Blocche spicce: $6\n* Tipe de blocche: $7\n\nTu puè condatta $1 o n'otre [[{{MediaWiki:Grouppage-sysop}}|amministratore]] pe 'ngazzarte sus a 'u blocche.\nTu non ge puè ausà 'u strumende 'manne 'na mail a stu utende' senza ca mitte n'indirizze e-mail valide jndr'à le\n[[Special:Preferences|preferenze tue]] e ce è state blocchete sus 'a l'use sue.\nL'IP ca tine mò jè $3 e 'u codece d'u blocche jè #$5.\nPe piacere mitte ste doje 'mbormaziune ce manne 'na richieste de sblocche.", @@ -3354,7 +3347,6 @@ "logentry-tag-update-revision": "$1 {{GENDER:$2|aggiornate}} le tag sus 'a revisione $4 d'a pàgene $3 ({{PLURAL:$7|aggiunde}} $6; {{PLURAL:$9|luate}} $8)", "logentry-tag-update-logentry": "$1 {{GENDER:$2|aggiornate}} le tag sus 'a vôsce de l'archivije $5 d'a pàgene $3 ({{PLURAL:$7|aggiunde}} $6; {{PLURAL:$9|luate}} $8)", "rightsnone": "(ninde)", - "revdelete-summary": "cange 'u riepileghe", "feedback-adding": "Aggiunge feedback a 'a pàgene...", "feedback-back": "Rrete", "feedback-bugcheck": "Granne! Appene verificate ca non g'è une de le [$1 bug canusciute].", diff --git a/languages/i18n/ru.json b/languages/i18n/ru.json index da61759117..c9e2ed94df 100644 --- a/languages/i18n/ru.json +++ b/languages/i18n/ru.json @@ -1753,7 +1753,7 @@ "shared-repo-from": "из $1", "shared-repo": "общего хранилища", "shared-repo-name-wikimediacommons": "Викисклада", - "filepage.css": "/* CSS и помещены сюда входит на странице описания файла, также на зарубежного заказчика Вики */", + "filepage.css": "/* Размещённые здесь CSS будут применены на странице описания файла и на сторонних клиентских вики */", "upload-disallowed-here": "Вы не можете перезаписать этот файл.", "filerevert": "Возврат к старой версии $1", "filerevert-legend": "Возвратить версию файла", @@ -2228,7 +2228,7 @@ "movedarticleprotection": "перенёс настройки защиты с «[[$2]]» на «[[$1]]»", "protectedarticle-comment": "Защитил{{GENDER:$2||а}} «[[$1]]»", "modifiedarticleprotection-comment": "Изменил{{GENDER:$2||а}} уровень защиты «[[$1]]»", - "unprotectedarticle-comment": "Убрал {{GENDER:$2||а}} защиту с «[[$1]]»", + "unprotectedarticle-comment": "Cнял{{GENDER:$2||а}} защиту с «[[$1]]»", "protect-title": "Установка уровня защиты для «$1»", "protect-title-notallowed": "Просмотр уровня защиты «$1»", "prot_1movedto2": "[[$1]] переименована в [[$2]]", @@ -2896,7 +2896,7 @@ "sunday-at": "в воскресенье в $1", "yesterday-at": "Вчера в $1", "bad_image_list": "Формат должен быть следующим:\n\nБудут учитываться только элементы списка (строки, начинающиеся на символ *).\nПервая ссылка строки должна быть ссылкой на запрещённое для вставки изображение.\nПоследующие ссылки в той же строке будут рассматриваться как исключения, то есть статьи, куда изображение может быть включено.", - "variantname-zh-hans": "его", + "variantname-zh-hans": "hans", "metadata": "Метаданные", "metadata-help": "Файл содержит дополнительные данные, обычно добавляемые цифровыми камерами или сканерами. Если файл после создания редактировался, то некоторые параметры могут не соответствовать текущему изображению.", "metadata-expand": "Показать дополнительные данные", @@ -3087,7 +3087,7 @@ "exif-copyrighted-false": "Авторско-правовой статус не задан", "exif-photometricinterpretation-1": "Чёрный и белый (чёрный — 0)", "exif-photometricinterpretation-4": "Маска прозрачности", - "exif-photometricinterpretation-5": "Разделены (видимо в CMYK)", + "exif-photometricinterpretation-5": "Разделены (вероятно CMYK)", "exif-unknowndate": "Неизвестная дата", "exif-orientation-1": "Нормальная", "exif-orientation-2": "Отражено по горизонтали", @@ -3266,7 +3266,7 @@ "confirmemail_body_set": "Кто-то (возможно вы) с IP-адресом $1\nуказал данный адрес электронной почты для учётной записи «$2» в проекте «{{SITENAME}}».\n\nЧтобы подтвердить, что эта учётная запись действительно принадлежит вам,\nи включить возможность отправки писем с сайта «{{SITENAME}}», откройте в браузере приведённую ниже ссылку:\n\n$3\n\nЕсли данная учётная запись *не* относится к вам, то перейдите по следующей ссылке,\nчтобы отменить подтверждение адреса электронной почты:\n\n$5\n\nКод подтверждения действителен до $4.", "confirmemail_invalidated": "Подтверждение адреса электронной почты отменено.", "invalidateemail": "Отмена подтверждения адреса электронной почты", - "notificationemail_subject_changed": "{{SITENAME}} зарегистрированный адрес электронной почты был изменен", + "notificationemail_subject_changed": "Адрес электронной почты для {{SITENAME}} был изменён", "notificationemail_subject_removed": "{{SITENAME}} зарегистрированный адрес электронной почты был удален", "notificationemail_body_changed": "Кто-то, вероятно, вы, с IP-адреса $1,\nизменил адрес электронной почты учетной записи \"$2\" на \"$3\" на {{SITENAME}}.\n\nЕсли это были не вы, обратитесь к администратору сайта немедленно.", "notificationemail_body_removed": "Кто-то, вероятно вы, с IP-адреса $1,\nудалил адрес электронной почты учетной записи \"$2\" на {{SITENAME}}.\n\nЕсли это были не вы, обратитесь к администратору сайта немедленно.", @@ -3866,7 +3866,7 @@ "log-action-filter-contentmodel": "Тип изменения модели содержимого:", "log-action-filter-delete": "Тип удаления:", "log-action-filter-import": "Тип импорта:", - "log-action-filter-managetags": "Тип тега управленческих действий:", + "log-action-filter-managetags": "Действие по управлению тегами:", "log-action-filter-move": "Тип переименования:", "log-action-filter-newusers": "Тип создания учётной записи:", "log-action-filter-patrol": "Тип патрулирования:", @@ -3891,8 +3891,8 @@ "log-action-filter-managetags-delete": "Удаление тегов", "log-action-filter-managetags-activate": "Активация тегов", "log-action-filter-managetags-deactivate": "Отключение тега", - "log-action-filter-move-move": "Двигаться без перезаписи переадресаций", - "log-action-filter-move-move_redir": "Переместить с заменой переадресаций", + "log-action-filter-move-move": "Переименования не в существующее перенаправление", + "log-action-filter-move-move_redir": "Переименования поверх перенаправления", "log-action-filter-newusers-create": "Создание анонимным участником", "log-action-filter-newusers-create2": "Создание зарегистрированным участником", "log-action-filter-newusers-autocreate": "Автоматическое создание", diff --git a/languages/i18n/sc.json b/languages/i18n/sc.json index 2bdc4497d1..a441aa43cf 100644 --- a/languages/i18n/sc.json +++ b/languages/i18n/sc.json @@ -296,6 +296,7 @@ "nstab-template": "Modellu", "nstab-help": "Agiudu", "nstab-category": "Categoria", + "mainpage-nstab": "Pàgina printzipale", "nosuchaction": "No esistit custa atzione", "nosuchactiontext": "S'atzione ispetzificada in sa URL no est vàlida.\nEst possìbile chi sa URL siat istada carcada male, o si siat sighidu unu ligòngiu non vàlidu.\nCustu diat pòdere èssere unu \"bug\" de {{SITENAME}}.", "nosuchspecialpage": "Custa pàgina ispetziale no esistit", @@ -381,19 +382,12 @@ "password-change-forbidden": "Non podes cambiare sa password in custa wiki.", "login": "Intra", "nav-login-createaccount": "Intra / crea contu", - "userlogin": "Intra / crea contu", - "userloginnocreate": "Intra", "logout": "Serra sessione", "userlogout": "Essida", "notloggedin": "Non ses intradu", "userlogin-noaccount": "Non tenes unu contu?", "userlogin-joinproject": "Registra⋅ti a {{SITENAME}}", - "nologin": "Non tenes unu contu? '''$1'''.", - "nologinlink": "Crea unu contu", "createaccount": "Crea contu", - "gotaccount": "Tenes giai unu contu? $1.", - "gotaccountlink": "Identìfica·ti", - "userlogin-resetlink": "As ismentigadu is datos pro s'atzessu?", "userlogin-resetpassword-link": "As ismentigadu sa password?", "userlogin-helplink2": "Agiudu pro s'atzessu", "userlogin-createanother": "Crea un àteru contu", @@ -403,7 +397,6 @@ "createacct-another-email-ph": "Inserta s'indiritzu post.el", "createaccountmail": "Imprea una password a sorte e ispedidda a su indiritzu post.el ispetzificadu", "createacct-realname": "Nùmene beru (optzionale)", - "createaccountreason": "Motivu:", "createacct-reason": "Motivu", "createacct-reason-ph": "Pro ite ses creende un àteru contu", "createacct-submit": "Crea su contu tuo", @@ -476,7 +469,6 @@ "passwordreset-emaildisabled": "Is funtzionalidades de email sunt istadas disabilitadas in custa wiki.", "passwordreset-username": "Nùmene impitadore:", "passwordreset-domain": "Domìniu:", - "passwordreset-capture": "Ammustrare su cuntenutu de sa email?", "passwordreset-email": "Indiritzu email:", "passwordreset-emailtitle": "Particulares de s'impitadore in {{SITENAME}}", "passwordreset-emailelement": "Nùmene utente: \n$1\n\nPassword temporànea: \n$2", @@ -717,8 +709,6 @@ "saveprefs": "Sarba", "restoreprefs": "Restàura totus is sèberos predefinidos (in totus is setziones)", "prefs-editing": "Casella de modìfica", - "rows": "Lìnias:", - "columns": "Colunnas:", "searchresultshead": "Chirca", "stub-threshold": "Valore mìnimu pro is ligòngios a is abotzos, in bytes:", "stub-threshold-disabled": "Disativadu", @@ -871,6 +861,7 @@ "boteditletter": "b", "rc_categories_any": "Calesisiat", "rc-change-size": "$1", + "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} a pustis de sa modìfica", "newsectionsummary": "/* $1 */ setzione noa", "rc-enhanced-expand": "Ammustra particulares", "rc-enhanced-hide": "Cua particulares", @@ -1549,7 +1540,6 @@ "logentry-upload-overwrite": "$1 {{GENDER:$2|carrigadu}} una versione noa de $3", "logentry-upload-revert": "$1 {{GENDER:$2|carrigadu}} $3", "rightsnone": "(nisciunu)", - "revdelete-summary": "ogetu de sa modìfica", "feedback-cancel": "Annudda", "feedback-close": "Fatu", "feedback-message": "Messàgiu:", diff --git a/languages/i18n/sl.json b/languages/i18n/sl.json index 7da531ae9b..9fe4e519e6 100644 --- a/languages/i18n/sl.json +++ b/languages/i18n/sl.json @@ -755,6 +755,8 @@ "post-expand-template-argument-warning": "'''Opozorilo:'''' Ta stran vsebuje vsaj en argument predloge, ki ima preveliko razširitev.\nNaslednji argumenti so bili izpuščeni.", "post-expand-template-argument-category": "Strani z izpuščenimi argumenti predloge", "parser-template-loop-warning": "V predlogi je bila odkrita zanka: [[$1]]", + "template-loop-category": "Strani z zankami predlog", + "template-loop-category-desc": "Stran vsebuje zanko predloge, tj. predlogo, ki rekurzivno kliče sama sebe.", "parser-template-recursion-depth-warning": "Prekoračena globina rekurzije predlog ($1)", "language-converter-depth-warning": "Prekoračena globina pretvorbe jezikov ($1)", "node-count-exceeded-category": "Strani s prekoračenim številom vozlišč", diff --git a/languages/i18n/sr-ec.json b/languages/i18n/sr-ec.json index 77998359bc..1f7ae83e29 100644 --- a/languages/i18n/sr-ec.json +++ b/languages/i18n/sr-ec.json @@ -1236,8 +1236,8 @@ "recentchanges-summary": "Пратите скорашње измене на овој страници.", "recentchanges-noresult": "Нема промена у задатом времену за задате критеријуме.", "recentchanges-feed-description": "Пратите скорашње измене уз помоћ овог довода.", - "recentchanges-label-newpage": "Нова страница", - "recentchanges-label-minor": "Мања измена", + "recentchanges-label-newpage": "Овом изменом направљена је нова страница", + "recentchanges-label-minor": "Ово је мања измена", "recentchanges-label-bot": "Ову измену је направио бот", "recentchanges-label-unpatrolled": "Ова измена још није патролирана", "recentchanges-label-plusminus": "Промена величине странице у бајтовима", diff --git a/languages/i18n/sr-el.json b/languages/i18n/sr-el.json index b47fde56ea..ba66d17200 100644 --- a/languages/i18n/sr-el.json +++ b/languages/i18n/sr-el.json @@ -1184,8 +1184,8 @@ "recentchanges-summary": "Pratite skorašnje izmene na ovoj stranici.", "recentchanges-noresult": "Nema promena u zadatom vremenu za zadate kriterijume.", "recentchanges-feed-description": "Pratite skorašnje izmene uz pomoć ovog dovoda.", - "recentchanges-label-newpage": "Nova stranica", - "recentchanges-label-minor": "Manja izmena", + "recentchanges-label-newpage": "Ovom izmenom napravljena je nova izmena", + "recentchanges-label-minor": "Ovo je manja izmena", "recentchanges-label-bot": "Ovu izmenu je napravio bot", "recentchanges-label-unpatrolled": "Ova izmena još nije patrolirana", "recentchanges-label-plusminus": "Promena veličine stranice u bajtovima", diff --git a/languages/i18n/sv.json b/languages/i18n/sv.json index 73d9aae909..2f248981c1 100644 --- a/languages/i18n/sv.json +++ b/languages/i18n/sv.json @@ -848,7 +848,7 @@ "page_first": "första", "page_last": "sista", "histlegend": "Val av diff: markera i klickrutorna för att jämföra versioner och tryck enter eller knappen längst ner.
\nFörklaring: '''({{int:cur}})''' = skillnad mot senaste version; '''({{int:last}})''' = skillnad mot föregående version; '''{{int:minoreditletter}}''' = mindre ändring.", - "history-fieldset-title": "Bläddra i historiken", + "history-fieldset-title": "Sök efter sidversioner", "history-show-deleted": "Endast raderade sidversioner", "histfirst": "äldsta", "histlast": "nyaste", @@ -1368,25 +1368,29 @@ "rcfilters-invalid-filter": "Ogiltigt filter", "rcfilters-empty-filter": "Inga aktiva filter. Alla bidrag visas.", "rcfilters-filterlist-title": "Filter", + "rcfilters-filterlist-whatsthis": "Vad är detta?", "rcfilters-filterlist-feedbacklink": "Ge återkoppling på nya (beta)filter", "rcfilters-highlightbutton-title": "Markera resultat", "rcfilters-highlightmenu-title": "Välj en färg", "rcfilters-highlightmenu-help": "Välj en färg att markera denna egenskap", "rcfilters-filterlist-noresults": "Inga filter hittades", + "rcfilters-noresults-conflict": "Inga resultat hittades eftersom sökkriterierna är i konflikt", + "rcfilters-state-message-subset": "Detta filter har ingen effekt, eftersom resultaten inkluderar följande, bredare {{PLURAL:$2|filter}} (försök att markera för att särskilja det): $1", + "rcfilters-state-message-fullcoverage": "Att markera alla filter i en grupp är detsamma som att markera inget alls, så detta filter har igen effekt. Grupper som inkluderas: $1", "rcfilters-filtergroup-registration": "Användarregistrering", "rcfilters-filter-registered-label": "Registrerade", "rcfilters-filter-registered-description": "Inloggade redigerare.", "rcfilters-filter-unregistered-label": "Oregistrerade", "rcfilters-filter-unregistered-description": "Redigerare som inte är inloggade.", - "rcfilters-filter-unregistered-conflicts-user-experience-level": "Filtret \"Oregistrerade\" är inaktivt eftersom dess effekt slås ut av följande {{PLURAL:$2|upplevelsefilter}}, som endast {{PLURAL:$2|hittade}} registrerade användare: $1", + "rcfilters-filter-unregistered-conflicts-user-experience-level": "Detta filter är i konflikt med följande {{PLURAL:$2|upplevelsefilter}}, som endast {{PLURAL:$2|hittar}} registrerade användare: $1", "rcfilters-filtergroup-authorship": "Redigera författarskap", "rcfilters-filter-editsbyself-label": "Dina egna redigeringar", "rcfilters-filter-editsbyself-description": "Redigeringar av dig.", "rcfilters-filter-editsbyother-label": "Redigeringar av andra", "rcfilters-filter-editsbyother-description": "Redigeringar som har skapats av andra användare (inte dig).", "rcfilters-filtergroup-userExpLevel": "Erfarenhetsnivå (endast för registrerade användare)", - "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "Detta filter är inaktivt eftersom den endast hittar registrerade användare, så filtret \"Oregistrerade\" slår ut dess effekt.", - "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "Filtret \"Oregistrerade\" är i konflikt med en eller flera upplevelsefilter. Upplevelsefilter hittar endast registrerade användare. Filtren som är i konflikt är markerade som inaktiv ovan.", + "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "Upplevelsefilter hittar endast registrerade användare, så detta filter är i konflikt med filtret \"Oregistrerade\".", + "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "Filtret \"Oregistrerade\" är i konflikt med en eller flera upplevelsefilter, som endast hittar registrerade användare. Filtren som är i konflikt är markerade i området med aktiva filter ovan.", "rcfilters-filter-user-experience-level-newcomer-label": "Nykomlingar", "rcfilters-filter-user-experience-level-newcomer-description": "Färre än 10 redigeringar och 4 dagars aktivitet.", "rcfilters-filter-user-experience-level-learner-label": "Nybörjare", @@ -1417,6 +1421,9 @@ "rcfilters-filter-categorization-description": "Poster av sidor som läggs till eller tas bort från kategorier.", "rcfilters-filter-logactions-label": "Loggade åtgärder", "rcfilters-filter-logactions-description": "Administrativa åtgärder, kontoskapande, sidraderingar, uppladdningar....", + "rcfilters-hideminor-conflicts-typeofchange-global": "Filtret \"Mindre redigering\" är i konflikt med en eller flera ändringstypfilter, eftersom vissa ändringstyper inte kan betecknas som \"mindre\". Filtren som är i konflikt är markerade i området med aktiva filter ovan.", + "rcfilters-hideminor-conflicts-typeofchange": "Vissa ändringstyper kan inte betecknas som \"mindre\", så detta filter är i konflikt med följande ändringstypfilter: $1", + "rcfilters-typeofchange-conflicts-hideminor": "Detta ändringstypfilter är i konflikt med filtret \"Mindre ändringar\". Vissa ändringstyper kan inte betecknas som \"mindre\".", "rcnotefrom": "Nedan visas {{PLURAL:$5|ändringen|ändringar}} sedan $3, $4 (upp till $1 ändringar visas).", "rclistfrom": "Visa nya ändringar från och med $2 $3", "rcshowhideminor": "$1 mindre ändringar", @@ -2344,7 +2351,7 @@ "whatlinkshere-hideimages": "$1 fillänkar", "whatlinkshere-filters": "Filter", "whatlinkshere-submit": "Gå", - "autoblockid": "Autoblockera #$1", + "autoblockid": "Autoblockering #$1", "block": "Blockera användare", "unblock": "Upphäv blockering av användare", "blockip": "Blockera {{GENDER:$1|användare}}", diff --git a/languages/i18n/tr.json b/languages/i18n/tr.json index 1a8e881bae..7b0a85f34a 100644 --- a/languages/i18n/tr.json +++ b/languages/i18n/tr.json @@ -328,7 +328,7 @@ "currentevents-url": "Project:Güncel olaylar", "disclaimers": "Sorumluluk reddi", "disclaimerpage": "Project:Genel sorumluluk reddi", - "edithelp": "Nasıl değiştirilir?", + "edithelp": "Düzenleme yardımı", "helppage-top-gethelp": "Yardım", "mainpage": "Ana Sayfa", "mainpage-description": "Ana sayfa", diff --git a/languages/i18n/zh-hans.json b/languages/i18n/zh-hans.json index 0a467da14c..aeff357a4e 100644 --- a/languages/i18n/zh-hans.json +++ b/languages/i18n/zh-hans.json @@ -836,6 +836,8 @@ "post-expand-template-argument-warning": "警告:本页面包含至少一个展开后过大的模板参数。这些参数会被忽略。", "post-expand-template-argument-category": "含有略过模板参数的页面", "parser-template-loop-warning": "检查到模板循环:[[$1]]", + "template-loop-category": "有模板循环的页面", + "template-loop-category-desc": "页面存在模板循环,就是递归进行自我调用的模板。", "parser-template-recursion-depth-warning": "模板递归深度越限($1)", "language-converter-depth-warning": "字词转换器深度越限($1)", "node-count-exceeded-category": "页面的节点数超出限制", diff --git a/languages/messages/MessagesAtj.php b/languages/messages/MessagesAtj.php new file mode 100644 index 0000000000..69bcaa5aa5 --- /dev/null +++ b/languages/messages/MessagesAtj.php @@ -0,0 +1,11 @@ + [ 'mediawiki.ForeignStructuredUpload', 'mediawiki.Upload.BookletLayout', - 'mediawiki.widgets.CategorySelector', + 'mediawiki.widgets.CategoryMultiselectWidget', 'mediawiki.widgets.DateInputWidget', 'mediawiki.jqueryMsg', 'mediawiki.api.messages', @@ -2357,9 +2357,15 @@ return [ 'targets' => [ 'desktop', 'mobile' ], ], 'mediawiki.widgets.CategorySelector' => [ + 'deprecated' => 'Use "mw.widgets.CategoryMultiselectWidget" instead. See T161285.', + 'dependencies' => [ + 'mediawiki.widgets.CategoryMultiselectWidget', + ], + ], + 'mediawiki.widgets.CategoryMultiselectWidget' => [ 'scripts' => [ 'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js', - 'resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js', + 'resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js', ], 'dependencies' => [ 'oojs-ui-widgets', @@ -2369,7 +2375,7 @@ return [ ], 'messages' => [ 'red-link-title', - 'mw-widgets-categoryselector-add-category-placeholder' + 'mw-widgets-categoryselector-add-category-placeholder', ], 'targets' => [ 'desktop', 'mobile' ], ], diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js index a066d9e917..221d2a54c6 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js @@ -172,7 +172,9 @@ messageKey = details.message; affectingItems = details.names; - } else if ( this.isIncluded() ) { + } else if ( this.isIncluded() && !this.isHighlighted() ) { + // We only show the 'no effect' full-coverage message + // if the item is also not highlighted. See T161273 superset = this.getSuperset(); // For this message we need to collect the affecting superset affectingItems = this.getGroupModel().getSelectedItems( this ) @@ -184,7 +186,7 @@ } ); messageKey = 'rcfilters-state-message-subset'; - } else if ( this.isFullyCovered() ) { + } else if ( this.isFullyCovered() && !this.isHighlighted() ) { affectingItems = this.getGroupModel().getSelectedItems( this ) .map( function ( item ) { return mw.msg( 'quotation-marks', item.getLabel() ); diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js index 14eabe2e04..7405baef3f 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js @@ -321,8 +321,8 @@ * @param {array|object|string} filters */ mw.rcfilters.Controller.prototype.trackHighlight = function ( action, filters ) { - filters = $.type( filters ) === 'string' ? { name: filters } : filters; - filters = $.type( filters ) === 'object' ? [ filters ] : filters; + filters = typeof filters === 'string' ? { name: filters } : filters; + filters = !Array.isArray( filters ) ? [ filters ] : filters; mw.track( 'event.ChangesListHighlights', { diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js b/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js new file mode 100644 index 0000000000..ccc5c9dcb4 --- /dev/null +++ b/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js @@ -0,0 +1,416 @@ +/*! + * MediaWiki Widgets - CategoryMultiselectWidget class. + * + * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ +( function ( $, mw ) { + var NS_CATEGORY = mw.config.get( 'wgNamespaceIds' ).category; + + /** + * Category selector widget. Displays an OO.ui.CapsuleMultiselectWidget + * and autocompletes with available categories. + * + * mw.loader.using( 'mediawiki.widgets.CategoryMultiselectWidget', function () { + * var selector = new mw.widgets.CategoryMultiselectWidget( { + * searchTypes: [ + * mw.widgets.CategoryMultiselectWidget.SearchType.OpenSearch, + * mw.widgets.CategoryMultiselectWidget.SearchType.InternalSearch + * ] + * } ); + * + * $( 'body' ).append( selector.$element ); + * + * selector.setSearchTypes( [ mw.widgets.CategoryMultiselectWidget.SearchType.SubCategories ] ); + * } ); + * + * @class mw.widgets.CategoryMultiselectWidget + * @uses mw.Api + * @extends OO.ui.CapsuleMultiselectWidget + * @mixins OO.ui.mixin.PendingElement + * + * @constructor + * @param {Object} [config] Configuration options + * @cfg {mw.Api} [api] Instance of mw.Api (or subclass thereof) to use for queries + * @cfg {number} [limit=10] Maximum number of results to load + * @cfg {mw.widgets.CategoryMultiselectWidget.SearchType[]} [searchTypes=[mw.widgets.CategoryMultiselectWidget.SearchType.OpenSearch]] + * Default search API to use when searching. + */ + mw.widgets.CategoryMultiselectWidget = function MWCategoryMultiselectWidget( config ) { + // Config initialization + config = $.extend( { + limit: 10, + searchTypes: [ mw.widgets.CategoryMultiselectWidget.SearchType.OpenSearch ] + }, config ); + this.limit = config.limit; + this.searchTypes = config.searchTypes; + this.validateSearchTypes(); + + // Parent constructor + mw.widgets.CategoryMultiselectWidget.parent.call( this, $.extend( true, {}, config, { + menu: { + filterFromInput: false + }, + placeholder: mw.msg( 'mw-widgets-categoryselector-add-category-placeholder' ), + // This allows the user to both select non-existent categories, and prevents the selector from + // being wiped from #onMenuItemsChange when we change the available options in the dropdown + allowArbitrary: true + } ) ); + + // Mixin constructors + OO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$handle } ) ); + + // Event handler to call the autocomplete methods + this.$input.on( 'change input cut paste', OO.ui.debounce( this.updateMenuItems.bind( this ), 100 ) ); + + // Initialize + this.api = config.api || new mw.Api(); + this.searchCache = {}; + }; + + /* Setup */ + + OO.inheritClass( mw.widgets.CategoryMultiselectWidget, OO.ui.CapsuleMultiselectWidget ); + OO.mixinClass( mw.widgets.CategoryMultiselectWidget, OO.ui.mixin.PendingElement ); + + /* Methods */ + + /** + * Gets new items based on the input by calling + * {@link #getNewMenuItems getNewItems} and updates the menu + * after removing duplicates based on the data value. + * + * @private + * @method + */ + mw.widgets.CategoryMultiselectWidget.prototype.updateMenuItems = function () { + this.getMenu().clearItems(); + this.getNewMenuItems( this.$input.val() ).then( function ( items ) { + var existingItems, filteredItems, + menu = this.getMenu(); + + // Never show the menu if the input lost focus in the meantime + if ( !this.$input.is( ':focus' ) ) { + return; + } + + // Array of strings of the data of OO.ui.MenuOptionsWidgets + existingItems = menu.getItems().map( function ( item ) { + return item.data; + } ); + + // Remove if items' data already exists + filteredItems = items.filter( function ( item ) { + return existingItems.indexOf( item ) === -1; + } ); + + // Map to an array of OO.ui.MenuOptionWidgets + filteredItems = filteredItems.map( function ( item ) { + return new OO.ui.MenuOptionWidget( { + data: item, + label: item + } ); + } ); + + menu.addItems( filteredItems ).toggle( true ); + }.bind( this ) ); + }; + + /** + * @inheritdoc + */ + mw.widgets.CategoryMultiselectWidget.prototype.clearInput = function () { + mw.widgets.CategoryMultiselectWidget.parent.prototype.clearInput.call( this ); + // Abort all pending requests, we won't need their results + this.api.abort(); + }; + + /** + * Searches for categories based on the input. + * + * @private + * @method + * @param {string} input The input used to prefix search categories + * @return {jQuery.Promise} Resolves with an array of categories + */ + mw.widgets.CategoryMultiselectWidget.prototype.getNewMenuItems = function ( input ) { + var i, + promises = [], + deferred = $.Deferred(); + + if ( $.trim( input ) === '' ) { + deferred.resolve( [] ); + return deferred.promise(); + } + + // Abort all pending requests, we won't need their results + this.api.abort(); + for ( i = 0; i < this.searchTypes.length; i++ ) { + promises.push( this.searchCategories( input, this.searchTypes[ i ] ) ); + } + + this.pushPending(); + + $.when.apply( $, promises ).done( function () { + var categoryNames, + allData = [], + dataSets = Array.prototype.slice.apply( arguments ); + + // Collect values from all results + allData = allData.concat.apply( allData, dataSets ); + + categoryNames = allData + // Remove duplicates + .filter( function ( value, index, self ) { + return self.indexOf( value ) === index; + } ) + // Get Title objects + .map( function ( name ) { + return mw.Title.newFromText( name ); + } ) + // Keep only titles from 'Category' namespace + .filter( function ( title ) { + return title && title.getNamespaceId() === NS_CATEGORY; + } ) + // Convert back to strings, strip 'Category:' prefix + .map( function ( title ) { + return title.getMainText(); + } ); + + deferred.resolve( categoryNames ); + + } ).always( this.popPending.bind( this ) ); + + return deferred.promise(); + }; + + /** + * @inheritdoc + */ + mw.widgets.CategoryMultiselectWidget.prototype.createItemWidget = function ( data ) { + var title = mw.Title.makeTitle( NS_CATEGORY, data ); + if ( !title ) { + return null; + } + return new mw.widgets.CategoryCapsuleItemWidget( { + apiUrl: this.api.apiUrl || undefined, + title: title + } ); + }; + + /** + * @inheritdoc + */ + mw.widgets.CategoryMultiselectWidget.prototype.getItemFromData = function ( data ) { + // This is a bit of a hack... We have to canonicalize the data in the same way that + // #createItemWidget and CategoryCapsuleItemWidget will do, otherwise we won't find duplicates. + var title = mw.Title.makeTitle( NS_CATEGORY, data ); + if ( !title ) { + return null; + } + return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( this, title.getMainText() ); + }; + + /** + * Validates the values in `this.searchType`. + * + * @private + * @return {boolean} + */ + mw.widgets.CategoryMultiselectWidget.prototype.validateSearchTypes = function () { + var validSearchTypes = false, + searchTypeEnumCount = Object.keys( mw.widgets.CategoryMultiselectWidget.SearchType ).length; + + // Check if all values are in the SearchType enum + validSearchTypes = this.searchTypes.every( function ( searchType ) { + return searchType > -1 && searchType < searchTypeEnumCount; + } ); + + if ( validSearchTypes === false ) { + throw new Error( 'Unknown searchType in searchTypes' ); + } + + // If the searchTypes has mw.widgets.CategoryMultiselectWidget.SearchType.SubCategories + // it can be the only search type. + if ( this.searchTypes.indexOf( mw.widgets.CategoryMultiselectWidget.SearchType.SubCategories ) > -1 && + this.searchTypes.length > 1 + ) { + throw new Error( 'Can\'t have additional search types with mw.widgets.CategoryMultiselectWidget.SearchType.SubCategories' ); + } + + // If the searchTypes has mw.widgets.CategoryMultiselectWidget.SearchType.ParentCategories + // it can be the only search type. + if ( this.searchTypes.indexOf( mw.widgets.CategoryMultiselectWidget.SearchType.ParentCategories ) > -1 && + this.searchTypes.length > 1 + ) { + throw new Error( 'Can\'t have additional search types with mw.widgets.CategoryMultiselectWidget.SearchType.ParentCategories' ); + } + + return true; + }; + + /** + * Sets and validates the value of `this.searchType`. + * + * @param {mw.widgets.CategoryMultiselectWidget.SearchType[]} searchTypes + */ + mw.widgets.CategoryMultiselectWidget.prototype.setSearchTypes = function ( searchTypes ) { + this.searchTypes = searchTypes; + this.validateSearchTypes(); + }; + + /** + * Searches categories based on input and searchType. + * + * @private + * @method + * @param {string} input The input used to prefix search categories + * @param {mw.widgets.CategoryMultiselectWidget.SearchType} searchType + * @return {jQuery.Promise} Resolves with an array of categories + */ + mw.widgets.CategoryMultiselectWidget.prototype.searchCategories = function ( input, searchType ) { + var deferred = $.Deferred(), + cacheKey = input + searchType.toString(); + + // Check cache + if ( this.searchCache[ cacheKey ] !== undefined ) { + return this.searchCache[ cacheKey ]; + } + + switch ( searchType ) { + case mw.widgets.CategoryMultiselectWidget.SearchType.OpenSearch: + this.api.get( { + formatversion: 2, + action: 'opensearch', + namespace: NS_CATEGORY, + limit: this.limit, + search: input + } ).done( function ( res ) { + var categories = res[ 1 ]; + deferred.resolve( categories ); + } ).fail( deferred.reject.bind( deferred ) ); + break; + + case mw.widgets.CategoryMultiselectWidget.SearchType.InternalSearch: + this.api.get( { + formatversion: 2, + action: 'query', + list: 'allpages', + apnamespace: NS_CATEGORY, + aplimit: this.limit, + apfrom: input, + apprefix: input + } ).done( function ( res ) { + var categories = res.query.allpages.map( function ( page ) { + return page.title; + } ); + deferred.resolve( categories ); + } ).fail( deferred.reject.bind( deferred ) ); + break; + + case mw.widgets.CategoryMultiselectWidget.SearchType.Exists: + if ( input.indexOf( '|' ) > -1 ) { + deferred.resolve( [] ); + break; + } + + this.api.get( { + formatversion: 2, + action: 'query', + prop: 'info', + titles: 'Category:' + input + } ).done( function ( res ) { + var categories = []; + + $.each( res.query.pages, function ( index, page ) { + if ( !page.missing ) { + categories.push( page.title ); + } + } ); + + deferred.resolve( categories ); + } ).fail( deferred.reject.bind( deferred ) ); + break; + + case mw.widgets.CategoryMultiselectWidget.SearchType.SubCategories: + if ( input.indexOf( '|' ) > -1 ) { + deferred.resolve( [] ); + break; + } + + this.api.get( { + formatversion: 2, + action: 'query', + list: 'categorymembers', + cmtype: 'subcat', + cmlimit: this.limit, + cmtitle: 'Category:' + input + } ).done( function ( res ) { + var categories = res.query.categorymembers.map( function ( category ) { + return category.title; + } ); + deferred.resolve( categories ); + } ).fail( deferred.reject.bind( deferred ) ); + break; + + case mw.widgets.CategoryMultiselectWidget.SearchType.ParentCategories: + if ( input.indexOf( '|' ) > -1 ) { + deferred.resolve( [] ); + break; + } + + this.api.get( { + formatversion: 2, + action: 'query', + prop: 'categories', + cllimit: this.limit, + titles: 'Category:' + input + } ).done( function ( res ) { + var categories = []; + + $.each( res.query.pages, function ( index, page ) { + if ( !page.missing && $.isArray( page.categories ) ) { + categories.push.apply( categories, page.categories.map( function ( category ) { + return category.title; + } ) ); + } + } ); + + deferred.resolve( categories ); + } ).fail( deferred.reject.bind( deferred ) ); + break; + + default: + throw new Error( 'Unknown searchType' ); + } + + // Cache the result + this.searchCache[ cacheKey ] = deferred.promise(); + + return deferred.promise(); + }; + + /** + * @enum mw.widgets.CategoryMultiselectWidget.SearchType + * Types of search available. + */ + mw.widgets.CategoryMultiselectWidget.SearchType = { + /** Search using action=opensearch */ + OpenSearch: 0, + + /** Search using action=query */ + InternalSearch: 1, + + /** Search for existing categories with the exact title */ + Exists: 2, + + /** Search only subcategories */ + SubCategories: 3, + + /** Search only parent categories */ + ParentCategories: 4 + }; + + // For backwards compatibility. See T161285. + mw.widgets.CategorySelector = mw.widgets.CategoryMultiselectWidget; +}( jQuery, mediaWiki ) ); diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js deleted file mode 100644 index 422c048e76..0000000000 --- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js +++ /dev/null @@ -1,417 +0,0 @@ -/*! - * MediaWiki Widgets - CategorySelector class. - * - * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt - * @license The MIT License (MIT); see LICENSE.txt - */ -( function ( $, mw ) { - var CSP, - NS_CATEGORY = mw.config.get( 'wgNamespaceIds' ).category; - - /** - * Category selector widget. Displays an OO.ui.CapsuleMultiselectWidget - * and autocompletes with available categories. - * - * mw.loader.using( 'mediawiki.widgets.CategorySelector', function () { - * var selector = new mw.widgets.CategorySelector( { - * searchTypes: [ - * mw.widgets.CategorySelector.SearchType.OpenSearch, - * mw.widgets.CategorySelector.SearchType.InternalSearch - * ] - * } ); - * - * $( 'body' ).append( selector.$element ); - * - * selector.setSearchTypes( [ mw.widgets.CategorySelector.SearchType.SubCategories ] ); - * } ); - * - * @class mw.widgets.CategorySelector - * @uses mw.Api - * @extends OO.ui.CapsuleMultiselectWidget - * @mixins OO.ui.mixin.PendingElement - * - * @constructor - * @param {Object} [config] Configuration options - * @cfg {mw.Api} [api] Instance of mw.Api (or subclass thereof) to use for queries - * @cfg {number} [limit=10] Maximum number of results to load - * @cfg {mw.widgets.CategorySelector.SearchType[]} [searchTypes=[mw.widgets.CategorySelector.SearchType.OpenSearch]] - * Default search API to use when searching. - */ - function CategorySelector( config ) { - // Config initialization - config = $.extend( { - limit: 10, - searchTypes: [ CategorySelector.SearchType.OpenSearch ] - }, config ); - this.limit = config.limit; - this.searchTypes = config.searchTypes; - this.validateSearchTypes(); - - // Parent constructor - mw.widgets.CategorySelector.parent.call( this, $.extend( true, {}, config, { - menu: { - filterFromInput: false - }, - placeholder: mw.msg( 'mw-widgets-categoryselector-add-category-placeholder' ), - // This allows the user to both select non-existent categories, and prevents the selector from - // being wiped from #onMenuItemsChange when we change the available options in the dropdown - allowArbitrary: true - } ) ); - - // Mixin constructors - OO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$handle } ) ); - - // Event handler to call the autocomplete methods - this.$input.on( 'change input cut paste', OO.ui.debounce( this.updateMenuItems.bind( this ), 100 ) ); - - // Initialize - this.api = config.api || new mw.Api(); - this.searchCache = {}; - } - - /* Setup */ - - OO.inheritClass( CategorySelector, OO.ui.CapsuleMultiselectWidget ); - OO.mixinClass( CategorySelector, OO.ui.mixin.PendingElement ); - CSP = CategorySelector.prototype; - - /* Methods */ - - /** - * Gets new items based on the input by calling - * {@link #getNewMenuItems getNewItems} and updates the menu - * after removing duplicates based on the data value. - * - * @private - * @method - */ - CSP.updateMenuItems = function () { - this.getMenu().clearItems(); - this.getNewMenuItems( this.$input.val() ).then( function ( items ) { - var existingItems, filteredItems, - menu = this.getMenu(); - - // Never show the menu if the input lost focus in the meantime - if ( !this.$input.is( ':focus' ) ) { - return; - } - - // Array of strings of the data of OO.ui.MenuOptionsWidgets - existingItems = menu.getItems().map( function ( item ) { - return item.data; - } ); - - // Remove if items' data already exists - filteredItems = items.filter( function ( item ) { - return existingItems.indexOf( item ) === -1; - } ); - - // Map to an array of OO.ui.MenuOptionWidgets - filteredItems = filteredItems.map( function ( item ) { - return new OO.ui.MenuOptionWidget( { - data: item, - label: item - } ); - } ); - - menu.addItems( filteredItems ).toggle( true ); - }.bind( this ) ); - }; - - /** - * @inheritdoc - */ - CSP.clearInput = function () { - CategorySelector.parent.prototype.clearInput.call( this ); - // Abort all pending requests, we won't need their results - this.api.abort(); - }; - - /** - * Searches for categories based on the input. - * - * @private - * @method - * @param {string} input The input used to prefix search categories - * @return {jQuery.Promise} Resolves with an array of categories - */ - CSP.getNewMenuItems = function ( input ) { - var i, - promises = [], - deferred = $.Deferred(); - - if ( $.trim( input ) === '' ) { - deferred.resolve( [] ); - return deferred.promise(); - } - - // Abort all pending requests, we won't need their results - this.api.abort(); - for ( i = 0; i < this.searchTypes.length; i++ ) { - promises.push( this.searchCategories( input, this.searchTypes[ i ] ) ); - } - - this.pushPending(); - - $.when.apply( $, promises ).done( function () { - var categoryNames, - allData = [], - dataSets = Array.prototype.slice.apply( arguments ); - - // Collect values from all results - allData = allData.concat.apply( allData, dataSets ); - - categoryNames = allData - // Remove duplicates - .filter( function ( value, index, self ) { - return self.indexOf( value ) === index; - } ) - // Get Title objects - .map( function ( name ) { - return mw.Title.newFromText( name ); - } ) - // Keep only titles from 'Category' namespace - .filter( function ( title ) { - return title && title.getNamespaceId() === NS_CATEGORY; - } ) - // Convert back to strings, strip 'Category:' prefix - .map( function ( title ) { - return title.getMainText(); - } ); - - deferred.resolve( categoryNames ); - - } ).always( this.popPending.bind( this ) ); - - return deferred.promise(); - }; - - /** - * @inheritdoc - */ - CSP.createItemWidget = function ( data ) { - var title = mw.Title.makeTitle( NS_CATEGORY, data ); - if ( !title ) { - return null; - } - return new mw.widgets.CategoryCapsuleItemWidget( { - apiUrl: this.api.apiUrl || undefined, - title: title - } ); - }; - - /** - * @inheritdoc - */ - CSP.getItemFromData = function ( data ) { - // This is a bit of a hack... We have to canonicalize the data in the same way that - // #createItemWidget and CategoryCapsuleItemWidget will do, otherwise we won't find duplicates. - var title = mw.Title.makeTitle( NS_CATEGORY, data ); - if ( !title ) { - return null; - } - return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( this, title.getMainText() ); - }; - - /** - * Validates the values in `this.searchType`. - * - * @private - * @return {boolean} - */ - CSP.validateSearchTypes = function () { - var validSearchTypes = false, - searchTypeEnumCount = Object.keys( CategorySelector.SearchType ).length; - - // Check if all values are in the SearchType enum - validSearchTypes = this.searchTypes.every( function ( searchType ) { - return searchType > -1 && searchType < searchTypeEnumCount; - } ); - - if ( validSearchTypes === false ) { - throw new Error( 'Unknown searchType in searchTypes' ); - } - - // If the searchTypes has CategorySelector.SearchType.SubCategories - // it can be the only search type. - if ( this.searchTypes.indexOf( CategorySelector.SearchType.SubCategories ) > -1 && - this.searchTypes.length > 1 - ) { - throw new Error( 'Can\'t have additional search types with CategorySelector.SearchType.SubCategories' ); - } - - // If the searchTypes has CategorySelector.SearchType.ParentCategories - // it can be the only search type. - if ( this.searchTypes.indexOf( CategorySelector.SearchType.ParentCategories ) > -1 && - this.searchTypes.length > 1 - ) { - throw new Error( 'Can\'t have additional search types with CategorySelector.SearchType.ParentCategories' ); - } - - return true; - }; - - /** - * Sets and validates the value of `this.searchType`. - * - * @param {mw.widgets.CategorySelector.SearchType[]} searchTypes - */ - CSP.setSearchTypes = function ( searchTypes ) { - this.searchTypes = searchTypes; - this.validateSearchTypes(); - }; - - /** - * Searches categories based on input and searchType. - * - * @private - * @method - * @param {string} input The input used to prefix search categories - * @param {mw.widgets.CategorySelector.SearchType} searchType - * @return {jQuery.Promise} Resolves with an array of categories - */ - CSP.searchCategories = function ( input, searchType ) { - var deferred = $.Deferred(), - cacheKey = input + searchType.toString(); - - // Check cache - if ( this.searchCache[ cacheKey ] !== undefined ) { - return this.searchCache[ cacheKey ]; - } - - switch ( searchType ) { - case CategorySelector.SearchType.OpenSearch: - this.api.get( { - formatversion: 2, - action: 'opensearch', - namespace: NS_CATEGORY, - limit: this.limit, - search: input - } ).done( function ( res ) { - var categories = res[ 1 ]; - deferred.resolve( categories ); - } ).fail( deferred.reject.bind( deferred ) ); - break; - - case CategorySelector.SearchType.InternalSearch: - this.api.get( { - formatversion: 2, - action: 'query', - list: 'allpages', - apnamespace: NS_CATEGORY, - aplimit: this.limit, - apfrom: input, - apprefix: input - } ).done( function ( res ) { - var categories = res.query.allpages.map( function ( page ) { - return page.title; - } ); - deferred.resolve( categories ); - } ).fail( deferred.reject.bind( deferred ) ); - break; - - case CategorySelector.SearchType.Exists: - if ( input.indexOf( '|' ) > -1 ) { - deferred.resolve( [] ); - break; - } - - this.api.get( { - formatversion: 2, - action: 'query', - prop: 'info', - titles: 'Category:' + input - } ).done( function ( res ) { - var categories = []; - - $.each( res.query.pages, function ( index, page ) { - if ( !page.missing ) { - categories.push( page.title ); - } - } ); - - deferred.resolve( categories ); - } ).fail( deferred.reject.bind( deferred ) ); - break; - - case CategorySelector.SearchType.SubCategories: - if ( input.indexOf( '|' ) > -1 ) { - deferred.resolve( [] ); - break; - } - - this.api.get( { - formatversion: 2, - action: 'query', - list: 'categorymembers', - cmtype: 'subcat', - cmlimit: this.limit, - cmtitle: 'Category:' + input - } ).done( function ( res ) { - var categories = res.query.categorymembers.map( function ( category ) { - return category.title; - } ); - deferred.resolve( categories ); - } ).fail( deferred.reject.bind( deferred ) ); - break; - - case CategorySelector.SearchType.ParentCategories: - if ( input.indexOf( '|' ) > -1 ) { - deferred.resolve( [] ); - break; - } - - this.api.get( { - formatversion: 2, - action: 'query', - prop: 'categories', - cllimit: this.limit, - titles: 'Category:' + input - } ).done( function ( res ) { - var categories = []; - - $.each( res.query.pages, function ( index, page ) { - if ( !page.missing && $.isArray( page.categories ) ) { - categories.push.apply( categories, page.categories.map( function ( category ) { - return category.title; - } ) ); - } - } ); - - deferred.resolve( categories ); - } ).fail( deferred.reject.bind( deferred ) ); - break; - - default: - throw new Error( 'Unknown searchType' ); - } - - // Cache the result - this.searchCache[ cacheKey ] = deferred.promise(); - - return deferred.promise(); - }; - - /** - * @enum mw.widgets.CategorySelector.SearchType - * Types of search available. - */ - CategorySelector.SearchType = { - /** Search using action=opensearch */ - OpenSearch: 0, - - /** Search using action=query */ - InternalSearch: 1, - - /** Search for existing categories with the exact title */ - Exists: 2, - - /** Search only subcategories */ - SubCategories: 3, - - /** Search only parent categories */ - ParentCategories: 4 - }; - - mw.widgets.CategorySelector = CategorySelector; -}( jQuery, mediaWiki ) ); diff --git a/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js b/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js index f2b6f5f9c3..8c80cb8ee4 100644 --- a/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js +++ b/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js @@ -46,11 +46,11 @@ return mw.ForeignStructuredUpload.BookletLayout.parent.prototype.initialize.call( this ).then( function () { return $.when( - // Point the CategorySelector to the right wiki + // Point the CategoryMultiselectWidget to the right wiki booklet.upload.getApi().then( function ( api ) { // If this is a ForeignApi, it will have a apiUrl, otherwise we don't need to do anything if ( api.apiUrl ) { - // Can't reuse the same object, CategorySelector calls #abort on its mw.Api instance + // Can't reuse the same object, CategoryMultiselectWidget calls #abort on its mw.Api instance booklet.categoriesWidget.api = new mw.ForeignApi( api.apiUrl ); } return $.Deferred().resolve(); @@ -242,7 +242,7 @@ multiline: true, autosize: true } ); - this.categoriesWidget = new mw.widgets.CategorySelector( { + this.categoriesWidget = new mw.widgets.CategoryMultiselectWidget( { // Can't be done here because we don't know the target wiki yet... done in #initialize. // api: new mw.ForeignApi( ... ), $overlay: this.$overlay diff --git a/tests/phpunit/includes/libs/CSSMinTest.php b/tests/phpunit/includes/libs/CSSMinTest.php index 2e5c0bb429..42f08cc0a0 100644 --- a/tests/phpunit/includes/libs/CSSMinTest.php +++ b/tests/phpunit/includes/libs/CSSMinTest.php @@ -18,6 +18,81 @@ class CSSMinTest extends MediaWikiTestCase { ] ); } + /** + * @dataProvider mimeTypeProvider + */ + public function testGetMimeType( $fileContents, $fileExtension, $expected ) { + $fileName = wfTempDir() . DIRECTORY_SEPARATOR . uniqid( 'MW_PHPUnit_CSSMinTest_' ) . '.' + . $fileExtension; + $this->addTmpFiles( $fileName ); + file_put_contents( $fileName, $fileContents ); + $this->assertSame( $expected, CSSMin::getMimeType( $fileName ) ); + } + + public function mimeTypeProvider() { + return [ + 'JPEG with short extension' => [ + "\xFF\xD8\xFF", + 'jpg', + 'image/jpeg' + ], + 'JPEG with long extension' => [ + "\xFF\xD8\xFF", + 'jpeg', + 'image/jpeg' + ], + 'PNG' => [ + "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A", + 'png', + 'image/png' + ], + + 'PNG extension but JPEG content' => [ + "\xFF\xD8\xFF", + 'png', + 'image/png' + ], + 'JPEG extension but PNG content' => [ + "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A", + 'jpg', + 'image/jpeg' + ], + 'PNG extension but SVG content' => [ + '', + 'png', + 'image/png' + ], + 'SVG extension but PNG content' => [ + "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A", + 'svg', + 'image/svg+xml' + ], + + 'SVG with all headers' => [ + '', + 'svg', + 'image/svg+xml' + ], + 'SVG with XML header only' => [ + '', + 'svg', + 'image/svg+xml' + ], + 'SVG with DOCTYPE only' => [ + '', + 'svg', + 'image/svg+xml' + ], + 'SVG without any header' => [ + '', + 'svg', + 'image/svg+xml' + ], + ]; + } + /** * @dataProvider provideMinifyCases * @covers CSSMin::minify diff --git a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php index c292e97ad0..e10a97f222 100644 --- a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php +++ b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php @@ -173,7 +173,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestUser()->getUser(); $this->assertConditions( [ # expected - "rc_user != '{$user->getId()}'", + "rc_user_text != '{$user->getName()}'", ], [ 'hidemyself' => 1, @@ -199,7 +199,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestUser()->getUser(); $this->assertConditions( [ # expected - "rc_user = '{$user->getId()}'", + "rc_user_text = '{$user->getName()}'", ], [ 'hidebyothers' => 1, @@ -225,8 +225,8 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestUser()->getUser(); $this->assertConditions( [ # expected - "rc_user != '{$user->getId()}'", - "rc_user = '{$user->getId()}'", + "rc_user_text != '{$user->getName()}'", + "rc_user_text = '{$user->getName()}'", ], [ 'hidemyself' => 1,